On Tuesday 08 December 2009, Frans Pop wrote: > D-I now always installs Recommends by default, except when > base-installer/install-recommends is preseeded to false. > > However, there are a few specific cases where we want to force > installing or not installing Recommends with specific packages, > irrespective of what the default setting is. [...] > Attached a patchseries that makes apt-install recognize two options, > --no-recommends and --with-recommends, which allow us to force the > correct behavior in such cases. The options are preserved in the queue > file [1] if installation of the package is delayed to base-installer. That's now implemented. > Note that use of these options should remain the exception. Normally we > should just honor the general setting. I've looked at the consequences of this and things are quite complex. IMO our main goal must be to have installations be as consistent as possible. One complication is that if packages have already been installed by debootstrap, any recommends they may have will never get installed. Example is psmisc which is recommended by initscripts (required) and procps (important). Both these rdepends get installed by debootstrap, but psmisc is not installed. For the same reason uuid-runtime will never get installed. Installation order is also important. Example: A depends C, B depends C, C recommends D apt-install --with-recommends A; apt-install --without-recommends B => D is installed apt-install --without-recommends B; apt-install --with-recommends A => D is not installed This is particularly relevant for initramfs-tools and udev. Both have various packages depending on them. So far the introduction, now the actual issues and proposals. *** popularity-contest (pkgsel; pre-pkgsel.d) Because it gets installed before tasksel, it would pull in exim4 prematurely. Add --no-recommends to avoid that. *** installation-report (save-logs; pre-pkgsel.d) Because it gets installed before tasksel, it would pull in reportbug, which means reportbug would be marked as "automatically installed", which it shouldn't be. Add --no-recommends to avoid that. *** console-setup (kbd-chooser; post-base-installer.d) Recommends kbd. IMO it's worthwhile ensuring that kbd always gets installed for consistency. Add --with-recommends to achieve that. *** grub-{legacy,pc,efi,ieee1275} (grub-installer) All depend on grub-common which recommends os-prober. - At least for grub-legacy os-prober should not be installed in the target system. I've already added --no-recommends to avoid that in SVN. - For grub-pc I think we can leave it up to the global setting for installing recommends. - For the other two I have no idea... *** mdadm (base-installer) Recommends "default-mta" and would thus pull in exim4 prematurely. Needs --no-recommends to avoid that. But that means it could also install udev without recommends, so... *** udev and initramfstools It's IMO essential that packages related to booting the system get installed consistently, whatever the choices made by the user. Otherwise we'll end up at some point with issues that are hard to trace. As we already ensure that everything that's needed gets apt-installed, the most consistent result will be guaranteed by installing all such packages with --no-recommends. This means adding --no-recommends for the following packages: - udev, initramfs-tools (+ busybox), yaird - sysconfig-hardware - flash-kernel, mkvmlinuz - cryptsetup, lvm2, mdadm, dmsetup, dmraid, multipath-tools-boot - loop-aes-utils (means we miss sharutils, but we've never needed that) - pcmciautils If there are no comments in the next few days I'll commit the changes proposed above. The alternative would be to go back to always installing without Recommends. Cheers, FJP
Attachment:
signature.asc
Description: This is a digitally signed message part.