Gentoo Repository News
Haskell destabilization - 29/09/2024 00:00 GMT
Packaging Haskell software has proven difficult in Gentoo: many packages are outdated, unstable versions have not been stabilized in nearly a year, and stable versions are rather old. In an effort to reduce the load on the Haskell maintainers, stable keywords will be removed from dev-haskell/* packages and their reverse dependencies on October 1. Users with Haskell packages should add entries to their package.accept_keywords for these packages to avoid issues rebuilding or upgrading them in the future. This change does not preclude stabilizing Haskell packages in the future. Haskell packaging is mostly taking place in the Haskell repository [1]. [1] https://github.com/gentoo-haskell/gentoo-haskell
Posted By: Matt Turner
KDE Plasma 6.1.4 and Gear 24.05.2 Upgrade - 31/08/2024 00:00 GMT
Reasons ======= KDE Plasma 5 has reached end of life and is no longer supported by Gentoo. Qt5 upstream OSS support ended on 2020-12-08, and LTS releases - even with considerable effort by KDE community's backports on top - only go so far. It is therefore required for all users to upgrade to KDE Plasma 6[1]. At the same time, KDE Gear 24.05.2 is provided with most applications ported over to KDE Frameworks 6. As long as KF5-based applications are being shipped with the KDE Gear bundle, and other non-KDE Qt5-based applications still common in ::gentoo repository, it is advised *not* to disable USE="qt5". Changes ======= Not many - much like Qt6, this is mostly an evolution of the existing codebase, no disruptive feat. Plasma Wayland support has come a long way and therefore KDE developers have decided to make it the default login session for Plasma 6, even if some known papercuts[2] remain. For users affected too much by those, switching to the still existing X11 session is as easy as selecting it in the display manager of choice. Disabling USE="wayland" is *not* changing this default, it will yield no dependency savings, and we advise against doing so. It does not affect users' X11 sessions. In Gentoo: The 32-bit ~arm/arm keyword was inconsistent across KDE Plasma, KDE Frameworks, and KDE Gear, and has been dropped. The situation for x86 was similar to arm and test failures often blocked stabilization. Stable x86 has been dropped, ~x86 was dropped for KDE PIM, dev-util/kdevelop and any other dev-qt/qtwebengine:6 reverse dependencies. User Action Required ==================== For users of a desktop profile[3], no specific upgrade steps are necessary, although some precautionary measures are advised before and during upgrade: - Switch to a standard (Breeze or Oxygen) theme - Depclean kde-misc/latte-dock, it is unfit for Plasma 6 (and masked already) - Cleanup sets and @world from any SLOT or version pinning of KDE packages - If possible, perform the upgrade not inside a running Plasma session Necessary USE flag changes were already made in desktop profile, therefore only users of other profiles should set USE="kf6compat qt6" globally[4]. Users are recommended to run the following command (pretend-only) to identify packages in @world which have been removed, to help reduce conflicts: emerge -pev @world --backtrack=0 Then for any "no ebuild available" messages, either resolve it by making the needed changes, or emerge --deselect them. Then proceed to the world upgrade below. Once the packages become available on your arch, it should be as simple as update @world: emerge -avuUD @world Run dispatch-conf (preferred) or etc-update to get updated configuration files: dispatch-conf Then depclean: emerge -ac [1] https://kde.org/plasma-desktop/ [2] https://community.kde.org/Plasma/Wayland_Known_Significant_Issues [3] https://wiki.gentoo.org/wiki/KDE#Profile [4] https://wiki.gentoo.org/wiki//etc/portage/package.use
Posted By: Andreas Sturmlechner
dracut module config changes - 09/08/2024 00:00 GMT
Starting with dracut-102, cryptsetup support for systemd has been moved into a separate module "systemd-cryptsetup". Under specific conditions, this change may cause a failure to boot. [1] Users who are not using cryptsetup at all will not be affected. Users who use the "dracutmodules" config option to explicitly name all modules to be included may be affected if they fail to update their dracut configuration to include the new "systemd-cryptsetup" module. Users who have not altered the default config or who are not using the "dracutmodules" option should not be affected. The dracut.conf(5) manual page warns against using "dracutmodules". Instead, "add_dracutmodules" and "omit_dracutmodules" can be used to to alter the default module list with less risk of omiting modules by accident. [1] https://bugs.gentoo.org/937326
Posted By: Mike Gilbert
Gentoo drops IA-64 support - 07/08/2024 00:00 GMT
Following the removal of IA-64 support in the Linux kernel and glibc, and subsequent discussions on our mailing list [1], as well as a vote by the Gentoo Council [2,3], Gentoo will discontinue all ia64 profiles and keywords. The primary reason for this decision is the inability of the Gentoo IA-64 team to support this architecture without kernel support, glibc support, and a functional development box. In one month, all ia64 profiles will be removed, all ia64 keywords will be dropped from all packages, and all IA-64 related Gentoo bugs will be closed. [1] https://public-inbox.gentoo.org/gentoo-dev/75654daa-c5fc-45c8-a104-fae43b9ca490@gentoo.org/T/ [2] https://projects.gentoo.org/council/meeting-logs/20240721.txt [3] https://projects.gentoo.org/council/meeting-logs/20240721-summary.txt
Posted By: Arthur Zamarin
Upgrading to TeX Live 2023 - 05/06/2024 00:00 GMT
Upgrading to TeX Live 2023 ========================== We will soon start the stabilization of TeX Live 2023 in Gentoo. Since TeX Live 2023 underwent a major overhaul, including TeX Live package moves between the according Gentoo packages, there are file conflicts between Gentoo's TeX Live 2021 and 2023 packages. To avoid those conflicts, it is recommended to uninstall all of dev-texlive prior updating TeX Live to version 2023. Before uninstalling dev-texlive packages, first check if your system has a pending texlive update (1). If this is the case, uninstall the old dev-texlive packages (2) and emerge the update (3). 1. emerge -p '>=app-text/texlive-2023' [only proceed if texlive update is available] 2. emerge --unmerge --deselect=n 'dev-texlive/*' 3. emerge '>=app-text/texlive-2023' The steps above are equivalent to the following bash snippet: if emerge -p '>=app-text/texlive-2023'; then emerge --unmerge --deselect=n 'dev-texlive/*' emerge '>=app-text/texlive-2023' fi
Posted By: Florian Schmaus
Changes to dracut kernel module/microcode handling - 17/05/2024 00:00 GMT
Impact ==================== Several changes were made regarding out-of-tree kernel modules, CPU microcode, and how these are handled in initial RAM file systems (initramfs) generated by sys-kernel/dracut for distribution kernels. Depending on the local Dracut and USE flag configuration, some configuration adjustments may be required as a result of these changes. Background (the problem) ==================== Previously Dracut implicitly included all out-of-tree kernel modules it could find. This leads to several problems: - It unnecessarily increases the size of the initramfs - It creates a bit of a mess when using distribution kernels, consider the following: 1) Distribution kernel is upgraded 2) Initramfs for the new kernel is generated, it does not include any out-of-tree kernel modules. 3) Portage triggers rebuild of the out-of-tree kernel modules 4) If zfs is installed, its rebuild will trigger an initramfs re-installation. Otherwise no rebuild is triggered. Problem: What is and is not included in the initramfs is now ambiguous. It depends on the emerge order of the kernel modules when zfs is used. And will completely change if at some later stage regeneration of the initramfs is triggered manually via e.g.: emerge --config sys-kernel/gentoo-kernel As a result, Dracut's "--reproducible" setting is not working. And the functionality of the initramfs may change (seemingly) at random. Background (the fix) ==================== Several things have been changed: - Out-of-tree kernel modules installed by portage are explicitly omitted from the initramfs generated by Dracut by default. - Packages that install a kernel module for which it might make sense to have it in the initramfs, have gained the "initramfs" USE flag. When this flag is enabled, Dracut is instructed to include the installed kernel modules. Packages for which it is essential that its kernel modules are included in the initramfs have this new flag enabled by default. - When distribution kernels are used (USE=dist-kernel), and a module that should be in the initramfs is installed (USE=initramfs) the initramfs is always re-generated. - The packages installing CPU microcode (sys-kernel/linux-firmware and sys-firmware/intel-microcode) have been adjusted to mirror the above changes for out-of-tree kernel modules. Both packages have gained the "dist-kernel" USE flag, and the "initramfs" flag is now enabled by default. When both flags are enabled, Dracut is configured to include the installed microcode in the initramfs, and then the initramfs is regenerated. When the "dist-kernel" flag is disabled, the "initramfs" flag behaves as it previously did. User Action Required (Dracut and/or Distribution Kernel users) ==================== Users of sys-kernel/dracut and/or Distribution Kernels should double check two things: 1) Please ensure that you are *not* globally enabling or disabling the "initramfs" USE flag. Enabling it globally might result in an unnecessarily large initramfs. Disabling it globally might result in missing functionality in the initramfs. Which could lead to boot failure if, for example, the zfs module is missing while the root partition is a zfs. 2) Any add_drivers, or omit_drivers lines in /etc/dracut.conf or /etc/dracut.conf.d/* may override the Dracut configuration snippets installed by the kernel module packages in /usr/lib/dracut/dracut.conf.d. Please review your Dracut configuration files to ensure that you are not unintentionally overriding the settings set by Portage. User Action Required (other users) ==================== Other users may wish to disable the "initramfs" USE flag on sys-kernel/linux-firmware and/or sys-firmware/intel-microcode if they already have other mechanisms in place for updating the CPU microcode (such as kernel built-in CPU microcode). Users who do not use sys-kernel/dracut or Distribution Kernels can safely disable the "initramfs" USE flag globally. Frequently Asked Questions ==================== A package installing a kernel module I would like in my initramfs has not gained the "initramfs" USE flag. How do I proceed? Please report a new bug on bugs.gentoo.org, requesting that the package maintainer consider adding support to the package for including the modules in the initramfs. In the meantime you can locally override the configuration provided by the package (see below). Note though that when distribution kernels are used, regeneration of the initramfs must be triggered manually via e.g.: emerge --config sys-kernel/gentoo-kernel How do I override the provided Dracut configuration snippets to include/exclude a custom list of modules? To override the provided configuration snippet, create a new file /etc/dracut.conf.d/10-PACKAGENAME.conf, replacing PACKAGENAME with the name of the package providing the module. Add to this file: omit_drivers+=" my list of drivers to omit " and/or add_drivers+=" my list of drivers to include "
Posted By: Andrew Ammerlaan
Python 3.12 to become the default on 2024-06-01 - 09/05/2024 00:00 GMT
We are planning to switch the default Python target of Gentoo systems on 2024-06-01, from Python 3.11 to Python 3.12. If you have not changed the values of PYTHON_TARGETS or PYTHON_SINGLE_TARGET, the change will have immediate effect on your system and the package manager will try to switch automatically on the next upgrade following the change. If you did change the values, prefer a safer approach or have problems with the update, read on. Please note that the default upgrade method switches packages to the new Python versions as they are rebuilt. This means that all interdependent packages have to support the new version for the upgrade to proceed, and that some programs may temporarily fail to find their dependencies throughout the upgrade (although programs that are already started are unlikely to be affected). If you have PYTHON_TARGETS or PYTHON_SINGLE_TARGET declared in make.conf, please remove these declarations as they will interfere with the package.use samples provided below. Using make.conf for Python targets is discouraged as it prevents package defaults from applying when necessary. This news item assumes using /etc/portage/package.use or your package manager's equivalent file for configuration. At this point, you have a few configuration options to choose from: 1. If you wish Python upgrades to apply automatically, you can remove PYTHON_TARGETS and PYTHON_SINGLE_TARGET declarations. When the defaults change, your package manager should handle the upgrade automatically. However, you may still need to run the update commands if any problems arise. 2. If you wish to defer the upgrade for the time being, you can explicitly set the old values in package.use. 3. If you wish to force the upgrade earlier, you can explicitly set the new values and run the upgrade commands. 4. If you wish to use a safer approach (i.e. less likely to temporarily break packages during the upgrade), you can perform a multi-step upgrade as outlined below. 5. Finally, you can use an arbitrary combination of PYTHON_TARGETS and PYTHON_SINGLE_TARGET. Deferring the upgrade ===================== To defer the upgrade, explicitly set the old targets: */* PYTHON_TARGETS: -* python3_11 */* PYTHON_SINGLE_TARGET: -* python3_11 This will enforce Python 3.11 and block any future updates. However, please note that this is only a temporary solution and you will eventually need to perform the migration. Forcing the upgrade =================== To force the upgrade earlier, explicitly select the Python 3.12 targets: */* PYTHON_TARGETS: -* python3_12 */* PYTHON_SINGLE_TARGET: -* python3_12 However, it is important to remember to remove this after the defaults change, as it will interfere with the automatic switch to the next Python version in the future. Safer upgrade procedure ======================= A safer approach is to add Python 3.12 support to your system first, and only then remove Python 3.11. However, note that this involves two rebuilds of all the affected packages, so it will take noticeably longer. First, enable both Python 3.11 and Python 3.12, and then run the upgrade commands: */* PYTHON_TARGETS: -* python3_11 python3_12 */* PYTHON_SINGLE_TARGET: -* python3_11 Then switch PYTHON_SINGLE_TARGET and run the second batch of upgrades: */* PYTHON_TARGETS: -* python3_11 python3_12 */* PYTHON_SINGLE_TARGET: -* python3_12 Finally, switch to the final version and upgrade: */* PYTHON_TARGETS: -* python3_12 */* PYTHON_SINGLE_TARGET: -* python3_12 You may wish to remove the target overrides after the defaults switch. Alternatively, you can keep them to block the next automatic upgrade to Python 3.13, and upgrade manually then. Upgrade commands ================ The Python 3.11 cleanup requires that Python 3.11 is removed from the complete dependency trees in batch. If some of the installed packages using an older Python version are not triaged for the upgrade, the package manager will throw dependency conflicts. This makes it important that the upgrade is carried via a --deep --changed-use @world upgrade, as well as that any stray packages are removed prior to it, e.g.: emerge --depclean emerge -1vUD @world emerge --depclean
Posted By: Michał Górny
dev-lang/perl useflags become a PERL_FEATURES use-expand - 07/05/2024 00:00 GMT
Starting with dev-lang/perl-5.38.2-r3, the three use flags "debug", "ithreads", and "quadmath" of Perl are renamed into a common use-expand variable, PERL_FEATURES, which should be set *globally* in make.conf. If you do *not* want to change the settings of your Perl, make sure that the new variable PERL_FEATURES contains the same settings that were applied to your Perl all along. I.e., if you have dev-lang/perl[ithreads] installed, make sure to now set in make.conf PERL_FEATURES="ithreads" If you *want* to change the settings of your Perl, you may have to run perl-cleaner after rebuilding dev-lang/perl: perl-cleaner --modules ; perl-cleaner --force --libperl In either case, a full world update emerge -uDNav world is recommended and should also bring your system into a consistent state. Background: This change in the structure of the useflags is intended to solve bug 930123. The three useflags influence not only how Perl itself is installed, but also all Perl modules...
Posted By: Andreas K. Huettel
media-video/wireplumber-0.5.2 may break on upgrade - 06/05/2024 00:00 GMT
As some will be aware, WirePlumber 0.5.0 introduced a significant breaking change to its entire configuration system, eliminating the use of Lua scripts for configuration purposes. This also came with a complete rework of how Lua scripts are registered with WirePlumber for execution. Most typical desktop users, including EasyEffects users, should not notice any change to their system. That said, it was not uncommon for people to suggest or implement configuration changes using the Lua API. Any custom functionality which relies on WirePlumber's Lua API will break upon upgrade. If you rely on this functionality, please review the WirePlumber documentation on porting your Lua scripts to the new API and registering them with the system before upgrading: https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/migration.html
Posted By: James Calligeros
Profile upgrade to version 23.0 available - 22/03/2024 00:00 GMT
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: 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 $ 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 $ 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
Posted By: Andreas K. Huettel