diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py index ca778a576f72..6061c1bc09b8 100644 --- a/nixos/lib/test-driver/test_driver/driver.py +++ b/nixos/lib/test-driver/test_driver/driver.py @@ -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) diff --git a/pkgs/by-name/au/autoconf-archive/0001-ax_check_gl.m4-properly-quote-m4_fatal.patch b/pkgs/by-name/au/autoconf-archive/0001-ax_check_gl.m4-properly-quote-m4_fatal.patch new file mode 100644 index 000000000000..d8dd804eac38 --- /dev/null +++ b/pkgs/by-name/au/autoconf-archive/0001-ax_check_gl.m4-properly-quote-m4_fatal.patch @@ -0,0 +1,38 @@ +From 427e226a2fe3980388abffd6de25ed6b9591cce3 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +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 + diff --git a/pkgs/by-name/au/autoconf-archive/0002-ax_check_glx.m4-properly-quote-m4_fatal.patch b/pkgs/by-name/au/autoconf-archive/0002-ax_check_glx.m4-properly-quote-m4_fatal.patch new file mode 100644 index 000000000000..98ec29531cd4 --- /dev/null +++ b/pkgs/by-name/au/autoconf-archive/0002-ax_check_glx.m4-properly-quote-m4_fatal.patch @@ -0,0 +1,37 @@ +From e25f8d9e3ead52f998535b86c763065c5b45cc59 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +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 + diff --git a/pkgs/by-name/au/autoconf-archive/0003-ax_switch_flags.m4-properly-quote-m4_fatal.patch b/pkgs/by-name/au/autoconf-archive/0003-ax_switch_flags.m4-properly-quote-m4_fatal.patch new file mode 100644 index 000000000000..d3b8f18dc0e8 --- /dev/null +++ b/pkgs/by-name/au/autoconf-archive/0003-ax_switch_flags.m4-properly-quote-m4_fatal.patch @@ -0,0 +1,32 @@ +From 3a23daa3da0eb1a256fda631867e19345d5f6e3a Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +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 + diff --git a/pkgs/by-name/au/autoconf-archive/package.nix b/pkgs/by-name/au/autoconf-archive/package.nix index a507fd8094ef..8ac14c61bda4 100644 --- a/pkgs/by-name/au/autoconf-archive/package.nix +++ b/pkgs/by-name/au/autoconf-archive/package.nix @@ -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; diff --git a/pkgs/by-name/cp/cpptoml/add-limits-include.patch b/pkgs/by-name/cp/cpptoml/add-limits-include.patch new file mode 100644 index 000000000000..6ab767ad5b9f --- /dev/null +++ b/pkgs/by-name/cp/cpptoml/add-limits-include.patch @@ -0,0 +1,21 @@ +From c55a516e90133d89d67285429c6474241346d27a Mon Sep 17 00:00:00 2001 +From: Dirk Eddelbuettel +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 + #include + #include ++#include + #include + #include + #include diff --git a/pkgs/by-name/cp/cpptoml/package.nix b/pkgs/by-name/cp/cpptoml/package.nix index 888af1c18631..421f67b8260a 100644 --- a/pkgs/by-name/cp/cpptoml/package.nix +++ b/pkgs/by-name/cp/cpptoml/package.nix @@ -11,6 +11,12 @@ stdenv.mkDerivation rec { sha256 = "0zlgdlk9nsskmr8xc2ajm6mn1x5wz82ssx9w88s02icz71mcihrx"; }; + patches = [ + # Fix compilation with GCC 11. + # + ./add-limits-include.patch + ]; + nativeBuildInputs = [ cmake ]; cmakeFlags = [ diff --git a/pkgs/by-name/cu/curlMinimal/fix-netrc-regression-2.patch b/pkgs/by-name/cu/curlMinimal/fix-netrc-regression-2.patch new file mode 100644 index 000000000000..8cf36fea64b6 --- /dev/null +++ b/pkgs/by-name/cu/curlMinimal/fix-netrc-regression-2.patch @@ -0,0 +1,31 @@ +From 0cdde0fdfbeb8c35420f6d03fa4b77ed73497694 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +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) + { diff --git a/pkgs/by-name/cu/curlMinimal/fix-netrc-regression.patch b/pkgs/by-name/cu/curlMinimal/fix-netrc-regression.patch new file mode 100644 index 000000000000..d614be60b9e4 --- /dev/null +++ b/pkgs/by-name/cu/curlMinimal/fix-netrc-regression.patch @@ -0,0 +1,217 @@ +From f5c616930b5cf148b1b2632da4f5963ff48bdf88 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +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 @@ ++ ++ ++ ++netrc ++HTTP ++ ++ ++# ++# Server-side ++ ++ ++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- ++ ++ ++ ++# ++# Client-side ++ ++ ++http ++ ++ ++proxy ++ ++ ++# Reproducing issue 15496 ++ ++HTTP with .netrc using duped easy handle ++ ++ ++lib%TESTNUMBER ++ ++ ++http://github.com %LOGDIR/netrc%TESTNUMBER http://%HOSTIP:%HTTPPORT/ ++ ++ ++ ++machine github.com ++ ++login daniel ++password $y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1 ++ ++ ++ ++ ++ ++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 ++ ++ ++ ++ +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, , 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 ++ ++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; ++} diff --git a/pkgs/by-name/cu/curlMinimal/package.nix b/pkgs/by-name/cu/curlMinimal/package.nix index 399101a21435..43962736bb85 100644 --- a/pkgs/by-name/cu/curlMinimal/package.nix +++ b/pkgs/by-name/cu/curlMinimal/package.nix @@ -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 = '' diff --git a/pkgs/by-name/e2/e2fsprogs/package.nix b/pkgs/by-name/e2/e2fsprogs/package.nix index 4d0849b896d0..43549c233b82 100644 --- a/pkgs/by-name/e2/e2fsprogs/package.nix +++ b/pkgs/by-name/e2/e2fsprogs/package.nix @@ -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"; diff --git a/pkgs/development/libraries/edencommon/increase-test-discovery-timeout.patch b/pkgs/by-name/ed/edencommon/increase-test-discovery-timeout.patch similarity index 100% rename from pkgs/development/libraries/edencommon/increase-test-discovery-timeout.patch rename to pkgs/by-name/ed/edencommon/increase-test-discovery-timeout.patch diff --git a/pkgs/by-name/ed/edencommon/package.nix b/pkgs/by-name/ed/edencommon/package.nix new file mode 100644 index 000000000000..060ea7cc2da2 --- /dev/null +++ b/pkgs/by-name/ed/edencommon/package.nix @@ -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 + # it’s 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 + ]; + }; +}) diff --git a/pkgs/by-name/fb/fb303/package.nix b/pkgs/by-name/fb/fb303/package.nix new file mode 100644 index 000000000000..b03e66eb861c --- /dev/null +++ b/pkgs/by-name/fb/fb303/package.nix @@ -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 + ]; + }; +}) diff --git a/pkgs/by-name/fb/fbthrift/package.nix b/pkgs/by-name/fb/fbthrift/package.nix new file mode 100644 index 000000000000..a189e7a66a93 --- /dev/null +++ b/pkgs/by-name/fb/fbthrift/package.nix @@ -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: Can’t 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 don‘t 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 + ]; + }; +}) diff --git a/pkgs/by-name/fb/fbthrift/remove-cmake-install-rpath.patch b/pkgs/by-name/fb/fbthrift/remove-cmake-install-rpath.patch new file mode 100644 index 000000000000..84271ca24697 --- /dev/null +++ b/pkgs/by-name/fb/fbthrift/remove-cmake-install-rpath.patch @@ -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". diff --git a/pkgs/by-name/fi/fizz/package.nix b/pkgs/by-name/fi/fizz/package.nix new file mode 100644 index 000000000000..4c5c1efe08c6 --- /dev/null +++ b/pkgs/by-name/fi/fizz/package.nix @@ -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 + ]; + }; +}) diff --git a/pkgs/by-name/fo/folly/package.nix b/pkgs/by-name/fo/folly/package.nix new file mode 100644 index 000000000000..3d84de4ea5c7 --- /dev/null +++ b/pkgs/by-name/fo/folly/package.nix @@ -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` doesn’t 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 + ]; + }; +}) diff --git a/pkgs/by-name/li/libarchive/fix-pkg-config-iconv.patch b/pkgs/by-name/li/libarchive/fix-pkg-config-iconv.patch new file mode 100644 index 000000000000..209a293b460b --- /dev/null +++ b/pkgs/by-name/li/libarchive/fix-pkg-config-iconv.patch @@ -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 ]) + 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) diff --git a/pkgs/by-name/li/libarchive/package.nix b/pkgs/by-name/li/libarchive/package.nix index 306c92c6e71a..6ffa2b531441 100644 --- a/pkgs/by-name/li/libarchive/package.nix +++ b/pkgs/by-name/li/libarchive/package.nix @@ -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 don’t ship a `.pc` file for their `libiconv`. This isn’t + # 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 non‐portable MSYS2 thing or something. + # + # See: + # + # * + # * + # * + ./fix-pkg-config-iconv.patch + ]; + outputs = [ "out" "lib" "dev" ]; postPatch = let diff --git a/pkgs/by-name/li/libcamera/package.nix b/pkgs/by-name/li/libcamera/package.nix index f576c74cc824..cd056cbf3074 100644 --- a/pkgs/by-name/li/libcamera/package.nix +++ b/pkgs/by-name/li/libcamera/package.nix @@ -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 = [ diff --git a/pkgs/by-name/li/librist/musl.patch b/pkgs/by-name/li/librist/musl.patch new file mode 100644 index 000000000000..95f432549777 --- /dev/null +++ b/pkgs/by-name/li/librist/musl.patch @@ -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 ++ + #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__) diff --git a/pkgs/by-name/li/librist/package.nix b/pkgs/by-name/li/librist/package.nix index 788e75eafdda..97fbece7aa27 100644 --- a/pkgs/by-name/li/librist/package.nix +++ b/pkgs/by-name/li/librist/package.nix @@ -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 = [ diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh index a88a276f09a8..b2061a12058c 100644 --- a/pkgs/by-name/me/meson/setup-hook.sh +++ b/pkgs/by-name/me/meson/setup-hook.sh @@ -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[@]}" diff --git a/pkgs/by-name/mv/mvfst/package.nix b/pkgs/by-name/mv/mvfst/package.nix new file mode 100644 index 000000000000..de686a269b51 --- /dev/null +++ b/pkgs/by-name/mv/mvfst/package.nix @@ -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 don‘t 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 + ]; + }; +}) diff --git a/pkgs/by-name/wa/wangle/package.nix b/pkgs/by-name/wa/wangle/package.nix new file mode 100644 index 000000000000..356f479eab13 --- /dev/null +++ b/pkgs/by-name/wa/wangle/package.nix @@ -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 + ]; + }; +}) diff --git a/pkgs/development/tools/watchman/Cargo.lock b/pkgs/by-name/wa/watchman/Cargo.lock similarity index 67% rename from pkgs/development/tools/watchman/Cargo.lock rename to pkgs/by-name/wa/watchman/Cargo.lock index 4da733140b48..09cd62514f5a 100644 --- a/pkgs/development/tools/watchman/Cargo.lock +++ b/pkgs/by-name/wa/watchman/Cargo.lock @@ -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", ] diff --git a/pkgs/by-name/wa/watchman/package.nix b/pkgs/by-name/wa/watchman/package.nix new file mode 100644 index 000000000000..8ee1aaf2c3b4 --- /dev/null +++ b/pkgs/by-name/wa/watchman/package.nix @@ -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; + }; +}) diff --git a/pkgs/by-name/wd/wdt/package.nix b/pkgs/by-name/wd/wdt/package.nix index 9eddb85a4013..f8ff82167704 100644 --- a/pkgs/by-name/wd/wdt/package.nix +++ b/pkgs/by-name/wd/wdt/package.nix @@ -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 diff --git a/pkgs/by-name/xc/xcbuild/patches/Use-system-toolchain-for-usr-bin.patch b/pkgs/by-name/xc/xcbuild/patches/Use-system-toolchain-for-usr-bin.patch index 9e8314235709..d617b4206c1b 100644 --- a/pkgs/by-name/xc/xcbuild/patches/Use-system-toolchain-for-usr-bin.patch +++ b/pkgs/by-name/xc/xcbuild/patches/Use-system-toolchain-for-usr-bin.patch @@ -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 #include @@ -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 kSystemDeveloperDirs = { ++ "/private/var/select/developer_dir", ++ "/private/var/db/xcode_select_link" ++ }; ++} + class Options { private: ext::optional _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 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 environment = processContext->environmentVariables(); - +- std::unordered_map environment = processContext->environmentVariables(); + if (target != nullptr) { /* - * Update effective environment to include the target path. diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix index d98a50f34fe4..2ae890496aff 100644 --- a/pkgs/data/misc/cacert/default.nix +++ b/pkgs/data/misc/cacert/default.nix @@ -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; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index b062a2d514d4..7bb2135779a4 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -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 diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/7-12-codesign.patch b/pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch similarity index 100% rename from pkgs/development/compilers/llvm/common/compiler-rt/7-12-codesign.patch rename to pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix deleted file mode 100644 index 352cf8313d67..000000000000 --- a/pkgs/development/compilers/llvm/12/default.nix +++ /dev/null @@ -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 { = 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 - # doesn’t 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) diff --git a/pkgs/development/compilers/llvm/common/clang/default.nix b/pkgs/development/compilers/llvm/common/clang/default.nix index 88f5dfd84d6a..44e13c48fd4b 100644 --- a/pkgs/development/compilers/llvm/common/clang/default.nix +++ b/pkgs/development/compilers/llvm/common/clang/default.nix @@ -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 >= diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix index 27e5254d1728..f859a415b5db 100644 --- a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix @@ -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) diff --git a/pkgs/development/compilers/llvm/common/default.nix b/pkgs/development/compilers/llvm/common/default.nix index 707bb91b875d..b53f76e96c11 100644 --- a/pkgs/development/compilers/llvm/common/default.nix +++ b/pkgs/development/compilers/llvm/common/default.nix @@ -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 { diff --git a/pkgs/development/compilers/llvm/common/libcxx/default.nix b/pkgs/development/compilers/llvm/common/libcxx/default.nix index 453013cdbd27..fe9ae5d0d502 100644 --- a/pkgs/development/compilers/llvm/common/libcxx/default.nix +++ b/pkgs/development/compilers/llvm/common/libcxx/default.nix @@ -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 diff --git a/pkgs/development/compilers/llvm/common/libunwind/default.nix b/pkgs/development/compilers/llvm/common/libunwind/default.nix index 63b9737092b8..4f1fa0107c14 100644 --- a/pkgs/development/compilers/llvm/common/libunwind/default.nix +++ b/pkgs/development/compilers/llvm/common/libunwind/default.nix @@ -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 {})) diff --git a/pkgs/development/compilers/llvm/common/lld/default.nix b/pkgs/development/compilers/llvm/common/lld/default.nix index 32cf5cb46460..4008f2076d73 100644 --- a/pkgs/development/compilers/llvm/common/lld/default.nix +++ b/pkgs/development/compilers/llvm/common/lld/default.nix @@ -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 ]; diff --git a/pkgs/development/compilers/llvm/common/llvm/default.nix b/pkgs/development/compilers/llvm/common/llvm/default.nix index bd384108408c..be106b3db295 100644 --- a/pkgs/development/compilers/llvm/common/llvm/default.nix +++ b/pkgs/development/compilers/llvm/common/llvm/default.nix @@ -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 diff --git a/pkgs/development/compilers/llvm/common/openmp/default.nix b/pkgs/development/compilers/llvm/common/openmp/default.nix index 1ad5948edb86..1fe089938f03 100644 --- a/pkgs/development/compilers/llvm/common/openmp/default.nix +++ b/pkgs/development/compilers/llvm/common/openmp/default.nix @@ -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" ]; diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index 390a1b43eca6..5971dd73b4d3 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -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="; diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 06e03b223bee..e1d497a992e9 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -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); diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix new file mode 100644 index 000000000000..6d45b7041f1b --- /dev/null +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -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; +} diff --git a/pkgs/development/interpreters/tcl/8.6.nix b/pkgs/development/interpreters/tcl/8.6.nix index 0edd47e83d6c..9da653b2f761 100644 --- a/pkgs/development/interpreters/tcl/8.6.nix +++ b/pkgs/development/interpreters/tcl/8.6.nix @@ -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="; }; }) diff --git a/pkgs/development/libraries/edencommon/default.nix b/pkgs/development/libraries/edencommon/default.nix deleted file mode 100644 index ce26bc6f7125..000000000000 --- a/pkgs/development/libraries/edencommon/default.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/development/libraries/fb303/default.nix b/pkgs/development/libraries/fb303/default.nix deleted file mode 100644 index 659497d690f6..000000000000 --- a/pkgs/development/libraries/fb303/default.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/development/libraries/fbthrift/default.nix b/pkgs/development/libraries/fbthrift/default.nix deleted file mode 100644 index 04bce085c088..000000000000 --- a/pkgs/development/libraries/fbthrift/default.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/development/libraries/fizz/default.nix b/pkgs/development/libraries/fizz/default.nix deleted file mode 100644 index 4c38c54316b7..000000000000 --- a/pkgs/development/libraries/fizz/default.nix +++ /dev/null @@ -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 ]; - }; -}) diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix deleted file mode 100644 index 8a601382f8ea..000000000000 --- a/pkgs/development/libraries/folly/default.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/development/libraries/libgit2/default.nix b/pkgs/development/libraries/libgit2/default.nix index 847894d06587..72c52ea899eb 100644 --- a/pkgs/development/libraries/libgit2/default.nix +++ b/pkgs/development/libraries/libgit2/default.nix @@ -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; diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 12fee00ae9fc..2b8020d43093 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -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" diff --git a/pkgs/development/libraries/mvfst/default.nix b/pkgs/development/libraries/mvfst/default.nix deleted file mode 100644 index 7c9d2e8da445..000000000000 --- a/pkgs/development/libraries/mvfst/default.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/development/libraries/tk/8.6.nix b/pkgs/development/libraries/tk/8.6.nix index c8f4efa7f7ac..84028762dbba 100644 --- a/pkgs/development/libraries/tk/8.6.nix +++ b/pkgs/development/libraries/tk/8.6.nix @@ -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 = [ diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix index 7a4b0a76d3b4..dfe14f22ec45 100644 --- a/pkgs/development/libraries/tk/generic.nix +++ b/pkgs/development/libraries/tk/generic.nix @@ -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 = '' diff --git a/pkgs/development/libraries/wangle/default.nix b/pkgs/development/libraries/wangle/default.nix deleted file mode 100644 index d07145641a70..000000000000 --- a/pkgs/development/libraries/wangle/default.nix +++ /dev/null @@ -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 ]; - }; -}) diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix index 2d18e7110a7b..40aa79a8a7e9 100644 --- a/pkgs/development/python-modules/pycurl/default.nix +++ b/pkgs/development/python-modules/pycurl/default.nix @@ -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/"; diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix index 8b53de0a4890..c39ae6917bcd 100644 --- a/pkgs/development/python-modules/setuptools/default.nix +++ b/pkgs/development/python-modules/setuptools/default.nix @@ -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 = [ diff --git a/pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source-extra-args.patch b/pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source-extra-args.patch new file mode 100644 index 000000000000..dbbf126a4425 --- /dev/null +++ b/pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source-extra-args.patch @@ -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. diff --git a/pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source.patch b/pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source-pre-9.8.patch similarity index 100% rename from pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source.patch rename to pkgs/development/tools/haskell/hadrian/disable-hyperlinked-source-pre-9.8.patch diff --git a/pkgs/development/tools/watchman/default.nix b/pkgs/development/tools/watchman/default.nix deleted file mode 100644 index aa915d89c7fa..000000000000 --- a/pkgs/development/tools/watchman/default.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/development/web/nodejs/v20.nix b/pkgs/development/web/nodejs/v20.nix index 4b0be19dad77..7a8865afae94 100644 --- a/pkgs/development/web/nodejs/v20.nix +++ b/pkgs/development/web/nodejs/v20.nix @@ -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; } diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 691dd4f815ba..425775e9dd16 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -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* : diff --git a/pkgs/servers/sql/postgresql/16.nix b/pkgs/servers/sql/postgresql/16.nix index 16215d890be4..d8322f42d387 100644 --- a/pkgs/servers/sql/postgresql/16.nix +++ b/pkgs/servers/sql/postgresql/16.nix @@ -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"; diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix index 4630b766fd67..af643c6c0e2b 100644 --- a/pkgs/servers/sql/postgresql/generic.nix +++ b/pkgs/servers/sql/postgresql/generic.nix @@ -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) diff --git a/pkgs/servers/sql/postgresql/pg_config.sh b/pkgs/servers/sql/postgresql/pg_config.sh index 9538b213fb97..d6293999a12d 100644 --- a/pkgs/servers/sql/postgresql/pg_config.sh +++ b/pkgs/servers/sql/postgresql/pg_config.sh @@ -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 diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index fcc9937b63b8..94158aa99fcd 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -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"; diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 2cbd2636a463..9952a6ae0623 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -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; diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix index f3629c42d78b..a4d233b2b128 100644 --- a/pkgs/tools/package-management/nix/common.nix +++ b/pkgs/tools/package-management/nix/common.nix @@ -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"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 341f945e755b..569b16ded4fb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index b3f6a71d3315..ececbd86ee3e 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -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;