Re: dpkg, ELF, upgrade order, broken systems
I think an elf-update package is the way to go. Having it be a .deb package
is OK, if not strictly necessary, but the upgrade should _NOT_ happen in the
postinst. The postinst should direct the user to the file of instructions,
and the user will have to run at least two scripts with a reboot between them
to complete the upgrade.
1. Run the kernel-update script, which performs these actions:
A. Installs the latest a.out dpkg.
B. Installs the "image" package. The user may also install their own kernel.
C. Installs the "mbr" package.
D. Installs an a.out version of the LILO package.
E. Offers to re-write the user's LILO configuration using our new MBR and
a partition boot record (this actually happens in the LILO postinst)
and runs LILO to install the new kernel.
F. Removes binfmt_elf from /etc/modules.
3. Run the user-update script, which performs the following actions:
A. Test that a small static-linked ELF program does run. Have the user
fix their kernel if it doesn't.
B. Install latest a.out dpkg if it wasn't installed by kernel-update.
C. Install ld.so, ELF run-time libraries, and ncurses-base.
D. Test that a small shared-library ELF program does run. The program
is linked against all of the important libraries. Bomb if it does
E. Install the ELF init package.
F. Install the ELF dpkg.
G. Run "dpkg" to pre-select packages for later installation, using the
names of currently-installed packages as a guide?
H. Start "dselect" to complete the upgrade.
Bruce Perens <Bruce@Pixar.com> Pixar Animation Studios
Toy Story: > US$174M domestic box office receipts so far.
One Oscar so far (in the Special Achievement category).