28b6fb61e6
This is done for the sake of Yosemite, which does not have gcc, and yet this change is also compatible with Linux.
84 lines
2.2 KiB
Nix
84 lines
2.2 KiB
Nix
{ stdenv, makeWrapper, requireFile, patchelf, rpmextract, libaio }:
|
|
|
|
assert stdenv.system == "x86_64-linux";
|
|
|
|
with stdenv.lib;
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "oracle-xe-${version}";
|
|
version = "11.2.0";
|
|
|
|
src = requireFile {
|
|
name = "${name}-1.0.x86_64.rpm";
|
|
sha256 = "0s2jj2xn56v5ys6hxb7l7045hw9c1mm1lhj4p2fvqbs02kqchab6";
|
|
|
|
url = "http://www.oracle.com/technetwork/"
|
|
+ "products/express-edition/downloads/";
|
|
};
|
|
|
|
buildInputs = [ makeWrapper ];
|
|
|
|
unpackCmd = ''
|
|
(mkdir -p "${name}" && cd "${name}" &&
|
|
${rpmextract}/bin/rpmextract "$curSrc")
|
|
'';
|
|
|
|
buildPhase = let
|
|
libs = makeLibraryPath [ libaio ];
|
|
in ''
|
|
basedir="u01/app/oracle/product/${version}/xe"
|
|
cat > "$basedir/network/admin/listener.ora" <<SQL
|
|
# listener.ora Network Configuration File:
|
|
|
|
SID_LIST_LISTENER =
|
|
(SID_LIST =
|
|
(SID_DESC =
|
|
(SID_NAME = PLSExtProc)
|
|
(ORACLE_HOME = ''${out}/libexec/oracle)
|
|
(PROGRAM = extproc)
|
|
)
|
|
)
|
|
|
|
LISTENER =
|
|
(DESCRIPTION_LIST =
|
|
(DESCRIPTION =
|
|
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
|
|
(ADDRESS = (PROTOCOL = TCP)(HOST = %hostname%)(PORT = %port%))
|
|
)
|
|
)
|
|
|
|
DEFAULT_SERVICE_LISTENER = (XE)
|
|
SQL
|
|
|
|
find u01 \
|
|
\( -name '*.sh' \
|
|
-o -path "$basedir/bin/*" \
|
|
\) -print -exec "${patchelf}/bin/patchelf" \
|
|
--interpreter "$(cat "$NIX_CC/nix-support/dynamic-linker")" \
|
|
--set-rpath "${libs}:$out/libexec/oracle/lib" \
|
|
--force-rpath '{}' \;
|
|
'';
|
|
|
|
dontStrip = true;
|
|
dontPatchELF = true;
|
|
|
|
installPhase = ''
|
|
mkdir -p "$out/libexec"
|
|
cp -r "u01/app/oracle/product/${version}/xe" "$out/libexec/oracle"
|
|
|
|
for i in "$out/libexec/oracle/bin"/*; do
|
|
makeWrapper "$i" "$out/bin/''${i##*/}" \
|
|
--set ORACLE_HOME "$out/libexec/oracle" \
|
|
--set ORACLE_SID XE \
|
|
--set NLS_LANG '$("'"$out"'/libexec/oracle/bin/nls_lang.sh")' \
|
|
--prefix PATH : "$out/libexec/oracle/bin"
|
|
done
|
|
'';
|
|
|
|
meta = {
|
|
description = "Oracle Database Express Edition";
|
|
homepage = "http://www.oracle.com/technetwork/products/express-edition/";
|
|
license = licenses.unfree;
|
|
};
|
|
}
|