Package: net-retriever
Version: 1.44
Severity: wishlist
Tags: patch
X-Debbugs-CC: "Helge Deller" <del...@gmx.de>, "John Paul Adrian Glaubitz" 
<glaub...@physik.fu-berlin.de>, "James Clarke" <jrt...@debian.org>

Dear Maintainer,

net-retriever pulls udeb packages from one sole suite
(the one registered in mirror/udeb/suite).

Non released architectures from www.debian-ports.org may store
some udebs in the suite 'unreleased' too. These are currently
neglected by net-retriever.

The patch below enables the use of both suites by net-retriever
on non released architectures. (A file 'port_architecture'
should be created previously by another package, e.g. 
choose-mirror-bin. See #879130)

Regards,
JH Chatenet

--- a/net-retriever
+++ b/net-retriever
@@ -84,31 +84,9 @@
        exit 1
 }
 
-cmd="$1"
-shift
-
-case "$cmd" in
-    retrieve)
-       fetch "$@"
-       exit $?
-       ;;
-
-    packages)
-       rm -f "$1"
-       touch "$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
-                       RET=$(cat /etc/udebs-source)
-               else
-                       db_get mirror/codename
-               fi
-       fi
-       codename="$RET"
-
+get_packages () {
        Release="/tmp/net-retriever-$$-Release"
-       fetch "dists/$codename/Release" "$Release" || exit $?
+       fetch "dists/$codename/Release" "$Release" || return $?
        # If gpgv and a keyring are installed, authentication is
        # mandatory by default.
        if type gpgv >/dev/null && [ -f "$keyring" ]; then
@@ -157,6 +135,43 @@
                        break
                done
        done
+
+       return $ret;
+}
+
+cmd="$1"
+shift
+
+case "$cmd" in
+    retrieve)
+       fetch "$@"
+       exit $?
+       ;;
+
+    packages)
+       rm -f "$1"
+       touch "$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
+                       RET=$(cat /etc/udebs-source)
+               else
+                       db_get mirror/codename
+               fi
+       fi
+       codename="$RET"
+
+       get_packages "$1" || exit $ret
+
+       if [ -e /usr/lib/choose-mirror/port_architecture ]; then
+               # Port architectures use both suites 'unstable' and 'unreleased'
+               # We append the 'Packages' file from 'unreleased' to the one 
from 'unstable'
+               # We don't require the availability of 'unreleased'
+               codename="unreleased"
+               get_packages "$1"
+       fi
+
        exit $ret
        ;;
 

Reply via email to