From b8ab5a6bb291b760a2b6283089375a574ebe7113 Mon Sep 17 00:00:00 2001 From: "Brian J. Murrell" Date: Wed, 13 Apr 2011 09:59:28 -0400 Subject: [PATCH] LU-210 backout debian packaging with patches 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 Change-Id: I9242799f3987e68e806e4c398e06cecbe1f5cc27 Reviewed-on: http://review.whamcloud.com/425 Tested-by: Hudson Reviewed-by: Oleg Drokin Reviewed-by: Michael MacDonald --- autoMakefile.am | 12 ----------- build/autoMakefile.am.toplevel | 4 ---- build/extract_patches | 49 ------------------------------------------ debian/rules | 7 +++++- 4 files changed, 6 insertions(+), 66 deletions(-) delete mode 100755 build/extract_patches diff --git a/autoMakefile.am b/autoMakefile.am index 5d1d839..8438cdb 100644 --- a/autoMakefile.am +++ b/autoMakefile.am @@ -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 diff --git a/build/autoMakefile.am.toplevel b/build/autoMakefile.am.toplevel index 6f45678..8b72d47 100644 --- a/build/autoMakefile.am.toplevel +++ b/build/autoMakefile.am.toplevel @@ -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 $$(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 index 9c5c5d2..0000000 --- a/build/extract_patches +++ /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 diff --git a/debian/rules b/debian/rules index 0a80989..5e59622 100755 --- a/debian/rules +++ b/debian/rules @@ -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"; \ -- 1.8.3.1