build: declare the automake 1.16 requirement - #4731
Open
ThalesBarretto wants to merge 1 commit into
Open
Conversation
libglusterfs/src/Makefile.am sets AUTOMAKE_OPTIONS = subdir-objects (0dbca87, gluster#4593 "Fix remove subdir-objects is disabled warnings") and compiles $(CONTRIBDIR)/xxhash/xxhash.c, a source outside its own directory. automake older than 1.16 does not create the .deps directory for such objects, so the build dies well after configure has succeeded, with a message that names neither automake nor the option that requires it: Makefile:998: ../../contrib/xxhash/.deps/libglusterfs_la-xxhash.Plo: No such file or directory configure.ac declares no minimum, so nothing catches this earlier. Ask AM_INIT_AUTOMAKE for 1.16 and let automake report it, and replace the stale comment underneath -- which described an attempt to enable subdir-objects globally that was reverted for this very reason ("but libglusterfs fails to build with contrib") -- with what is actually required now. Measured across 10 distributions: automake 1.15.1 (openSUSE Leap 15.6) is the only version below the floor and the only one that fails. 1.16.1 (AlmaLinux 8, Ubuntu 20.04), 1.16.2 (CentOS Stream 9), 1.16.5 (Debian 12, Ubuntu 22.04/24.04), 1.17 (Debian 13, Fedora 42) and 1.18.1 (openSUSE Tumbleweed, Arch) all build. 1.16.1 is the lowest verified working version; 1.16.0 was not tested. With this change, Leap 15.6 stops in twelve seconds with configure.ac:21: error: require Automake 1.16, but have 1.15.1 instead of failing minutes into the build, and Debian 13 and CentOS Stream 9 are unaffected (configure, make and make install all succeed exactly as before). No release branch is affected: release-11's libglusterfs/src/Makefile.am does not set subdir-objects, which is why openSUSE's shipped glusterfs 11.2 builds on Leap today. Fixes: gluster#4730 Signed-off-by: Thales Antunes de Oliveira Barretto <thales.barretto.git@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
libglusterfs/src/Makefile.am sets AUTOMAKE_OPTIONS = subdir-objects
(0dbca87, #4593 "Fix remove subdir-objects is disabled warnings")
and compiles $(CONTRIBDIR)/xxhash/xxhash.c, a source outside its own
directory. automake older than 1.16 does not create the .deps
directory for such objects, so the build dies well after configure
has succeeded, with a message that names neither automake nor the
option that requires it:
Makefile:998: ../../contrib/xxhash/.deps/libglusterfs_la-xxhash.Plo:
No such file or directory
configure.ac declares no minimum, so nothing catches this earlier. Ask
AM_INIT_AUTOMAKE for 1.16 and let automake report it, and replace the
stale comment underneath -- which described an attempt to enable
subdir-objects globally that was reverted for this very reason ("but
libglusterfs fails to build with contrib") -- with what is actually
required now.
Measured across 10 distributions: automake 1.15.1 (openSUSE Leap 15.6)
is the only version below the floor and the only one that fails.
1.16.1 (AlmaLinux 8, Ubuntu 20.04), 1.16.2 (CentOS Stream 9), 1.16.5
(Debian 12, Ubuntu 22.04/24.04), 1.17 (Debian 13, Fedora 42) and 1.18.1
(openSUSE Tumbleweed, Arch) all build. 1.16.1 is the lowest verified
working version; 1.16.0 was not tested.
With this change, Leap 15.6 stops in twelve seconds with
configure.ac:21: error: require Automake 1.16, but have 1.15.1
instead of failing minutes into the build, and Debian 13 and CentOS
Stream 9 are unaffected (configure, make and make install all succeed
exactly as before).
No release branch is affected: release-11's libglusterfs/src/Makefile.am
does not set subdir-objects, which is why openSUSE's shipped glusterfs
11.2 builds on Leap today.
Fixes: #4730