summaryrefslogtreecommitdiff
path: root/debian2dsc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'debian2dsc.sh')
-rwxr-xr-xdebian2dsc.sh127
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