{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 # 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; }; }; 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' src = fetchurl { url = "http://ftp.postgresql.org/pub/odbc/versions/src/${name}.tar.gz"; sha256 = "0mh10chkmlppidnmvgbp47v5jnphsrls28zwbvyk2crcn8gdx9q1"; }; meta = { description = "unix odbc driver for postgresql"; homepage = http://pgfoundry.org/projects/psqlodbc/; license = "LGPL"; }; }; 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; }; 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 ]; }; }; ini = "[SQLite]\n" + "Description = SQLite ODBC Driver\n" + "Driver = ${deriv}/lib/libsqlite3odbc.so\n" + "Setup = ${deriv}/lib/libsqlite3odbc.so\n" + "Threading = 2\n"; }; }