From 230cbc507bef801b075fbffbec6697bceced4abb Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Thu, 11 Nov 2021 22:16:13 +1300 Subject: [PATCH 1/6] Fix broken stream conversion logic. Stream system repo packages were ignored if there were no stream non-system packages present. --- migrate2rocky/migrate2rocky.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index cdf3616..afad509 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -732,7 +732,8 @@ package_swaps() { done # CentOS Stream specific processing - if (( ${#installed_stream_repos_pkgs[@]} )); then + if (( ${#installed_stream_repos_pkgs[@]} || + ${#installed_sys_stream_repos_pkgs[@]} )); then # Get a list of the repo files. local -a repos_files readarray -t repos_files < <( @@ -741,10 +742,13 @@ package_swaps() { grep '^/etc/yum\.repos\.d/.\+\.repo$' ) - # Remove the package from the rpm db. - saferpm -e --justdb --nodeps -a "${installed_sys_stream_repos_pkgs[@]}" || + if (( ${#installed_sys_stream_repos_pkgs[@]} )); then + # Remove the package from the rpm db. + saferpm -e --justdb --nodeps -a \ + "${installed_sys_stream_repos_pkgs[@]}" || exit_message \ "Could not remove packages from the rpm db: ${installed_sys_stream_repos_pkgs[@]}" + fi # Rename the stream repos with a prefix. sed -i 's/^\[/['"$stream_prefix"'/' "${repos_files[@]}" From 6c3453041c3b485e4fd59facc1082c1d9c009182 Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Thu, 18 Nov 2021 14:11:15 +1300 Subject: [PATCH 2/6] Fix broken mirrorlist URLs from CentOS Stream repos. The mirrorlist URLs rely on variable replacements from CentOS Stream that are not valid once we have switched to Rocky Linux. To fix this we change to the baseurl instead and fix it up to not rely on those variables that have changed. --- migrate2rocky/migrate2rocky.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index c6915e8..8b3917b 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -741,8 +741,12 @@ package_swaps() { "Could not remove packages from the rpm db: ${installed_sys_stream_repos_pkgs[@]}" fi - # Rename the stream repos with a prefix. - sed -i 's/^\[/['"$stream_prefix"'/' "${repos_files[@]}" + # Rename the stream repos with a prefix and fix the baseurl. + sed -i \ + -e 's/^\[/['"$stream_prefix"'/' \ + -e 's|^mirrorlist=|#mirrorlist=|g' \ + -e 's|^#baseurl=http://mirror.centos.org/$contentdir/$stream/|baseurl=|http://mirror.centos.org/centos/8-stream/' \ + "${repos_files[@]}" fi # Use dnf shell to swap the system packages out. From 1abcdd13af4770fff1f50e99a126e59ad3bd29e2 Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Thu, 18 Nov 2021 14:22:40 +1300 Subject: [PATCH 3/6] Fix up vault baseurls Fix the source repository (which are in vault.centos.org) URLs as well. --- migrate2rocky/migrate2rocky.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index 8b3917b..3177da6 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -746,6 +746,7 @@ package_swaps() { -e 's/^\[/['"$stream_prefix"'/' \ -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/$contentdir/$stream/|baseurl=|http://mirror.centos.org/centos/8-stream/' \ + -e 's|^baseurl=http://vault.centos.org/$contentdir/$stream/|baseurl=|https://vault.centos.org/centos/8-stream/' \ "${repos_files[@]}" fi From f28f6daa0e4caa29e5b1052dca6daddc005116d4 Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Wed, 24 Nov 2021 00:21:41 +1300 Subject: [PATCH 4/6] Certain Stream packages have to be replaced by their Rocky Linux equivalents. --- migrate2rocky/migrate2rocky.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index 8bfc1bc..e1aa221 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -133,9 +133,18 @@ stream_repos_pkgs=( [rocky-repos]=centos-stream-repos [epel-release]=epel-next-release ) + # Prefix to add to CentOS stream repo names when renaming them. stream_prefix=stream- +# Always replace these stream packages with their Rocky Linux equivalents. +stream_always_replace=( + fwupdate\* + grub2-\* + kernel + kernel-\* +) + unset CDPATH exit_message() { @@ -743,13 +752,13 @@ package_swaps() { grep '^/etc/yum\.repos\.d/.\+\.repo$' ) - if (( ${#installed_sys_stream_repos_pkgs[@]} )); then + if (( ${#installed_sys_stream_repos_pkgs[@]} )); then # Remove the package from the rpm db. saferpm -e --justdb --nodeps -a \ "${installed_sys_stream_repos_pkgs[@]}" || exit_message \ "Could not remove packages from the rpm db: ${installed_sys_stream_repos_pkgs[*]}" - fi + fi # Rename the stream repos with a prefix and fix the baseurl. sed -i \ @@ -757,7 +766,7 @@ package_swaps() { -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/$contentdir/$stream/|baseurl=|http://mirror.centos.org/centos/8-stream/' \ -e 's|^baseurl=http://vault.centos.org/$contentdir/$stream/|baseurl=|https://vault.centos.org/centos/8-stream/' \ - "${repos_files[@]}" + "${repos_files[@]}" fi # Use dnf shell to swap the system packages out. @@ -905,6 +914,12 @@ EOF errmsg \ $'Failed to disable CentOS Stream repos, please check and disable manually.\n' + if (( ${#stream_always_replace[@]} )) && + [[ $(saferpm -qa "${stream_always_replace[@]}") ]]; then + safednf -y distro-sync "${stream_always_replace[@]}" || + exit_message "Error during distro-sync." + fi + infomsg $'\nCentOS Stream Migration Notes:\n\n' cat < Date: Wed, 24 Nov 2021 04:48:51 +1300 Subject: [PATCH 5/6] Fix syntax error in sed regexes. --- migrate2rocky/migrate2rocky.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index e1aa221..2e4a75a 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -763,9 +763,9 @@ package_swaps() { # Rename the stream repos with a prefix and fix the baseurl. sed -i \ -e 's/^\[/['"$stream_prefix"'/' \ - -e 's|^mirrorlist=|#mirrorlist=|g' \ - -e 's|^#baseurl=http://mirror.centos.org/$contentdir/$stream/|baseurl=|http://mirror.centos.org/centos/8-stream/' \ - -e 's|^baseurl=http://vault.centos.org/$contentdir/$stream/|baseurl=|https://vault.centos.org/centos/8-stream/' \ + -e 's|^mirrorlist=|#mirrorlist=|' \ + -e 's|^#baseurl=http://mirror.centos.org/$contentdir/$stream/|baseurl=http://mirror.centos.org/centos/8-stream/|' \ + -e 's|^baseurl=http://vault.centos.org/$contentdir/$stream/|baseurl=https://vault.centos.org/centos/8-stream/|' \ "${repos_files[@]}" fi From 2995c40c8326128484e35fe9ae0f660dd7118a4a Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Thu, 25 Nov 2021 00:29:46 +1300 Subject: [PATCH 6/6] Always replace the shim with the one for Rocky Linux. --- migrate2rocky/migrate2rocky.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index 2e4a75a..24e58e9 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -141,6 +141,7 @@ stream_prefix=stream- stream_always_replace=( fwupdate\* grub2-\* + shim-\* kernel kernel-\* )