r68404 - in /trunk/libdancer-perl/debian: changelog repack.stub

gregoa at users.alioth.debian.org gregoa at users.alioth.debian.org
Fri Feb 11 21:58:38 UTC 2011


Author: gregoa
Date: Fri Feb 11 21:58:32 2011
New Revision: 68404

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=68404
Log:
Source package: replace debian/replace.stub (which was actually repack.sh)
with our typical repack.stub (which calls repack.sh).

Modified:
    trunk/libdancer-perl/debian/changelog
    trunk/libdancer-perl/debian/repack.stub

Modified: trunk/libdancer-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdancer-perl/debian/changelog?rev=68404&op=diff
==============================================================================
--- trunk/libdancer-perl/debian/changelog (original)
+++ trunk/libdancer-perl/debian/changelog Fri Feb 11 21:58:32 2011
@@ -8,6 +8,8 @@
 
   [ gregor herrmann ]
   * Add note about API changes to debian/NEWS.
+  * Source package: replace debian/replace.stub (which was actually repack.sh)
+    with our typical repack.stub (which calls repack.sh).
 
  -- Alessandro Ghedini <al3xbio at gmail.com>  Fri, 11 Feb 2011 15:02:55 +0100
 

Modified: trunk/libdancer-perl/debian/repack.stub
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdancer-perl/debian/repack.stub?rev=68404&op=diff
==============================================================================
--- trunk/libdancer-perl/debian/repack.stub (original)
+++ trunk/libdancer-perl/debian/repack.stub Fri Feb 11 21:58:32 2011
@@ -1,162 +1,82 @@
 #!/bin/sh
 
-# see the repack.stub for how to use
+: <<=cut
+=pod
 
-# TODO: provide example watch files and repack.locals
-# TODO: test suite. problems fixed that need to be tested:
-# * globbing
-# * whitespace and then comments in the MANIFEST
-# TODO: does / in weird places work? test suite too.
-# TODO: I actually broke stuff with the MANIFEST change not thinking..
-# TODO: allow for a sepearate (and multiple) MANIFEST files, then
-# de-uglify libsyntax-highlight-engine-kate-perl.
-# TODO: have each mv and rm check that something actually changed, and
-# if not, die
-# TODO: add support for .zip?
+=head1 NAME
 
-set -e
-set -u
+repack.stub - script to repack upstream tarballs from uscan
 
-usage() {
-    echo "Usage: repack.sh --upstream-version <ver> <downloaded file>"
-    exit 1
-}
+=head1 INSTRUCTIONS
 
-if [ "$#" != "3" ]; then
-    usage
-fi
-if [ "$1" != "--upstream-version" ]; then
-    usage
-fi
-if [ ! -f "$3" ]; then
-    if [ -n "$3" ]; then
-        echo "$3 doesn't exist"
+put this in debian/repack.stub and add "debian sh debian/repack.stub" to
+the end of the line in debian/watch. you will also need to add a version
+mangle to debian/watch.
+
+then create a debian/repack.local. this is a shell script that is
+sourced under "set -e", so be careful to check returns codes.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item rm
+
+rm is replaced by a function that does some magic ("rm -rv" by default), but also changes MANIFEST if $MANIFEST is 1
+
+=item mv
+
+mv is replaced by a function that just does mv (by default), but also changes MANIFEST if $MANIFEST is 1
+
+=item requires_version
+
+requires_version is there for future usage for requiring certain versions of the script
+
+=back
+
+=head1 VARIABLES
+
+=over 4
+
+=item SUFFIX
+
+defaults to +dfsg
+
+what to append to the upstream version
+
+=item RM_OPTS
+
+defaults to -vrf
+
+options to pass to rm
+
+=item MANIFEST
+
+defaults to 0, set to 1 to turn on.
+
+this will manipulate MANIFEST files in CPAN tarballs.
+
+=item UP_BASE
+
+this is the directory where the upstream source is.
+
+=back
+
+=cut
+
+if [ -z "$REPACK_SH" ]; then
+    if [ -f ../../scripts/repack.sh ]; then
+        REPACK_SH=../../scripts/repack.sh
     fi
-    usage
-fi
-VER="$2"
-FILE="$3"
-PKG=`dpkg-parsechangelog|grep ^Source:|sed 's/^Source: //'`
-
-SUFFIX="+dfsg"
-
-echo
-echo "Repackaging $FILE"
-echo
-
-DIR=`mktemp -d ./tmpRepackXXXXXX`
-DIR=$(readlink -f "$DIR")
-trap "/bin/rm -rf \"$DIR\"" QUIT INT EXIT
-
-# Create an extra directory to cope with rootless tarballs
-UP_BASE="$DIR/unpack"
-mkdir "$UP_BASE"
-tar xf "$FILE" -C "$UP_BASE"
-
-if [ `ls -1 "$UP_BASE" | wc -l` -eq 1 ]; then
-	# Tarball does contain a root directory
-	UP_BASE="$UP_BASE/`ls -1 "$UP_BASE"`"
+    if [ -z "$REPACK_SH" ] && which repack.sh > /dev/null; then
+        REPACK_SH=$(which repack.sh)
+    fi
 fi
 
-RM_OPTS="-vrf"
+if [ ! -f "$REPACK_SH" ]; then
+    echo "Couldn't find a repack.sh. please put it in your PATH, put it at ../../scripts/repack.sh, or put it somewhere else and set the REPACK_SH variable"
+    echo "You can get it from http://svn.debian.org/viewsvn/pkg-perl/scripts/repack.sh"
+    exit 1
+fi
 
-real_rm(){
-    /bin/rm "$@"
-}
-
-real_mv(){
-    /bin/mv "$@"
-}
-
-rm(){
-    set +f
-    MYOLDPWD=$(pwd)
-    cd "$UP_BASE"
-    if [ "$MANIFEST" = "1" ]; then
-        PERM=$(stat --format=%a "MANIFEST")
-        chmod u+w "MANIFEST"
-    fi
-    for i in $@; do
-        if [ "$MANIFEST" = "1" ]; then
-            PATTERN="^$i"
-            if [ -d "$i" ]; then
-                if ! { echo "$PATTERN" | grep -q "/$" ; }; then
-                    PATTERN="${PATTERN}/"
-                fi
-            else
-                PATTERN="${PATTERN}\s?"
-            fi
-            grep -Ev "$PATTERN" "MANIFEST" > "$DIR/MANIFEST"
-            real_mv "$DIR/MANIFEST" "MANIFEST"
-        fi
-        real_rm "$RM_OPTS" "$i"
-    done
-    if [ "$MANIFEST" = "1" ]; then
-        chmod $PERM "MANIFEST"
-    fi
-    cd $MYOLDPWD
-    set -f
-}
-
-mv(){
-    set +f
-    OLD=$(pwd)
-    cd $UP_BASE
-    real_mv "$@"
-    cd $OLD
-    if [ "$MANIFEST" = "1" ]; then
-        echo "MANIFEST cannot be manipulated with mv yet, patches welcome"
-        exit 1
-    fi
-    set -f
-}
-
-# bump with incompatible changes
-REPACK_VERSION=2
-
-requires_version(){
-    if [ $REPACK_VERSION -lt $1 ]; then
-        echo "repack.sh is not up to date enough for this package. you need at least version $1, while this script is only version $REPACK_VERSION"
-        exit 1
-    fi
-}
-
-MANIFEST=0
-## Remove stuff
-set -f
-MYORIGPWD=$(pwd)
-cd "$UP_BASE"
-. "$MYORIGPWD/debian/repack.local"
-cd $MYORIGPWD
-set +f
-## End
-
-REPACK_DIR="$PKG-${VER}${SUFFIX}.orig" # DevRef § 6.7.8.2
-DFSG_TAR="$(dirname $FILE)/${PKG}_${VER}${SUFFIX}.orig.tar"
-
-real_mv "$UP_BASE" "$DIR/$REPACK_DIR"
-
-# .gz or .bz2?
-FILETYPE=$(file --brief --mime-type --dereference "$FILE")
-case "$FILETYPE" in
-    application/x-gzip)
-        C_PROGRAM="gzip"
-        C_SUFFIX="gz"
-        ;;
-    application/x-bzip2)
-        C_PROGRAM="bzip2"
-        C_SUFFIX="bz2"
-        ;;
-    *)
-        echo "E: Unknown filetye $FILETYPE"
-        exit 1
-        ;;
-esac
-    
-# Using a pipe hides tar errors!
-tar cfC "$DIR/repacked.tar" "$DIR" "$REPACK_DIR"
-$C_PROGRAM -9 < "$DIR/repacked.tar" > "$DIR/repacked.tar.$C_SUFFIX"
-
-real_mv "$DIR/repacked.tar.$C_SUFFIX" "$DFSG_TAR.$C_SUFFIX"
-
-echo "*** $DFSG_TAR.$C_SUFFIX ready"
+exec "$REPACK_SH" "$@"




More information about the Pkg-perl-cvs-commits mailing list