On Wed, Aug 24, 2011, Martin Michlmayr wrote: > I think you can probably just get rid of NONINTERACTIVE.
Pushed a patch to this effect, attached in case you'd like to review the changes, but they are fairly mechanical > > - similarly, it might make sense to add a way to skip oldsys-preseed > > entirely; maybe there's a feature to do that in d-i that I don't know > > about? > > I don't think there's such a feature at the moment. Thinking about it a bit, there are two types of settings that oldsys-preseed touches: things coming from a previous installation or the original firmware, and things to help the installer proceed to setting up a network-console. For instance: # IXP4xx Ethernet will always use eth0; if we don't # have the required NPE firmware, assume eth1 # instead to allow installations via USB Ethernet. if [ -e /lib/firmware/NPE-B ]; then INTERFACE=eth0 else INTERFACE=eth1 add "hw-detect/load_firmware" "false" fi or setting machine-independent stuff to remove prompts before the network-console comes up: skip_debconf_note "lowmem/low" add "netcfg/get_hostname" "debian" add "netcfg/get_domain" "example.org" add "network-console/password" "install" add "network-console/password-again" "install" add "ethdetect/prompt_missing_firmware" "false" add "partconf/already-mounted" "false" So maybe one setting to not read anything from a previous installation (such as network setup) would be enough, but oldsys-preseed doesn't need to be skipped entirely. I'll have a go at implementing this next week when I'm back home. Thanks for the answers and the review, -- Loïc Minier
>From d200dad66f80e2c11c9f81c73a171981f58b75b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <l...@debian.org> Date: Wed, 24 Aug 2011 11:30:06 +0200 Subject: [PATCH] Drop NONINTERACTIVE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop NONINTERACTIVE which was hardcoded to yes and not needed anymore. Signed-off-by: Loïc Minier <l...@debian.org> --- functions | 20 +++++++------------- oldsys-preseed | 44 ++++++++++++++++---------------------------- 2 files changed, 23 insertions(+), 41 deletions(-) diff --git a/functions b/functions index 26e2e16..97054bc 100644 --- a/functions +++ b/functions @@ -174,8 +174,7 @@ parse_sib_conf() { # Generating -# Preseed a debconf question to a value and also set it as seen if we're in -# non-interactive mode +# Preseed a debconf question to a value and set it as seen # $1 = question # $2 = value op_db_set() { @@ -184,9 +183,7 @@ op_db_set() { db_register debian-installer/dummy "$1" db_set "$1" "$2" fi - if [ "$NONINTERACTIVE" = "yes" ]; then - db_fset "$1" "seen" "true" - fi + db_fset "$1" "seen" "true" } # Preseed a debconf question as seen, but don't set its value @@ -208,12 +205,11 @@ add() { fi } -# Set a debconf question as seen if its value is empty and if we're in -# non-interactive mode, otherwise set its value +# Set a debconf question as seen if its value is empty, otherwise set its value # $1 = question # $2 = value add_or_set_seen() { - if [ -z "$2" -a "$NONINTERACTIVE" = "yes" ]; then + if [ -z "$2" ]; then op_db_seen "$1" else op_db_set "$1" "$2" @@ -254,10 +250,8 @@ do_oldsys_preseed() { else add "netcfg/use_dhcp" "true" fi - if [ "$NONINTERACTIVE" = "yes" -o "$HOSTNAME" != "$DEFAULT_HOSTNAME" ]; then - if verify_hostname "$HOSTNAME"; then - add "netcfg/get_hostname" "$HOSTNAME" - fi + if verify_hostname "$HOSTNAME"; then + add "netcfg/get_hostname" "$HOSTNAME" fi add "netcfg/get_domain" "$DOMAIN" } @@ -322,7 +316,7 @@ address_is_in () { sanity_check_static_config() { # netcfg will prompt for an IP address and nameserver if they are # not set, so use DHCP in that case. - if [ "$NONINTERACTIVE" = "yes" ] && [ -z "$IPADDRESS" -o -z "$NAMESERVERS" ]; then + if [ -z "$IPADDRESS" -o -z "$NAMESERVERS" ]; then NET_CONFIG=dhcp fi # Replicate the "gateway is unreachable" check from netcfg. diff --git a/oldsys-preseed b/oldsys-preseed index b635b2b..0eca38f 100755 --- a/oldsys-preseed +++ b/oldsys-preseed @@ -23,12 +23,6 @@ exit_unknown() { exit 0 } -# If this is set to "yes", the user *absolutely* cannot input anything -# before network-console comes up. Therefore, preseed some info which -# is not optimal but which will ensure that network-console is reached -# without prompting for user input. -NONINTERACTIVE="yes" - case "`archdetect`" in arm*/ixp4xx) machine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//') @@ -47,9 +41,7 @@ case "`archdetect`" in INTERFACE=eth0 else INTERFACE=eth1 - if [ "$NONINTERACTIVE" = "yes" ]; then - add "hw-detect/load_firmware" "false" - fi + add "hw-detect/load_firmware" "false" fi sanity_check_static_config if [ "$NET_CONFIG" != "static" ]; then @@ -59,9 +51,7 @@ case "`archdetect`" in [ -z "$NAMESERVERS" ] && NAMESERVERS=192.168.1.1 dhcp_fallback fi - if [ "$NONINTERACTIVE" = "yes" ]; then - add "ethdetect/use_firewire_ethernet" "false" - fi + add "ethdetect/use_firewire_ethernet" "false" fi ;; arm*/iop32x) @@ -303,22 +293,20 @@ case "`archdetect`" in ;; esac -if [ "$NONINTERACTIVE" = "yes" ]; then - # Just continue if d-i enters lowmem mode - skip_debconf_note "lowmem/low" - # Any hostname and domain names assigned from DHCP take precedence - # over values set here. However, setting the values still prevents - # the questions from being shown, even if values come from dhcp. - add "netcfg/get_hostname" "debian" - add "netcfg/get_domain" "example.org" - # I'm not terribly happy to preseed a generic password but I guess - # there's no other way on some machines. - add "network-console/password" "install" - add "network-console/password-again" "install" - # Continue if there is missing firmware at ethdetect, and hope that - # it is not actually needed to get on the network. - add "ethdetect/prompt_missing_firmware" "false" -fi +# Just continue if d-i enters lowmem mode +skip_debconf_note "lowmem/low" +# Any hostname and domain names assigned from DHCP take precedence +# over values set here. However, setting the values still prevents +# the questions from being shown, even if values come from dhcp. +add "netcfg/get_hostname" "debian" +add "netcfg/get_domain" "example.org" +# I'm not terribly happy to preseed a generic password but I guess +# there's no other way on some machines. +add "network-console/password" "install" +add "network-console/password-again" "install" +# Continue if there is missing firmware at ethdetect, and hope that +# it is not actually needed to get on the network. +add "ethdetect/prompt_missing_firmware" "false" # Workaround for broken partconf add "partconf/already-mounted" "false" -- 1.7.5.4