tags 592086 +patch
thanks
On Sat, Aug 07, 2010 at 03:18:58PM +0200, Lionel Elie Mamane wrote:
> The "clean" target does not undo all that binary / build targets do,
> leading to:
> 1) rebuilding yields a _different_ source package
> 2) (...) that "new" source package fails to build from source
> when built twice in a row.
> In other words, openvpn fails to build from source when built *three*
> times in a row.
> I expected AM_MAINTAINER_MODE (in a debian/patches/ patch) would solve
> the problem, but it seems it doesn't. That may be because patches are
> unapplied _before_ running "distclean", not _after_, and
> AM_MAINTAINTER_MODE is not active then?
That was exactly why it was not working. Here is a patch that works:
it makes sure patches are applied before clean, and unpatches at the
end of clean.
One could apply _only_ the am_maintainer_mode patch before clean (and
still unapply all patches at the end of clean). Something like
(untested):
clean::
dh_testdir
dh_testroot
rm -f build-stamp
QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null push
am_maintainer_mode || test $$? = 2
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) distclean
#clean plugins
$(MAKE) -C plugin/auth-pam/ clean
$(MAKE) -C plugin/down-root/ clean
clean:: unpatch
dh_clean
--
Lionel
diff -Nru openvpn-2.1.0/debian/patches/am_maintainer_mode openvpn-2.1.0/debian/patches/am_maintainer_mode
--- openvpn-2.1.0/debian/patches/am_maintainer_mode 1970-01-01 01:00:00.000000000 +0100
+++ openvpn-2.1.0/debian/patches/am_maintainer_mode 2010-08-07 17:18:17.000000000 +0200
@@ -0,0 +1,298 @@
+Index: openvpn-2.1.0/configure.ac
+===================================================================
+--- openvpn-2.1.0.orig/configure.ac 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/configure.ac 2010-08-07 17:17:29.000000000 +0200
+@@ -33,6 +33,7 @@
+ dnl Guess host type.
+ AC_CANONICAL_HOST
+ AC_CANONICAL_SYSTEM
++AM_MAINTAINER_MODE
+ AM_INIT_AUTOMAKE(openvpn, [$PACKAGE_VERSION])
+
+ AC_ARG_WITH(cygwin-native,
+Index: openvpn-2.1.0/Makefile.in
+===================================================================
+--- openvpn-2.1.0.orig/Makefile.in 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/Makefile.in 2010-08-07 17:17:47.000000000 +0200
+@@ -184,6 +184,7 @@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MAN2HTML = @MAN2HTML@
+ MKDIR_P = @MKDIR_P@
+@@ -379,7 +380,7 @@
+ .SUFFIXES: .c .o .obj
+ am--refresh:
+ @:
+-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+@@ -406,9 +407,9 @@
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+-$(top_srcdir)/configure: $(am__configure_deps)
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+ config.h: stamp-h1
+@@ -420,7 +421,7 @@
+ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+-$(srcdir)/config.h.in: $(am__configure_deps)
++$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_srcdir) && $(AUTOHEADER)
+ rm -f stamp-h1
+ touch $@
+Index: openvpn-2.1.0/aclocal.m4
+===================================================================
+--- openvpn-2.1.0.orig/aclocal.m4 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/aclocal.m4 2010-08-07 17:17:45.000000000 +0200
+@@ -543,6 +543,35 @@
+ rmdir .tst 2>/dev/null
+ AC_SUBST([am__leading_dot])])
+
++# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
++# From Jim Meyering
++
++# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# serial 4
++
++AC_DEFUN([AM_MAINTAINER_MODE],
++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
++ dnl maintainer-mode is disabled by default
++ AC_ARG_ENABLE(maintainer-mode,
++[ --enable-maintainer-mode enable make rules and dependencies not useful
++ (and sometimes confusing) to the casual installer],
++ USE_MAINTAINER_MODE=$enableval,
++ USE_MAINTAINER_MODE=no)
++ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
++ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
++ MAINT=$MAINTAINER_MODE_TRUE
++ AC_SUBST(MAINT)dnl
++]
++)
++
++AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
++
+ # Check to see how 'make' treats includes. -*- Autoconf -*-
+
+ # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+Index: openvpn-2.1.0/configure
+===================================================================
+--- openvpn-2.1.0.orig/configure 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/configure 2010-08-07 17:17:46.000000000 +0200
+@@ -664,6 +664,9 @@
+ target_cpu
+ target_vendor
+ target_os
++MAINTAINER_MODE_TRUE
++MAINTAINER_MODE_FALSE
++MAINT
+ INSTALL_PROGRAM
+ INSTALL_SCRIPT
+ INSTALL_DATA
+@@ -1311,6 +1314,8 @@
+ Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --enable-maintainer-mode enable make rules and dependencies not useful
++ (and sometimes confusing) to the casual installer
+ --disable-lzo Disable LZO compression support
+ --disable-crypto Disable OpenSSL crypto support
+ --disable-ssl Disable OpenSSL SSL support for TLS-based key exchange
+@@ -1957,6 +1962,28 @@
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
++{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
++ # Check whether --enable-maintainer-mode was given.
++if test "${enable_maintainer_mode+set}" = set; then
++ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
++else
++ USE_MAINTAINER_MODE=no
++fi
++
++ { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
++ if test $USE_MAINTAINER_MODE = yes; then
++ MAINTAINER_MODE_TRUE=
++ MAINTAINER_MODE_FALSE='#'
++else
++ MAINTAINER_MODE_TRUE='#'
++ MAINTAINER_MODE_FALSE=
++fi
++
++ MAINT=$MAINTAINER_MODE_TRUE
++
++
+ am__api_version='1.10'
+
+ # Find a good install program. We prefer a C program (faster),
+@@ -13202,6 +13229,13 @@
+ LTLIBOBJS=$ac_ltlibobjs
+
+
++if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
+ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+@@ -13810,6 +13844,9 @@
+ target_cpu!$target_cpu$ac_delim
+ target_vendor!$target_vendor$ac_delim
+ target_os!$target_os$ac_delim
++MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
++MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
++MAINT!$MAINT$ac_delim
+ INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+ INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+ INSTALL_DATA!$INSTALL_DATA$ac_delim
+@@ -13855,9 +13892,6 @@
+ GREP!$GREP$ac_delim
+ EGREP!$EGREP$ac_delim
+ MAN2HTML!$MAN2HTML$ac_delim
+-LIBOBJS!$LIBOBJS$ac_delim
+-PTHREAD_CC!$PTHREAD_CC$ac_delim
+-PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim
+ _ACEOF
+
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+@@ -13899,6 +13933,9 @@
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+ cat >conf$$subs.sed <<_ACEOF
++LIBOBJS!$LIBOBJS$ac_delim
++PTHREAD_CC!$PTHREAD_CC$ac_delim
++PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim
+ PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim
+ TAP_ID!$TAP_ID$ac_delim
+ TAP_WIN32_MIN_MAJOR!$TAP_WIN32_MIN_MAJOR$ac_delim
+@@ -13909,7 +13946,7 @@
+ LTLIBOBJS!$LTLIBOBJS$ac_delim
+ _ACEOF
+
+- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 8; then
++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then
+ break
+ elif $ac_last_try; then
+ { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+Index: openvpn-2.1.0/images/Makefile.in
+===================================================================
+--- openvpn-2.1.0.orig/images/Makefile.in 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/images/Makefile.in 2010-08-07 17:17:47.000000000 +0200
+@@ -113,6 +113,7 @@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MAN2HTML = @MAN2HTML@
+ MKDIR_P = @MKDIR_P@
+@@ -200,7 +201,7 @@
+ all: all-am
+
+ .SUFFIXES:
+-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+@@ -225,9 +226,9 @@
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+-$(top_srcdir)/configure: $(am__configure_deps)
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-dist_imageDATA: $(dist_image_DATA)
+ @$(NORMAL_INSTALL)
+Index: openvpn-2.1.0/install-win32/Makefile.in
+===================================================================
+--- openvpn-2.1.0.orig/install-win32/Makefile.in 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/install-win32/Makefile.in 2010-08-07 17:17:47.000000000 +0200
+@@ -127,6 +127,7 @@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MAN2HTML = @MAN2HTML@
+ MKDIR_P = @MKDIR_P@
+@@ -231,7 +232,7 @@
+ all: all-am
+
+ .SUFFIXES:
+-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+@@ -256,9 +257,9 @@
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+-$(top_srcdir)/configure: $(am__configure_deps)
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ settings: $(top_builddir)/config.status $(srcdir)/settings.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Index: openvpn-2.1.0/service-win32/Makefile.in
+===================================================================
+--- openvpn-2.1.0.orig/service-win32/Makefile.in 2010-08-07 17:17:11.000000000 +0200
++++ openvpn-2.1.0/service-win32/Makefile.in 2010-08-07 17:17:47.000000000 +0200
+@@ -123,6 +123,7 @@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MAN2HTML = @MAN2HTML@
+ MKDIR_P = @MKDIR_P@
+@@ -212,7 +213,7 @@
+
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+@@ -237,9 +238,9 @@
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+-$(top_srcdir)/configure: $(am__configure_deps)
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-sbinPROGRAMS: $(sbin_PROGRAMS)
+ @$(NORMAL_INSTALL)
diff -Nru openvpn-2.1.0/debian/patches/series openvpn-2.1.0/debian/patches/series
--- openvpn-2.1.0/debian/patches/series 2010-07-09 12:44:02.000000000 +0200
+++ openvpn-2.1.0/debian/patches/series 2010-08-07 17:17:07.000000000 +0200
@@ -1,3 +1,4 @@
+am_maintainer_mode
auth-pam_libpam_so_filename.patch
close_socket_before_scripts.patch
manpage_dash_escaping.patch
diff -Nru openvpn-2.1.0/debian/rules openvpn-2.1.0/debian/rules
--- openvpn-2.1.0/debian/rules 2009-12-11 12:08:49.000000000 +0100
+++ openvpn-2.1.0/debian/rules 2010-08-07 17:25:01.000000000 +0200
@@ -40,7 +40,7 @@
touch build-stamp
-clean: unpatch
+clean:: patch
dh_testdir
dh_testroot
rm -f build-stamp
@@ -52,6 +52,7 @@
$(MAKE) -C plugin/auth-pam/ clean
$(MAKE) -C plugin/down-root/ clean
+clean:: unpatch
dh_clean
install: build