X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tools%2Fbackport-dsc;h=11017e2f648847cdb8916be5354d3a168538223a;hb=902fb0494294bd70ddf90a3d3e687e0cd6fff1ca;hp=f6251c60cf93f0eb0ee26f517c3a06328f6c3c20;hpb=5d8ae63cc7bf0117c74232192de73430b25947b0;p=neurodebian.git diff --git a/tools/backport-dsc b/tools/backport-dsc index f6251c6..11017e2 100755 --- a/tools/backport-dsc +++ b/tools/backport-dsc @@ -5,14 +5,15 @@ set -e set -u # version of this script -backports_dsc_version=0.1 +backports_dsc_version=0.2 ############ # Defaults # ############ -bp_distribution=${BACKPORT_DISTRIBUTION:-lenny-backports} -bp_version_suffix=${BACKPORT_VERSION_SUFFIX:-bpo50} +bp_distribution=${BACKPORT_DISTRIBUTION:-squeeze-backports} +bp_version_prefix=${BACKPORT_VERSION_PREFIX:-\~} +bp_version_suffix=${BACKPORT_VERSION_SUFFIX:-bpo60} bp_maintainer_name=${DEBFULLNAME:-unamed} bp_maintainer_email=${DEBEMAIL:-unknown} bp_update_maintainer=1 @@ -42,7 +43,7 @@ print_version() cat << EOT backport-dsc $backports_dsc_version -Copyright (C) 2010 Michael Hanke +Copyright (C) 2010-2012 Michael Hanke Licensed under GNU Public License version 2 or later. This is free software; see the source for copying conditions. There is NO @@ -67,7 +68,7 @@ for format 3.0 (quilt) source packages) and allow modification of debian/control via arbitrary 'sed' expressions. Backport relevant patches can be embedded in source packages for use with -backport-dsc. The distribution name (see --target-dsitribution) serves as an +backport-dsc. The distribution name (see --target-distribution) serves as an identifier to search for patches in the source package that shall be applied for a particular distribution. For packages using format the 3.0 (quilt), backport-dsc will look for debian/patches/series- and append it to @@ -90,7 +91,7 @@ Usage: backport-dsc [OPTIONS] Options: -d , --target-distribution - Arbitrary distribution name (e.g. lenny-backports). This will be the target + Arbitrary distribution name (e.g. squeeze-backports). This will be the target distribution used for the backport changelog entry. The distribution name also serves as an identifier to search for backport patches in the source package. @@ -108,7 +109,7 @@ Options: --mod-control sed expression to modify debian/control. The option can be given multiple - times and all expressions wil be passed to sed in the order of appearance. + times and all expressions will be passed to sed in the order of appearance. This can be used to, e.g. change build or runtime dependencies. --no-backport-patches @@ -124,13 +125,17 @@ Options: backport and identify herself as the maintainer. -s , --version-suffix - Version suffix that will be appended to the orginal source package version, + Version suffix that will be appended to the original source package version, ideally indicating the backport target distribution. The resulting package version will follow this schema: - ~+ + + - e.g.: 1.2.3-4~bpo50+1 + e.g.: 1.2.3-4~bpo60+1 with default =~ + +-p , --version-prefix + Version prefix that will be prepended to the backport version. By default it + is ~ but want to be changed (e.g. to +) for forward-porting to next releases. --verbose Enable additional status messages. @@ -158,7 +163,7 @@ backport-dsc -d myown-backports -v mo2010 examplepkg_1.2.3-4.dsc Create backport for some custom distribution with custom version suffix. backport-dsc -d ubuntu-lucid -v myppa --mod-control "-e 's/iceweasel/firefox/g'" examplepkg_1.2.3-4.dsc - Create a backport for a fake ubuntu PPA repository, replacing all occurences + Create a backport for a fake Ubuntu PPA repository, replacing all occurrences of iceweasel in debian/control with firefox. @@ -170,13 +175,16 @@ backport-dsc reads configuration from two files: system-wide from be sourced by backport-dsc. The following variables (each shown with an example setting) can be used to pre-configure backport-dsc: -bp_distribution="lenny-backports" +bp_distribution="squeeze-backports" Backport target distribution (see --backport-distribution) -bp_version_suffix="bpo50" +bp_version_prefix="~" + Version prefix (see --version-prefix) + +bp_version_suffix="bpo60" Version suffix (see --version-suffix) -bp_maintainer_name="Unkown fellow" +bp_maintainer_name="Unknown fellow" Name of the backport maintainer (see --maint-name) bp_maintainer_email="user@example.net" @@ -223,7 +231,7 @@ EOT # Note that we use `"$@"' to let each command-line parameter expand to a # separate word. The quotes around `$@' are essential! # We need CLOPTS as the `eval set --' would nuke the return value of getopt. -CLOPTS=`getopt -o h,d:,s: --long help,verbose-help,version,target-distribution:,version-suffix:,maint-name:,maint-email:,no-color,no-backport-patches,verbose,mod-control:,no-maintainer-update, -n 'backport-dsc' -- "$@"` +CLOPTS=`getopt -o h,d:,s:,p: --long help,verbose-help,version,target-distribution:,version-suffix:,version-prefix:,maint-name:,maint-email:,no-color,no-backport-patches,verbose,mod-control:,no-maintainer-update, -n 'backport-dsc' -- "$@"` if [ $? != 0 ] ; then echo "Terminating..." >&2 @@ -236,7 +244,8 @@ eval set -- "$CLOPTS" while true ; do case "$1" in -d|--target-distribution) shift; bp_distribution=$1; shift;; - -s|--version-suffix) shift; backport_version=$1; shift;; + -s|--version-suffix) shift; bp_version_suffix=$1; shift;; + -p|--version-prefix) shift; bp_version_prefix=$1; shift;; --maint-name) shift; bp_maintainer_name=$1; shift;; --maint-email) shift; bp_maintainer_email=$1; shift;; --no-maintainer-update) bp_update_maintainer=0; shift;; @@ -295,7 +304,7 @@ src_version=${src_version%%.dsc} wdir=$(mktemp -d -t backport-dsc.XXXXXX) sdir=$wdir/${src_name}-${src_version} -bp_version="~${bp_version_suffix}+" +bp_version="${bp_version_prefix}${bp_version_suffix}+" # setup environment for dpkg @@ -315,6 +324,9 @@ bp_dch_cmd="dch --noconf --force-distribution --force-bad-version -c $sdir/debia # extract the original source package dpkg-source -x $dsc_file $sdir # note backport in changelog +# This will create a new changelog entry +# All subsequent calls to dch should use -a to assure that those entries +# are appended to the existing entry (otherwise with wheezy new entries will be added) $bp_dch_cmd -D ${bp_distribution} -l "${bp_version}" "Backported for ${bp_distribution}." if [ "$bp_update_maintainer" = 1 ]; then @@ -333,7 +345,7 @@ if [ "$bp_apply_patches" = 1 ]; then printf "${green}Enabling additional quilt patch series for $bp_distribution.\n${NC}" fi cat $sdir/debian/patches/series-$bp_distribution >> $sdir/debian/patches/series - $bp_dch_cmd "Added 'series-$bp_distribution' in quilt patch series." + $bp_dch_cmd -a "Added 'series-$bp_distribution' in quilt patch series." fi # look for backport patches for p in $(ls -1 $sdir/debian/patches/$bp_distribution-dsc-patch* 2> /dev/null || true); do @@ -341,7 +353,7 @@ if [ "$bp_apply_patches" = 1 ]; then printf "${green}Applying additional patch $(basename "$p").\n${NC}" fi patch -p1 --directory=$sdir < "$p" - $bp_dch_cmd "Applied additional patch from debian/patches/$(basename "$p")." + $bp_dch_cmd -a "Applied additional patch from debian/patches/$(basename "$p")." done fi @@ -351,7 +363,7 @@ if [ -n "$bp_mod_control" ]; then printf "${green}Modifying debian/control with given instructions.\n${NC}" fi bash -c "sed -i $bp_mod_control $sdir/debian/control" - $bp_dch_cmd "Used following sed expression to modify debian/control:$bp_mod_control." + $bp_dch_cmd -a "Used following sed expression to modify debian/control:$bp_mod_control." fi # extract final version