From 7de04ec94dda85b1fb8e75faa579b9474819f925 Mon Sep 17 00:00:00 2001 From: Andrew Lukoshko Date: Tue, 18 Oct 2022 17:17:13 +0000 Subject: [PATCH] Update ELevate patch --- SOURCES/leapp-repository-0.16.0-elevate.patch | 50 +++++++++++++++---- SPECS/leapp-repository.spec | 4 +- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/SOURCES/leapp-repository-0.16.0-elevate.patch b/SOURCES/leapp-repository-0.16.0-elevate.patch index 344c0fd..c606c30 100644 --- a/SOURCES/leapp-repository-0.16.0-elevate.patch +++ b/SOURCES/leapp-repository-0.16.0-elevate.patch @@ -330,6 +330,19 @@ index da62c50..a8e7d76 100644 def check_version(version): +diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec +index af4b31d..0d8f6c8 100644 +--- a/packaging/leapp-repository.spec ++++ b/packaging/leapp-repository.spec +@@ -196,6 +196,8 @@ rm -rf %{buildroot}%{leapp_python_sitelib}/leapp/cli/commands/tests + rm -rf %{buildroot}%{repositorydir}/system_upgrade/el8toel9 + %else + rm -rf %{buildroot}%{repositorydir}/system_upgrade/el7toel8 ++# CloudLinux migration only supports el7 to el8 ++rm -rf %{buildroot}%{repositorydir}/system_upgrade/cloudlinux + %endif + + # remove component/unit tests, Makefiles, ... stuff that related to testing only diff --git a/repos/system_upgrade/cloudlinux/.leapp/info b/repos/system_upgrade/cloudlinux/.leapp/info new file mode 100644 index 0000000..1f16b9f @@ -1018,11 +1031,12 @@ index 14bd6e3..f6adacf 100755 # This should not happen as /etc/initrd-release is supposed to have API # stability, but check is better than broken system. diff --git a/repos/system_upgrade/common/actors/efibootorderfix/finalization/actor.py b/repos/system_upgrade/common/actors/efibootorderfix/finalization/actor.py -index f42909f..9f532eb 100644 +index f42909f..171fdd2 100644 --- a/repos/system_upgrade/common/actors/efibootorderfix/finalization/actor.py +++ b/repos/system_upgrade/common/actors/efibootorderfix/finalization/actor.py -@@ -1,17 +1,86 @@ +@@ -1,17 +1,101 @@ +import os ++import re + +from leapp.libraries.stdlib import run, api from leapp.actors import Actor @@ -1057,7 +1071,8 @@ index f42909f..9f532eb 100644 + 'CentOS Stream': 'centos', + 'Oracle Linux Server': 'redhat', + 'Red Hat Enterprise Linux': 'redhat', -+ 'Rocky Linux': 'rocky' ++ 'Rocky Linux': 'rocky', ++ 'CloudLinux': 'centos', + } + + efi_shimname_dict = { @@ -1065,6 +1080,11 @@ index f42909f..9f532eb 100644 + 'aarch64': 'shimaa64.efi' + } + ++ def devparts(dev): ++ part = next(re.finditer(r'\d+$', dev)).group(0) ++ dev = dev[:-len(part)] ++ return [dev, part]; ++ + with open('/etc/system-release', 'r') as sr: + release_line = next(line for line in sr if 'release' in line) + distro = release_line.split(' release ', 1)[0] @@ -1096,19 +1116,27 @@ index f42909f..9f532eb 100644 + break + + if is_system_efi and has_shim: ++ efidevlist = [] + with open('/proc/mounts', 'r') as fp: + for line in fp: + if '/boot/efi' in line: + efidevpath = line.split(' ', 1)[0] -+ efidev = efidevpath.split('/')[-1] ++ efidevpart = efidevpath.split('/')[-1] + if os.path.exists('/proc/mdstat'): + with open('/proc/mdstat', 'r') as mds: + for line in mds: -+ if line.startswith(efidev): -+ mddev = line.split(' ')[-1] -+ newefidev = mddev.split('[', 1)[0] -+ efidevpath = efidevpath.replace(efidev, newefidev) -+ run(['/sbin/efibootmgr', '-c', '-d', efidevpath, '-p 1', '-l', bootmgr_path, '-L', efi_bootentry_label]) ++ if line.startswith(efidevpart): ++ mddev = line.split(' ') ++ for md in mddev: ++ if '[' in md: ++ efimd = md.split('[', 1)[0] ++ efidp = efidevpath.replace(efidevpart, efimd) ++ efidevlist.append(efidp) ++ if len(efidevlist) == 0: ++ efidevlist.append(efidevpath) ++ for devpath in efidevlist: ++ efidev, efipart = devparts(devpath) ++ run(['/sbin/efibootmgr', '-c', '-d', efidev, '-p', efipart, '-l', bootmgr_path, '-L', efi_bootentry_label]) + + if not has_grub_cfg: + run(['/sbin/grub2-mkconfig', '-o', grub_cfg_path]) @@ -2160,7 +2188,7 @@ index 0000000..204d0dc + # for repomap in vendor_repomap_collection.maps: + # self.produce(repomap) diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py -index 03f3cd4..7fcb6aa 100644 +index 03f3cd4..efc25d7 100644 --- a/repos/system_upgrade/common/libraries/config/version.py +++ b/repos/system_upgrade/common/libraries/config/version.py @@ -13,8 +13,8 @@ OP_MAP = { @@ -2169,7 +2197,7 @@ index 03f3cd4..7fcb6aa 100644 # Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x - '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9']}, - '8': {'rhel': ['8.5', '8.6']}, -+ '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9'], 'centos': ['7.9'], 'eurolinux': ['7.9'], 'ol': ['7.9']}, ++ '7': {'rhel': ['7.9'], 'rhel-alt': ['7.6'], 'rhel-saphana': ['7.9'], 'centos': ['7.9'], 'eurolinux': ['7.9'], 'ol': ['7.9'], 'cloudlinux': ['7.9']}, + '8': {'rhel': ['8.5', '8.6'], 'centos': ['8.5'], 'almalinux': ['8.6'], 'eurolinux': ['8.6'], 'ol': ['8.6'], 'rocky': ['8.6']}, } diff --git a/SPECS/leapp-repository.spec b/SPECS/leapp-repository.spec index 0176292..d29160c 100644 --- a/SPECS/leapp-repository.spec +++ b/SPECS/leapp-repository.spec @@ -42,7 +42,7 @@ py2_byte_compile "%1" "%2"} Name: leapp-repository Version: 0.16.0 -Release: 6%{?dist}.elevate.2 +Release: 6%{?dist}.elevate.3 Summary: Repositories for leapp License: ASL 2.0 @@ -218,6 +218,8 @@ rm -rf %{buildroot}%{leapp_python_sitelib}/leapp/cli/commands/tests rm -rf %{buildroot}%{repositorydir}/system_upgrade/el8toel9 %else rm -rf %{buildroot}%{repositorydir}/system_upgrade/el7toel8 +# CloudLinux migration only supports el7 to el8 +rm -rf %{buildroot}%{repositorydir}/system_upgrade/cloudlinux %endif # remove component/unit tests, Makefiles, ... stuff that related to testing only