From 60ef7242fe667c354d5d075022c335c01057728d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Mon, 7 Sep 2015 17:13:41 +0200 Subject: [PATCH] Cleanup OS detection, add --use-pdebuild-internal automatically to pbuilder as needed. --- mock.sh | 78 +++++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/mock.sh b/mock.sh index 53624b9..5d88e84 100755 --- a/mock.sh +++ b/mock.sh @@ -23,54 +23,41 @@ # pbuilder --create --hookdir `pwd`/pbuilder --distribution squeeze # -KEY_ID=${KEY_ID:-'64FA8786'} -top_srcdir=${top_srcdir} -DEBREPO_MAIN=${DEBREPO_MAIN:-~/debian} -DEBREPO_DEPS=${DEBREPO_DEPS:-~/debian-externals} -DEBDISTRO=${DEBDISTRO:-stable} -#PBUILDER_OPTS='--debbuildopts "-j8"' -#PDEBUILD_OPTS='--use-pdebuild-internal' -EXCLUDE=${EXCLUDE:-''} - if test "x$1" = "x-r"; then CONF="$2" shift shift fi +reg='^\(\w*\)\s\+\(\(GNU/Linux\|Linux\|release\)\s*\)*\([0-9]*\).*' if test -f /etc/redhat-release; then - OS=`cat /etc/redhat-release | head -n 1` + ISSUE=`cat /etc/redhat-release | head -n 1` else - OS=`cat /etc/issue | head -n 1` + ISSUE=`cat /etc/issue | head -n 1` fi + +OS=`echo ${ISSUE} | sed "s,${reg},\1,"` +OS_VER=`echo ${ISSUE} | sed "s,${reg},\4,"` ARCH=`uname -i` -was_build= -was_external= +if ! echo ${ISSUE} | grep -q "${reg}" || test -z "${OS}" || test -z "${OS_VER}" ; then + echo "Unknown platform: ${ISSUE}" + exit 1 +fi -#CONF=sl-5-x86_64 -#CONF=sl-5-i386 -#CONF=sl-6-x86_64 -if test -z "$CONF"; then - case $OS in - Debian*|Ubuntu*) +if test -z "${CONF}"; then + case ${OS} in + Debian|Ubuntu) CONF=pbuilder ;; - Scientific*5.*) - CONF=sl-5-$ARCH - ;; - Scientific*6.*) - CONF=sl-6-$ARCH + Scientific) + CONF=sl-${OS_VER}-${ARCH} ;; - Scientific*7.*) - CONF=sl-7-$ARCH + Fedora) + CONF=fed-${OS_VER}-${ARCH} ;; - Fedora*) - major=`rpm -q fedora-release | sed 's/fedora-release-\([0-9]*\)-.*/\1/'` - CONF=fed-$major-$ARCH - ;; - Red*Hat*) - CONF=epel-7-$ARCH + Red*) + CONF=epel-${OS_VER}-${ARCH} ;; *) echo "Unknown OS '$OS'" @@ -79,16 +66,38 @@ if test -z "$CONF"; then esac fi +# workaround pbuilder bugs +if test ${OS} = 'Debian' -a ${OS_VER} -ge 7 -o \ + ${OS} = 'Ubuntu' -a ${OS_VER} -ge 14 +then + required_internal=1 +fi + +KEY_ID=${KEY_ID:-'64FA8786'} +top_srcdir=${top_srcdir} +DEBREPO_MAIN=${DEBREPO_MAIN:-~/debian} +DEBREPO_DEPS=${DEBREPO_DEPS:-~/debian-externals} +DEBDISTRO=${DEBDISTRO:-stable} +EXCLUDE=${EXCLUDE:-''} +if test -n "${required_internal}"; then + PBUILDER_OPTS="${PBUILDER_OPTS} --debbuildopts \"-j8\"" + PDEBUILD_OPTS="${PDEBUILD_OPTS} --use-pdebuild-internal" +fi + LAUNCHDIR=`dirname $0` LAUNCHDIR=`(cd $LAUNCHDIR; pwd)` REPORTS=reports CMD="mock --configdir=mock -r $CONF --resultdir `pwd`/$REPORTS" +was_build= +was_external= + + if test "$1" != "clean"; then mkdir externals 2>/dev/null || : mkdir results 2>/dev/null || : mkdir -p $REPORTS 2>/dev/null || : - if test "$CONF" != "pbuilder"; then + if ! test "$CONF" = "pbuilder"; then mkdir mock 2>/dev/null || : ln -s /etc/mock/logging.ini mock/ 2>/dev/null || : if ! test -f mock/site-defaults.cfg; then @@ -224,6 +233,9 @@ while test -n "$1"; do # fragile mini-dinstall mkdir -p $DEBREPO_DEPS/mini-dinstall/incoming touch $DEBREPO_DEPS/$DEBDISTRO/Packages + + # required for '--use-pdebuild-internal' + mkdir -p results/pbuilder || : fi exit 0 ;; -- 1.8.2.3