about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/sql/mariadb/connector-c
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/sql/mariadb/connector-c')
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_2.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_3.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix76
4 files changed, 94 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix
new file mode 100644
index 000000000000..a51fc1d104b1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./. (args // {
+  version = "3.1.21";
+  hash = "sha256-guN3Rcsb/EV4rxPE3yhJRSsT1+z44zUetg7ZBA4WjIc=";
+})
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_2.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_2.nix
new file mode 100644
index 000000000000..6619e261650c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_2.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./. (args // {
+  version = "3.2.7";
+  hash = "sha256-F7s9fcbJiz6lsWrvlTpY+ZET8MPwlyWPKJZOvHEwBvo=";
+})
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_3.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_3.nix
new file mode 100644
index 000000000000..9f750fe8108b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_3.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./. (args // {
+  version = "3.3.5";
+  hash = "sha256-RLHx8PyfbfIDr6X6ky5/w0XsGMFd+v5PgmQHvYOaf+k=";
+})
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
new file mode 100644
index 000000000000..be4af113c1d9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
@@ -0,0 +1,76 @@
+{ lib, stdenv, fetchFromGitHub, cmake
+, curl, openssl, zlib, zstd
+, libiconv
+, version, hash, ...
+}:
+
+with lib;
+
+let
+  isVer33 = versionAtLeast version "3.3";
+
+in stdenv.mkDerivation {
+  pname = "mariadb-connector-c";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "mariadb-corporation";
+    repo = "mariadb-connector-c";
+    rev = "v${version}";
+    inherit hash;
+  };
+
+  outputs = [ "out" "dev" ];
+
+  cmakeFlags = [
+    "-DMARIADB_UNIX_ADDR=/run/mysqld/mysqld.sock"
+    "-DWITH_CURL=ON"
+    "-DWITH_EXTERNAL_ZLIB=ON"
+    "-DWITH_MYSQLCOMPAT=ON"
+  ];
+
+  postPatch = ''
+    substituteInPlace mariadb_config/mariadb_config.c.in \
+      --replace '#define INCLUDE "-I%s/@INSTALL_INCLUDEDIR@ -I%s/@INSTALL_INCLUDEDIR@/mysql"' "#define INCLUDE \"-I$dev/include -I$dev/include/mysql\"" \
+      --replace '#define LIBS    "-L%s/@INSTALL_LIBDIR@/ -lmariadb"' "#define LIBS    \"-L$out/lib/mariadb -lmariadb\"" \
+      --replace '#define PKG_LIBDIR "%s/@INSTALL_LIBDIR@"' "#define PKG_LIBDIR \"$out/lib/mariadb\"" \
+      --replace '#define PLUGIN_DIR "%s/@INSTALL_PLUGINDIR@"' "#define PLUGIN_DIR \"$out/lib/mariadb/plugin\"" \
+      --replace '#define PKG_PLUGINDIR "%s/@INSTALL_PLUGINDIR@"' "#define PKG_PLUGINDIR \"$out/lib/mariadb/plugin\""
+  '' + lib.optionalString stdenv.hostPlatform.isStatic ''
+    # Disables all dynamic plugins
+    substituteInPlace cmake/plugins.cmake \
+      --replace 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "DYNAMIC")' 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "INVALID")'
+    # Force building static libraries
+    substituteInPlace libmariadb/CMakeLists.txt \
+      --replace 'libmariadb SHARED' 'libmariadb STATIC'
+  '';
+
+  # The cmake setup-hook uses $out/lib by default, this is not the case here.
+  preConfigure = optionalString stdenv.isDarwin ''
+    cmakeFlagsArray+=("-DCMAKE_INSTALL_NAME_DIR=$out/lib/mariadb")
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ curl openssl zlib ] ++ optional isVer33 zstd;
+  buildInputs = [ libiconv ];
+
+  postInstall = ''
+    moveToOutput bin/mariadb_config "$dev"
+  '';
+
+  postFixup = ''
+    ln -sv mariadb_config $dev/bin/mysql_config
+    ln -sv mariadb $out/lib/mysql
+    ln -sv mariadb $dev/include/mysql
+    ln -sv mariadb_version.h $dev/include/mariadb/mysql_version.h
+    ln -sv libmariadb.pc $dev/lib/pkgconfig/mysqlclient.pc
+    install -Dm644 include/ma_config.h $dev/include/mariadb/my_config.h
+  '';
+
+  meta = {
+    description = "Client library that can be used to connect to MySQL or MariaDB";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ globin ];
+    platforms = platforms.all;
+  };
+}