FS#66762 - [systemd] incorrect removal of the base-devel group
Attached to Project:
Arch Linux
Opened by Eli Schwartz (eschwartz) - Sunday, 24 May 2020, 03:38 GMT
Last edited by Allan McRae (Allan) - Monday, 01 May 2023, 10:42 GMT
Opened by Eli Schwartz (eschwartz) - Sunday, 24 May 2020, 03:38 GMT
Last edited by Allan McRae (Allan) - Monday, 01 May 2023, 10:42 GMT
|
Details
systemd used to be installed in build chroots, because it is
used by e.g. sysusers.d which packages assume will correctly
create the base groups. This was originally discussed and
implemented in
systemd had groups=('base-devel') erroneously removed from it in https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/systemd&id=30853991d2940cfc6c169a306b76c62984ca22be with the explicit rationale: base group removal ... and also base-devel, as base depends on systemd. This is wrong, there is no "and" here, because base is not installed in a build chroot, only base-devel, and no motion has been made to add base to the base-devel group. The intention of the referenced commit was stated to remove base-devel as "extraneous, already covered by base", and that intention is wrong, causes significant functional changes to clean chroot builds, and should probably be reverted. This may cause issues when packages assume that /etc/passwd contains the correct user list (though I'll note that it's not currently an issue for sudo itself, despite As a side note, this also causes issues with some packages that try to autodetect which init is used, fail to detect systemd, and neglect to install systemd-relevant files. I discovered this anomaly when my build chroot which was created before this change, worked fine to build the AUR package "zfs-utils", but I got complaints from users that it didn't install the right files in a clean chroot, which puzzled me for a bit. |
This task depends upon
EDIT: we keep on finding packages that eventually end up being rebuilt in a new chroot and break.
The exception to this are packages in the base package and in the base-devel group.
For the record, I already have several packages which pull systemd in makedepends (e.g: btrfs-progs, docker, conntrack-tools).
We expect the Arch minimal installation have the base package installed, which pull systemd.
Currently, base-devel doesn't pull base, which make our build system to not fit with this requirement.
So, IMHO, the problem is that base is not in base-devel, than systemd is not in base-devel.
I remember someone requested addition/removal of base-devel was discussed on ADP. Maybe, this time, it could be done.
This is due to an unfortunate implementation in devtools.
Chroots which weren't fully recreated after this change (e.g. all devtools chroots by default) will still carry systemd along with them. devtools should probably make sure it has an up-to-date view of base-devel, and purges group removals.
I read in [1], that the base package is now mandatory in every arch installation, like filesystem.
If it's true, base should be in base-devel, as it's used as our clean build rootfs. systemd is pulled or not is not a matter of base-devel.
So, my point is we should NOT re-add systemd in base-devel, but add base, which is the real issue.
[1] https://www.archlinux.org/news/base-group-replaced-by-mandatory-base-package-manual-intervention-required/
FS#67044FS#67545, first time syslog-ng got built in a chroot without a preexisting systemd package.FS#68572