On Sun, 2016-06-05 at 07:39 -0700, Josh Triplett wrote: > Ben Hutchings wrote: > > On Sun, 2016-06-05 at 11:29 +0200, Marco d'Itri wrote: > > > On Jun 05, Ben Hutchings <b...@decadent.org.uk> wrote: > > > > The postinst script for linux-image-* behaves differently on fresh > > > > installation vs upgrade. For a fresh installation, it updates the > > > > default symlinks /vmlinuz and /initrd.img to point to the new kernel > > > > and initramfs versions. On upgrade it generally doesn't. > > > BTW, can we remove these? At least on x86 they should not be useful > > > anymore since lilo has bit rotten. > > > > Unfortunately there are many boot loaders (and custom configurations) > > that rely on them, not just lilo. But they can be disabled by adding > > 'do_symlinks = no' to /etc/kernel-img.conf. > > Which bootloaders still rely on them? Is there a list somewhere? It > might be feasible to go through and fix those bootloaders. (Not just to > avoid needing a hardcoded kernel path, but more generally to support > booting more than just the current kernel and possibly one previous > kernel.) > > For that matter, could do_symlinks default to no on i386 and amd64?
Perhaps. I'd rather not make the hardcoded default architecture- dependent, but the default set by the installer could be changed. > In the meantime, how feasible would it be to extract the logic from the > linux-image postinst and put it into a helper program? [...] That would be silly, because the old logic was awful. But I did write a helper program and added it to linux-base: commit af7c52a66d513d7d67abc803d1b36c53e4463bc4 Author: Ben Hutchings <b...@decadent.org.uk> Date: Mon May 30 18:41:42 2016 +0100 Add linux-update-symlinks command for use by package maintainer scripts This is simpler than the current logic in the linux maintainer scripts: - Now that I know that hard-linking and copying to the default locations were broken, I only need to worry about making symlinks - The logic for updating on installation/upgrade and removal is kept together rather than divided across two scripts - It uses existing functions in the DebianLinux module But it's also smarter: it builds a list of versions and the files that belong to them, prioritised based on the current type of change, the existing symlinks and version sorting. So it can always point the symlinks somewhere sensible, unless the last image is being removed. and the linux maintainer scripts will use that in future. Ben. -- Ben Hutchings Everything should be made as simple as possible, but not simpler. - Albert Einstein
signature.asc
Description: This is a digitally signed message part