staging-next 2024-11-30 (#360437)

This commit is contained in:
Vladimír Čunát
2024-12-02 22:41:18 +01:00
72 changed files with 2044 additions and 1609 deletions
+1 -40
View File
@@ -8,8 +8,6 @@ from contextlib import AbstractContextManager, contextmanager
from pathlib import Path
from typing import Any
from colorama import Fore, Style
from test_driver.logger import AbstractLogger
from test_driver.machine import Machine, NixStartScript, retry
from test_driver.polling_condition import PollingCondition
@@ -206,48 +204,11 @@ class Driver:
def create_machine(
self,
start_command: str | dict,
start_command: str,
*,
name: str | None = None,
keep_vm_state: bool = False,
) -> Machine:
# Legacy args handling
# FIXME: remove after 24.05
if isinstance(start_command, dict):
if name is not None or keep_vm_state:
raise TypeError(
"Dictionary passed to create_machine must be the only argument"
)
args = start_command
start_command = args.pop("startCommand", SENTINEL)
if start_command is SENTINEL:
raise TypeError(
"Dictionary passed to create_machine must contain startCommand"
)
if not isinstance(start_command, str):
raise TypeError(
f"startCommand must be a string, got: {repr(start_command)}"
)
name = args.pop("name", None)
keep_vm_state = args.pop("keep_vm_state", False)
if args:
raise TypeError(
f"Unsupported arguments passed to create_machine: {args}"
)
self.logger.warning(
Fore.YELLOW
+ Style.BRIGHT
+ "WARNING: Using create_machine with a single dictionary argument is deprecated and will be removed in NixOS 24.11"
+ Style.RESET_ALL
)
# End legacy args handling
tmp_dir = get_tmp_dir()
cmd = NixStartScript(start_command)
@@ -0,0 +1,38 @@
From 427e226a2fe3980388abffd6de25ed6b9591cce3 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sat, 19 Oct 2024 21:51:30 -0400
Subject: [PATCH 1/3] ax_check_gl.m4: properly quote m4_fatal
It needs to only run as an argument of m4_if, not all the time.
Fixes: 753493bf7e251997f02559b98fc599d4a337d8cd
Bug: https://bugs.gentoo.org/941845
---
m4/ax_check_gl.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/m4/ax_check_gl.m4 b/m4/ax_check_gl.m4
index 850d407..4c2e4ef 100644
--- a/m4/ax_check_gl.m4
+++ b/m4/ax_check_gl.m4
@@ -85,7 +85,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 23
+#serial 24
# example gl program
m4_define([_AX_CHECK_GL_PROGRAM],
@@ -187,7 +187,7 @@ AC_DEFUN([_AX_CHECK_GL_LINK_CV],
AC_DEFUN([_AX_CHECK_GL_MANUAL_LIBS_GENERIC], [
AS_IF([test -n "$GL_LIBS"],[], [
ax_check_gl_manual_libs_generic_extra_libs="$1"
- m4_if($1, [], m4_fatal([$0: argument must not be empty]))
+ m4_if($1, [], [m4_fatal([$0: argument must not be empty])])
_AX_CHECK_GL_SAVE_FLAGS([CFLAGS])
AC_SEARCH_LIBS([glBegin],[$ax_check_gl_manual_libs_generic_extra_libs], [
--
2.46.1
@@ -0,0 +1,37 @@
From e25f8d9e3ead52f998535b86c763065c5b45cc59 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sat, 19 Oct 2024 21:57:16 -0400
Subject: [PATCH 2/3] ax_check_glx.m4: properly quote m4_fatal
It needs to only run as an argument of m4_if, not all the time.
Fixes: 40ca66e7e52bb63e3eee2514855fcf3ad2df7673
---
m4/ax_check_glx.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/m4/ax_check_glx.m4 b/m4/ax_check_glx.m4
index c7890d9..b5027f9 100644
--- a/m4/ax_check_glx.m4
+++ b/m4/ax_check_glx.m4
@@ -61,7 +61,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 9
+#serial 10
# example program
m4_define([_AX_CHECK_GLX_PROGRAM],
@@ -183,7 +183,7 @@ AC_DEFUN([_AX_CHECK_GLX_HEADERS],
AC_DEFUN([_AX_CHECK_GLX_MANUAL_LIBS_GENERIC],
[dnl
ax_check_glx_manual_libs_generic_extra_libs="$1"
- m4_if($1, [], m4_fatal([$0: argument must not be empty]))
+ m4_if($1, [], [m4_fatal([$0: argument must not be empty])])
AC_LANG_PUSH([C])
_AX_CHECK_GLX_SAVE_FLAGS()
--
2.46.1
@@ -0,0 +1,32 @@
From 3a23daa3da0eb1a256fda631867e19345d5f6e3a Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sat, 19 Oct 2024 21:58:52 -0400
Subject: [PATCH 3/3] ax_switch_flags.m4: properly quote m4_fatal
It needs to only run as an argument of m4_if, not all the time.
Fixes: 2adff78e224c908fd58df91852c8301c25777a8f
---
m4/ax_switch_flags.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/m4/ax_switch_flags.m4 b/m4/ax_switch_flags.m4
index dc79d1e..777aeb0 100644
--- a/m4/ax_switch_flags.m4
+++ b/m4/ax_switch_flags.m4
@@ -36,10 +36,10 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 5
+#serial 6
AC_DEFUN([AX_SWITCH_FLAGS], [
- m4_if($1, [], m4_fatal([$0: namespace is empty]))
+ m4_if($1, [], [m4_fatal([$0: namespace is empty])])
AC_REQUIRE(AX_SAVE_FLAGS)
AC_REQUIRE(AX_RESTORE_FLAGS)
AX_SAVE_FLAGS($1[])
--
2.46.1
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
hash = "sha256-e81dABkW86UO10NvT3AOPSsbrePtgDIZxZLWJQKlc2M=";
};
patches = [
# cherry-picked changes from
# https://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commit;h=fadde164479a926d6b56dd693ded2a4c36ed89f0
# can be removed on next release
./0001-ax_check_gl.m4-properly-quote-m4_fatal.patch
./0002-ax_check_glx.m4-properly-quote-m4_fatal.patch
./0003-ax_switch_flags.m4-properly-quote-m4_fatal.patch
];
strictDeps = true;
enableParallelBuilding = true;
@@ -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>
+6
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 = [
@@ -0,0 +1,31 @@
From 0cdde0fdfbeb8c35420f6d03fa4b77ed73497694 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Thu, 7 Nov 2024 17:03:54 +0100
Subject: [PATCH] netrc: support large file, longer lines, longer tokens
Regression from 3b43a05e000aa8f6 (shipped in 8.11.0)
Reported-by: Moritz
Fixes #15513
Closes #15514
---
lib/netrc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/netrc.c b/lib/netrc.c
index c23f927cef32d35059360f04be3c7833589f5df5..034c0307a43e3b86c9c004387cedf273588370e1 100644
--- a/lib/netrc.c
+++ b/lib/netrc.c
@@ -58,9 +58,9 @@ enum found_state {
#define NETRC_FAILED -1
#define NETRC_SUCCESS 0
-#define MAX_NETRC_LINE 4096
-#define MAX_NETRC_FILE (64*1024)
-#define MAX_NETRC_TOKEN 128
+#define MAX_NETRC_LINE 16384
+#define MAX_NETRC_FILE (128*1024)
+#define MAX_NETRC_TOKEN 4096
static CURLcode file2memory(const char *filename, struct dynbuf *filebuf)
{
@@ -0,0 +1,217 @@
From f5c616930b5cf148b1b2632da4f5963ff48bdf88 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Thu, 7 Nov 2024 08:52:38 +0100
Subject: [PATCH] duphandle: also init netrc
The netrc init was only done in the Curl_open, meaning that a duplicated
handle would not get inited properly.
Added test 2309 to verify. It does netrc auth with a duplicated handle.
Regression from 3b43a05e000aa8f65bda513f733a
Reported-by: tranzystorekk on github
Fixes #15496
Closes #15503
---
lib/easy.c | 1 +
tests/data/Makefile.am | 2 +-
tests/data/test2309 | 66 ++++++++++++++++++++++++++++++++++++++
tests/libtest/Makefile.inc | 5 ++-
tests/libtest/lib2309.c | 66 ++++++++++++++++++++++++++++++++++++++
5 files changed, 138 insertions(+), 2 deletions(-)
create mode 100644 tests/data/test2309
create mode 100644 tests/libtest/lib2309.c
diff --git a/lib/easy.c b/lib/easy.c
index d16fa8c07afec00ab6186880eff05c925da00380..ac8fab34220d9b4f1f8f9cb7bc504a5024a46cca 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -940,6 +940,7 @@ CURL *curl_easy_duphandle(CURL *d)
goto fail;
Curl_dyn_init(&outcurl->state.headerb, CURL_MAX_HTTP_HEADER);
+ Curl_netrc_init(&outcurl->state.netrc);
/* the connection pool is setup on demand */
outcurl->state.lastconnect_id = -1;
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 02bf2ae25bfd49dce27d4cd2320a2794ba5b4212..ea5221c00fd4193e1713b1313da338f1ea6aee4f 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -255,7 +255,7 @@ test2100 \
test2200 test2201 test2202 test2203 test2204 test2205 \
\
test2300 test2301 test2302 test2303 test2304 test2305 test2306 test2307 \
-test2308 \
+test2308 test2309 \
\
test2400 test2401 test2402 test2403 test2404 test2405 test2406 \
\
diff --git a/tests/data/test2309 b/tests/data/test2309
new file mode 100644
index 0000000000000000000000000000000000000000..4ba78ee91e179c932f8bfa776d32f311512ef8e6
--- /dev/null
+++ b/tests/data/test2309
@@ -0,0 +1,66 @@
+<testcase>
+<info>
+<keywords>
+netrc
+HTTP
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data crlf="yes" nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
+ETag: "21025-dc7-39462498"
+Accept-Ranges: bytes
+Content-Length: 6
+Connection: close
+Content-Type: text/html
+Funny-head: yesyes
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+proxy
+</features>
+
+# Reproducing issue 15496
+<name>
+HTTP with .netrc using duped easy handle
+</name>
+<tool>
+lib%TESTNUMBER
+</tool>
+<command>
+http://github.com %LOGDIR/netrc%TESTNUMBER http://%HOSTIP:%HTTPPORT/
+</command>
+<file name="%LOGDIR/netrc%TESTNUMBER" >
+
+machine github.com
+
+login daniel
+password $y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1
+</file>
+</client>
+
+<verify>
+<protocol>
+GET http://github.com/ HTTP/1.1
+Host: github.com
+Authorization: Basic %b64[daniel:$y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1]b64%
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 339a00fc4ed41e1491ea945ff9ebeb7caf058c69..8f58fd64229d5cbcebdb4949111b3c3184d82eb3 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
@@ -77,7 +77,7 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
lib1945 lib1946 lib1947 lib1948 lib1955 lib1956 lib1957 lib1958 lib1959 \
lib1960 lib1964 \
lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 \
- lib2301 lib2302 lib2304 lib2305 lib2306 lib2308 \
+ lib2301 lib2302 lib2304 lib2305 lib2306 lib2308 lib2309 \
lib2402 lib2404 lib2405 \
lib2502 \
lib3010 lib3025 lib3026 lib3027 \
@@ -683,6 +683,9 @@ lib2306_LDADD = $(TESTUTIL_LIBS)
lib2308_SOURCES = lib2308.c $(SUPPORTFILES)
lib2308_LDADD = $(TESTUTIL_LIBS)
+lib2309_SOURCES = lib2309.c $(SUPPORTFILES)
+lib2309_LDADD = $(TESTUTIL_LIBS)
+
lib2402_SOURCES = lib2402.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib2402_LDADD = $(TESTUTIL_LIBS)
diff --git a/tests/libtest/lib2309.c b/tests/libtest/lib2309.c
new file mode 100644
index 0000000000000000000000000000000000000000..11f1c1fbd886846d5901b03ba9cd0314672fec99
--- /dev/null
+++ b/tests/libtest/lib2309.c
@@ -0,0 +1,66 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * SPDX-License-Identifier: curl
+ *
+ ***************************************************************************/
+
+#include "test.h"
+#include "testtrace.h"
+
+#include <curl/curl.h>
+
+static size_t cb_ignore(char *buffer, size_t size, size_t nmemb, void *userp)
+{
+ (void)buffer;
+ (void)size;
+ (void)nmemb;
+ (void)userp;
+ return CURL_WRITEFUNC_ERROR;
+}
+
+CURLcode test(char *URL)
+{
+ CURL *curl;
+ CURL *curldupe;
+ CURLcode res = CURLE_OK;
+
+ global_init(CURL_GLOBAL_ALL);
+ curl = curl_easy_init();
+ if(curl) {
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, cb_ignore);
+ curl_easy_setopt(curl, CURLOPT_URL, URL);
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
+ curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg3);
+ curl_easy_setopt(curl, CURLOPT_NETRC, (long)CURL_NETRC_REQUIRED);
+ curl_easy_setopt(curl, CURLOPT_NETRC_FILE, libtest_arg2);
+
+ curldupe = curl_easy_duphandle(curl);
+ if(curldupe) {
+ res = curl_easy_perform(curldupe);
+ printf("Returned %d, should be %d.\n", res, CURLE_WRITE_ERROR);
+ fflush(stdout);
+ curl_easy_cleanup(curldupe);
+ }
+ curl_easy_cleanup(curl);
+ }
+ curl_global_cleanup();
+ return CURLE_OK;
+}
+12
View File
@@ -59,6 +59,18 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-21nPDWccpuf1wsXsF3CEozp54EyX5xzxg6XN6iNQVOs=";
};
patches = [
# https://github.com/NixOS/nixpkgs/issues/356114
# https://github.com/curl/curl/issues/15496
# https://github.com/curl/curl/commit/f5c616930b5cf148b1b2632da4f5963ff48bdf88
# TODO: Remove this patch when 8.11.1/8.12.0 releases
./fix-netrc-regression.patch
# https://github.com/curl/curl/issues/15513
# https://github.com/curl/curl/commit/0cdde0fdfbeb8c35420f6d03fa4b77ed73497694
./fix-netrc-regression-2.patch
];
# this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
# necessary for FreeBSD code path in configure
postPatch = ''
-7
View File
@@ -23,13 +23,6 @@ stdenv.mkDerivation rec {
++ lib.optionals withFuse [ fuse3 ];
patches = [
# Avoid trouble with older systems like NixOS 23.05.
# TODO: most likely drop this at some point, e.g. when 23.05 loses support.
(fetchurl {
name = "mke2fs-avoid-incompatible-features.patch";
url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/plain/debian/patches/disable-metadata_csum_seed-and-orphan_file-by-default?h=debian/master&id=3fb3d18baba90e5d48d94f4c0b79b2d271b0c913";
hash = "sha256-YD11K4s2bqv0rvzrxtaiodzLp3ztULlOlPUf1XcpxRY=";
})
(fetchurl {
name = "SIZEOF_SIZE_T.patch";
url = "https://lore.kernel.org/linux-ext4/20240527074121.2767083-1-hi@alyssa.is/raw";
+113
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
];
};
})
+83
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
];
};
})
+128
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
];
};
})
@@ -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".
+134
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
];
};
})
+205
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
];
};
})
@@ -0,0 +1,18 @@
diff --git a/configure.ac b/configure.ac
index 0fdfaf06a5..d08611848c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -453,13 +453,8 @@
AC_CHECK_HEADERS([iconv.h],[],[],[#include <stdlib.h>])
if test "x$am_cv_func_iconv" = "xyes"; then
AC_CHECK_HEADERS([localcharset.h])
- am_save_LIBS="$LIBS"
LIBS="${LIBS} ${LIBICONV}"
- if test -n "$LIBICONV"; then
- LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+ }iconv"
- fi
AC_CHECK_FUNCS([locale_charset])
- LIBS="${am_save_LIBS}"
if test "x$ac_cv_func_locale_charset" != "xyes"; then
# If locale_charset() is not in libiconv, we have to find libcharset.
AC_CHECK_LIB(charset,locale_charset)
+16
View File
@@ -40,6 +40,22 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-maV2+Whi4aDG1VLAYpOTxluO9I0zNiZ8fA3w7epGlDg=";
};
patches = [
# The `.pc` file lists `iconv` in `Requires.private` when `-liconv`
# is required, even though common platforms in that situation like
# Darwin dont ship a `.pc` file for their `libiconv`. This isnt
# upstreamed as there are a handful of closed or regressed PRs
# trying to fix it already and it seems upstream added this to deal
# with some nonportable MSYS2 thing or something.
#
# See:
#
# * <https://github.com/libarchive/libarchive/issues/1766>
# * <https://github.com/libarchive/libarchive/issues/1819>
# * <https://github.com/Homebrew/homebrew-core/blob/f8e9e8d4f30979dc99146b5877fce76be6d35124/Formula/lib/libarchive.rb#L48-L52>
./fix-pkg-config-iconv.patch
];
outputs = [ "out" "lib" "dev" ];
postPatch = let
+4
View File
@@ -51,6 +51,10 @@ stdenv.mkDerivation rec {
install -D ${./ipa-priv-key.pem} src/ipa-priv-key.pem
'';
postFixup = ''
../src/ipa/ipa-sign-install.sh src/ipa-priv-key.pem $out/lib/libcamera/ipa_*.so
'';
strictDeps = true;
buildInputs = [
+16
View File
@@ -0,0 +1,16 @@
diff --git a/test/rist/unit/srp_examples.c b/test/rist/unit/srp_examples.c
index 1c5193d..6f835b5 100644
--- a/test/rist/unit/srp_examples.c
+++ b/test/rist/unit/srp_examples.c
@@ -16,6 +16,11 @@
#define DEBUG_USE_EXAMPLE_CONSTANTS 1
#if HAVE_MBEDTLS
+// musl's sched.h includes a prototype for calloc, so we need to make
+// sure it's already been included before we redefine it to something
+// that won't expand to a valid prototype.
+#include <sched.h>
+
#define malloc(size) _test_malloc(size, __FILE__, __LINE__)
#define calloc(num, size) _test_calloc(num, size, __FILE__, __LINE__)
#define free(obj) _test_free(obj, __FILE__, __LINE__)
+2
View File
@@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
patches = [
# https://github.com/NixOS/nixpkgs/pull/257020
./darwin.patch
# https://code.videolan.org/rist/librist/-/merge_requests/257
./musl.patch
];
nativeBuildInputs = [
+4
View File
@@ -54,6 +54,10 @@ mesonCheckPhase() {
local flagsArray=()
concatTo flagsArray mesonCheckFlags mesonCheckFlagsArray
if [ -z "${dontAddTimeoutMultiplier:-}" ]; then
flagsArray+=("--timeout-multiplier=0")
fi
echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}"
meson test --no-rebuild --print-errorlogs "${flagsArray[@]}"
+150
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
];
};
})
+145
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
];
};
})
@@ -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",
]
+123
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;
};
})
+1 -3
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
@@ -1,8 +1,7 @@
diff --git a/Libraries/xcsdk/Tools/xcrun.cpp b/Libraries/xcsdk/Tools/xcrun.cpp
index 9d6d4576d7..73aabc3d42 100644
--- a/Libraries/xcsdk/Tools/xcrun.cpp
+++ b/Libraries/xcsdk/Tools/xcrun.cpp
@@ -23,10 +23,14 @@
diff -Naur a/Libraries/xcsdk/Tools/xcrun.cpp b/Libraries/xcsdk/Tools/xcrun.cpp
--- a/Libraries/xcsdk/Tools/xcrun.cpp 1970-01-01 09:00:01
+++ b/Libraries/xcsdk/Tools/xcrun.cpp 2024-11-19 01:44:38
@@ -23,10 +23,19 @@
#include <process/DefaultUser.h>
#include <pbxsetting/Type.h>
@@ -12,12 +11,17 @@ index 9d6d4576d7..73aabc3d42 100644
using libutil::Filesystem;
using libutil::FSUtil;
+#define SYSTEM_DEVELOPER_DIR "/private/var/select/developer_dir"
+namespace {
+ const std::vector<std::string> kSystemDeveloperDirs = {
+ "/private/var/select/developer_dir",
+ "/private/var/db/xcode_select_link"
+ };
+}
+
class Options {
private:
ext::optional<bool> _help;
@@ -398,6 +402,8 @@
@@ -398,6 +407,8 @@
fprintf(stderr, "\n");
}
@@ -26,7 +30,7 @@ index 9d6d4576d7..73aabc3d42 100644
/*
* Collect search paths for the tool.
* Can be in toolchains, target (if one is provided), developer root,
@@ -408,10 +414,42 @@
@@ -408,10 +419,46 @@
executablePaths.insert(executablePaths.end(), defaultExecutablePaths.begin(), defaultExecutablePaths.end());
/*
@@ -49,16 +53,20 @@ index 9d6d4576d7..73aabc3d42 100644
+ * Fixes https://github.com/NixOS/nixpkgs/issues/353875.
+ */
+ std::vector<std::string> toolchainPaths = { };
+ if (executablePaths.size() < originalSize && filesystem->exists(SYSTEM_DEVELOPER_DIR)) {
+ auto linkTarget = filesystem->readSymbolicLinkCanonical(SYSTEM_DEVELOPER_DIR);
+ if (linkTarget) {
+ auto usrBinPath = FSUtil::NormalizePath(*linkTarget + "/usr/bin");
+ if (filesystem->exists(usrBinPath)) {
+ toolchainPaths.push_back(usrBinPath);
+ }
+ auto toolchainUsrBinPath = FSUtil::NormalizePath(*linkTarget + "/Toolchains/XcodeDefault.xctoolchain/usr/bin");
+ if (filesystem->exists(toolchainUsrBinPath)) {
+ toolchainPaths.push_back(toolchainUsrBinPath);
+ if (executablePaths.size() < originalSize) {
+ for (const auto& dir : kSystemDeveloperDirs) {
+ if (filesystem->exists(dir)) {
+ auto linkTarget = filesystem->readSymbolicLinkCanonical(dir);
+ if (linkTarget) {
+ auto usrBinPath = FSUtil::NormalizePath(*linkTarget + "/usr/bin");
+ if (filesystem->exists(usrBinPath)) {
+ toolchainPaths.push_back(usrBinPath);
+ }
+ auto toolchainUsrBinPath = FSUtil::NormalizePath(*linkTarget + "/Toolchains/XcodeDefault.xctoolchain/usr/bin");
+ if (filesystem->exists(toolchainUsrBinPath)) {
+ toolchainPaths.push_back(toolchainUsrBinPath);
+ }
+ }
+ }
+ }
+ }
@@ -69,12 +77,12 @@ index 9d6d4576d7..73aabc3d42 100644
fprintf(stderr, "error: tool '%s' not found\n", options.tool()->c_str());
return 1;
}
@@ -428,8 +466,6 @@
@@ -427,8 +474,6 @@
return 0;
} else {
/* Run is the default. */
- std::unordered_map<std::string, std::string> environment = processContext->environmentVariables();
-
- std::unordered_map<std::string, std::string> environment = processContext->environmentVariables();
if (target != nullptr) {
/*
* Update effective environment to include the target path.
+2 -2
View File
@@ -20,7 +20,7 @@ let
blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
srcVersion = "3.104";
srcVersion = "3.107";
version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html";
@@ -37,7 +37,7 @@ let
owner = "nss-dev";
repo = "nss";
rev = "NSS_${lib.replaceStrings ["."] ["_"] version}_RTM";
hash = "sha256-TEGEKocapU5OTqx69n8nrn/X3SZr49d1alHM73UnDJw=";
hash = "sha256-c6ks/pBvZHipNkmBy784s96zMYP+D9q3VlVrPVSohLw=";
};
dontBuild = true;
@@ -169,10 +169,11 @@
patches =
let
# Disable haddock generating pretty source listings to stay under 3GB on aarch64-linux
enableHyperlinkedSource =
lib.versionAtLeast version "9.8" ||
!(stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux);
# Disable haddock generating pretty source listings to stay under 3GB on aarch64-linux
!(stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux)
# 9.8 and 9.10 don't run into this problem for some reason
|| (lib.versionAtLeast version "9.8" && lib.versionOlder version "9.11");
in
[
# Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
@@ -207,12 +208,16 @@
then ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch
else ./Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch)
]
# Prevents passing --hyperlinked-source to haddock. This is a custom
# workaround as we wait for this to be configurable via userSettings or
# similar. https://gitlab.haskell.org/ghc/ghc/-/issues/23625
# Prevents passing --hyperlinked-source to haddock. Note that this can
# be configured via a user defined flavour now. Unfortunately, it is
# impossible to import an existing flavour in UserSettings, so patching
# the defaults is actually simpler and less maintenance intensive
# compared to keeping an entire flavour definition in sync with upstream
# manually. See also https://gitlab.haskell.org/ghc/ghc/-/issues/23625
++ lib.optionals (!enableHyperlinkedSource) [
# TODO(@sternenseemann): Doesn't apply for GHC >= 9.8
../../tools/haskell/hadrian/disable-hyperlinked-source.patch
(if lib.versionOlder version "9.8"
then ../../tools/haskell/hadrian/disable-hyperlinked-source-pre-9.8.patch
else ../../tools/haskell/hadrian/disable-hyperlinked-source-extra-args.patch)
]
# Incorrect bounds on Cabal in hadrian
# https://gitlab.haskell.org/ghc/ghc/-/issues/24100
@@ -1,445 +0,0 @@
{ lowPrio, newScope, pkgs, lib, stdenv
, preLibcCrossHeaders
, substitute, substituteAll, fetchFromGitHub, fetchpatch, fetchurl
, overrideCC, wrapCCWith, wrapBintoolsWith
, libxcrypt
, buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross
, targetLlvm
# This is the default binutils, but with *this* version of LLD rather
# than the default LLVM version's, if LLD is the choice. We use these for
# the `useLLVM` bootstrapping below.
, bootBintoolsNoLibc ?
if stdenv.targetPlatform.linker == "lld"
then null
else pkgs.bintoolsNoLibc
, bootBintools ?
if stdenv.targetPlatform.linker == "lld"
then null
else pkgs.bintools
, darwin
# Allows passthrough to packages via newScope. This makes it possible to
# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
# an llvmPackages whose packages are overridden in an internally consistent way.
, ...
}@args:
let
candidate = ""; # empty or "rcN"
dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
metadata = rec {
release_version = "12.0.1";
version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
fetch = name: sha256: fetchurl {
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${metadata.version}/${name}-${metadata.release_version}${candidate}.src.tar.xz";
inherit sha256;
};
clang-tools-extra_src = fetch "clang-tools-extra" "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5";
};
inherit (metadata) fetch;
tools = lib.makeExtensible (tools: let
callPackage = newScope (tools // args // metadata);
mkExtraBuildCommands0 = cc: ''
rsrc="$out/resource-root"
mkdir "$rsrc"
ln -s "${cc.lib}/lib/clang/${metadata.release_version}/include" "$rsrc"
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
'';
mkExtraBuildCommandsBasicRt = cc: mkExtraBuildCommands0 cc + ''
ln -s "${targetLlvmLibraries.compiler-rt-no-libc.out}/lib" "$rsrc/lib"
ln -s "${targetLlvmLibraries.compiler-rt-no-libc.out}/share" "$rsrc/share"
'';
mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
'';
bintoolsNoLibc' =
if bootBintoolsNoLibc == null
then tools.bintoolsNoLibc
else bootBintoolsNoLibc;
bintools' =
if bootBintools == null
then tools.bintools
else bootBintools;
in {
libllvm = callPackage ../common/llvm {
src = fetch "llvm" "1pzx9zrmd7r3481sbhwvkms68fwhffpp4mmz45dgrkjpyl2q96kx";
polly_src = fetch "polly" "1yfm9ixda4a2sx7ak5vswijx4ydk5lv1c1xh39xmd2kh299y4m12";
patches = [
# When cross-compiling we configure llvm-config-native with an approximation
# of the flags used for the normal LLVM build. To avoid the need for building
# a native libLLVM.so (which would fail) we force llvm-config to be linked
# statically against the necessary LLVM components always.
../common/llvm/llvm-config-link-static.patch
# Fix llvm being miscompiled by some gccs. See llvm/llvm-project#49955
# Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955
./llvm/fix-llvm-issue-49955.patch
./llvm/gnu-install-dirs.patch
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
(fetchpatch {
name = "uops-CMOV16rm-noreg.diff";
url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
stripLen = 1;
})
# Fix musl build.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch";
relative = "llvm";
hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
})
# Backport gcc-13 fixes with missing includes.
(fetchpatch {
name = "signals-gcc-13.patch";
url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch";
hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs=";
stripLen = 1;
})
(fetchpatch {
name = "base64-gcc-13.patch";
url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch";
hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U=";
stripLen = 1;
})
];
pollyPatches = [
./llvm/gnu-install-dirs-polly.patch
];
};
# `llvm` historically had the binaries. When choosing an output explicitly,
# we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
llvm = tools.libllvm;
libclang = callPackage ../common/clang {
src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf";
patches = [
./clang/purity.patch
# https://reviews.llvm.org/D51899
./clang/gnu-install-dirs.patch
(substituteAll {
src = ../common/clang/clang-11-15-LLVMgold-path.patch;
libllvmLibdir = "${tools.libllvm.lib}/lib";
})
];
};
clang-unwrapped = tools.libclang;
# disabled until recommonmark supports sphinx 3
#Llvm-manpages = lowPrio (tools.libllvm.override {
# enableManpages = true;
# python3 = pkgs.python3; # don't use python-boot
#});
clang-manpages = lowPrio (tools.libclang.override {
enableManpages = true;
python3 = pkgs.python3; # don't use python-boot
});
# disabled until recommonmark supports sphinx 3
# lldb-manpages = lowPrio (tools.lldb.override {
# enableManpages = true;
# python3 = pkgs.python3; # don't use python-boot
# });
# Wrapper for standalone command line utilities
clang-tools = callPackage ../common/clang-tools { };
# pick clang appropriate for package set we are targeting
clang =
/**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc
else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
# libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
libcxx = null;
extraPackages = [
targetLlvmLibraries.compiler-rt
];
extraBuildCommands = mkExtraBuildCommands cc;
};
libcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = targetLlvmLibraries.libcxx;
extraPackages = [
targetLlvmLibraries.compiler-rt
];
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ../common/lld {
src = fetch "lld" "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9";
patches = [
./lld/gnu-install-dirs.patch
];
inherit (libraries) libunwind;
};
lldb = callPackage ../common/lldb.nix {
src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78";
patches =
let
resourceDirPatch = callPackage
({ substituteAll, libclang }: substituteAll
{
src = ./lldb/resource-dir.patch;
clangLibDir = "${lib.getLib libclang}/lib";
})
{ };
in
[
./lldb/procfs.patch
resourceDirPatch
./lldb/gnu-install-dirs.patch
];
};
# Below, is the LLVM bootstrapping logic. It handles building a
# fully LLVM toolchain from scratch. No GCC toolchain should be
# pulled in. As a consequence, it is very quick to build different
# targets provided by LLVM and we can also build for what GCC
# doesnt support like LLVM. Probably we should move to some other
# file.
bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped;
libc = preLibcCrossHeaders;
};
bintools = wrapBintoolsWith {
bintools = tools.bintools-unwrapped;
};
clangUseLLVM = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = targetLlvmLibraries.libcxx;
bintools = bintools';
extraPackages = [
targetLlvmLibraries.compiler-rt
] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
targetLlvmLibraries.libunwind
];
extraBuildCommands = ''
echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
'' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
'' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
echo "-lunwind" >> $out/nix-support/cc-ldflags
'' + lib.optionalString stdenv.targetPlatform.isWasm ''
echo "-fno-exceptions" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommands cc;
};
clangWithLibcAndBasicRtAndLibcxx = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = targetLlvmLibraries.libcxx;
bintools = bintools';
extraPackages = [
targetLlvmLibraries.compiler-rt-no-libc
] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
targetLlvmLibraries.libunwind
];
extraBuildCommands = ''
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
echo "-Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
echo "-B${targetLlvmLibraries.compiler-rt-no-libc}/lib" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommandsBasicRt cc;
};
clangWithLibcAndBasicRt = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = null;
bintools = bintools';
extraPackages = [
targetLlvmLibraries.compiler-rt-no-libc
];
extraBuildCommands = ''
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
echo "-B${targetLlvmLibraries.compiler-rt-no-libc}/lib" >> $out/nix-support/cc-cflags
echo "-nostdlib++" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommandsBasicRt cc;
};
clangNoLibcWithBasicRt = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = null;
bintools = bintoolsNoLibc';
extraPackages = [
targetLlvmLibraries.compiler-rt-no-libc
];
extraBuildCommands = ''
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
echo "-B${targetLlvmLibraries.compiler-rt-no-libc}/lib" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommandsBasicRt cc;
};
clangNoLibcNoRt = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = null;
bintools = bintoolsNoLibc';
extraPackages = [ ];
extraBuildCommands = ''
echo "-nostartfiles" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommands0 cc;
};
# This is an "oddly ordered" bootstrap just for Darwin. Probably
# don't want it otherwise.
clangNoCompilerRtWithLibc = wrapCCWith rec {
cc = tools.clang-unwrapped;
libcxx = null;
bintools = bintools';
extraPackages = [ ];
extraBuildCommands = mkExtraBuildCommands0 cc;
};
# Aliases
clangNoCompilerRt = tools.clangNoLibcNoRt;
clangNoLibc = tools.clangNoLibcWithBasicRt;
clangNoLibcxx = tools.clangWithLibcAndBasicRt;
});
libraries = lib.makeExtensible (libraries: let
callPackage = newScope (libraries // buildLlvmTools // args // metadata);
in {
compiler-rt-libc = callPackage ../common/compiler-rt (let
stdenv =
if args.stdenv.hostPlatform.useLLVM or false then
overrideCC args.stdenv buildLlvmTools.clangWithLibcAndBasicRtAndLibcxx
else
args.stdenv;
in {
src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l";
patches = [
../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
./compiler-rt/gnu-install-dirs.patch
# ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
# extra `/`.
./compiler-rt/normalize-var.patch
../common/compiler-rt/darwin-plistbuddy-workaround.patch
./compiler-rt/armv7l.patch
# Fix build on armv6l
../common/compiler-rt/armv6-mcr-dmb.patch
../common/compiler-rt/armv6-sync-ops-no-thumb.patch
../common/compiler-rt/armv6-no-ldrexd-strexd.patch
];
inherit stdenv;
} // lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
libxcrypt = (libxcrypt.override { inherit stdenv; }).overrideAttrs (old: {
configureFlags = old.configureFlags ++ [ "--disable-symvers" ];
});
});
compiler-rt-no-libc = callPackage ../common/compiler-rt {
src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l";
patches = [
../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
./compiler-rt/gnu-install-dirs.patch
# ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
# extra `/`.
./compiler-rt/normalize-var.patch
../common/compiler-rt/darwin-plistbuddy-workaround.patch
./compiler-rt/armv7l.patch
# Fix build on armv6l
../common/compiler-rt/armv6-mcr-dmb.patch
../common/compiler-rt/armv6-sync-ops-no-thumb.patch
../common/compiler-rt/armv6-no-ldrexd-strexd.patch
];
stdenv =
if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform == stdenv.buildPlatform then
stdenv
else
# TODO: make this branch unconditional next rebuild
overrideCC stdenv buildLlvmTools.clangNoLibcNoRt;
};
compiler-rt =
# Building the with-libc compiler-rt and WASM doesn't yet work,
# because wasilibc doesn't provide some expected things. See
# compiler-rt's file for further details.
if stdenv.hostPlatform.libc == null || stdenv.hostPlatform.isWasm then
libraries.compiler-rt-no-libc
else
libraries.compiler-rt-libc;
stdenv = overrideCC stdenv buildLlvmTools.clang;
libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
libcxx = callPackage ../common/libcxx {
src = fetchFromGitHub {
owner = "llvm";
repo = "llvm-project";
rev = "refs/tags/llvmorg-${metadata.version}";
sparseCheckout = [
"libcxx"
"libcxxabi"
"llvm/cmake"
"llvm/utils"
"runtimes"
];
hash = "sha256-etxgXIdWxMTmbZ83Hsc0w6Jt5OSQSUEPVEWqLkHsNBY=";
};
patches = [
(substitute {
src = ../common/libcxxabi/wasm.patch;
substitutions = [
"--replace-fail" "/cmake/" "/llvm/cmake/"
];
})
] ++ lib.optionals stdenv.hostPlatform.isMusl [
(substitute {
src = ../common/libcxx/libcxx-0001-musl-hacks.patch;
substitutions = [
"--replace-fail" "/include/" "/libcxx/include/"
];
})
];
stdenv = overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
};
libunwind = callPackage ../common/libunwind {
src = fetch "libunwind" "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb";
patches = [
./libunwind/gnu-install-dirs.patch
];
stdenv = overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
};
openmp = callPackage ../common/openmp {
src = fetch "openmp" "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0";
patches = [
# Fix cross.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
})
];
};
});
noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
@@ -16,7 +16,6 @@
, buildLlvmTools
, fixDarwinDylibNames
, enableManpages ? false
, clang-tools-extra_src ? null
, devExtraCmakeFlags ? []
}:
@@ -38,8 +37,7 @@ let
src = src';
sourceRoot = if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
sourceRoot = "${src.name}/${pname}";
nativeBuildInputs = [ cmake ]
++ (lib.optional (lib.versionAtLeast release_version "15") ninja)
@@ -79,17 +77,12 @@ let
# Make sure clang passes the correct location of libLTO to ld64
substituteInPlace lib/Driver/ToolChains/Darwin.cpp \
--replace-fail 'StringRef P = llvm::sys::path::parent_path(D.Dir);' 'StringRef P = "${lib.getLib libllvm}";'
'' + (
# See the comment on the `add-nostdlibinc-flag.patch` patch in
# `../default.nix` for why we skip Darwin here.
if lib.versionOlder release_version "13" && (!stdenv.hostPlatform.isDarwin || !stdenv.targetPlatform.isDarwin) then ''
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
lib/Driver/ToolChains/*.cpp
'' else ''
(cd tools && ln -s ../../clang-tools-extra extra)
''
) + lib.optionalString stdenv.hostPlatform.isMusl ''
(cd tools && ln -s ../../clang-tools-extra extra)
'' + lib.optionalString (lib.versionOlder release_version "13") ''
substituteInPlace tools/extra/clangd/quality/CompletionModel.cmake \
--replace ' ''${CMAKE_SOURCE_DIR}/../clang-tools-extra' ' ''${CMAKE_SOURCE_DIR}/tools/extra'
''
+ lib.optionalString stdenv.hostPlatform.isMusl ''
sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
'';
@@ -215,18 +208,7 @@ let
'';
} else {
ninjaFlags = [ "docs-clang-man" ];
})) // (lib.optionalAttrs (clang-tools-extra_src != null) { inherit clang-tools-extra_src; })
// (lib.optionalAttrs (lib.versionOlder release_version "13") {
unpackPhase = ''
unpackFile $src
mv clang-* clang
sourceRoot=$PWD/clang
unpackFile ${clang-tools-extra_src}
mv clang-tools-extra-* $sourceRoot/tools/extra
substituteInPlace $sourceRoot/tools/extra/clangd/quality/CompletionModel.cmake \
--replace ' ''${CMAKE_SOURCE_DIR}/../clang-tools-extra' ' ''${CMAKE_SOURCE_DIR}/tools/extra'
'';
})
}))
// (lib.optionalAttrs (lib.versionAtLeast release_version "15") {
env = lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform && !stdenv.hostPlatform.useLLVM) {
# The following warning is triggered with (at least) gcc >=
@@ -73,8 +73,7 @@ stdenv.mkDerivation ({
inherit pname version patches;
src = src';
sourceRoot = if lib.versionOlder release_version "13" then null
else "${src'.name}/${baseName}";
sourceRoot = "${src'.name}/${baseName}";
nativeBuildInputs = [ cmake ]
++ (lib.optional (lib.versionAtLeast release_version "15") ninja)
@@ -380,6 +380,17 @@ let
libllvm = callPackage ./llvm {
patches =
lib.optional (lib.versionOlder metadata.release_version "14") ./llvm/llvm-config-link-static.patch
++ lib.optionals (lib.versions.major metadata.release_version == "12") [
(metadata.getVersionFile "llvm/fix-llvm-issue-49955.patch")
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
(fetchpatch {
name = "uops-CMOV16rm-noreg.diff";
url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
stripLen = 1;
})
]
++ [ (metadata.getVersionFile "llvm/gnu-install-dirs.patch") ]
++ lib.optionals (lib.versionAtLeast metadata.release_version "15") [
# Running the tests involves invoking binaries (like `opt`) that depend on
@@ -443,7 +454,7 @@ let
hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
}
)
++ lib.optionals (lib.versions.major metadata.release_version == "13") [
++ lib.optionals (lib.versionOlder metadata.release_version "14") [
# Backport gcc-13 fixes with missing includes.
(fetchpatch {
name = "signals-gcc-13.patch";
@@ -713,8 +724,12 @@ let
#
# See here for some context:
# https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
#
# Patch is applied for >= 14 as the versions below are broken anyways.
++ lib.optional (
stdenv.targetPlatform.isDarwin && lib.versionOlder stdenv.targetPlatform.darwinSdkVersion "11.0"
lib.versionAtLeast metadata.release_version "14"
&& stdenv.targetPlatform.isDarwin
&& lib.versionOlder stdenv.targetPlatform.darwinSdkVersion "11.0"
) (metadata.getVersionFile "lldb/cpu_subtype_arm64e_replacement.patch");
}
// lib.optionalAttrs (lib.versions.major metadata.release_version == "16") {
@@ -991,8 +1006,18 @@ let
++ [
(metadata.getVersionFile "compiler-rt/X86-support-extension.patch") # Add support for i486 i586 i686 by reusing i386 config
]
++ lib.optional (lib.versions.major metadata.release_version == "12") (fetchpatch {
# fixes the parallel build on aarch64 darwin
name = "fix-symlink-race-aarch64-darwin.patch";
url = "https://github.com/llvm/llvm-project/commit/b31080c596246bc26d2493cfd5e07f053cf9541c.patch";
relative = "compiler-rt";
hash = "sha256-Cv2NC8402yU7QaTR6TzdH+qyWRy+tTote7KKWtKRWFQ=";
})
++ lib.optional (
lib.versionAtLeast metadata.release_version "14" && lib.versionOlder metadata.release_version "18"
lib.versions.major metadata.release_version == "12"
|| (
lib.versionAtLeast metadata.release_version "14" && lib.versionOlder metadata.release_version "18"
)
) (metadata.getVersionFile "compiler-rt/gnu-install-dirs.patch")
++ [
# ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
@@ -1000,9 +1025,11 @@ let
(metadata.getVersionFile "compiler-rt/normalize-var.patch")
]
++
lib.optional (lib.versionOlder metadata.release_version "18")
lib.optional
(lib.versionAtLeast metadata.release_version "13" && lib.versionOlder metadata.release_version "18")
# Prevent a compilation error on darwin
(metadata.getVersionFile "compiler-rt/darwin-targetconditionals.patch")
# TODO: make unconditional and remove in <15 section below. Causes rebuilds.
++ lib.optionals (lib.versionAtLeast metadata.release_version "15") [
# See: https://github.com/NixOS/nixpkgs/pull/186575
./compiler-rt/darwin-plistbuddy-workaround.patch
@@ -1018,13 +1045,18 @@ let
./compiler-rt/armv6-mcr-dmb.patch
./compiler-rt/armv6-sync-ops-no-thumb.patch
]
++ lib.optionals (lib.versionOlder metadata.release_version "18") [
# Fix build on armv6l
./compiler-rt/armv6-scudo-no-yield.patch
]
++
lib.optionals
(lib.versionAtLeast metadata.release_version "13" && lib.versionOlder metadata.release_version "18")
[
# Fix build on armv6l
./compiler-rt/armv6-scudo-no-yield.patch
]
++ [
# Fix build on armv6l
./compiler-rt/armv6-no-ldrexd-strexd.patch
]
++ lib.optionals (lib.versionAtLeast metadata.release_version "13") [
(metadata.getVersionFile "compiler-rt/armv6-scudo-libatomic.patch")
]
++ lib.optional (lib.versionAtLeast metadata.release_version "19") (fetchpatch {
@@ -105,9 +105,13 @@ let
cmakeFlags = [
"-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
] ++ lib.optionals (
stdenv.hostPlatform.isWasm
|| (lib.versions.major release_version == "12" && stdenv.hostPlatform.isDarwin)
) [
"-DCMAKE_CXX_COMPILER_WORKS=ON"
] ++ lib.optionals stdenv.hostPlatform.isWasm [
"-DCMAKE_C_COMPILER_WORKS=ON"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
] ++ cxxCMakeFlags
++ lib.optionals (cxxabi == null) cxxabiCMakeFlags
@@ -35,11 +35,6 @@ let
hasPatches = builtins.length patches > 0;
postUnpack = lib.optionalString (lib.versions.major release_version == "12") ''
ln -s ${libcxx.src}/libcxx .
ln -s ${libcxx.src}/llvm .
'';
prePatch = lib.optionalString (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) ''
cd ../${pname}
chmod -R u+w .
@@ -60,8 +55,8 @@ stdenv.mkDerivation (rec {
src = src';
sourceRoot =
if lib.versionOlder release_version "13" then null
else if lib.versionAtLeast release_version "15" then "${src.name}/runtimes"
if lib.versionAtLeast release_version "15"
then "${src.name}/runtimes"
else "${src.name}/${pname}";
outputs = [ "out" "dev" ];
@@ -72,6 +67,9 @@ stdenv.mkDerivation (rec {
cmakeFlags = lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind"
++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
++ lib.optionals (lib.versions.major release_version == "12" && stdenv.hostPlatform.isDarwin) [
"-DCMAKE_CXX_COMPILER_WORKS=ON"
]
++ devExtraCmakeFlags;
meta = llvm_meta // {
@@ -85,7 +83,6 @@ stdenv.mkDerivation (rec {
dependency of other runtimes.
'';
};
} // (if postUnpack != "" then { inherit postUnpack; } else {})
// (if (lib.versionAtLeast release_version "15") then { inherit postInstall; } else {})
} // (if (lib.versionAtLeast release_version "15") then { inherit postInstall; } else {})
// (if prePatch != "" then { inherit prePatch; } else {})
// (if postPatch != "" then { inherit postPatch; } else {}))
@@ -6,7 +6,6 @@
, buildLlvmTools
, monorepoSrc ? null
, src ? null
, libunwind ? null
, runCommand
, cmake
, ninja
@@ -30,12 +29,7 @@ let
mkdir -p "$out/llvm"
'') else src;
postPatch = lib.optionalString (lib.versions.major release_version == "12") ''
substituteInPlace MachO/CMakeLists.txt --replace \
'(''${LLVM_MAIN_SRC_DIR}/' '('
mkdir -p libunwind/include
tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
'' + lib.optionalString (lib.versions.major release_version == "13") ''
postPatch = lib.optionalString (lib.versionOlder release_version "14") ''
substituteInPlace MachO/CMakeLists.txt --replace \
'(''${LLVM_MAIN_SRC_DIR}/' '(../'
'';
@@ -45,9 +39,7 @@ stdenv.mkDerivation (rec {
src = src';
sourceRoot =
if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
sourceRoot = "${src.name}/${pname}";
nativeBuildInputs = [ cmake ] ++ lib.optional (lib.versionAtLeast release_version "15") ninja;
buildInputs = [ libllvm libxml2 ];
@@ -4,7 +4,6 @@
, pkgsBuildBuild
, pollyPatches ? []
, patches ? []
, polly_src ? null
, src ? null
, monorepoSrc ? null
, runCommand
@@ -107,8 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
src = src';
patches = patches';
sourceRoot = if lib.versionOlder release_version "13" then null
else "${finalAttrs.src.name}/${pname}";
sourceRoot = "${finalAttrs.src.name}/${pname}";
outputs = [ "out" "lib" "dev" "python" ];
@@ -493,18 +491,7 @@ stdenv.mkDerivation (finalAttrs: {
postPatch = null;
postInstall = null;
})) // lib.optionalAttrs (lib.versionOlder release_version "13") {
inherit polly_src;
unpackPhase = ''
unpackFile $src
mv llvm-${release_version}* llvm
sourceRoot=$PWD/llvm
'' + optionalString enablePolly ''
unpackFile $polly_src
mv polly-* $sourceRoot/tools/polly
'';
} // lib.optionalAttrs (lib.versionAtLeast release_version "13") {
})) // lib.optionalAttrs (lib.versionAtLeast release_version "13") {
nativeCheckInputs = [ which ] ++ lib.optional (stdenv.hostPlatform.isDarwin && lib.versionAtLeast release_version "15") sysctl;
} // lib.optionalAttrs (lib.versionOlder release_version "15") {
# hacky fix: created binaries need to be run before installation
@@ -34,9 +34,7 @@ stdenv.mkDerivation (rec {
src = src';
sourceRoot =
if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
sourceRoot = "${src.name}/${pname}";
outputs = [ "out" ]
++ lib.optionals (lib.versionAtLeast release_version "14") [ "dev" ];
@@ -22,6 +22,7 @@
}@packageSetArgs:
let
versions = {
"12.0.1".officialRelease.sha256 = "08s5w2db9imb2yaqsvxs6pg21csi1cf6wa35rf8x6q07mam7j8qv";
"13.0.1".officialRelease.sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
"14.0.6".officialRelease.sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE=";
"15.0.7".officialRelease.sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s=";
@@ -102,20 +102,33 @@ self: super: {
#######################################
# All jailbreaks in this section due to: https://github.com/haskell/haskell-language-server/pull/4316#discussion_r1667684895
haskell-language-server = doJailbreak (dontCheck (super.haskell-language-server.overrideScope (lself: lsuper: {
# For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
# because some packages, like ormolu, need a newer Cabal version.
# ghc-paths is special because it depends on Cabal for building
# its Setup.hs, and therefor declares a Cabal dependency, but does
# not actually use it as a build dependency.
# That means ghc-paths can just use the ghc included Cabal version,
# without causing package-db incoherence and we should do that because
# otherwise we have different versions of ghc-paths
# around which have the same abi-hash, which can lead to confusions and conflicts.
ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
})));
haskell-language-server =
lib.pipe
(super.haskell-language-server.overrideScope (lself: lsuper: {
# For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
# because some packages, like ormolu, need a newer Cabal version.
# ghc-paths is special because it depends on Cabal for building
# its Setup.hs, and therefor declares a Cabal dependency, but does
# not actually use it as a build dependency.
# That means ghc-paths can just use the ghc included Cabal version,
# without causing package-db incoherence and we should do that because
# otherwise we have different versions of ghc-paths
# around which have the same abi-hash, which can lead to confusions and conflicts.
ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
}))
[
doJailbreak
dontCheck
];
hls-plugin-api = doJailbreak super.hls-plugin-api;
ghcide = doJailbreak super.ghcide;
ghcide = doJailbreak (appendPatch (pkgs.fetchpatch {
name = "ghcide-ghc-9.8.3.patch";
url = "https://github.com/haskell/haskell-language-server/commit/6d0a6f220226fe6c1cb5b6533177deb55e755b0b.patch";
sha256 = "1jwxldar9qzkg2z6vsx8f2yih3vkf4yjk9p3mryv0azn929qn3h1";
stripLen = 1;
excludes = [ "cabal.project" ];
}) super.ghcide);
# For -f-auto see cabal.project in haskell-language-server.
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
@@ -0,0 +1,61 @@
{ pkgs, haskellLib }:
let
inherit (pkgs) lib;
in
self: super: {
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC core libraries
array = null;
base = null;
binary = null;
bytestring = null;
Cabal = null;
Cabal-syntax = null;
containers = null;
deepseq = null;
directory = null;
exceptions = null;
file-io = null;
filepath = null;
ghc-bignum = null;
ghc-boot = null;
ghc-boot-th = null;
ghc-compact = null;
ghc-experimental = null;
ghc-heap = null;
ghc-internal = null;
ghc-platform = null;
ghc-prim = null;
ghc-toolchain = null;
ghci = null;
haddock-api = null;
haddock-library = null;
haskeline = null;
hpc = null;
integer-gmp = null;
mtl = null;
os-string = null;
parsec = null;
pretty = null;
process = null;
rts = null;
semaphore-compat = null;
stm = null;
system-cxx-std-lib = null;
template-haskell = null;
# GHC only builds terminfo if it is a native compiler
terminfo =
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
haskellLib.doDistribute self.terminfo_0_4_1_6;
text = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
}
+2 -2
View File
@@ -2,12 +2,12 @@
callPackage ./generic.nix (args // rec {
release = "8.6";
version = "${release}.13";
version = "${release}.15";
# Note: when updating, the hash in pkgs/development/libraries/tk/8.6.nix must also be updated!
src = fetchurl {
url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz";
sha256 = "sha256-Q6H650EvYf8R3iz9BdKM/Dpzdi81SkF8YjcKVOLK8GY=";
sha256 = "sha256-hh4Vl1Py4vvW7BSEEDcVsL5WvjNXUiuFjTy7X4k//vE=";
};
})
@@ -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 ];
};
}
@@ -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 ];
};
}
@@ -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 ];
};
}
@@ -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 ];
};
})
@@ -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 ];
};
}
@@ -7,7 +7,7 @@
, zlib
, libssh2
, openssl
, pcre
, pcre2
, libiconv
, Security
, staticBuild ? stdenv.hostPlatform.isStatic
@@ -35,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
};
cmakeFlags = [
"-DREGEX_BACKEND=pcre2"
"-DUSE_HTTP_PARSER=system"
"-DUSE_SSH=ON"
(lib.cmakeBool "USE_GSSAPI" withGssapi)
@@ -47,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake python3 pkg-config ];
buildInputs = [ zlib libssh2 openssl pcre llhttp ]
buildInputs = [ zlib libssh2 openssl pcre2 llhttp ]
++ lib.optional withGssapi krb5
++ lib.optional stdenv.hostPlatform.isDarwin Security;
@@ -72,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
"fs_event_watch_dir_recursive" "fs_event_watch_file"
"fs_event_watch_file_current_dir" "fs_event_watch_file_exact_path"
"process_priority" "udp_create_early_bad_bind"
"fs_event_watch_delete_dir"
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# fail on macos < 10.15 (starting in libuv 1.47.0)
"fs_write_alotof_bufs_with_offset" "fs_write_multiple_bufs" "fs_read_bufs"
@@ -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 ];
};
}
+1 -1
View File
@@ -8,7 +8,7 @@ callPackage ./generic.nix (args // {
src = fetchurl {
url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz";
sha256 = "sha256-LmX6BpojNlRAo8VsVWuGc7XjKig4ANjZslfj9YTOBnU=";
sha256 = "sha256-VQlp81N5+VKzAg86t7ndW/0Rwe98m3xqdfXEmsp5P+w=";
};
patches = [
+1 -1
View File
@@ -24,7 +24,7 @@ tcl.mkTclDerivation {
''
+ lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "11") ''
substituteInPlace unix/configure* \
--replace " -framework UniformTypeIdentifiers" ""
--replace-fail " -weak_framework UniformTypeIdentifiers" ""
'';
postInstall = ''
@@ -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 ];
};
})
@@ -3,41 +3,32 @@
stdenv,
buildPythonPackage,
isPyPy,
fetchPypi,
fetchpatch,
pythonOlder,
fetchFromGitHub,
curl,
openssl,
bottle,
pytestCheckHook,
flaky,
flask,
setuptools,
}:
buildPythonPackage rec {
pname = "pycurl";
version = "7.45.3";
version = "7.45.3-unstable-2024-10-17";
pyproject = true;
disabled = isPyPy || pythonOlder "3.8"; # https://github.com/pycurl/pycurl/issues/208
disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
src = fetchPypi {
inherit pname version;
hash = "sha256-jCRxr5B5rXmOFkXsCw09QiPbaHN50X3TanBjdEn4HWs=";
src = fetchFromGitHub {
owner = "pycurl";
repo = "pycurl";
# Pinned to newer commit, since the release cadence is not keeping up with curl itself
#rev = "refs/tags/REL_${lib.replaceStrings [ "." ] [ "_" ] version}";
rev = "885d08b4d3cbc59547b8b80fbd13ab5fc6f27238";
hash = "sha256-WnrQhv6xiA+/Uz0hUmQxmEUasxtvlIV2EjlO+ZOUgI8=";
};
patches = [
# Don't use -flat_namespace on macOS
# https://github.com/pycurl/pycurl/pull/855 remove on next update
(fetchpatch {
name = "no_flat_namespace.patch";
url = "https://github.com/pycurl/pycurl/commit/7deb85e24981e23258ea411dcc79ca9b527a297d.patch";
hash = "sha256-tk0PQy3cHyXxFnoVYNQV+KD/07i7AUYHNJnrw6H8tHk=";
})
];
__darwinAllowLocalNetworking = true;
preConfigure = ''
substituteInPlace setup.py \
--replace-fail '--static-libs' '--libs'
@@ -46,19 +37,24 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [ curl ];
buildInputs = [
curl
openssl
];
nativeBuildInputs = [ curl ];
pythonImportsCheck = [ "pycurl" ];
nativeCheckInputs = [
bottle
flaky
flask
pytestCheckHook
];
__darwinAllowLocalNetworking = true;
pytestFlagsArray = [
# don't pick up the tests directory below examples/
"tests"
@@ -68,8 +64,6 @@ buildPythonPackage rec {
export HOME=$TMPDIR
'';
pythonImportsCheck = [ "pycurl" ];
disabledTests =
[
# tests that require network access
@@ -83,27 +77,24 @@ buildPythonPackage rec {
"test_libcurl_ssl_gnutls"
# AssertionError: assert 'crypto' in ['curl']
"test_ssl_in_static_libs"
# tests that require curl with http3Support
"test_http_version_3"
# https://github.com/pycurl/pycurl/issues/819
"test_multi_socket_select"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# https://github.com/pycurl/pycurl/issues/729
"test_easy_pause_unpause"
"test_multi_socket_action"
# https://github.com/pycurl/pycurl/issues/822
"test_request_with_verifypeer"
# https://github.com/pycurl/pycurl/issues/836
"test_proxy_tlsauth"
# AssertionError: 'Москва' != '\n...
"test_encoded_unicode_header"
# https://github.com/pycurl/pycurl/issues/856
"test_multi_info_read"
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
# Fatal Python error: Segmentation fault
"cadata_test"
];
disabledTestPaths = [
# https://github.com/pycurl/pycurl/issues/856
"tests/multi_test.py"
];
meta = with lib; {
description = "Python Interface To The cURL library";
homepage = "http://pycurl.io/";
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "setuptools";
version = "75.1.0";
version = "75.1.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "pypa";
repo = "setuptools";
rev = "refs/tags/v${version}";
hash = "sha256-ZvhXfusayUHHFXl7ZBksFhxTi1p+Va6qAwq7Fo7Tg/s=";
hash = "sha256-b8O/DrDWAbD6ht9M762fFN6kPtV8hAbn1gAN9SS7H5g=";
};
patches = [
@@ -0,0 +1,13 @@
diff --git a/hadrian/src/Settings/Default.hs b/hadrian/src/Settings/Default.hs
index 0b743788ec..a7ff841609 100644
--- a/hadrian/src/Settings/Default.hs
+++ b/hadrian/src/Settings/Default.hs
@@ -249,7 +249,7 @@ defaultExtraArgs =
defaultHaddockExtraArgs :: Args
defaultHaddockExtraArgs = builder (Haddock BuildPackage) ?
- mconcat [ arg "--hyperlinked-source", arg "--hoogle", arg "--quickjump" ]
+ mconcat [ arg "--hoogle", arg "--quickjump" ]
-- | Default source arguments, e.g. optimisation settings.
-115
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;
};
}
+2 -29
View File
@@ -12,8 +12,8 @@ let
in
buildNodejs {
inherit enableNpm;
version = "20.18.0";
sha256 = "7d9433e91fd88d82ba8de86e711ec41907638e227993d22e95126b02f6cd714a";
version = "20.18.1";
sha256 = "91df43f8ab6c3f7be81522d73313dbdd5634bbca228ef0e6d9369fe0ab8cccd0";
patches = [
./configure-emulator.patch
./configure-armv6-vfpv2.patch
@@ -21,32 +21,5 @@ buildNodejs {
./bypass-darwin-xcrun-node16.patch
./node-npm-build-npm-package-logic.patch
./use-correct-env-in-tests.patch
# Patches for OpenSSL 3.2
# Patches not yet released
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/f8b7a171463e775da304bccf4cf165e634525c7e.patch?full_index=1";
hash = "sha256-imptUwt2oG8pPGKD3V6m5NQXuahis71UpXiJm4C0E6o=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/6dfa3e46d3d2f8cfba7da636d48a5c41b0132cd7.patch?full_index=1";
hash = "sha256-ITtGsvZI6fliirCKvbMH9N2Xoy3001bz+hS3NPoqvzg=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/29b9c72b05786061cde58a5ae11cfcb580ab6c28.patch?full_index=1";
hash = "sha256-xaqtwsrOIyRV5zzccab+nDNG8kUgO6AjrVYJNmjeNP0=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/cfe58cfdc488da71e655d3da709292ce6d9ddb58.patch?full_index=1";
hash = "sha256-9GblpbQcYfoiE5R7fETsdW7v1Mm2Xdr4+xRNgUpLO+8=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/2cec716c48cea816dcd5bf4997ae3cdf1fe4cd90.patch?full_index=1";
hash = "sha256-ExIkAj8yRJEK39OfV6A53HiuZsfQOm82/Tvj0nCaI8A=";
})
(fetchpatch2 {
url = "https://github.com/nodejs/node/commit/0f7bdcc17fbc7098b89f238f4bd8ecad9367887b.patch?full_index=1";
hash = "sha256-lXx6QyD2anlY9qAwjNMFM2VcHckBshghUF1NaMoaNl4=";
})
] ++ gypPatches;
}
+2 -2
View File
@@ -185,7 +185,7 @@ assert withBootloader -> withEfi;
let
wantCurl = withRemote || withImportd;
wantGcrypt = withResolved || withImportd;
version = "256.7";
version = "256.8";
# Use the command below to update `releaseTimestamp` on every (major) version
# change. More details in the commentary at mesonFlags.
@@ -203,7 +203,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "systemd";
repo = "systemd";
rev = "v${version}";
hash = "sha256-x214fOhEWLoiexRrN4lGx4Pqx2+jYN94w9GzntVRcZ4=";
hash = "sha256-L/MCsCCMVvK7LgxlaLFpnmsJuTu33cPaiMxIpHU7Tzg=";
};
# On major changes, or when otherwise required, you *must* :
+2 -2
View File
@@ -1,6 +1,6 @@
import ./generic.nix {
version = "16.4";
hash = "sha256-lxdm1kWqc+k7nvTjvkQgG09FtUdwlbBJElQD+fM4bW8=";
version = "16.5";
hash = "sha256-psu7cDf5jLivp9OXC3xIBAzwKxFeOSU6DAN6i7jnePA=";
muslPatches = {
dont-use-locale-a = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/dont-use-locale-a-on-musl.patch?id=08a24be262339fd093e641860680944c3590238e";
+2 -12
View File
@@ -7,7 +7,7 @@ let
, pkg-config, libxml2, tzdata, libkrb5, substituteAll, darwin
, linux-pam, bison, flex, perl, docbook_xml_dtd_45, docbook-xsl-nons, libxslt
, removeReferencesTo, writeShellApplication
, removeReferencesTo, writeShellScriptBin
, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs
, gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic
@@ -49,10 +49,7 @@ let
else
stdenv;
pg_config = writeShellApplication {
name = "pg_config";
text = builtins.readFile ./pg_config.sh;
};
pg_config = writeShellScriptBin "pg_config" (builtins.readFile ./pg_config.sh);
in stdenv'.mkDerivation (finalAttrs: {
inherit version;
pname = pname + lib.optionalString jitSupport "-jit";
@@ -157,13 +154,6 @@ let
src = ./patches/locale-binary-path.patch;
locale = "${if stdenv.hostPlatform.isDarwin then darwin.adv_cmds else lib.getBin stdenv.cc.libc}/bin/locale";
})
] ++ lib.optionals (olderThan "17" && atLeast "16") [
# TODO: Remove this with the next set of minor releases
(fetchpatch ({
url = "https://github.com/postgres/postgres/commit/b27622c90869aab63cfe22159a459c57768b0fa4.patch";
hash = "sha256-7G+BkJULhyx6nlMEjClcr2PJg6awgymZHr2JgGhXanA=";
excludes = [ "doc/*" ];
}))
] ++ lib.optionals stdenv'.hostPlatform.isMusl (
# Using fetchurl instead of fetchpatch on purpose: https://github.com/NixOS/nixpkgs/issues/240141
map fetchurl (lib.attrValues muslPatches)
+2
View File
@@ -1,3 +1,5 @@
set -euo pipefail
# The real pg_config needs to be in the same path as the "postgres" binary
# to return proper paths. However, we want it in the -dev output to prevent
# cyclic references and to prevent blowing up the runtime closure. Thus, we
+8
View File
@@ -149,6 +149,14 @@ self: super:
libX11 = super.libX11.overrideAttrs (attrs: {
outputs = [ "out" "dev" "man" ];
patches = [
# Fix spurious Xerror when running synchronized
# https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/264
(fetchpatch {
url = "https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/f3d6ebac35301d4ad068e307f0fbe6aa12ccbccb.patch";
hash = "sha256-wQNMsbQ+h9VlNiWr+r34AxvViC8fq02ZhcARRnw7O9k=";
})
];
configureFlags = attrs.configureFlags or []
++ malloc0ReturnsNullCrossFlag
++ lib.optional (stdenv.targetPlatform.useLLVM or false) "ac_cv_path_RAWCPP=cpp";
+11 -3
View File
@@ -114,9 +114,17 @@ let
export NIX_NO_SELF_RPATH=1
'' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) ''
export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion}
'' + lib.optionalString targetPlatform.isDarwin ''
export NIX_DONT_SET_RPATH_FOR_TARGET=1
'';
''
# TODO this should be uncommented, but it causes stupid mass rebuilds due to
# `pkgsCross.*.buildPackages` not being the same, resulting in cross-compiling
# for a target rebuilding all of `nativeBuildInputs` for that target.
#
# I think the best solution would just be to fixup linux RPATHs so we don't
# need to set `-rpath` anywhere.
# + lib.optionalString targetPlatform.isDarwin ''
# export NIX_DONT_SET_RPATH_FOR_TARGET=1
# ''
;
inherit initialPath shell
defaultNativeBuildInputs defaultBuildInputs;
@@ -329,8 +329,6 @@ self = stdenv.mkDerivation {
license = licenses.lgpl21Plus;
inherit maintainers;
platforms = platforms.unix;
# Requires refactorings in nixpkgs: https://github.com/NixOS/nixpkgs/pull/356983
broken = stdenv.hostPlatform.isDarwin && enableStatic;
outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
mainProgram = "nix";
knownVulnerabilities = lib.optional (!builtins.elem (lib.versions.majorMinor version) unaffectedByFodSandboxEscape && !atLeast221) "CVE-2024-27297";
+3 -25
View File
@@ -5583,10 +5583,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";
@@ -6677,16 +6673,10 @@ with pkgs;
stdenv.targetPlatform));
in pkgs.${"llvmPackages_${minSupported}"};
llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 {
inherit (stdenvAdapters) overrideCC;
buildLlvmTools = buildPackages.llvmPackages_12.tools;
targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm;
});
inherit (rec {
llvmPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/llvm { });
llvmPackages_12 = llvmPackagesSet."12";
llvmPackages_13 = llvmPackagesSet."13";
llvmPackages_14 = llvmPackagesSet."14";
llvmPackages_15 = llvmPackagesSet."15";
@@ -6705,7 +6695,8 @@ with pkgs;
lldb_19 = llvmPackages_19.lldb;
llvm_19 = llvmPackages_19.llvm;
bolt_19 = llvmPackages_19.bolt;
}) llvmPackages_13
}) llvmPackages_12
llvmPackages_13
llvmPackages_14
llvmPackages_15
llvmPackages_16
@@ -9019,8 +9010,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 { };
@@ -9061,10 +9050,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
@@ -9089,8 +9074,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 { };
@@ -9145,8 +9128,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}:
@@ -10350,8 +10331,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 {
@@ -11103,7 +11082,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 { };
+3 -8
View File
@@ -429,13 +429,8 @@ in {
ghc910 = compiler.ghc9101;
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
bootPkgs =
# For GHC 9.6 no armv7l bindists are available.
if stdenv.buildPlatform.isAarch32 then
bb.packages.ghc963
else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc963
else
bb.packages.ghc963Binary;
# No suitable bindist packaged yet
bb.packages.ghc9101;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
@@ -604,7 +599,7 @@ in {
ghcHEAD = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghcHEAD;
ghc = bh.compiler.ghcHEAD;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { };
};
ghcjs = packages.ghcjs810;