[latexdraw] 44/147: * new version of repackage script

Stuart Prescott stuart at debian.org
Thu Nov 24 23:53:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

stuart pushed a commit to branch master
in repository latexdraw.

commit ac76e05672893f6247d0f7368023ccd3b9b866d5
Author: Stuart Prescott <stuart at debian.org>
Date:   Mon Apr 20 22:24:37 2009 +0000

    * new version of repackage script
---
 debian/repackage   | 336 +++++++++++++++++++++++++++++++++++------------------
 debian/repackagerc |  13 ++-
 2 files changed, 234 insertions(+), 115 deletions(-)

diff --git a/debian/repackage b/debian/repackage
index 4b5706a..53f4037 100755
--- a/debian/repackage
+++ b/debian/repackage
@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh
 
 set -u
 set -e
@@ -12,45 +12,50 @@ PACKAGE=frobinator
 UPSTREAM=sourceforge.net
 
 UNARCHIVE=do_unzip
-RM_LIST="lib,src lib"
-FIND_LIST="*.jar,*.class"
+WRAPDIR=true
 
-LOG=debian/README.Debian-source
+LOG=README.Debian-source
 
-VERBOSE=1
-CLEANUP=0
+VERBOSE=${VERBOSE:-1}
+CLEANUP=${CLEANUP:-0}
 
-RCFILE=debian/repackagerc
+SCRIPTDIR=$(dirname $(readlink -f $0))
 
-if [ ! -f $RCFILE ]
-then
-  cat <<EOT 1>&2
-$0 Error: No configuration parameters found in file $RCFILE.
-Exiting.
-EOT
-  exit 1
-fi
+NAME=$(basename $0)
+RCFILE=$SCRIPTDIR/repackagerc
 
-. $RCFILE
+EXCLUDE_LIST=""
+# Originally '197001010000.00' but tar complains about an 
+# "implausibly old time stamp"
+TOUCHTIME=199001010000.00
 
+# Set a consistent umask for repackaging so that the tarball is reproducible
+# (overridable in the rc file)
+umask 002
 
-if [ $# -lt 3 -o $# -gt 4 ] 
-then
+usage() {
   cat <<EOT 1>&2
-Usage: $0 --upstream-version x.y.z filename.zip [src_package_revision]
+Usage: $NAME --upstream-version x.y.z filename.zip 
+          [src_package_revision] [target_dir]
 
 Where the the version x.y.z is the version number of the new version and
-filename.zip is the new source filename for the package $PACKAGE.
+filename.zip (or .tar.gz or whatever) is the new source filename for the
+package $PACKAGE.
+
+If filename.zip starts with http:// or ftp:// then wget is used to download
+the archive first.
 
 The file $RCFILE must exist and set the following environment variables
 (and these are their current versions):
 
   PACKAGE=$PACKAGE
   UPSTREAM=$UPSTREAM
-  
+
   UNARCHIVE=$UNARCHIVE
-  RM_LIST=$RM_LIST
-  FIND_LIST=$FIND_LIST
+  EXCLUDE_LIST=$EXCLUDE_LIST
+
+(EXCLUDE_LIST is a list of exclusions for tar, one per line. Note that
+spaces in path names are problematic)
 
 It is expected that this utility is run by uscan or and is run in the
 base directory of the source package.
@@ -58,32 +63,27 @@ base directory of the source package.
 The optional argument 'src_package_revision' can be specified to 
 indicate additional cycles of source package revision that may have
 been undertaken in addition to the regular packaging activities.
+If not specified, the debian/changelog is parsed to try to work out what
+the source revision should be.
+
+The optional argument 'target_dir' may be used to specify where the repackaged
+source should be left.
+
 EOT
-  exit 1
-fi
+}
 
-function progress() {
-  if [ $VERBOSE ]
+progress() {
+  if [ "$VERBOSE" != 0 -a -n $VERBOSE ]
   then
     echo "$@"
   fi
 }
 
-function logmsg() {
+logmsg() {
   echo "$@" >> $LOGFILE
 }
 
-# function logcmd() {
-#   logmsg ""
-#   logmsg "\$ $@"
-#   OUT="$($@)"
-#   if [ ! -z "$OUT" ]
-#   then
-#     logmsg "$OUT"
-#   fi
-# }
-
-function logcmd() {
+logcmd() {
   logcmdpieces "$@"
   "$@" >> $LOGFILE
 }
@@ -92,65 +92,173 @@ function logcmd() {
 # maintain proper quoting in the log, it seems, unless each command is
 # double quoted to begin with... which is also an ugly, bug-attracting
 # hack.
-function logcmdpieces() {
-  echo -ne "\n$" >> $LOGFILE
-  for i in "$@"
-  do
-      case "$i" in
-        *\ *)
-            echo -n " \"$i\"" >> $LOGFILE
-          ;;
-        *)
-            echo -n " $i" >> $LOGFILE
-          ;;
-      esac
-  done
-  echo >> $LOGFILE
+logcmdpieces() {
+  printf "\n$ " >> $LOGFILE
+  echo "$@" >> $LOGFILE
 }
 
-function carp() {
-  echo $(basename $0)": Error: $*"
+carp() {
+  echo "E: ($NAME) $*"
   exit 1
 }
 
-function do_unzip() {
-  logcmd unzip -d "$1" "$2"
+do_unzip() {
+  logcmd unzip -qq -d "$1" "$2"
+}
+
+do_untargz() {
+  logcmd tar -C "$1" -zxf "$2"
 }
 
-function do_untargz() {
-  logcmd tar -C "$1" -zvxf "$2"
+do_untarbz2() {
+  logcmd tar -C "$1" -jxf "$2"
 }
 
-function do_untarbz2() {
-  logcmd tar -C "$1" -jvxf "$2"
+testarchive() {
+  case "$1" in
+    do_unzip)
+         ALLDIRS=$(zipinfo -1 "$2" | cut -f1 -d/ | sort -u)
+         if [ $(echo "$ALLDIRS" | wc -l) -gt 1 ]
+         then
+           testarchiveerror
+         fi
+         echo "$ALLDIRS"
+      ;;
+    do_untargz)
+         ALLDIRS=$(tar ztf "$2" | cut -f1 -d/ | sort -u)
+         if [ $(echo "$ALLDIRS" | wc -l) -gt 1 ]
+         then
+           testarchiveerror
+         fi
+         echo "$ALLDIRS"
+      ;;
+    do_untarbz2)
+         ALLDIRS=$(tar jtf "$2" | cut -f1 -d/ | sort -u)
+         if [ $(echo "$ALLDIRS" | wc -l) -gt 1 ]
+         then
+           testarchiveerror
+         fi
+         echo "$ALLDIRS"
+      ;;
+  esac
 }
 
+testarchiverror() {
+  echo "E: More than one directory was found in the unwrapped archive."
+  echo "E: Set WRAPDIR to wrap the contents of the tarball in a directory."
+  exit 1
+}
+
+make_exclude_list() {
+  echo "$EXCLUDE_LIST" | grep -v -e ^$ | sed 's/^\(.*\)/--exclude=\1/'
+}
+
+next_source_version() {
+  LAST_SRC=$(dpkg-parsechangelog | \
+                sed -n 's/Version: \(.*\)+[0-9\-]*/\1/p')
+  #echo "LS=$LAST_SRC"
+  if [ $LAST_SRC = $VERSION ]
+  then
+    SRCVERSION=$(dpkg-parsechangelog | \
+                sed -n 's/Version: [^+]*+\(.*\)-.*/\1/p')
+    SRCVERSION=$(($SRCVERSION+1))
+  else
+    SRCVERSION=1
+  fi
+  echo $SRCVERSION
+}
+
+###########################################################################
+
+if [ ! -f $RCFILE ]
+then
+  cat <<EOT 1>&2
+$0 Error: No configuration parameters found in file $RCFILE.
+Exiting.
+EOT
+  usage
+  exit 1
+fi
+
+# Read in the user/package settings
+. $RCFILE
+
+if [ $# -lt 3 -o $# -gt 5 ] 
+then
+  usage
+  exit 1
+fi
+
+###########################################################################
+
 DATE=$(date -R)
 
 VERSION=$2
-SRCFILE=$3
-SRCARCHIVE=$(basename "$SRCFILE")
+SRCPATH=$3
+
+SRCVERSION=""
 TARGETDIR=$(pwd)
+if [ $# -eq 5 ]
+then
+  SRCVERSION="$4"
+  TARGETDIR="$5"
+elif [ $# -eq 4 ]
+then
+  if [ -d $4 ]
+  then
+    TARGETDIR="$4"
+    SRCVERSION=$(next_source_version)
+  else
+    SRCVERSION="$4"
+  fi
+else
+  SRCVERSION=$(next_source_version)
+fi
+VERSION="$VERSION+$SRCVERSION"
+
+if [ ! -d "$TARGETDIR" ]
+then
+  carp "Target directory '$TARGETDIR' doesn't exist!"
+fi
+
+progress "I: Making orig tarball for $VERSION"
+
+###########################################################################
+
 LOGFILE=$TARGETDIR/$LOG
-rm -f $LOGFILE
 
-if [ $# -ge 4 ]
+if [ -f "$LOGFILE" ]
 then
-  VERSION="$VERSION+$4"
-else
-  VERSION="$VERSION+1"
+  progress "W: Deleting existing log file"
+  rm "$LOGFILE"
 fi
 
-DIR=${PACKAGE}-$VERSION
+###########################################################################
+
+DIR=${PACKAGE}-$VERSION.orig
+
+ARCHIVEFILE=${PACKAGE}_${VERSION}.orig.tar
+ARCHIVELOCATION="$TARGETDIR"
 
-ARCHIVEFILE=${PACKAGE}_${VERSION}.orig.tar.gz
-ARCHIVELOCATION="$(pwd)/../"
+TEMPDIR=$(mktemp -t -d $NAME.XXXXXXXXXX) || carp "Couldn't make temp dir"
 
-TEMPDIR=$(mktemp -d) || carp "Couldn't make temp dir"
-cp "$(pwd)/$SRCFILE" "$TEMPDIR"
+###########################################################################
+
+progress "I: Locating source $SRCPATH"
+
+SRCARCHIVE=$(basename "$SRCPATH")
+if [ $(expr substr "$SRCPATH" 1 7) = "http://" -o \
+     $(expr substr "$SRCPATH" 1 6) = "ftp://" ]
+then
+  UPSTREAMURL="$SRCPATH"
+  wget "$UPSTREAMURL" -O "$TEMPDIR/$SRCARCHIVE"
+else
+  cp "$SRCPATH" "$TEMPDIR"
+fi
 
 cd $TEMPDIR || carp "Couldn't cd to temp dir $TEMPDIR"
 
+###########################################################################
 MD5="md5sum --binary"
 
 logmsg "
@@ -159,63 +267,69 @@ Repackaging of original source for $PACKAGE
 
 $PACKAGE version $VERSION.
 
-Downloaded file $SRCARCHIVE from $UPSTREAM."
+Downloaded file:  $SRCARCHIVE
+From:             $UPSTREAM
+Path:             $SRCPATH"
 
 logcmd $MD5 $SRCARCHIVE
 
-progress "Details:
-Directory:    $DIR
-Package name: $PACKAGE
-Version:      $VERSION
-"
+progress "I: Directory:    $DIR
+I: Package name: $PACKAGE
+I: Version:      $VERSION"
 
 logmsg "
-The following commands were used to repackage the original source:"
+The following commands were used to repackage the original source (the
+'touch' commands ensure that the md5sum of the archives stays the same):"
 
 # get the source
-progress "Copying source"
-mkdir $DIR
-$UNARCHIVE $DIR $SRCARCHIVE
-cd $DIR || carp "Couldn't cd to archive dir $DIR"
-
-
-# clean up the archive
-progress "Cleaning up archive"
-
-OLDIFS=$IFS
-IFS=,
-for i in $RM_LIST
-do
-  logcmd rm -rf "$i"
-done
-
-for i in $FIND_LIST
-do
-  logcmd find . -name "$i" -exec rm -f {} \;
-done
-
-IFS=$OLDIFS
+progress "I: Uncompressing source"
+if $WRAPDIR 
+then
+  logcmd mkdir $DIR
+  $UNARCHIVE $DIR $SRCARCHIVE
+else
+  INNERDIR=$(testarchive $UNARCHIVE $SRCARCHIVE)
+  $UNARCHIVE . $SRCARCHIVE
+  logcmd mv $INNERDIR $DIR
+fi
+# set a consistent time for the top directory
+logcmd touch -t $TOUCHTIME $DIR
+# repackage the archive
+progress "I: Creating 'orig' tar archive"
 
-cd .. || carp "Couldn't leave archive dir"
+#echo "$(make_exclude_list)"
 
-# repackage the archive
-progress "Creating 'orig' archive"
-logcmd tar zcf $ARCHIVEFILE $DIR
+logcmd tar cf $ARCHIVEFILE --owner 0 --group 0 --numeric-owner \
+        $(make_exclude_list)  \
+        $DIR
 
-logcmd $MD5 $ARCHIVEFILE
+# Also set a consistent time on the tar archive
+logcmd touch -t $TOUCHTIME $ARCHIVEFILE
+#logcmd md5sum $ARCHIVEFILE
+progress "I: Compressing archive"
+logcmd gzip -9 $ARCHIVEFILE
+logcmd md5sum --binary $ARCHIVEFILE.gz
 
 logmsg "
   -- $DEBFULLNAME <$DEBEMAIL> $DATE
 ---------------------------------------------------------------------
 "
 
-progress "Moving archive $ARCHIVEFILE"
-mv $ARCHIVEFILE $ARCHIVELOCATION
+###########################################################################
+
+progress "I: Moving archive $ARCHIVEFILE.gz"
+#mv $ARCHIVEFILE $ARCHIVELOCATION
+touch $ARCHIVEFILE.gz
+mv $ARCHIVEFILE.gz $ARCHIVELOCATION
+
+###########################################################################
 
-progress "Cleaning up $TEMPDIR"
 if [ $CLEANUP != 0 ]
 then
+  progress "I: Cleaning up $TEMPDIR"
   rm -rf $TEMPDIR
+else
+  progress "I: Files left in $TEMPDIR for your inspection"
 fi
 
-
+###########################################################################
diff --git a/debian/repackagerc b/debian/repackagerc
index 0dbd0a4..ff3d5b2 100644
--- a/debian/repackagerc
+++ b/debian/repackagerc
@@ -1,9 +1,14 @@
 # Settings for repackaging the upstream source code
-# of the latexdraw package
+# of the jlibeps package
 
-PACKAGE=latexdraw
+PACKAGE=jlibeps
 UPSTREAM=sourceforge.net
 
 UNARCHIVE=do_unzip
-RM_LIST="lib,src lib,doc"
-FIND_LIST="*.jar,*.class"
+WRAPDIR=false
+EXCLUDE_LIST="
+bin
+doc
+*.class
+*.jar
+"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/latexdraw.git



More information about the pkg-java-commits mailing list