[pbuilder] 02/03: Add new --source-only-changes option
James Clarke
jrtc27 at moszumanska.debian.org
Fri Jan 13 18:09:54 UTC 2017
This is an automated email from the git hooks/post-receive script.
jrtc27 pushed a commit to branch wip/source-only-changes
in repository pbuilder.
commit cd44484ff968e7e7ed2260e0cd0109243012052c
Author: James Clarke <jrtc27 at jrtc27.com>
Date: Fri Jan 6 16:47:04 2017 +0000
Add new --source-only-changes option
---
pbuilder-buildpackage | 45 ++++++++++++++++++++++++++++++++++++++++++---
pbuilder-buildpackage-funcs | 3 +++
pbuilder-checkparams | 4 ++++
pbuilderrc | 4 ++++
4 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/pbuilder-buildpackage b/pbuilder-buildpackage
index 1b60cfb..081b3d1 100755
--- a/pbuilder-buildpackage
+++ b/pbuilder-buildpackage
@@ -155,7 +155,17 @@ log.i "Building the package"
executehooks "A"
-DPKG_COMMANDLINE="env PATH=\"$PATH\" HOME=\"$BUILD_HOME\" dpkg-buildpackage -us -uc $DEBBUILDOPTS"
+SUBDIR_NAME=$(dsc_get_basename "$PACKAGENAME" "no")
+SUBDIR_NAME=${SUBDIR_NAME//_/-}
+
+CHANGES_BASENAME=$(dsc_get_basename "$PACKAGENAME" "yes")
+
+ENV_PREFIX="env PATH=\"$PATH\" HOME=\"$BUILD_HOME\""
+DPKG_COMMANDLINE="$ENV_PREFIX dpkg-buildpackage -us -uc $DEBBUILDOPTS"
+
+if [ "${SOURCE_ONLY_CHANGES}" = "yes" ]; then
+ DPKG_COMMANDLINE="$DPKG_COMMANDLINE && $ENV_PREFIX dpkg-genchanges --build=source > ../${CHANGES_BASENAME}_source.changes"
+fi
# https://launchpad.net/bugs/816556
unset DISPLAY
@@ -171,7 +181,7 @@ fi
if [ -n "$TWICE" ]; then
DPKG_COMMANDLINE="$DPKG_COMMANDLINE && $DPKG_COMMANDLINE"
fi
- DPKG_COMMANDLINE="cd ${BUILDDIR}/*/ && $DPKG_COMMANDLINE"
+ DPKG_COMMANDLINE="cd ${BUILDDIR}/$SUBDIR_NAME/ && $DPKG_COMMANDLINE"
log.i "Running $DPKG_COMMANDLINE"
echo "$DPKG_COMMANDLINE" | $UNSHARE $CHROOTEXEC env $SUTOUSER
) &
@@ -211,12 +221,41 @@ if [ "$USENETWORK" = "no" ]; then
copy_local_configuration resolv.conf
fi
+CHANGES_ARCHITECTURE=${HOST_ARCH:-$(dpkg-architecture -qDEB_HOST_ARCH)}
+
+# dpkg pre-1.18.8 generated _$arch.changes even for indep-only builds,
+# so search for both.
+INDEP_CHANGES_FILE="${BUILDPLACE}$BUILDDIR/${CHANGES_BASENAME}_all.changes"
+if [ "${BINARY_ARCH}" = "all" -a -f "${INDEP_CHANGES_FILE}" ]; then
+ ARCH_CHANGES_FILE="$INDEP_CHANGES_FILE"
+else
+ ARCH_CHANGES_FILE="${BUILDPLACE}$BUILDDIR/${CHANGES_BASENAME}_${CHANGES_ARCHITECTURE}.changes"
+
+ if [ ! -f "${ARCH_CHANGES_FILE}" ]; then
+ log.e "Missing changes file: ${ARCH_CHANGES_FILE}"
+ exit 1
+ fi
+fi
+
+SOURCE_CHANGES_FILE="${BUILDPLACE}$BUILDDIR/${CHANGES_BASENAME}_source.changes"
+
+if [ "${SOURCE_ONLY_CHANGES}" = "yes" -a ! -f "${SOURCE_CHANGES_FILE}" ]; then
+ log.e "Missing source-only changes file: ${SOURCE_CHANGES_FILE}"
+ exit 1
+fi
+
executehooks "B"
if [ -d "${BUILDRESULT}" ]; then
chown "${BUILDRESULTUID}:${BUILDRESULTGID}" "${BUILDPLACE}$BUILDDIR/"*
chgrp "${BUILDRESULTGID}" "${BUILDPLACE}$BUILDDIR/"*
- for FILE in $(get822files "changes" "${BUILDPLACE}$BUILDDIR"/*.changes) ; do
+ if [ "${SOURCE_ONLY_CHANGES}" = "yes" ]; then
+ cp -p "${SOURCE_CHANGES_FILE}" "${BUILDRESULT}"
+ FILES=$( ( get822files "changes" "$ARCH_CHANGES_FILE" && get822files "changes" "$SOURCE_CHANGES_FILE" ) | sort -u)
+ else
+ FILES=$(get822files "changes" "$ARCH_CHANGES_FILE")
+ fi
+ for FILE in $FILES; do
if [ -f "${FILE}" ]; then
cp -p "${FILE}" "${BUILDRESULT}" || true
fi
diff --git a/pbuilder-buildpackage-funcs b/pbuilder-buildpackage-funcs
index 739f02d..a4f1d1d 100644
--- a/pbuilder-buildpackage-funcs
+++ b/pbuilder-buildpackage-funcs
@@ -84,6 +84,9 @@ function dsc_get_basename() {
esac
local vs
+ if [ "$with_revision" = "yes" -a -z "${revision:-}" ]; then
+ with_revision=no
+ fi
# Epoch always omitted
case "$with_revision" in
yes) vs="${version}-${revision}" ;;
diff --git a/pbuilder-checkparams b/pbuilder-checkparams
index 507d52e..fd4c4a4 100755
--- a/pbuilder-checkparams
+++ b/pbuilder-checkparams
@@ -233,6 +233,10 @@ while [ -n "$1" ]; do
DEBBUILDOPTS="${DEBBUILDOPTS} -A"
shift
;;
+ --source-only-changes)
+ SOURCE_ONLY_CHANGES="yes"
+ shift;
+ ;;
--bin-nmu)
BIN_NMU="yes"
BINARY_ARCH="binary"
diff --git a/pbuilderrc b/pbuilderrc
index 9302e68..fcf564a 100644
--- a/pbuilderrc
+++ b/pbuilderrc
@@ -64,6 +64,10 @@ PBUILDERROOTCMD="sudo -E"
# use cowbuilder for pdebuild
#PDEBUILD_PBUILDER="cowbuilder"
+# Whether to generate an additional source-only .changes file as well as the
+# one generated during the build.
+SOURCE_ONLY_CHANGES=no
+
# additional build results to copy out of the package build area
#ADDITIONAL_BUILDRESULTS=(xunit.xml .coverage)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pbuilder/pbuilder.git
More information about the Pbuilder-maint
mailing list