Loading pkgs/servers/foundationdb/patches/disable-flowbench.patch→pkgs/by-name/fo/foundationdb/disable-flowbench.patch +0 −0 File moved. View file pkgs/servers/foundationdb/patches/don-t-use-static-boost-libs.patch→pkgs/by-name/fo/foundationdb/don-t-use-static-boost-libs.patch +0 −0 File moved. View file pkgs/by-name/fo/foundationdb/package.nix 0 → 100644 +175 −0 Original line number Diff line number Diff line { stdenv, fetchFromGitHub, lib, fetchpatch, cmake, ninja, python3, openjdk, mono, openssl, boost186, pkg-config, msgpack-cxx, toml11, jemalloc, doctest, }: let boost = boost186; # Only even numbered versions compile on aarch64; odd numbered versions have avx enabled. avxEnabled = version: let isOdd = n: lib.trivial.mod n 2 != 0; patch = lib.toInt (lib.versions.patch version); in isOdd patch; in stdenv.mkDerivation rec { name = "foundationdb"; version = "7.3.42"; src = fetchFromGitHub { owner = "apple"; repo = "foundationdb"; tag = version; hash = "sha256-jQcm+HLai5da2pZZ7iLdN6fpQZxf5+/kkfv9OSXQ57c="; }; patches = [ ./disable-flowbench.patch ./don-t-use-static-boost-libs.patch # GetMsgpack: add 4+ versions of upstream # https://github.com/apple/foundationdb/pull/10935 (fetchpatch { url = "https://github.com/apple/foundationdb/commit/c35a23d3f6b65698c3b888d76de2d93a725bff9c.patch"; hash = "sha256-bneRoZvCzJp0Hp/G0SzAyUyuDrWErSpzv+ickZQJR5w="; }) # Add a dependency that prevents bindingtester to run before the python bindings are generated # https://github.com/apple/foundationdb/pull/11859 (fetchpatch { url = "https://github.com/apple/foundationdb/commit/8d04c97a74c6b83dd8aa6ff5af67587044c2a572.patch"; hash = "sha256-ZLIcmcfirm1+96DtTIr53HfM5z38uTLZrRNHAmZL6rc="; }) ]; hardeningDisable = [ "fortify" ]; postPatch = '' # allow using any msgpack-cxx version substituteInPlace cmake/GetMsgpack.cmake \ --replace-warn 'find_package(msgpack-cxx 6 QUIET CONFIG)' 'find_package(msgpack-cxx QUIET CONFIG)' # Use our doctest package substituteInPlace bindings/c/test/unit/third_party/CMakeLists.txt \ --replace-fail '/opt/doctest_proj_2.4.8' '${doctest}/include' # Upstream upgraded to Boost 1.86 with no code changes; see: # <https://github.com/apple/foundationdb/pull/11788> substituteInPlace cmake/CompileBoost.cmake \ --replace-fail 'find_package(Boost 1.78.0 EXACT ' 'find_package(Boost ' ''; buildInputs = [ boost jemalloc msgpack-cxx openssl toml11 ]; checkInputs = [ doctest ]; nativeBuildInputs = [ cmake mono ninja openjdk pkg-config python3 ]; separateDebugInfo = true; dontFixCmake = true; cmakeFlags = [ "-DFDB_RELEASE=TRUE" # Disable CMake warnings for project developers. "-Wno-dev" # CMake Error at fdbserver/CMakeLists.txt:332 (find_library): # > Could not find lz4_STATIC_LIBRARIES using the following names: liblz4.a "-DSSD_ROCKSDB_EXPERIMENTAL=FALSE" "-DBUILD_DOCUMENTATION=FALSE" # LTO brings up overall build time, but results in much smaller # binaries for all users and the cache. "-DUSE_LTO=ON" # Gold helps alleviate the link time, especially when LTO is # enabled. But even then, it still takes a majority of the time. "-DUSE_LD=GOLD" # FIXME: why can't openssl be found automatically? "-DOPENSSL_USE_STATIC_LIBS=FALSE" "-DOPENSSL_CRYPTO_LIBRARY=${openssl.out}/lib/libcrypto.so" "-DOPENSSL_SSL_LIBRARY=${openssl.out}/lib/libssl.so" ]; # the install phase for cmake is pretty wonky right now since it's not designed to # coherently install packages as most linux distros expect -- it's designed to build # packaged artifacts that are shipped in RPMs, etc. we need to add some extra code to # cmake upstream to fix this, and if we do, i think most of this can go away. postInstall = '' mv $out/sbin/fdbmonitor $out/bin/fdbmonitor mkdir $out/libexec && mv $out/usr/lib/foundationdb/backup_agent/backup_agent $out/libexec/backup_agent mv $out/sbin/fdbserver $out/bin/fdbserver rm -rf $out/etc $out/lib/foundationdb $out/lib/systemd $out/log $out/sbin $out/usr $out/var # move results into multi outputs mkdir -p $dev $lib mv $out/include $dev/include mv $out/lib $lib/lib # python bindings # NB: use the original setup.py.in, so we can substitute VERSION correctly cp ../LICENSE ./bindings/python substitute ../bindings/python/setup.py.in ./bindings/python/setup.py \ --replace 'VERSION' "${version}" rm -f ./bindings/python/setup.py.* ./bindings/python/CMakeLists.txt rm -f ./bindings/python/fdb/*.pth # remove useless files rm -f ./bindings/python/*.rst ./bindings/python/*.mk cp -R ./bindings/python/ tmp-pythonsrc/ tar -zcf $pythonsrc --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/ # java bindings mkdir -p $lib/share/java mv lib/fdb-java-*.jar $lib/share/java/fdb-java.jar ''; outputs = [ "out" "dev" "lib" "pythonsrc" ]; meta = { description = "Open source, distributed, transactional key-value store"; homepage = "https://www.foundationdb.org"; license = lib.licenses.asl20; platforms = [ "x86_64-linux" ] ++ lib.optionals (!(avxEnabled version)) [ "aarch64-linux" ]; # Fails when cross-compiling with "/bin/sh: gcc-ar: not found" broken = stdenv.buildPlatform != stdenv.hostPlatform; maintainers = with lib.maintainers; [ thoughtpolice lostnet ]; }; } pkgs/servers/foundationdb/python.nix→pkgs/development/python-modules/foundationdb/default.nix +3 −3 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ buildPythonPackage { doCheck = false; meta = with lib; { meta = { description = "Python bindings for FoundationDB"; homepage = "https://www.foundationdb.org"; license = with licenses; [ asl20 ]; maintainers = with maintainers; [ thoughtpolice ]; license = with lib.licenses; [ asl20 ]; maintainers = with lib.maintainers; [ thoughtpolice ]; }; } pkgs/servers/foundationdb/cmake.nixdeleted 100644 → 0 +0 −178 Original line number Diff line number Diff line # This builder is for FoundationDB CMake build system. { lib, fetchFromGitHub, cmake, ninja, python3, openjdk, mono, pkg-config, msgpack-cxx, toml11, jemalloc, doctest, gccStdenv, llvmPackages, useClang ? false, ... }: let stdenv = if useClang then llvmPackages.libcxxStdenv else gccStdenv; # Only even numbered versions compile on aarch64; odd numbered versions have avx enabled. avxEnabled = version: let isOdd = n: lib.trivial.mod n 2 != 0; patch = lib.toInt (lib.versions.patch version); in isOdd patch; makeFdb = { version, hash, rev ? "refs/tags/${version}", officialRelease ? true, patches ? [ ], boost, ssl, }: stdenv.mkDerivation { pname = "foundationdb"; inherit version; src = fetchFromGitHub { owner = "apple"; repo = "foundationdb"; inherit rev hash; }; buildInputs = [ ssl boost msgpack-cxx toml11 jemalloc ]; checkInputs = [ doctest ]; nativeBuildInputs = [ pkg-config cmake ninja python3 openjdk mono ] ++ lib.optionals useClang [ llvmPackages.lld ]; separateDebugInfo = true; dontFixCmake = true; cmakeFlags = [ (lib.optionalString officialRelease "-DFDB_RELEASE=TRUE") # Disable CMake warnings for project developers. "-Wno-dev" # CMake Error at fdbserver/CMakeLists.txt:332 (find_library): # > Could not find lz4_STATIC_LIBRARIES using the following names: liblz4.a "-DSSD_ROCKSDB_EXPERIMENTAL=FALSE" "-DBUILD_DOCUMENTATION=FALSE" # LTO brings up overall build time, but results in much smaller # binaries for all users and the cache. (lib.optionalString (!useClang) "-DUSE_LTO=ON") # Gold helps alleviate the link time, especially when LTO is # enabled. But even then, it still takes a majority of the time. # Same with LLD when Clang is available. (lib.optionalString useClang "-DUSE_LD=LLD") (lib.optionalString (!useClang) "-DUSE_LD=GOLD") # FIXME: why can't openssl be found automatically? "-DOPENSSL_USE_STATIC_LIBS=FALSE" "-DOPENSSL_CRYPTO_LIBRARY=${ssl.out}/lib/libcrypto.so" "-DOPENSSL_SSL_LIBRARY=${ssl.out}/lib/libssl.so" ]; hardeningDisable = [ "fortify" ]; inherit patches; postPatch = '' # allow using any msgpack-cxx version substituteInPlace cmake/GetMsgpack.cmake \ --replace-warn 'find_package(msgpack-cxx 6 QUIET CONFIG)' 'find_package(msgpack-cxx QUIET CONFIG)' # Use our doctest package substituteInPlace bindings/c/test/unit/third_party/CMakeLists.txt \ --replace-fail '/opt/doctest_proj_2.4.8' '${doctest}/include' # Upstream upgraded to Boost 1.86 with no code changes; see: # <https://github.com/apple/foundationdb/pull/11788> substituteInPlace cmake/CompileBoost.cmake \ --replace-fail 'find_package(Boost 1.78.0 EXACT ' 'find_package(Boost ' ''; # the install phase for cmake is pretty wonky right now since it's not designed to # coherently install packages as most linux distros expect -- it's designed to build # packaged artifacts that are shipped in RPMs, etc. we need to add some extra code to # cmake upstream to fix this, and if we do, i think most of this can go away. postInstall = '' mv $out/sbin/fdbmonitor $out/bin/fdbmonitor mkdir $out/libexec && mv $out/usr/lib/foundationdb/backup_agent/backup_agent $out/libexec/backup_agent mv $out/sbin/fdbserver $out/bin/fdbserver rm -rf $out/etc $out/lib/foundationdb $out/lib/systemd $out/log $out/sbin $out/usr $out/var # move results into multi outputs mkdir -p $dev $lib mv $out/include $dev/include mv $out/lib $lib/lib # python bindings # NB: use the original setup.py.in, so we can substitute VERSION correctly cp ../LICENSE ./bindings/python substitute ../bindings/python/setup.py.in ./bindings/python/setup.py \ --replace 'VERSION' "${version}" rm -f ./bindings/python/setup.py.* ./bindings/python/CMakeLists.txt rm -f ./bindings/python/fdb/*.pth # remove useless files rm -f ./bindings/python/*.rst ./bindings/python/*.mk cp -R ./bindings/python/ tmp-pythonsrc/ tar -zcf $pythonsrc --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/ # java bindings mkdir -p $lib/share/java mv lib/fdb-java-*.jar $lib/share/java/fdb-java.jar ''; outputs = [ "out" "dev" "lib" "pythonsrc" ]; meta = with lib; { description = "Open source, distributed, transactional key-value store"; homepage = "https://www.foundationdb.org"; license = licenses.asl20; platforms = [ "x86_64-linux" ] ++ lib.optionals (!(avxEnabled version)) [ "aarch64-linux" ]; # Fails when cross-compiling with "/bin/sh: gcc-ar: not found" broken = stdenv.buildPlatform != stdenv.hostPlatform; maintainers = with maintainers; [ thoughtpolice lostnet ]; }; }; in makeFdb Loading
pkgs/servers/foundationdb/patches/disable-flowbench.patch→pkgs/by-name/fo/foundationdb/disable-flowbench.patch +0 −0 File moved. View file
pkgs/servers/foundationdb/patches/don-t-use-static-boost-libs.patch→pkgs/by-name/fo/foundationdb/don-t-use-static-boost-libs.patch +0 −0 File moved. View file
pkgs/by-name/fo/foundationdb/package.nix 0 → 100644 +175 −0 Original line number Diff line number Diff line { stdenv, fetchFromGitHub, lib, fetchpatch, cmake, ninja, python3, openjdk, mono, openssl, boost186, pkg-config, msgpack-cxx, toml11, jemalloc, doctest, }: let boost = boost186; # Only even numbered versions compile on aarch64; odd numbered versions have avx enabled. avxEnabled = version: let isOdd = n: lib.trivial.mod n 2 != 0; patch = lib.toInt (lib.versions.patch version); in isOdd patch; in stdenv.mkDerivation rec { name = "foundationdb"; version = "7.3.42"; src = fetchFromGitHub { owner = "apple"; repo = "foundationdb"; tag = version; hash = "sha256-jQcm+HLai5da2pZZ7iLdN6fpQZxf5+/kkfv9OSXQ57c="; }; patches = [ ./disable-flowbench.patch ./don-t-use-static-boost-libs.patch # GetMsgpack: add 4+ versions of upstream # https://github.com/apple/foundationdb/pull/10935 (fetchpatch { url = "https://github.com/apple/foundationdb/commit/c35a23d3f6b65698c3b888d76de2d93a725bff9c.patch"; hash = "sha256-bneRoZvCzJp0Hp/G0SzAyUyuDrWErSpzv+ickZQJR5w="; }) # Add a dependency that prevents bindingtester to run before the python bindings are generated # https://github.com/apple/foundationdb/pull/11859 (fetchpatch { url = "https://github.com/apple/foundationdb/commit/8d04c97a74c6b83dd8aa6ff5af67587044c2a572.patch"; hash = "sha256-ZLIcmcfirm1+96DtTIr53HfM5z38uTLZrRNHAmZL6rc="; }) ]; hardeningDisable = [ "fortify" ]; postPatch = '' # allow using any msgpack-cxx version substituteInPlace cmake/GetMsgpack.cmake \ --replace-warn 'find_package(msgpack-cxx 6 QUIET CONFIG)' 'find_package(msgpack-cxx QUIET CONFIG)' # Use our doctest package substituteInPlace bindings/c/test/unit/third_party/CMakeLists.txt \ --replace-fail '/opt/doctest_proj_2.4.8' '${doctest}/include' # Upstream upgraded to Boost 1.86 with no code changes; see: # <https://github.com/apple/foundationdb/pull/11788> substituteInPlace cmake/CompileBoost.cmake \ --replace-fail 'find_package(Boost 1.78.0 EXACT ' 'find_package(Boost ' ''; buildInputs = [ boost jemalloc msgpack-cxx openssl toml11 ]; checkInputs = [ doctest ]; nativeBuildInputs = [ cmake mono ninja openjdk pkg-config python3 ]; separateDebugInfo = true; dontFixCmake = true; cmakeFlags = [ "-DFDB_RELEASE=TRUE" # Disable CMake warnings for project developers. "-Wno-dev" # CMake Error at fdbserver/CMakeLists.txt:332 (find_library): # > Could not find lz4_STATIC_LIBRARIES using the following names: liblz4.a "-DSSD_ROCKSDB_EXPERIMENTAL=FALSE" "-DBUILD_DOCUMENTATION=FALSE" # LTO brings up overall build time, but results in much smaller # binaries for all users and the cache. "-DUSE_LTO=ON" # Gold helps alleviate the link time, especially when LTO is # enabled. But even then, it still takes a majority of the time. "-DUSE_LD=GOLD" # FIXME: why can't openssl be found automatically? "-DOPENSSL_USE_STATIC_LIBS=FALSE" "-DOPENSSL_CRYPTO_LIBRARY=${openssl.out}/lib/libcrypto.so" "-DOPENSSL_SSL_LIBRARY=${openssl.out}/lib/libssl.so" ]; # the install phase for cmake is pretty wonky right now since it's not designed to # coherently install packages as most linux distros expect -- it's designed to build # packaged artifacts that are shipped in RPMs, etc. we need to add some extra code to # cmake upstream to fix this, and if we do, i think most of this can go away. postInstall = '' mv $out/sbin/fdbmonitor $out/bin/fdbmonitor mkdir $out/libexec && mv $out/usr/lib/foundationdb/backup_agent/backup_agent $out/libexec/backup_agent mv $out/sbin/fdbserver $out/bin/fdbserver rm -rf $out/etc $out/lib/foundationdb $out/lib/systemd $out/log $out/sbin $out/usr $out/var # move results into multi outputs mkdir -p $dev $lib mv $out/include $dev/include mv $out/lib $lib/lib # python bindings # NB: use the original setup.py.in, so we can substitute VERSION correctly cp ../LICENSE ./bindings/python substitute ../bindings/python/setup.py.in ./bindings/python/setup.py \ --replace 'VERSION' "${version}" rm -f ./bindings/python/setup.py.* ./bindings/python/CMakeLists.txt rm -f ./bindings/python/fdb/*.pth # remove useless files rm -f ./bindings/python/*.rst ./bindings/python/*.mk cp -R ./bindings/python/ tmp-pythonsrc/ tar -zcf $pythonsrc --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/ # java bindings mkdir -p $lib/share/java mv lib/fdb-java-*.jar $lib/share/java/fdb-java.jar ''; outputs = [ "out" "dev" "lib" "pythonsrc" ]; meta = { description = "Open source, distributed, transactional key-value store"; homepage = "https://www.foundationdb.org"; license = lib.licenses.asl20; platforms = [ "x86_64-linux" ] ++ lib.optionals (!(avxEnabled version)) [ "aarch64-linux" ]; # Fails when cross-compiling with "/bin/sh: gcc-ar: not found" broken = stdenv.buildPlatform != stdenv.hostPlatform; maintainers = with lib.maintainers; [ thoughtpolice lostnet ]; }; }
pkgs/servers/foundationdb/python.nix→pkgs/development/python-modules/foundationdb/default.nix +3 −3 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ buildPythonPackage { doCheck = false; meta = with lib; { meta = { description = "Python bindings for FoundationDB"; homepage = "https://www.foundationdb.org"; license = with licenses; [ asl20 ]; maintainers = with maintainers; [ thoughtpolice ]; license = with lib.licenses; [ asl20 ]; maintainers = with lib.maintainers; [ thoughtpolice ]; }; }
pkgs/servers/foundationdb/cmake.nixdeleted 100644 → 0 +0 −178 Original line number Diff line number Diff line # This builder is for FoundationDB CMake build system. { lib, fetchFromGitHub, cmake, ninja, python3, openjdk, mono, pkg-config, msgpack-cxx, toml11, jemalloc, doctest, gccStdenv, llvmPackages, useClang ? false, ... }: let stdenv = if useClang then llvmPackages.libcxxStdenv else gccStdenv; # Only even numbered versions compile on aarch64; odd numbered versions have avx enabled. avxEnabled = version: let isOdd = n: lib.trivial.mod n 2 != 0; patch = lib.toInt (lib.versions.patch version); in isOdd patch; makeFdb = { version, hash, rev ? "refs/tags/${version}", officialRelease ? true, patches ? [ ], boost, ssl, }: stdenv.mkDerivation { pname = "foundationdb"; inherit version; src = fetchFromGitHub { owner = "apple"; repo = "foundationdb"; inherit rev hash; }; buildInputs = [ ssl boost msgpack-cxx toml11 jemalloc ]; checkInputs = [ doctest ]; nativeBuildInputs = [ pkg-config cmake ninja python3 openjdk mono ] ++ lib.optionals useClang [ llvmPackages.lld ]; separateDebugInfo = true; dontFixCmake = true; cmakeFlags = [ (lib.optionalString officialRelease "-DFDB_RELEASE=TRUE") # Disable CMake warnings for project developers. "-Wno-dev" # CMake Error at fdbserver/CMakeLists.txt:332 (find_library): # > Could not find lz4_STATIC_LIBRARIES using the following names: liblz4.a "-DSSD_ROCKSDB_EXPERIMENTAL=FALSE" "-DBUILD_DOCUMENTATION=FALSE" # LTO brings up overall build time, but results in much smaller # binaries for all users and the cache. (lib.optionalString (!useClang) "-DUSE_LTO=ON") # Gold helps alleviate the link time, especially when LTO is # enabled. But even then, it still takes a majority of the time. # Same with LLD when Clang is available. (lib.optionalString useClang "-DUSE_LD=LLD") (lib.optionalString (!useClang) "-DUSE_LD=GOLD") # FIXME: why can't openssl be found automatically? "-DOPENSSL_USE_STATIC_LIBS=FALSE" "-DOPENSSL_CRYPTO_LIBRARY=${ssl.out}/lib/libcrypto.so" "-DOPENSSL_SSL_LIBRARY=${ssl.out}/lib/libssl.so" ]; hardeningDisable = [ "fortify" ]; inherit patches; postPatch = '' # allow using any msgpack-cxx version substituteInPlace cmake/GetMsgpack.cmake \ --replace-warn 'find_package(msgpack-cxx 6 QUIET CONFIG)' 'find_package(msgpack-cxx QUIET CONFIG)' # Use our doctest package substituteInPlace bindings/c/test/unit/third_party/CMakeLists.txt \ --replace-fail '/opt/doctest_proj_2.4.8' '${doctest}/include' # Upstream upgraded to Boost 1.86 with no code changes; see: # <https://github.com/apple/foundationdb/pull/11788> substituteInPlace cmake/CompileBoost.cmake \ --replace-fail 'find_package(Boost 1.78.0 EXACT ' 'find_package(Boost ' ''; # the install phase for cmake is pretty wonky right now since it's not designed to # coherently install packages as most linux distros expect -- it's designed to build # packaged artifacts that are shipped in RPMs, etc. we need to add some extra code to # cmake upstream to fix this, and if we do, i think most of this can go away. postInstall = '' mv $out/sbin/fdbmonitor $out/bin/fdbmonitor mkdir $out/libexec && mv $out/usr/lib/foundationdb/backup_agent/backup_agent $out/libexec/backup_agent mv $out/sbin/fdbserver $out/bin/fdbserver rm -rf $out/etc $out/lib/foundationdb $out/lib/systemd $out/log $out/sbin $out/usr $out/var # move results into multi outputs mkdir -p $dev $lib mv $out/include $dev/include mv $out/lib $lib/lib # python bindings # NB: use the original setup.py.in, so we can substitute VERSION correctly cp ../LICENSE ./bindings/python substitute ../bindings/python/setup.py.in ./bindings/python/setup.py \ --replace 'VERSION' "${version}" rm -f ./bindings/python/setup.py.* ./bindings/python/CMakeLists.txt rm -f ./bindings/python/fdb/*.pth # remove useless files rm -f ./bindings/python/*.rst ./bindings/python/*.mk cp -R ./bindings/python/ tmp-pythonsrc/ tar -zcf $pythonsrc --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/ # java bindings mkdir -p $lib/share/java mv lib/fdb-java-*.jar $lib/share/java/fdb-java.jar ''; outputs = [ "out" "dev" "lib" "pythonsrc" ]; meta = with lib; { description = "Open source, distributed, transactional key-value store"; homepage = "https://www.foundationdb.org"; license = licenses.asl20; platforms = [ "x86_64-linux" ] ++ lib.optionals (!(avxEnabled version)) [ "aarch64-linux" ]; # Fails when cross-compiling with "/bin/sh: gcc-ar: not found" broken = stdenv.buildPlatform != stdenv.hostPlatform; maintainers = with maintainers; [ thoughtpolice lostnet ]; }; }; in makeFdb