On Fri, 09 Jun 2023, Marco d'Itri wrote: > On Jun 08, Raphael Hertzog <hert...@debian.org> wrote: > > > In the same spirit, I'd like to throw an idea... could we decide that > > base-files is the first package to be configured as part of the bootstrap > > protocol and change base-files maintainer's scripts into statically linked > > executables so that they can work even if we don't have the library loader > > on the ABI-compliant path? > It could be even easier: base-files could be unpacked once without > running the maintainer scripts and then "reinstalled" again later as > usual.
I think you are missing the point here, that only works if the package is shipping the symlinks. And the idea is to not do this immediately because it breaks debootstrap: if I understood correctly unpacking base-files with the symlinks would fail if debootstrap had already pre-created those symlinks (due to a -k option that we should get rid of in /usr/share/debootstrap/scripts/debian-common). Hence the special maintainer script to create the required symlinks without relying on /bin/sh or any dynamically linked executable. > > And creating the required symlinks would be done by those (standalone) > > maintainer scripts... > > > > I don't know if we already have some rule/invariant in the configuration > > order of the unpacked packages, but I doubt so. > > Indeed, this would be very simple and it has already been proposed. > But somebody then complained that special-casing a package would violate > the design contraints he self-imposed to his own image building tool, > and as we all know every Debian maintainer can veto any systemic changes > that they do not like. That's not very helpful. Nobody has vetoed anything here. But I agree that it would be cleaner if we could reach a situation where we can just unpack all packages and have a working system where we can just "dpkg --configure -a" and be done. You don't care about this goal, it's fine, but it's not a reason to paint this as a black/white picture. We can have both, we just need an intermediate step. I understand some would rather just be done with this transition (so am I...), but going the extra mile here doesn't seem unreasonable. --- Coming back to my initial suggestion, I realize however that while the maintainer script can run, dpkg itself will not run in the chroot so if debootstrap is relying on dpkg to do the initial base-files configuration, this will not work. So this looks like that we will have to continue to rely on debootstrap to create the symlinks and we will have to fix it so that it can properly unpack a base-files containing /bin and /lib as symlinks on top of existing symlinks. And the actual switch to include /bin and /lib symlinks in base-files can be done once we have fixed debootstrap in all relevant releases. And after we can stop pre-creating those symlinks in debootstrap for all future releases. Cheers, -- ⢀⣴⠾⠻⢶⣦⠀ Raphaël Hertzog <hert...@debian.org> ⣾⠁⢠⠒⠀⣿⡁ ⢿⡄⠘⠷⠚⠋ The Debian Handbook: https://debian-handbook.info/get/ ⠈⠳⣄⠀⠀⠀⠀ Debian Long Term Support: https://deb.li/LTS
signature.asc
Description: PGP signature