about summary refs log tree commit diff
path: root/pkgs/servers/sql/mariadb/default.nix
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2018-06-12 20:41:41 +0000
committerOrivej Desh <orivej@gmx.fr>2018-06-12 20:41:41 +0000
commit7f3de607584bd21b5b2512e2551a9f13289b2d7a (patch)
tree6e5c9453cf25d10a3e2385a9764807d2c11179a3 /pkgs/servers/sql/mariadb/default.nix
parent2ed34da4cec1656f35d048a5075cf961251a9459 (diff)
parent4d5565e87e134ccdb9e245c1753b086e2b0a20e7 (diff)
downloadnixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar.gz
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar.bz2
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar.lz
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar.xz
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.tar.zst
nixlib-7f3de607584bd21b5b2512e2551a9f13289b2d7a.zip
Merge branch 'master' into staging
* master: (161 commits)
  pcsclite: clean up after #41790
  tor: 0.3.3.6 -> 0.3.3.7
  opae: init at 1.0.0
  tinc: 1.0.33 -> 10.0.34
  tinc_pre: 1.1pre15 -> 1.1pre16
  sit: 0.3.2 -> 0.4.0 (#41863)
  platforms/raspberrypi: enable kernelAutoModules
  libupnp: 1.6.21 -> 1.8.3 (#41684)
  androidStudioPackages.{dev,canary}: 3.2.0.16 -> 3.2.0.17
  tdesktop: 1.3.0 -> 1.3.7
  gns3Packages.{server,gui}{Stable,Preview}: 2.1.6 -> 2.1.7
  aws-sam-cli: init at 0.3.0 (#41877)
  nixos/nat: optional networking.nat.externalInterface (#41864)
  linux: 4.17 -> 4.17.1
  linux: 4.16.14 -> 4.16.15
  linux: 4.14.48 -> 4.14.49
  nixos/unbound: add restart (#41885)
  maintainers/create-azure.sh: remove hydra.nixos.org as binary cache (#41883)
  gshogi: init at 0.5.1 (#41840)
  neovim: add missing libiconv
  ...
Diffstat (limited to 'pkgs/servers/sql/mariadb/default.nix')
-rw-r--r--pkgs/servers/sql/mariadb/default.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 064b6218a05c..4b254262f9f1 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -2,6 +2,7 @@
 , libiconv, openssl, pcre, boost, judy, bison, libxml2
 , libaio, libevent, groff, jemalloc, cracklib, systemd, numactl, perl
 , fixDarwinDylibNames, cctools, CoreServices
+, asio, buildEnv, check, scons
 }:
 
 with stdenv.lib;
@@ -12,6 +13,12 @@ mariadb = everything // {
   inherit client; # libmysqlclient.so in .out, necessary headers in .dev and utils in .bin
   server = everything; # a full single-output build, including everything in `client` again
   inherit connector-c; # libmysqlclient.so
+  inherit galera;
+};
+
+galeraLibs = buildEnv {
+  name = "galera-lib-inputs-united";
+  paths = [ openssl.out boost check ];
 };
 
 common = rec { # attributes common to both builds
@@ -150,6 +157,7 @@ everything = stdenv.mkDerivation (common // {
     "-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1"
     "-DWITHOUT_FEDERATED_STORAGE_ENGINE=1"
     "-DWITH_WSREP=ON"
+    "-DWITH_INNODB_DISALLOW_WRITES=ON"
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     "-DWITHOUT_OQGRAPH_STORAGE_ENGINE=1"
     "-DWITHOUT_TOKUDB=1"
@@ -159,6 +167,8 @@ everything = stdenv.mkDerivation (common // {
     rm -r "$out"/data # Don't need testing data
     rm "$out"/share/man/man1/mysql-test-run.pl.1
     rm "$out"/bin/rcmysql
+  '' + optionalString (! stdenv.isDarwin) ''
+    sed -i 's/-mariadb/-mysql/' "$out"/bin/galera_new_cluster
   '';
 
   CXXFLAGS = optionalString stdenv.isi686 "-fpermissive"
@@ -206,4 +216,52 @@ connector-c = stdenv.mkDerivation rec {
   };
 };
 
+galera = stdenv.mkDerivation rec {
+  name = "mariadb-galera-${version}";
+  version = "25.3.23";
+
+  src = fetchurl {
+    url = "https://mirrors.nxthost.com/mariadb/mariadb-10.2.14/galera-${version}/src/galera-${version}.tar.gz";
+    sha256 = "11pfc85z29jk0h6g6bmi3hdv4in4yb00xsr2r0qm1b0y7m2wq3ra";
+  };
+
+  buildInputs = [ asio boost check openssl scons ];
+
+  patchPhase = ''
+    substituteInPlace SConstruct \
+      --replace "boost_library_path = '''" "boost_library_path = '${boost}/lib'"
+  '';
+
+  preConfigure = ''
+    export CPPFLAGS="-I${asio}/include -I${boost.dev}/include -I${check}/include -I${openssl.dev}/include"
+    export LIBPATH="${galeraLibs}/lib"
+  '';
+
+  buildPhase = ''
+     scons -j$NIX_BUILD_CORES ssl=1 system_asio=1 strict_build_flags=0
+  '';
+
+  installPhase = ''
+    # copied with modifications from scripts/packages/freebsd.sh
+    GALERA_LICENSE_DIR="$share/licenses/${name}"
+    install -d $out/{bin,lib/galera,share/doc/galera,$GALERA_LICENSE_DIR}
+    install -m 555 "garb/garbd"                       "$out/bin/garbd"
+    install -m 444 "libgalera_smm.so"                 "$out/lib/galera/libgalera_smm.so"
+    install -m 444 "scripts/packages/README"          "$out/share/doc/galera/"
+    install -m 444 "scripts/packages/README-MySQL"    "$out/share/doc/galera/"
+    install -m 444 "scripts/packages/freebsd/LICENSE" "$out/$GALERA_LICENSE_DIR"
+    install -m 444 "LICENSE"                          "$out/$GALERA_LICENSE_DIR/GPLv2"
+    install -m 444 "asio/LICENSE_1_0.txt"             "$out/$GALERA_LICENSE_DIR/LICENSE.asio"
+    install -m 444 "www.evanjones.ca/LICENSE"         "$out/$GALERA_LICENSE_DIR/LICENSE.crc32c"
+    install -m 444 "chromium/LICENSE"                 "$out/$GALERA_LICENSE_DIR/LICENSE.chromium"
+  '';
+
+  meta = {
+    description = "Galera 3 wsrep provider library";
+    homepage = http://galeracluster.com/;
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ izorkin ];
+    platforms = platforms.all;
+  };
+};
 in mariadb