Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

autoconf 2.70 #66511

Closed
wants to merge 2 commits into from
Closed

autoconf 2.70 #66511

wants to merge 2 commits into from

Conversation

carlocab
Copy link
Member

@carlocab carlocab commented Dec 8, 2020

Created with brew bump-formula-pr.

@BrewTestBot BrewTestBot added the automerge-skip `brew pr-automerge` will skip this pull request label Dec 8, 2020
@carlocab carlocab closed this Dec 8, 2020
@fxcoudert
Copy link
Member

Why close it?

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

I know basically nothing about perl/m4, so can't fix the failed test. I closed it to avoid discouraging someone else from trying to bump it.

If you'd rather I reopened it and wait to see if someone will help with the test failure, I can do that too. I'm also trying to looking up the test failure, but not optimistic about figuring it out.

@fxcoudert
Copy link
Member

fxcoudert commented Dec 8, 2020

Maintainers can push to your branch ;)

PS: this is written from memory, so I hope I'm not missing things

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

Ok, hope this works! I tried looking up the first error I saw online, but there's no sign of it so far.

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

All three CI nodes:

==> FAILED
==> Testing autoconf
/usr/bin/sandbox-exec -f /private/tmp/homebrew20201208-50275-11atb29.sb ruby -W0 -I $LOAD_PATH -- /usr/local/Homebrew/Library/Homebrew/test.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/autoconf.rb --verbose
==> /usr/local/Cellar/autoconf/2.70/bin/autoreconf -fiv
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force 
Can't exec "aclocal": No such file or directory at /usr/local/Cellar/autoconf/2.70/share/autoconf/Autom4te/FileUtils.pm line 274.
autoreconf: error: aclocal failed with exit status: 2
Error: autoconf: failed

Plus:

Error: 2 failed steps!
brew test --verbose autoconf
brew install --verbose --build-bottle automake

@fxcoudert
Copy link
Member

autoconf test should use only autoconf, not automake (to avoid cyclic dependency).

@fxcoudert
Copy link
Member

Trying to build automake with that new autoconf gives:

configure:3113: checking whether autoconf works
configure:3121: cd conftest && autoconf -o /dev/null conftest.ac
unknown channel m4trace: -1- _m4_warn(syntax, AC_OUTPUT was never used, )
 at /usr/local/Cellar/autoconf/2.70/share/autoconf/Autom4te/Channels.pm line 631.
        Autom4te::Channels::msg("m4trace: -1- _m4_warn(syntax, AC_OUTPUT was never used, )\x{a}", undef, undef, "partial", 0) called at /usr/local/Cellar/autoconf/2.70/bin/autom4te line
 1073
configure:3124: $? = 1
configure:3133: result: no
configure:3136: error: The installed version of autoconf does not work.
    Please check config.log for error messages before this one.

I think we need to report that one, I don't think it's normal at all, and I don't see how it could be just a "build" problem.

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

This looks really similar to the error produced by the very first test run. Let me figure out how to report it.

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

This was the error from the original test:

==> FAILED
==> Testing autoconf
/usr/bin/sandbox-exec -f /private/tmp/homebrew20201208-51835-h806xv.sb ruby -W0 -I $LOAD_PATH -- /usr/local/Homebrew/Library/Homebrew/test.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/autoconf.rb --verbose
==> /usr/local/Cellar/autoconf/2.70/bin/autoconf autotest.m4
unknown channel m4trace: -1- _m4_warn(syntax, AC_INIT was never used, )
m4trace: -1- _m4_warn(syntax, AC_OUTPUT was never used, )
 at /usr/local/Cellar/autoconf/2.70/share/autoconf/Autom4te/Channels.pm line 631.
	Autom4te::Channels::msg("m4trace: -1- _m4_warn(syntax, AC_INIT was never used, )\x{a}m4tra"..., undef, undef, "partial", 0) called at /usr/local/Cellar/autoconf/2.70/bin/autom4te line 1073

@carlocab
Copy link
Member Author

carlocab commented Dec 8, 2020

Upstream report: https://savannah.gnu.org/support/index.php?110397

@carlocab
Copy link
Member Author

carlocab commented Dec 9, 2020

Reply to upstream report:

https://savannah.gnu.org/support/index.php?110397#comment1

Respone suggests that automake configure script needs to be regenerated with the new autoconf? I think the formula doesn't do that. Let me try to fix it. Tried it locally; just produces more errors. Which, of course, it would.

@carlocab
Copy link
Member Author

I can get automake to build outside of brew, but I have no idea what it is in my environment that's fixed it. Figuring it out may take me a while...

@carlocab
Copy link
Member Author

Ok, if I keep the autoconf formula as in this PR, this is what happens when I use automake's configure script:

❯ ./configure --prefix=/tmp/automake
checking whether make supports nested variables... yes
checking build system type... x86_64-apple-darwin20.1.0
checking host system type... x86_64-apple-darwin20.1.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... ./lib/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether ln -s works... yes
checking for perl... /usr/bin/perl
checking for tex... tex
checking for yacc... yacc
checking for lex... lex
checking whether autoconf is installed... yes
checking whether autoconf works... no
configure: error: The installed version of autoconf does not work.
    Please check config.log for error messages before this one.

However, if I change autoconf so that it depends_on "m4", I get this:

❯ export PERL=/usr/bin/perl
❯ ./configure --prefix=/tmp/automake
checking whether make supports nested variables... yes
checking build system type... x86_64-apple-darwin20.1.0
checking host system type... x86_64-apple-darwin20.1.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... ./lib/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether ln -s works... yes
checking for perl... /usr/bin/perl
checking for tex... tex
checking for yacc... yacc
checking for lex... lex
checking whether autoconf is installed... yes
checking whether autoconf works... yes
checking whether autoconf is recent enough... yes
checking whether ln works... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
configure: will now look for a sturdy POSIX shell, for our testsuite
checking for sh... /bin/sh
checking for sh5... no
checking for dash... /bin/dash
checking for ash... no
checking for bash... /usr/local/bin/bash
checking for zsh... /usr/local/bin/zsh
checking for ksh... /bin/ksh
checking for pdksh... no
checking whether /bin/sh supports $(cmd)... yes
checking whether /bin/sh supports $((expr))... yes
checking whether /bin/sh supports ${#var}... yes
checking whether /bin/sh supports ${var#glob} and ${var%glob}... yes
checking whether /bin/sh preserves exit traps with "set -e"... yes
checking whether /bin/sh can define exit traps in a shell function... yes
checking whether /bin/sh corrupts stderr with "set -x"... no
checking whether /bin/sh can return early from "dot-sourced" files... yes
checking whether /bin/sh supports alias named like shell builtins... yes
checking whether /bin/sh supports "test -e"... yes
configure: shell /bin/sh is good enough, stop looking
configure: will use /bin/sh as the testsuite shell
configure: will now look for generic compilers
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether cc accepts -g... yes
checking for cc option to enable C11 features... none needed
checking whether cc understands -c and -o together... yes
checking for aCC... no
checking for FCC... no
checking for KCC... KCC
checking whether the C++ compiler works... no
configure: WARNING: C++ compiler cannot create executables
configure: tests requiring the C++ compiler will be skipped
checking for xlf95... no
checking for f95... no
checking for fort... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgfortran... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking for nagfor... no
checking for xlf90... no
checking for f90... no
checking for armflang... no
checking for flang... flang
checking whether the Fortran compiler works... yes
checking for Fortran compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU Fortran... no
checking whether flang accepts -g... yes
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for g77... no
checking for armflang... no
checking for flang... flang
checking whether the Fortran 77 compiler works... yes
checking for Fortran 77 compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU Fortran 77... no
checking whether flang accepts -g... yes
configure: will now look for GNU compilers
configure: cc is already a GNU C compiler
checking for g++... g++
checking for gfortran... gfortran
checking for g77... no
checking for gfortran... gfortran
checking for gcj... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating pre-inst-env

In fact, doing make then make install works perfectly.

However, brew install -s automake fails:

❯ brew install -sv automake
==> Downloading https://ftp.gnu.org/gnu/automake/automake-1.16.3.tar.xz
Already downloaded: /Users/chisquared/Library/Caches/Homebrew/downloads/d54a3ef857a7f275f569c7da32bd33c113f410988359e23102310156eb3475b2--automake-1.16.3.tar.xz
tar xof /Users/chisquared/Library/Caches/Homebrew/downloads/d54a3ef857a7f275f569c7da32bd33c113f410988359e23102310156eb3475b2--automake-1.16.3.tar.xz -C /private/tmp/d20201213-69995-8jz1i5
cp -pR /private/tmp/d20201213-69995-8jz1i5/automake-1.16.3/. /private/tmp/automake-20201213-69995-125c2w/automake-1.16.3
chmod -Rf +w /private/tmp/d20201213-69995-8jz1i5
==> ./configure --prefix=/usr/local/Cellar/automake/1.16.3_1
checking whether make supports nested variables... yes
checking build system type... x86_64-apple-darwin20.1.0
checking host system type... x86_64-apple-darwin20.1.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... ./lib/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether ln -s works... yes
checking for perl... /usr/bin/perl
checking for tex... no
checking for yacc... yacc
checking for lex... lex
checking whether autoconf is installed... yes
checking whether autoconf works... no
configure: error: The installed version of autoconf does not work.
    Please check config.log for error messages before this one.

This happens even if I try to make automake depend on m4. Not really sure what's going on.

Not sure if it helps, but...

❯ brew config && brew doctor
HOMEBREW_VERSION: 2.6.1-86-gced0da1
ORIGIN: https://github.com/Homebrew/brew
HEAD: ced0da159fd06f6d674f4354957a5074735b09aa
Last commit: 20 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 82f7491cdf202c2e8c7bab26071c7d6f64f9b8fb
Core tap last commit: 5 days ago
Core tap branch: bump-autoconf-2.70
HOMEBREW_PREFIX: /usr/local
HOMEBREW_BAT: set
HOMEBREW_CASK_OPTS: []
HOMEBREW_COLOR: set
HOMEBREW_EDITOR: nvim
HOMEBREW_FORCE_VENDOR_RUBY: set
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 4
Homebrew Ruby: 2.6.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/bin/ruby
CPU: quad-core 64-bit icelake
Clang: 12.0 build 1200
Git: 2.29.2 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 11.0.1-x86_64
CLT: 12.2.0.0.1.1604076827
Xcode: N/A
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  coreutils

Warning: You have uncommitted modifications to Homebrew/homebrew-core.
If this is a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
  cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core && git stash && git clean -d -f

Uncommitted files:
   M Formula/autoconf.rb
   M Formula/automake.rb

Warning: Some taps are not on the default git origin branch and may not receive
updates. If this is a surprise to you, check out the default branch with:
  git -C $(brew --repo homebrew/core) checkout master

Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/opt/autoconf@2.69

@carlocab
Copy link
Member Author

@gromgit one of the autoconf maintainers asked about being about to SSH into a macOS box to help debug the build problem with automake here. See https://savannah.gnu.org/support/?110397#comment4

I remember you mentioning that you typically just SSH into your Mac. You wouldn't happen to know the easiest way to set this up, would you?

@gromgit
Copy link
Member

gromgit commented Dec 14, 2020

System Preferences > Sharing > Remote Login is the easiest way.

@BrewTestBot
Copy link
Member

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@BrewTestBot BrewTestBot added the stale No recent activity label Jan 5, 2021
@carlocab
Copy link
Member Author

carlocab commented Jan 5, 2021

Right, still working on this. Will come back to it soon.

@carlocab carlocab removed the stale No recent activity label Jan 5, 2021
@BrewTestBot
Copy link
Member

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@BrewTestBot BrewTestBot added the stale No recent activity label Jan 27, 2021
@carlocab carlocab added the not merged PR was closed without being merged (and may need to be revisited) label Jan 27, 2021
@carlocab carlocab removed the not merged PR was closed without being merged (and may need to be revisited) label Jan 27, 2021
@BrewTestBot BrewTestBot closed this Feb 4, 2021
@carlocab carlocab deleted the bump-autoconf-2.70 branch February 5, 2021 14:48
@bayandin bayandin mentioned this pull request Feb 14, 2021
@BrewTestBot BrewTestBot added the outdated PR was locked due to age label Mar 8, 2021
@Homebrew Homebrew locked as resolved and limited conversation to collaborators Mar 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
automerge-skip `brew pr-automerge` will skip this pull request outdated PR was locked due to age stale No recent activity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants