Whamcloud - gitweb
LU-210 backout debian packaging with patches
authorBrian J. Murrell <brian@whamcloud.com>
Wed, 13 Apr 2011 13:59:28 +0000 (09:59 -0400)
committerOleg Drokin <green@whamcloud.com>
Mon, 18 Apr 2011 19:40:20 +0000 (12:40 -0700)
The debian packaging process included the [de-]applicaiton of patches
that were the commits made since the last tag.  This provided greater
transparency as to exactly what was included in a release when it was
made between tags.

Unfortunately the process that was being used to achieve this failed
in a scenario where there were patches to files which were later removed
from the tarball making process.

For what it's worth, the right way to correct this and keep the
transparency is to have "make dist" create the tarball from the most
recent tag made and then have the patches generated that bring the
source up to current HEAD.  In order to achieve this however both debian
and RPM packaging would need to operate in this manner.  That would
mean adding Patch$n: lines to the RPM spec for each of the generated
patches.  I'm not really sure we want to go there though.

Signed-off-by: Brian J. Murrell <brian@whamcloud.com>
Change-Id: I9242799f3987e68e806e4c398e06cecbe1f5cc27
Reviewed-on: http://review.whamcloud.com/425
Tested-by: Hudson
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Michael MacDonald <mjmac@whamcloud.com>
autoMakefile.am
build/autoMakefile.am.toplevel
build/extract_patches [deleted file]
debian/rules

index 5d1d839..8438cdb 100644 (file)
@@ -55,15 +55,3 @@ module-dist-hook:
            echo -e "I have no idea how to create a META file in $(distdir).\nPlease file a bug at http://bugzilla.lustre.org/"; \
            exit 1; \
        fi
-       if [ -d .git ]; then \
-               build/extract_patches $(distdir); \
-               if grep -e "^--- .*\/autoconf" -e "^--- .*\/Makefile\.am" -e ".*\/configure\.ac" -e ".*\/configure\.in" $(distdir)/debian/patches/*; then \
-                       cp build/autogen.sh $(distdir)/build; \
-                       cp libsysio/autogen.sh $(distdir)/libsysio; \
-                       cp lustre-iokit/autogen.sh $(distdir)/lustre-iokit; \
-               fi; \
-               mkdir empty; \
-               diff -urN empty $(distdir)/debian > debian.diff; \
-               rm -rf $(distdir)/debian; \
-               rmdir empty; \
-       fi
index 6f45678..8b72d47 100644 (file)
@@ -158,10 +158,6 @@ debs:
        if [ "$$lversion" != "$$cversion" ]; then \
                echo -e "1i\nlustre ($$lversion-1) unstable; urgency=low\n\n  * Automated changelog entry update\n\n -- Brian J. Murrell <brian@interlinx.bc.ca>  $$(date -R)\n\n.\nwq" | ed debian/changelog; \
        fi; \
-       if [ -d .git ]; then \
-               build/extract_patches .; \
-       fi
-       cat debian/patches/* | sed -ne '/^diff --git/h' -e '/^deleted file/{G;s/^.* b\/\(.*\)/\1/p;}' | xargs rm -f; \
        rm -rf debs
        dpkg-buildpackage -I.git -I\*.out[0-9]\* -I\*.swp || { \
                rc=$${PIPESTATUS[0]}; \
diff --git a/build/extract_patches b/build/extract_patches
deleted file mode 100755 (executable)
index 9c5c5d2..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-# extract all of the changesets since the last tagged version and put them
-# into debian/patche{s,d} as if this was a patched tree on that tag
-
-TARGET="$1"
-
-ver=$(git describe --match [0-9v]\* --tags)
-if [[ $ver = *-*-* ]]; then
-       hash=${ver##*-}
-       ffw=${ver#*-}
-       ffw=${ffw%-*}
-       ver=${ver%%-*}
-fi
-if [ $ffw -gt 0 ]; then
-       tag=$ver
-       if [[ $ver =~ ^v([0-9]+_)+([0-9]+|RC[0-9]+)$ ]]; then
-               ver=$(echo $ver |
-                 sed -e 's/^v\(.*\)/\1/'
-                     -e 's/_RC[0-9].*$//'
-                     -e 's/_/./g')
-       fi
-       pdir="$TARGET/debian/patches"
-       if [ -d $pdir ]; then
-               rm -rf $pdir
-       fi
-       mkdir $pdir
-       git format-patch -o $pdir $tag..HEAD
-       pushd $pdir
-       if [ -d ../patched ]; then
-               rm -rf ../patched
-       fi
-       mkdir ../patched
-       rm -f 00list *.dpatch
-       for file in [0-9][0-9][0-9][0-9]-*.patch; do
-               if ! grep -q "^--- a/debian/" $file; then
-                       desc=$(cat $file | sed -e '1,/^$/d' \
-                                                -e '/^---$/,$d')
-                       dpatch_file=${file/.patch/.dpatch}
-                       sed -e '1,/^---$/d' $file | \
-                         dpatch patch-template -p "${file%.patch}" \
-                         "$desc" > $dpatch_file
-                       echo "faked by make debs run from git" > \
-                         ../patched/$dpatch_file
-                       echo $dpatch_file >> 00list
-               fi
-               rm -f $file
-       done
-fi
index 0a80989..5e59622 100755 (executable)
@@ -89,7 +89,12 @@ autogen-stamp: patch-stamp
        #  needed autogen.sh scripts
        #  see https://bugzilla.lustre.org/attachment.cgi?id=27156
        #  for an example)
-       if grep -e "^--- .*\/autoconf" -e ".*\/configure\.ac" -e ".*\/configure\.in" debian/patches/*; then \
+       if grep -e "^--- .*\/autoconf\/" \
+               -e "^--- .*\/autoMakefile\.am" \
+               -e "^--- .*\/Makefile\.am" \
+               -e "^--- .*\/configure\.ac" \
+               -e "^--- .*\/configure\.in" \
+           debian/patches/*; then \
                if [ ! -f build/autogen.sh ]; then \
                        echo "You have patches which require autogen.sh to be run, but it doesn't exist"; \
                        echo "Please see https://bugzilla.lustre.org/attachment.cgi?id=27156"; \