Skip to content

Conversation

cho-m
Copy link
Member

@cho-m cho-m commented Aug 10, 2025

  • Have you followed the guidelines for contributing?
  • Have you ensured that your commits follow the commit style guide?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

Another unwanted runtime dependency on versioned GCC. Trying out shipping only executables for bottles.

Also trying to drop some old deps and workarounds.

@cho-m cho-m added the CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. label Aug 10, 2025
@github-actions github-actions bot added the automerge-skip `brew pr-automerge` will skip this pull request label Aug 10, 2025
@cho-m cho-m marked this pull request as ready for review August 12, 2025 21:37
@cho-m cho-m requested a review from a team as a code owner August 12, 2025 21:37
Copy link
Member

@MikeMcQuaid MikeMcQuaid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want @carlocab or @Bo98 to 👍🏻 the GCC allowlist. Let's make the bottle and from-source formula behave the same.

Comment on lines +74 to +75
The bottle does not include C++ libraries as core formulae are
not allowed to have a Linux-only GCC dependency for libraries.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The bottle does not include C++ libraries as core formulae are
not allowed to have a Linux-only GCC dependency for libraries.
Does not include C++ libraries.
  • I don't think people need to know the reason why
  • I don't think it makes sense to make this bottle only

Comment on lines +67 to +68
# Remove C++ libraries from Linux bottle. Can consider restoring once GCC 12 is default
rm_r([include, lib]) if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Remove C++ libraries from Linux bottle. Can consider restoring once GCC 12 is default
rm_r([include, lib]) if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
# Remove C++ libraries from Linux formula. Can consider restoring once GCC 12 is default
rm_r([include, lib]) if OS.linux?

end

test do
refute_path_exists lib if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
refute_path_exists lib if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"]
refute_path_exists lib if OS.linux?

Copy link
Member

@carlocab carlocab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, as long as you're not shipping libraries it's fine. We should probably audit for that.

Something like a check that makes sure all ELF files in the keg are executable if a formula is in linux_only_gcc_dependency_allowlist. That can be relaxed if we can actually check the GCC version required by a library.

@MikeMcQuaid
Copy link
Member

Yea, as long as you're not shipping libraries it's fine. We should probably audit for that.

Something like a check that makes sure all ELF files in the keg are executable if a formula is in linux_only_gcc_dependency_allowlist. That can be relaxed if we can actually check the GCC version required by a library.

Lots of great ideas here, thanks @carlocab ❤️

@cho-m cho-m added the blocked label Aug 18, 2025
@cho-m cho-m removed the blocked label Aug 30, 2025
@cho-m
Copy link
Member Author

cho-m commented Aug 30, 2025

Locally I'm scoping out alternative to just completing the GCC 12 upgrade. We already use GLIBCXX_3.4.30 (GCC 12.1.0) in some binaries perhaps from Ubuntu's different GCC vs libstdc++, e.g.

$ objdump -p $(brew --prefix)/lib/libz3.so | grep -oE 'GLIBCXX_3.4.[0-9]{2,}' | sort -r | head -3
GLIBCXX_3.4.30
GLIBCXX_3.4.29
GLIBCXX_3.4.26

EDIT: Homebrew/brew#20609

@cho-m cho-m added brew Issue may be Homebrew/brew related not merged PR was closed without being merged (and may need to be revisited) labels Sep 1, 2025
@cho-m
Copy link
Member Author

cho-m commented Sep 1, 2025

Closing in favor of improving brew detection given GCC 12 is actually mandatory in many of our Linux bottles.

@cho-m cho-m closed this Sep 1, 2025
@github-actions github-actions bot deleted the osrm-backend-linux-no-libs branch September 1, 2025 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge-skip `brew pr-automerge` will skip this pull request brew Issue may be Homebrew/brew related CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. not merged PR was closed without being merged (and may need to be revisited)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants