test dfsg repack
This commit is contained in:
parent
3e36bb0d88
commit
dc9b0c03cc
|
@ -1,4 +1,4 @@
|
||||||
uronode (2.4-1) UNRELEASED; urgency=medium
|
uronode (2.4-1+dfsg) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
* New upstream release
|
* New upstream release
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
MANIFEST=1
|
||||||
|
rm calibrate
|
|
@ -0,0 +1,220 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# see the repack.stub for how to use
|
||||||
|
|
||||||
|
# Copyright 2009, Ryan Niebur <ryan@debian.org>
|
||||||
|
# Copyright 2009-2011, gregor herrmann <gregoa@debian.org>
|
||||||
|
# License: Artistic or GPL-1+
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: repack.sh --upstream-version <ver> <downloaded file>"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
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"
|
||||||
|
fi
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
VER="$2"
|
||||||
|
FILE="$3"
|
||||||
|
PKG=`dpkg-parsechangelog --show-field 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" || unzip "$FILE" -d "$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"`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RM_OPTS="-vrf"
|
||||||
|
|
||||||
|
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=4
|
||||||
|
|
||||||
|
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|application/gzip|application/zip)
|
||||||
|
C_PROGRAM="gzip"
|
||||||
|
C_SUFFIX="gz"
|
||||||
|
;;
|
||||||
|
application/x-bzip2|application/bzip2)
|
||||||
|
C_PROGRAM="bzip2"
|
||||||
|
C_SUFFIX="bz2"
|
||||||
|
;;
|
||||||
|
application/x-xz|application/xz)
|
||||||
|
C_PROGRAM="xz"
|
||||||
|
C_SUFFIX="xz"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
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"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
POD=<<EOF
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
dpt-repack -- repackaging helper
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<dpt repack> --upstream-version I<version> I<downloaded file>"
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
B<dpt repack> helps creating repackaged tarballs, suitable for feeding
|
||||||
|
L<dpkg-source(1)>.
|
||||||
|
|
||||||
|
Work is commenced in three stages:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item
|
||||||
|
|
||||||
|
B<dpt repack> unpacks the provided upstream tarball.
|
||||||
|
|
||||||
|
=item
|
||||||
|
|
||||||
|
F<debian/repack.local> is sourced to remove unsuitable content.
|
||||||
|
|
||||||
|
=item
|
||||||
|
|
||||||
|
B<dpt repack> packs the sources again, under a suitable file name in the
|
||||||
|
form C<package_ver.orig.tar.gz> (suffix depending on initial compression).
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
B<dpt repack> invokes F<debian/repack.local> in an environment where B<rm> and
|
||||||
|
B<mv> are replaced with functions that reflect the operations in the
|
||||||
|
F<MANIFEST> file, if present.
|
||||||
|
|
||||||
|
=head1 COPYRIGHT & LICENSE
|
||||||
|
|
||||||
|
Copyright 2009, Ryan Niebur L<ryan@debian.org>
|
||||||
|
|
||||||
|
Copyright 2009-2011, gregor herrmann L<gregoa@debian.org>
|
||||||
|
|
||||||
|
This program is free software and can be distributed under the same terms as
|
||||||
|
Perl.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
EOF
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
: <<=cut
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
repack.stub - script to repack upstream tarballs from uscan
|
||||||
|
|
||||||
|
=head1 INSTRUCTIONS
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
Copyright 2009, Ryan Niebur <ryan@debian.org>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the same terms as Perl itself.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
if [ -z "$REPACK_SH" ]; then
|
||||||
|
if [ -x /usr/share/pkg-perl-tools/repack.sh ]; then
|
||||||
|
REPACK_SH='/usr/share/pkg-perl-tools/repack.sh'
|
||||||
|
elif [ -f ../../scripts/repack.sh ]; then
|
||||||
|
REPACK_SH=../../scripts/repack.sh
|
||||||
|
fi
|
||||||
|
if [ -z "$REPACK_SH" ] && which repack.sh > /dev/null; then
|
||||||
|
REPACK_SH=$(which repack.sh)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
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://anonscm.debian.org/gitweb/?p=pkg-perl/packages/pkg-perl-tools.git;a=blob_plain;f=scripts/repack.sh;hb=HEAD"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$REPACK_SH" "$@"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
version=3
|
version=3
|
||||||
|
opts=dversionmangle=s/\+dfsg$// \
|
||||||
http://sf.net/uronode/uronode-(\d[\d\.]+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
|
http://sf.net/uronode/uronode-(\d[\d\.]+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
|
||||||
|
export REPACK_SH=debian/repack.sh
|
||||||
|
debian sh debian/repack.stub
|
||||||
|
|
Loading…
Reference in New Issue