summary refs log tree commit diff
path: root/pkgs/development/libraries/unixODBCDrivers
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-04-26 21:18:01 +0300
committerNikolay Amiantov <ab@fmap.me>2016-04-26 21:18:01 +0300
commit1a3f7d553d4b5fe78f5f186a08ded841a85c45a1 (patch)
tree3a7143ae1bc59b392e2674be912d2a8da9e7e87b /pkgs/development/libraries/unixODBCDrivers
parent45aaea24faa8a64baaa7e17d477bb2388f9b20a0 (diff)
downloadnixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar.gz
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar.bz2
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar.lz
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar.xz
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.tar.zst
nixpkgs-1a3f7d553d4b5fe78f5f186a08ded841a85c45a1.zip
unixODBCDrivers: update and refactor, mark mysql packages as broken
Diffstat (limited to 'pkgs/development/libraries/unixODBCDrivers')
-rw-r--r--pkgs/development/libraries/unixODBCDrivers/default.nix223
1 files changed, 119 insertions, 104 deletions
diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix
index d3a2debbd12..80b39bd4cab 100644
--- a/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -1,115 +1,130 @@
-{fetchurl, stdenv, unixODBC, glibc, libtool, openssl, zlib, postgresql, mysql, sqlite}:
-# each attr contains the name deriv referencing the derivation and ini which
-# evaluates to a string which can be appended to the global unix odbc ini file
-# to register the driver
+{ fetchurl, stdenv, unixODBC, cmake, postgresql, mysql55, mariadb, sqlite, zlib, libxml2 }:
+
 # I haven't done any parameter tweaking.. So the defaults provided here might be bad
+
 {
-# new postgres connector library (doesn't work yet)
-  psqlng = rec {
-    deriv = stdenv.mkDerivation {
-      name = "unix-odbc-pg-odbcng-0.90.101";
-      buildInputs = [ unixODBC glibc libtool postgresql ];
-      # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose'
-      preConfigure="
-        export CPPFLAGS=-I${unixODBC}/include
-        export LDFLAGS='-L${unixODBC}/lib -lltdl'
-      ";
-      src = fetchurl {
-        # using my mirror because original url is https
-        # https://projects.commandprompt.com/public/odbcng/attachment/wiki/Downloads/odbcng-0.90.101.tar.gz";
-        url = http://mawercer.de/~publicrepos/odbcng-0.90.101.tar.gz;
-        sha256 = "13z3sify4z2jcil379704w0knkpflg6di4jh6zx1x2gdgzydxa1y";
-      };
-      meta = {
-          description = "unix odbc driver for postgresql";
-          homepage = https://projects.commandprompt.com/public/odbcng;
-          license = stdenv.lib.licenses.gpl2;
-      };
+  psql = stdenv.mkDerivation rec {
+    name = "psqlodbc-${version}";
+    version = "09.05.0210";
+
+    src = fetchurl {
+      url = "http://ftp.postgresql.org/pub/odbc/versions/src/${name}.tar.gz";
+      sha256 = "0317zrxaiy209xzcc6b5sz6hsyiv4zm74iikp91rgz7z3ll4n4dc";
+    };
+
+    buildInputs = [ unixODBC postgresql ];
+
+    passthru = {
+      fancyName = "PostgreSQL";
+      driver = "lib/psqlodbcw.so";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Official PostgreSQL ODBC Driver";
+      homepage =  https://odbc.postgresql.org/;
+      license = licenses.lgpl2;
+      platforms = platforms.linux;
     };
-    ini = "";
   };
-# official postgres connector
- psql = rec {
-   deriv = stdenv.mkDerivation rec {
-    name = "psqlodbc-09.03.0100";
-    buildInputs = [ unixODBC libtool postgresql openssl ];
-    preConfigure="
-      export CPPFLAGS=-I${unixODBC}/include
-      export LDFLAGS='-L${unixODBC}/lib -lltdl'
-    ";
-    # added -ltdl to resolve missing references `dlsym' `dlerror' `dlopen' `dlclose'
+
+  mariadb = stdenv.mkDerivation rec {
+    name = "mariadb-connector-odbc-${version}";
+    version = "2.0.10";
+
     src = fetchurl {
-      url = "http://ftp.postgresql.org/pub/odbc/versions/src/${name}.tar.gz";
-      sha256 = "0mh10chkmlppidnmvgbp47v5jnphsrls28zwbvyk2crcn8gdx9q1";
+      url = "https://downloads.mariadb.org/interstitial/connector-odbc-${version}/src/${name}-ga-src.tar.gz";
+      sha256 = "0b6ximy0dg0xhqbrm1l7pn8hjapgpmddi67kh54h6i9cq9hqfdvz";
+    };
+
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ unixODBC mariadb ];
+
+    cmakeFlags = [
+      "-DMARIADB_INCLUDE_DIR=${mariadb.lib}/include/mysql"
+    ];
+
+    preConfigure = ''
+      sed -i \
+        -e 's,mariadb_config,mysql_config,g' \
+        -e 's,libmariadbclient,libmysqlclient,g' \
+        cmake/FindMariaDB.cmake
+    '';
+
+    passthru = {
+      fancyName = "MariaDB";
+      driver = "lib/libmyodbc3-3.51.12.so";
     };
-    meta = {
-        description = "unix odbc driver for postgresql";
-        homepage =  http://pgfoundry.org/projects/psqlodbc/;
-        license = "LGPL";
+
+    meta = with stdenv.lib; {
+      description = "MariaDB ODBC database driver";
+      homepage =  https://downloads.mariadb.org/connector-odbc/;
+      license = licenses.gpl2;
+      platforms = platforms.linux;
+      broken = true;
+    };
+  };
+
+  mysql = stdenv.mkDerivation rec {
+    name = "mysql-connector-odbc-${version}";
+    majorVersion = "5.3";
+    version = "${majorVersion}.6";
+
+    src = fetchurl {
+      url = "https://dev.mysql.com/get/Downloads/Connector-ODBC/${majorVersion}/${name}-src.tar.gz";
+      sha256 = "1smi4z49i4zm7cmykjkwlxxzqvn7myngsw5bc35z6gqxmi8c55xr";
+    };
+
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ unixODBC mysql55 ];
+
+    cmakeFlags = [ "-DWITH_UNIXODBC=1" ];
+
+    passthru = {
+      fancyName = "MySQL";
+      driver = "lib/libmyodbc3-3.51.12.so";
+    };
+
+    meta = with stdenv.lib; {
+      description = "MariaDB ODBC database driver";
+      homepage = https://dev.mysql.com/downloads/connector/odbc/;
+      license = licenses.gpl2;
+      platforms = platforms.linux;
+      broken = true;
     };
   };
-  ini =
-    "[PostgreSQL]\n" +
-    "Description     = official PostgreSQL driver for Linux & Win32\n" +
-    "Driver          = ${deriv}/lib/psqlodbcw.so\n" +
-    "Threading       = 2\n";
- };
-# mysql connector
- mysql = rec {
-    libraries = ["lib/libmyodbc3-3.51.12.so"];
-    deriv = stdenv.mkDerivation {
-      name = "mysql-connector-odbc-3.51.12";
-      src = fetchurl {
-        url = http://ftp.snt.utwente.nl/pub/software/mysql/Downloads/MyODBC3/mysql-connector-odbc-3.51.12.tar.gz;
-        md5 = "a484f590464fb823a8f821b2f1fd7fef";
-      };
-      configureFlags = "--disable-gui"
-         +  " --with-mysql-path=${mysql.lib} --with-unixODBC=${unixODBC}";
-      buildInputs = [ libtool zlib ];
-      inherit mysql unixODBC;
+
+  sqlite = stdenv.mkDerivation rec {
+    name = "sqlite-connector-odbc-${version}";
+    version = "0.9993";
+ 
+    src = fetchurl {
+      url = "http://www.ch-werner.de/sqliteodbc/sqliteodbc-${version}.tar.gz";
+      sha256 = "0dgsj28sc7f7aprmdd0n5a1rmcx6pv7170c8dfjl0x1qsjxim6hs";
     };
-    ini =
-      "[MYSQL]\n" +
-      "Description     = MySQL driver\n" +
-      "Driver          = ${deriv}/lib/libmyodbc3-3.51.12.so\n" +
-      "CPTimeout       = \n" +
-      "CPReuse         = \n" +
-      "FileUsage       = 3\n ";
- };
- sqlite = rec {
-    deriv = let version = "0.995"; in
-    stdenv.mkDerivation {
-      name = "sqlite-connector-odbc-${version}";
-
-      src = fetchurl {
-        url = "http://www.ch-werner.de/sqliteodbc/sqliteodbc-${version}.tar.gz";
-        sha256 = "1r97fw6xy5w2f8c0ii7blfqfi6salvd3k8wnxpx9wqc1gxk8jnyy";
-      };
-
-      buildInputs = [ sqlite ];
-
-      configureFlags = "--with-sqlite3=${sqlite} --with-odbc=${unixODBC}";
-
-      # move libraries to $out/lib where they're expected to be
-      postInstall = ''
-        mkdir -p "$out/lib"
-        mv "$out"/*.so "$out/lib"
-        mv "$out"/*.la "$out/lib"
-      '';
-
-      meta = {
-        description = "ODBC driver for SQLite";
-        homepage = http://www.ch-werner.de/sqliteodbc;
-        license = stdenv.lib.licenses.bsd2;
-        platforms = stdenv.lib.platforms.linux;
-        maintainers = with stdenv.lib.maintainers; [ vlstill ];
-      };
+ 
+    buildInputs = [ unixODBC sqlite zlib libxml2 ];
+ 
+    configureFlags = [ "--with-odbc=${unixODBC}" ];
+ 
+    installTargets = [ "install-3" ];
+
+    # move libraries to $out/lib where they're expected to be
+    postInstall = ''
+      mkdir -p "$out/lib"
+      mv "$out"/*.* "$out/lib"
+    '';
+ 
+    passthru = {
+      fancyName = "SQLite";
+      driver = "lib/libsqlite3odbc.so";
+    };
+
+    meta = with stdenv.lib; {
+      description = "ODBC driver for SQLite";
+      homepage = http://www.ch-werner.de/sqliteodbc;
+      license = licenses.bsd2;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ vlstill ];
     };
-    ini =
-      "[SQLite]\n" +
-      "Description     = SQLite ODBC Driver\n" +
-      "Driver          = ${deriv}/lib/libsqlite3odbc.so\n" +
-      "Setup           = ${deriv}/lib/libsqlite3odbc.so\n" +
-      "Threading       = 2\n";
- };
+  };
 }