BaseSystemConfiguration

Differences between revisions 2 and 22 (spanning 20 versions)
Revision 2 as of 2005-11-02 18:45:17
Size: 2747
Editor: 209
Comment: dump BOF notes
Revision 22 as of 2008-08-06 16:36:22
Size: 5033
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Created''': [[Date(2005-10-31T18:12:31Z)]] by Fabianx  * '''Created''': <<Date(2005-10-31T18:12:31Z)>> by Fabianx
Line 10: Line 10:
The Ubuntu Express Installer needs to configure the base system, to create a user and set a password. The Ubuntu installer already contains code to configure the base system, which we can reuse under the oem-config framework. The UbuntuExpress installer needs to configure the base system, to create a user and set a password. The Ubuntu installer already contains code to configure the base system, which we can reuse under the [[OEMInstaller|oem-config]] framework.
Line 14: Line 14:
Possible things this component has to do: The base system configuration component(s) of UbuntuExpress needs to perform the following tasks (in cooperation with user interface code for each of GNOME and KDE):
Line 16: Line 16:
 0. Create User/Password.
 0. Possibly get language/i18n/timezone out of debconf (see UbuntuExpress/CopyFileSystem)
 * select language
 * select country
 * select timezone
 * select keymap
 * select username/password
 * select hostname
 * configure apt

There has been some debate about whether hostname selection ought to be present; we include it partly because of its impact on zeroconf.

APT configuration is an awkward case, because sources.list can be customised by somebody modifying the live CD as well as by the end user, and we want to preserve both customisations. Nevertheless, if neither customisation is present, or if requested by somebody customising the live CD, we should regenerate `sources.list` (replacing that in the live filesystem) to make sure that it is using `$CC.archive.ubuntu.com` mirrors. This must be done in UbuntuExpress rather than in casper, because casper does not know what country is going to be selected later.
Line 21: Line 30:
 0. Users want to have their own username and password.
 0. Users want the system in their language.
 * A user wants to install the system in his own language.
 * A user expects desktop functions (such as the clock and calendar) to be aware of her country and timezone, and wants to inform the system of these just once at installation time.
 * A user wants to be able to type the characters engraved on his keyboard as expected when the system is installed.
 * A user wants her own account created at installation time so that she can log in after installation. She may later create accounts for her husband and son.
 * A user wants to be able to download updates from the local mirror of Ubuntu packages, rather than having to wait and/or pay for downloads from further away.
Line 26: Line 38:
== Design == This specification considers the base system configuration components of UbuntuExpress (that is, everything after [[UbuntuExpress/CopyFileSystem|copying the live filesystem]] not covered by other specifications), and the associated user interface issues.
Line 28: Line 40:
== Implementation == == Design and Implementation ==
Line 30: Line 42:
=== Code === In the [[UbuntuExpress/GnomeUserInterface|GNOME user interface]], we will borrow a city map widget from Evolution to choose a city for the timezone. This implies the country, and gives us a good guess for the language, in conjunction with the bootloader language. (KubuntuExpress will borrow from KWorldMap.)
Line 32: Line 44:
=== Data preservation and migration === For keymap configuration, we will factor out the "select keymap based on pressing keys" widget from our existing installer (it is already quite cleanly separated), build any necessary `.deb`s, and add appropriate user interface code to it. We will select the keymap default based on that configured in the live CD. Instead of selecting the console keymap and inferring an X keymap from it, since we're already in X we will modify `keymapper` to be able to select an X keymap (which the user will be able to test) and infer a console keymap from that, inverting the existing mapping.
Line 34: Line 46:
== Outstanding issues == The Guadalinex implementation of UbuntuExpress already has username, password, and hostname questions, which just need some polish (and replacement of the backend to remove duplicated and incorrect validation code, instead just using the validation in `passwd.config`).
Line 36: Line 48:
== BoF agenda and discussion == Finally, `apt-setup.deb` will be created (in order that we can use existing code from the apt-setup udebs) and UbuntuExpress will run it under `debconffilter` to generate an appropriate `/etc/apt/sources.list` file, allocating some progress bar space for the mirror verification steps. `casper` will record the original `sources.list` file from when the live filesystem is started up, in order to allow UbuntuExpress to skip this step if the user had already modified `sources.list`. The implementor should provide a mechanism for customisers to indicate that they do not want this to happen, in case a fixed `sources.list` is desired.
Line 38: Line 50:
{{{
 * country (inferred from timezone?)
 * timezone
 * language
 * keymap
 * user's real name, username, and password
 * hostname
 * apt configuration
== Implementation status ==
Line 47: Line 52:
GNOME user interface will probably display a city map so that you can choose the timezone based on that; this implies country and gives us a good guess for language.

Guadalinex implementation already has username/password/hostname, just need some polish; some user interface debate about whether the hostname ought to be asked at all in a desktop install.

apt configuration:
 - need to regenerate by default so that we get local CC.archive.ubuntu.com mirrors
 - must honour customisations and not overwrite
  - ... including customisations made to the live CD filesystem before the user boots
 - nevertheless, may be useful for casper to use the new apt-setup udebs to generate a sample apt configuration as the live CD starts up, provided that the customiser doesn't forbid it from doing so (using some yet-to-be-invented mechanism)

keymap configuration:
 - factor out magic keymapper widget from existing installer (spread over cdebconf, kbd-chooser, console-data, keymapper), use in GNOME/KDE user interfaces if possible
 - definitely select keymap default from what's configured in the live CD (see other BOFs)

how to get pieces only available as udebs? (unpack udebs somehow, or generate debs from each relevant source package)
 - in this case, the only things we care about are (I think) apt-setup and the keyboard configuration bits; apt-setup wants to generate a deb eventually anyway, and I can cope with building some for keymapper etc.
}}}
 * 2006-01-04 ColinWatson: TollefFogHeen has factored out the keymapper widget from cdebconf. I have username/password configuration working by calling code from user-setup.
 * 2006-02-23 ColinWatson: Language and timezone configuration done.
 * 2006-04-11 ColinWatson: apt-setup work done, completing this specification. Customisation support isn't really ideal yet, but it's at least possible to work around that; see https://launchpad.net/distros/ubuntu/+source/espresso/+bug/39156 for details.

Summary

The UbuntuExpress installer needs to configure the base system, to create a user and set a password. The Ubuntu installer already contains code to configure the base system, which we can reuse under the oem-config framework.

Rationale

The base system configuration component(s) of UbuntuExpress needs to perform the following tasks (in cooperation with user interface code for each of GNOME and KDE):

  • select language
  • select country
  • select timezone
  • select keymap
  • select username/password
  • select hostname
  • configure apt

There has been some debate about whether hostname selection ought to be present; we include it partly because of its impact on zeroconf.

APT configuration is an awkward case, because sources.list can be customised by somebody modifying the live CD as well as by the end user, and we want to preserve both customisations. Nevertheless, if neither customisation is present, or if requested by somebody customising the live CD, we should regenerate sources.list (replacing that in the live filesystem) to make sure that it is using $CC.archive.ubuntu.com mirrors. This must be done in UbuntuExpress rather than in casper, because casper does not know what country is going to be selected later.

Use cases

  • A user wants to install the system in his own language.
  • A user expects desktop functions (such as the clock and calendar) to be aware of her country and timezone, and wants to inform the system of these just once at installation time.
  • A user wants to be able to type the characters engraved on his keyboard as expected when the system is installed.
  • A user wants her own account created at installation time so that she can log in after installation. She may later create accounts for her husband and son.
  • A user wants to be able to download updates from the local mirror of Ubuntu packages, rather than having to wait and/or pay for downloads from further away.

Scope

This specification considers the base system configuration components of UbuntuExpress (that is, everything after copying the live filesystem not covered by other specifications), and the associated user interface issues.

Design and Implementation

In the GNOME user interface, we will borrow a city map widget from Evolution to choose a city for the timezone. This implies the country, and gives us a good guess for the language, in conjunction with the bootloader language. (KubuntuExpress will borrow from KWorldMap.)

For keymap configuration, we will factor out the "select keymap based on pressing keys" widget from our existing installer (it is already quite cleanly separated), build any necessary .debs, and add appropriate user interface code to it. We will select the keymap default based on that configured in the live CD. Instead of selecting the console keymap and inferring an X keymap from it, since we're already in X we will modify keymapper to be able to select an X keymap (which the user will be able to test) and infer a console keymap from that, inverting the existing mapping.

The Guadalinex implementation of UbuntuExpress already has username, password, and hostname questions, which just need some polish (and replacement of the backend to remove duplicated and incorrect validation code, instead just using the validation in passwd.config).

Finally, apt-setup.deb will be created (in order that we can use existing code from the apt-setup udebs) and UbuntuExpress will run it under debconffilter to generate an appropriate /etc/apt/sources.list file, allocating some progress bar space for the mirror verification steps. casper will record the original sources.list file from when the live filesystem is started up, in order to allow UbuntuExpress to skip this step if the user had already modified sources.list. The implementor should provide a mechanism for customisers to indicate that they do not want this to happen, in case a fixed sources.list is desired.

Implementation status

UbuntuExpress/BaseSystemConfiguration (last edited 2008-08-06 16:36:22 by localhost)