From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6B896158020 for ; Wed, 23 Nov 2022 13:47:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 59927E0997; Wed, 23 Nov 2022 13:47:29 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 248B5E08AD for ; Wed, 23 Nov 2022 13:47:29 +0000 (UTC) Message-ID: <81f20bc4cd8d05829ac96fc134c5171caf1d615f.camel@gentoo.org> Subject: Re: [gentoo-dev] [RFC] sys-meta/* to own and control /bin/{cpio,sh,tar,...} symlinks (alternatives-ish) From: Michael Orlitzky To: gentoo-dev@lists.gentoo.org Date: Wed, 23 Nov 2022 08:47:25 -0500 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 X-Archives-Salt: 957a5c4c-06d2-46e1-b692-030a62a411e1 X-Archives-Hash: 22bec94fa3792a8afebcb131f1327f39 On Wed, 2022-11-23 at 08:38 +0100, Micha=C5=82 G=C3=B3rny wrote: > Hello, everyone. >=20 > TL;DR: I'd like to add sys-meta/{cpio,sh,tar} to install and control > (via USE flags) /bin/{cpio,sh,tar} symlinks. >=20 > Draft PR: https://github.com/gentoo/gentoo/pull/28390 >=20 I generally favor using the package manager in these situations, but there's a lot of user-facing documentation (and user configurations) that will need updating. We should probably have a GLEP -- and eventually a news item -- for this. A few comments: * The new category is a bit annoying. I know the PMS says that =C2=A0 virtuals can't install files, but having an entirely separate=C2=A0 category for virtuals that install a symlink feels excessive. Not that I have a better idea. * The name also suggests to me that it will control sys-*=C2=A0 implementations, but the victims so far are all app-*. Obviously, we don't want twenty *-meta categories though. * The -meta prefix is already used in a bunch of ebuilds to mean something different. The packages in sys-meta won't be=C2=A0 "metapackages" in the same sense. * Should we replace app-arch/tar with sys-meta/tar in @system? * Having to specify the relationship twice (once in the sys-meta=C2=A0 package and once in each implementation) is also a bit ugly, as is=C2= =A0 having to account for the symlink not being installed (yet) in=C2=A0 each implementation's pkg_postinst. This made me wonder, could=C2=A0 the RDEPEND/PDEPEND be reversed? In other words, could (say) GNU=C2=A0 tar require that the symlink be present immediately, but the=C2=A0 metapackage only require that some implementation be merged=C2=A0 eventually? To answer my own question, the PMS says that PDEPENDs "must be=C2=A0 installed at some point before the package manager finishes the=C2=A0 batch of installs," which would be problematic if some later=C2=A0 package=C2=A0in the batch actually needed a tar implementation=C2=A0 available=C2=A0to=C2=A0build. We can't change the PMS, so=C2=A0installi= ng a=C2=A0 symlink in the implementation=C2=A0ebuilds avoids the=C2=A0issue, but s= till=20 =C2=A0 eventually cedes control to the sys-meta package. I guess you already thought through all of that? If so, it would be nice to have the rationale written down somewhere that we can refer back to. * Is it worth thinking about improvements to EAPI=3D? that could help=C2= =A0 us here? By e.g. allowing virtuals to install symlinks, or by=C2=A0 making PDEPEND kick in sooner (after this package, but before the=C2=A0 rest of the batch)? Despite all the skeptical-sounding feedback, I think this is a good idea, and an improvement over eselect.