]> git.donarmstrong.com Git - neurodebian.git/blob - tools/nd_backport
BF: backporting now works.
[neurodebian.git] / tools / nd_backport
1 #!/bin/bash
2
3 release=$1
4 dscfile=$2
5
6 set -e
7
8 if [ -z "$release" ]; then
9   echo "You need to provide a distribution codename (e.g. 'lenny', 'squeeze')."
10   exit 1
11 fi
12
13
14 set -e
15 set -u
16
17 if [ -z "$2" ]; then
18 cat << EOT
19 Script to backport a source package to some target release.
20
21 Synopsis
22 --------
23
24   nd_backport <codename> <dsc file>
25
26 EOT
27 exit 1
28 fi
29
30 . /home/neurodebian/neurodebian.git/tools/nd_cmdsettings.sh
31
32 DEBEMAIL="pkg-exppsy-maintainers@lists.alioth.debian.org"
33 DEBFULLNAME="NeuroDebian Maintainers"
34 export DEBEMAIL DEBFULLNAME
35
36 srcname=${dscfile%%_*}
37 srcversion=${dscfile#*_}
38 srcversion=${srcversion%%.dsc}
39 wdir=$(mktemp -d -t nd_backport.XXXXXX)
40 sdir=$wdir/${srcname}-${srcversion}
41
42 echo "Source package name: $srcname"
43 echo "Source package version: $srcversion"
44 echo "Extracting source package to: $sdir"
45
46 dpkg-source -x $dscfile $sdir
47
48 echo "Backporting to: $release"
49
50 changelog_entry="Backport of Debian package version $srcversion for \
51 NeuroDebian. Problems with the backport should be reported to the
52 NeuroDebian maintainers and not to the original Debian maintainer."
53
54 echo | debchange \
55          --noconf --force-bad-version \
56          -c $sdir/debian/changelog \
57          -D neurodebian \
58          -b -l "~${release}.nd" \
59          $changelog_entry
60
61 bpversion=$(dpkg-parsechangelog -l$sdir/debian/changelog | egrep '^Version: ' | cut -d ' ' -f 2,2)
62 dpkg-source -b $sdir
63
64 # cleanup
65 rm -rf $wdir
66
67 echo ${srcname}_$bpversion.dsc