diff options
-rwxr-xr-x | debian/pbuilder.postinst | 41 | ||||
-rw-r--r-- | debian/pbuilder.templates | 13 |
2 files changed, 46 insertions, 8 deletions
diff --git a/debian/pbuilder.postinst b/debian/pbuilder.postinst index e2f5a39..4de5873 100755 --- a/debian/pbuilder.postinst +++ b/debian/pbuilder.postinst @@ -26,24 +26,49 @@ case "$1" in CONFFILE=/etc/pbuilderrc # if there is a custom file, then we shouldn't touch it - if [ -f "$CONFFILE" ] ; then + if [ -f "$CONFFILE" ] + then CURRENTMIRROR=$(grep -E "^MIRRORSITE=" "$CONFFILE" | sed 's#MIRRORSITE=##g') - [ "$CURRENTMIRROR" = "_" ] || exit 0 + [ -z "$CURRENTMIRROR" ] || exit 0 else - # FIXME: try creating a file only with the MIRRORSITE line + # TODO: try creating a file only with the MIRRORSITE line cp "/usr/share/doc/pbuilder/examples/pbuilderrc" "$CONFFILE" - MIRRORSITE="_" + MIRRORSITE="" + db_set pbuilder/mirrorsite "" fi + db_input medium pbuilder/mirrorsite || [ $? = 30 ] + db_go + db_get pbuilder/mirrorsite MIRRORSITE="$RET" - if [ "$MIRRORSITE" = "_" ] + # the "_" alternative is just a safety net, + # but that should really never happen + if [ -z "$MIRRORSITE" ] || [ "$MIRRORSITE" = "_" ] then - MIRRORSITE=$(grep -E '^deb ' /etc/apt/sources.list | head -n 1 | awk '{print $2;}') + TMPSRC=`mktemp` + SRCLISTDIR=/etc/apt/sources.list.d + [ -f /etc/apt/sources.list ] && cat /etc/apt/sources.list > "$TMPSRC" || true + [ -f $SRCLISTDIR/*.sources.list ] && cat $SRCLISTDIR/*.sources.list >> "$TMPSRC" || true + MIRRORSITE=$(grep -E '^deb ' "$TMPSRC" | head -n 1 | awk '{print $2;}') + rm -f "$TMPSRC" + while [ -z "$MIRRORSITE" ] + do + db_input pbuilder/nomirror || true + db_input high pbuilder/mirrorsite && RETCODE=$? || RETCODE=$? + db_go + + # if the interface is non-interactive, still set a valid mirror + if [ $RETCODE = 30 ] + then + MIRRORSITE="http://ftp.debian.org/debian" + else + db_get pbuilder/mirrorsite + MIRRORSITE="$RET" + fi + done db_set pbuilder/mirrorsite "$MIRRORSITE" - db_input medium pbuilder/mirrorsite || true - db_go fi TMPFILE=`mktemp` diff --git a/debian/pbuilder.templates b/debian/pbuilder.templates index 2c36d2f..3887e41 100644 --- a/debian/pbuilder.templates +++ b/debian/pbuilder.templates @@ -3,3 +3,16 @@ Type: string Default: _ _Description: Default mirror site: Please enter the default mirror you want to be used by pbuilder. + . + If you leave this field blank, there will be one attempt to autodetect + this information. If this attempt fails, you will be prompted to insert + valid mirror information. + . + Here is a valid mirror example: http://ftp.debian.org/debian + +Template: pbuilder/nomirror +Type: error +_Description: Default mirror not found + Mirror information detection failed and the user provided no mirror information. + . + Please enter valid mirror information. |