getsolus / packages

Solus Package Monorepo & Issue Tracker
66 stars 85 forks source link

Merge `/usr` (T10615) #293

Closed celticmagic closed 1 month ago

celticmagic commented 1 year ago
Silke (@silkeh), 2023-08-06 13:14:54 UTC

Now systemd [will drop support](https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html) for *unmerged-usr* setups, it seems we have to switch to a merged `/usr` as well. Also see [the Case for the /usr Merge](https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/). Related issues and MRs: - [x] https://github.com/getsolus/clr-boot-manager/pull/6 - [x] https://github.com/getsolus/eopkg/issues/73 - [x] https://github.com/getsolus/packages/issues/3691 - [x] https://github.com/getsolus/eopkg/pull/79 --- Plan: There are two orders in which we can do this: 1. Move first: 1. Get all main package contents out of `/bin`, `/sbin`, `/lib32` and `/lib64`. Provide compatibility symlinks where needed (eg: `/bin/bash`). 2. Remove compatibility symlinks, and directly 3. Symlink `/{bin,sbin,lib32,lib64}` to their `/usr/` counterparts with a `usysconf` trigger. The trigger will be trivial as those directories //should// be empty. 2. Move later (rejected): 1. Remove compatibility symlinks, and directly 2. Symlink `/{bin,sbin,lib32,lib64}` to their `/usr/` counterparts through a `usysconf` trigger. The trigger will be somewhat complicated as it would need to actually merge the directories. 3. Get all main package contents out of `/bin`, `/sbin`, `/lib32` and `/lib64` (leisurely). Support in software: - [x] CBM: https://github.com/getsolus/clr-boot-manager/pull/6 - [x] eopkg: https://github.com/getsolus/eopkg/issues/73 Packages with files in `/{bin,sbin,lib,lib32,lib64}` (where the file is not a symlink to `/usr/`): - Programs (`/bin` and `/sbin`): - [x] acl - [x] apcupsd - [x] attr - [x] audit (with compatiblity symlinks) - [x] bash - [x] busybox - [x] bzip2 (with compatiblity symlinks) - [x] cifs-utils (with compatiblity symlinks) - [x] coreutils - [x] cpio (with compatiblity symlinks) - [x] davfs2 (with compatiblity symlinks) - [x] e2fsprogs (with compatiblity symlinks) - [x] fuse2 (with compatiblity symlinks) - [x] iproute2 (with compatiblity symlinks) - [x] kmod - [x] lvm2 - [x] mdadm (with compatiblity symlinks) - [x] multipath-tools - [x] nfs-utils - [x] ntfs-3g (with compatiblity symlinks) - [x] ocamlbuild (with compatiblity symlinks) - [x] procps-ng (also see T9039) - [x] shadow - [x] systemd (with compatiblity symlinks) (note: broken symlink in `/lib/udev/udevd`) - [x] tar - [x] tcsh - [x] tlp - [x] util-linux - [x] wpa_supplicant - [x] xfsprogs - [x] zsh - Libraries: - [x] musl - [x] notmuch - Firmware (`/lib/firmware`): - [x] alsa-firmware (with compatiblity symlinks) - [x] intel-microcode (with compatiblity symlinks) - [x] linux-firmware (with compatiblity symlinks) - [x] sof-firmware (with compatiblity symlinks) - [x] wireless-regdb (with compatiblity symlinks) - Kernel modules (`/lib/modules`): - [x] bbswitch - [x] broadcom-sta - [x] linux-current - [x] linux-lts - [x] nvidia-470-glx-driver (also: `/sbin/create-uvm-dev-node`) - [x] nvidia-beta-driver (also: `/sbin/create-uvm-dev-node`) - [x] nvidia-developer-driver (also: `/sbin/create-uvm-dev-node`) - [x] nvidia-glx-driver (also: `/sbin/create-uvm-dev-node`) - [x] openrazer - [x] v4l2loopback - [x] vhba-module - [x] virtualbox (also: `/sbin/mount.vboxsf`) - [x] xone - PAM (`/lib*/security`): - [x] fprintd - [x] gdm - [x] gnome-keyring - [x] kwallet-pam - [x] libcap2 - [x] libpwquality - [x] pam-krb5 - [x] pam-u2f - [x] pam (also: `/sbin`) - [x] samba - [x] systemd - [x] virtualbox - [x] yubico-pam - Other/mixed: - [x] apparmor (with compatiblity symlinks) - [x] glibc (with compatiblity symlinks) - [x] iptables (with compatiblity symlinks) Packages with symlinks to `/usr` in `/{bin,sbin,lib,lib32,lib64}` or vice versa: - [ ] coreutils - [ ] dash - [ ] gcc (`/lib/cpp` -> `/usr/bin/cpp`) - [ ] glibc - [ ] grep - [ ] sed - [ ] systemd - [ ] util-linux - [ ] xfsdump Third party packages with files in `/{bin,sbin,lib,lib32,lib64}`: - [ ] google-earth (`/lib/ld-lsb-x86-64.so.3`) Usysconf-epoch remaining todos: - [x] Shellcheck script - [x] Finish orphan code - [x] Special-case depmod
ermo commented 1 month ago

@silkeh How many of the checkboxes are done here?!

silkeh commented 1 month ago

Some of the linked tasks contain steps for the epoch transition, and some checkboxes apply to that as well. Closing this in favour of #4119 as I consider the /usr merge to be completed with the release of the latest ISOs!