Adding upstream version 2.25.15.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
10737b110a
commit
b543f2e88d
485 changed files with 191459 additions and 0 deletions
231
scripts/deb-reversion.sh
Executable file
231
scripts/deb-reversion.sh
Executable file
|
@ -0,0 +1,231 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# deb-reversion -- a script to bump a .deb file's version number.
|
||||
#
|
||||
# Copyright © martin f. krafft <madduck@madduck.net>
|
||||
# with contributions by: Goswin von Brederlow, Filippo Giunchedi
|
||||
# Released under the terms of the Artistic License 2.0
|
||||
#
|
||||
# TODO:
|
||||
# - add debugging output.
|
||||
# - allow to be used on dpkg-source and dpkg-deb unpacked source packages.
|
||||
#
|
||||
set -eu
|
||||
|
||||
PROGNAME=${0##*/}
|
||||
PROGVERSION=0.9.1
|
||||
VERSTR='LOCAL.'
|
||||
|
||||
versioninfo() {
|
||||
echo "$PROGNAME $PROGVERSION"
|
||||
echo "$PROGNAME is copyright © martin f. krafft"
|
||||
echo "Released under the terms of the Artistic License 2.0"
|
||||
echo "This programme is part of devscripts ###VERSION###."
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<-_eousage
|
||||
Usage: $PROGNAME [options] .deb-file [log message]
|
||||
$PROGNAME -o <version> -c
|
||||
|
||||
Increase the .deb file's version number, noting the change in the
|
||||
changelog with the specified log message. You should run this
|
||||
program either as root or under fakeroot.
|
||||
|
||||
Options:
|
||||
_eousage
|
||||
cat <<-_eooptions | column -s\& -t
|
||||
-v ver|--new-version=ver & use this as new version number
|
||||
-o old|--old-version=ver & calculate new version number based on this old one
|
||||
-c|--calculate-only & only calculate (and print) the augmented version
|
||||
-s str|--string=str & append this string instead of '$VERSTR' to
|
||||
& calculate new version number
|
||||
-k script|--hook=script & call this script before repacking
|
||||
-D|--debug & call dpkg-deb in debug mode
|
||||
-b|--force-bad-version & passed through to dch
|
||||
-h|--help & show this output
|
||||
-V|--version & show version information
|
||||
_eooptions
|
||||
}
|
||||
|
||||
write() {
|
||||
local PREFIX; PREFIX="$1"; shift
|
||||
echo "${PREFIX}: $PROGNAME: $@" >&2
|
||||
}
|
||||
|
||||
err() {
|
||||
write E "$@"
|
||||
}
|
||||
|
||||
CURDIR="$(pwd)"
|
||||
SHORTOPTS=hVo:v:ck:Ds:b
|
||||
LONGOPTS=help,version,old-version:,new-version:,calculate-only,hook:,debug,string:,force-bad-version
|
||||
eval set -- "$(getopt -s bash -o $SHORTOPTS -l $LONGOPTS -n "$PROGNAME" -- "$@")"
|
||||
|
||||
CALCULATE=0
|
||||
DPKGDEB_DEBUG=
|
||||
DEB=
|
||||
DCH_OPTIONS=
|
||||
for opt in "$@"; do
|
||||
case "${OPT_STATE:-}" in
|
||||
SET_OLD_VERSION) OLD_VERSION="$opt";;
|
||||
SET_NEW_VERSION) NEW_VERSION="$opt";;
|
||||
SET_STRING) VERSTR="$opt";;
|
||||
SET_HOOK) HOOK="$opt";;
|
||||
*) :;;
|
||||
esac
|
||||
[ -n "${OPT_STATE:-}" ] && unset OPT_STATE && continue
|
||||
|
||||
case $opt in
|
||||
-v|--new-version) OPT_STATE=SET_NEW_VERSION;;
|
||||
-o|--old-version) OPT_STATE=SET_OLD_VERSION;;
|
||||
-c|--calculate-only|--print-only) CALCULATE=1;;
|
||||
-s|--string) OPT_STATE=SET_STRING;;
|
||||
-k|--hook) OPT_STATE=SET_HOOK;;
|
||||
-D|--debug) DPKGDEB_DEBUG=--debug;;
|
||||
-b|--force-bad-version) DCH_OPTIONS="${DCH_OPTIONS} -b";;
|
||||
-h|--help) usage; exit 0;;
|
||||
-V|--version) versioninfo; exit 0;;
|
||||
--) :;;
|
||||
*)
|
||||
if [ -f "$opt" ]; then
|
||||
if [ -n "$DEB" ]; then
|
||||
err "multiple .deb files specified: ${DEB##*/} and $opt"
|
||||
exit 1
|
||||
else
|
||||
case "$opt" in
|
||||
/*.deb|/*.udeb) DEB="$opt";;
|
||||
*.deb| *.udeb) DEB="${CURDIR}/$opt";;
|
||||
*)
|
||||
err "not a .deb file: $opt";
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
else
|
||||
LOG="${LOG:+$LOG }$opt"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $CALCULATE -eq 0 ] || [ -z "${OLD_VERSION:-}" ]; then
|
||||
if [ -z "$DEB" ]; then
|
||||
err no .deb file specified.
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${NEW_VERSION:-}" ] && [ $CALCULATE -eq 1 ]; then
|
||||
echo "$PROGNAME error: the options -v and -c cannot be used together" >&2
|
||||
usage
|
||||
exit 4
|
||||
fi
|
||||
|
||||
make_temp_dir() {
|
||||
TMPDIR=$(mktemp -d --tmpdir deb-reversion.XXXXXX)
|
||||
trap 'rm -rf "$TMPDIR"' EXIT
|
||||
mkdir -p ${TMPDIR}/package
|
||||
TMPDIR=${TMPDIR}/package
|
||||
}
|
||||
|
||||
extract_deb_file() {
|
||||
dpkg-deb $DPKGDEB_DEBUG --extract "$1" .
|
||||
dpkg-deb $DPKGDEB_DEBUG --control "$1" DEBIAN
|
||||
}
|
||||
|
||||
get_version() {
|
||||
dpkg-deb -f "$1" Version
|
||||
}
|
||||
|
||||
bump_version() {
|
||||
case "$1" in
|
||||
*${VERSTR}[0-9]*)
|
||||
REV=${1##*${VERSTR}}
|
||||
echo ${1%${VERSTR}*}${VERSTR}$((++REV));;
|
||||
*-*)
|
||||
echo ${1}${VERSTR}1;;
|
||||
*)
|
||||
echo ${1}-0${VERSTR}1;;
|
||||
esac
|
||||
}
|
||||
|
||||
call_hook() {
|
||||
[ -z "${HOOK:-}" ] && return 0
|
||||
export VERSION
|
||||
sh -c "$HOOK"
|
||||
}
|
||||
|
||||
change_version() {
|
||||
PACKAGE=$(sed -ne 's,^Package: ,,p' DEBIAN/control)
|
||||
VERSION=$1
|
||||
|
||||
# changelog massaging is only needed in the deb (not-udeb) case:
|
||||
if [ "$DEB_TYPE" = "deb" ]; then
|
||||
LOGFILE=
|
||||
for i in changelog{,.Debian}.gz; do
|
||||
[ -f usr/share/doc/${PACKAGE}/$i ] \
|
||||
&& LOGFILE=usr/share/doc/${PACKAGE}/$i
|
||||
done
|
||||
if [ -n "$LOGFILE" ]; then
|
||||
mkdir -p debian
|
||||
zcat "$LOGFILE" > debian/changelog
|
||||
shift
|
||||
dch $DCH_OPTIONS -v "$VERSION" -- "$@"
|
||||
call_hook
|
||||
gzip -9 -c debian/changelog >| "$LOGFILE"
|
||||
MD5SUM=$(md5sum "$LOGFILE")
|
||||
sed -i "s@^[^ ]* $LOGFILE\$@$MD5SUM@" DEBIAN/md5sums
|
||||
fi
|
||||
else
|
||||
call_hook
|
||||
fi
|
||||
|
||||
sed -i -e "s,^Version: .*,Version: $VERSION," DEBIAN/control
|
||||
rm -rf debian
|
||||
}
|
||||
|
||||
repack_file() {
|
||||
cd ..
|
||||
dpkg-deb -b package >/dev/null
|
||||
debfile=$(DPKG_COLORS=never DPKG_NLS=0 dpkg-name package.deb | sed -e "s,.*['\`]\(.*\).,\1,")
|
||||
# if Package-Type: udeb is absent, dpkg-name can't rename into *.udeb,
|
||||
# so we're left to an extra rename afterwards:
|
||||
if [ "$DEB_TYPE" = udeb ]; then
|
||||
udebfile=${debfile%%.deb}.udeb
|
||||
mv $debfile $udebfile
|
||||
echo $udebfile
|
||||
else
|
||||
echo $debfile
|
||||
fi
|
||||
}
|
||||
|
||||
[ -z "${OLD_VERSION:-}" ] && OLD_VERSION="$(get_version "$DEB")"
|
||||
[ -z "${NEW_VERSION:-}" ] && NEW_VERSION="$(bump_version $OLD_VERSION)"
|
||||
|
||||
if [ $CALCULATE -eq 1 ]; then
|
||||
echo $NEW_VERSION
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $(id -u) -ne 0 ]; then
|
||||
err need root rights.
|
||||
exit 5
|
||||
fi
|
||||
|
||||
make_temp_dir
|
||||
cd "$TMPDIR"
|
||||
|
||||
DEB_TYPE=$(echo "$DEB"|sed 's/.*[.]//')
|
||||
extract_deb_file "$DEB"
|
||||
change_version "$NEW_VERSION" "${LOG:-Bumped version with $PROGNAME}"
|
||||
FILE="$(repack_file)"
|
||||
|
||||
if [ -f "$CURDIR/$FILE" ]; then
|
||||
echo "$CURDIR/$FILE exists, moving to $CURDIR/$FILE.orig ." >&2
|
||||
mv -i "$CURDIR/$FILE" "$CURDIR/$FILE.orig"
|
||||
fi
|
||||
|
||||
mv "../$FILE" "$CURDIR"
|
||||
|
||||
echo "version $VERSION of $PACKAGE is now available in $FILE ." >&2
|
Loading…
Add table
Add a link
Reference in a new issue