[pacman-dev] [PATCH] Add AM_MAINTAINER_MODE to configure.ac and disable by default
We had issues with people trying to build the 4.2.0 tarball while not having
automake-1.14 installed. This appears to be due to timestamp issues resulting
in autotools trying to regenerate various files and then the Makefiles deciding
they need specific versions of automake.
This can be fixed by adding AM_MAINTAINER_MODE([disable]) to configure.ac,
which means that any build will not try and rebuild any build scripts unless
explicitly requested.
Pacman developers can consider using --enable-maintainer-mode when running
configure to use autotools to update build scripts as needed.
Signed-off-by: Allan McRae
On 03/02/15 12:11, Allan McRae wrote:
We had issues with people trying to build the 4.2.0 tarball while not having automake-1.14 installed. This appears to be due to timestamp issues resulting in autotools trying to regenerate various files and then the Makefiles deciding they need specific versions of automake.
This can be fixed by adding AM_MAINTAINER_MODE([disable]) to configure.ac, which means that any build will not try and rebuild any build scripts unless explicitly requested.
Pacman developers can consider using --enable-maintainer-mode when running configure to use autotools to update build scripts as needed.
Signed-off-by: Allan McRae
--- That is a long explanation for a single line change!
It turns out the bug is due to the TESTS file being updated due to sync200.py.in creating sync200.py. This patch is a workaround, but not a real fix (not sure what a real fix is...). It does require developers to use --enable-maintainer-mode when configuring to get all the auto-regen goodness. Are there objections to applying this patch - at least until a proper solution is found?
configure.ac | 1 + 1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac index e0ed3cf..f17ae89 100644 --- a/configure.ac +++ b/configure.ac @@ -62,6 +62,7 @@ AC_REQUIRE_AUX_FILE([tap-driver.sh]) AC_CANONICAL_HOST AM_INIT_AUTOMAKE([1.11 foreign]) AM_SILENT_RULES([yes]) +AM_MAINTAINER_MODE([disable])
LT_INIT LIB_VERSION=`expr lib_current - lib_age`.lib_age.lib_revision
On Mon, Feb 9, 2015 at 2:45 AM, Allan McRae
Are there objections to applying this patch - at least until a proper solution is found?
A few years ago there was a bit of drama in GNOME about projects disabling maintainer mode. Might be worth reading and looking further. http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/ (AM_MAINTAINER_MODE without parameters is equivalent to ([disable]))
On 09/02/15 12:27, Jan Alexander Steffens wrote:
On Mon, Feb 9, 2015 at 2:45 AM, Allan McRae
wrote: Are there objections to applying this patch - at least until a proper solution is found?
A few years ago there was a bit of drama in GNOME about projects disabling maintainer mode. Might be worth reading and looking further.
http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/
(AM_MAINTAINER_MODE without parameters is equivalent to ([disable]))
I am quite aware of this and think that blog post is wrong :P We want the TESTS file automatically updated. So there is the option between: 1) having AM_MAINTAINER_MODE([disable]) added 2) requiring the specific version of automake/aclocal I used to make the tarball to build pacman 3) removing/altering the *.in pactest to not require dynamically generating it. Not sure how we would do 3), and 2) is a non-option. That leaves 1). The only effect (apart from fixing the build...) that adding AM_MAINTAINER_MODE([disable]) has on the build process is that if you patch configure.ac/Makefile.am, you have to run ./autogen.sh to update the build scripts. Allan
On 02/09/15 at 12:44pm, Allan McRae wrote:
On 09/02/15 12:27, Jan Alexander Steffens wrote:
On Mon, Feb 9, 2015 at 2:45 AM, Allan McRae
wrote: Are there objections to applying this patch - at least until a proper solution is found?
A few years ago there was a bit of drama in GNOME about projects disabling maintainer mode. Might be worth reading and looking further.
http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/
(AM_MAINTAINER_MODE without parameters is equivalent to ([disable]))
I am quite aware of this and think that blog post is wrong :P
We want the TESTS file automatically updated. So there is the option between: 1) having AM_MAINTAINER_MODE([disable]) added 2) requiring the specific version of automake/aclocal I used to make the tarball to build pacman 3) removing/altering the *.in pactest to not require dynamically generating it.
Not sure how we would do 3), and 2) is a non-option. That leaves 1).
The only effect (apart from fixing the build...) that adding AM_MAINTAINER_MODE([disable]) has on the build process is that if you patch configure.ac/Makefile.am, you have to run ./autogen.sh to update the build scripts.
Allan
We could move the substitution out of the test file into an external file to be read in by pactest.py. apg
LIBCURL was never set in the Makefile so XferCommand was always being
set in the test file. This removes the only substitution in our test
files which will prevent the TESTS file from being rebuilt every time
configure is run.
Signed-off-by: Andrew Gregory
participants (3)
-
Allan McRae
-
Andrew Gregory
-
Jan Alexander Steffens