{folly,fizz,mvfst,wangle,fbthrift,fb303,edencommon,watchman}: 2024.03.11.00 -> 2024.11.18.00, refactor (#356219)

This commit is contained in:
Emily 2024-11-19 15:12:38 +00:00 committed by GitHub
commit 6b97db7cec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 1327 additions and 891 deletions

View File

@ -0,0 +1,21 @@
From c55a516e90133d89d67285429c6474241346d27a Mon Sep 17 00:00:00 2001
From: Dirk Eddelbuettel <edd@debian.org>
Date: Mon, 30 Nov 2020 09:41:49 -0600
Subject: [PATCH] g++-11 requires limits header
---
include/cpptoml.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/cpptoml.h b/include/cpptoml.h
index 5a00da3..1dc9fd1 100644
--- a/include/cpptoml.h
+++ b/include/cpptoml.h
@@ -14,6 +14,7 @@
#include <cstring>
#include <fstream>
#include <iomanip>
+#include <limits>
#include <map>
#include <memory>
#include <sstream>

View File

@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
sha256 = "0zlgdlk9nsskmr8xc2ajm6mn1x5wz82ssx9w88s02icz71mcihrx";
};
patches = [
# Fix compilation with GCC 11.
# <https://github.com/skystrife/cpptoml/pull/123>
./add-limits-include.patch
];
nativeBuildInputs = [ cmake ];
cmakeFlags = [

View File

@ -0,0 +1,113 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
removeReferencesTo,
glog,
gflags,
folly,
fb303,
wangle,
fbthrift,
gtest,
apple-sdk_11,
darwinMinVersionHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "edencommon";
version = "2024.11.18.00";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebookexperimental";
repo = "edencommon";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-pVPkH80vowdpwWv/h6ovEk335OeI6/0k0cAFhhFqSDM=";
};
patches = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# Test discovery timeout is bizarrely flaky on `x86_64-darwin`
./increase-test-discovery-timeout.patch
];
nativeBuildInputs = [
cmake
ninja
removeReferencesTo
];
buildInputs =
[
glog
gflags
folly
fb303
wangle
fbthrift
gtest
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "CMAKE_INSTALL_RPATH_USE_LINK_PATH" true)
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "dev"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "dev"}/lib/cmake/edencommon")
];
doCheck = true;
postPatch = ''
# The CMake build requires the FBThrift Python support even though
# its not used, presumably because of the relevant code having
# been moved in from another repository.
substituteInPlace CMakeLists.txt \
--replace-fail \
'find_package(FBThrift CONFIG REQUIRED COMPONENTS cpp2 py)' \
'find_package(FBThrift CONFIG REQUIRED COMPONENTS cpp2)'
'';
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$dev/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$dev" "$header"
done
)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
homepage = "https://github.com/facebookexperimental/edencommon";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
kylesferrazza
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
gflags,
glog,
folly,
fbthrift,
fizz,
wangle,
apple-sdk_11,
darwinMinVersionHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fb303";
version = "2024.11.18.00";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebook";
repo = "fb303";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-3zQLX42qeOE2bbFmu4Kuvu0Fvq2mBq8YgkVGpyfwaak=";
};
nativeBuildInputs = [
cmake
ninja
];
buildInputs =
[
gflags
glog
folly
fbthrift
fizz
wangle
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "CMAKE_INSTALL_RPATH_USE_LINK_PATH" true)
(lib.cmakeBool "PYTHON_EXTENSIONS" false)
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "dev"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "dev"}/lib/cmake/fb303")
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" (placeholder "dev"))
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
homepage = "https://github.com/facebook/fb303";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
kylesferrazza
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,128 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
removeReferencesTo,
openssl,
gflags,
glog,
folly,
fizz,
wangle,
zlib,
zstd,
xxHash,
apple-sdk_11,
darwinMinVersionHook,
mvfst,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fbthrift";
version = "2024.11.18.00";
outputs = [
# Trying to split this up further into `bin`, `out`, and `dev`
# causes issues with circular references due to the installed CMake
# files referencing the path to the compiler.
"out"
"lib"
];
src = fetchFromGitHub {
owner = "facebook";
repo = "fbthrift";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-dJf4vaIcat24WiKLFNEqeCnJYiO+c5YkuFu+hrS6cPE=";
};
patches = [
# Remove a line that breaks the build due to the CMake classic of
# incorrect path concatenation.
./remove-cmake-install-rpath.patch
];
nativeBuildInputs = [
cmake
ninja
removeReferencesTo
];
buildInputs =
[
openssl
gflags
glog
folly
fizz
wangle
zlib
zstd
xxHash
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
propagatedBuildInputs = [
mvfst
];
cmakeFlags =
[
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "thriftpy" false)
# TODO: Cant figure out where the C++ tests are wired up in the
# CMake build, if anywhere, and this requires Python.
#(lib.cmakeBool "enable_tests" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "BIN_INSTALL_DIR" "${placeholder "out"}/bin")
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "out"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "lib"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "out"}/lib/cmake/fbthrift")
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Homebrew sets this, and the shared library build fails without
# it. I dont know, either. It scares me.
(lib.cmakeFeature "CMAKE_SHARED_LINKER_FLAGS" "-Wl,-undefined,dynamic_lookup")
];
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$out/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$out" "$header"
done
)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Facebook's branch of Apache Thrift";
mainProgram = "thrift1";
homepage = "https://github.com/facebook/fbthrift";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
pierreis
kylesferrazza
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,12 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c6b2b2a810..497dcd3d94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,7 +39,6 @@
set(CMAKE_INSTALL_DIR lib/cmake/fbthrift CACHE STRING
"The subdirectory where CMake package config files should be installed")
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
# Add root dir so qualified includes work, e.g. #include "thrift/compiler/*.h".

View File

@ -0,0 +1,134 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
removeReferencesTo,
openssl,
glog,
double-conversion,
zstd,
gflags,
libevent,
apple-sdk_11,
darwinMinVersionHook,
folly,
libsodium,
zlib,
gtest,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fizz";
version = "2024.11.18.00";
outputs = [
"bin"
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebookincubator";
repo = "fizz";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-mNe+CHEXhkwzek9qy2l6zvPXim9tJV44s+naSm6bQ4Q=";
};
nativeBuildInputs = [
cmake
ninja
removeReferencesTo
];
buildInputs =
[
openssl
glog
double-conversion
zstd
gflags
libevent
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
propagatedBuildInputs = [
folly
libsodium
zlib
];
checkInputs = [
gtest
];
cmakeDir = "../fizz";
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "BIN_INSTALL_DIR" "${placeholder "bin"}/bin")
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "dev"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "dev"}/lib/cmake/fizz")
# Fizz puts test headers into `${CMAKE_INSTALL_PREFIX}/include`
# for other projects to consume.
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" (placeholder "dev"))
];
__darwinAllowLocalNetworking = true;
doCheck = true;
preCheck =
let
disabledTests = [
# timing-related & flaky
"SlidingBloomReplayCacheTest.TestTimeBucketing"
];
in
''
export GTEST_FILTER="-${lib.concatStringsSep ":" disabledTests}"
'';
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$dev/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$dev" "$header"
done
)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "C++14 implementation of the TLS-1.3 standard";
homepage = "https://github.com/facebookincubator/fizz";
changelog = "https://github.com/facebookincubator/fizz/releases/tag/v${finalAttrs.version}";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
pierreis
kylesferrazza
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,205 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
removeReferencesTo,
double-conversion,
fast-float,
gflags,
glog,
libevent,
zlib,
openssl,
xz,
lz4,
zstd,
libiberty,
libunwind,
apple-sdk_11,
darwinMinVersionHook,
boost,
fmt_11,
jemalloc,
gtest,
follyMobile ? false,
nix-update-script,
# for passthru.tests
python3,
watchman,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "folly";
version = "2024.11.18.00";
# split outputs to reduce downstream closure sizes
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebook";
repo = "folly";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-CX4YzNs64yeq/nDDaYfD5y8GKrxBueW4y275edPoS0c=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
removeReferencesTo
];
# See CMake/folly-deps.cmake in the Folly source tree.
buildInputs =
[
boost
double-conversion
fast-float
gflags
glog
libevent
zlib
openssl
xz
lz4
zstd
libiberty
libunwind
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
propagatedBuildInputs =
[
# `folly-config.cmake` pulls these in.
boost
fmt_11
]
++ lib.optionals stdenv.hostPlatform.isLinux [
# jemalloc headers are required in include/folly/portability/Malloc.h
jemalloc
];
checkInputs = [
gtest
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
# Folly uses these instead of the standard CMake variables for some reason.
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "dev"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "dev"}/lib/cmake/folly")
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" (placeholder "dev"))
];
env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " (
[
"-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}"
]
++ lib.optionals (stdenv.cc.isGNU && stdenv.hostPlatform.isAarch64) [
# /build/source/folly/algorithm/simd/Movemask.h:156:32: error: cannot convert '__Uint64x1_t' to '__Uint8x8_t'
"-flax-vector-conversions"
]
);
doCheck = true;
# https://github.com/NixOS/nixpkgs/issues/144170
postPatch = ''
substituteInPlace CMake/libfolly.pc.in \
--replace-fail \
${lib.escapeShellArg "\${exec_prefix}/@LIB_INSTALL_DIR@"} \
'@CMAKE_INSTALL_FULL_LIBDIR@' \
--replace-fail \
${lib.escapeShellArg "\${prefix}/@CMAKE_INSTALL_INCLUDEDIR@"} \
'@CMAKE_INSTALL_FULL_INCLUDEDIR@'
'';
# TODO: Figure out why `GTEST_FILTER` doesnt work to skip these.
checkPhase = ''
runHook preCheck
ctest -j $NIX_BUILD_CORES --output-on-failure --exclude-regex ${
lib.escapeShellArg (
lib.concatMapStringsSep "|" (test: "^${lib.escapeRegex test}$") (
[
"concurrency_concurrent_hash_map_test.*/ConcurrentHashMapTest/*.StressTestReclamation"
"io_async_ssl_session_test.SSLSessionTest.BasicTest"
"io_async_ssl_session_test.SSLSessionTest.NullSessionResumptionTest"
"singleton_thread_local_test.SingletonThreadLocalDeathTest.Overload"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"concurrency_cache_locality_test.CacheLocality.BenchmarkSysfs"
"concurrency_cache_locality_test.CacheLocality.LinuxActual"
"futures_future_test.Future.NoThrow"
"futures_retrying_test.RetryingTest.largeRetries"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"buffered_atomic_test.BufferedAtomic.singleThreadUnguardedAccess"
]
)
)
}
runHook postCheck
'';
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$dev/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$dev" "$header"
done
)
'';
passthru = {
inherit boost;
fmt = fmt_11;
updateScript = nix-update-script { };
tests = {
inherit watchman;
inherit (python3.pkgs) django pywatchman;
};
};
meta = {
description = "Open-source C++ library developed and used at Facebook";
homepage = "https://github.com/facebook/folly";
license = lib.licenses.asl20;
# 32bit is not supported: https://github.com/facebook/folly/issues/103
platforms = lib.platforms.unix;
badPlatforms = [ lib.systems.inspect.patterns.is32bit ];
maintainers = with lib.maintainers; [
abbradar
pierreis
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,150 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
removeReferencesTo,
folly,
gflags,
glog,
apple-sdk_11,
darwinMinVersionHook,
fizz,
gtest,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mvfst";
version = "2024.11.18.00";
outputs = [
"bin"
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebook";
repo = "mvfst";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-2Iqk6QshM8fVO65uIqrTbex7aj8ELNSzNseYEeNdzCY=";
};
nativeBuildInputs = [
cmake
ninja
removeReferencesTo
];
buildInputs =
[
folly
gflags
glog
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
propagatedBuildInputs = [
fizz
];
checkInputs = [
gtest
];
cmakeFlags =
[
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "CMAKE_INSTALL_RPATH_USE_LINK_PATH" true)
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" (placeholder "dev"))
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Homebrew sets this, and the shared library build fails without
# it. I dont know, either. It scares me.
(lib.cmakeFeature "CMAKE_SHARED_LINKER_FLAGS" "-Wl,-undefined,dynamic_lookup")
];
__darwinAllowLocalNetworking = true;
doCheck = true;
postPatch = ''
# Make sure the libraries the `tperf` binary uses are installed.
printf 'install(TARGETS mvfst_test_utils)\n' >> quic/common/test/CMakeLists.txt
printf 'install(TARGETS mvfst_dsr_backend)\n' >> quic/dsr/CMakeLists.txt
'';
checkPhase = ''
runHook preCheck
ctest -j $NIX_BUILD_CORES --output-on-failure ${
lib.optionalString stdenv.hostPlatform.isLinux (
lib.escapeShellArgs [
"--exclude-regex"
(lib.concatMapStringsSep "|" (test: "^${lib.escapeRegex test}$") [
"*/QuicClientTransportIntegrationTest.NetworkTest/*"
"*/QuicClientTransportIntegrationTest.FlowControlLimitedTest/*"
"*/QuicClientTransportIntegrationTest.NetworkTestConnected/*"
"*/QuicClientTransportIntegrationTest.SetTransportSettingsAfterStart/*"
"*/QuicClientTransportIntegrationTest.TestZeroRttSuccess/*"
"*/QuicClientTransportIntegrationTest.ZeroRttRetryPacketTest/*"
"*/QuicClientTransportIntegrationTest.NewTokenReceived/*"
"*/QuicClientTransportIntegrationTest.UseNewTokenThenReceiveRetryToken/*"
"*/QuicClientTransportIntegrationTest.TestZeroRttRejection/*"
"*/QuicClientTransportIntegrationTest.TestZeroRttNotAttempted/*"
"*/QuicClientTransportIntegrationTest.TestZeroRttInvalidAppParams/*"
"*/QuicClientTransportIntegrationTest.ChangeEventBase/*"
"*/QuicClientTransportIntegrationTest.ResetClient/*"
"*/QuicClientTransportIntegrationTest.TestStatelessResetToken/*"
])
]
)
}
runHook postCheck
'';
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$dev/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$dev" "$header"
done
)
# TODO: Do this in `gtest` rather than downstream.
remove-references-to -t ${gtest.dev} $out/lib/*
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Implementation of the QUIC transport protocol";
homepage = "https://github.com/facebook/mvfst";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
ris
emily
techknowlogick
];
};
})

View File

@ -0,0 +1,145 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
removeReferencesTo,
folly,
fizz,
openssl,
glog,
gflags,
libevent,
double-conversion,
apple-sdk_11,
darwinMinVersionHook,
gtest,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wangle";
version = "2024.11.18.00";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "facebook";
repo = "wangle";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-4mqE9GgJP2f7QAykwdhMFoReE9wmPKOXqSHJ2MHP2G0=";
};
nativeBuildInputs = [
cmake
ninja
removeReferencesTo
];
buildInputs =
[
folly
fizz
openssl
glog
gflags
libevent
double-conversion
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
checkInputs = [
gtest
];
cmakeDir = "../wangle";
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "INCLUDE_INSTALL_DIR" "${placeholder "dev"}/include")
(lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
(lib.cmakeFeature "CMAKE_INSTALL_DIR" "${placeholder "dev"}/lib/cmake/wangle")
];
env.GTEST_FILTER =
"-"
+ lib.concatStringsSep ":" (
[
# these depend on example pem files from the folly source tree (?)
"SSLContextManagerTest.TestSingleClientCAFileSet"
"SSLContextManagerTest.TestMultipleClientCAsSet"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# flaky
"BroadcastPoolTest.ThreadLocalPool"
"Bootstrap.UDPClientServerTest"
]
);
__darwinAllowLocalNetworking = true;
doCheck = true;
checkPhase = ''
runHook preCheck
ctest -j $NIX_BUILD_CORES --output-on-failure ${
# Deterministic glibc abort 🫠
lib.optionalString stdenv.hostPlatform.isLinux (
lib.escapeShellArgs [
"--exclude-regex"
"^(BootstrapTest|BroadcastPoolTest)$"
]
)
}
runHook postCheck
'';
postFixup = ''
# Sanitize header paths to avoid runtime dependencies leaking in
# through `__FILE__`.
(
shopt -s globstar
for header in "$dev/include"/**/*.h; do
sed -i "1i#line 1 \"$header\"" "$header"
remove-references-to -t "$dev" "$header"
done
)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Open-source C++ networking library";
longDescription = ''
Wangle is a framework providing a set of common client/server
abstractions for building services in a consistent, modular, and
composable way.
'';
homepage = "https://github.com/facebook/wangle";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
pierreis
kylesferrazza
emily
techknowlogick
];
};
})

View File

@ -4,24 +4,24 @@ version = 3
[[package]]
name = "addr2line"
version = "0.21.0"
version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
name = "adler2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "ahash"
version = "0.8.7"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"getrandom",
@ -41,9 +41,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.79"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
[[package]]
name = "atty"
@ -58,23 +58,23 @@ dependencies = [
[[package]]
name = "autocfg"
version = "1.1.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "backtrace"
version = "0.3.69"
version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
dependencies = [
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
"windows-targets",
]
[[package]]
@ -83,6 +83,12 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "byteorder"
version = "1.5.0"
@ -91,22 +97,13 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
version = "1.5.0"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
dependencies = [
"serde",
]
[[package]]
name = "cc"
version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"libc",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
@ -121,7 +118,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
"bitflags",
"bitflags 1.3.2",
"strsim",
"textwrap",
"unicode-width",
@ -130,9 +127,9 @@ dependencies = [
[[package]]
name = "core-foundation-sys"
version = "0.8.6"
version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "crossbeam"
@ -149,9 +146,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
version = "0.5.11"
version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
dependencies = [
"crossbeam-utils",
]
@ -186,9 +183,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
version = "0.8.19"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "duct"
@ -204,9 +201,9 @@ dependencies = [
[[package]]
name = "either"
version = "1.9.0"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "futures"
@ -216,9 +213,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
@ -231,9 +228,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
@ -241,15 +238,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
[[package]]
name = "futures-executor"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
dependencies = [
"futures-core",
"futures-task",
@ -258,38 +255,38 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[package]]
name = "futures-macro"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.87",
]
[[package]]
name = "futures-sink"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-util"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures 0.1.31",
"futures-channel",
@ -306,9 +303,9 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.2.12"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
@ -317,9 +314,9 @@ dependencies = [
[[package]]
name = "gimli"
version = "0.28.1"
version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "heck"
@ -341,15 +338,15 @@ dependencies = [
[[package]]
name = "hermit-abi"
version = "0.3.4"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "itoa"
version = "1.0.10"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "jwalk"
@ -363,21 +360,21 @@ dependencies = [
[[package]]
name = "lazy_static"
version = "1.4.0"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.152"
version = "0.2.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f"
[[package]]
name = "lock_api"
version = "0.4.11"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
"autocfg",
"scopeguard",
@ -385,9 +382,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.20"
version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "maplit"
@ -397,9 +394,9 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
[[package]]
name = "memchr"
version = "2.7.1"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memoffset"
@ -412,22 +409,23 @@ dependencies = [
[[package]]
name = "miniz_oxide"
version = "0.7.1"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
"adler",
"adler2",
]
[[package]]
name = "mio"
version = "0.8.10"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
"hermit-abi 0.3.9",
"libc",
"wasi",
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
@ -437,7 +435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
dependencies = [
"autocfg",
"bitflags",
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset",
@ -453,46 +451,36 @@ dependencies = [
"winapi",
]
[[package]]
name = "num_cpus"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
"hermit-abi 0.3.4",
"libc",
]
[[package]]
name = "object"
version = "0.32.2"
version = "0.36.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
version = "1.19.0"
version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "os_pipe"
version = "1.1.5"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
name = "parking_lot"
version = "0.12.1"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
"lock_api",
"parking_lot_core",
@ -500,22 +488,22 @@ dependencies = [
[[package]]
name = "parking_lot_core"
version = "0.9.9"
version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
"windows-targets 0.48.5",
"windows-targets",
]
[[package]]
name = "pin-project-lite"
version = "0.2.13"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
[[package]]
name = "pin-utils"
@ -549,27 +537,27 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.78"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.35"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rayon"
version = "1.8.1"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
@ -587,24 +575,24 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.4.1"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
dependencies = [
"bitflags",
"bitflags 2.6.0",
]
[[package]]
name = "rustc-demangle"
version = "0.1.23"
version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "ryu"
version = "1.0.16"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "scopeguard"
@ -614,16 +602,16 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.196"
version = "1.0.215"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_bser"
version = "0.3.1"
version = "0.4.0"
dependencies = [
"anyhow",
"byteorder",
@ -635,50 +623,51 @@ dependencies = [
[[package]]
name = "serde_bytes"
version = "0.11.14"
version = "0.11.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a"
dependencies = [
"serde",
]
[[package]]
name = "serde_derive"
version = "1.0.196"
version = "1.0.215"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.87",
]
[[package]]
name = "serde_json"
version = "1.0.113"
version = "1.0.133"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
]
[[package]]
name = "shared_child"
version = "1.0.0"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c"
dependencies = [
"libc",
"winapi",
"windows-sys 0.59.0",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.1"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
"libc",
]
@ -694,18 +683,18 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.13.1"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "socket2"
version = "0.5.5"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
dependencies = [
"libc",
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
@ -751,9 +740,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.48"
version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [
"proc-macro2",
"quote",
@ -762,9 +751,9 @@ dependencies = [
[[package]]
name = "sysinfo"
version = "0.26.9"
version = "0.30.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c18a6156d1f27a9592ee18c1a846ca8dd5c258b7179fc193ae87c74ebb666f5"
checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3"
dependencies = [
"cfg-if",
"core-foundation-sys",
@ -772,7 +761,7 @@ dependencies = [
"ntapi",
"once_cell",
"rayon",
"winapi",
"windows",
]
[[package]]
@ -795,53 +784,52 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.56"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.56"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.87",
]
[[package]]
name = "tokio"
version = "1.35.1"
version = "1.41.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33"
dependencies = [
"backtrace",
"bytes",
"libc",
"mio",
"num_cpus",
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
"socket2",
"tokio-macros",
"tracing",
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
name = "tokio-macros"
version = "2.2.0"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.87",
]
[[package]]
@ -881,21 +869,21 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.12"
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-segmentation"
version = "1.10.1"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
[[package]]
name = "unicode-width"
version = "0.1.11"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "vec_map"
@ -905,9 +893,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "version_check"
version = "0.9.4"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "wasi"
@ -917,11 +905,11 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "watchman_client"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"anyhow",
"bytes",
"futures 0.3.30",
"futures 0.3.31",
"maplit",
"serde",
"serde_bser",
@ -972,12 +960,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.48.0"
name = "windows"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
"windows-targets 0.48.5",
"windows-core",
"windows-targets",
]
[[package]]
name = "windows-core"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets",
]
[[package]]
@ -986,139 +984,98 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets 0.52.0",
"windows-targets",
]
[[package]]
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm 0.48.5",
"windows_aarch64_msvc 0.48.5",
"windows_i686_gnu 0.48.5",
"windows_i686_msvc 0.48.5",
"windows_x86_64_gnu 0.48.5",
"windows_x86_64_gnullvm 0.48.5",
"windows_x86_64_msvc 0.48.5",
]
[[package]]
name = "windows-targets"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
dependencies = [
"windows_aarch64_gnullvm 0.52.0",
"windows_aarch64_msvc 0.52.0",
"windows_i686_gnu 0.52.0",
"windows_i686_msvc 0.52.0",
"windows_x86_64_gnu 0.52.0",
"windows_x86_64_gnullvm 0.52.0",
"windows_x86_64_msvc 0.52.0",
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnu"
version = "0.52.0"
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "zerocopy"
version = "0.7.32"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.32"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.87",
]

View File

@ -0,0 +1,123 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
ninja,
pkg-config,
rustc,
cargo,
rustPlatform,
ensureNewerSourcesForZipFilesHook,
removeReferencesTo,
pcre2,
openssl,
gflags,
glog,
libevent,
edencommon,
folly,
fizz,
wangle,
fbthrift,
fb303,
cpptoml,
apple-sdk_11,
darwinMinVersionHook,
gtest,
nix-update-script,
stateDir ? "",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "watchman";
version = "2024.11.18.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "watchman";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-deOSeExhwn8wrtP2Y0BDaHdmaeiUaDBok6W7N1rH/24=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
rustc
cargo
rustPlatform.cargoSetupHook
ensureNewerSourcesForZipFilesHook
removeReferencesTo
];
buildInputs =
[
pcre2
openssl
gflags
glog
libevent
edencommon
folly
fizz
wangle
fbthrift
fb303
cpptoml
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
(darwinMinVersionHook "11.0")
];
checkInputs = [
gtest
];
cmakeFlags = [
(lib.cmakeBool "CMAKE_INSTALL_RPATH_USE_LINK_PATH" true)
(lib.cmakeFeature "WATCHMAN_STATE_DIR" stateDir)
(lib.cmakeFeature "WATCHMAN_VERSION_OVERRIDE" finalAttrs.version)
];
cargoRoot = "watchman/cli";
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
doCheck = true;
postPatch = ''
patchShebangs .
cp ${./Cargo.lock} ${finalAttrs.cargoRoot}/Cargo.lock
'';
postFixup = ''
# TODO: Do this in `fmt` rather than downstream.
remove-references-to -t ${folly.fmt.dev} $out/bin/*
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Watches files and takes action when they change";
homepage = "https://facebook.github.io/watchman";
maintainers = with lib.maintainers; [
kylesferrazza
emily
techknowlogick
];
platforms = lib.platforms.unix;
license = lib.licenses.mit;
};
})

View File

@ -3,12 +3,10 @@
, fetchFromGitHub
, cmake
, folly
, boost
, gflags
, glog
, openssl
, double-conversion
, fmt
, unstableGitUpdater
}:
@ -24,7 +22,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ cmake ];
buildInputs = [ folly boost gflags glog openssl double-conversion fmt ];
buildInputs = [ folly gflags glog openssl double-conversion ];
# source is expected to be named wdt
# https://github.com/facebook/wdt/blob/43319e59d0c77092468367cdadab37d12d7a2383/CMakeLists.txt#L238

View File

@ -1,49 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, boost
, cmake
, fmt_8
, folly
, glog
, gtest
}:
stdenv.mkDerivation rec {
pname = "edencommon";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebookexperimental";
repo = "edencommon";
rev = "v${version}";
sha256 = "sha256-1z4QicS98juv4bUEbHBkCjVJHEhnoJyLYp4zMHmDbMg=";
};
patches = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# Test discovery timeout is bizarrely flaky on `x86_64-darwin`
./increase-test-discovery-timeout.patch
];
nativeBuildInputs = [ cmake ];
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
buildInputs = [
glog
folly
fmt_8
boost
gtest
];
meta = with lib; {
description = "Shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
homepage = "https://github.com/facebookexperimental/edencommon";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ kylesferrazza ];
};
}

View File

@ -1,55 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, fbthrift
, fizz
, folly
, glog
, libsodium
, mvfst
, python3
, wangle
, zlib
}:
stdenv.mkDerivation rec {
pname = "fb303";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "fb303";
rev = "v${version}";
sha256 = "sha256-Jtztb8CTqvRdRjUa3jaouP5PFAwoM4rKLIfgvOyXUIg=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-DPYTHON_EXTENSIONS=OFF"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
buildInputs = [
fbthrift
fizz
folly
folly.boost
folly.fmt
glog
libsodium
mvfst
python3
wangle
zlib
];
meta = with lib; {
description = "Base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
homepage = "https://github.com/facebook/fb303";
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ kylesferrazza ];
};
}

View File

@ -1,73 +0,0 @@
{ stdenv
, fetchFromGitHub
, cmake
, bison
, boost
, libevent
, double-conversion
, libsodium
, fizz
, flex
, fmt_8
, folly
, glog
, gflags
, libiberty
, mvfst
, openssl
, lib
, wangle
, zlib
, zstd
}:
stdenv.mkDerivation rec {
pname = "fbthrift";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "fbthrift";
rev = "v${version}";
sha256 = "sha256-iCiiKNDlfKm1Y4SGzcSP6o/OdiRRrj9UEawW6qpBpSY=";
};
nativeBuildInputs = [
cmake
bison
flex
];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isDarwin then "OFF" else "ON"}"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
buildInputs = [
boost
double-conversion
fizz
fmt_8
folly
glog
gflags
libevent
libiberty
mvfst
openssl
wangle
zlib
zstd
libsodium
];
meta = with lib; {
description = "Facebook's branch of Apache Thrift";
mainProgram = "thrift1";
homepage = "https://github.com/facebook/fbthrift";
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ pierreis kylesferrazza ];
};
}

View File

@ -1,85 +0,0 @@
{ stdenv
, fetchFromGitHub
, cmake
, boost
, libevent
, double-conversion
, glog
, lib
, fmt_8
, zstd
, gflags
, libiberty
, openssl
, folly
, libsodium
, gtest
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fizz";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebookincubator";
repo = "fizz";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-IHWotiVUjGOvebXy4rwsh8U8UMxTrF1VaqXzZMjojiM=";
};
nativeBuildInputs = [ cmake ];
cmakeDir = "../fizz";
cmakeFlags = [
"-Wno-dev"
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
NIX_LDFLAGS = "-lz";
buildInputs = [
fmt_8
boost
double-conversion
folly
glog
gflags
libevent
libiberty
libsodium
openssl
zlib
zstd
];
doCheck = true;
checkInputs = [
gtest
];
preCheck = let
disabledTests = [
# these don't work with openssl 3.x probably due to
# https://github.com/openssl/openssl/issues/13283
"DefaultCertificateVerifierTest.TestVerifySuccess"
"DefaultCertificateVerifierTest.TestVerifyWithIntermediates"
# timing-related & flaky
"SlidingBloomReplayCacheTest.TestTimeBucketing"
];
in ''
export GTEST_FILTER="-${lib.concatStringsSep ":" disabledTests}"
'';
meta = with lib; {
description = "C++14 implementation of the TLS-1.3 standard";
homepage = "https://github.com/facebookincubator/fizz";
changelog = "https://github.com/facebookincubator/fizz/releases/tag/v${finalAttrs.version}";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ pierreis kylesferrazza ];
};
})

View File

@ -1,109 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, boost
, cmake
, double-conversion
, fmt_8
, gflags
, glog
, libevent
, libiberty
, libunwind
, lz4
, openssl
, pkg-config
, xz
, zlib
, zstd
, jemalloc
, follyMobile ? false
# for passthru.tests
, python3
, watchman
}:
stdenv.mkDerivation rec {
pname = "folly";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "folly";
rev = "v${version}";
sha256 = "sha256-INvWTw27fmVbKQIT9ebdRGMCOIzpc/NepRN2EnKLJx0=";
};
nativeBuildInputs = [
cmake
pkg-config
];
# See CMake/folly-deps.cmake in the Folly source tree.
buildInputs = [
boost
double-conversion
glog
gflags
libevent
libiberty
openssl
lz4
xz
zlib
libunwind
fmt_8
zstd
] ++ lib.optional stdenv.hostPlatform.isLinux jemalloc;
# jemalloc headers are required in include/folly/portability/Malloc.h
propagatedBuildInputs = lib.optional stdenv.hostPlatform.isLinux jemalloc;
env.NIX_CFLAGS_COMPILE = toString [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" "-fpermissive" ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
# temporary hack until folly builds work on aarch64,
# see https://github.com/facebook/folly/issues/1880
"-DCMAKE_LIBRARY_ARCHITECTURE=${if stdenv.hostPlatform.isx86_64 then "x86_64" else "dummy"}"
# ensure correct dirs in $dev/lib/pkgconfig/libfolly.pc
# see https://github.com/NixOS/nixpkgs/issues/144170
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_LIBDIR=lib"
] ++ lib.optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13"
];
# split outputs to reduce downstream closure sizes
outputs = [ "out" "dev" ];
# patch prefix issues again
# see https://github.com/NixOS/nixpkgs/issues/144170
postFixup = ''
substituteInPlace $dev/lib/cmake/${pname}/${pname}-targets-release.cmake \
--replace '$'{_IMPORT_PREFIX}/lib/ $out/lib/
'';
passthru = {
# folly-config.cmake, will `find_package` these, thus there should be
# a way to ensure abi compatibility.
inherit boost;
fmt = fmt_8;
tests = {
inherit watchman;
inherit (python3.pkgs) django pywatchman;
};
};
meta = with lib; {
description = "Open-source C++ library developed and used at Facebook";
homepage = "https://github.com/facebook/folly";
license = licenses.asl20;
# 32bit is not supported: https://github.com/facebook/folly/issues/103
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
maintainers = with maintainers; [ abbradar pierreis ];
};
}

View File

@ -1,48 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, fizz
, folly
, gflags
, glog
, libsodium
, zlib
}:
stdenv.mkDerivation rec {
pname = "mvfst";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "mvfst";
rev = "v${version}";
sha256 = "sha256-KjNTDgpiR9EG42Agl2JFJoPo5+8GlS27oPMWpdLq2v8=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
buildInputs = [
fizz
folly
folly.boost
folly.fmt
gflags
glog
libsodium
zlib
];
meta = with lib; {
description = "Implementation of the QUIC transport protocol";
homepage = "https://github.com/facebook/mvfst";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ ris ];
};
}

View File

@ -1,88 +0,0 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, boost
, libevent
, double-conversion
, glog
, fmt_8
, gflags
, openssl
, fizz
, folly
, gtest
, libsodium
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wangle";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "wangle";
rev = "v${finalAttrs.version}";
sha256 = "sha256-fDtJ+9bZj+siKlMglYMkLO/+jldUmsS5V3Umk1gNdlo=";
};
nativeBuildInputs = [ cmake ];
cmakeDir = "../wangle";
cmakeFlags = [
"-Wno-dev"
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
buildInputs = [
fmt_8
libsodium
zlib
boost
double-conversion
fizz
folly
glog
gflags
libevent
openssl
];
doCheck = true;
checkInputs = [
gtest
];
preCheck = let
disabledTests = [
# these depend on example pem files from the folly source tree (?)
"SSLContextManagerTest.TestSingleClientCAFileSet"
"SSLContextManagerTest.TestMultipleClientCAsSet"
# https://github.com/facebook/wangle/issues/206
"SSLContextManagerTest.TestSessionContextCertRemoval"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
# flaky
"BroadcastPoolTest.ThreadLocalPool"
"Bootstrap.UDPClientServerTest"
];
in ''
export GTEST_FILTER="-${lib.concatStringsSep ":" disabledTests}"
'';
meta = with lib; {
description = "Open-source C++ networking library";
longDescription = ''
Wangle is a framework providing a set of common client/server
abstractions for building services in a consistent, modular, and
composable way.
'';
homepage = "https://github.com/facebook/wangle";
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ pierreis kylesferrazza ];
};
})

View File

@ -1,115 +0,0 @@
{ boost
, cargo
, cmake
, CoreServices
, cpptoml
, double-conversion
, edencommon
, ensureNewerSourcesForZipFilesHook
, fb303
, fbthrift
, fetchFromGitHub
, fetchpatch
, fizz
, fmt_8
, folly
, glog
, gtest
, lib
, libevent
, libiconv
, libsodium
, libunwind
, lz4
, openssl
, pcre2
, pkg-config
, rustPlatform
, rustc
, stateDir ? "/tmp"
, stdenv
, wangle
, zlib
, zstd
}:
stdenv.mkDerivation rec {
pname = "watchman";
version = "2024.03.11.00";
src = fetchFromGitHub {
owner = "facebook";
repo = "watchman";
rev = "v${version}";
hash = "sha256-cD8mIYCc+8Z2p3rwKVRFcW9sOBbpb5KHU5VpbXHMpeg=";
};
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DENABLE_EDEN_SUPPORT=NO" # requires sapling (formerly known as eden), which is not packaged in nixpkgs
"-DWATCHMAN_STATE_DIR=${stateDir}"
"-DWATCHMAN_VERSION_OVERRIDE=${version}"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
];
nativeBuildInputs = [
cmake
pkg-config
ensureNewerSourcesForZipFilesHook
rustPlatform.cargoSetupHook
cargo
rustc
];
buildInputs = [
pcre2
openssl
gtest
glog
boost
libevent
fmt_8
libsodium
zlib
folly
fizz
wangle
fbthrift
fb303
cpptoml
edencommon
libunwind
double-conversion
lz4
zstd
libiconv
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices ];
cargoRoot = "watchman/cli";
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
patches = [
# fix build with rustc >=1.79
(fetchpatch {
url = "https://github.com/facebook/watchman/commit/c3536143cab534cdd9696eb3e2d03c4ac1e2f883.patch";
hash = "sha256-lpGr5H28gfVXkWNdfDo4SCbF/p5jB4SNlHj6km/rfw4=";
})
];
postPatch = ''
patchShebangs .
cp ${./Cargo.lock} ${cargoRoot}/Cargo.lock
'';
meta = with lib; {
description = "Watches files and takes action when they change";
homepage = "https://facebook.github.io/watchman";
maintainers = with maintainers; [ kylesferrazza ];
platforms = platforms.unix;
license = licenses.mit;
};
}

View File

@ -5664,10 +5664,6 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) Cocoa AppKit;
};
watchman = darwin.apple_sdk_11_0.callPackage ../development/tools/watchman {
inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
};
webassemblyjs-cli = nodePackages."@webassemblyjs/cli-1.11.1";
webassemblyjs-repl = nodePackages."@webassemblyjs/repl-1.11.1";
wasm-strip = nodePackages."@webassemblyjs/wasm-strip";
@ -9110,8 +9106,6 @@ with pkgs;
stdenv = if stdenv.hostPlatform.isDarwin then gccStdenv else stdenv;
};
edencommon = darwin.apple_sdk_11_0.callPackage ../development/libraries/edencommon { };
eigen = callPackage ../development/libraries/eigen { };
eigen2 = callPackage ../development/libraries/eigen/2.0.nix { };
@ -9156,10 +9150,6 @@ with pkgs;
autoreconfHook = buildPackages.autoreconfHook269;
};
fbthrift = darwin.apple_sdk_11_0.callPackage ../development/libraries/fbthrift { };
fb303 = darwin.apple_sdk_11_0.callPackage ../development/libraries/fb303 { };
inherit (callPackage ../development/libraries/ffmpeg { })
ffmpeg_4
ffmpeg_4-headless
@ -9184,8 +9174,6 @@ with pkgs;
};
fftwMpi = fftw.override { enableMpi = true; };
fizz = darwin.apple_sdk_11_0.callPackage ../development/libraries/fizz { };
flint = callPackage ../development/libraries/flint { };
flint3 = callPackage ../development/libraries/flint/3.nix { };
@ -9240,8 +9228,6 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) CoreFoundation;
};
folly = darwin.apple_sdk_11_0.callPackage ../development/libraries/folly { };
makeFontsConf = callPackage ../development/libraries/fontconfig/make-fonts-conf.nix { };
makeFontsCache = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
@ -10434,8 +10420,6 @@ with pkgs;
mpich-pmix = mpich.override { pmixSupport = true; withPm = [ ]; };
mvfst = darwin.apple_sdk_11_0.callPackage ../development/libraries/mvfst { };
mygpoclient = with python3.pkgs; toPythonApplication mygpoclient;
mygui = callPackage ../development/libraries/mygui {
@ -11189,7 +11173,6 @@ with pkgs;
vulkan-tools = callPackage ../tools/graphics/vulkan-tools {
inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
};
wangle = darwin.apple_sdk_11_0.callPackage ../development/libraries/wangle { };
wayland = darwin.apple_sdk_11_0.callPackage ../development/libraries/wayland { };
wayland-scanner = callPackage ../development/libraries/wayland/scanner.nix { };