summaryrefslogtreecommitdiff
path: root/metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt
diff options
context:
space:
mode:
Diffstat (limited to 'metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt')
-rw-r--r--metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt148
1 files changed, 148 insertions, 0 deletions
diff --git a/metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt b/metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt
new file mode 100644
index 000000000000..0e2eebab7339
--- /dev/null
+++ b/metadata/news/2024-03-22-new-23-profiles/2024-03-22-new-23-profiles.en.txt
@@ -0,0 +1,148 @@
+Title: Profile upgrade to version 23.0 available
+Author: Andreas K. Huettel <dilfridge@gentoo.org>
+Posted: 2024-03-22
+Revision: 1
+News-Item-Format: 2.0
+Display-If-Profile: default/linux/alpha/17.0
+Display-If-Profile: default/linux/alpha/17.0/*
+Display-If-Profile: default/linux/amd64/17.0
+Display-If-Profile: default/linux/amd64/17.0/*
+Display-If-Profile: default/linux/amd64/17.1
+Display-If-Profile: default/linux/amd64/17.1/*
+Display-If-Profile: default/linux/arm/17.0
+Display-If-Profile: default/linux/arm/17.0/*
+Display-If-Profile: default/linux/arm64/17.0
+Display-If-Profile: default/linux/arm64/17.0/*
+Display-If-Profile: default/linux/hppa/17.0
+Display-If-Profile: default/linux/hppa/17.0/*
+Display-If-Profile: default/linux/ia64/17.0
+Display-If-Profile: default/linux/ia64/17.0/*
+Display-If-Profile: default/linux/loong/22.0
+Display-If-Profile: default/linux/loong/22.0/*
+Display-If-Profile: default/linux/m68k/17.0
+Display-If-Profile: default/linux/m68k/17.0/*
+Display-If-Profile: default/linux/mips/17.0
+Display-If-Profile: default/linux/mips/17.0/*
+Display-If-Profile: default/linux/powerpc/ppc64/17.0/*
+Display-If-Profile: default/linux/ppc/17.0
+Display-If-Profile: default/linux/ppc/17.0/*
+Display-If-Profile: default/linux/ppc64/17.0
+Display-If-Profile: default/linux/ppc64/17.0/*
+Display-If-Profile: default/linux/ppc64le/17.0
+Display-If-Profile: default/linux/ppc64le/17.0/*
+Display-If-Profile: default/linux/riscv/20.0/*
+Display-If-Profile: default/linux/s390/17.0
+Display-If-Profile: default/linux/s390/17.0/*
+Display-If-Profile: default/linux/sparc/17.0
+Display-If-Profile: default/linux/sparc/17.0/*
+Display-If-Profile: default/linux/x86/17.0
+Display-If-Profile: default/linux/x86/17.0/*
+
+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].
+
+We strongly advise to precisely follow the upgrade instructions found
+below. The 17.0, 17.1, 20.0, and 22.0 profiles will be marked deprecated
+in 2 months and removed a year later. The exact dates may depend on the
+architecture, see [2].
+
+Upgrade instructions
+
+Note 1: The use of binary packages is completely optional, and also not
+as much tested as the source-based upgrade path yet. If you prefer to
+only use the traditional source-based installation, omit the "--getbinpkg"
+parameter in all emerge invocations.
+
+Note 2: 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.
+
+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 --getbinpkg sys-devel/binutils
+ (you may have to run binutils-config and re-select your binutils now)
+ emerge --ask --oneshot --getbinpkg 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 --getbinpkg sys-libs/glibc
+ or for musl-based systems
+ emerge --ask --oneshot --getbinpkg sys-libs/musl
+
+10. Re-run "emerge --info" and check if CHOST has changed compared to step 3.
+
+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 --getbinpkg 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 --getbinpkg @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