diff options
Diffstat (limited to 'pkgs/servers/foundationdb/default.nix')
-rw-r--r-- | pkgs/servers/foundationdb/default.nix | 94 |
1 files changed, 55 insertions, 39 deletions
diff --git a/pkgs/servers/foundationdb/default.nix b/pkgs/servers/foundationdb/default.nix index 5ebb510be467..ecefc1d8fabd 100644 --- a/pkgs/servers/foundationdb/default.nix +++ b/pkgs/servers/foundationdb/default.nix @@ -1,17 +1,42 @@ -{ stdenv, fetchurl, fetchFromGitHub +{ stdenv49 +, lib, fetchurl, fetchFromGitHub + , which, findutils, m4, gawk -, python, openjdk, mono58, libressl_2_6 -, boost16x +, python, openjdk, mono58, libressl }: let + # hysterical raisins dictate a version of boost this old. however, + # we luckily do not need to build anything, we just need the header + # files. + boost152 = stdenv49.mkDerivation rec { + name = "boost-headers-1.52.0"; + + src = fetchurl { + url = "mirror://sourceforge/boost/boost_1_52_0.tar.bz2"; + sha256 = "14mc7gsnnahdjaxbbslzk79rc0d12h1i681cd3srdwr3fzynlar2"; + }; + + configurePhase = ":"; + buildPhase = ":"; + installPhase = "mkdir -p $out/include && cp -R boost $out/include/"; + }; + makeFdb = { version , branch - , rev, sha256 + , sha256 + + # the revision can be inferred from the fdb tagging policy + , rev ? "refs/tags/${version}" - # fdb 6.0+ support boost 1.6x+, so default to it - , boost ? boost16x + # in theory newer versions of fdb support newer compilers, but they + # don't :( maybe one day + , stdenv ? stdenv49 + + # in theory newer versions of fdb support newer boost versions, but they + # don't :( maybe one day + , boost ? boost152 }: stdenv.mkDerivation rec { name = "foundationdb-${version}"; inherit version; @@ -23,14 +48,20 @@ let }; nativeBuildInputs = [ gawk which m4 findutils mono58 ]; - buildInputs = [ python openjdk libressl_2_6 boost ]; + buildInputs = [ python openjdk libressl boost ]; patches = - [ ./fix-scm-version.patch - ./ldflags.patch - ]; + [ # For 5.2+, we need a slightly adjusted patch to fix all the ldflags + (if lib.versionAtLeast version "5.2" + then ./ldflags.patch + else ./ldflags-5.1.patch) + ] ++ + # for 6.0+, we do NOT need to apply this version fix, since we can specify + # it ourselves. see configurePhase + (lib.optional (!lib.versionAtLeast version "6.0") ./fix-scm-version.patch); postPatch = '' + # note: this does not do anything for 6.0+ substituteInPlace ./build/scver.mk \ --subst-var-by NIXOS_FDB_VERSION_ID "${rev}" \ --subst-var-by NIXOS_FDB_SCBRANCH "${branch}" @@ -51,7 +82,13 @@ let enableParallelBuilding = true; makeFlags = [ "all" "fdb_c" "fdb_java" "KVRELEASE=1" ]; - configurePhase = ":"; + # on 6.0 and later, we can specify all this information manually + configurePhase = lib.optionalString (lib.versionAtLeast version "6.0") '' + export SOURCE_CONTROL=GIT + export SCBRANCH="${branch}" + export VERSION_ID="${rev}" + ''; + installPhase = '' mkdir -vp $out/{bin,libexec/plugins} $lib/{lib,share/java} $dev/include/foundationdb @@ -85,45 +122,24 @@ let }; }; - # hysterical raisins dictate a version of boost this old. however, - # we luckily do not need to build anything, we just need the header - # files. - boost152 = stdenv.mkDerivation rec { - name = "boost-headers-1.52.0"; - - src = fetchurl { - url = "mirror://sourceforge/boost/boost_1_52_0.tar.bz2"; - sha256 = "14mc7gsnnahdjaxbbslzk79rc0d12h1i681cd3srdwr3fzynlar2"; - }; - - configurePhase = ":"; - buildPhase = ":"; - installPhase = "mkdir -p $out/include && cp -R boost $out/include/"; - }; - in with builtins; { - foundationdb51 = makeFdb { + foundationdb51 = makeFdb rec { version = "5.1.7"; branch = "release-5.1"; - rev = "9ad8d02386d4a6a5efecf898df80f2747695c627"; sha256 = "1rc472ih24f9s5g3xmnlp3v62w206ny0pvvw02bzpix2sdrpbp06"; - boost = boost152; }; foundationdb52 = makeFdb rec { - version = "5.2.0pre1488_${substring 0 8 rev}"; - branch = "master"; - rev = "18f345487ed8d90a5c170d813349fa625cf05b4e"; - sha256 = "0mz30fxj6q99cvjzg39s5zm992i6h2l2cb70lc58bdhsz92dz3vc"; - boost = boost152; + version = "5.2.5"; + branch = "release-5.2"; + sha256 = "00csr4v9cwl9y8r63p73grc6cvhlqmzcniwrf80i0klxv5asg7q7"; }; foundationdb60 = makeFdb rec { - version = "6.0.0pre1636_${substring 0 8 rev}"; + version = "6.0.0pre2227_${substring 0 8 rev}"; branch = "master"; - rev = "1265a7b6d5e632dd562b3012e70f0727979806bd"; - sha256 = "0z1i5bkbszsbn8cc48rlhr29m54n2s0gq3dln0n7f97gf58mi5yf"; + rev = "8caa6eaecf1eeec0298fc77db334761b0c1d1523"; + sha256 = "1q200rpsphl5fzwzp2vk7ifgsnqh95k0xfiicfi1c8253ylnsgll"; }; - } |