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

abseil-cpp and rdeps FTBFS #34075

Closed
dannf opened this issue Nov 13, 2024 · 0 comments · Fixed by #38781 · May be fixed by #34201
Closed

abseil-cpp and rdeps FTBFS #34075

dannf opened this issue Nov 13, 2024 · 0 comments · Fixed by #38781 · May be fixed by #34201
Assignees
Labels
service:ftbfs Failed to Build From Source squad:foundations

Comments

@dannf
Copy link
Contributor

dannf commented Nov 13, 2024

Since the introduction of openssf-compiler-options, abseil-cpp FTBFS. This appears to impact the following packages:

  • abseil-cpp
  • grpc-1.66
  • grpc-1.67
  • libreoffice-24.8
  • nodejs-22
  • nodejs-23
  • protobuf
  • protobuf-c
  • py3-grpcio-tools
  • re2

As @justinvreeland surmised, this is believed to be a GCC bug. Upstream's last reply on that bug was over a year ago, so it seems we need to do something else.

So what do we do in the meantime?

While the current LTS version of abseil-cpp - 20240722 is impacted, the previous LTS version - 20240116 appears not to be. abseil-cpp upstream supports LTS releases for at least 2 years, so multi-versioning that package seems like a way to unblock rdeps that are compatible with it.

Another option is to temporarily drop -fno-delete-null-pointer-checks from the buildflags for the impacted packages. I haven't found an elegant way to do this though. Appending the inverse flag, -fdelete-null-pointer-checks , does not do the trick. Adding an additional spec file that filters out -fno-delete-null-pointer-checks would work, but 🤮.

dannf added a commit to dannf/os that referenced this issue Nov 13, 2024
abseil-cpp 20240722 FTBFS after the introduction of openssf-compiler-options
as described in wolfi-dev#34075. grpc-1.67 vendors in abseil-cpp 20240116, an older
LTS release that is still upstream supported for another year. Workaround
the FTBFS by using the vendored copy instead of a system package. This
also means we need to switch to vendored copies of protobuf and re2, as
installing those apks will bring in the problematic abseil-cpp apk.

Signed-off-by: dann frazier <[email protected]>
@murraybd murraybd added the service:ftbfs Failed to Build From Source label Nov 13, 2024
dannf added a commit to dannf/os that referenced this issue Nov 13, 2024
abseil-cpp 20240722 FTBFS after the introduction of openssf-compiler-options
as described in wolfi-dev#34075. grpc-1.67 vendors in abseil-cpp 20240116, an older
LTS release that is still upstream supported for another year. Workaround
the FTBFS by using the vendored copy instead of a system package. This
also means we need to switch to vendored copies of protobuf and re2, as
installing those apks will bring in the problematic abseil-cpp apk.

Signed-off-by: dann frazier <[email protected]>
@dannf dannf self-assigned this Nov 14, 2024
dannf added a commit to dannf/os that referenced this issue Nov 14, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 14, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 14, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 15, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 15, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 15, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 15, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 15, 2024
abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new spec file for abseil-cpp builds that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-dev apk so abseil-cpp's reverse
dependencies can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
…C bug

abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new package that provides a spec file that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-compiler-options apk so abseil-cpp's reverse
dependencies, as well as packages that vendor their own abseil-cpp source,
can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
dannf added a commit to dannf/os that referenced this issue Nov 17, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
…C bug

abseil-cpp and packages that use it began to FTBFS after the introduction of
openssf-compiler-options, specifically its addition of the
-fno-delete-null-pointer-checks flag. This is believed to be a GCC bug:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Unfortunately it isn't possible to "undo" this flag by appending the
inverse flag (-fdelete-null-pointer-checks). So here we introduce a
new package that provides a spec file that will filter out the
problematic flag from the openssf spec file. Fixes wolfi-dev#34075.

This commit uses the spec file to build abseil-cpp itself, and
ships it in the abseil-cpp-compiler-options apk so abseil-cpp's reverse
dependencies, as well as packages that vendor their own abseil-cpp source,
can be updated to use it.

Signed-off-by: dann frazier <[email protected]>
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
justinvreeland pushed a commit to dannf/os that referenced this issue Nov 18, 2024
dannf added a commit to dannf/os that referenced this issue Nov 21, 2024
dannf added a commit that referenced this issue Nov 21, 2024
dannf added a commit that referenced this issue Nov 21, 2024
dannf added a commit that referenced this issue Nov 21, 2024
xnox pushed a commit that referenced this issue Nov 22, 2024
Related:
- chainguard-dev/internal-dev#5334
- #34075 (abseil/openssf-related
FTBFS)

See individual commit logs for details.

---------

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Nov 23, 2024
dannf added a commit to dannf/os that referenced this issue Nov 25, 2024
Until `abseil-cpp-compiler-options` is available (which is blocked
by a melange/apko issue), let's disable openssf-compiler-options
to unblock building this package.

See wolfi-dev#34075

Signed-off-by: dann frazier <[email protected]>
dannf added a commit that referenced this issue Nov 26, 2024
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
Using -fdelete-null-pointer to "undo" this flag is not sufficient
due to a GCC bug[*]. So let's tell the spec file to just omit
-fno-delete-null-pointer if -fdelete-null-pointer was explicitly
passed. This will give us a path to workaround build failures
in software that is incompatible with this flag (notably
abseil-cpp).

Fixes: wolfi-dev#34075

[*] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
Add explicit build-dep on openssf-compiler-options so that CI
orders the builds correctly.

Fixes: wolfi-dev#34075

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
Using -fdelete-null-pointer to "undo" this flag is not sufficient
due to a GCC bug[*]. So let's tell the spec file to just omit
-fno-delete-null-pointer if -fdelete-null-pointer was explicitly
passed. This will give us a path to workaround build failures
in software that is incompatible with this flag (notably
abseil-cpp).

Generated with this command:
  sed -i 's/-fno-delete-null-pointer-checks/%{!fdelete-null-pointer-checks:-fno-delete-null-pointer-checks}/' openssf-compiler-options/usr/lib/gcc/*/*/openssf.spec

Fixes: wolfi-dev#34075

[*] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
Add explicit build-dep on openssf-compiler-options so that CI
orders the builds correctly.

Fixes: wolfi-dev#34075

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 4, 2025
Add explicit build-dep on openssf-compiler-options so that CI
orders the builds correctly.

Fixes: wolfi-dev#34075

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 5, 2025
Add explicit build-dep on openssf-compiler-options so that CI
orders the builds correctly.

While this fixes a FTBFS, allowing a new abseil-cpp into the
archive would trigger an issue in current versions of melange[*],
so I'm avoiding bumping the epoch at this time.

Fixes: wolfi-dev#34075

[*] chainguard-dev/melange#1651

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 5, 2025
Using -fdelete-null-pointer to "undo" this flag is not sufficient
due to a GCC bug[*]. So let's tell the spec file to just omit
-fno-delete-null-pointer if -fdelete-null-pointer was explicitly
passed. This will give us a path to workaround build failures
in software that is incompatible with this flag (notably
abseil-cpp).

Generated with this command:
  sed -i 's/-fno-delete-null-pointer-checks/%{!fdelete-null-pointer-checks:-fno-delete-null-pointer-checks}/' openssf-compiler-options/usr/lib/gcc/*/*/openssf.spec

Fixes: wolfi-dev#34075

[*] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71962

Signed-off-by: dann frazier <[email protected]>
dannf added a commit to dannf/os that referenced this issue Jan 5, 2025
Add explicit build-dep on openssf-compiler-options so that CI
orders the builds correctly.

While this fixes a FTBFS, allowing a new abseil-cpp into the
archive would trigger an issue in current versions of melange[*],
so I'm avoiding bumping the epoch at this time.

Fixes: wolfi-dev#34075

[*] chainguard-dev/melange#1651

Signed-off-by: dann frazier <[email protected]>
dannf added a commit that referenced this issue Jan 6, 2025
…inter

abseil-cpp and its reverse dependencies (including those that vendor their own copy) FTBFS with an option from openssf-compiler-options (-fno-delete-null-pointer-checks). A GCC bug means this can't be undone by just adding the inverse flag to CXXFLAGS or similar. This adds logic to openssf-compiler-options to not pass the breaking flag at all iff the inverse flag is provided.

This adds the inverse flag to all impacted packages. It bumps all of them except abseil-cpp itself, because doing so would trigger an unrelated bug in melange, which I've described in a comment within.

Fixes: #34075
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
service:ftbfs Failed to Build From Source squad:foundations
Projects
None yet
2 participants