On 2016-08-11 22:12, Javier Serrano Polo wrote: > X-Debbugs-CC: clint@debian.org, aurel32@debian.org, adconrad@0c3.net, sthibault@debian.org > > El dj 11 de 08 de 2016 a les 21:55 +0200, Aurelien Jarno va escriure: > > On 2016-08-11 21:32, Javier Serrano Polo wrote: > > > libc-bin is tagged essential since 2.13-10. Old systems based on Squeeze > > > can work without libc-bin, with a dpkg that does not require ldconfig. > > > > No they can't. In squeeze, the binaries from libc-bin were included in > > libc6. The package has been split as part of the switch to multiarch. > > This is not correct: > https://archive.debian.net/squeeze/libc-bin Indeed I was wrong. Looking at the history we had to do that in multiple steps to be able to provide and upgrade path and have libc-bin depends on libc6 and not the other way around. This has been done with the following steps: - libc6 was de facto essential (essential packages depending on it), but it was not possible to mark it as essential as it is a library. - libc-bin has been split from libc6. libc6 got added a dependency on libc-bin. libc-bin therefore became de facto essential. - libc-bin has been marked Essential - libc6 dropped the dependency on libc-bin. libc-bin added a dependency on libc6. As per policy permission to make libc-bin essential has been asked on debian-devel. You'll find the mail there: https://lists.debian.org/debian-devel/2011/07/msg00006.html > > > Could anyone explain why libc-bin is essential? > > > > Because it provides binaries and configuration files essential for the > > system: ldconfig, getent, ld.so.conf, nsswitch.conf, C.UTF-8 locale, etc. > > These elements are very useful, but a system based on Squeeze can work > without them. Is there any other reason in a Sid system? ldconfig is definitely necessary, it is called in all postinst scripts. If you don't have it, packages fail to configure: | (squeeze-amd64)root@ohm:~# dpkg-reconfigure libpcre3 ; echo $? | debconf: unable to initialize frontend: Dialog | debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 75.) | debconf: falling back to frontend: Readline | /var/lib/dpkg/info/libpcre3.postinst: 6: ldconfig: not found | 127 Further more you can't install a package: | (squeeze-amd64)root@ohm:~# apt-get install -y dialog | Reading package lists... Done | Building dependency tree | Reading state information... Done | The following extra packages will be installed: | libncursesw5 | The following NEW packages will be installed: | dialog libncursesw5 | 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. | Need to get 684 kB of archives. | After this operation, 2367 kB of additional disk space will be used. | Get:1 http://localhost/debian-archive/ squeeze/main libncursesw5 amd64 5.7+20100313-5 [390 kB] | Get:2 http://localhost/debian-archive/ squeeze/main dialog amd64 1.1-20100428-1 [295 kB] | Fetched 684 kB in 0s (63.2 MB/s) | debconf: delaying package configuration, since apt-utils is not installed | dpkg: warning: 'ldconfig' not found in PATH or not executable. | dpkg: 1 expected program not found in PATH or not executable. | NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin. | E: Sub-process /usr/bin/dpkg returned an error code (2) So it is clearly not correct to say that a squeeze or a sid system can work without them. And I am sure many of the other binaries are necessary to make the system working given what the policy says: | Packages may assume that functionality provided by essential packages | is always available without declaring explicit dependencies. Some of them are even required by POSIX. Regards, Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
Attachment:
signature.asc
Description: Digital signature