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
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Christian Hesse (eworm)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 6
Private No

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  FS#55492 .

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  FS#55492  -- it currently passes its tests with a subpar /etc/{passwd,group} just fine).

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

Closed by  Allan McRae (Allan)
Monday, 01 May 2023, 10:42 GMT
Reason for closing:  Won't implement
Comment by Eli Schwartz (eschwartz) - Sunday, 24 May 2020, 03:41 GMT
The counterpoint is that we've apparently been chugging along fine for months now without it, and no one even noticed. But I'm unsure whether that assumption should be relied on.

EDIT: we keep on finding packages that eventually end up being rebuilt in a new chroot and break.
Comment by Christian Hesse (eworm) - Monday, 25 May 2020, 11:20 GMT
I think that packages which require systemd to build should just add it in (make)depends.
Comment by Sébastien Luttringer (seblu) - Wednesday, 27 May 2020, 19:00 GMT
To follow up on your request on AUR, I think every package which depend on another should be pulled in a dependency field.
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.
Comment by Stephan S (buzo) - Tuesday, 02 June 2020, 16:58 GMT
Another package affected by this change is https://aur.archlinux.org/packages/qt5-base-headless/ .
Comment by Robin Broda (coderobe) - Tuesday, 02 June 2020, 16:58 GMT
>The counterpoint is that we've apparently been chugging along fine for months now without it, and no one even noticed.

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.
Comment by Doug Newgard (Scimmia) - Tuesday, 02 June 2020, 16:59 GMT
base and base-devel are separate, discreet groups that may or may not overlap. base used to be installed in build chroots but was specifically removed. It should NOT be assumed.
Comment by Sébastien Luttringer (seblu) - Wednesday, 03 June 2020, 13:25 GMT
@Scimmia, we agree, they are separate and may or may not overlap.

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/
Comment by Eli Schwartz (eschwartz) - Saturday, 20 June 2020, 00:05 GMT
This just caused  FS#67044 
Comment by Eli Schwartz (eschwartz) - Monday, 10 August 2020, 16:49 GMT
This also caused  FS#67545 , first time syslog-ng got built in a chroot without a preexisting systemd package.
Comment by Eli Schwartz (eschwartz) - Friday, 13 November 2020, 12:05 GMT
This also caused  FS#68572 
Comment by Allan McRae (Allan) - Monday, 01 May 2023, 10:41 GMT
This is so old that the base-devel group does not even exist any more. Closing

Loading...