biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / mysql-shell / innovation.nix
blob0755b2271c037009b087be82f5d709afe0a09b60
1 { lib
2 , stdenv
3 , pkg-config
4 , cmake
5 , fetchurl
6 , git
7 , cctools
8 , DarwinTools
9 , makeWrapper
10 , CoreServices
11 , bison
12 , openssl
13 , protobuf
14 , curl
15 , zlib
16 , libssh
17 , zstd
18 , lz4
19 , readline
20 , libtirpc
21 , rpcsvc-proto
22 , libedit
23 , libevent
24 , icu
25 , re2
26 , ncurses
27 , libfido2
28 , python3
29 , cyrus_sasl
30 , openldap
31 , antlr
34 let
35   pythonDeps = with python3.pkgs; [ certifi paramiko pyyaml ];
37   mysqlShellVersion = "8.3.0";
38   mysqlServerVersion = "8.3.0";
40 stdenv.mkDerivation (finalAttrs: {
41   pname = "mysql-shell-innovation";
42   version = mysqlShellVersion;
44   srcs = [
45     (fetchurl {
46       url = "https://cdn.mysql.com//Downloads/MySQL-${lib.versions.majorMinor mysqlServerVersion}/mysql-${mysqlServerVersion}.tar.gz";
47       hash = "sha256-HyFJWgt6grJKRT1S4hU6gUs8pwTsz5mXZtVFvOUvOG4=";
48     })
49     (fetchurl {
50       url = "https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-${finalAttrs.version}-src.tar.gz";
51       hash = "sha256-O0j/gvS9fR/xp9plytjj249H7LY/+eyst1IsFpy318U=";
52     })
53   ];
55   sourceRoot = "mysql-shell-${finalAttrs.version}-src";
57   postUnpack = ''
58     mv mysql-${mysqlServerVersion} mysql
59   '';
61   postPatch = ''
62     substituteInPlace ../mysql/cmake/libutils.cmake --replace /usr/bin/libtool libtool
63     substituteInPlace ../mysql/cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
65     substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
66   '';
68   nativeBuildInputs = [ pkg-config cmake git bison makeWrapper ]
69     ++ lib.optionals (!stdenv.isDarwin) [ rpcsvc-proto ]
70     ++ lib.optionals stdenv.isDarwin [ cctools DarwinTools ];
72   buildInputs = [
73     curl
74     libedit
75     libssh
76     lz4
77     openssl
78     protobuf
79     readline
80     zlib
81     zstd
82     libevent
83     icu
84     re2
85     ncurses
86     libfido2
87     cyrus_sasl
88     openldap
89     python3
90     antlr.runtime.cpp
91   ] ++ pythonDeps
92   ++ lib.optionals stdenv.isLinux [ libtirpc ]
93   ++ lib.optionals stdenv.isDarwin [ CoreServices ];
95   preConfigure = ''
96     # Build MySQL
97     echo "Building mysqlclient mysqlxclient"
99     cmake -DWITH_SYSTEM_LIBS=ON -DWITH_FIDO=system -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF \
100       -DFORCE_UNSUPPORTED_COMPILER=1 -S ../mysql -B ../mysql/build
102     cmake --build ../mysql/build --parallel ''${NIX_BUILD_CORES:-1} --target mysqlclient mysqlxclient
103   '';
105   cmakeFlags = [
106     "-DMYSQL_SOURCE_DIR=../mysql"
107     "-DMYSQL_BUILD_DIR=../mysql/build"
108     "-DMYSQL_CONFIG_EXECUTABLE=../../mysql/build/scripts/mysql_config"
109     "-DWITH_ZSTD=system"
110     "-DWITH_LZ4=system"
111     "-DWITH_ZLIB=system"
112     "-DWITH_PROTOBUF=${protobuf}"
113     "-DHAVE_PYTHON=1"
114   ];
116   postFixup = ''
117     wrapProgram $out/bin/mysqlsh --set PYTHONPATH "${lib.makeSearchPath python3.sitePackages pythonDeps}"
118   '';
120   meta = with lib; {
121     homepage = "https://dev.mysql.com/doc/mysql-shell/${lib.versions.majorMinor finalAttrs.version}/en/";
122     description = "A new command line scriptable shell for MySQL";
123     license = licenses.gpl2;
124     maintainers = with maintainers; [ aaronjheng ];
125     mainProgram = "mysqlsh";
126   };