summary refs log blame commit diff
path: root/pkgs/development/libraries/unixODBCDrivers/default.nix
blob: d3a2debbd121d8f95d942ea696c72208dd0a128b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                                                       









                                                                                    
                                                                                      












                                                                                                             
                                             





                             

                                    




                                                          
                                                                                    
                    

                                                                             






                                                            
       














                                                                                                                 

                                                                          









                                                                
               



                                                
                      

                                                                                
        


                               
                                                                          
 
                                                               
                      


                                 

         
              




                                                               








                                                            
 
{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";
 };
}