A while ago, you discussed on debian-boot about better boot-floppies and base-config localisation. I did the same thing, but due to lack of time and more important tasks, this was not possible. Now, some weeks later, we created some infrastructure (*) and you discussed about possible implementations (patches attached). So the concret plans of mine: - add additional prompt, asking the user about keeping the locale - the configuration and locales generation is done by base-config in the beginning - I am still not sure whether the user should be forced to reconfigure debconf and locales (*) BFs can install additional packages when isntalling from CD or from net. There should still be one hook to disable wants_locale if we are isntalling from prepared basedebs.tar. Gruss/Regards, Eduard. -- My growing impression of C++, object-oriented programming, etc., is that it attempts to allow programmers to conveniently reuse their mistakes. -- Stephen Uitti
diff -Nurd base-config-1.33.13.original/debian/changelog base-config-1.33.14/debian/changelog --- base-config-1.33.13.original/debian/changelog Wed Feb 20 21:58:07 2002 +++ base-config-1.33.14/debian/changelog Wed Mar 6 19:49:45 2002 @@ -1,3 +1,9 @@ +base-config (1.33.14) unstable; urgency=low + + * local hacked version with localisation + + -- Eduard Bloch <blade@debian.org> Wed, 6 Mar 2002 19:49:35 +0100 + base-config (1.33.13) unstable; urgency=medium * Changed last tzsetup question to allow allow backing up. This diff -Nurd base-config-1.33.13.original/lib/00dbootstrap_settings base-config-1.33.14/lib/00dbootstrap_settings --- base-config-1.33.13.original/lib/00dbootstrap_settings Mon Nov 19 19:41:06 2001 +++ base-config-1.33.14/lib/00dbootstrap_settings Wed Mar 6 20:06:31 2002 @@ -6,6 +6,23 @@ if [ -e /root/dbootstrap_settings ]; then . /root/dbootstrap_settings || true + if [ "$USE_LOCALE" ]; then + # get xx_XX@euro from the mixed string and extract the charset + export LANG=`echo $INST_LOCALE | sed 's/\..*@/@/'` + CHARSET=`echo $INST_LOCALE | sed 's/.*\.//' | sed 's/@.*//' | sed 's/ISO8/ISO-8/' ` + echo "$LANG $CHARSET" >> /etc/locale.gen + db_set locales/locales "$LANG $CHARSET" + db_set locales/default_environment_locale "$LANG" + # from /var/lib/dpkg/info/locales.postinst + umask 022 + grep -v '^LANG=' /etc/environment > /etc/environment.tmp 2> /dev/null || true + echo "LANG=$LANG" >> /etc/environment.tmp + cat /etc/environment.tmp > /etc/environment + rm -f /etc/environment.tmp + echo Creating the system locale, please wait... + /usr/sbin/locale-gen + fi + # Take whatever verbosity level was used in boot floppies, and use # it, unless DEBIAN_PRIORITY is set (which overrides that..) if [ -z "$DEBIAN_PRIORITY" ]; then
Index: utilities/dbootstrap/dbootstrap.h =================================================================== RCS file: /cvs/debian-boot/boot-floppies/utilities/dbootstrap/dbootstrap.h,v retrieving revision 1.100 diff -u -r1.100 dbootstrap.h --- utilities/dbootstrap/dbootstrap.h 2002/03/06 12:43:17 1.100 +++ utilities/dbootstrap/dbootstrap.h 2002/03/06 19:05:17 @@ -175,7 +175,7 @@ struct fdisk_partition *Root; int noSwap, notCreatedBootFloppy, notInstalledLILO; extern char *kernel_cd, *base_cd; -extern int wants_cd, probe_mode; +extern int wants_cd, wants_locale; static const char * fs_type_tab[]; Index: utilities/dbootstrap/extract_base.c =================================================================== RCS file: /cvs/debian-boot/boot-floppies/utilities/dbootstrap/extract_base.c,v retrieving revision 1.73 diff -u -r1.73 extract_base.c --- utilities/dbootstrap/extract_base.c 2002/03/05 19:18:01 1.73 +++ utilities/dbootstrap/extract_base.c 2002/03/06 19:05:18 @@ -255,6 +255,11 @@ char filename [512]; int status; +#ifdef USE_LANGUAGE_CHOOSER + if (yesNoBox(_("You are installing with a localised version of Debian's boot-floppies. Would you like to keep the current locale (language and format settings) as the main system locale after the system has been installed?"), _("Localisations")) == DLG_YES) + wants_locale=1; +#endif + /* Sanity Check */ if (NAME_ISREG ("/target/etc/debian_version", &statbuf)) { if (yesNoBox(_("It looks like either you have already installed the base system once or there is a Debian system installed already. This installer routine is not intended to overwrite an existing system. It's safer to start from scratch, i.e. umount the partition, create a new filesystem upon it and come back to this step. Installing the base system over an existing system will cause existing data to be overwritten. Do you want to continue?"), _("Warning")) == DLG_NO) @@ -329,17 +334,38 @@ source = strdup(prtbuf); } argv[0] = "/usr/sbin/debootstrap"; - argv[1] = "--boot-floppies"; - argv[2] = "--arch"; - argv[3] = ARCHNAME; - argv[4] = "woody"; - argv[5] = "/target"; - argv[6] = source; - argv[7] = NULL; +#ifdef USE_LANGUAGE_CHOOSER + if(wants_locale) { + argv[1] = "--boot-floppies"; + argv[2] = "--include=debconf,locales"; + /* people needing special terminal emulation can still extend the above */ + argv[2] = "--boot-floppies"; + argv[3] = "--arch"; + argv[4] = ARCHNAME; + argv[5] = "woody"; + argv[6] = "/target"; + argv[7] = source; + argv[8] = NULL; + } + else { +#endif + argv[1] = "--boot-floppies"; + argv[2] = "--arch"; + argv[3] = ARCHNAME; + argv[4] = "woody"; + argv[5] = "/target"; + argv[6] = source; + argv[7] = NULL; + } + +#ifdef USE_LANGUAGE_CHOOSER + INFOMSG("running '%s %s %s %s %s %s %s %s'", + argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +#else INFOMSG("running '%s %s %s %s %s %s %s'", argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); - +#endif rs = exec_debootstrap(argv); if (rs) { Index: utilities/dbootstrap/main.c =================================================================== RCS file: /cvs/debian-boot/boot-floppies/utilities/dbootstrap/main.c,v retrieving revision 1.146 diff -u -r1.146 main.c --- utilities/dbootstrap/main.c 2002/03/06 15:28:18 1.146 +++ utilities/dbootstrap/main.c 2002/03/06 19:05:20 @@ -36,7 +36,7 @@ char drivers_path[PATH_MAX + 1]; char *base_cd; char *kernel_cd; -int wants_cd; +int wants_cd, wants_locale; /* Defaults to no serial console present */ int serialConsole = -1; @@ -765,6 +765,7 @@ base_cd=NULL; kernel_cd=NULL; wants_cd=0; + wants_locale=0; /* setup rescue & drivers disks images filenames * (should be done before the first call to stderrToTTY) */ Index: utilities/dbootstrap/util.c =================================================================== RCS file: /cvs/debian-boot/boot-floppies/utilities/dbootstrap/util.c,v retrieving revision 1.78 diff -u -r1.78 util.c --- utilities/dbootstrap/util.c 2002/03/06 08:29:59 1.78 +++ utilities/dbootstrap/util.c 2002/03/06 19:05:22 @@ -700,7 +700,8 @@ #ifdef USE_LANGUAGE_CHOOSER if ( lang != NULL ) - write_userconfig("LANG_INST", lang->locale); + write_userconfig("INST_LOCALE", lang->locale); + write_userconfig("USE_LOCALE", wants_locale); #endif #if #cpu(powerpc)
Attachment:
pgpy6irFXO1mH.pgp
Description: PGP signature