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
341
scripts/debrelease.sh
Executable file
341
scripts/debrelease.sh
Executable file
|
@ -0,0 +1,341 @@
|
|||
#!/bin/bash
|
||||
|
||||
# debrelease: a devscripts wrapper around dupload/dput which calls
|
||||
# dupload/dput with the correct .changes file as parameter.
|
||||
# All command line options are passed onto dupload.
|
||||
#
|
||||
# Written and copyright 1999-2003 by Julian Gilbey <jdg@debian.org>
|
||||
# Based on the original 'release' script by
|
||||
# Christoph Lameter <clameter@debian.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
set -e
|
||||
|
||||
PROGNAME=${0##*/}
|
||||
MODIFIED_CONF_MSG='Default settings modified by devscripts configuration files:'
|
||||
|
||||
usage() {
|
||||
echo \
|
||||
"Usage: $PROGNAME [debrelease options] [dupload/dput options]
|
||||
Run dupload on the newly created changes file.
|
||||
Debrelease options:
|
||||
--dupload Use dupload to upload files (default)
|
||||
--dput Use dput to upload files
|
||||
-a<arch> Search for .changes file made for Debian build <arch>
|
||||
-t<target> Search for .changes file made for GNU <target> arch
|
||||
-S Search for source-only .changes file instead of arch one
|
||||
--multi Search for multiarch .changes file made by dpkg-cross
|
||||
--debs-dir DIR Look for the changes and debs files in DIR instead of
|
||||
the parent of the current package directory
|
||||
--check-dirname-level N
|
||||
How much to check directory names before cleaning trees:
|
||||
N=0 never
|
||||
N=1 only if program changes directory (default)
|
||||
N=2 always
|
||||
--check-dirname-regex REGEX
|
||||
What constitutes a matching directory name; REGEX is
|
||||
a Perl regular expression; the string \`PACKAGE' will
|
||||
be replaced by the package name; see manpage for details
|
||||
(default: 'PACKAGE(-.+)?')
|
||||
--no-conf, --noconf
|
||||
Don't read devscripts config files;
|
||||
must be the first option given
|
||||
--help Show this message
|
||||
--version Show version and copyright information
|
||||
|
||||
$MODIFIED_CONF_MSG"
|
||||
}
|
||||
|
||||
version() {
|
||||
echo \
|
||||
"This is $PROGNAME, from the Debian devscripts package, version ###VERSION###
|
||||
This code is copyright 1999-2003 by Julian Gilbey, all rights reserved.
|
||||
Based on original code by Christoph Lameter.
|
||||
This program comes with ABSOLUTELY NO WARRANTY.
|
||||
You are free to redistribute this code under the terms of the
|
||||
GNU General Public License, version 2 or later."
|
||||
}
|
||||
|
||||
mustsetvar() {
|
||||
if [ "x$2" = x ]
|
||||
then
|
||||
echo >&2 "$PROGNAME: unable to determine $3"
|
||||
exit 1
|
||||
else
|
||||
# echo "$PROGNAME: $3 is $2"
|
||||
eval "$1=\"\$2\""
|
||||
fi
|
||||
}
|
||||
|
||||
# Boilerplate: set config variables
|
||||
DEFAULT_DEBRELEASE_UPLOADER=dupload
|
||||
DEFAULT_DEBRELEASE_DEBS_DIR=..
|
||||
DEFAULT_DEVSCRIPTS_CHECK_DIRNAME_LEVEL=1
|
||||
DEFAULT_DEVSCRIPTS_CHECK_DIRNAME_REGEX='PACKAGE(-.+)?'
|
||||
VARS="DEBRELEASE_UPLOADER DEBRELEASE_DEBS_DIR DEVSCRIPTS_CHECK_DIRNAME_LEVEL DEVSCRIPTS_CHECK_DIRNAME_REGEX"
|
||||
|
||||
if [ "$1" = "--no-conf" -o "$1" = "--noconf" ]; then
|
||||
shift
|
||||
MODIFIED_CONF_MSG="$MODIFIED_CONF_MSG
|
||||
(no configuration files read)"
|
||||
|
||||
# set defaults
|
||||
for var in $VARS; do
|
||||
eval "$var=\$DEFAULT_$var"
|
||||
done
|
||||
else
|
||||
# Run in a subshell for protection against accidental errors
|
||||
# in the config files
|
||||
eval $(
|
||||
set +e
|
||||
for var in $VARS; do
|
||||
eval "$var=\$DEFAULT_$var"
|
||||
done
|
||||
|
||||
for file in /etc/devscripts.conf ~/.devscripts
|
||||
do
|
||||
[ -r $file ] && . $file
|
||||
done
|
||||
|
||||
set | grep -E "^(DEBRELEASE|DEVSCRIPTS)_")
|
||||
|
||||
# check sanity
|
||||
case "$DEBRELEASE_UPLOADER" in
|
||||
dupload|dput) ;;
|
||||
*) DEBRELEASE_UPLOADER=dupload ;;
|
||||
esac
|
||||
|
||||
# We do not replace this with a default directory to avoid accidentally
|
||||
# uploading a broken package
|
||||
DEBRELEASE_DEBS_DIR="$(echo "$DEBRELEASE_DEBS_DIR" | sed -e 's%/\+%/%g; s%\(.\)/$%\1%;')"
|
||||
if ! [ -d "$DEBRELEASE_DEBS_DIR" ]; then
|
||||
debsdir_warning="config file specified DEBRELEASE_DEBS_DIR directory $DEBRELEASE_DEBS_DIR does not exist!"
|
||||
fi
|
||||
|
||||
case "$DEVSCRIPTS_CHECK_DIRNAME_LEVEL" in
|
||||
0|1|2) ;;
|
||||
*) DEVSCRIPTS_CHECK_DIRNAME_LEVEL=1 ;;
|
||||
esac
|
||||
|
||||
# set config message
|
||||
MODIFIED_CONF=''
|
||||
for var in $VARS; do
|
||||
eval "if [ \"\$$var\" != \"\$DEFAULT_$var\" ]; then
|
||||
MODIFIED_CONF_MSG=\"\$MODIFIED_CONF_MSG
|
||||
$var=\$$var\";
|
||||
MODIFIED_CONF=yes;
|
||||
fi"
|
||||
done
|
||||
|
||||
if [ -z "$MODIFIED_CONF" ]; then
|
||||
MODIFIED_CONF_MSG="$MODIFIED_CONF_MSG
|
||||
(none)"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# synonyms
|
||||
CHECK_DIRNAME_LEVEL="$DEVSCRIPTS_CHECK_DIRNAME_LEVEL"
|
||||
CHECK_DIRNAME_REGEX="$DEVSCRIPTS_CHECK_DIRNAME_REGEX"
|
||||
|
||||
|
||||
sourceonly=
|
||||
multiarch=
|
||||
debsdir="$DEBRELEASE_DEBS_DIR"
|
||||
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-a*) targetarch="$(echo "$1" | sed -e 's/^-a//')" ;;
|
||||
-t*) targetgnusystem="$(echo "$1" | sed -e 's/^-t//')"
|
||||
# dupload has a -t option
|
||||
if [ -z "$targetgnusystem" ]; then break; fi ;;
|
||||
-S) sourceonly=source ;;
|
||||
--multi) multiarch=yes ;;
|
||||
--dupload) DEBRELEASE_UPLOADER=dupload ;;
|
||||
--dput) DEBRELEASE_UPLOADER=dput ;;
|
||||
# Delay checking of debsdir until we need it. We need to make sure we're
|
||||
# in the package root directory first.
|
||||
--debs-dir=*)
|
||||
opt_debsdir="$(echo "$1" | sed -e 's/^--debs-dir=//; s%/\+%/%g; s%\(.\)/$%\1%;')"
|
||||
;;
|
||||
--debs-dir)
|
||||
shift
|
||||
opt_debsdir="$(echo "$1" | sed -e 's%/\+%/%g; s%\(.\)/$%\1%;')"
|
||||
;;
|
||||
--check-dirname-level=*)
|
||||
level="$(echo "$1" | sed -e 's/^--check-dirname-level=//')"
|
||||
case "$level" in
|
||||
0|1|2) CHECK_DIRNAME_LEVEL=$level ;;
|
||||
*) echo "$PROGNAME: unrecognised --check-dirname-level value (allowed are 0,1,2)" >&2
|
||||
exit 1 ;;
|
||||
esac
|
||||
;;
|
||||
--check-dirname-level)
|
||||
shift
|
||||
case "$1" in
|
||||
0|1|2) CHECK_DIRNAME_LEVEL=$1 ;;
|
||||
*) echo "$PROGNAME: unrecognised --check-dirname-level value (allowed are 0,1,2)" >&2
|
||||
exit 1 ;;
|
||||
esac
|
||||
;;
|
||||
--check-dirname-regex=*)
|
||||
regex="$(echo "$1" | sed -e 's/^--check-dirname-level=//')"
|
||||
if [ -z "$regex" ]; then
|
||||
echo "$PROGNAME: missing --check-dirname-regex parameter" >&2
|
||||
echo "try $PROGNAME --help for usage information" >&2
|
||||
exit 1
|
||||
else
|
||||
CHECK_DIRNAME_REGEX="$regex"
|
||||
fi
|
||||
;;
|
||||
--check-dirname-regex)
|
||||
shift;
|
||||
if [ -z "$1" ]; then
|
||||
echo "$PROGNAME: missing --check-dirname-regex parameter" >&2
|
||||
echo "try $PROGNAME --help for usage information" >&2
|
||||
exit 1
|
||||
else
|
||||
CHECK_DIRNAME_REGEX="$1"
|
||||
fi
|
||||
;;
|
||||
--no-conf|--noconf)
|
||||
echo "$PROGNAME: $1 is only acceptable as the first command-line option!" >&2
|
||||
exit 1 ;;
|
||||
--dopts) shift; break ;; # This is an option for cvs-debrelease,
|
||||
# so we accept it here too, even though we don't
|
||||
# advertise it
|
||||
--help) usage; exit 0 ;;
|
||||
--version) version; exit 0 ;;
|
||||
*) break ;; # a dupload/dput option, so stop parsing here
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Look for .changes file via debian/changelog
|
||||
CHDIR=
|
||||
until [ -f debian/changelog ]; do
|
||||
CHDIR=yes
|
||||
cd ..
|
||||
if [ $(pwd) = "/" ]; then
|
||||
echo "$PROGNAME: cannot find debian/changelog anywhere!" >&2
|
||||
echo "Are you in the source code tree?" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Use svn-buildpackage's directory if there is one and debsdir wasn't already
|
||||
# specified on the command-line. This can override DEBRELEASE_DEBS_DIR.
|
||||
if [ -n "$opt_debsdir" ]; then
|
||||
debsdir="$opt_debsdir"
|
||||
elif [ -e ".svn/deb-layout" ]; then
|
||||
buildArea="$(sed -ne '/^buildArea=/{s/^buildArea=//; s%/\+%/%g; s%\(.\)/$%\1%; p; q}' .svn/deb-layout)"
|
||||
if [ -n "$buildArea" -a -d "$buildArea" ]; then
|
||||
debsdir="$buildArea"
|
||||
fi
|
||||
fi
|
||||
|
||||
# check sanity of debsdir
|
||||
if ! [ -d "$debsdir" ]; then
|
||||
if [ -n "$debsdir_warning" ]; then
|
||||
echo "$PROGNAME: $debsdir_warning" >&2
|
||||
exit 1
|
||||
else
|
||||
echo "$PROGNAME: could not find directory $debsdir!" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
mustsetvar package "`dpkg-parsechangelog -SSource`" "source package"
|
||||
mustsetvar version "`dpkg-parsechangelog -SVersion`" "source version"
|
||||
|
||||
if [ $CHECK_DIRNAME_LEVEL -eq 2 -o \
|
||||
\( $CHECK_DIRNAME_LEVEL -eq 1 -a "$CHDIR" = yes \) ]; then
|
||||
if ! perl -MFile::Basename -w \
|
||||
-e "\$pkg='$package'; \$re='$CHECK_DIRNAME_REGEX';" \
|
||||
-e '$re =~ s/PACKAGE/\\Q$pkg\\E/g; $pwd=`pwd`; chomp $pwd;' \
|
||||
-e 'if ($re =~ m%/%) { eval "exit (\$pwd =~ /^$re\$/ ? 0:1);"; }' \
|
||||
-e 'else { eval "exit (basename(\$pwd) =~ /^$re\$/ ? 0:1);"; }'
|
||||
then
|
||||
echo >&2 <<EOF
|
||||
$PROGNAME: found debian/changelog for package $PACKAGE in the directory
|
||||
$pwd
|
||||
but this directory name does not match the package name according to the
|
||||
regex $check_dirname_regex.
|
||||
|
||||
To run $PROGNAME on this package, see the --check-dirname-level and
|
||||
--check-dirname-regex options; run $PROGNAME --help for more info.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$sourceonly" = "xsource" ]; then
|
||||
arch=source
|
||||
elif [ -n "$targetarch" ] && [ -n "$targetgnusystem" ]; then
|
||||
mustsetvar arch "$(dpkg-architecture "-a${targetarch}" "-t${targetgnusystem}" -qDEB_HOST_ARCH)" "build architecture"
|
||||
elif [ -n "$targetarch" ]; then
|
||||
mustsetvar arch "$(dpkg-architecture "-a${targetarch}" -qDEB_HOST_ARCH)" "build architecture"
|
||||
elif [ -n "$targetgnusystem" ]; then
|
||||
mustsetvar arch "$(dpkg-architecture "-t${targetgnusystem}" -qDEB_HOST_ARCH)" "build architecture"
|
||||
else
|
||||
mustsetvar arch "$(dpkg-architecture -qDEB_HOST_ARCH)" "build architecture"
|
||||
fi
|
||||
|
||||
sversion=$(echo "$version" | perl -pe 's/^\d+://')
|
||||
pva="${package}_${sversion}_${arch}"
|
||||
pvs="${package}_${sversion}_source"
|
||||
changes="$debsdir/$pva.changes"
|
||||
schanges="$debsdir/$pvs.changes"
|
||||
mchanges=$(ls "$debsdir/${package}_${sversion}_*+*.changes" "$debsdir/${package}_${sversion}_multi.changes" 2>/dev/null | head -1)
|
||||
|
||||
if [ -n "$multiarch" ]; then
|
||||
if [ -z "$mchanges" -o ! -r "$mchanges" ]; then
|
||||
echo "$PROGNAME: could not find/read any multiarch .changes file with name" >&2
|
||||
echo "$debsdir/${package}_${sversion}_*.changes" >&2
|
||||
exit 1
|
||||
fi
|
||||
changes=$mchanges
|
||||
elif [ "$arch" = source ]; then
|
||||
if [ -r "$schanges" ]; then
|
||||
changes=$schanges
|
||||
else
|
||||
echo "$PROGNAME: could not find/read changes file $schanges!" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ ! -r "$changes" ]; then
|
||||
if [ -r "$mchanges" ]; then
|
||||
changes=$mchanges
|
||||
echo "$PROGNAME: could only find a multiarch changes file:" >&2
|
||||
echo " $mchanges" >&2
|
||||
echo -n "Should I upload this file? (y/n) " >&2
|
||||
read ans
|
||||
case ans in
|
||||
y*) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
else
|
||||
echo "$PROGNAME: could not read changes file $changes!" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exec $DEBRELEASE_UPLOADER "$@" "$changes"
|
||||
|
||||
echo "$PROGNAME: failed to exec $DEBRELEASE_UPLOADER!" >&2
|
||||
echo "Aborting...." >&2
|
||||
exit 1
|
Loading…
Add table
Add a link
Reference in a new issue