diff options
Diffstat (limited to 'debian2dsc.sh')
-rwxr-xr-x | debian2dsc.sh | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/debian2dsc.sh b/debian2dsc.sh deleted file mode 100755 index 8daf67302..000000000 --- a/debian2dsc.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = "-o" ] -then - shift - dest="$1" - shift -else - dest="." -fi - -until [ -z "$1" ] -do - case "$1" in - *) - DIRS="$DIRS $1" - ;; - esac - shift -done - -if [ -z "$DIRS" ] -then - cat <<__END__ -Usage: $0 [-o output/] [dir ...] - -Expects directories containing the contents of the debian/ directory of a -Debian source package (i.e. control, changelog, watch, ...). Uses the watch -file to retrieve the upstream tarball (unless it already exists in the local -directory), creates a debian.tar.xz tarball from the given directory (ignoring -the ususal suspects like _darcs and *~) and creates a corresponding .dsc file; -all without unpacking the upstream tarball. -__END__ - exit 1 -fi - -for DIR in $DIRS -do - if [ ! -e $DIR/control -o ! -e $DIR/changelog ] - then - echo "Did not find $DIR/control or $DIR/changelog." - echo "Is the repository in the debian/-only format?" - exit 1 - fi - - VERSION=`dpkg-parsechangelog -l$DIR/changelog -c1 -SVersion` - PACKAGE=`dpkg-parsechangelog -l$DIR/changelog -c1 -SSource` - UPSTREAM=`echo $VERSION | cut -d- -f1` # this could be improved - if echo $UPSTREAM | fgrep -q : ; then - UPSTREAM=`echo $UPSTREAM | cut -d: -f2-` - VERSION=`echo $VERSION | cut -d: -f2-` - fi - TARBALL_GZ=$dest/${PACKAGE}_$UPSTREAM.orig.tar.gz - TARBALL_BZ2=$dest/${PACKAGE}_$UPSTREAM.orig.tar.bz2 - TARBALL_XZ=$dest/${PACKAGE}_$UPSTREAM.orig.tar.xz - # see 375138 for why this doesn't work as well as it could. Fall back to apt-get source - # as a last resort. - [ ! -e $TARBALL_GZ -a ! -e $TARBALL_BZ2 -a ! -e $TARBALL_XZ ] && \ - ( uscan \ - --rename \ - --force-download \ - --package "$PACKAGE" \ - --download \ - --watchfile $DIR/watch \ - --copyright-file $DIR/copyright \ - --download-version "$UPSTREAM" \ - --upstream-version "$UPSTREAM" \ - --destdir "$dest" \ - --rename || - ( cd $dest ; apt-get source "$PACKAGE" --tar-only ) ) - - if [ ! -e $TARBALL_GZ -a ! -e $TARBALL_BZ2 -a ! -e $TARBALL_XZ ] - then - echo "Couldn't download tarball with uscan or apt-get source. See above for errors" - exit 1 - fi - - TARBALL="" - - if [ -e $TARBALL_GZ ] - then - TARBALL="$TARBALL_GZ" - else - if [ -e $TARBALL_XZ ] - then - TARBALL="$TARBALL_XZ" - else - if [ -e $TARBALL_BZ2 ] - then - TARBALL="$TARBALL_BZ2" - else - echo "Unreachable code" - exit 1 - fi - fi - fi - - DEBIAN_TARBALL=$dest/${PACKAGE}_${VERSION}.debian.tar.xz - # -I line taken from "man dpkg-source" - tar --create \ - --xz \ - --transform s,^.,debian, \ - --force-local \ - --file $DEBIAN_TARBALL \ - --directory $DIR \ - "--exclude=*.a" "--exclude=*.la" "--exclude=*.o" "--exclude=*.so" "--exclude=.*.sw?" "--exclude=*/*~" "--exclude=,,*" "--exclude=.[#~]*" "--exclude=.arch-ids" "--exclude=.arch-inventory" "--exclude=.be" "--exclude=.bzr" "--exclude=.bzr.backup" "--exclude=.bzr.tags" "--exclude=.bzrignore" "--exclude=.cvsignore" "--exclude=.deps" "--exclude=.git" "--exclude=.gitattributes" "--exclude=.gitignore" "--exclude=.gitmodules" "--exclude=.hg" "--exclude=.hgignore" "--exclude=.hgsigs" "--exclude=.hgtags" "--exclude=.shelf" "--exclude=.svn" "--exclude=CVS" "--exclude=DEADJOE" "--exclude=RCS" "--exclude=_MTN" "--exclude=_darcs" "--exclude={arch}" \ - . - - # dpkg-source insists on cluttering the current directory - dpkg-source \ - -c$DIR/control -l$DIR/changelog \ - --format="3.0 (custom)" --target-format="3.0 (quilt)" \ - -b / \ - $DEBIAN_TARBALL \ - $TARBALL - - DSC=${PACKAGE}_${VERSION}.dsc - if [ -e $DSC ] - then - mv $DSC "$dest/$DSC" - echo "Successfully created $DSC." - else - echo "Failed to create $DSC." - fi -done |