packages icon indicating copy to clipboard operation
packages copied to clipboard

Merge `/usr` (T10615)

Open celticmagic opened this issue 2 years ago • 0 comments

Silke (@silkeh), 2023-08-06 13:14:54 UTC

Now systemd will drop support for unmerged-usr setups, it seems we have to switch to a merged /usr as well. Also see the Case for the /usr Merge.

Related issues and MRs:

  • [x] https://github.com/getsolus/clr-boot-manager/pull/6
  • [ ] https://github.com/getsolus/eopkg/issues/73
  • [ ] 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
  • [ ] 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):
    • [ ] bbswitch
    • [ ] broadcom-sta
    • [ ] linux-current
    • [ ] linux-lts
    • [ ] nvidia-470-glx-driver (also: /sbin/create-uvm-dev-node)
    • [ ] nvidia-beta-driver (also: /sbin/create-uvm-dev-node)
    • [ ] nvidia-developer-driver (also: /sbin/create-uvm-dev-node)
    • [ ] nvidia-glx-driver (also: /sbin/create-uvm-dev-node)
    • [ ] openrazer
    • [ ] v4l2loopback
    • [ ] vhba-module
    • [ ] virtualbox (also: /sbin/mount.vboxsf)
    • [ ] 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

celticmagic avatar Aug 17 '23 00:08 celticmagic