[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#277356: base-config: apt-setup loops in the mirror_dir function



Package: base-config
Version: 2.48
Severity: important

This was found by testing a semi-automated install with yesterday's
(20041018) sid_d-i businesscard image.

The kernel command line prompt was:

    append initrd=24-i386.gz ramdisk_size=16384 devfs=mount,dall root=/dev/rd/0 init=/linuxrc rw preseed/url=http://192.168.7.1/~bubulle/preseed/unstable-o.cfg

The unstable-o preseed file is at the end of this mail.

(testing needs changing the proxy setting)

The language was *Arabic*, the country was the default one (Egypt) and the
keyboard was fr-latin9 (not easy to choose in Arabic..:-)


In 2nd stage it finally appears that apt-setup is "hanged" and the culprit
is a "perl -ne 	BEGIN { $/="\n\n"; $type=shift....." process which belongs
to the mirror_dir function.

/etc/apt/sources.list contains:
#deb http://ftp.fr.debian.org/debian sid main

#### Modifying syslinux.cfg.

# Edit the syslinux.cfg (or similar) file, and add parameters to the end
# of the append line(s) for the kernel.
#
# You'll at least want to add a parameter telling the installer where to
# get its preseed file from.
# If you're installing from USB media, use this, and put the preseed file
# in the toplevel directory of the USB stick.
#   preseed/file=/hd-media/preseed
# If you're netbooting, use this instead:
#   preseed/url=http://host/path/to/preseed
# If you're remastering a CD, you could use this:
#   preseed/file=/cdrom/preseed
# Be sure to copy this file to the location you specify.
# 
# While you're at it, you may want to throw a debconf/priority=critical in
# there, to avoid most questions even if the preseeding below misses some.
# And you might set the timeout to 1 in syslinux.cfg to avoid needing to hit
# enter to boot the installer.
#
# Language, country, and keyboard selection cannot be preseeded from a file,
# because the questions are asked before the preseed file can be loaded.
# Instead, to avoid these questions, pass some more parameters to the kernel:
#
#    languagechooser/language-name=English
#    countrychooser/shortlist=US
#    console-keymaps-at/keymap=us

#### Shell commands.

# d-i preseeding is inherently not secure. Nothing in the installer checks
# for attempts at buffer overflows or other exploits of the values of a
# preseed file like this one. Only use preseed files from trusted
# locations! To drive that home, and because it's generally useful, here's
# a way to run any shell command you'd like inside the installer,
# automatically.

# This first command is run as early as possible, just after
# preseeding is read.
#d-i    preseed/early_command           string wget http://url/to/my.udeb -O /tmp/my.udeb ; udpkg -i /tmp/my.udeb
# This command is run just before the install finishes, but when there is
# still a usable /target directory.
#d-i    preseed/late_command            string for deb in /hd-media/*.deb; do cp $deb /target/tmp; chroot /target dpkg -i /tmp/$(basename $deb); done
# This command is run just as base-config is starting up.
#base-config    base-config/early_command       string echo hi mom
# This command is run after base-config is done, just before the login:
# prompt. This is a good way to install a set of packages you want, or to
# tweak the configuration of the system.
#base-config    base-config/late_command        string apt-get install zsh; chsh -s /bin/zsh

#### Network configuration.

# Of course, this won't work if you're loading your preseed file from the
# network! But it's great if you're booting from CD or USB stick. You can
# also pass network config parameters in on the kernel params if you are
# loading preseed files from the network.

# netcfg will choose an interface that has link if possible. This makes it
# skip displaying a list if there is more than one interface.
d-i     netcfg/choose_interface select auto

# If you prefer to configure the network manually, here's how:
#d-i    netcfg/disable_dhcp     boolean true
#d-i    netcfg/get_nameservers  string 192.168.1.1
#d-i    netcfg/get_ipaddress    string 192.168.1.42
#d-i    netcfg/get_netmask      string 255.255.255.0
#d-i    netcfg/get_gateway      string 192.168.1.1
#d-i    netcfg/confirm_static   boolean true

# Note that any hostname and domain names assigned from dhcp take
# precidence over values set here. However, setting the values still
# prevents the questions from being shown even if values come from dhcp.
d-i     netcfg/get_hostname     string unassigned-hostname
d-i     netcfg/get_domain       string unassigned-domain

# Disable that annoying WEP key dialog.
d-i     netcfg/wireless_wep     string 
# The wacky dhcp hostname that some ISPs use as a password of sorts.
#d-i    netcfg/dhcp_hostname    string radish

#### Mirror settings.

d-i     mirror/country          string enter information manually
d-i     mirror/http/hostname    string ftp.fr.debian.org
d-i     mirror/http/directory   string /debian
d-i     mirror/suite            string unstable
d-i     mirror/http/proxy       string http://proxy.onera:80/

### Partitioning.

# If the system has free space you can choose to only partition that space.
#d-i    partman-auto/init_automatically_partition       select Use the largest continuous free space
# Alternatively, you can specify a disk to partition. The device name can
# be given in either devfs or traditional non-devfs format.
# For example, to use the first disk devfs knows of:
d-i     partman-auto/disk       string /dev/discs/disc0/disc

# You can choose from any of the predefined partitioning recipes:
d-i     partman-auto/choose_recipe      select All files in one partition (recommended for new users)
#d-i    partman-auto/choose_recipe      select Desktop machine
#d-i    partman-auto/choose_recipe      select Multi-user workstation
# Or provide a recipe of your own...
# The recipe format is documented in the file devel/partman-auto-recipe.txt.
# If you have a way to get a recipe file into the d-i environment, you can
# just point at it.
#d-i    partman-auto/expert_recipe_file string /hd-media/recipe
# If not, you can put an entire recipe in one line. This example creates
# a small /boot partition, suitable swap, and uses the rest of the space
# for the root partition:
#d-i    partman-auto/expert_recipe      string boot-root :: 20 50 100 ext3 $primary{ } $bootable{ } method{ format } format{ } use_filesystem{ } filesystem{ ext3 } mountpoint{ /boot } .  500 10000 1000000000 ext3 method{ format } format{ } use_filesystem{ } filesystem{ ext3 } mountpoint{ / } .  64 512 300% linux-swap method{ swap } format{ } . 
# For reference, here is that same recipe in a more readable form:
#       boot-root ::
#       40 50 100 ext3
#               $primary{ } $bootable{ }
#               method{ format } format{ }
#               use_filesystem{ } filesystem{ ext3 }
#               mountpoint{ /boot }
#       .
#       500 10000 1000000000 ext3
#               method{ format } format{ }
#               use_filesystem{ } filesystem{ ext3 }
#               mountpoint{ / }
#       .
#       64 512 300% linux-swap
#               method{ swap } format{ }
#       .

# This makes partman automatically partition without confirmation.
d-i     partman/choose_partition        select Finish partitioning and write changes to disk
d-i     partman/confirm                 boolean true

#### Boot loader installation.

# Grub is the default boot loader (for x86). If you want lilo installed
# instead, uncomment this:
#d-i    grub-installer/skip             boolean true

# This is fairly safe to set, it makes grub install automatically to the MBR
# if no other operating system is detected on the machine.
d-i     grub-installer/only_debian      boolean true
# This one makes grub-installer install to the MBR if if finds some other OS
# too, which is less safe as it might not be able to boot that other OS.
d-i     grub-installer/with_other_os    boolean true
# Alternatively, if you want to install to a location other than the mbr,
# uncomment and edit these lines:
#d-i    grub-installer/bootdev          string (hd0,0)
#d-i    grub-installer/only-debian      boolean false
#d-i    grub-installer/with_other_os    boolean false

##### Finishing up the first stage install.

# Avoid that last message about the install being complete.
d-i     prebaseconfig/reboot_in_progress        note 


##### Preseeding base-config.
# XXX: Note that most of this will not work right until base-config 2.40.4
# is available.

# Avoid the intorductory message.
base-config     base-config/intro       note 

# Avoid the final message.
base-config     base-config/login       note 

# If you installed a display manager, but don't want to start it immediately
# after base-config finishes.
#base-config    base-config/start-display-manager       boolean false

###### Time zone setup.

# Controls whether or not the hardware clock is set to GMT.
base-config     tzconfig/gmt            boolean true

# If you told the installer that you're in the United States, then you
# can set the time zone using this variable.
# (Choices are: Eastern, Central, Mountain, Pacific, Alaska, Hawaii,
# Aleutian, Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other)
base-config     tzconfig/choose_country_zone/US select Eastern
# If you told it you're in Canada.
# (Choices are: Newfoundland, Atlantic, Eastern, Central,
# East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other)
base-config     tzconfig/choose_country_zone/CA select Eastern
# If you told it you're in Brazil. (Choices are: East, West, Acre,
# DeNoronha, other)
base-config     tzconfig/choose_country_zone/BR select East
# Many countries have only one time zone. If you told the installer you're
# in one of those countries, you can choose its standard time zone via this
# question.
base-config     tzconfig/choose_country_zone_single boolean true
# This question is asked as a fallback for countries other than those
# listed above, which have more than one time zone. You can preseed one of
# the time zones, or "other".
#base-config    tzconfig/choose_country_zone_multiple select 

###### Account setup.

# To preseed the root password, you have to put it in the clear in this
# file. That is not a very good idea, use caution!
# (XXX: In fact, this won't work, because passwd clears the settings
# before asking for a root password. This may not be fixed before the sarge
# release, if it's fixed at all.)
passwd         passwd/root-password            password costa6203
passwd         passwd/root-password-again      password costa6203

# If you want to skip creation of a normal user account.
#passwd         passwd/make-user                boolean false
# Alternatively, you can preseed the user's name. Note that the username
# will be derived from this; it cannot be overridden currently. The
# username will be the (lowercase) first name of the full name.
passwd         passwd/user-fullname            string Christian Perrier
passwd         passwd/username                 string bubulle
# And their password, but use caution!
passwd         passwd/user-password            password pic889
passwd         passwd/user-password-again      password pic889

###### Apt setup.

# This question controls what source the second stage installation uses
# for packages. Choices are cdrom, http, ftp, filesystem, edit sources list
# by hand
base-config     apt-setup/uri_type      select http

# If you choose ftp or http, you'll be asked for a country and a mirror.
base-config     apt-setup/country       select enter information manually
base-config     apt-setup/hostname      string http.us.debian.org
base-config     apt-setup/directory     string /debian
# Stop after choosing one mirror.
base-config     apt-setup/another       boolean false

# You can choose to install non-free and contrib software.
#base-config    apt-setup/non-free      boolean true
#base-config    apt-setup/contrib       boolean true

# Do enable security updates.
base-config     apt-setup/security-updates      boolean true

###### Package selection.

# You can choose to install any combination of tasks that are available.
# Available tasks as of this writing include: Desktop environment,
# Web server, Print server, DNS server, File server, Mail server, 
# SQL database, manual package selection. The last of those will run
# aptitude. You can also choose to install no tasks, and force the
# installation of a set of packages in some other way.
# XXX: this will not work until tasksel 2.12 is available
tasksel         tasksel/first   multiselect Desktop environment
#tasksel        tasksel/first   multiselect Web server, Mail server, DNS server

###### Mailer configuration.

# During a normal install, exim asks only two questions. Here's how to
# avoid even those. More complicated preseeding is possible.
exim4-config    exim4/dc_eximconfig_configtype  select no configuration at this time
# It's a good idea to set this to whatever user account you choose to
# create. Leaving the value blank results in postmaster mail going to
# /var/mail/mail.
exim4-config    exim4/dc_postmaster             string 

###### X Configuration.

# Preseeding Debian's X config is possible, but you probably need to know
# some details about the video hardware of the machine, since Debian's X
# configurator does not do fully automatic configuration of everything.

# X can detect the right driver for some cards, but if you're preseeding,
# you override whatever it chooses. Still, vesa will work most places.
#xserver-xfree86        xserver-xfree86/config/device/driver    select vesa

# A caveat with mouse autodetection is that if it fails, X will retry it
# over and over. So if it's preseeded to be done, there is a possibility of
# an infinite loop if the mouse is not autodetected.
#xserver-xfree86        xserver-xfree86/autodetect_mouse        boolean true

# Monitor autodetection is recommended.
xserver-xfree86         xserver-xfree86/autodetect_monitor      boolean true
# Uncomment if you have a LCD display.
#xserver-xfree86        xserver-xfree86/config/monitor/lcd      boolean true
# X has three configuration paths for the monitor. Here's how to preseed
# the "medium" path, which is always available. The "simple" path may not
# be available, and the "advanced" path asks too many questions.
xserver-xfree86 xserver-xfree86/config/monitor/selection-method select medium
xserver-xfree86 xserver-xfree86/config/monitor/mode-list        select 1024x768 @ 60 Hz

###### Everything else.

# Depending on what software you choose to install, or if things go wrong
# during the installation process, it's possible that other questions may
# be asked. You can preseed those too, of course. To get a list of every
# possible question that could be asked during an install, do an
# installation, and then run these commands:
#   debconf-get-selections --installer > file
#   debconf-get-selections >> file

# If you like, you can include other preseed files into this one.
# Any settings in those files will override pre-existing settings from this
# file. More that one file can be listed, separated by spaces; all will be
# loaded. The included files can have preseed/include directives of their
# own as well. Note that if the filenames are relative, they are taken from
# the same directory as the preseed file that includes them.
#d-i    preseed/include string x.cfg
# More flexably, this runs a shell command and if it outputs the names of
# preseed files, includes those files. For example, to switch configs based
# on a particular usb storage device (in this case, a built-in card reader):
#d-i    preseed/include_command string if $(grep -q "GUID: 0aec3050aec305000001a003"  /proc/scsi/usb-storage-*/*); then echo kraken.cfg; else echo otherusb.cfg; fi



-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (ignored: LC_ALL set to fr_FR.UTF-8)

Versions of packages base-config depends on:
ii  adduser                 3.59             Add and remove users and groups
ii  apt                     0.5.27           Advanced front-end for dpkg
ii  bsdutils                1:2.12-10        Basic utilities from 4.4BSD-Lite
ii  console-data            2002.12.04dbs-46 Keymaps, fonts, charset maps, fall
ii  console-tools           1:0.2.3dbs-55    Linux console and font utilities
ii  debconf                 1.4.39           Debian configuration management sy
ii  debianutils             2.10.2           Miscellaneous utilities specific t
ii  gettext-base            0.14.1-5         GNU Internationalization utilities
ii  passwd                  1:4.0.3-30.2     Change and administer password and

-- debconf information excluded



Reply to: