Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Hi,

asking for pre-approval of unblocking package jenkins-debian-glue.

In the current stretch version of jenkins-debian-glue (0.18.2) there
are two major bugs that should be fixed prior to release:

* dpkg-buildpackage might apply wrong defaults and then leaking the
  version control repository content (e.g. .git) through the
  generated tarball

* in binary only package builds the source package might get
  removed, which is neither expected nor wanted behavior
  (see https://github.com/mika/jenkins-debian-glue/issues/173)

Please let me know if this upload would be OK for you.

unblock jenkins-debian-glue/0.18.2+deb9u1

Debdiff at the end of the mail.

Thanks!

regards,
-mika-


diff -Nru jenkins-debian-glue-0.18.2/debian/changelog 
jenkins-debian-glue-0.18.2+deb9u1/debian/changelog
--- jenkins-debian-glue-0.18.2/debian/changelog 2017-01-24 22:13:48.000000000 
+0100
+++ jenkins-debian-glue-0.18.2+deb9u1/debian/changelog  2017-04-14 
22:48:41.000000000 +0200
@@ -1,3 +1,14 @@
+jenkins-debian-glue (0.18.2+deb9u1) unstable; urgency=medium
+
+  * [9492a4f] Support SKIP_SOURCE_REMOVAL to not remove source package in
+    binary only package builds. Thanks to Antoine Delvaux
+    <antoine.delv...@gmail.com> for the bugreport + initial patch
+  * [56563d7] Fix regression from commit 8fe677820fae2 to apply safe dpkg-
+    buildpackage defaults. Thanks to Guillem Jover for feedback and code
+    review
+
+ -- Michael Prokop <m...@debian.org>  Fri, 14 Apr 2017 22:48:41 +0200
+
 jenkins-debian-glue (0.18.2) unstable; urgency=medium
 
   [ Will DeBerry ]
diff -Nru jenkins-debian-glue-0.18.2/scripts/build-and-provide-package 
jenkins-debian-glue-0.18.2+deb9u1/scripts/build-and-provide-package
--- jenkins-debian-glue-0.18.2/scripts/build-and-provide-package        
2016-11-17 01:23:51.000000000 +0100
+++ jenkins-debian-glue-0.18.2+deb9u1/scripts/build-and-provide-package 
2017-04-14 22:47:49.000000000 +0200
@@ -451,6 +451,9 @@
 
     SKIP_ARCH_BUILD=false
     echo "*** Setting SKIP_ARCH_BUILD=$SKIP_ARCH_BUILD to skip further arch 
builds. ***"
+
+    SKIP_SOURCE_REMOVAL=true
+    echo "*** Setting SKIP_SOURCE_REMOVAL=$SKIP_SOURCE_REMOVAL to skip source 
removal in binary only build ***"
     return 0
   fi
 
@@ -474,6 +477,9 @@
       echo "*** Host architecture [${HOST_ARCH}] does not match \$architecture 
[${architecture:-}] ... ***"
       echo "*** ... setting binary only build and continuing with 
identify_build_type ***"
       DEBBUILDOPTS="-B"
+
+      SKIP_SOURCE_REMOVAL=true
+      echo "*** Setting SKIP_SOURCE_REMOVAL=$SKIP_SOURCE_REMOVAL to skip 
source removal in binary only build ***"
     fi
   else
     if [ "${MAIN_ARCHITECTURE:-}" = "${architecture:-}" ] ;then
@@ -483,6 +489,9 @@
     else
       echo "*** MAIN_ARCHITECTURE [${MAIN_ARCHITECTURE:-}] does not match 
\$architecture [${architecture:-}], setting binary only build and continuing 
with identify_build_type ***"
       DEBBUILDOPTS="-B"
+
+      SKIP_SOURCE_REMOVAL=true
+      echo "*** Setting SKIP_SOURCE_REMOVAL=$SKIP_SOURCE_REMOVAL to skip 
source removal in binary only build ***"
     fi
   fi
 
@@ -500,6 +509,9 @@
           echo "*** Package provides arch 'all' + 'any', enabling -B 
buildoption for this architecture. ***"
           # -B -> binary-only build, limited to architecture dependent packages
           DEBBUILDOPTS="-B"
+
+          SKIP_SOURCE_REMOVAL=true
+          echo "*** Setting SKIP_SOURCE_REMOVAL=$SKIP_SOURCE_REMOVAL to skip 
source removal in binary only build ***"
           break
         else
           # only "Architecture: all", so no arch specific packages since
@@ -776,8 +788,12 @@
     return 0
   fi
 
-  echo "*** Removing source package version from repository ***"
-  ${SUDO_CMD:-} ${REPREPRO_CMD} -A source -b "${REPOSITORY}" ${REPREPRO_OPTS} 
remove "${REPOS}" "${SOURCE_PACKAGE}"
+  if [ -n "${SKIP_SOURCE_REMOVAL:-}" ] ; then
+    echo "*** Skipping removal of existing source package as requested via 
SKIP_SOURCE_REMOVAL ***"
+  else
+    echo "*** Removing source package version from repository ***"
+    ${SUDO_CMD:-} ${REPREPRO_CMD} -A source -b "${REPOSITORY}" 
${REPREPRO_OPTS} remove "${REPOS}" "${SOURCE_PACKAGE}"
+  fi
 
   echo "*** Removing previous binary package versions from repository ***"
   for p in $(list_deb_files 
"${WORKSPACE}/binaries/"*"_${newest_version}_${arch}.changes") ; do
diff -Nru jenkins-debian-glue-0.18.2/scripts/generate-git-snapshot 
jenkins-debian-glue-0.18.2+deb9u1/scripts/generate-git-snapshot
--- jenkins-debian-glue-0.18.2/scripts/generate-git-snapshot    2016-12-02 
17:00:43.000000000 +0100
+++ jenkins-debian-glue-0.18.2+deb9u1/scripts/generate-git-snapshot     
2017-04-14 22:48:24.000000000 +0200
@@ -372,6 +372,31 @@
   rm -rf .pc
 }
 
+identify_source_build_opts() {
+  # unset by default
+  DBP_OPTS=""
+
+  if [ -r "debian/source/format" ] && ! grep -q '^1\.0' debian/source/format ; 
then
+    echo "*** Found dpkg source format != 1.0, nothing to do ****"
+    return 0
+  fi
+
+  if [ -r "debian/source/options" ] ; then
+    if ! grep -q 'tar-ignore' "debian/source/options" ; then
+      echo "*** Enabling '-I' option as tar-ignore option not present in 
debian/source/options ***"
+      DBP_OPTS+=" -I"
+    fi
+
+    if ! egrep -qe '^(diff-ignore|extend-diff-ignore)' "debian/source/options" 
; then
+      echo "*** Enabling '-i' option as diff-ignore or extend-diff-ignore 
options not present in debian/source/options ***"
+      DBP_OPTS+=" -i"
+    fi
+  else
+    echo "*** Enabling '-i -I' options as building for dpkg source format 1.0 
***"
+    DBP_OPTS="-i -I"
+  fi
+}
+
 source_format_opts() {
   if ! [ -f "debian/source/format" ] ; then
     echo '*** WARNING: Source format is not specified in debian/source/format! 
***'
@@ -420,6 +445,7 @@
 
 git_cleanup
 source_format_opts
+identify_source_build_opts
 
 # Only if we are using git-buildpackage...
 if [ "${IGNORE_GIT_BUILDPACKAGE:-}" != "true" ] ; then
@@ -462,7 +488,7 @@
 
 # build source package, run before switching back to previous branch
 # to get the actual requested version
-dpkg-buildpackage -uc -us -nc -d -S ${DBP_EXTRA_OPTS:-}
+dpkg-buildpackage -uc -us -nc -d -S ${DBP_OPTS:-} ${DBP_EXTRA_OPTS:-}
 
 if [ -n "${KEY_ID:-}" ] ; then
   echo "*** Found environment variable KEY_ID, set to ${KEY_ID:-}, signing 
source package ***"

Reply via email to