various: fix build with GCC 14#357774
Conversation
6cfe17f to
235fcd1
Compare
|
Can you please check any of these packages can be updated to a new upstream release, or else patched with an upstream change or patch from another GCC 14 distro (e.g. Arch), before we resort to turning off the warnings? |
I will push as soon as it finishes building. |
|
Thank you!
|
|
Regarding libmysqlclient: @globin, is there a newer version available? |
|
Debian has a patch for cdrkit: https://sources.debian.org/patches/cdrkit/9:1.1.11-3.5/fix-implicit-function-declaration.patch/ |
|
Yay. I’d recommend getting it from their Salsa GitLab which IIRC has stabler URLs. Or maybe we should just fetch the whole thing from Salsa, since Debian were basically always the upstream anyway and the actual tarball is gone. Then we could apply the entire patchset; see e.g. #354257. |
235fcd1 to
3dec831
Compare
3dec831 to
0b6678c
Compare
If I remember correctly I changed rhythmbox from brasero to brasero-unwrapped. (Which doesn't depend on cdrtools but brasero wraped does) EDIT: #345381 |
fc042f3 to
819d1bb
Compare
emilazy
left a comment
There was a problem hiding this comment.
LGTM except for one file and the DBD thing which I’d prefer to omit for now in hopes of finding a better solution.
Unfortunately that perl module is used by mariadb-server -> akonadi -> default Plasma setup. So I don't see a much better solution. |
819d1bb to
aa18db4
Compare
The rest of the changes seem good, but I would prefer to see if we can solve the |
|
@Aleksanaa BTW, I believe that “various:” was more accurate than “treewide:” in this case – there’s no way this PR is going to fix all GCC 14 regressions across the tree (and we unnecessarily conflate changes that touch multiple packages with actual treewides, which has lead to miscommunications in the past). |
aa18db4 to
6dcdf8a
Compare
| nativeBuildInputs = [ | ||
| pkgs.mysql80 # for mysql_config | ||
| ]; | ||
| buildInputs = [ | ||
| DevelChecklib | ||
| TestDeep | ||
| TestDistManifest | ||
| TestPod | ||
| pkgs.libmysqlconnectorcpp | ||
| pkgs.libxcrypt | ||
| pkgs.openssl | ||
| pkgs.zstd | ||
| ]; |
There was a problem hiding this comment.
So, I forget the details of the MySQL/MariaDB split, but: previously we were using libmysqlclient, which is actually mariadb-connector-c. Now we’re pulling in an entire build of actual MySQL and libmysqlconnectorcpp which also seems to be a MySQL thing. I’m not saying this is necessarily a problem but I want to make sure we want to include MySQL in the default desktop closure, and indeed the closure of mariadb-server itself?
There’s also DBD::MariaDB – I don’t know if it’s compatible with mytop or not, but maybe we should be using that instead? cc @Conni2461 @dasJ
There was a problem hiding this comment.
I think it is needed for mytop.sh and https://github.com/MariaDB/server/blob/eff9c198e32a828f610b93fad3a0f0eb63b3ded2/scripts/mytop.sh#L250-L255 seems to show that it is fine with MariaDB connector
There was a problem hiding this comment.
I can switch it over, but not really test it.
There was a problem hiding this comment.
Switching it over seems like the best idea. I think that we don’t want the MySQL server in the MariaDB server’s build closure, and probably don’t want MySQL stuff in the desktop closure at all :)
Of course I’m assuming that DBD::MariaDB builds…
There was a problem hiding this comment.
it builds. I switched it over a a few days ago when building but thought that mytop.sh only supported the mysql version so didn't move forward -- looking over it again I misread the mytop.sh code, but like @FliegendeWurst implies, testing that it works is the hard part.
There was a problem hiding this comment.
It would be sort of embarrassing if MariaDB were shipping a script that purported to support MariaDB but that actually required MySQL to build, I think. It doesn’t look like the script is doing anything fancy with the connection. I’d be comfortable switching to unbreak it.
There was a problem hiding this comment.
assuming the DBDMariaDB perl package works, I agree. the diff is pretty straightforward.
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index a178e1fa28e4..921510a07f91 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -26,7 +26,7 @@ let
libExt = stdenv.hostPlatform.extensions.sharedLibrary;
- mytopEnv = buildPackages.perl.withPackages (p: with p; [ DBDmysql DBI TermReadKey ]);
+ mytopEnv = buildPackages.perl.withPackages (p: with p; [ DBDMariaDB DBI TermReadKey ]);
common = rec { # attributes common to both builds
inherit version;| env.CFLAGS = toString [ | ||
| "-Wno-error=implicit-int" | ||
| "-Wno-error=implicit-function-declaration" | ||
| ]; |
There was a problem hiding this comment.
Non‐blocking nit: lib.concatStringsSep " " has less surprising behaviour in general (but they are equivalent in this case).
Regression from #356812
Fixes #357975
Fixes #358143
Things done