Bug#389430: Updated patch; make mirror/udeb/suite support multiple suites
Frans, Joey: thanks for your beedback, and sorry for the latency - I
was travelling/offline quite a bit in the past week.
Here's an updated patch that implements Joey's suggestion of extending
mirror/udeb/suite to support multiple suites. Again I've omitted the
indention of the inner loop to make it clear what has changed.
What I don't like about it:
* I'd prefer mirror/udeb/suites to mirror/udeb/suite, but I don't think
its a good enough reason to break an interface that's already part of
a stable release. One option would be to deprecate the singular
version, but support it for one more release - in the meantime we
could use one as an alias for the other, giving precedence to the
* I don't like how nested things are getting; if this is accepted,
I'd probably want to follow up with a patch that moves some of the
inner code into its own function.
* It doesn't solve the issue Frans highlighted about components
coming from separate mirrors. A proper solution for that problem
would probably involve letting users preseed with arbitrary sets of
sources.list style entries, meaning components can be fetched from
multiple types of media within one installation instance. That'd
certainly be a better paradigm, but would require much more
--- debian/changelog (revision 50009)
+++ debian/changelog (working copy)
@@ -1,3 +1,12 @@
+net-retriever (1.19) UNRELEASED-unstable; urgency=low
+ * Let mirror/udeb/suite support multiple values. Components from each
+ of these suites will be accessible by anna. In the case that a package
+ is available from multiple places, anna's current behavior is to use
+ the last one, not necessarily the one with the greatest version.
+ -- dann frazier <firstname.lastname@example.org> Fri, 02 Nov 2007 17:41:47 -0600
net-retriever (1.18) unstable; urgency=low
* Use /etc/udebs-source as the default release from which to fetch udebs.
--- net-retriever (revision 50009)
+++ net-retriever (working copy)
@@ -96,7 +96,6 @@
rm -f "$1"
- # Setting codename to a suite is not very nice, but can do no harm
if ! db_get mirror/udeb/suite || [ -z "$RET" ]; then
if [ -f /etc/udebs-source ]; then
@@ -104,18 +103,19 @@
- fetch "dists/$codename/Release" "$Release" || exit $?
+ for suite in $udebsuites; do
+ fetch "dists/$suite/Release" "$Release" || exit $?
# If gpgv and a keyring are installed, authentication is
# mandatory by default.
if type gpgv >/dev/null && [ -f "$keyring" ]; then
if db_get debian-installer/allow_unauthenticated && [ "$RET" = true ]; then
log "Not verifying Release signature: unauthenticated mode enabled"
- if ! fetch "dists/$codename/Release.gpg" "$Release.gpg"; then
- error "dists/$codename/Release is unsigned."
+ if ! fetch "dists/$suite/Release.gpg" "$Release.gpg"; then
+ error "dists/$suite/Release is unsigned."
if ! log-output -t net-retriever --pass-stdout \
gpgv --status-fd 1 --keyring "$keyring" \
@@ -143,7 +143,7 @@
rm -f "$Packages"
- fetch "dists/$codename/$pkgfile" "$Packages" || continue
+ fetch "dists/$suite/$pkgfile" "$Packages" || continue
checkmatch "$Release" "$pkgfile" \
"$(md5sum "$Packages" | cut -d' ' -f1)" \
"$(wc -c < "$Packages" | tr -d ' ')"
@@ -156,6 +156,8 @@
+ rm -f "$Release"