Right, this patch should get me to a lot of bonus points with Sven so
he'll not jump on my back the next few times I tell him I don't agree
with him.
It has been tested, but the implementation can probably be cleaned up a
bit and maybe we should discuss the defaults to be used.
For now I've set both yaird and initramfs as options, which I think is
best in the current situation where both tools still have issues in
certain situations.
As hppa and sparc currently lack klibc and thus initramfs-tools, defaults
for them have been set to yaird only [1].
In the long run this will allow for per arch defaults and option to allow
the user to select a tool or not.
The question should be preseedable by setting a single tool for
base-installer/kernel/linux/initramfs-generators
(no, _not_ the template that is actually shown).
Cheers,
FJP
[1] Note: base-installer/kernel/linux/initramfs-2.6 needs to be enabled
for hppa first!
On Wednesday 28 December 2005 01:56, Frans Pop wrote:
> Author: fjp
> Date: Wed Dec 28 00:56:01 2005
> New Revision: 33348
>
> Modified:
> trunk/packages/base-installer/debian/base-installer.templates
> trunk/packages/base-installer/debian/changelog
> trunk/packages/base-installer/debian/postinst
> trunk/packages/base-installer/debian/templates-arch
> Log:
> Add support for different initramfs generators, allowing different
> defaults per architecture. If there are multiple values, allow the
> user to select one.
>
>
> Modified: trunk/packages/base-installer/debian/base-installer.templates
> =======================================================================
>======= ---
> trunk/packages/base-installer/debian/base-installer.templates (original
>) +++ trunk/packages/base-installer/debian/base-installer.templates Wed
> Dec 28 00:56:01 2005 @@ -60,6 +60,14 @@
> .
> Check /var/log/syslog or see virtual console 4 for the details.
>
> +Template: base-installer/initramfs/generator
> +Type: select
> +Choices: ${GENERATORS}
> +_Description: Tool to use to generate initramfs initrd:
> + The list shows the available tools. If you are unsure which to
> select, + you should select the default. If your system fails to
> reboot, you can + retry the installation using the other options.
> +
> Template: base-installer/kernel/failed-install
> Type: error
> _Description: Unable to install the selected kernel
>
> Modified: trunk/packages/base-installer/debian/changelog
> =======================================================================
>======= --- trunk/packages/base-installer/debian/changelog (original)
> +++ trunk/packages/base-installer/debian/changelog Wed Dec 28 00:56:01
> 2005 @@ -1,3 +1,11 @@
> +base-installer (1.41) UNRELEASED; urgency=low
> +
> + * Add support for different initramfs generators, allowing different
> + defaults per architecture. If there are multiple values, allow the
> + user to select one.
> +
> + -- Frans Pop <fjp@debian.org> Wed, 28 Dec 2005 01:55:14 +0100
> +
> base-installer (1.40) unstable; urgency=low
>
> [ Frans Pop ]
>
> Modified: trunk/packages/base-installer/debian/postinst
> =======================================================================
>======= --- trunk/packages/base-installer/debian/postinst (original)
> +++ trunk/packages/base-installer/debian/postinst Wed Dec 28 00:56:01
> 2005 @@ -462,6 +462,22 @@
> echo "$biggest_partition"
> }
>
> +select_initramfs_generator () {
> + irf_choices="$(echo $1 | sed "s/ */, /g")"
> + irf_default="${1%% *}"
> + db_subst base-installer/initramfs/generator GENERATORS "$irf_choices"
> + db_set base-installer/initramfs/generator "$irf_default"
> +
> + db_input high base-installer/initramfs/generator || [ $? -eq 30 ]
> + if ! db_go; then
> + db_progress stop
> + exit 10
> + fi
> +
> + db_get base-installer/initramfs/generator
> + echo $RET
> +}
> +
> install_kernel () {
> if [ "$KERNEL" = none ]; then
> info "Not installing any kernel"
> @@ -535,18 +551,36 @@
> link_in_boot = $link_in_boot
> EOF
>
> + package=""
> if [ "$do_initramfs" = yes ]; then
> - # TODO: This would be a good place for a question about
> - # whether to use initramfs-tools or yaird, if desired. The
> - # next block would need to take into account any differences
> - # in configuration file syntax.
> - package=initramfs-tools
> - ramdiskconf=/target/etc/mkinitramfs/initramfs.conf
> + if db_get base-installer/kernel/linux/initramfs-generators; then
> + generators="$RET"
> + info "Available initramfs generator(s) '$generators'"
> + if echo "$generators" | grep -q " "; then
> + package="$(select_initramfs_generator "$generators")"
> + else
> + package="$generators"
> + fi
> + fi
> + if [ -z "$package" ]; then
> + package=initramfs-tools
> + fi
> + case "$package" in
> + initramfs-tools)
> + ramdiskconf=/target/etc/mkinitramfs/initramfs.conf
> + ;;
> + yaird)
> + ramdiskconf=
> + ;;
> + esac
> else
> package=initrd-tools
> ramdiskconf=/target/etc/mkinitrd/mkinitrd.conf
> fi
> + echo "Selected initrd generator '$package'"
>
> + # TODO This should probably be restructured to better support
> + # differences between initrd generators
> if [ yes = "$do_initrd" ] ; then
> info "Installing $package."
>
> @@ -595,7 +629,7 @@
> else
> resume=
> fi
> - if [ "$resume" ]; then
> + if [ -n "$ramdiskconf" -a "$resume" ]; then
> if [ -f $ramdiskconf ] ; then
> sed -e "s@^#* *RESUME=.*@RESUME=$resume@" < $ramdiskconf >
> $ramdiskconf.new && mv $ramdiskconf.new $ramdiskconf
>
> Modified: trunk/packages/base-installer/debian/templates-arch
> =======================================================================
>======= ---
> trunk/packages/base-installer/debian/templates-arch (original) +++
> trunk/packages/base-installer/debian/templates-arch Wed Dec 28 00:56:01
> 2005 @@ -50,6 +50,16 @@
> # defaults if you want to select among different initramfs creation
> tools. Description: use an initramfs (linux 2.6 only)
>
> +Template: base-installer/kernel/linux/initramfs-generators
> +Type: string
> +Default: yaird initramfs-tools
> +Default[hppa]: yaird
> +Default[sparc]: yaird
> +# Space separated list of initrd generator packages to use. If you
> list more +# than one for an architecture, the user will be asked to
> select one. +# Note: if you add a new one, don't forget to support it
> in the postinst. +Description: package to use to generate initramfs
> +
> Template: base-installer/kernel/linux/extra-packages
> Type: string
> Default:
Attachment:
pgp2KILsTzrV2.pgp
Description: PGP signature