X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tools%2Fnd_backport;h=b91b54a3d54e60780ed9b73de1b3286e71256d4f;hb=HEAD;hp=3392d6504300d83bdce31384b149b8ef1dcc6fc9;hpb=0347586e144243468c1d697586d60eba2a7f86b2;p=neurodebian.git diff --git a/tools/nd_backport b/tools/nd_backport index 3392d65..b91b54a 100755 --- a/tools/nd_backport +++ b/tools/nd_backport @@ -1,19 +1,18 @@ #!/bin/bash +# +# Simple frontend for backport-dsc to do it the NeuroDebian way +# + +set -e release=$1 dscfile=$2 -set -e - if [ -z "$release" ]; then echo "You need to provide a distribution codename (e.g. 'lenny', 'squeeze')." exit 1 fi - -set -e -set -u - if [ -z "$2" ]; then cat << EOT Script to backport a source package to some target release. @@ -27,41 +26,23 @@ EOT exit 1 fi -. /home/neurodebian/neurodebian.git/tools/nd_cmdsettings.sh - -DEBEMAIL="team@neuro.debian.net" -DEBFULLNAME="NeuroDebian Maintainers" -export DEBEMAIL DEBFULLNAME - -srcname=${dscfile%%_*} -srcversion=${dscfile#*_} -srcversion=${srcversion%%.dsc} -wdir=$(mktemp -d -t nd_backport.XXXXXX) -sdir=$wdir/${srcname}-${srcversion} - -echo "Source package name: $srcname" -echo "Source package version: $srcversion" -echo "Extracting source package to: $sdir" - -dpkg-source -x $dscfile $sdir - -echo "Backporting to: $release" - -changelog_entry="Backport of Debian package version $srcversion for \ -NeuroDebian. Problems with the backport should be reported to the -NeuroDebian maintainers and not to the original Debian maintainer." - -echo | debchange \ - --noconf --force-bad-version \ - -c $sdir/debian/changelog \ - -D ${release} \ - -b -l "~${release}.nd" \ - $changelog_entry +set -u -bpversion=$(dpkg-parsechangelog -l$sdir/debian/changelog | egrep '^Version: ' | cut -d ' ' -f 2,2) -dpkg-source -b $sdir +upstream_name=${dscfile%%_*} -# cleanup -rm -rf $wdir +# To overcome bash desire to claim empty array unbound under 'set -u' +# above, lets just specify empty rule for sed when nothing to be done +mod_control="" +if [ "$upstream_name" != "neurodebian" ]; then + # Avoid injection into neurodebian package itself + mod_control='s/\(^Depends:\) */\1 neurodebian-popularity-contest, /g' +fi -echo ${srcname}_$bpversion.dsc +# assemble an appropriate backport-dsc call +backport-dsc \ + --maint-name "NeuroDebian Maintainers" \ + --maint-email "team@neuro.debian.net" \ + --target-distribution "$release" \ + --version-suffix "$(nd_querycfg "release backport ids" "$release")" \ + --mod-control "$mod_control" \ + "$dscfile"