Merge branch 'staging' into staging-next

This commit is contained in:
Vladimír Čunát
2026-08-20 09:01:12 +02:00
248 changed files with 5282 additions and 1450 deletions

View File

@@ -140,6 +140,8 @@
[pnpm `fetcherVersion` section](#javascript-pnpm-fetcherVersion) of the manual
for details.
- `makeSetupHook` now uses structured attributes and only makes substitutions based on the values of the `substitutions` argument - other derivation attributes are no longer considered.
- `rebuilderd` has been updated to 0.27.0 introducing breaking changes. See upstream changelog for details: [0.26.0](https://github.com/kpcyrd/rebuilderd/releases/tag/v0.26.0), [0.27.0](https://github.com/kpcyrd/rebuilderd/releases/tag/v0.27.0)
- Starting with v14, `flameshot` will primarily utilise xdg-desktop-portal calls for screenshotting. This will directly affect users on X11 window managers due to the lack of a compatible portal with Screenshot feature. See [upstream changelog](https://github.com/flameshot-org/flameshot/releases/tag/v14.0.0) or [NixOS Flameshot](https://wiki.nixos.org/wiki/Flameshot) wiki page for workarounds.

View File

@@ -108,7 +108,7 @@ in
DynamicUser = true;
ExecStart = lib.getExe cfg.package;
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
PrivateDevices = true;
ProtectClock = true;
ProtectControlGroups = true;

View File

@@ -752,7 +752,7 @@ in
"AF_INET6"
];
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
RestrictRealtime = true;
RestrictSUIDSGID = true;
PrivateMounts = true;

View File

@@ -355,7 +355,7 @@ in
PrivateDevices = true;
ProtectSystem = "full";
CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ];
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;

View File

@@ -1061,7 +1061,7 @@ in
"CAP_SYS_RESOURCE"
];
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
NoNewPrivileges = false; # e.g for sendmail
OOMPolicy = "continue";
PrivateTmp = true;

View File

@@ -1011,7 +1011,7 @@ in
PrivateDevices = true;
ProtectSystem = "full";
CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ];
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;

View File

@@ -777,7 +777,7 @@ in
];
RestrictNamespaces = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
RestrictRealtime = true;
RestrictSUIDSGID = true;
RemoveIPC = true;

View File

@@ -953,7 +953,7 @@ in
++ lib.optional (useSendmail && config.services.postfix.enable) "AF_NETLINK";
RestrictNamespaces = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
RestrictRealtime = true;
RestrictSUIDSGID = true;
RemoveIPC = true;

View File

@@ -273,7 +273,7 @@ in
ProtectSystem = "strict";
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
ProtectHostname = true;
ProtectProc = true;
ProtectKernelLogs = true;

View File

@@ -1614,11 +1614,7 @@ in
];
RestrictNamespaces = true;
LockPersonality = true;
MemoryDenyWriteExecute =
!(
(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules)
|| (lib.getName cfg.package == "openresty")
);
MemoryDenyWriteExecute = false; # for pcre2 & several plugins
RestrictRealtime = true;
RestrictSUIDSGID = true;
RemoveIPC = true;

View File

@@ -139,7 +139,7 @@ in
"AF_INET6"
];
LockPersonality = true;
MemoryDenyWriteExecute = true;
MemoryDenyWriteExecute = false; # pcre2 jit
RestrictRealtime = true;
RestrictSUIDSGID = true;
PrivateMounts = true;

View File

@@ -478,6 +478,8 @@ stdenvNoCC.mkDerivation {
apple-sdk.__spliced.buildTarget or apple-sdk;
};
__structuredAttrs = true;
meta =
let
bintools_ = optionalAttrs (bintools != null) bintools;

View File

@@ -735,7 +735,6 @@ rec {
meta ? { },
passthru ? { },
substitutions ? { },
__structuredAttrs ? false,
}@args:
script:
runCommand name
@@ -745,10 +744,6 @@ rec {
# Make the position of the derivation accurate.
# Since not having `name` is deprecated, this should be fairly accurate.
pos = lib.unsafeGetAttrPos "name" args;
# TODO(@Artturin:) substitutions should be inside the env attrset
# but users are likely passing non-substitution arguments through substitutions
# turn off __structuredAttrs to unbreak substituteAll
inherit __structuredAttrs;
pname = name;
version = "26.05pre-git";
inherit meta;
@@ -756,6 +751,7 @@ rec {
inherit propagatedBuildInputs;
inherit propagatedNativeBuildInputs;
strictDeps = true;
__structuredAttrs = true;
# TODO 2023-01, no backport: simplify to inherit passthru;
passthru =
passthru
@@ -771,7 +767,9 @@ rec {
recordPropagatedDependencies
''
+ lib.optionalString (substitutions != { }) ''
substituteAll ${script} $out/nix-support/setup-hook
substitute ${script} $out/nix-support/setup-hook ${
lib.concatMapAttrsStringSep " " (name: _: "--subst-var ${name}") substitutions
}
''
);

View File

@@ -19,6 +19,7 @@
libpulseaudio,
libzip,
nlohmann_json,
stb,
SDL2,
spdlog,
tinyxml-2,
@@ -89,12 +90,6 @@ let
'';
};
stb' = fetchurl {
name = "stb_image.h";
url = "https://raw.githubusercontent.com/nothings/stb/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h";
hash = "sha256-xUsVponmofMsdeLsI6+kQuPg436JS3PBl00IZ5sg3Vw=";
};
stormlib' = applyPatches {
src = fetchFromGitHub {
owner = "ladislav-zezula";
@@ -220,7 +215,7 @@ stdenv.mkDerivation (finalAttrs: {
preConfigure = ''
# mirror 2ship's stb
mkdir stb
cp ${stb'} ./stb/${stb'.name}
cp ${stb}/include/stb/stb_image.h ./stb/stb_image.h
cp ${stb_impl} ./stb/${stb_impl.name}
substituteInPlace libultraship/cmake/dependencies/common.cmake \
--replace-fail "\''${STB_DIR}" "$(readlink -f ./stb)"

View File

@@ -45,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
description = "Open-source collection of C++ code designed to augment the C++ standard library";
homepage = "https://abseil.io/";

View File

@@ -50,6 +50,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
description = "Open-source collection of C++ code designed to augment the C++ standard library";
homepage = "https://abseil.io/";

View File

@@ -39,6 +39,8 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ gtest ];
__structuredAttrs = true;
meta = {
description = "Open-source collection of C++ code designed to augment the C++ standard library";
homepage = "https://abseil.io/";

View File

@@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ada";
version = "3.4.4";
version = "4.0.0";
src = fetchFromGitHub {
owner = "ada-url";
repo = "ada";
tag = "v${finalAttrs.version}";
hash = "sha256-kfUbsqQ+CsqnySKgeL1GFJLcDe1Irivp4CoZG93BZYg=";
hash = "sha256-TvjoLUKO2+YgS1mlyglLb+rBLTO/SWSBVA2S34Z6kMI=";
};
nativeBuildInputs = [

View File

@@ -22,8 +22,12 @@ stdenv.mkDerivation (finalAttrs: {
ninja
];
strictDeps = true;
doCheck = true;
__structuredAttrs = true;
meta = {
homepage = "https://github.com/argp-standalone/argp-standalone";
description = "Standalone version of arguments parsing functions from Glibc";

View File

@@ -151,7 +151,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
src = fetchFromGitHub {
owner = "asciidoc-py";
repo = "asciidoc-py";
rev = finalAttrs.version;
tag = finalAttrs.version;
hash = "sha256-td3C7xTWfSzdo9Bbz0dHW2oPaCQYmUE9H2sUFfg5HH0=";
};
@@ -320,6 +320,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
runHook postCheck
'';
__structuredAttrs = true;
meta = {
description = "Text-based document generation system";
longDescription = ''

View File

@@ -15,6 +15,8 @@ stdenv.mkDerivation {
buildInputs = [ pythonEnv ];
strictDeps = true;
src = ./source;
buildPhase = ''
@@ -33,6 +35,8 @@ stdenv.mkDerivation {
runHook postInstall
'';
__structuredAttrs = true;
meta = {
description = "Automatically patch ELF binaries using patchelf";
mainProgram = "auto-patchelf";

View File

@@ -240,6 +240,35 @@ def find_first_matching_rpath_with_origin(binary: Path, lib_dir: Path, rpaths: l
return Path(rpath)
return None
def relativize_rpath_to_origin(*, binary_path: Path, rpath_entries: list[Path], containing_path: Path) -> list[Path]:
"""
Rewrite absolute RPATH entries to use $ORIGIN when the entry sits
under containing_path (the --paths entry the binary was found
under).
The resulting RPATH is relocatable: as long as the directory layout
within containing_path is preserved, the whole tree can be moved
and the binary will still find its dependencies.
Entries that already contain $ORIGIN are left untouched.
Entries outside containing_path are also left absolute.
"""
containing_norm: Path = Path(os.path.normpath(containing_path))
new_rpath_entries: list[Path] = []
for entry in rpath_entries:
if "$ORIGIN" in entry.as_posix():
new_rpath_entries.append(entry)
continue
entry_norm: Path = Path(os.path.normpath(entry))
if not entry_norm.is_relative_to(containing_norm):
new_rpath_entries.append(entry)
continue
rel = os.path.relpath(entry_norm, binary_path.parent)
new_rpath_entries.append(Path("$ORIGIN") / rel)
return new_rpath_entries
class Event(Protocol):
"""Protocol for loggable events that occur during the auto-patchelf process."""
def to_human_readable_str(self) -> str: ...
@@ -317,7 +346,18 @@ class Logger:
def auto_patchelf_file(logger: Logger, path: Path, runtime_deps: list[Path], append_rpaths: list[Path] = [], keep_libc: bool = False, preserve_origin: bool = False, extra_args: list[str] = []) -> list[Dependency]:
def auto_patchelf_file(
*,
logger: Logger,
runtime_deps: list[Path],
append_rpaths: list[Path] = [],
keep_libc: bool = False,
preserve_origin: bool = False,
relativize_rpath: bool = False,
extra_args: list[str] = [],
path: Path,
containing_path: Path
) -> list[Dependency]:
try:
with open_elf(path) as elf:
@@ -436,6 +476,9 @@ def auto_patchelf_file(logger: Logger, path: Path, runtime_deps: list[Path], app
if "$ORIGIN" in existing_rpath:
rpath.append(Path(existing_rpath))
if relativize_rpath:
rpath = relativize_rpath_to_origin(binary_path=path, rpath_entries=rpath, containing_path=containing_path)
# Dedup the rpath
rpath_str = ":".join(dict.fromkeys(map(Path.as_posix, rpath)))
@@ -458,6 +501,7 @@ def auto_patchelf(
append_rpaths: list[Path] = [],
keep_libc: bool = False,
preserve_origin: bool = False,
relativize_rpath: bool = False,
add_existing: bool = True,
extra_args: list[str] = []) -> None:
@@ -472,9 +516,20 @@ def auto_patchelf(
populate_cache(lib_dirs)
dependencies = []
for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch):
if not path.is_symlink() and path.is_file():
dependencies += auto_patchelf_file(logger, path, runtime_deps, append_rpaths, keep_libc, preserve_origin, extra_args)
for containing_path in paths_to_patch:
for path in glob(containing_path, '*', recursive):
if not path.is_symlink() and path.is_file():
dependencies += auto_patchelf_file(
logger=logger,
runtime_deps=runtime_deps,
append_rpaths=append_rpaths,
keep_libc=keep_libc,
preserve_origin=preserve_origin,
relativize_rpath=relativize_rpath,
extra_args=extra_args,
path=path,
containing_path=containing_path
)
missing = [dep for dep in dependencies if not dep.found]
@@ -560,6 +615,12 @@ def main() -> None:
action="store_true",
help="When possible, replace absolute RPATH entries with original $ORIGIN entries that resolve to the same directory.",
)
parser.add_argument(
"--relativize-rpath",
dest="relativize_rpath",
action="store_true",
help="Rewrite absolute RPATH entries to use $ORIGIN when the binary and the entry live under the same --paths root, so the patched tree is relocatable.",
)
parser.add_argument(
"--ignore-existing",
dest="add_existing",
@@ -597,6 +658,7 @@ def main() -> None:
append_rpaths=args.append_rpaths,
keep_libc=args.keep_libc,
preserve_origin=args.preserve_origin,
relativize_rpath=args.relativize_rpath,
add_existing=args.add_existing,
extra_args=args.extra_args)

View File

@@ -28,6 +28,8 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ xz ];
__structuredAttrs = true;
meta = {
description = "Archive of autoconf m4 macros";
homepage = "https://www.gnu.org/software/autoconf-archive/";

View File

@@ -28,10 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
"host"
];
# there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
# however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
# cannot add bash to buildInputs due to infinite recursion
strictDeps = stdenv.hostPlatform != stdenv.buildPlatform;
strictDeps = true;
nativeBuildInputs = [
m4
@@ -40,6 +37,13 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optional stdenv.hostPlatform.isSunOS help2man;
propagatedBuildInputs = [ m4 ];
# there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
# however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
# cannot add bash to buildInputs due to infinite recursion
postFixup = lib.optionalString (lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform) ''
patchShebangs --build $out/bin/yacc
'';
enableParallelBuilding = true;
# tests are flaky / timing sensitive on FreeBSD
enableParallelChecking = !stdenv.hostPlatform.isFreeBSD;
@@ -50,6 +54,8 @@ stdenv.mkDerivation (finalAttrs: {
# TODO: enable doInstallCheck unconditionally when fixed upstream.
doInstallCheck = !stdenv.cc.isClang;
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/bison/";
description = "Yacc-compatible parser generator";

View File

@@ -23,7 +23,7 @@ stdenv.mkDerivation {
useBoost.src or (fetchFromGitHub {
owner = "boostorg";
repo = "build";
rev = defaultVersion;
tag = defaultVersion;
sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54";
});
@@ -58,6 +58,8 @@ stdenv.mkDerivation {
bison
];
strictDeps = true;
buildPhase = ''
runHook preBuild
./bootstrap.sh
@@ -76,6 +78,8 @@ stdenv.mkDerivation {
runHook postInstall
'';
__structuredAttrs = true;
meta = {
homepage = "https://www.boost.org/build/";
license = lib.licenses.boost;

View File

@@ -32,6 +32,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
strictDeps = true;
cmakeFlags = lib.optional staticOnly "-DBUILD_SHARED_LIBS=OFF";
outputs = [
@@ -60,6 +62,8 @@ stdenv.mkDerivation (finalAttrs: {
updateScript = nix-update-script { };
};
__structuredAttrs = true;
meta = {
homepage = "https://github.com/google/brotli";
changelog = "https://github.com/google/brotli/blob/${finalAttrs.src.tag}/CHANGELOG.md";

View File

@@ -70,6 +70,8 @@ stdenv.mkDerivation {
nativeBuildInputs = [ buildcatrust ];
strictDeps = true;
buildPhase = ''
mkdir unbundled hashed
buildcatrust \
@@ -247,5 +249,7 @@ stdenv.mkDerivation {
};
};
__structuredAttrs = true;
inherit meta;
}

View File

@@ -12,14 +12,18 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "catchorg";
repo = "Catch2";
rev = "v${finalAttrs.version}";
sha256 = "sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU=";
tag = "v${finalAttrs.version}";
hash = "sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU=";
};
nativeBuildInputs = [ cmake ];
strictDeps = true;
cmakeFlags = [ "-H.." ];
__structuredAttrs = true;
meta = {
description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
homepage = "http://catch-lib.net";

View File

@@ -6,8 +6,6 @@
makeSetupHook {
name = "check-phase-thread-limit-hook";
__structuredAttrs = true;
meta = {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ grimmauld ];

View File

@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
fetchurl,
cmake,
ninja,
@@ -17,23 +16,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "chromaprint";
version = "1.6.0";
version = "1.6.1";
src = fetchFromGitHub {
owner = "acoustid";
repo = "chromaprint";
tag = "v${finalAttrs.version}";
hash = "sha256-G3HIMgbjaAXsC+8nt7mkj58xA62qwA8FC+PfTGblhNg=";
hash = "sha256-Es903zeZ++9/Xb/npUU3rB0V87DVqwT9uTMbQdSzfJI=";
};
patches = [
# fix generated pkg-config files
(fetchpatch {
url = "https://github.com/acoustid/chromaprint/commit/782ef6bb5f6498e35f8e275f76998fbd5ffa36d6.patch";
hash = "sha256-drUfAMzTrqqB5UbzOnfPq6XD3HI+3sxyJJSTCa0BmD8=";
})
];
nativeBuildInputs = [
cmake
ninja

View File

@@ -83,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
# sandbox does not allow setgid
sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh
substituteInPlace ./tests/install/install-C.sh \
--replace 'mode3=2755' 'mode3=1755'
--replace-fail 'mode3=2755' 'mode3=1755'
# Fails on systems with a rootfs. Looks like a bug in the test, see
# https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html
@@ -162,6 +162,8 @@ stdenv.mkDerivation (finalAttrs: {
# TODO(@Ericson2314): Investigate whether Darwin could benefit too
++ optional (isCross && stdenv.hostPlatform.libc != "glibc") libiconv;
strictDeps = true;
hardeningDisable = [ "trivialautovarinit" ];
configureFlags = [
@@ -271,6 +273,8 @@ stdenv.mkDerivation (finalAttrs: {
'';
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/coreutils/";
description = "GNU Core Utilities";

View File

@@ -2,7 +2,9 @@
lib,
stdenv,
fetchurl,
fetchpatch,
autoreconfHook,
texinfo,
# for passthru.tests
git,
@@ -20,7 +22,29 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-k3YQuXwymh7JJoVT+3gAN7z/8Nz/6XJevE/ZwaqQdds=";
};
nativeBuildInputs = [ autoreconfHook ];
patches = [
(fetchpatch {
name = "CVE-2026-66484.patch";
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=e2b9cbdd3354d2b1569b7390d1bc15c1930559ad";
hash = "sha256-WjphVpMaI/ePg8MTZx+vvilKzpRAAzhAFwCwrbsPLRE=";
})
(fetchpatch {
name = "CVE-2026-66485.patch";
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=3cd514031371d8aeeaf2048aa10103e02831aaa9";
hash = "sha256-YDlROEYYlZERNzzlx1cQD29gV5IrU01aVcZ/sKpWrRo=";
})
(fetchpatch {
name = "CVE-2026-66486.patch";
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=2ff9600c9ef32e88759843cdbde74c8db5ae9b30";
excludes = [ "NEWS" ];
hash = "sha256-qi9/9xhKnIyPpji63RgzbnnHZsJgwRnQVMaMiLxQipk=";
})
];
nativeBuildInputs = [
autoreconfHook
texinfo # for makeinfo
];
separateDebugInfo = true;

View File

@@ -25,7 +25,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cryptsetup";
version = "2.8.6";
version = "2.8.7";
outputs = [
"bin"
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
url =
"mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor finalAttrs.version}/"
+ "cryptsetup-${finalAttrs.version}.tar.xz";
hash = "sha256-gAQmX9mTiF0I97Yz2+BWhR3hohAwdhOk693HQ/zO/lo=";
hash = "sha256-53bw04HobKYQQsRXBpSR/o4KwoZ4DHw7Hk+ZIavJYdo=";
};
patches = [

View File

@@ -19,11 +19,15 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [ libtool ];
strictDeps = true;
src = fetchurl {
url = "mirror://sourceforge/cunit/CUnit/${finalAttrs.version}/CUnit-${finalAttrs.version}.tar.bz2";
sha256 = "057j82da9vv4li4z5ri3227ybd18nzyq81f6gsvhifs5z0vr3cpm";
};
__structuredAttrs = true;
meta = {
description = "Unit Testing Framework for C";

View File

@@ -14,7 +14,6 @@
systemdLibs,
acl,
gmp,
darwin,
libusb1 ? null,
gnutls ? null,
avahi ? null,
@@ -40,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
"lib"
"dev"
"man"
"doc"
];
postPatch = ''

View File

@@ -63,6 +63,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
homepage = "http://gondor.apana.org.au/~herbert/dash/";
description = "POSIX-compliant implementation of /bin/sh that aims to be as small as possible";

View File

@@ -12,12 +12,12 @@
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "diffutils";
version = "3.12";
src = fetchurl {
url = "mirror://gnu/diffutils/diffutils-${version}.tar.xz";
url = "mirror://gnu/diffutils/diffutils-${finalAttrs.version}.tar.xz";
hash = "sha256-fIt/n8hgkUH96pzs6FJJ0whiQ5H/Yd7a9Sj8szdyff0=";
};
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
# If no explicit coreutils is given, use the one from stdenv.
buildInputs = [ coreutils ];
strictDeps = true;
# Disable stack-related gnulib tests on x86_64-darwin because they have problems running under
# Rosetta 2: test-c-stack hangs, test-sigsegv-catch-stackoverflow and test-sigaction fail.
# Disable all gnulib tests when building on Darwin due to test-nl_langinfo-mt failure
@@ -78,6 +80,8 @@ stdenv.mkDerivation rec {
# Test failure on QEMU only (#300550)
doCheck = !stdenv.buildPlatform.isRiscV64;
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/diffutils/diffutils.html";
description = "Commands for showing the differences between files (diff, cmp, etc.)";
@@ -88,4 +92,4 @@ stdenv.mkDerivation rec {
helsinki-Jo
];
};
}
})

View File

@@ -27,6 +27,9 @@ stdenv.mkDerivation {
cp ${./root.ds} $out/root.ds
'';
strictDeps = true;
__structuredAttrs = true;
meta = {
homepage = "https://www.iana.org/domains/root/files";
description = "DNS root data including root hints and DNSSEC root trust anchor + key";

View File

@@ -5,15 +5,33 @@
cmake,
ninja,
openssl,
openjdk11,
python3,
unixodbc,
withJdbc ? false,
withOdbc ? false,
versionCheckHook,
}:
let
canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
# Keep this in sync with DuckDBPlatform() in DuckDB's platform.hpp.
duckdbPlatform =
let
os =
if stdenv.hostPlatform.isWindows then
"windows"
else if stdenv.hostPlatform.isDarwin then
"osx"
else if stdenv.hostPlatform.isFreeBSD then
"freebsd"
else
"linux";
arch =
if stdenv.hostPlatform.isAarch64 then
"arm64"
else if stdenv.hostPlatform.is64bit then
"amd64"
else
"i686";
in
"${os}_${arch}${lib.optionalString stdenv.hostPlatform.isMusl "_musl"}${lib.optionalString stdenv.hostPlatform.isMinGW "_mingw"}";
versions = lib.importJSON ./versions.json;
in
stdenv.mkDerivation (finalAttrs: {
@@ -40,22 +58,19 @@ stdenv.mkDerivation (finalAttrs: {
ninja
python3
];
buildInputs = [
openssl
]
++ lib.optionals withJdbc [ openjdk11 ]
++ lib.optionals withOdbc [ unixodbc ];
buildInputs = [ openssl ];
cmakeFlags = [
(lib.cmakeFeature "DUCKDB_EXTENSION_CONFIGS" "${finalAttrs.src}/.github/config/in_tree_extensions.cmake")
(lib.cmakeBool "BUILD_ODBC_DRIVER" withOdbc)
(lib.cmakeBool "JDBC_DRIVER" withJdbc)
(lib.cmakeFeature "OVERRIDE_GIT_DESCRIBE" "v${finalAttrs.version}-0-g${finalAttrs.rev}")
# development settings
(lib.cmakeBool "BUILD_UNITTESTS" finalAttrs.doInstallCheck)
(lib.cmakeBool "BUILD_UNITTESTS" finalAttrs.finalPackage.doInstallCheck)
]
++ lib.optionals (!canExecute) [
(lib.cmakeFeature "DUCKDB_EXPLICIT_PLATFORM" duckdbPlatform)
];
doInstallCheck = true;
doInstallCheck = canExecute;
nativeInstallCheckInputs = [ versionCheckHook ];

View File

@@ -40,6 +40,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/ed/";
description = "GNU implementation of the standard Unix editor";

View File

@@ -40,6 +40,8 @@ stdenv.mkDerivation (finalAttrs: {
ctestCheckHook
];
strictDeps = true;
cmakeFlags = [
(lib.cmakeBool "EIGEN_LEAVE_TEST_IN_ALL_TARGET" true) # Build tests in parallel
];
@@ -47,6 +49,8 @@ stdenv.mkDerivation (finalAttrs: {
# too many flaky tests
doCheck = false;
__structuredAttrs = true;
meta = {
homepage = "https://eigen.tuxfamily.org";
description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";

View File

@@ -113,6 +113,8 @@ stdenv.mkDerivation (finalAttrs: {
propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
strictDeps = true;
hardeningDisable = [ "strictflexarrays3" ];
configureFlags = [
@@ -144,6 +146,8 @@ stdenv.mkDerivation (finalAttrs: {
rev-prefix = "elfutils-";
};
__structuredAttrs = true;
meta = {
homepage = "https://sourceware.org/elfutils/";
description = "Set of utilities to handle ELF objects";

View File

@@ -23,13 +23,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "expat";
version = "2.8.2";
version = "2.8.3";
src = fetchurl {
url =
with finalAttrs;
"https://github.com/libexpat/libexpat/releases/download/${tagFor version}/${pname}-${version}.tar.xz";
hash = "sha256-OtibhYjmZEvU5JmBSA1IshKJ7rvNTwoaSvscKfmbarQ=";
hash = "sha256-9iVt+QyQZ3PTRNoIRAK30+TyLtQbGlnJiQmKg9PqDIU=";
};
strictDeps = true;
@@ -72,6 +72,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
changelog = "https://github.com/libexpat/libexpat/blob/${tagFor finalAttrs.version}/expat/Changes";
homepage = "https://libexpat.github.io/";

View File

@@ -38,6 +38,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeCheckInputs = lib.optionals (glibcLocales != null) [ glibcLocales ];
strictDeps = true;
cmakeFlags = [
(lib.cmakeBool "BENCHMARK_USE_BUNDLED_GTEST" false)
(lib.cmakeBool "BENCHMARK_ENABLE_WERROR" false)
@@ -73,6 +75,8 @@ stdenv.mkDerivation (finalAttrs: {
inherit prometheus-cpp;
};
__structuredAttrs = true;
meta = {
description = "Microbenchmark support library";
homepage = "https://github.com/google/benchmark";

View File

@@ -17,6 +17,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
strictDeps = true;
hardeningDisable = [ "strictflexarrays3" ];
configureFlags = [ (lib.enableFeature true "libgdbm-compat") ];
@@ -63,6 +65,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/gdbm/";
description = "GNU dbm key/value database library";

View File

@@ -29,7 +29,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "geoclue";
version = "2.8.1";
version = "2.8.2";
outputs = [
"out"
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "geoclue";
repo = "geoclue";
tag = finalAttrs.version;
hash = "sha256-CyZhUMAa2vMUi61sL+gGBZFxGo0lu7Cm68fTjcbblTg=";
hash = "sha256-fjF0yd3+b+q3gTW2PpPNFE6zQafilj/g9rXWSgs/XGE=";
};
patches = [

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation (finalAttrs: {
# attempt to use C library functions without declaring them, which is raised as an error.
env.NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
strictDeps = true;
makeFlags = [
"WITHOUT_GETTEXT=1"
"LIBCGETOPT=0"
@@ -23,6 +25,8 @@ stdenv.mkDerivation (finalAttrs: {
"CC:=$(CC)"
];
__structuredAttrs = true;
meta = {
platforms = lib.platforms.unix;
homepage = "http://frodo.looijaard.name/project/getopt";

View File

@@ -133,6 +133,12 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://lore.kernel.org/git/20260504101429.340123-1-joerg@thalheim.io/raw";
hash = "sha256-44EPfEJ39LjPWjqjFb52EKNaJGzYxZzJaJOis8QnazU=";
})
# Fix fortify darwin crashes when dealing with unicode filenames.
(fetchurl {
name = "darwin-unicode-filename-fix.patch";
url = "https://lore.kernel.org/git/20260704233724.16928-1-ihar.hrachyshka@gmail.com/raw";
hash = "sha256-lpGz3nFKQvFDtW2TtQLx/684ECJVBLGPGqip0XEtOdU=";
})
]
++ lib.optionals withSsh [
# Hard-code the ssh executable to ${pkgs.openssh}/bin/ssh instead of
@@ -207,6 +213,8 @@ stdenv.mkDerivation (finalAttrs: {
buildPackages.stdenv.cc
];
strictDeps = true;
env = {
# required to support pthread_cancel()
NIX_LDFLAGS =
@@ -228,7 +236,7 @@ stdenv.mkDerivation (finalAttrs: {
];
preBuild = ''
makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') )
makeFlags+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') )
'';
makeFlags = [
@@ -274,7 +282,7 @@ stdenv.mkDerivation (finalAttrs: {
''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
SHELL="$SHELL"
)
concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray
concatTo flagsArray makeFlags buildFlags
echoCmd 'build flags' "''${flagsArray[@]}"
''
+ lib.optionalString withManual ''
@@ -335,7 +343,7 @@ stdenv.mkDerivation (finalAttrs: {
''${enableParallelInstalling:+-j''${NIX_BUILD_CORES}}
SHELL="$SHELL"
)
concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray
concatTo flagsArray makeFlags installFlags
echoCmd 'install flags' "''${flagsArray[@]}"
# Install git-subtree.
@@ -478,7 +486,7 @@ stdenv.mkDerivation (finalAttrs: {
installCheckTarget = "test";
# see also installCheckFlagsArray
# see also installCheckFlags in preInstallCheck
installCheckFlags = [
"DEFAULT_TEST_TARGET=prove"
"PERL_PATH=${buildPackages.perl}/bin/perl"
@@ -502,7 +510,7 @@ stdenv.mkDerivation (finalAttrs: {
NIX_BUILD_CORES=32
fi
installCheckFlagsArray+=(
installCheckFlags+=(
GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
GIT_TEST_INSTALLED=$out/bin
${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"}

View File

@@ -366,6 +366,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
description = "C library of programming buildings blocks";
homepage = "https://gitlab.gnome.org/GNOME/glib";

View File

@@ -67,6 +67,8 @@ stdenv.mkDerivation {
strictDeps = true;
__structuredAttrs = true;
meta = {
description = "Attempt to guess a canonical system name";
homepage = "https://savannah.gnu.org/projects/config";

View File

@@ -15,16 +15,12 @@
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
let
version = "3.12";
in
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "gnugrep";
inherit version;
version = "3.12";
src = fetchurl {
url = "mirror://gnu/grep/grep-${version}.tar.xz";
url = "mirror://gnu/grep/grep-${finalAttrs.version}.tar.xz";
hash = "sha256-JkmyfA6Q5jLq3NdXvgbG6aT0jZQd5R58D4P/dkCKB7k=";
};
@@ -39,13 +35,9 @@ stdenv.mkDerivation {
# - on Musl: https://github.com/NixOS/nixpkgs/pull/228714
# - on x86_64-darwin: https://github.com/NixOS/nixpkgs/pull/228714#issuecomment-1576826330
# - when building on Darwin (cross-compilation): test-nl_langinfo-mt fails
postPatch =
if stdenv.hostPlatform.isMusl || stdenv.buildPlatform.isDarwin then
''
sed -i 's:gnulib-tests::g' Makefile.in
''
else
null;
postPatch = lib.optionalString (stdenv.hostPlatform.isMusl || stdenv.buildPlatform.isDarwin) ''
substituteInPlace Makefile.in --replace-fail "gnulib-tests" ""
'';
nativeCheckInputs = [
perl
@@ -63,6 +55,8 @@ stdenv.mkDerivation {
]
++ lib.optional (!stdenv.hostPlatform.isWindows) runtimeShellPackage;
strictDeps = true;
# cygwin: FAIL: multibyte-white-space
# freebsd: FAIL mb-non-UTF8-performance
# x86_64-darwin: fails 'stack-overflow' tests on Rosetta 2 emulator
@@ -97,6 +91,8 @@ stdenv.mkDerivation {
NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/grep/";
description = "GNU implementation of the Unix grep command";
@@ -116,7 +112,7 @@ stdenv.mkDerivation {
teams = [ lib.teams.security-review ];
platforms = lib.platforms.all;
mainProgram = "grep";
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnu" version // {
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnu" finalAttrs.version // {
product = "grep";
};
};
@@ -124,4 +120,4 @@ stdenv.mkDerivation {
passthru = {
inherit pcre2;
};
}
})

View File

@@ -47,6 +47,8 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optional stdenv.hostPlatform.isMinGW "CFLAGS=-fno-stack-protector";
__structuredAttrs = true;
meta = {
description = "GNU M4, a macro processor";
longDescription = ''

View File

@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://gnu/make/make-${finalAttrs.version}.tar.gz";
sha256 = "sha256-3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M=";
hash = "sha256-3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M=";
};
# To update patches:
@@ -82,6 +82,8 @@ stdenv.mkDerivation (finalAttrs: {
gnumakeWithGuile = gnumake.override { guileSupport = true; };
};
__structuredAttrs = true;
meta = {
description = "Tool to control the generation of non-source files from sources";
longDescription = ''

View File

@@ -33,6 +33,8 @@ stdenv.mkDerivation (finalAttrs: {
strictDeps = true;
__structuredAttrs = true;
meta = {
description = "GNU Patch, a program to apply differences to files";
mainProgram = "patch";

View File

@@ -58,12 +58,12 @@ let
util-linux = util-linuxMinimal;
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gnutls";
version = "3.8.13";
src = fetchurl {
url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor version}/gnutls-${version}.tar.xz";
url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor finalAttrs.version}/gnutls-${finalAttrs.version}.tar.xz";
hash = "sha256-/+2Owb8JwkJtTxSq43feR1O1PlN9aF5gTpmosWypyX4=";
};
@@ -173,6 +173,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ nettle ];
strictDeps = true;
inherit doCheck;
# stdenv's `NIX_SSL_CERT_FILE=/no-cert-file.crt` breaks tests.
# Also empty files won't work, and we want to avoid potentially impure /etc/
@@ -215,6 +217,8 @@ stdenv.mkDerivation rec {
static = pkgsStatic.gnutls;
};
__structuredAttrs = true;
meta = {
description = "GNU Transport Layer Security Library";
@@ -236,6 +240,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl21Plus;
maintainers = with lib.maintainers; [ vcunat ];
platforms = lib.platforms.all;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnu" version;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnu" finalAttrs.version;
};
}
})

View File

@@ -40,13 +40,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "graphviz";
version = "15.1.0";
version = "15.1.1";
src = fetchFromGitLab {
owner = "graphviz";
repo = "graphviz";
tag = finalAttrs.version;
hash = "sha256-5v/ib8hwqHrJLs+jvDGvg0aJiKIt8ipXEd1EUzew7XU=";
hash = "sha256-nDuLQfYu0fzJXS8/oH6Bv9gGuLK+FwwgbPQE+nVKelw=";
};
nativeBuildInputs = [

View File

@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "google";
repo = "googletest";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-HIHMxAUR4bjmFLoltJeIAVSulVQ6kVuIT2Ku+lwAx/4=";
};
@@ -56,6 +56,8 @@ stdenv.mkDerivation (finalAttrs: {
re2
];
strictDeps = true;
cmakeFlags = [
"-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
]
@@ -64,6 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optional withAbseil "-DGTEST_HAS_ABSL=ON";
__structuredAttrs = true;
meta = {
description = "Google's framework for writing C++ tests";
homepage = "https://github.com/google/googletest";

View File

@@ -14,7 +14,7 @@
dblatex,
}:
python3.pkgs.buildPythonApplication rec {
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "gtk-doc";
version = "1.36.1";
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "gtk-doc";
tag = version;
tag = finalAttrs.version;
hash = "sha256-8hB43BCAtT1B7/ak2i0FAlYD3Kb4rNCWfsJ+wqGu3FA=";
};
@@ -85,12 +85,14 @@ python3.pkgs.buildPythonApplication rec {
};
};
__structuredAttrs = true;
meta = {
changelog = "https://gitlab.gnome.org/GNOME/gtk-doc/-/blob/${src.tag}/NEWS";
changelog = "https://gitlab.gnome.org/GNOME/gtk-doc/-/blob/${finalAttrs.src.tag}/NEWS";
description = "Tools to extract documentation embedded in GTK and GNOME source code";
homepage = "https://gitlab.gnome.org/GNOME/gtk-doc";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ pSub ];
teams = [ lib.teams.gnome ];
};
}
})

View File

@@ -32,6 +32,20 @@ stdenv.mkDerivation (finalAttrs: {
validatePkgConfig
];
cmakeFlags = lib.optionals stdenv.hostPlatform.isStatic [
(lib.cmakeBool "HDR_HISTOGRAM_BUILD_SHARED" false)
# Examples and tests depend on the shared library target; skip them in
# static builds (tests still run for the regular pkgs.hdrhistogram_c build).
(lib.cmakeBool "HDR_HISTOGRAM_BUILD_PROGRAMS" false)
];
# The .pc file always references -lhdr_histogram, but in static builds only
# libhdr_histogram_static.a is produced. Provide a symlink so pkg-config
# consumers find the right archive.
postInstall = lib.optionalString stdenv.hostPlatform.isStatic ''
ln -s $out/lib/libhdr_histogram_static.a $out/lib/libhdr_histogram.a
'';
doCheck = true;
passthru = {

View File

@@ -56,6 +56,8 @@ stdenv.mkDerivation (finalAttrs: {
chmod +x $out/bin/help2man
'';
__structuredAttrs = true;
meta = {
description = "Generate man pages from `--help' output";
mainProgram = "help2man";

View File

@@ -16,24 +16,25 @@
pkgsStatic,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "iproute2";
version = "7.1.0";
src = fetchurl {
url = "mirror://kernel/linux/utils/net/iproute2/iproute2-${version}.tar.xz";
url = "mirror://kernel/linux/utils/net/iproute2/iproute2-${finalAttrs.version}.tar.xz";
hash = "sha256-/Z+huVgJQXFXyoPdcpV+MmG9vOiWNTy5NvgK8LM6S1w=";
};
postPatch = ''
substituteInPlace Makefile \
--replace "CC := gcc" "CC ?= $CC"
--replace-fail "CC := gcc" "CC ?= $CC"
'';
outputs = [
"out"
"dev"
"scripts"
"man"
];
configureFlags = [
@@ -44,7 +45,6 @@ stdenv.mkDerivation rec {
makeFlags = [
"PREFIX=$(out)"
"SBINDIR=$(out)/sbin"
"DOCDIR=$(TMPDIR)/share/doc/${pname}" # Don't install docs
"HDRDIR=$(dev)/include/iproute2"
]
++ lib.optionals stdenv.hostPlatform.isStatic [
@@ -86,6 +86,8 @@ stdenv.mkDerivation rec {
libbpf
];
__structuredAttrs = true;
strictDeps = true;
enableParallelBuilding = true;
passthru.updateScript = gitUpdater {
@@ -105,4 +107,4 @@ stdenv.mkDerivation rec {
fpletz
];
};
}
})

View File

@@ -59,6 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
strictDeps = true;
__structuredAttrs = true;
enableParallelBuilding = true;
buildInputs = lib.optionals onigurumaSupport [ oniguruma ];

View File

@@ -32,13 +32,13 @@
assert xarSupport -> libxml2 != null;
stdenv.mkDerivation (finalAttrs: {
pname = "libarchive";
version = "3.8.8";
version = "3.8.9";
src = fetchFromGitHub {
owner = "libarchive";
repo = "libarchive";
rev = "v${finalAttrs.version}";
hash = "sha256-l8xh+z6lP7VnxMIf9tfoSByerjwN6Z4dE3JNA9zS3LM=";
hash = "sha256-/CoInUlOiFvR83mEeV3Tx+2SQGywWDQ4nY+NstE/cP4=";
};
outputs = [
@@ -108,6 +108,8 @@ stdenv.mkDerivation (finalAttrs: {
acl
];
strictDeps = true;
hardeningDisable = [
"strictflexarrays3"
]
@@ -140,6 +142,8 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
__structuredAttrs = true;
meta = {
homepage = "http://libarchive.org";
description = "Multi-format archive and compression library";

View File

@@ -10,7 +10,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libblake3";
version = "1.8.5";
version = "1.8.6";
outputs = [
"out"
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "BLAKE3-team";
repo = "BLAKE3";
tag = finalAttrs.version;
hash = "sha256-4Oany3uk0759YIZgD1gsONSFU1Mn/GAMvsSeP33J9Ts=";
hash = "sha256-dCRtXHTJnDSJQ2T5bux+ND4e+5uRIoUFn5gYXvMfZi8=";
};
sourceRoot = finalAttrs.src.name + "/c";

View File

@@ -10,6 +10,7 @@
libdrm,
libevent,
libyaml,
libyuv,
gst_all_1,
gtest,
graphviz,
@@ -18,21 +19,26 @@
python3Packages,
udev,
libpisp,
libglvnd,
withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust,
lttng-ust, # withTracing
withQcam ? false,
qt6, # withQcam
libtiff, # withQcam
withSoftispGPU ? true, # software ISP GPU acceleration
withQcam ? false, # cannot be enabled per default as it causes infinite recursion
# withQcam
qt6,
libjpeg,
libtiff,
SDL2,
}:
stdenv.mkDerivation rec {
pname = "libcamera";
version = "0.7.0";
version = "0.7.2";
src = fetchgit {
url = "https://git.libcamera.org/libcamera/libcamera.git";
rev = "v${version}";
hash = "sha256-W9pRE8/0Cf2EEP5bbvy4FsDSeKKSklfJb6T48ZN4dzE=";
hash = "sha256-vhFkeT1j2KKm+CVvGrtH5BEYJSEdaX7N7DRdA0a9EWk=";
};
outputs = [
@@ -80,6 +86,8 @@ stdenv.mkDerivation rec {
# pycamera
python3Packages.pybind11
libyuv
# yamlparser
libyaml
@@ -87,10 +95,13 @@ stdenv.mkDerivation rec {
]
++ lib.optionals stdenv.hostPlatform.isAarch [ libpisp ]
++ lib.optionals withTracing [ lttng-ust ]
++ lib.optionals withSoftispGPU [ libglvnd ]
++ lib.optionals withQcam [
libjpeg
libtiff
qt6.qtbase
qt6.qttools
SDL2
];
nativeBuildInputs = [
@@ -109,22 +120,27 @@ stdenv.mkDerivation rec {
++ lib.optional withQcam qt6.wrapQtAppsHook;
mesonFlags = [
"-Dv4l2=true"
(lib.mesonEnable "v4l2" true)
(lib.mesonEnable "tracing" withTracing)
(lib.mesonEnable "qcam" withQcam)
"-Dlibunwind=disabled"
"-Dlc-compliance=disabled" # tries unconditionally to download gtest when enabled
(lib.mesonEnable "apps-output-dng" withQcam)
(lib.mesonEnable "cam-output-sdl2" withQcam)
(lib.mesonEnable "cam-jpeg" withQcam)
(lib.mesonEnable "softisp-gpu" withSoftispGPU)
(lib.mesonEnable "libunwind" false)
(lib.mesonEnable "libdw" false)
(lib.mesonEnable "lc-compliance" false) # tries unconditionally to download gtest when enabled
# Avoid blanket -Werror to evade build failures on less
# tested compilers.
"-Dwerror=false"
(lib.mesonBool "werror" false)
# Documentation breaks binary compatibility.
# Given that upstream also provides public documentation,
# we can disable it here.
"-Ddocumentation=disabled"
(lib.mesonEnable "documentation" false)
]
++ lib.optionals stdenv.hostPlatform.isAarch [
# we don't have tensorflow-lite to build this
"-Drpi-awb-nn=disabled"
(lib.mesonEnable "rpi-awb-nn" false)
];
env = {

View File

@@ -11,8 +11,8 @@
gst_all_1,
libvorbis,
libcap,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
systemd,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdLibs,
systemdLibs,
withAlsa ? stdenv.hostPlatform.isLinux,
alsa-lib,
}:
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
])
++ lib.optional (gtkSupport == "gtk3") gtk3-x11
++ lib.optional stdenv.hostPlatform.isLinux libcap
++ lib.optional withSystemd systemd
++ lib.optional withSystemd systemdLibs
++ lib.optional withAlsa alsa-lib;
configureFlags = [

View File

@@ -33,6 +33,8 @@ stdenv.mkDerivation (finalAttrs: {
ncurses
];
strictDeps = true;
# GCC automatically include `stdc-predefs.h` while Clang does not do this by
# default. While Musl is ISO 10646 compliant, it does not define
# __STDC_ISO_10646__.
@@ -50,6 +52,8 @@ stdenv.mkDerivation (finalAttrs: {
xargs sed -i -e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g'
'';
__structuredAttrs = true;
meta = {
homepage = "http://www.thrysoee.dk/editline/";
changelog = "https://www.thrysoee.dk/editline/#changelog";

View File

@@ -32,6 +32,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
strictDeps = true;
configureFlags = lib.optional static "LDFLAGS=-static";
makeFlags =
@@ -42,6 +44,8 @@ stdenv.mkDerivation (finalAttrs: {
"LDFLAGS+=-lws2_32"
]);
__structuredAttrs = true;
meta = {
description = "High-performance event loop/event model with lots of features";
homepage = "https://software.schmorp.de/pkg/libev.html";

View File

@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
# Don't define BIO_get_init() for LibreSSL 3.5+
(fetchpatch {
url = "https://github.com/libevent/libevent/commit/883630f76cbf512003b81de25cd96cb75c6cf0f9.patch";
sha256 = "sha256-VPJqJUAovw6V92jpqIXkIR1xYGbxIWxaHr8cePWI2SU=";
hash = "sha256-VPJqJUAovw6V92jpqIXkIR1xYGbxIWxaHr8cePWI2SU=";
})
];
@@ -59,6 +59,8 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs =
lib.optional sslSupport openssl ++ lib.optional stdenv.hostPlatform.isCygwin findutils;
strictDeps = true;
doCheck = false; # needs the net
postInstall = lib.optionalString sslSupport ''
@@ -70,6 +72,8 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
__structuredAttrs = true;
meta = {
description = "Event notification library";
mainProgram = "event_rpcgen.py";

View File

@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libffi";
version = "3.7.1";
version = "3.8.0";
src = fetchurl {
url =
with finalAttrs;
"https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz";
hash = "sha256-1emmY43b0lE921RRjrZ+S75vpwe8wBwQ9iEvCgiNgZ0=";
hash = "sha256-faPi2aFx6woDj1kuytP/K7JVDzSW2Hs7Ka0M9EMMDbQ=";
};
# Note: this package is used for bootstrapping fetchurl, and thus
@@ -73,6 +73,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
description = "Foreign function call interface library";
longDescription = ''

View File

@@ -16,12 +16,12 @@
assert enableCapabilities -> stdenv.hostPlatform.isLinux;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "libgcrypt";
version = "1.12.2";
src = fetchurl {
url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
url = "mirror://gnupg/libgcrypt/libgcrypt-${finalAttrs.version}.tar.bz2";
hash = "sha256-fOM8JJIiGgQ2+WqFACFenz49y1/SanV81BXnqEO6vV4=";
};
@@ -123,13 +123,15 @@ stdenv.mkDerivation rec {
inherit gnupg libotr rsyslog;
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/libgcrypt/";
changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=${pname}.git;a=blob;f=NEWS;hb=refs/tags/${pname}-${version}";
changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=NEWS;hb=refs/tags/libgcrypt-${finalAttrs.version}";
description = "General-purpose cryptographic library";
license = lib.licenses.lgpl2Plus;
platforms = lib.platforms.all;
maintainers = [ ];
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnupg" version;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnupg" finalAttrs.version;
};
}
})

View File

@@ -35,6 +35,8 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true; # not cross;
__structuredAttrs = true;
meta = {
description = "Library for multiprecision complex arithmetic with exact rounding";

View File

@@ -1,21 +1,28 @@
{
lib,
stdenv,
fetchurl,
testers,
fetchFromGitLab,
fetchpatch,
nix-update-script,
meson,
ninja,
pkg-config,
python3,
gobject-introspection,
gtk-doc,
docbook_xsl,
docbook_xml_dtd_412,
glib,
gupnp-igd,
gst_all_1,
gnutls,
enableDocumentation ? stdenv.buildPlatform == stdenv.hostPlatform,
gtk-doc,
docbook_xsl,
docbook_xml_dtd_412,
graphviz,
python3,
withIntrospection ?
lib.meta.availableOn stdenv.hostPlatform gobject-introspection
&& stdenv.hostPlatform.emulatorAvailable buildPackages,
buildPackages,
gobject-introspection,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -27,11 +34,14 @@ stdenv.mkDerivation (finalAttrs: {
"out"
"dev"
]
++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
++ lib.optionals enableDocumentation [ "devdoc" ];
src = fetchurl {
url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
hash = "sha256-YY/E6N45O3GbFkHB2O7AGCbU050VrekmedIhx/Xk5w0=";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libnice";
repo = "libnice";
tag = finalAttrs.version;
hash = "sha256-UPppE5kBois0jJwsHKefBC8iTfSIkPZXV6XnUBnEFn8=";
};
patches = [
@@ -51,18 +61,26 @@ stdenv.mkDerivation (finalAttrs: {
./musl.patch
];
# specifies <1.30, but also works with later versions
postPatch = ''
substituteInPlace docs/reference/libnice/meson.build \
--replace-fail "version: '<1.30', " ""
'';
nativeBuildInputs = [
meson
ninja
pkg-config
python3
]
++ lib.optionals withIntrospection [
gobject-introspection
# documentation
]
++ lib.optionals enableDocumentation [
gtk-doc
docbook_xsl
docbook_xml_dtd_412
graphviz
python3
];
buildInputs = [
@@ -76,16 +94,28 @@ stdenv.mkDerivation (finalAttrs: {
glib
];
mesonFlags = [
"-Dgtk_doc=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
"-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
];
mesonFlags = lib.mapAttrsToList lib.mesonEnable {
gtk_doc = enableDocumentation;
introspection = withIntrospection;
# requires many dependencies and probably not useful for our users
examples = false;
tests = finalAttrs.finalPackage.doCheck;
gstreamer = true;
glib_debug = false;
};
# Tests are flaky
# see https://github.com/NixOS/nixpkgs/pull/53293#issuecomment-453739295
doCheck = false;
passthru = {
updateScript = nix-update-script { };
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
changelog = "https://gitlab.freedesktop.org/libnice/libnice/-/blob/${finalAttrs.version}/NEWS";
description = "GLib ICE implementation";
@@ -97,10 +127,12 @@ stdenv.mkDerivation (finalAttrs: {
It provides a GLib-based library, libnice and a Glib-free library,
libstun as well as GStreamer elements.'';
homepage = "https://libnice.freedesktop.org/";
pkgConfigModules = [ "nice" ];
platforms = lib.platforms.unix;
license = with lib.licenses; [
lgpl21
mpl11
];
maintainers = with lib.maintainers; [ tmarkus ];
};
})

View File

@@ -12,7 +12,7 @@
pkg-config,
rdma-core,
withBluez ? false,
withRdma ? false,
withRdma ? lib.meta.availableOn stdenv.hostPlatform rdma-core,
withRemote ? false,
# for passthru.tests

View File

@@ -12,7 +12,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://sourceforge/perfmon2/libpfm4/libpfm-${finalAttrs.version}.tar.gz";
sha256 = "sha256-0YuXdkx1VSjBBR03bjNUXQ62DG6/hWgENoE/pbBMw9E=";
hash = "sha256-0YuXdkx1VSjBBR03bjNUXQ62DG6/hWgENoE/pbBMw9E=";
};
# Don't install libpfm.so on windows as it doesn't exist
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
# See: https://github.com/NixOS/nixpkgs/pull/252982#discussion_r1314346216
postPatch = ''
substituteInPlace config.mk examples/Makefile \
--replace '($(SYS),WINDOWS)' '($(SYS),Windows)'
--replace-fail '($(SYS),WINDOWS)' '($(SYS),Windows)'
'';
makeFlags = [
@@ -33,11 +33,17 @@ stdenv.mkDerivation (finalAttrs: {
"SYS=${stdenv.hostPlatform.uname.system}"
];
env.NIX_CFLAGS_COMPILE = "-Wno-error";
env.CONFIG_PFMLIB_SHARED = if enableShared then "y" else "n";
env = {
NIX_CFLAGS_COMPILE = "-Wno-error";
CONFIG_PFMLIB_SHARED = if enableShared then "y" else "n";
};
buildInputs = lib.optional stdenv.hostPlatform.isMinGW windows.libgnurx;
strictDeps = true;
__structuredAttrs = true;
meta = {
description = "Helper library to program the performance monitoring events";
longDescription = ''

View File

@@ -7,28 +7,19 @@
ninja,
boost,
nlohmann_json,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libpisp";
version = "1.2.1";
version = "1.7.0";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "libpisp";
tag = "v${finalAttrs.version}";
hash = "sha256-YshU7G5Rov67CVwFbf5ENp2j5ptAvkVrlMu85KmnEpk=";
hash = "sha256-hzJA8hoOXf2Lswwz9t0StJ9JJP8ICWJlstzSsli4Yqs=";
};
patches = [
# fix build with glibc 2.42 & -Werror
(fetchpatch {
url = "https://github.com/raspberrypi/libpisp/commit/f2bbf7e000d3f11cac235b8ea1291722080a016c.patch";
hash = "sha256-vrdmVadyjlAnZtmBahOs/hlKPrkh/BF3LvrTPM9D15Q=";
})
];
nativeBuildInputs = [
pkg-config
meson

View File

@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libsodium";
version = "1.0.22-unstable-2026-07-08";
version = "1.0.22-unstable-2026-07-31";
src = fetchFromGitHub {
owner = "jedisct1";
repo = "libsodium";
rev = "77a422c85a3b8b487de50c811b38d18394831ba6";
hash = "sha256-Ahka2PnrmYvTLjZMzik5mFsxhDpMLRMKT/I5ftUb0Xc=";
rev = "701aa826b97dc84a353d70a551d49dc26da539c5";
hash = "sha256-vJK7nuvy22EWCdau9cn4HOvO8XDiVQXwf/zwhq9R9Jg=";
};
outputs = [

View File

@@ -114,6 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc
buildInputs = [ zlib ] ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64;
strictDeps = true;
passthru.tests = {
inherit
aria2
@@ -124,6 +126,8 @@ stdenv.mkDerivation (finalAttrs: {
curl = (curl.override { scpSupport = true; }).tests.withCheck;
};
__structuredAttrs = true;
meta = {
description = "Client-side C library implementing the SSH2 protocol";
homepage = "https://www.libssh2.org";

View File

@@ -32,14 +32,19 @@ stdenv.mkDerivation (finalAttrs: {
perl
];
strictDeps = true;
doCheck = true;
preCheck =
if stdenv.hostPlatform.isDarwin then "export DYLD_LIBRARY_PATH=`pwd`/lib/.libs" else null;
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
export DYLD_LIBRARY_PATH=$(pwd)/lib/.libs
'';
passthru.tests = {
inherit gnutls samba qemu;
};
__structuredAttrs = true;
meta = {
homepage = "https://www.gnu.org/software/libtasn1/";
description = "ASN.1 library";

View File

@@ -7,7 +7,6 @@
darwin,
libtool,
pkg-config,
pkgsStatic,
# for passthru.tests
bind,
@@ -19,6 +18,7 @@
neovim,
nodejs,
ocamlPackages,
pkgsStatic,
python3,
testers,
}:
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "libuv";
repo = "libuv";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-Y9Nph2LkT1qnOYTW3WCumWWwORnI4P7HxzBjUlGaL7M=";
};
@@ -151,8 +151,6 @@ stdenv.mkDerivation (finalAttrs: {
in
lib.optionalString (finalAttrs.finalPackage.doCheck) ''
sed '/${tdRegexp}/d' -i test/test-list.h
# https://github.com/libuv/libuv/issues/4794
substituteInPlace Makefile.am --replace-fail -lutil "-lutil -lm"
'';
nativeBuildInputs = [
@@ -162,6 +160,8 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
strictDeps = true;
# This is part of the Darwin bootstrap, so we dont always get
# `libutil.dylib` automatically propagated through the SDK.
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
@@ -209,6 +209,8 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
__structuredAttrs = true;
meta = {
description = "Multi-platform support library with a focus on asynchronous I/O";
homepage = "https://libuv.org/";

View File

@@ -97,6 +97,8 @@ stdenv.mkDerivation (finalAttrs: {
};
};
__structuredAttrs = true;
meta = {
homepage = "https://gitlab.gnome.org/GNOME/libxslt";
description = "C library and tools to do XSL transformations";

View File

@@ -7,14 +7,14 @@
stdenv.mkDerivation rec {
pname = "lmdb";
version = "0.9.35";
version = "0.9.36";
src = fetchFromGitLab {
domain = "git.openldap.org";
owner = "openldap";
repo = "openldap";
rev = "LMDB_${version}";
sha256 = "sha256-XkOeVqzKojRLojBLkXB0V9lypJnL5ZmGAwutn6aRQIU=";
sha256 = "sha256-iOwjUqR2ChCEUDsIFEetVktCD7Mx3R5JgHE+qIhBd5I=";
};
postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";

View File

@@ -11,7 +11,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://www.oberhumer.com/opensource/lzo/download/lzo-${finalAttrs.version}.tar.gz";
sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60";
hash = "sha256-wPiSlDIIJm+bZUOzrjCPq2KExckOYnkxRG+0m0IhoHI=";
};
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
@@ -30,6 +30,8 @@ stdenv.mkDerivation (finalAttrs: {
"doc"
];
__structuredAttrs = true;
meta = {
description = "Real-time data (de)compression library";
longDescription = ''

View File

@@ -48,6 +48,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
updateScript = nix-update-script { };
};
__structuredAttrs = true;
meta = {
description = "Build and publish Rust crates Python packages";
longDescription = ''

View File

@@ -19,6 +19,7 @@
stdenv.mkDerivation rec {
pname = "mbedtls";
inherit version;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Mbed-TLS";

View File

@@ -12,13 +12,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "mimalloc";
version = "3.3.2";
version = "3.4.5";
src = fetchFromGitHub {
owner = "microsoft";
repo = "mimalloc";
tag = "v${finalAttrs.version}";
hash = "sha256-GZ37qQVDe9jgMb4Coe5oKvgaLTspZDlSkS5rdy1MfUU=";
hash = "sha256-vNVZw2YsDkf0GcdFTNb/fXMQLQYvoc8P425LupPShpo=";
};
doCheck = !stdenv.hostPlatform.isStatic;

View File

@@ -2,7 +2,6 @@
stdenv,
lib,
fetchurl,
gtk2,
libdv,
libjpeg,
libpng,
@@ -46,12 +45,13 @@ stdenv.mkDerivation (finalAttrs: {
libpng
]
++ lib.optionals (!withMinimal) [
gtk2
libx11
SDL
SDL_gfx
];
configureFlags = [ "--without-gtk" ];
env.NIX_CFLAGS_COMPILE = lib.optionalString (!withMinimal) "-I${lib.getDev SDL}/include/SDL";
postPatch = ''

View File

@@ -22,6 +22,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ autoreconfHook ];
strictDeps = true;
enableParallelBuilding = true;
postInstall = ''
@@ -32,6 +34,8 @@ stdenv.mkDerivation (finalAttrs: {
echo -n $cxx >> $dev/nix-support/propagated-build-inputs
'';
__structuredAttrs = true;
meta = {
description = "Library for arbitrary precision decimal floating point arithmetic";

View File

@@ -12,14 +12,14 @@
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
version = "4.2.2";
pname = "mpfr";
src = fetchurl {
urls = [
"https://www.mpfr.org/${pname}-${version}/${pname}-${version}.tar.xz"
"mirror://gnu/mpfr/${pname}-${version}.tar.xz"
"https://www.mpfr.org/mpfr-${finalAttrs.version}/mpfr-${finalAttrs.version}.tar.xz"
"mirror://gnu/mpfr/mpfr-${finalAttrs.version}.tar.xz"
];
hash = "sha256-tnugOD736KhWNzTi6InvXsPDuJigHQD6CmhprYHGzgE=";
};
@@ -67,10 +67,12 @@ stdenv.mkDerivation rec {
# Expect the text in format of '<title>GNU MPFR version 4.1.1</title>'
new_version="$(curl -s https://www.mpfr.org/mpfr-current/ |
pcre2grep -o1 '<title>GNU MPFR version ([0-9.]+)</title>')"
update-source-version ${pname} "$new_version"
update-source-version ${finalAttrs.pname} "$new_version"
'';
};
__structuredAttrs = true;
meta = {
homepage = "https://www.mpfr.org/";
description = "Library for multiple-precision floating-point arithmetic";
@@ -92,4 +94,4 @@ stdenv.mkDerivation rec {
maintainers = [ ];
platforms = lib.platforms.all;
};
}
})

View File

@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "void-linux";
repo = "musl-fts";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
sha256 = "Azw5qrz6OKDcpYydE6jXzVxSM5A8oYWAztrHr+O/DOE=";
};
@@ -22,8 +22,12 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
strictDeps = true;
enableParallelBuilding = true;
__structuredAttrs = true;
meta = {
homepage = "https://github.com/void-linux/musl-fts";
description = "Implementation of fts(3) for musl-libc";

View File

@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "void-linux";
repo = "musl-obstack";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
sha256 = "sha256-oydS7FubUniMHAUWfg84OH9+CZ0JCrTXy7jzwOyJzC8=";
};
@@ -26,8 +26,12 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
strictDeps = true;
enableParallelBuilding = true;
__structuredAttrs = true;
meta = {
homepage = "https://github.com/void-linux/musl-obstack";
description = "Extraction of the obstack functions and macros from GNU libiberty for use with musl-libc";

View File

@@ -42,13 +42,13 @@ assert enableHpack -> enableApp;
assert enableHttp3 -> enableApp;
assert enableJemalloc -> enableApp;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "nghttp2";
version = "1.69.0";
version = "1.70.0";
src = fetchurl {
url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
hash = "sha256-PxhfWxw+d4heuc8/LE2ksan3OiS/WVe4KRg60Tf4Lcg=";
url = "https://github.com/nghttp2/nghttp2/releases/download/v${finalAttrs.version}/nghttp2-${finalAttrs.version}.tar.bz2";
hash = "sha256-j6yh94qpmsO8F2ina34PazbY5qYsE4GHUbHSBfAvlAU=";
};
outputs = [
@@ -77,6 +77,8 @@ stdenv.mkDerivation rec {
]
++ lib.optionals enablePython [ python3 ];
strictDeps = true;
enableParallelBuilding = true;
configureFlags = [
@@ -116,6 +118,8 @@ stdenv.mkDerivation rec {
inherit curl libsoup_3;
};
__structuredAttrs = true;
meta = {
description = "HTTP/2 C library and tools";
longDescription = ''
@@ -129,10 +133,10 @@ stdenv.mkDerivation rec {
'';
homepage = "https://nghttp2.org/";
changelog = "https://github.com/nghttp2/nghttp2/releases/tag/v${version}";
changelog = "https://github.com/nghttp2/nghttp2/releases/tag/v${finalAttrs.version}";
# News articles with changes summary can be found here: https://nghttp2.org/blog/archives/
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.all;
};
}
})

View File

@@ -23,6 +23,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
strictDeps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_SHARED_LIB" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "ENABLE_STATIC_LIB" stdenv.hostPlatform.isStatic)
@@ -35,6 +37,8 @@ stdenv.mkDerivation (finalAttrs: {
inherit curl;
};
__structuredAttrs = true;
meta = {
homepage = "https://github.com/ngtcp2/nghttp3";
changelog = "https://github.com/ngtcp2/nghttp3/releases/tag/v${finalAttrs.version}";

View File

@@ -52,6 +52,8 @@ stdenv.mkDerivation (finalAttrs: {
libxslt.bin
];
strictDeps = true;
patches = [
./0001-spawn-sh-instead-of-bin-sh.patch
]
@@ -114,6 +116,8 @@ stdenv.mkDerivation (finalAttrs: {
passthru.updateScript = nix-update-script { };
__structuredAttrs = true;
meta = {
description = "Small build system with a focus on speed";
mainProgram = "ninja";

View File

@@ -28,18 +28,6 @@
nix-update-script,
}:
let
# nixpkgs stb doesn't have stb_image_resize2.h which noctalia-greeter needs
stb' = stb.overrideAttrs {
version = "0-unstable-2025-10-26";
src = fetchFromGitHub {
owner = "nothings";
repo = "stb";
rev = "f1c79c02822848a9bed4315b12c8c8f3761e1296";
hash = "sha256-BlyXJtAI7WqXCTT3ylww8zoG0hBxaojJnQDvdQOXJPE=";
};
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "noctalia-greeter";
version = "1.2.1";
@@ -73,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
libxkbcommon
nlohmann_json
pango
stb'
stb
tomlplusplus
wayland
wayland-protocols

View File

@@ -49,18 +49,6 @@
gitMinimal,
}:
let
# nixpkgs stb doesn't have stb_image_resize2.h which noctalia needs
stb' = stb.overrideAttrs {
version = "0-unstable-2025-10-26";
src = fetchFromGitHub {
owner = "nothings";
repo = "stb";
rev = "f1c79c02822848a9bed4315b12c8c8f3761e1296";
hash = "sha256-BlyXJtAI7WqXCTT3ylww8zoG0hBxaojJnQDvdQOXJPE=";
};
};
in
stdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
@@ -111,7 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
pipewire
polkit
sdbus-cpp_2
stb'
stb
systemdLibs
tomlplusplus
wayland

View File

@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "nspr";
version = "4.39";
version = "4.40";
src = fetchurl {
url = "mirror://mozilla/nspr/releases/v${finalAttrs.version}/src/nspr-${finalAttrs.version}.tar.gz";
hash = "sha256-u9Au6HpVZ2Bjpj5byBngIn3iZmtHMHsqATRBTN9CNo4=";
hash = "sha256-wMGITGJ/Pbeng/fHMUxpUiayBDaWeR0VUZ5+BXjBm9w=";
};
patches = [
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
changelog = "https://github.com/mozilla/nspr/releases/tag/NSPR_${lib.concatStringsSep "_" (lib.splitVersion finalAttrs.version)}_RTM";
homepage = "https://firefox-source-docs.mozilla.org/nspr/index.html";
description = "Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions";
maintainers = with lib.maintainers; [

View File

@@ -3,9 +3,6 @@
stdenv,
fetchurl,
updateAutotoolsGnuConfigScriptsHook,
# Causes consistent segfaults on ELFv1 PPC64 when trying to use Perl regex in gnugrep
# https://github.com/PCRE2Project/pcre2/issues/762
withJitSealloc ? !(stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isAbiElfv1),
}:
stdenv.mkDerivation (finalAttrs: {
@@ -28,9 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
"--enable-pcre2-32"
# only enable jit on supported platforms which excludes Apple Silicon, see https://github.com/zherczeg/sljit/issues/51
"--enable-jit=${if stdenv.hostPlatform.isS390x then "no" else "auto"}"
]
# fix pcre jit in systemd units that set MemoryDenyWriteExecute=true like gitea
++ lib.optional withJitSealloc "--enable-jit-sealloc";
];
outputs = [
"bin"

View File

@@ -12,8 +12,8 @@
elogind,
libinotify-kqueue,
epoll-shim,
systemd,
enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, # enableSystemd=false maintained by maintainers.highghlow.
systemdLibs,
enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, # enableSystemd=false maintained by maintainers.highghlow.
pkg-config,
docutils,
doxygen,
@@ -157,7 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
]
++ (
if enableSystemd then
[ systemd ]
[ systemdLibs ]
else if stdenv.hostPlatform.isLinux then
[
elogind

View File

@@ -6,5 +6,4 @@ makeSetupHook {
# the config hook must also be used.
name = "pnpm-build-hook";
__structuredAttrs = true;
} ./pnpm-build-hook.sh

Some files were not shown because too many files have changed in this diff Show More