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

Build failure: mysql80 #226673

Closed
jnvrs opened this issue Apr 17, 2023 · 7 comments · Fixed by #226795
Closed

Build failure: mysql80 #226673

jnvrs opened this issue Apr 17, 2023 · 7 comments · Fixed by #226795
Labels
0.kind: build failure A package fails to build

Comments

@jnvrs
Copy link

jnvrs commented Apr 17, 2023

Steps To Reproduce

Just add mysql80 to your System

Build log

467a468
> #include_next <stdint.h>
CMake Error at /build/mysql-8.0.32/cmake/do_abi_check.cmake:121 (MESSAGE):
  ABI check found difference between
  /build/mysql-8.0.32/include/mysql/services.h.pp and
  /build/mysql-8.0.32/build/abi_check.out


make[2]: *** [CMakeFiles/abi_check.dir/build.make:70: CMakeFiles/abi_check] Error 1
make[1]: *** [CMakeFiles/Makefile2:2990: CMakeFiles/abi_check.dir/all] Error 2

Additional context

The build also failed in Hydra
https://hydra.nixos.org/build/215738828

Notify maintainers

@orivej

@jnvrs jnvrs added the 0.kind: build failure A package fails to build label Apr 17, 2023
@alyssais

This comment was marked as resolved.

@orivej
Copy link
Contributor

orivej commented Apr 21, 2023

I've briefly looked into this and it seems that mysql configure does something strange, it preprocesses its headers that include standard C headers with gcc -nostdinc (to do an ABI check). (Another strange thing is that some of the included headers are C++ only since they do #include <cstdint>, but the compiler used is gcc, not g++, and it fails to process these headers if I remove -nostdinc from the call.)

I am not sure that I will resolve this in a timely manner, but probably this can be worked around with gcc10StdenvCompat.

The latest revision of nixpkgs before the break is 9308394

@orivej
Copy link
Contributor

orivej commented Apr 21, 2023

probably this can be worked around with gcc10StdenvCompat

Some dependencies of mysql80, protobuf and icu, use symbols of libstdc++ from gcc 12; mysql80 fails to build with gcc10StdenvCompat or gcc11Stdenv (unless the dependencies are also built with older gcc).

@jerith666
Copy link
Contributor

My bisect hasn't quite completed yet, but it's looking like #209870 is the culprit here.

@jerith666
Copy link
Contributor

Yep, fdd49f1 from that PR is the last good commit, then there's a series of commits that fail with undefined variables, then 5f57c2e is where the build gets far enough to encounter this error.

I guess I'll add this to the project they created for follow-ups to that PR.

I'm pretty out of my depth here in terms of ideas for a fix. I found https://bugs.mysql.com/bug.php?id=61297 which mentions running make abi_update to fix a similar issue a couple years back, but I'm not sure if that makes sense in nixpkgs or not.

@wegank
Copy link
Member

wegank commented Apr 22, 2023

This should have been resolved in staging-next, see https://hydra.nixos.org/job/nixpkgs/staging-next/mysql80.x86_64-linux.

@vcunat vcunat linked a pull request Apr 22, 2023 that will close this issue
3 tasks
@ghost
Copy link

ghost commented Apr 24, 2023

This should have been resolved in staging-next, see https://hydra.nixos.org/job/nixpkgs/staging-next/mysql80.x86_64-linux.

If it isn't, please ping me and I will investigate this.

tvlbot pushed a commit to tvlfyi/tvix that referenced this issue Apr 26, 2023
* //3p/sources: Note that emacs-overlay is not updated for now, as
  changes in emacs HEAD break //users/sterni/emacs.

* //3p/gerrit_plugins/code-owners: deps hash changed once again
  or was no longer in the Nix store.

  Unfortunately, building the deps derivations from scratch for gerrit
  and the gerrit plugins no longer works due to a nixpkgs regression:
  Due to a (operator precedence) mistake in the way the deps
  derivation's installPhase is computed, it would append extra code to
  the installPhase provided by us, causing a bash syntax error.

  I have proposed a fix for this
  upstream (<NixOS/nixpkgs#228305>). Adding a
  workaround in the repo would be possible, but a bit annoying. Since
  the derivations are fixed output anyways, I've opted to build the
  missing deps derivation (for code-owners) locally using the fixed
  nixpkgs, updated the sha256 and copied the result into whitby's Nix
  store. Hopefully by the next time we'll be rebuilding the deps
  derivations again the fix will have propagated into the NixOS unstable
  channel.

* //users/grfn/system/system:roswellSystem: Use mysql80 from stable.
  See also NixOS/nixpkgs#226673.

Change-Id: I9b9d57f589be4cdc3fd4f39729c170a25a655b74
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8483
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
tvlbot pushed a commit to tvlfyi/kit that referenced this issue Apr 26, 2023
* //3p/sources: Note that emacs-overlay is not updated for now, as
  changes in emacs HEAD break //users/sterni/emacs.

* //3p/gerrit_plugins/code-owners: deps hash changed once again
  or was no longer in the Nix store.

  Unfortunately, building the deps derivations from scratch for gerrit
  and the gerrit plugins no longer works due to a nixpkgs regression:
  Due to a (operator precedence) mistake in the way the deps
  derivation's installPhase is computed, it would append extra code to
  the installPhase provided by us, causing a bash syntax error.

  I have proposed a fix for this
  upstream (<NixOS/nixpkgs#228305>). Adding a
  workaround in the repo would be possible, but a bit annoying. Since
  the derivations are fixed output anyways, I've opted to build the
  missing deps derivation (for code-owners) locally using the fixed
  nixpkgs, updated the sha256 and copied the result into whitby's Nix
  store. Hopefully by the next time we'll be rebuilding the deps
  derivations again the fix will have propagated into the NixOS unstable
  channel.

* //users/grfn/system/system:roswellSystem: Use mysql80 from stable.
  See also NixOS/nixpkgs#226673.

Change-Id: I9b9d57f589be4cdc3fd4f39729c170a25a655b74
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8483
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: build failure A package fails to build
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants