diff --git a/pkgs/servers/foundationdb/default.nix b/pkgs/servers/foundationdb/default.nix index ecefc1d8fabd..461b90bc978c 100644 --- a/pkgs/servers/foundationdb/default.nix +++ b/pkgs/servers/foundationdb/default.nix @@ -53,7 +53,9 @@ let patches = [ # For 5.2+, we need a slightly adjusted patch to fix all the ldflags (if lib.versionAtLeast version "5.2" - then ./ldflags.patch + then (if lib.versionAtLeast version "6.0" + then ./ldflags-6.0.patch + else ./ldflags-5.2.patch) else ./ldflags-5.1.patch) ] ++ # for 6.0+, we do NOT need to apply this version fix, since we can specify @@ -77,10 +79,20 @@ let --replace 'exit 1' '#exit 1' patchShebangs . + '' + lib.optionalString (lib.versionAtLeast version "6.0") '' + substituteInPlace ./Makefile \ + --replace 'TLS_LIBS +=' '#TLS_LIBS +=' \ + --replace 'LDFLAGS :=' 'LDFLAGS := -ltls -lssl -lcrypto' ''; enableParallelBuilding = true; - makeFlags = [ "all" "fdb_c" "fdb_java" "KVRELEASE=1" ]; + + makeFlags = [ "all" "fdb_java" ] + # Don't compile FDBLibTLS if we don't need it in 6.0 or later; + # it gets statically linked in + ++ lib.optional (!lib.versionAtLeast version "6.0") [ "fdb_c" ] + # Needed environment overrides + ++ [ "KVRELEASE=1" ]; # on 6.0 and later, we can specify all this information manually configurePhase = lib.optionalString (lib.versionAtLeast version "6.0") '' @@ -93,7 +105,9 @@ let mkdir -vp $out/{bin,libexec/plugins} $lib/{lib,share/java} $dev/include/foundationdb cp -v ./lib/libfdb_c.so $lib/lib + '' + lib.optionalString (!lib.versionAtLeast version "6.0") '' cp -v ./lib/libFDBLibTLS.so $out/libexec/plugins/FDBLibTLS.so + '' + '' cp -v ./bindings/c/foundationdb/fdb_c.h $dev/include/foundationdb cp -v ./bindings/c/foundationdb/fdb_c_options.g.h $dev/include/foundationdb @@ -131,15 +145,16 @@ in with builtins; { }; foundationdb52 = makeFdb rec { - version = "5.2.5"; + version = "5.2.6"; branch = "release-5.2"; - sha256 = "00csr4v9cwl9y8r63p73grc6cvhlqmzcniwrf80i0klxv5asg7q7"; + rev = "refs/tags/v5.2.6"; # seemed to be tagged incorrectly + sha256 = "1q3lq1hqq0f53n51gd4cw5cpayyw65dmkfplhsw1m5mghymzmskk"; }; foundationdb60 = makeFdb rec { - version = "6.0.0pre2227_${substring 0 8 rev}"; - branch = "master"; - rev = "8caa6eaecf1eeec0298fc77db334761b0c1d1523"; - sha256 = "1q200rpsphl5fzwzp2vk7ifgsnqh95k0xfiicfi1c8253ylnsgll"; + version = "6.0.2pre2430_${substring 0 8 rev}"; + branch = "release-6.0"; + rev = "7938d247a5eaf886a176575de6592b76374df58c"; + sha256 = "0g8h2zs0f3aacs7x4hyjh0scybv33gjj6dqfb789h4n6r4gd7d9h"; }; } diff --git a/pkgs/servers/foundationdb/ldflags.patch b/pkgs/servers/foundationdb/ldflags-5.2.patch similarity index 100% rename from pkgs/servers/foundationdb/ldflags.patch rename to pkgs/servers/foundationdb/ldflags-5.2.patch diff --git a/pkgs/servers/foundationdb/ldflags-6.0.patch b/pkgs/servers/foundationdb/ldflags-6.0.patch new file mode 100644 index 000000000000..1fa17a9615aa --- /dev/null +++ b/pkgs/servers/foundationdb/ldflags-6.0.patch @@ -0,0 +1,78 @@ +diff --git a/bindings/c/local.mk b/bindings/c/local.mk +index c861a29c..ff886e93 100644 +--- a/bindings/c/local.mk ++++ b/bindings/c/local.mk +@@ -30,8 +30,8 @@ fdb_c_tests_HEADERS := -Ibindings/c + CLEAN_TARGETS += fdb_c_tests_clean + + ifeq ($(PLATFORM),linux) +- fdb_c_LIBS += lib/libstdc++.a -lm -lpthread -lrt -ldl +- fdb_c_LDFLAGS += -Wl,--version-script=bindings/c/fdb_c.map -static-libgcc -Wl,-z,nodelete ++ fdb_c_LIBS += lib/libstdc++.a ++ fdb_c_LDFLAGS += -Wl,--version-script=bindings/c/fdb_c.map -static-libgcc -Wl,-z,nodelete -lm -lpthread -lrt -ldl + fdb_c_tests_LIBS += -lpthread + endif + +diff --git a/bindings/flow/tester/local.mk b/bindings/flow/tester/local.mk +index 2ef4fcb7..6e59625c 100644 +--- a/bindings/flow/tester/local.mk ++++ b/bindings/flow/tester/local.mk +@@ -35,8 +35,7 @@ _fdb_flow_tester_clean: + @rm -rf bindings/flow/bin + + ifeq ($(PLATFORM),linux) +- fdb_flow_tester_LIBS += -ldl -lpthread -lrt +- fdb_flow_tester_LDFLAGS += -static-libstdc++ -static-libgcc ++ fdb_flow_tester_LDFLAGS += -static-libstdc++ -static-libgcc -ldl -lpthread -lrt + else ifeq ($(PLATFORM),osx) + fdb_flow_tester_LDFLAGS += -lc++ + endif +diff --git a/fdbbackup/local.mk b/fdbbackup/local.mk +index ca5dbab6..012f0130 100644 +--- a/fdbbackup/local.mk ++++ b/fdbbackup/local.mk +@@ -26,8 +26,7 @@ fdbbackup_LIBS := lib/libfdbclient.a lib/libfdbrpc.a lib/libflow.a $(FDB_TLS_LIB + fdbbackup_STATIC_LIBS := $(TLS_LIBS) + + ifeq ($(PLATFORM),linux) +- fdbbackup_LIBS += -ldl -lpthread -lrt +- fdbbackup_LDFLAGS += -static-libstdc++ -static-libgcc ++ fdbbackup_LDFLAGS += -static-libstdc++ -static-libgcc -ldl -lpthread -lrt + + # GPerfTools profiler (uncomment to use) + # fdbbackup_CFLAGS += -I/opt/gperftools/include -DUSE_GPERFTOOLS=1 +diff --git a/fdbcli/local.mk b/fdbcli/local.mk +index fd738876..3af026b9 100644 +--- a/fdbcli/local.mk ++++ b/fdbcli/local.mk +@@ -22,14 +22,13 @@ + + fdbcli_CFLAGS := $(fdbclient_CFLAGS) + fdbcli_LDFLAGS := $(fdbrpc_LDFLAGS) +-fdbcli_LIBS := lib/libfdbclient.a lib/libfdbrpc.a lib/libflow.a -ldl $(FDB_TLS_LIB) ++fdbcli_LIBS := lib/libfdbclient.a lib/libfdbrpc.a lib/libflow.a $(FDB_TLS_LIB) + fdbcli_STATIC_LIBS := $(TLS_LIBS) + + fdbcli_GENERATED_SOURCES += versions.h + + ifeq ($(PLATFORM),linux) +- fdbcli_LDFLAGS += -static-libstdc++ -static-libgcc +- fdbcli_LIBS += -lpthread -lrt ++ fdbcli_LDFLAGS += -static-libstdc++ -static-libgcc -lpthread -lrt -ldl + else ifeq ($(PLATFORM),osx) + fdbcli_LDFLAGS += -lc++ + endif +diff --git a/fdbserver/local.mk b/fdbserver/local.mk +index 690916d0..475abbaf 100644 +--- a/fdbserver/local.mk ++++ b/fdbserver/local.mk +@@ -26,8 +26,7 @@ fdbserver_LIBS := lib/libfdbclient.a lib/libfdbrpc.a lib/libflow.a $(FDB_TLS_LIB + fdbserver_STATIC_LIBS := $(TLS_LIBS) + + ifeq ($(PLATFORM),linux) +- fdbserver_LIBS += -ldl -lpthread -lrt +- fdbserver_LDFLAGS += -static-libstdc++ -static-libgcc ++ fdbserver_LDFLAGS += -static-libstdc++ -static-libgcc -ldl -lpthread -lrt + + # GPerfTools profiler (uncomment to use) + # fdbserver_CFLAGS += -I/opt/gperftools/include -DUSE_GPERFTOOLS=1