Add unfree Oracle instant client and SQLPlus CLI utility.

authored by Paulus Esterhazy and committed by Peter Simons 557c1401 76c34a95

+69
+67
pkgs/development/libraries/oracle-instantclient/default.nix
··· 1 + { stdenv, requireFile, libelf, gcc, glibc, patchelf, unzip, rpmextract, libaio }: 2 + 3 + let requireSource = version: part: hash: (requireFile rec { 4 + name = "oracle-instantclient12.1-${part}-${version}.x86_64.rpm"; 5 + message = '' 6 + This Nix expression requires that ${name} already 7 + be part of the store. Download the file 8 + manually at 9 + 10 + http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 11 + 12 + and add it to the Nix store with the following command: 13 + 14 + nix-prefetch-url file://${name} ${hash} --type sha256 15 + ''; 16 + url = "http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html"; 17 + sha256 = hash; 18 + }); in stdenv.mkDerivation rec { 19 + version = "12.1.0.2.0-1"; 20 + name = "oracle-instantclient-${version}"; 21 + 22 + srcBase = (requireSource version "basic" "f0e51e247cc3f210b950fd939ab1f696de9ca678d1eb179ba49ac73acb9a20ed"); 23 + srcDevel = (requireSource version "devel" "13b638882f07d6cfc06c85dc6b9eb5cac37064d3d594194b6b09d33483a08296"); 24 + srcSqlplus = (requireSource version "sqlplus" "16d87w1lii0ag47c8srnr7v4wfm9q4hy6gka8m3v6gp9cc065vam"); 25 + 26 + buildInputs = [ glibc patchelf rpmextract ]; 27 + 28 + buildCommand = '' 29 + mkdir -p "${name}" 30 + cd "${name}" 31 + ${rpmextract}/bin/rpmextract "${srcBase}" 32 + ${rpmextract}/bin/rpmextract "${srcDevel}" 33 + ${rpmextract}/bin/rpmextract "${srcSqlplus}" 34 + 35 + mkdir -p "$out/"{bin,include,lib,"share/${name}/demo/"} 36 + mv "usr/share/oracle/12.1/client64/demo/"* "$out/share/${name}/demo/" 37 + mv "usr/include/oracle/12.1/client64/"* "$out/include/" 38 + mv "usr/lib/oracle/12.1/client64/lib/"* "$out/lib/" 39 + mv "usr/lib/oracle/12.1/client64/bin/"* "$out/bin/" 40 + ln -s "$out/bin/sqlplus" "$out/bin/sqlplus64" 41 + 42 + for lib in $out/lib/lib*.so; do 43 + test -f $lib || continue 44 + chmod +x $lib 45 + patchelf --force-rpath --set-rpath "$out/lib:${libaio}/lib" \ 46 + $lib 47 + done 48 + 49 + for exe in $out/bin/sqlplus; do 50 + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ 51 + --force-rpath --set-rpath "$out/lib:${libaio}/lib" \ 52 + $exe 53 + done 54 + ''; 55 + 56 + meta = with stdenv.lib; { 57 + description = "Oracle instant client libraries and sqlplus CLI."; 58 + longDescription = '' 59 + Oracle instant client provides access to Oracle databases (OCI, 60 + OCCI, Pro*C, ODBC or JDBC). This package includes the sqlplus 61 + command line SQL client. 62 + ''; 63 + license = licenses.unfree; 64 + platforms = platforms.linux; 65 + maintainers = with maintainers; [ pesterhazy ]; 66 + }; 67 + }
+2
pkgs/top-level/all-packages.nix
··· 623 623 624 624 pass = callPackage ../tools/security/pass { }; 625 625 626 + oracle-instantclient = callPackage ../development/libraries/oracle-instantclient { }; 627 + 626 628 setfile = callPackage ../os-specific/darwin/setfile { }; 627 629 628 630 install_name_tool = callPackage ../os-specific/darwin/install_name_tool { };