diff --git a/makedebian.pl b/makedebian.pl index 6b1b4ebf7..6f91c48ad 100755 --- a/makedebian.pl +++ b/makedebian.pl @@ -129,18 +129,18 @@ if ($product eq "webmin") { print CONTROL < Repository authentication username --auth-pass= Repository authentication password --pkg-prefs= Package preferences for repository + --repo-prefs= Optional preferences for repository Repository metadata: --name= Base name for repository (default: webmin) @@ -134,6 +135,9 @@ process_args() { --pkg-prefs=*) repo_pkg_prefs="${arg#*=}" ;; + --repo-prefs=*) + repo_prefs="${arg#*=}" + ;; --name=*) base_name="${arg#*=}" repo_name="$base_name" @@ -359,6 +363,15 @@ download_key() { post_status $? "$(echo "$download_out" | tr '\n' ' ')" } +rpm_repo_prefs() { + for pref in $repo_prefs; do + if echo "$pref" | grep "^rpm:" >/dev/null 2>&1; then + val=$(echo "$pref" | sed 's/^rpm://') + printf '%s\n' "$val" + fi + done +} + setup_repos() { repo_desc_formatted=$(echo "$active_repo_description" | \ sed 's/\([^ ]*\)\(.*\)/\1\L\2/') @@ -399,6 +412,7 @@ setup_repos() { else repo_url="$repo_auth_url" fi + repo_extra_opts_caller=$(rpm_repo_prefs) cat << EOF > "$rpm_repo_file" [$active_repo_name-noarch] name=$active_repo_description @@ -406,8 +420,12 @@ baseurl=$repo_url enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-$repo_key_suffix gpgcheck=1 -$repo_extra_opts EOF + # Append non-empty options if they exist to keep config file clean + [ -n "$repo_extra_opts" ] && \ + printf '%s\n' "$repo_extra_opts" >> "$rpm_repo_file" + [ -n "$repo_extra_opts_caller" ] && \ + printf '%s\n' "$repo_extra_opts_caller" >> "$rpm_repo_file" echo " .. done" echo " Downloading repository metadata .." update_output=$($update 2>&1)