foundationdb: add 5.2.5 release, and new 6.0.0 snapshot

This requires a bit of fiddling with the ldflags patches and reworking a few
things about how the SCM info is configured. Ideally, not much more will change
before the 6.0 release, I think...

This also upgrades all FoundationDB packages to use the ordinary libressl
expression (which is now at 2.7.x), and changes around a few other things,
which will require a rebuild.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
Austin Seipp
2018-07-02 06:48:41 -05:00
parent b43c4d8b75
commit 1fa2503f9d
4 changed files with 155 additions and 47 deletions
+55 -39
View File
@@ -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
# fdb 6.0+ support boost 1.6x+, so default to it
, boost ? boost16x
# the revision can be inferred from the fdb tagging policy
, rev ? "refs/tags/${version}"
# 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";
};
}