Bug#635053: Choose-mirror overrides mirror/suite and mirror/codename
I am maintaining a repository that consists of Debian packages merged
with a couple of our modifications using reprepro.
I have two codenames in the repo, beta3 and beta4, but actually the
system behind this is Debian Stable, so I expect that the installer
would behave just as Debian Stable (squeeze).
For installs I am using the mini-iso generated from the source package
and provide my own preseed file. According to the documentation:
I should be able to specify my own mirror server with:
d-i mirror/country string manual
d-i mirror/http/hostname string wro-linux.eu.tieto.com
d-i mirror/http/directory string /debian
# Suite to install.
d-i mirror/suite string beta4
# Suite to use for loading installer components (optional).
d-i mirror/udeb/suite string beta4
Unfortunately I noticed that choose-mirror in its choose-mirror.postinst script takes the values from /etc/lsb-release
and overrides the values provided in the preseed file:
if [ -f /etc/lsb-release ]; then
if [ -n "$DISTRIB_CODENAME" ]; then
db_set mirror/suite "$DISTRIB_CODENAME"
Thus I am actually unable to specify the repository in any reasonable format
like I would use in sources.list:
deb http://wro-linux.eu.tieto.com/debian beta4 main
Next installation steps fail due to being unable to find the stable suite that was found in lsb-release.
I know I could use a link from beta4 to stable on the repository, but mini-iso which take preseed with beta3 suite would also end up
in 'stable' which is linked to beta4.
I also noticed that I would have to edit debootstrap as well, as it seems there is no other preseed value which actually specifies
the distribution but mirror/suite and mirror/codename, as when I changed the lsb-release package to beta3/beta4,
debootstrap fails to find the beta3/beta4 scripts in his package (while it should actually look for squeeze). But this is out of the scope.
Thus long story short:
I believe that choose-mirror should first check if the user has not specified the mirror/suite with preseed before setting his own default value.