You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Frans Pop b9e9957ffd Improve generation of country selection templates 11 years ago
debian Improve generation of country selection templates 11 years ago
Makefile Avoid display of untranslated country codes 11 years ago
README Switch to using iso_3166.xml rather than the deprecated, by the 16 years ago
TODO typo 14 years ago
choose-mirror.c Remove accidentally included debug statement 11 years ago
get-iso-codes Use Norwegian Bokmaal (nb) country names for Northern Sami (se) 11 years ago
intltool-merge Add (currently unused) code for handling countries 17 years ago
mirrorlist * Use isoquery instead of a python script to generate and 12 years ago
mirrors.h Support "hybrid" mirrors 11 years ago
mktemplates Improve generation of country selection templates 11 years ago
sort-templates - Improved version of the script used to sort the mirror country list 13 years ago


This little program allows the user to pick a http (could support ftp too)
mirror, by choosing first a country, then a mirror, or by manually entering
mirror info. The mirror list is built into it at compile time.

After it has run, the debconf question http/hostname will have the mirror
host, http/directory will have the base of the mirror, and http/proxy may
contain proxy info in standard form. These values can be used by
retrievers, and eventually, I'd hope, by apt-setup.

The system for building the country list

1) get-iso-codes script
Get ISO 3166 (country names) translations

This needs the iso-codes package installed on the build machine

The translations are picked from *.mo files by using msgunfmt utility and
put into PO files in debian/iso-codes

2) mktemplates script
Create the Choices lists in the templates file
Insert translations in the templates file
Create the translated templates file

The Choices list are first grabbed from
Mirrors.masterlist (this file is fetched at build time if possible).

Then, the codes list is transformed into a country name list (in English)
by using the iso_3166.xml file from the iso-codes package.

This list is transformed into a comma-separated list (NOTE : country "names"
may contain commas which need to be escaped) and inserted into the Choices
lists in the templates file

The translations (from debian/iso-codes/*po) and the "normal" translations
of the remaining fields of the templates (from debian/po/*po) are merged
together into PO files in debian/po-build

The po2debconf utility inserts these translations into the templates

3) sort-countries script
For each language and each protocol, sort the country list according to
the language's sorting rules

This uses Indices-xx fields, which is a special debconf feature currently
only implemented in cdebconf, the debconf flavour used in Debian Installer
first stage.

Beware of the early hack replacing commas *inside* country names by
double dashes, temporarily, so that the number of choices is not
broken by these extra commas.

This script directly edits the final templates file, AFTER running po2debconf.
So, be aware of the very specific place for it to be called in debian/rules.

The result is very sensitive to strange errors. For instance, one
common symptom during the early development of this script was Indices-xx
field not having all the same number of choices and not the same number of
choices than Choices-xx fields. When this happens, the multiselect
screen is completely *BROKEN* with "/dev/null" as the only choice..:-)

So, if this happens again, please look at the generated templates file
and count the number of Choices in each Indices fields and each Choices fields.