]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - overlays/databases/mysql/default.nix
Add config for CI
[perso/Immae/Config/Nix.git] / overlays / databases / mysql / default.nix
index 797332bbf9acd601263722113dc4177d37e54e46..f9e5791fd156798808c466a84dfee32a3abbedbd 100644 (file)
@@ -1,18 +1,24 @@
 self: super: rec {
-  mariadb = mariadbPAM;
-  mariadbPAM = super.mariadb.overrideAttrs(old: {
+  mariadb_pam = super.mariadb.overrideAttrs(old: {
     cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ];
     buildInputs = old.buildInputs ++ [ self.pam ];
-    postInstall = old.postInstall + ''
-      # FIXME: hack because mariadb cannot find dialog.so
-      # fixed in 20.03: https://github.com/NixOS/nixpkgs/pull/80768
-      ln -s /nix $out/nix
-      cp "$dev"/lib/mysql/plugin/{caching_sha2_password.so,dialog.so,mysql_clear_password.so,sha256_password.so} "$out"/lib/mysql/plugin
-      '';
-  }) // (with super.mariadb; {
-    inherit client;
-    servier = super.mariadb;
-    inherit connector-c;
-    inherit galera;
+    outputs = old.outputs ++ [ "dev" ];
+    postInstall = ''
+      mkdir -p $dev $dev/lib $dev/share
+      cp -a $out/include $dev
+      cp -a $out/lib/{libmariadbclient.a,libmysqlclient.a,libmysqlclient_r.a,libmysqlservices.a} $dev/lib
+      cp -a $out/lib/pkgconfig $dev/lib
+      cp -a $out/share/aclocal $dev/share
+    '' + old.postInstall;
+  });
+  # This patched version includes C headers from the server part (see
+  # above). It seems to be required to build pam support in clients.
+  libmysqlclient_pam = super.libmysqlclient.overrideAttrs(old: {
+    prePatch = old.prePatch or "" + ''
+      sed -i -e '/define INCLUDE/s|"$| -I@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@/mysql/server -I@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@/mysql/server/private"|' mariadb_config/mariadb_config.c.in
+    '';
+    postInstall = old.postInstall or "" + ''
+      cp -a ${mariadb_pam.dev}/include/* $out/include/mariadb
+    '';
   });
 }