diff options
Diffstat (limited to 'profiles/default/linux/arm64/17.0/musl/hardened/deprecated')
-rw-r--r-- | profiles/default/linux/arm64/17.0/musl/hardened/deprecated | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/profiles/default/linux/arm64/17.0/musl/hardened/deprecated b/profiles/default/linux/arm64/17.0/musl/hardened/deprecated new file mode 100644 index 000000000000..7a1a18659361 --- /dev/null +++ b/profiles/default/linux/arm64/17.0/musl/hardened/deprecated @@ -0,0 +1,104 @@ +default/linux/arm64/23.0/split-usr/musl/hardened + +A profile upgrade to version 23.0 is available for your architecture. +The new 23.0 profiles enable some toolchain hardening features and +performance enhancements by default, and standardize settings. +You can find the list of changes on the wiki tracking page [1]. + +Upgrade instructions + +Note 1: If you have manually changed your CHOST to a value different from +what the stages and profiles set, you may have to do that in the future too. +In that case you should know what you are doing, hopefully; please read the +instructions with a critical eye then. + +Note 2: In case you are already familiar with binary packages, you should be +able to add "--getbinpkg" to the emerge calls to speed things up. +The use of binary packages is completely optional though, and also not +as much tested as the source-based upgrade path yet. + +1. Ensure your system backups are up to date. Please also update + your system fully and depclean before proceeding. + glibc older than 2.36 and musl older than 1.2.4 is not supported anymore. + +2. If you are still using one of the long-deprecated amd64 17.0 profiles + (other than x32 or musl), then first complete the migration to the + corresponding 17.1 profile. Instructions can be found at [3]. + +3. If you are currently using systemd in a split-usr configuration, then first + complete the migration to the corresponding merged-usr profile of the + same profile version. Details on how to do this can be found in the news + item [4]. + If you are currently using openrc, migrate to 23.0 first, keeping your disk + layout. If you want to move from split-usr to merged-usr, do that afterwards. + +4. Run "emerge --info" and note down the value of the CHOST variable. + +5. Edit /etc/portage/make.conf; if there is a line defining the CHOST variable, + remove it. Also delete all lines defining CHOST_... variables. + +6. Select the 23.0 profile corresponding to your current profile, either using + "eselect profile" or by manually setting the profile symlink. + Note that old profiles are by default split-usr and the 23.0 profiles by + default merged-usr. Do NOT change directory scheme now, since this will + mess up your system! + Instead, make sure that the new profile has the same property: for example, + OLD default/linux/amd64/17.1 + ==> NEW default/linux/amd64/23.0/split-usr + (added "split-usr") + OLD default/linux/amd64/17.1/systemd/merged-usr + ==> NEW default/linux/amd64/23.0/systemd + (removed "merged-usr") + A detailed table of the upgrade paths can be found at [5]. Please consult it. + In some cases (hppa, x86) the table will tell you to pick between two choices. + What you need should be obvious from your *old* CHOST value (from step 4). + +7. Delete the contents of your binary package cache at ${PKGDIR} + rm -r /var/cache/binpkgs/* + +8. In the file or directory /etc/portage/binrepos.conf (if existing), update + the URI in all configuration such that they point to 23.0 profile binhost + directories. The exact paths can be found in the table at [5], too. + +9. Rebuild or reinstall from binary (if available) the following packages in + this order, with the same version as already active: + emerge --ask --oneshot sys-devel/binutils + (you may have to run binutils-config and re-select your binutils now) + emerge --ask --oneshot sys-devel/gcc + (IMPORTANT: If this command wants to rebuild glibc first, do *not* let it do + that; instead, abort and try again with --nodeps added to the command line.) + (you may have to run gcc-config and re-select your gcc now) + and the C library, i.e. for glibc-based systems + emerge --ask --oneshot sys-libs/glibc + or for musl-based systems + emerge --ask --oneshot sys-libs/musl + +10. Re-run "emerge --info" and check if CHOST has changed compared to step 4. + +If the CHOST has NOT changed, skip to step 13 (env-update). Otherwise, + +11. Recheck with binutils-config and gcc-config that valid installed versions + of binutils and gcc are selected. + +12. Check /etc/env.d, /etc/env.d/binutils, and /etc/env.d/gcc for files that + refer to the *OLD* CHOST value, and remove them. + Examples how to do this can be found in the similar procedure at [6]. + +13. Run env-update && source /etc/profile + +14. Re-emerge libtool: + emerge --ask --oneshot libtool + +15. Just for safety, delete the contents of your binary package cache at + ${PKGDIR} again: + rm -r /var/cache/binpkgs/* + +16. Rebuild world: + emerge --ask --emptytree @world + +[1] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_transition +[2] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_profile_timeline +[3] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html +[4] https://www.gentoo.org/support/news-items/2022-12-01-systemd-usrmerge.html +[5] https://wiki.gentoo.org/wiki/Project:Toolchain/23.0_update_table +[6] https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable#Verifying_things_work |