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.71 (+ automake update) #73797
Conversation
|
It looks like superenv forces self["M4"] = DevelopmentTools.locate("m4") if deps.any? { |d| d.name == "autoconf" }We could either:
Thoughts, @Bo98, @fxcoudert? |
That's an interesting debate actually. I know licenses haven't traditionally been too much of a concern, but using brewed |
|
Well, there's also the question of whether It'll also lead to more headaches if other build scripts use the same |
Actually, |
|
In that case, ignore what I said about that. |
|
So I looked into this. This stems from a bug in You can see the bug here: (The last line in particular) It's mostly as a result of This is why other warnings are not affected. For example, the Can it be worked around? Sure. A two-line patch to Is it worth it? Probably not. I'm seeing minimal benefits of sticking with Apple's |
|
Nice, thanks for looking at it. I just tested whether |
How my $m4 = $ENV{"M4"} || '/usr/bin/m4';So we shouldn't do anything hybrid here, for the benefit of those using it outside of the superenv. I also suggest checking this isn't using the Cellar path or anything like that. I don't think it will be though. |
Nope. In # $M4.
my $m4 = $ENV{"M4"} || '/usr/local/opt/m4/bin/m4';and in # m4.
my $m4 = $ENV{"M4"} || '/usr/local/opt/m4/bin/m4';The only Cellar references I can find are to |
|
I'd be for keeping it simple, and depending on Regarding superenv, I think what it's doing is trying to enforce the use of Apple m4 even when Homebrew has its own m4 installed. This made sense when autoconf didn't depend on m4, but now we're going to add the dependency, and this line should be removed. |
Building automake fails with autoconf 2.70+, when autoconf is used with macOS m4. It therefore makes sense for autoconf to depend on brewed m4. However, without the change proposed here, the setting of the M4 environment variable in superenv breaks the automake build. Related: Homebrew/homebrew-core#73797
0b9707e
to
161073e
Compare
Formula/automake.rb
Outdated
| # TODO: Remove when https://github.com/Homebrew/brew/pull/10921 | ||
| # lands in a tagged release of brew |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this whole PR has to wait for a tagged release, as any usage of autoconf 2.71 in other formulae relies on the M4 env being removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually think it'll work fine in those cases as long as they don't run automake's test for autoconf, but, yes, better to play it safe.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a bit more than that. It affects any autoconf file that has a AC_INIT but no AC_OUTPUT. automake's test just happens to have one such file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aha, ok. I've managed to build some things just fine with autoconf + automake as in this PR while superenv still set M4, but I guess I was just lucky.
This needs to depend on brewed m4, or else building automake with
autoconf fails.
Also, update the license. Ref:
❯ autoconf --version
autoconf (GNU Autoconf) 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
Remote the patch, as it is no longer needed. automake 1.16.3 now ships with new enough config scripts.
|
Updated |
libtool should have a runtime dependency on m4, since both glibtool and glibtoolize define functions that look for m4. Now that autoconf will depend on brewed m4 (Homebrew#73797), libtool should too. Otherwise, this creates a mixed version dependency. While we're here, let's get rid of the outdated sed shim fix.
|
|
libtool should have a runtime dependency on m4, since both glibtool and glibtoolize define functions that look for m4. Now that autoconf will depend on brewed m4 (#73797), libtool should too. Otherwise, this creates a mixed version dependency. While we're here, let's get rid of the outdated sed shim fix. Closes #73981. Signed-off-by: Bo Anderson <mail@boanderson.me> Signed-off-by: FX Coudert <fxcoudert@gmail.com> Signed-off-by: Carlo Cabrera <30379873+carlocab@users.noreply.github.com>
|
brew 3.0.10 has been tagged. Merging. |
brew install --build-from-source <formula>, where<formula>is the name of the formula you're submitting?brew test <formula>, where<formula>is the name of the formula you're submitting?brew audit --strict <formula>(after doingbrew install <formula>)?autoconfnow needs to depend on brewedm4, or elseautomake's configure script will complain about a brokenautoconf.Alternatively, we could just depend on brewed
m4only for theautomakebuild in order to misleadautomake'sconfigurescript, but that could lead to other broken things in caseautomake's test for a workingautoconfwas not a false positive. (I haven't actually tested this, but I think it should work.)Follow up to #66511. See also #70617.
TODO
brew 3.0.10orbrew 3.1.0is tagged.