[PATCH 4/9] set $MIRRORSITE default by --distribution

Loïc Minier lool at dooz.org
Sun Jan 17 13:12:06 UTC 2010


---
 pbuilder-checkparams |   83 ++++++++++++++++++++++++++++++++++++++++++--------
 pbuilder-modules     |   43 +++++++++++++++++++++-----
 pbuilderrc           |   15 ++++++++-
 3 files changed, 118 insertions(+), 23 deletions(-)

diff --git a/pbuilder-checkparams b/pbuilder-checkparams
index 5dded22..3bab2b3 100755
--- a/pbuilder-checkparams
+++ b/pbuilder-checkparams
@@ -26,6 +26,11 @@ export PBUILDER_PKGLIBDIR="${PBUILDER_PKGLIBDIR:-$PBUILDER_ROOT/usr/lib/pbuilder
 function preload_config () {
     while [ -n "$1" ]; do 
 	case "$1" in 
+	    --distribution|-d)
+		DISTRIBUTION="$2";
+		OVERRIDE_APTLINES_WARN=yes
+		shift; shift;
+		;;
 	    --profile|-p)
 		PROFILE="$2";
 		shift; shift;
@@ -45,7 +50,68 @@ function preload_config () {
 
 preload_config "$@"
 
+# Some distribution needs to use different distribution as their basis
+case "$DISTRIBUTION" in
+    expeimental)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="sid"
+	;;
+    *-backports)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%-backports}"
+	;;
+    *-proposed-updates)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%-proposed-updates}"
+	;;
+    */updates)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%/updates}"
+	;;
+    */volatile-sloppy)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%/volatile-sloppy}"
+	;;
+    */volatile)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%/volatile}"
+	;;
+    *-proposed)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%-proposed}"
+	;;
+    *-updates)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%-updates}"
+	;;
+    *-security)
+	DISTRIBUTION_ORIGINAL="$DISTRIBUTION"
+	DISTRIBUTION="${DISTRIBUTION%%-security}"
+	;;
+    *)
+	DISTRIBUTION_ORIGINAL=""
+	;;
+esac
+
 . "$PBUILDER_PKGLIBDIR"/pbuilder-loadconfig
+
+# Set MIRRORSITE default based on $DISTRIBUTION 
+# before parsing --mirror
+case "$DISTRIBUTION" in
+    drapper|hardy|interpid|jaunty|karmic|lucid)
+	MIRRORSITE="$UBUNTU_MIRRORSITE"
+	MIRROR_TYPE="UBUNTU"
+	;;
+    bo|buzz|hamm|potato|rex|sarge|slink|woody)
+	MIRRORSITE="$DEBIAN_OLD_MIRRORSITE"
+	MIRROR_TYPE="DEBIAN_OLD"
+	;;
+    *)
+	MIRRORSITE="$DEBIAN_MIRRORSITE"
+	MIRROR_TYPE="DEBIAN"
+	;;
+esac
+
 . "$PBUILDER_PKGLIBDIR"/pbuilder-modules
 
 #default value for this option is !empty!
@@ -69,6 +135,10 @@ while [ -n "$1" ]; do
 	    # preloaded
 	    shift; shift;
 	    ;;
+	--distribution|-d)
+	    # preloaded
+	    shift; shift;
+	    ;;
 	--basetgz) 
 	    case "${PBCURRENTCOMMANDLINEOPERATION}" in
 		create|--create)
@@ -103,11 +173,6 @@ while [ -n "$1" ]; do
 	    export http_proxy="$2";
 	    shift; shift;
 	    ;;
-	--distribution)
-	    DISTRIBUTION="$2";
-	    OVERRIDE_APTLINES_WARN=yes
-	    shift; shift;
-	    ;;
 	--architecture)
 	    ARCHITECTURE="$2";
 	    shift; shift;
@@ -297,14 +362,6 @@ if [ -z "${CHROOTEXEC}" ]; then
     CHROOTEXEC="chroot $BUILDPLACE "
 fi
 
-# handle 'experimental' specially. -- required for raw pbuilder (create/update) only.
-if [ "$DISTRIBUTION" = "experimental" ]; then
-    DISTRIBUTION="sid"
-    EXPERIMENTAL="true"
-else 
-    EXPERIMENTAL=
-fi
-
 case "$PBCURRENTCOMMANDLINEOPERATION" in 
     --login|login|--execute|execute|--pdebuild|pdebuild)
 	# don't do anything if it is "login", or pdebuild
diff --git a/pbuilder-modules b/pbuilder-modules
index c54a25b..b97a326 100644
--- a/pbuilder-modules
+++ b/pbuilder-modules
@@ -371,16 +371,43 @@ EOF
     cat > "$BUILDPLACE"/etc/apt/apt.conf.d/15pbuilder <<EOF
 APT::Install-Recommends "false";
 EOF
-    if [ -n "$EXPERIMENTAL" ]; then
-	log "I: Installing apt-lines and pinning for experimental"
-	if [ -n "$MIRRORSITE" ] ; then
-	    echo "deb $MIRRORSITE experimental main" >> "$BUILDPLACE"/etc/apt/sources.list
-	    echo "#deb-src $MIRRORSITE experimental main" >> "$BUILDPLACE"/etc/apt/sources.list
-	fi
-	cat >> "$BUILDPLACE"/etc/apt/apt.conf.d/15pbuilder <<EOF
+    case "$DISTRIBUTION" in
+	expeimental)
+	    log "I: Installing apt-lines and pinning for experimental"
+	    echo "deb $DEBIAN_MIRRORSITE experimental $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $DEBIAN_MIRRORSITE experimental $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    cat >> "$BUILDPLACE"/etc/apt/apt.conf.d/15pbuilder <<EOF
 APT::Default-Release "experimental";
 EOF
-    fi
+	    ;;
+	etch-backports|lenny-backports)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Debian)"
+	    echo "deb $DEBIAN_BACKPORTS_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $DEBIAN_BACKPORTS_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    ;;
+	*-backports)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Ubuntu)"
+	    echo "deb $UBUNTU_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $UBUNTU_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	*-proposed-updates)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Debian)"
+	    echo "deb $DEBIAN_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $DEBIAN_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	*/updates)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Debian security)"
+	    echo "deb $DEBIAN_SECURITY_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $DEBIAN_SECURITY_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	*/volatile-sloppy|*/volatile)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Debian volatile)"
+	    echo "deb $DEBIAN_VOLATILE_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $DEBIAN_VOLATILE_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	*-proposed|*-updates|*-security)
+	    log "I: Installing apt-lines for $DISTRIBUTION_ORIGINAL (Ubuntu)"
+	    echo "deb $UBUNTU_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	    echo "#deb-src $UBUNTU_MIRRORSITE $DISTRIBUTION_ORIGINAL $COMPONENTS" >> "$BUILDPLACE"/etc/apt/sources.list
+	*)
+	    ;;
+    esac
 }
 
 function copy_local_configuration () {
diff --git a/pbuilderrc b/pbuilderrc
index 5164d09..79265c6 100755
--- a/pbuilderrc
+++ b/pbuilderrc
@@ -41,9 +41,20 @@ CCACHEDIR="${PBUILDER_CACHEDIR}/${PROFILE:+$PROFILE/}ccache"
 #######################################################################
 # APT initialization parameters for chroot
 # ---------------------------------------------------------------------
-#export DEBIAN_BUILDARCH=athlon
-MIRRORSITE=http://cdn.debian.net/debian
+# MIRROR URLs
+DEBIAN_MIRRORSITE="http://cdn.debian.net/debian"
+DEBIAN_OLD_MIRRORSITE="http://archive.debian.org/debian"
+DEBIAN_VOLATILE_MIRRORSITE="http://volatile.debian.org/debian-volatile"
+DEBIAN_BACKPORTS_MIRRORSITE="http://backports.org/debian"
+DEBIAN_SECURITY_MIRRORSITE="http://security.debian.org"
+
+UBUNTU_MIRRORSITE="http://archive.ubuntu.com/ubuntu"
+
+# MIRRORSITE are now set by --distribution
+#MIRRORSITE=http://cdn.debian.net/debian
 #OTHERMIRROR="deb http://www.home.com/updates/ ./"
+
+#export DEBIAN_BUILDARCH=athlon
 #export http_proxy=http://your-proxy:8080/
 
 # specifying the distribution forces the distribution on "pbuilder update"
-- 
1.6.5




More information about the Pbuilder-maint mailing list