linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / unixODBCDrivers / default.nix
blob14f41b015e9c24ae5ba63077f1c74945872ffd53
1 { fetchurl, stdenv, unixODBC, cmake, postgresql, mariadb, sqlite, zlib, libxml2, dpkg, lib, openssl, libkrb5, libuuid, patchelf, libiconv, fetchFromGitHub }:
3 # I haven't done any parameter tweaking.. So the defaults provided here might be bad
6   psql = stdenv.mkDerivation rec {
7     pname = "psqlodbc";
8     version = "10.01.0000";
10     src = fetchurl {
11       url = "http://ftp.postgresql.org/pub/odbc/versions/src/${pname}-${version}.tar.gz";
12       sha256 = "1cyams7157f3gry86x64xrplqi2vyqrq3rqka59gv4lb4rpl7jl7";
13     };
15     buildInputs = [ unixODBC postgresql ];
17     passthru = {
18       fancyName = "PostgreSQL";
19       driver = "lib/psqlodbcw.so";
20     };
22     meta = with lib; {
23       description = "Official PostgreSQL ODBC Driver";
24       homepage =  "https://odbc.postgresql.org/";
25       license = licenses.lgpl2;
26       platforms = platforms.linux;
27     };
28   };
30   mariadb = stdenv.mkDerivation rec {
31     pname = "mariadb-connector-odbc";
32     version = "3.1.4";
34     src = fetchFromGitHub {
35       owner = "MariaDB";
36       repo = "mariadb-connector-odbc";
37       rev = version;
38       sha256 = "1kbz5mng9vx89cw2sx7gsvhbv4h86zwp31fr0hxqing3cwxhkfgw";
39       # this driver only seems to build correctly when built against the mariadb-connect-c subrepo
40       # (see https://github.com/NixOS/nixpkgs/issues/73258)
41       fetchSubmodules = true;
42     };
44     nativeBuildInputs = [ cmake ];
45     buildInputs = [ unixODBC openssl libiconv ];
47     preConfigure = ''
48       # we don't want to build a .pkg
49       sed -i 's/ADD_SUBDIRECTORY(osxinstall)//g' CMakeLists.txt
50     '';
52     cmakeFlags = [
53       "-DWITH_OPENSSL=ON"
54       # on darwin this defaults to ON but we want to build against unixODBC
55       "-DWITH_IODBC=OFF"
56     ];
58     passthru = {
59       fancyName = "MariaDB";
60       driver = if stdenv.isDarwin then "lib/libmaodbc.dylib" else "lib/libmaodbc.so";
61     };
63     meta = with lib; {
64       description = "MariaDB ODBC database driver";
65       homepage =  "https://downloads.mariadb.org/connector-odbc/";
66       license = licenses.gpl2;
67       platforms = platforms.linux ++ platforms.darwin;
68     };
69   };
71   mysql = stdenv.mkDerivation rec {
72     pname = "mysql-connector-odbc";
73     majorVersion = "5.3";
74     version = "${majorVersion}.6";
76     src = fetchurl {
77       url = "https://dev.mysql.com/get/Downloads/Connector-ODBC/${majorVersion}/${pname}-${version}-src.tar.gz";
78       sha256 = "1smi4z49i4zm7cmykjkwlxxzqvn7myngsw5bc35z6gqxmi8c55xr";
79     };
81     nativeBuildInputs = [ cmake ];
82     buildInputs = [ unixODBC mariadb ];
84     cmakeFlags = [ "-DWITH_UNIXODBC=1" ];
86     passthru = {
87       fancyName = "MySQL";
88       driver = "lib/libmyodbc3-3.51.12.so";
89     };
91     meta = with lib; {
92       description = "MariaDB ODBC database driver";
93       homepage = "https://dev.mysql.com/downloads/connector/odbc/";
94       license = licenses.gpl2;
95       platforms = platforms.linux;
96       broken = true;
97     };
98   };
100   sqlite = stdenv.mkDerivation rec {
101     pname = "sqlite-connector-odbc";
102     version = "0.9993";
104     src = fetchurl {
105       url = "http://www.ch-werner.de/sqliteodbc/sqliteodbc-${version}.tar.gz";
106       sha256 = "0dgsj28sc7f7aprmdd0n5a1rmcx6pv7170c8dfjl0x1qsjxim6hs";
107     };
109     buildInputs = [ unixODBC sqlite zlib libxml2 ];
111     configureFlags = [ "--with-odbc=${unixODBC}" "--with-sqlite3=${sqlite.dev}" ];
113     installTargets = [ "install-3" ];
115     # move libraries to $out/lib where they're expected to be
116     postInstall = ''
117       mkdir -p "$out/lib"
118       mv "$out"/*.* "$out/lib"
119     '';
121     passthru = {
122       fancyName = "SQLite";
123       driver = "lib/libsqlite3odbc.so";
124     };
126     meta = with lib; {
127       description = "ODBC driver for SQLite";
128       homepage = "http://www.ch-werner.de/sqliteodbc";
129       license = licenses.bsd2;
130       platforms = platforms.linux;
131       maintainers = with maintainers; [ vlstill ];
132     };
133   };
135   msodbcsql17 = stdenv.mkDerivation rec {
136     pname = "msodbcsql17";
137     version = "${versionMajor}.${versionMinor}.${versionAdditional}-1";
139     versionMajor = "17";
140     versionMinor = "7";
141     versionAdditional = "1.1";
143     src = fetchurl {
144       url = "https://packages.microsoft.com/debian/10/prod/pool/main/m/msodbcsql17/msodbcsql${versionMajor}_${version}_amd64.deb";
145       sha256 = "0vwirnp56jibm3qf0kmi4jnz1w7xfhnsfr8imr0c9hg6av4sk3a6";
146     };
148     nativeBuildInputs = [ dpkg patchelf ];
150     unpackPhase = "dpkg -x $src ./";
151     buildPhase = "";
153     installPhase = ''
154       mkdir -p $out
155       mkdir -p $out/lib
156       cp -r opt/microsoft/msodbcsql${versionMajor}/lib64 opt/microsoft/msodbcsql${versionMajor}/share $out/
157     '';
159     postFixup = ''
160       patchelf --set-rpath ${lib.makeLibraryPath [ unixODBC openssl.out libkrb5 libuuid stdenv.cc.cc ]} \
161         $out/lib/libmsodbcsql-${versionMajor}.${versionMinor}.so.${versionAdditional}
162     '';
164     passthru = {
165       fancyName = "ODBC Driver 17 for SQL Server";
166       driver = "lib/libmsodbcsql-${versionMajor}.${versionMinor}.so.${versionAdditional}";
167     };
169     meta = with lib; {
170       description = "ODBC Driver 17 for SQL Server";
171       homepage = "https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017";
172       license = licenses.unfree;
173       platforms = platforms.linux;
174       maintainers = with maintainers; [ spencerjanssen ];
175     };
176   };