Whamcloud - gitweb
b=24416 debian packaging fixes 13/213/6
authorBrian J. Murrell <brian@whamcloud.com>
Sat, 22 Jan 2011 11:16:55 +0000 (06:16 -0500)
committerBrian J. Murrell <brian@whamcloud.com>
Thu, 10 Feb 2011 21:33:12 +0000 (16:33 -0500)
- don't make a patch out of anything in /debian
- exclude noise files from the debian built source tarball
- fake debian/patche{s,d} for make dist
- a few more reasons to run autogen.sh
- figure out if dist tarball needs autogen.shs and include it if so
- look for and run autogen.sh in the build subdir
- make debdiff as part of make dist
- add a debian/source/format file
- mv the orig tarball and the debdiff to the debs dir
- don't try to dist /debian for non-dpkg-using build targets

Issue: LU-51
Change-Id: I041aaef217e107def86ce808d0e96fc6891e1dcd

autoMakefile.am
build/autoMakefile.am.toplevel
build/autoconf/lustre-build-linux.m4
build/autoconf/lustre-build.m4
build/extract_patches [new file with mode: 0755]
debian/rules
debian/source/format [new file with mode: 0644]

index 251ab1e..e65baac 100644 (file)
@@ -13,7 +13,11 @@ endif
 
 include build/autoMakefile.am.toplevel
 
 
 include build/autoMakefile.am.toplevel
 
-EXTRA_DIST += config.h.in debian/*
+EXTRA_DIST += config.h.in
+
+if USES_DPKG
+EXTRA_DIST += debian/*
+endif
 
 if LDISKFS_ENABLED
 if !LDISKFS_IN_KERNEL
 
 if LDISKFS_ENABLED
 if !LDISKFS_IN_KERNEL
@@ -51,3 +55,15 @@ 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
            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 524d9dd..ab02af9 100644 (file)
@@ -159,51 +159,10 @@ debs:
                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 \
                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 \
-               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="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 "^ debian/changelog" $$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; \
+               build/extract_patches .; \
        fi
        rm -rf debs
        fi
        rm -rf debs
-       dpkg-buildpackage || { \
+       dpkg-buildpackage -I.git -I\*.out[0-9]\* -I\*.swp || { \
                rc=$${PIPESTATUS[0]}; \
                [ $${rc} -gt 1 ] && exit $${rc}; \
                exit 0; \
                rc=$${PIPESTATUS[0]}; \
                [ $${rc} -gt 1 ] && exit $${rc}; \
                exit 0; \
@@ -227,4 +186,4 @@ debs:
        popd && \
        VER=$$(sed -ne '1s/^lustre (\(.*-[0-9][0-9]*\)).*$$/\1/p' debian/changelog); \
        mkdir -p debs && \
        popd && \
        VER=$$(sed -ne '1s/^lustre (\(.*-[0-9][0-9]*\)).*$$/\1/p' debian/changelog); \
        mkdir -p debs && \
-       mv ../liblustre_$${VER}_*.deb ../linux-patch-lustre_$${VER}_all.deb ../lustre-dev_$${VER}_*.deb ../lustre-source_$${VER}_all.deb ../lustre-tests_$${VER}_*.deb ../lustre-utils_$${VER}_*.deb ../lustre_$${VER}.dsc ../lustre_$${VER}_*.changes ../lustre_$${VER}.tar.gz ../lustre-client-modules-$${KVERS}_$${VER}_*.deb debs/
+       mv ../liblustre_$${VER}_*.deb ../linux-patch-lustre_$${VER}_all.deb ../lustre-dev_$${VER}_*.deb ../lustre-source_$${VER}_all.deb ../lustre-tests_$${VER}_*.deb ../lustre-utils_$${VER}_*.deb ../lustre_$${VER}.dsc ../lustre_$${VER}_*.changes ../lustre_$${VER%-[0-9]*}.orig.tar.gz ../lustre_$${VER}.diff.gz ../lustre-client-modules-$${KVERS}_$${VER}_*.deb debs/
index 8a10dbf..188e805 100644 (file)
@@ -699,3 +699,20 @@ AC_CACHE_CHECK([for $1], ac_Header,
 AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
 AS_VAR_POPDEF([ac_Header])dnl
 ])
 AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
 AS_VAR_POPDEF([ac_Header])dnl
 ])
+
+#
+# LB_USES_DPKG
+#
+# Determine if the target is a dpkg system or rpm
+#
+AC_DEFUN([LB_USES_DPKG],
+[
+AC_MSG_CHECKING([if this distro uses dpkg])
+if dpkg --version >/dev/null; then
+       AC_MSG_RESULT([yes])
+       uses_dpkg=yes
+else
+       AC_MSG_RESULT([no])
+       uses_dpkg=no
+fi
+])
index 0d9d029..314818c 100644 (file)
@@ -870,6 +870,7 @@ AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux")
 AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")
 AM_CONDITIONAL(CRAY_XT3, test x$enable_cray_xt3 = "xyes")
 AM_CONDITIONAL(SUNOS, test x$lb_target_os = "xSunOS")
 AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")
 AM_CONDITIONAL(CRAY_XT3, test x$enable_cray_xt3 = "xyes")
 AM_CONDITIONAL(SUNOS, test x$lb_target_os = "xSunOS")
+AM_CONDITIONAL(USES_DPKG, test x$uses_dpkg = "xyes")
 
 # this lets lustre cancel libsysio, per-branch or if liblustre is
 # disabled
 
 # this lets lustre cancel libsysio, per-branch or if liblustre is
 # disabled
@@ -917,6 +918,7 @@ AC_DEFUN([LB_CONFIGURE],
 LB_CONFIG_DIST
 
 LB_DOWNSTREAM_RELEASE
 LB_CONFIG_DIST
 
 LB_DOWNSTREAM_RELEASE
+LB_USES_DPKG
 LB_BUILDID
 
 LB_LIBCFS_DIR
 LB_BUILDID
 
 LB_LIBCFS_DIR
diff --git a/build/extract_patches b/build/extract_patches
new file mode 100755 (executable)
index 0000000..9c5c5d2
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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 a3e8541..06ef5af 100755 (executable)
@@ -89,8 +89,8 @@ autogen-stamp: patch-stamp
        #  needed autogen.sh scripts
        #  see https://bugzilla.lustre.org/attachment.cgi?id=27156
        #  for an example)
        #  needed autogen.sh scripts
        #  see https://bugzilla.lustre.org/attachment.cgi?id=27156
        #  for an example)
-       if grep "^--- .*\/autoconf" debian/patches/*; then \
-               if [ ! -f autogen.sh ]; then \
+       if grep -e "^--- .*\/autoconf" -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"; \
                        exit 1; \
                        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"; \
                        exit 1; \
@@ -101,7 +101,7 @@ autogen-stamp: patch-stamp
                cp /usr/share/misc/config.guess config.guess; \
                cp /usr/share/misc/config.guess libsysio/config.guess; \
                cp /usr/share/misc/config.guess ldiskfs/config.guess; \
                cp /usr/share/misc/config.guess config.guess; \
                cp /usr/share/misc/config.guess libsysio/config.guess; \
                cp /usr/share/misc/config.guess ldiskfs/config.guess; \
-               sh ./autogen.sh; \
+               sh build/autogen.sh; \
        fi; \
        touch $@
 
        fi; \
        touch $@
 
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..d3827e7
--- /dev/null
@@ -0,0 +1 @@
+1.0