diff --git a/.gitignore b/.gitignore index b56f859..dc80215 100644 --- a/.gitignore +++ b/.gitignore @@ -272,3 +272,4 @@ /anaconda-34.21.tar.bz2 /anaconda-34.22.tar.bz2 /anaconda-34.23.tar.bz2 +/anaconda-34.24.tar.bz2 diff --git a/0001-Revert-Remove-support-for-boot-arguments-without-ins.patch b/0001-Revert-Remove-support-for-boot-arguments-without-ins.patch new file mode 100644 index 0000000..ca419c1 --- /dev/null +++ b/0001-Revert-Remove-support-for-boot-arguments-without-ins.patch @@ -0,0 +1,243 @@ +From a9d2581448ddb4c9cb1904dca06512aa79145f80 Mon Sep 17 00:00:00 2001 +From: Jiri Konecny +Date: Mon, 8 Feb 2021 11:26:06 +0100 +Subject: [PATCH 1/3] Revert "Remove support for boot arguments without 'inst.' + prefix from Dracut (#1912502)" (#1907566) + +Allow to use Anaconda kernel args in Dracut without inst. prefix to not break +beaker. Beaker needs more time for adaptation so avoid to break it for RHEL-9. + +This reverts commit a45405de99a42e5af047f04b78d168b6d41fa513. +Related: rhbz#1907566 +--- + dracut/anaconda-diskroot | 2 +- + dracut/anaconda-ks-sendheaders.sh | 4 +-- + dracut/fetch-kickstart-disk | 2 +- + dracut/kickstart-genrules.sh | 2 +- + dracut/parse-anaconda-dd.sh | 2 +- + dracut/parse-anaconda-kickstart.sh | 6 ++--- + dracut/parse-anaconda-net.sh | 3 --- + dracut/parse-anaconda-options.sh | 39 ++++++++++++++---------------- + dracut/parse-anaconda-repo.sh | 6 ++--- + 9 files changed, 30 insertions(+), 36 deletions(-) + +diff --git a/dracut/anaconda-diskroot b/dracut/anaconda-diskroot +index 274849fdb3..2797e67625 100755 +--- a/dracut/anaconda-diskroot ++++ b/dracut/anaconda-diskroot +@@ -39,7 +39,7 @@ run_checkisomd5() { + + dev="$1" + path="$2" # optional, could be empty +-kickstart="$(getarg inst.ks=)" ++kickstart="$(getarg ks= inst.ks=)" + + # Log the device that triggered this job. + debug_msg "Trying to find a root image on the device $dev." +diff --git a/dracut/anaconda-ks-sendheaders.sh b/dracut/anaconda-ks-sendheaders.sh +index a479a50667..7bc97393b8 100755 +--- a/dracut/anaconda-ks-sendheaders.sh ++++ b/dracut/anaconda-ks-sendheaders.sh +@@ -5,7 +5,7 @@ + command -v set_http_header >/dev/null || . /lib/url-lib.sh + + # inst.ks.sendmac: send MAC addresses in HTTP headers +-if getargbool 0 inst.ks.sendmac; then ++if getargbool 0 kssendmac inst.ks.sendmac; then + ifnum=0 + for ifname in /sys/class/net/*; do + [ -e "$ifname/address" ] || continue +@@ -21,7 +21,7 @@ if getargbool 0 inst.ks.sendmac; then + fi + + # inst.ks.sendsn: send system serial number in HTTP headers +-if getargbool 0 inst.ks.sendsn; then ++if getargbool 0 kssendsn inst.ks.sendsn; then + system_serial=$(cat /sys/class/dmi/id/product_serial 2>/dev/null) + if [ -z "$system_serial" ]; then + warn "inst.ks.sendsn: can't find system serial number" +diff --git a/dracut/fetch-kickstart-disk b/dracut/fetch-kickstart-disk +index b1ee9f826c..7eb769ea5c 100755 +--- a/dracut/fetch-kickstart-disk ++++ b/dracut/fetch-kickstart-disk +@@ -6,7 +6,7 @@ command -v getarg >/dev/null || . /lib/dracut-lib.sh + + dev="$1" + path="${2:-/ks.cfg}" +-kickstart="$(getarg inst.ks=)" ++kickstart="$(getarg ks= inst.ks=)" + + [ -e /tmp/ks.cfg.done ] && exit 1 + [ -b "$dev" ] || exit 1 +diff --git a/dracut/kickstart-genrules.sh b/dracut/kickstart-genrules.sh +index 84277890dd..8e1ba22643 100755 +--- a/dracut/kickstart-genrules.sh ++++ b/dracut/kickstart-genrules.sh +@@ -28,7 +28,7 @@ case "${kickstart%%:*}" in + wait_for_kickstart + ;; + "") +- if [ -z "$kickstart" -a -z "$(getarg inst.ks=)" ]; then ++ if [ -z "$kickstart" -a -z "$(getarg ks= inst.ks=)" ]; then + when_diskdev_appears $(disk_to_dev_path LABEL=OEMDRV) \ + fetch-kickstart-disk \$env{DEVNAME} "/ks.cfg" + fi +diff --git a/dracut/parse-anaconda-dd.sh b/dracut/parse-anaconda-dd.sh +index 8eeceb9a49..3633d29282 100755 +--- a/dracut/parse-anaconda-dd.sh ++++ b/dracut/parse-anaconda-dd.sh +@@ -11,7 +11,7 @@ + rm -f /tmp/dd_interactive /tmp/dd_net /tmp/dd_disk /tmp/dd_todo + + # parse any dd/inst.dd args found +-for dd in $(getargs inst.dd=); do ++for dd in $(getargs dd= inst.dd=); do + case "$dd" in + # plain 'dd'/'inst.dd': Engage interactive mode! + dd|inst.dd) echo menu > /tmp/dd_interactive ;; +diff --git a/dracut/parse-anaconda-kickstart.sh b/dracut/parse-anaconda-kickstart.sh +index 83b319dc7d..1f4f190db9 100755 +--- a/dracut/parse-anaconda-kickstart.sh ++++ b/dracut/parse-anaconda-kickstart.sh +@@ -5,9 +5,9 @@ + [ -f /tmp/ks.cfg.done ] && return + + # inst.ks: provide a "URI" for the kickstart file +-kickstart="$(getarg inst.ks=)" ++kickstart="$(getarg ks= inst.ks=)" + if [ -z "$kickstart" ]; then +- getargbool 0 inst.ks && kickstart='nfs:auto' ++ getargbool 0 ks inst.ks && kickstart='nfs:auto' + fi + # no root? the kickstart will probably tell us what our root device is. + [ "$kickstart" ] && [ -z "$root" ] && root="anaconda-kickstart" +@@ -23,7 +23,7 @@ case "${kickstart%%:*}" in + set_neednet + ;; + urls) # multiple network kickstarts? +- locations="$(getargs inst.ks=)" ++ locations="$(getargs ks= inst.ks=)" + get_urls "$locations" >/tmp/ks_urls + set_neednet + ;; +diff --git a/dracut/parse-anaconda-net.sh b/dracut/parse-anaconda-net.sh +index f09ec8d098..5518546e5b 100755 +--- a/dracut/parse-anaconda-net.sh ++++ b/dracut/parse-anaconda-net.sh +@@ -16,9 +16,6 @@ mac_to_bootif() { + + # handle ksdevice (tell us which device to use for ip= stuff later) + export ksdevice="" +-# TODO: Remove support for ksdevice. It's deprecated a long time already +-# this should be inst.ksdevice however, this is deprecated a long time so we don't have +-# any inst.ksdevice. Let's just ignore this for now. + ksdev_val=$(getarg ksdevice=) + if [ -n "$ksdev_val" ]; then + case "$ksdev_val" in +diff --git a/dracut/parse-anaconda-options.sh b/dracut/parse-anaconda-options.sh +index debe8ac0cb..c2735b0e19 100755 +--- a/dracut/parse-anaconda-options.sh ++++ b/dracut/parse-anaconda-options.sh +@@ -58,12 +58,6 @@ check_removed_arg() { + fi + } + +-check_removed_no_inst_arg() { +- local removed_arg="$1" new_arg="$2" +- check_removed_arg "$removed_arg" "All usage of Anaconda boot arguments without 'inst.' prefix \ +-was removed. Please use $new_arg instead." +-} +- + check_depr_args "blacklist=" "inst.blacklist=%s" + check_depr_arg "nofirewire" "inst.blacklist=firewire_ohci" + +@@ -83,32 +77,35 @@ check_removed_arg askmethod "Use an appropriate 'inst.repo=' argument instead." + check_removed_arg asknetwork "Use an appropriate 'ip=' argument instead." + + # lang & keymap +-check_removed_no_inst_arg "lang" "inst.lang" +-check_removed_no_inst_arg "keymap" "inst.keymap" ++warn_renamed_arg "lang" "inst.lang" ++warn_renamed_arg "keymap" "inst.keymap" ++ ++# debug ++warn_renamed_arg "debug" "inst.debug" + + # repo + check_depr_arg "method=" "repo=%s" +-check_removed_no_inst_arg "repo" "inst.repo" ++warn_renamed_arg "repo" "inst.repo" + + # stage2 +-check_removed_no_inst_arg "stage2" "inst.stage2" ++warn_renamed_arg "stage2" "inst.stage2" + + # kickstart +-check_removed_no_inst_arg "ks" "inst.ks" +-check_removed_no_inst_arg "ksdevice" "inst.ks.device" +-check_removed_no_inst_arg "kssendmac" "inst.ks.sendmac" +-check_removed_no_inst_arg "kssendsn" "inst.ks.sendsn" ++warn_renamed_arg "ks" "inst.ks" ++warn_renamed_arg "ksdevice" "inst.ks.device" ++warn_renamed_arg "kssendmac" "inst.ks.sendmac" ++warn_renamed_arg "kssendsn" "inst.ks.sendsn" + + # Ignore self-signed SSL certs +-check_removed_no_inst_arg "noverifyssl" "inst.noverifyssl" +-if getargbool 0 inst.noverifyssl; then ++warn_renamed_arg "noverifyssl" "inst.noverifyssl" ++if getargbool 0 noverifyssl inst.noverifyssl; then + # Tell dracut to use curl --insecure + echo "rd.noverifyssl" >> /etc/cmdline.d/75-anaconda-options.conf + fi + + # updates +-check_removed_no_inst_arg "updates" "inst.updates" +-if updates=$(getarg inst.updates); then ++warn_renamed_arg "updates=" "inst.updates" ++if updates=$(getarg updates inst.updates); then + if [ -n "$updates" ]; then + export anac_updates=$updates + case $updates in +@@ -122,11 +119,11 @@ if updates=$(getarg inst.updates); then + fi + + # for vnc bring network up in initramfs so that cmdline configuration is used +-check_removed_no_inst_arg "vnc" "inst.vnc" +-getargbool 0 inst.vnc && warn "anaconda requiring network for vnc" && set_neednet ++warn_renamed_arg "vnc" "inst.vnc" ++getargbool 0 vnc inst.vnc && warn "anaconda requiring network for vnc" && set_neednet + + # Driver Update Disk +-check_removed_no_inst_arg "dd" "inst.dd" ++warn_renamed_arg "dd" "inst.dd" + + # re-read the commandline args + unset CMDLINE +diff --git a/dracut/parse-anaconda-repo.sh b/dracut/parse-anaconda-repo.sh +index fdc937a95a..a1f96b3d98 100755 +--- a/dracut/parse-anaconda-repo.sh ++++ b/dracut/parse-anaconda-repo.sh +@@ -4,8 +4,8 @@ + # If there's a root= arg, we'll just use that + getarg root= >/dev/null && return + +-repo="$(getarg inst.repo=)" +-stage2="$(getarg inst.stage2=)" ++repo="$(getarg repo= inst.repo=)" ++stage2="$(getarg stage2= inst.stage2=)" + + arg="repo" + # default to using repo, but if we have stage2=, use that +@@ -26,7 +26,7 @@ if [ -n "$repo" ]; then + ;; + urls) + root="anaconda-net:urls" +- locations="$(getargs inst.stage2=)" ++ locations="$(getargs stage2= inst.stage2=)" + get_urls "$locations" >/tmp/stage2_urls + set_neednet + ;; +-- +2.29.2 + diff --git a/0002-Revert-Do-not-support-no-inst.-Anaconda-boot-args-in.patch b/0002-Revert-Do-not-support-no-inst.-Anaconda-boot-args-in.patch new file mode 100644 index 0000000..e37e5e9 --- /dev/null +++ b/0002-Revert-Do-not-support-no-inst.-Anaconda-boot-args-in.patch @@ -0,0 +1,59 @@ +From 5f066c4125d7a648958b31b909934e02cf397db8 Mon Sep 17 00:00:00 2001 +From: Jiri Konecny +Date: Mon, 8 Feb 2021 11:27:26 +0100 +Subject: [PATCH 2/3] Revert "Do not support no inst. Anaconda boot args in + systemd services (#1912502)" (#1907566) + +Allow to use Anaconda kernel boot arguments systemd units to not break beaker. +Beaker needs more time to adaptation so avoid to break it for RHEL-9. + +This reverts commit 322e6a847d73ea17fe99aaae4129e14409488b6b. +Related: rhbz#1907566 +--- + data/systemd/anaconda-noshell.service | 1 + + data/systemd/anaconda-shell@.service | 1 + + data/systemd/anaconda-sshd.service | 2 ++ + 3 files changed, 4 insertions(+) + +diff --git a/data/systemd/anaconda-noshell.service b/data/systemd/anaconda-noshell.service +index ca4dbd328d..f378c67b0c 100644 +--- a/data/systemd/anaconda-noshell.service ++++ b/data/systemd/anaconda-noshell.service +@@ -3,6 +3,7 @@ Description=Restrict Anaconda Text Console + After=anaconda.service + Before=anaconda-tmux@.service + ConditionKernelCommandLine=|inst.noshell ++ConditionKernelCommandLine=|noshell + + [Service] + Type=oneshot +diff --git a/data/systemd/anaconda-shell@.service b/data/systemd/anaconda-shell@.service +index b0dd4b7c66..bc69fd1208 100644 +--- a/data/systemd/anaconda-shell@.service ++++ b/data/systemd/anaconda-shell@.service +@@ -3,6 +3,7 @@ + [Unit] + Description=Shell on %I + After=systemd-user-sessions.service plymouth-quit-wait.service ++ConditionKernelCommandLine=!noshell + ConditionKernelCommandLine=!inst.noshell + + [Service] +diff --git a/data/systemd/anaconda-sshd.service b/data/systemd/anaconda-sshd.service +index 8b5b16fbbe..8cba2c4bb0 100644 +--- a/data/systemd/anaconda-sshd.service ++++ b/data/systemd/anaconda-sshd.service +@@ -3,8 +3,10 @@ Description=OpenSSH server daemon + Before=anaconda.target + After=syslog.target network.target sshd-keygen.target + Wants=sshd-keygen.target ++ConditionKernelCommandLine=|sshd + ConditionKernelCommandLine=|inst.sshd + ConditionKernelCommandLine=!inst.sshd=0 ++ConditionKernelCommandLine=!sshd=0 + # TODO: use ConditionArchitecture in systemd v210 or later + ConditionPathIsDirectory=|/sys/hypervisor/s390 + +-- +2.29.2 + diff --git a/0003-Do-not-require-inst.-prefixes-for-Anaconda-boot-argu.patch b/0003-Do-not-require-inst.-prefixes-for-Anaconda-boot-argu.patch new file mode 100644 index 0000000..acd6a8b --- /dev/null +++ b/0003-Do-not-require-inst.-prefixes-for-Anaconda-boot-argu.patch @@ -0,0 +1,45 @@ +From cf93029a69a5b7d21d9478fad0c5c619ea2008d1 Mon Sep 17 00:00:00 2001 +From: Jiri Konecny +Date: Mon, 8 Feb 2021 11:32:03 +0100 +Subject: [PATCH 3/3] Do not require inst. prefixes for Anaconda boot arguments + (#1907566) + +Beaker needs more time for adaptation. Create this change to not break beaker +for RHEL-9. + +Related: rhbz#1907566 +--- + anaconda.py | 3 --- + pyanaconda/argument_parsing.py | 2 +- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/anaconda.py b/anaconda.py +index edd518046a..3dc424188f 100755 +--- a/anaconda.py ++++ b/anaconda.py +@@ -308,9 +308,6 @@ if __name__ == "__main__": + stdout_log.warning("Kernel boot argument '%s' detected. " + "Did you want to use 'inst.%s' for the installer instead?", + arg, arg) +- if removed_no_inst_args: +- stdout_log.warning("All Anaconda kernel boot arguments are now required to use " +- "'inst.' prefix!") + + from pyanaconda import isys + +diff --git a/pyanaconda/argument_parsing.py b/pyanaconda/argument_parsing.py +index 330a71ed64..096b1eba9e 100644 +--- a/pyanaconda/argument_parsing.py ++++ b/pyanaconda/argument_parsing.py +@@ -388,7 +388,7 @@ def getArgumentParser(version_string, boot_cmdline=None): + # If require_prefix is False, it also accepts the option without the + # bootarg_prefix ('repo'). + # See anaconda_optparse.py and KernelArguments (in flags.py) for details. +- ap = AnacondaArgumentParser(bootarg_prefix="inst.", require_prefix=True) ++ ap = AnacondaArgumentParser(bootarg_prefix="inst.", require_prefix=False) + help_parser = HelpTextParser(os.path.join(datadir, "anaconda_options.txt")) + + # NOTE: store_false options will *not* get negated when the user does +-- +2.29.2 + diff --git a/anaconda.spec b/anaconda.spec index 191d5e7..473a89d 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,6 +1,6 @@ Summary: Graphical system installer Name: anaconda -Version: 34.23 +Version: 34.24 Release: 1%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -12,6 +12,17 @@ URL: http://fedoraproject.org/wiki/Anaconda # make dist Source0: %{name}-%{version}.tar.bz2 +# TODO: Remove this as soon as rhbz#1907566 will be solved! +# These patches will disable requirement of inst. prefix for RHEL-9. +# We need these to avoid beaker breakage see rhbz#1907566 for more info. +# Patches are generated from last three commits on: +# https://github.com/jkonecny12/anaconda/tree/master-add-patches-to-allow-no-inst-prefix +%if 0%{?rhel} == 9 +Patch0: 0001-Revert-Remove-support-for-boot-arguments-without-ins.patch +Patch1: 0002-Revert-Do-not-support-no-inst.-Anaconda-boot-args-in.patch +Patch2: 0003-Do-not-require-inst.-prefixes-for-Anaconda-boot-argu.patch +%endif + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -409,6 +420,31 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Mon Feb 08 2021 Martin Kolman - 34.24-1 +- Modify spec file to add patches required on rhel-9 rebuild (#1907566) + (jkonecny) +- Unify GRUB configuration file location across all platforms (javierm) +- Do not use redirector for rawhide repository for iso building on PR + (rvykydal) +- Move finding flatpak size to a task (vslavik) +- Move flatpak installation code to a task (vslavik) +- Move and rename FlatpakPayload (vslavik) +- Abort with a message on invalid host name in kickstart (vslavik) +- Use redirector for rawhide repository for iso building on PR (rvykydal) +- Add tests for the inst. prefix requirement (#1912502) (jkonecny) +- Do not support no inst. Anaconda boot args in systemd services (#1912502) + (jkonecny) +- Remove check to avoid process of help and version boot args (#1912502) + (jkonecny) +- Remove Anaconda boot arguments without inst. prefix from stage2 (#1912502) + (jkonecny) +- Add support for non-critical installation errors (vponcova) +- Don't run a canceled task (vponcova) +- Fix exclude arguments of tar payload extracting. (rvykydal) +- Remove support for boot arguments without 'inst.' prefix from Dracut + (#1912502) (jkonecny) +- Cache flatpak size instead of persistent instance (vslavik) + * Fri Feb 05 2021 Martin Kolman - 34.23-1 - Add a metapackage for image (boot.iso) dependencies (vslavik) - Take dnf substitutions from installer environment configuration (rvykydal) diff --git a/sources b/sources index e723fbd..24ae731 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (anaconda-34.23.tar.bz2) = f938525d1f05e7fde4b50f08469f822225277f4326135488f2e9ec4938a0a33b8d514f8dbf8919debc251797660600b942f081b7d087eb6a4d308dd979d1e90d +SHA512 (anaconda-34.24.tar.bz2) = 5a5b240debf0b45ab7471ad8639bc634741582fd4e86fd8cea8ff516ee9cf90fe35f0193c2383306ad68125569d80a7968017092b36979f240026b15eddf2276