Merge staging-next into staging

Changed files
+463 -180
doc
languages-frameworks
lib
pkgs
applications
radio
cubicsdr
by-name
al
alsa-lib
ca
calibre
co
cosmic-player
cosmic-workspaces-epoch
db
dbeaver-bin
di
dillo
do
doublecmd
im
immich
immich-public-proxy
ke
keep-sorted
mi
mint-artwork
re
responsively-app
ux
development
compilers
python-modules
python-linkplay
servers
nextcloud
top-level
+1 -1
doc/languages-frameworks/python.section.md
···
* `dependencies ? []`: Aside from propagating dependencies,
`buildPythonPackage` also injects code into and wraps executables with the
paths included in this list. Items listed in `install_requires` go here.
-
* `optional-dependencies ? { }`: Optional feature flagged dependencies. Items listed in `extras_requires` go here.
+
* `optional-dependencies ? { }`: Optional feature flagged dependencies. Items listed in `extras_require` go here.
##### Overriding Python packages {#overriding-python-packages}
+1
lib/systems/default.nix
···
else if final.isMusl then "musl"
else if final.isUClibc then "uclibc"
else if final.isAndroid then "bionic"
+
else if final.isLLVMLibc then "llvm"
else if final.isLinux /* default */ then "glibc"
else if final.isFreeBSD then "fblibc"
else if final.isOpenBSD then "oblibc"
+1
lib/systems/inspect.nix
···
isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnuabin32 gnu gnueabi gnueabihf gnuabielfv1 gnuabielfv2 ];
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ];
isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ];
+
isLLVMLibc = [ { abi = abis.llvm; } ];
isEfi = [
{ cpu = { family = "arm"; version = "6"; }; }
+3
lib/systems/parse.nix
···
uclibceabihf = { float = "hard"; };
uclibc = {};
+
# LLVM libc
+
llvm = {};
+
unknown = {};
};
+4
pkgs/applications/radio/cubicsdr/default.nix
···
cmakeFlags = [ "-DUSE_HAMLIB=ON" ] ++ lib.optional enableDigitalLab "-DENABLE_DIGITAL_LAB=ON";
+
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
+
install_name_tool -change libliquid.dylib ${lib.getLib liquid-dsp}/lib/libliquid.dylib ''${out}/bin/CubicSDR
+
'';
+
meta = with lib; {
homepage = "https://cubicsdr.com";
description = "Software Defined Radio application";
+19 -7
pkgs/by-name/al/alsa-lib/package.nix
···
lib,
stdenv,
fetchurl,
+
fetchpatch,
alsa-topology-conf,
alsa-ucm-conf,
testers,
···
hash = "sha256-jE/zdVPL6JYY4Yfkx3n3GpuyqLJ7kfh+1AmHzJIz2PY=";
};
-
patches = [
-
# Add a "libs" field to the syntax recognized in the /etc/asound.conf file.
-
# The nixos modules for pulseaudio, jack, and pipewire are leveraging this
-
# "libs" field to declare locations for both native and 32bit plugins, in
-
# order to support apps with 32bit sound running on x86_64 architecture.
-
./alsa-plugin-conf-multilib.patch
-
];
+
patches =
+
[
+
# Add a "libs" field to the syntax recognized in the /etc/asound.conf file.
+
# The nixos modules for pulseaudio, jack, and pipewire are leveraging this
+
# "libs" field to declare locations for both native and 32bit plugins, in
+
# order to support apps with 32bit sound running on x86_64 architecture.
+
./alsa-plugin-conf-multilib.patch
+
]
+
++ lib.optional (stdenv.hostPlatform.useLLVM or false)
+
# Fixes version script under LLVM, should be fixed in the next update.
+
# Check if "pkgsLLVM.alsa-lib" builds on next version bump and remove this
+
# if it succeeds.
+
(
+
fetchurl {
+
url = "https://github.com/alsa-project/alsa-lib/commit/76edab4e595bd5f3f4c636cccc8d7976d3c519d6.patch";
+
hash = "sha256-WCOXfe0/PPZRMXdNa29Jn28S2r0PQ7iTsabsxZVSwnk=";
+
}
+
);
enableParallelBuilding = true;
+2 -2
pkgs/by-name/ca/calibre/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
-
version = "7.22.0";
+
version = "7.24.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
-
hash = "sha256-RmCte6tok0F/ts5cacAFBksNYfnLylY4JCmTyb+6IUk=";
+
hash = "sha256-ftqi6ANY/w4CdcMUAzRn9GOpNbSz36mnNcGHv8ffKbQ=";
};
patches = [
+110
pkgs/by-name/co/cosmic-player/package.nix
···
+
{
+
lib,
+
fetchFromGitHub,
+
rustPlatform,
+
alsa-lib,
+
ffmpeg,
+
glib,
+
gst_all_1,
+
just,
+
pkg-config,
+
libxkbcommon,
+
stdenv,
+
cosmic-icons,
+
libglvnd,
+
libgbm,
+
wayland,
+
xorg,
+
vulkan-loader,
+
makeBinaryWrapper,
+
}:
+
+
rustPlatform.buildRustPackage rec {
+
pname = "cosmic-player";
+
version = "1.0.0-alpha.5.1";
+
+
src = fetchFromGitHub {
+
owner = "pop-os";
+
repo = pname;
+
rev = "epoch-${version}";
+
hash = "sha256-IgMFKtuMAfRtbxunwrwRzFi/0PcSMWhx33uJcxiAHhI=";
+
};
+
+
useFetchCargoVendor = true;
+
cargoHash = "sha256-VSUv4yV54fzWPhxZV/EjBrkx7tTLo6vfSHNiluWnn9A=";
+
+
postPatch = ''
+
substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
+
'';
+
+
nativeBuildInputs = [
+
just
+
pkg-config
+
makeBinaryWrapper
+
];
+
+
# Largely based on lilyinstarlight's work linked below
+
# https://github.com/lilyinstarlight/nixos-cosmic/blob/main/pkgs/cosmic-player/package.nix
+
+
buildInputs = [
+
alsa-lib
+
ffmpeg
+
glib
+
gst_all_1.gstreamer
+
gst_all_1.gst-plugins-base
+
gst_all_1.gst-plugins-good
+
gst_all_1.gst-plugins-bad
+
libxkbcommon
+
libgbm
+
wayland
+
vulkan-loader
+
xorg.libX11
+
libglvnd
+
];
+
+
dontUseJustBuild = true;
+
+
justFlags = [
+
"--set"
+
"prefix"
+
(placeholder "out")
+
"--set"
+
"bin-src"
+
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-player"
+
];
+
+
# Force linking to libEGL, which is always dlopen()ed, and to
+
# libwayland-client, which is always dlopen()ed except by the
+
# obscure winit backend.
+
RUSTFLAGS = map (a: "-C link-arg=${a}") [
+
"-Wl,--push-state,--no-as-needed"
+
"-lEGL"
+
"-lwayland-client"
+
"-Wl,--pop-state"
+
];
+
+
# LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
+
postInstall = ''
+
wrapProgram "$out/bin/cosmic-player" \
+
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
+
--prefix LD_LIBRARY_PATH : ${
+
lib.makeLibraryPath [
+
xorg.libX11
+
xorg.libXcursor
+
xorg.libXi
+
vulkan-loader
+
libxkbcommon
+
wayland
+
]
+
}
+
'';
+
+
meta = {
+
homepage = "https://github.com/pop-os/cosmic-player";
+
description = "Media player for the COSMIC Desktop Environment";
+
license = lib.licenses.gpl3Only;
+
maintainers = with lib.maintainers; [ ahoneybun ];
+
platforms = lib.platforms.linux;
+
mainProgram = "cosmic-player";
+
};
+
}
+3 -3
pkgs/by-name/co/cosmic-workspaces-epoch/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "cosmic-workspaces-epoch";
-
version = "1.0.0-alpha.2";
+
version = "1.0.0-alpha.5.1";
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-workspaces-epoch";
rev = "epoch-${version}";
-
hash = "sha256-z3xQ6Vgqkm8hYLo2550NbFRkTMRQ0F9zn85iobnykH5=";
+
hash = "sha256-lAK7DZWwNMr30u6Uopew9O/6FIG6e2SgcdA+cD/K5Ok=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-QRBgFTXPWQ0RCSfCA2WpBs+vKTFD7Xfz60cIDtbYb5Y=";
+
cargoHash = "sha256-w1lQdzy2mJ5NfqngvOLqFCxyhWgvIySDDXCCtCCtTjg=";
separateDebugInfo = true;
+5 -5
pkgs/by-name/db/dbeaver-bin/package.nix
···
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
-
version = "24.3.2";
+
version = "24.3.3";
src =
let
···
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
-
x86_64-linux = "sha256-kbpdAA/ZmH1f+MEfozyjr8HTKLhWEhswAGc7iSpy9rE=";
-
aarch64-linux = "sha256-SiNriPbyiMeHZSHab3JwyedURogPjI9McXwJqjpZXiA=";
-
x86_64-darwin = "sha256-cBJvElGfuCbyFRXzqcuQRa4GA6nXmEDxtse388FuH30=";
-
aarch64-darwin = "sha256-kzJeKY7V8CBcdsoDZDI9eBrr1hEWh3vyHI3wgos/s/M=";
+
x86_64-linux = "sha256-vj9C12bGJbWjmcjp2jVyvLmLHYdLjbEU0SVvevhkd4A=";
+
aarch64-linux = "sha256-vQArRJZvf38JEfDBNE4GfemddM4M1ar7RojXNTb6YaU=";
+
x86_64-darwin = "sha256-r+CLBy4zetjPXDzm6abQqY8IvE0UfROg5Ga0nIrb9oc=";
+
aarch64-darwin = "sha256-W8NAs5Z8Ogl1uv2zngi4A4viBL51izsv7ksS7gygh9I=";
};
in
fetchurl {
+2 -2
pkgs/by-name/di/dillo/package.nix
···
in
stdenv.mkDerivation (finalAttrs: {
pname = "dillo";
-
version = "3.1.1";
+
version = "3.2.0";
src = fetchFromGitHub {
owner = "dillo-browser";
repo = "dillo";
rev = "v${finalAttrs.version}";
-
hash = "sha256-bGIOYONMtIN4IhSobOeSLiRDR13mo4W/DBX4kQ2S+hg=";
+
hash = "sha256-9nJq20iW8/UI3GgXWje+46WDSu3/omd1PN/uTlYCOac=";
};
nativeBuildInputs = [
+2 -2
pkgs/by-name/do/doublecmd/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
-
version = "1.1.21";
+
version = "1.1.22";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
rev = "v${finalAttrs.version}";
-
hash = "sha256-NsjsjCSPbo7zwejmOjFRuQpcMyGZEY67hyStjtMrIGk=";
+
hash = "sha256-PyAmGYWA7QZcD7SN2utHacwqm8PQy8VxuVxAXlR7tj4=";
};
nativeBuildInputs = [
+3 -3
pkgs/by-name/im/immich-public-proxy/package.nix
···
}:
buildNpmPackage rec {
pname = "immich-public-proxy";
-
version = "1.5.6";
+
version = "1.6.2";
src = fetchFromGitHub {
owner = "alangrainger";
repo = "immich-public-proxy";
tag = "v${version}";
-
hash = "sha256-nAXSlzMJNx7QjdHr/Ax8RAcWVcsMgBLbBO0CqpWCsvA=";
+
hash = "sha256-R2w11AdOgcV1R1eIzDgt+yexWwystDNJiJ+14MH6WtU=";
};
sourceRoot = "${src.name}/app";
-
npmDepsHash = "sha256-rtDd8Gadi3OrnM34Sr2FG6htYeh2G0cYDcv/hKk1TIw=";
+
npmDepsHash = "sha256-VXCJ0VaAKOlz342saRAnb1MLZGgIZwPpy/2oS/Gvsj8=";
# patch in absolute nix store paths so the process doesn't need to cwd in $out
postPatch = ''
+12 -6
pkgs/by-name/im/immich/package.nix
···
fetchFromGitHub,
fetchpatch2,
python3,
-
nodejs_20,
+
nodejs,
node-gyp,
runCommand,
nixosTests,
···
vips,
}:
let
-
nodejs = nodejs_20;
buildNpmPackage' = buildNpmPackage.override { inherit nodejs; };
sources = lib.importJSON ./sources.json;
inherit (sources) version;
···
node-addon-api = stdenvNoCC.mkDerivation rec {
pname = "node-addon-api";
-
version = "8.0.0";
+
version = "8.3.0";
src = fetchFromGitHub {
owner = "nodejs";
repo = "node-addon-api";
tag = "v${version}";
-
hash = "sha256-k3v8lK7uaEJvcaj1sucTjFZ6+i5A6w/0Uj9rYlPhjCE=";
+
hash = "sha256-7KkJkMNX352XnWTOC6mJB+IcFrda20UENcNwoXWDm+s=";
};
installPhase = ''
mkdir $out
···
# Required because vips tries to write to the cache dir
makeCacheWritable = true;
+
# we manually build sharp from source later on
+
# FIXME figure out why otherwise it fails with
+
# error: 'NewOrCopy' is not a member of 'Napi::Buffer<char>'
+
env.SHARP_IGNORE_GLOBAL_LIBVIPS = 1;
+
preBuild = ''
+
unset SHARP_IGNORE_GLOBAL_LIBVIPS
+
export SHARP_FORCE_GLOBAL_LIBVIPS=1
+
pushd node_modules/sharp
mkdir node_modules
···
npm prune --omit=dev
# remove build artifacts that bloat the closure
-
rm -r node_modules/bcrypt/{build-tmp-napi-v3,node_modules/node-addon-api,src,test}
-
rm -r node_modules/msgpackr-extract/build
+
rm -r node_modules/**/{*.target.mk,binding.Makefile,config.gypi,Makefile,Release/.deps}
mkdir -p $out/build
mv package.json package-lock.json node_modules dist resources $out/
+12 -12
pkgs/by-name/im/immich/sources.json
···
{
-
"version": "1.123.0",
-
"hash": "sha256-qzNujf8zRtml57EmyPu0qY0dbswcLhPSHOuGRkSXtVY=",
+
"version": "1.124.2",
+
"hash": "sha256-EIp1KH2sNvEiB3wl6m0IiAUyDwBETgKlSXCrIsw73Oo=",
"components": {
"cli": {
-
"npmDepsHash": "sha256-L94vKYmNWO3IcJh+ZtJ2EBz6h3G9jeyqyw44tto8bQ0=",
-
"version": "2.2.37"
+
"npmDepsHash": "sha256-k3sA4OcjlvzMMI2GsUYks2fIj7LG89H3OX4vTZOCIOo=",
+
"version": "2.2.40"
},
"server": {
-
"npmDepsHash": "sha256-JUFeaaT4uqyff48nDMrlvC8maU+BjwNU3xcOOR1f8F4=",
-
"version": "1.123.0"
+
"npmDepsHash": "sha256-O0XqMOUYy7VdumDDbSenMy22lgZLCDy/GpaSVNs+k4I=",
+
"version": "1.124.2"
},
"web": {
-
"npmDepsHash": "sha256-eq+VJVBZGVoMgAjdp/F+bu24cHSneAoTWpeft59Gig8=",
-
"version": "1.123.0"
+
"npmDepsHash": "sha256-f3p0HT7l3hXFEo+8AvKEn8QvH6KOTMGZOvaOAPxv3Kc=",
+
"version": "1.124.2"
},
"open-api/typescript-sdk": {
-
"npmDepsHash": "sha256-n5B0fKRhDTrobT7SGUAMqsWSkHW4pEYRVzlMqAyfJwk=",
-
"version": "1.123.0"
+
"npmDepsHash": "sha256-uk4Gfs10TIsbD4VdHt7a9Fub8PcT6R8ksfvnOLFs/Zo=",
+
"version": "1.124.2"
},
"geonames": {
-
"timestamp": "20241217171200",
-
"hash": "sha256-A21TooXLWSmCW4NaYq+2juaNlAmzTT76ZwtF5NcJcLU="
+
"timestamp": "20250108222614",
+
"hash": "sha256-gCi0iFQplv4XizDi9DYEVekFFe46DM4X2YiPSe7ugR4="
}
}
}
+16 -5
pkgs/by-name/ke/keep-sorted/package.nix
···
{
lib,
-
buildGo123Module,
+
buildGoModule,
fetchFromGitHub,
nix-update-script,
+
versionCheckHook,
}:
-
buildGo123Module rec {
+
buildGoModule rec {
pname = "keep-sorted";
-
version = "0.5.1";
+
version = "0.6.0";
src = fetchFromGitHub {
owner = "google";
repo = "keep-sorted";
-
rev = "v${version}";
-
hash = "sha256-xvSEREEOiwft3fPN+xtdMCh+z3PknjJ962Nb+pw715U=";
+
tag = "v${version}";
+
hash = "sha256-ROvj7w8YMq6+ntx0SWi+HfN4sO6d7RjKWwlb/9gfz8w=";
};
vendorHash = "sha256-HTE9vfjRmi5GpMue7lUfd0jmssPgSOljbfPbya4uGsc=";
+
# Inject version string instead of reading version from buildinfo.
+
postPatch = ''
+
substituteInPlace main.go \
+
--replace-fail 'readVersion())' '"v${version}")'
+
'';
+
env.CGO_ENABLED = "0";
ldflags = [ "-s" ];
···
# Test tries to find files using git in init func.
rm goldens/*_test.go
'';
+
+
nativeInstallCheckInputs = [ versionCheckHook ];
+
+
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
+4
pkgs/by-name/mi/mint-artwork/package.nix
···
];
installPhase = ''
+
runHook preInstall
+
mkdir $out
# note: we fuck up a bunch of stuff but idc
···
mv etc $out/etc
mv usr/share $out/share
+
+
runHook postInstall
'';
meta = with lib; {
+2 -2
pkgs/by-name/re/responsively-app/package.nix
···
appimageTools.wrapType2 rec {
pname = "responsively-app";
-
version = "1.15.0";
+
version = "1.16.0";
src = fetchurl {
url = "https://github.com/responsively-org/responsively-app-releases/releases/download/v${version}/ResponsivelyApp-${version}.AppImage";
-
hash = "sha256-BkljY8Il45A2JbsLgQbjsxCy0lnFZvtpc5HzvI1nwWk=";
+
hash = "sha256-r0wznN+7zZXKNFNFUV4hm2e4gd84M6hVcun4OfNEeSw=";
};
appimageContents = appimageTools.extract {
+3 -3
pkgs/by-name/ux/uxn/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "uxn";
-
version = "1.0-unstable-2025-01-04";
+
version = "1.0-unstable-2025-01-19";
src = fetchFromSourcehut {
owner = "~rabbits";
repo = "uxn";
-
rev = "b2d09ce518742de16add4d5f5b96f320e274e5a2";
-
hash = "sha256-BNI2226vWo/XcIRrTWdoHmkckQ0U9yWawqlPamTu0PI=";
+
rev = "e2ab8811f85d8420e580dec08c53fe588ba96f05";
+
hash = "sha256-/1I//qyz8VbLPSuJbVYNeVKQjwMHKK/ojO57F6qrIAY=";
};
outputs = [
+127 -114
pkgs/development/compilers/llvm/common/default.nix
···
relative = "compiler-rt";
});
in
-
{
-
compiler-rt-libc = callPackage ./compiler-rt (
-
let
-
# temp rename to avoid infinite recursion
+
(
+
{
+
compiler-rt-libc = callPackage ./compiler-rt (
+
let
+
# temp rename to avoid infinite recursion
+
stdenv =
+
# Darwin needs to use a bootstrap stdenv to avoid an infinite recursion when cross-compiling.
+
if args.stdenv.hostPlatform.isDarwin then
+
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangWithLibcAndBasicRtAndLibcxx
+
else if args.stdenv.hostPlatform.useLLVM or false then
+
overrideCC args.stdenv buildLlvmTools.clangWithLibcAndBasicRtAndLibcxx
+
else
+
args.stdenv;
+
in
+
{
+
patches = compiler-rtPatches;
+
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 ./compiler-rt {
+
patches = compiler-rtPatches;
+
doFakeLibgcc = stdenv.hostPlatform.useLLVM or false;
stdenv =
# Darwin needs to use a bootstrap stdenv to avoid an infinite recursion when cross-compiling.
-
if args.stdenv.hostPlatform.isDarwin then
-
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangWithLibcAndBasicRtAndLibcxx
-
else if args.stdenv.hostPlatform.useLLVM or false then
-
overrideCC args.stdenv buildLlvmTools.clangWithLibcAndBasicRtAndLibcxx
+
if stdenv.hostPlatform.isDarwin then
+
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangNoLibcNoRt
else
-
args.stdenv;
-
in
-
{
-
patches = compiler-rtPatches;
-
inherit stdenv;
-
}
-
// lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-
libxcrypt = (libxcrypt.override { inherit stdenv; }).overrideAttrs (old: {
-
configureFlags = old.configureFlags ++ [ "--disable-symvers" ];
-
});
-
}
-
);
+
overrideCC stdenv buildLlvmTools.clangNoLibcNoRt;
+
};
-
compiler-rt-no-libc = callPackage ./compiler-rt {
-
patches = compiler-rtPatches;
-
doFakeLibgcc = stdenv.hostPlatform.useLLVM or false;
-
stdenv =
-
# Darwin needs to use a bootstrap stdenv to avoid an infinite recursion when cross-compiling.
-
if stdenv.hostPlatform.isDarwin then
-
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangNoLibcNoRt
+
compiler-rt =
+
if
+
stdenv.hostPlatform.libc == null
+
# 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.
+
|| stdenv.hostPlatform.isWasm
+
# Failing `#include <term.h>` in
+
# `lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp`
+
# sanitizers, not sure where to get it.
+
|| stdenv.hostPlatform.isFreeBSD
+
then
+
libraries.compiler-rt-no-libc
else
-
overrideCC stdenv buildLlvmTools.clangNoLibcNoRt;
-
};
-
-
compiler-rt =
-
if
-
stdenv.hostPlatform.libc == null
-
# 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.
-
|| stdenv.hostPlatform.isWasm
-
# Failing `#include <term.h>` in
-
# `lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp`
-
# sanitizers, not sure where to get it.
-
|| stdenv.hostPlatform.isFreeBSD
-
then
-
libraries.compiler-rt-no-libc
-
else
-
libraries.compiler-rt-libc;
+
libraries.compiler-rt-libc;
-
stdenv = overrideCC stdenv buildLlvmTools.clang;
+
stdenv = overrideCC stdenv buildLlvmTools.clang;
-
libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
+
libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
libcxx = callPackage ./libcxx (
-
{
-
patches = lib.optionals (lib.versionOlder metadata.release_version "16") (
-
lib.optional (lib.versions.major metadata.release_version == "15")
-
# See:
-
# - https://reviews.llvm.org/D133566
-
# - https://github.com/NixOS/nixpkgs/issues/214524#issuecomment-1429146432
-
# !!! Drop in LLVM 16+
-
(
-
fetchpatch {
-
url = "https://github.com/llvm/llvm-project/commit/57c7bb3ec89565c68f858d316504668f9d214d59.patch";
-
hash = "sha256-B07vHmSjy5BhhkGSj3e1E0XmMv5/9+mvC/k70Z29VwY=";
-
}
-
)
-
++ [
-
(substitute {
-
src = ./libcxxabi/wasm.patch;
+
libcxx = callPackage ./libcxx (
+
{
+
patches = lib.optionals (lib.versionOlder metadata.release_version "16") (
+
lib.optional (lib.versions.major metadata.release_version == "15")
+
# See:
+
# - https://reviews.llvm.org/D133566
+
# - https://github.com/NixOS/nixpkgs/issues/214524#issuecomment-1429146432
+
# !!! Drop in LLVM 16+
+
(
+
fetchpatch {
+
url = "https://github.com/llvm/llvm-project/commit/57c7bb3ec89565c68f858d316504668f9d214d59.patch";
+
hash = "sha256-B07vHmSjy5BhhkGSj3e1E0XmMv5/9+mvC/k70Z29VwY=";
+
}
+
)
+
++ [
+
(substitute {
+
src = ./libcxxabi/wasm.patch;
+
substitutions = [
+
"--replace-fail"
+
"/cmake/"
+
"/llvm/cmake/"
+
];
+
})
+
]
+
++ lib.optional stdenv.hostPlatform.isMusl (substitute {
+
src = ./libcxx/libcxx-0001-musl-hacks.patch;
substitutions = [
"--replace-fail"
-
"/cmake/"
-
"/llvm/cmake/"
+
"/include/"
+
"/libcxx/include/"
];
})
-
]
-
++ lib.optional stdenv.hostPlatform.isMusl (substitute {
-
src = ./libcxx/libcxx-0001-musl-hacks.patch;
-
substitutions = [
-
"--replace-fail"
-
"/include/"
-
"/libcxx/include/"
-
];
-
})
+
);
+
stdenv =
+
if stdenv.hostPlatform.isDarwin then
+
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangWithLibcAndBasicRt
+
else
+
overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
+
}
+
// lib.optionalAttrs (lib.versionOlder metadata.release_version "14") {
+
# TODO: remove this, causes LLVM 13 packages rebuild.
+
inherit (metadata) monorepoSrc; # Preserve bug during #307211 refactor.
+
}
+
);
+
+
libunwind = callPackage ./libunwind {
+
patches = lib.optional (lib.versionOlder metadata.release_version "17") (
+
metadata.getVersionFile "libunwind/gnu-install-dirs.patch"
);
-
stdenv =
-
if stdenv.hostPlatform.isDarwin then
-
overrideCC darwin.bootstrapStdenv buildLlvmTools.clangWithLibcAndBasicRt
-
else
-
overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
-
}
-
// lib.optionalAttrs (lib.versionOlder metadata.release_version "14") {
-
# TODO: remove this, causes LLVM 13 packages rebuild.
-
inherit (metadata) monorepoSrc; # Preserve bug during #307211 refactor.
-
}
-
);
+
stdenv = overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
+
};
-
libunwind = callPackage ./libunwind {
-
patches = lib.optional (lib.versionOlder metadata.release_version "17") (
-
metadata.getVersionFile "libunwind/gnu-install-dirs.patch"
-
);
-
stdenv = overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt;
-
};
+
openmp = callPackage ./openmp {
+
patches =
+
lib.optional (
+
lib.versionAtLeast metadata.release_version "15" && lib.versionOlder metadata.release_version "19"
+
) (metadata.getVersionFile "openmp/fix-find-tool.patch")
+
++ lib.optional (
+
lib.versionAtLeast metadata.release_version "14" && lib.versionOlder metadata.release_version "18"
+
) (metadata.getVersionFile "openmp/gnu-install-dirs.patch")
+
++ lib.optional (lib.versionAtLeast metadata.release_version "14") (
+
metadata.getVersionFile "openmp/run-lit-directly.patch"
+
)
+
++
+
lib.optional (lib.versionOlder metadata.release_version "14")
+
# Fix cross.
+
(
+
fetchpatch {
+
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
+
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
+
}
+
);
+
};
+
}
+
// lib.optionalAttrs (lib.versionAtLeast metadata.release_version "20") {
+
libc-overlay = callPackage ./libc {
+
isFullBuild = false;
+
};
-
openmp = callPackage ./openmp {
-
patches =
-
lib.optional (
-
lib.versionAtLeast metadata.release_version "15" && lib.versionOlder metadata.release_version "19"
-
) (metadata.getVersionFile "openmp/fix-find-tool.patch")
-
++ lib.optional (
-
lib.versionAtLeast metadata.release_version "14" && lib.versionOlder metadata.release_version "18"
-
) (metadata.getVersionFile "openmp/gnu-install-dirs.patch")
-
++ lib.optional (lib.versionAtLeast metadata.release_version "14") (
-
metadata.getVersionFile "openmp/run-lit-directly.patch"
-
)
-
++
-
lib.optional (lib.versionOlder metadata.release_version "14")
-
# Fix cross.
-
(
-
fetchpatch {
-
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
-
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
-
}
-
);
-
};
-
}
+
libc-full = callPackage ./libc {
+
isFullBuild = true;
+
};
+
+
libc = if stdenv.targetPlatform.libc == "llvm" then libraries.libc-full else libraries.libc-overlay;
+
}
+
)
);
noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
+95
pkgs/development/compilers/llvm/common/libc/default.nix
···
+
{
+
lib,
+
stdenv,
+
llvm_meta,
+
src ? null,
+
monorepoSrc ? null,
+
version,
+
release_version,
+
runCommand,
+
python3,
+
python3Packages,
+
patches ? [ ],
+
cmake,
+
ninja,
+
isFullBuild ? true,
+
linuxHeaders,
+
}:
+
let
+
pname = "libc";
+
+
src' = runCommand "${pname}-src-${version}" { } (''
+
mkdir -p "$out"
+
cp -r ${monorepoSrc}/cmake "$out"
+
cp -r ${monorepoSrc}/runtimes "$out"
+
cp -r ${monorepoSrc}/llvm "$out"
+
cp -r ${monorepoSrc}/${pname} "$out"
+
'');
+
+
stdenv' =
+
if stdenv.cc.isClang then
+
stdenv.override {
+
cc = stdenv.cc.override {
+
nixSupport = stdenv.cc.nixSupport // {
+
cc-cflags = lib.remove "-lunwind" stdenv.cc.nixSupport.cc-cflags;
+
};
+
};
+
}
+
else
+
stdenv;
+
in
+
stdenv'.mkDerivation (finalAttrs: {
+
inherit pname version patches;
+
+
src = src';
+
+
sourceRoot = "${finalAttrs.src.name}/runtimes";
+
+
nativeBuildInputs =
+
[
+
cmake
+
python3
+
]
+
++ (lib.optional (lib.versionAtLeast release_version "15") ninja)
+
++ (lib.optional isFullBuild python3Packages.pyyaml);
+
+
buildInputs = lib.optional isFullBuild linuxHeaders;
+
+
outputs = [ "out" ] ++ (lib.optional isFullBuild "dev");
+
+
postUnpack = lib.optionalString isFullBuild ''
+
patchShebangs $sourceRoot/../$pname/hdrgen/yaml_to_classes.py
+
chmod +x $sourceRoot/../$pname/hdrgen/yaml_to_classes.py
+
'';
+
+
prePatch = ''
+
cd ../${finalAttrs.pname}
+
chmod -R u+w ../
+
'';
+
+
postPatch = ''
+
cd ../runtimes
+
'';
+
+
postInstall = lib.optionalString (!isFullBuild) ''
+
substituteAll ${./libc-shim.so} $out/lib/libc.so
+
'';
+
+
libc = if (!isFullBuild) then stdenv.cc.libc else null;
+
+
cmakeFlags = [
+
(lib.cmakeBool "LLVM_LIBC_FULL_BUILD" isFullBuild)
+
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "libc")
+
];
+
+
# For the update script:
+
passthru = {
+
monorepoSrc = monorepoSrc;
+
inherit isFullBuild;
+
};
+
+
meta = llvm_meta // {
+
homepage = "https://libc.llvm.org/";
+
description = "Standard C library for LLVM";
+
};
+
})
+1
pkgs/development/compilers/llvm/common/libc/libc-shim.so
···
+
GROUP (@libc@ @out@/lib/libllvmlibc.a)
+3 -3
pkgs/development/compilers/llvm/default.nix
···
"18.1.8".officialRelease.sha256 = "sha256-iiZKMRo/WxJaBXct9GdAcAT3cz9d9pnAcO1mmR6oPNE=";
"19.1.6".officialRelease.sha256 = "sha256-LD4nIjZTSZJtbgW6tZopbTF5Mq0Tenj2gbuPXhtOeUI=";
"20.0.0-git".gitRelease = {
-
rev = "eb5cda480d2ad81230b2aa3e134e2b603ff90a1c";
-
rev-version = "20.0.0-unstable-2024-11-26";
-
sha256 = "sha256-8VbQINEZZqAIF4egMaNPd3/W3E3QmOXMl7WToftrebg=";
+
rev = "1ef5b987a464611a60e873650726b5e02fda0feb";
+
rev-version = "20.0.0-unstable-2024-12-17";
+
sha256 = "sha256-QCY9z9h3z5gPvwq6bNzAB5xFFStwOCfKh4VnWInhxU4=";
};
} // llvmVersions;
+2 -2
pkgs/development/python-modules/python-linkplay/default.nix
···
buildPythonPackage rec {
pname = "python-linkplay";
-
version = "0.1.2";
+
version = "0.1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "Velleman";
repo = "python-linkplay";
tag = "v${version}";
-
hash = "sha256-HXsE2DzCyTF9UPZvM3YrwclTzUor+XRuz5UFlixLmRA=";
+
hash = "sha256-iS4JWnHt3m0i+K/OqEOxBU4fNHRsy7h5HmdwkMRpI80=";
};
build-system = [ setuptools ];
+6 -6
pkgs/servers/nextcloud/notify_push.nix
···
rustPlatform.buildRustPackage rec {
pname = "notify_push";
-
version = "0.7.0";
+
version = "1.0.0";
src = fetchFromGitHub {
owner = "nextcloud";
-
repo = pname;
-
rev = "v${version}";
-
hash = "sha256-QHVWiH6qkwQay0wffoyDUyVxgxzNp10ieYIsdqoEdCM=";
+
repo = "notify_push";
+
tag = "v${version}";
+
hash = "sha256-Y71o+ARi/YB2BRDfEyORbrA9HPvsUlWdh5UjM8hzmcA=";
};
-
cargoHash = "sha256-HwE/ql8rJcGIINy+hNnpaTFEJqbmuUDrIvVI8kCpfQ8=";
+
cargoHash = "sha256-Mk+0LKP55Um5YiCx2O49rUZPwaXtKFnWtRC+WPGBadE=";
passthru = rec {
test_client = rustPlatform.buildRustPackage {
···
buildAndTestSubdir = "test_client";
-
cargoHash = "sha256-KybnPzCM9mLF55s5eZ3qr5GRcaaYFpEdNklWEo/72Ts=";
+
cargoHash = "sha256-SBEuFOTgqNjPtKx0PFDA5Gkiksn3cZEmYcs2shAo2Po=";
meta = meta // {
mainProgram = "test_client";
+3
pkgs/top-level/all-packages.nix
···
else if name == "nblibc" then targetPackages.netbsd.libc or netbsd.libc
else if name == "wasilibc" then targetPackages.wasilibc or wasilibc
else if name == "relibc" then targetPackages.relibc or relibc
+
else if name == "llvm" then
+
# Use llvmPackages_git until LLVM 20 is the default.
+
targetPackages.llvmPackages_git.libc or llvmPackages_git.libc
else throw "Unknown libc ${name}";
libcCross =
+2 -2
pkgs/top-level/perl-packages.nix
···
ack = buildPerlPackage rec {
pname = "ack";
-
version = "3.7.0";
+
version = "3.8.0";
src = fetchurl {
url = "mirror://cpan/authors/id/P/PE/PETDANCE/ack-v${version}.tar.gz";
-
hash = "sha256-6nyqFPdX3ggzEO0suimGYd3Mpd7gbsjxgEPqYlp53yA=";
+
hash = "sha256-ZAsaGzbKFaTR0XkvKkTmmurlg5HPDSH6iilmWoiV9xg=";
};
outputs = [ "out" "man" ];
+1
pkgs/top-level/release-attrpaths-superset.nix
···
# cross packagesets
pkgsLLVM = true;
+
pkgsLLVMLibc = true;
pkgsMusl = true;
pkgsStatic = true;
pkgsCross = true;
+1
pkgs/top-level/release.nix
···
agdaPackages = packagePlatforms pkgs.agdaPackages;
pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+
pkgsLLVMLibc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
pkgsArocc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
pkgsZig.stdenv = [ "x86_64-linux" "aarch64-linux" ];
pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+17
pkgs/top-level/stage.nix
···
or lib.systems.parse.abis.musl;
});
+
makeLLVMParsedPlatform = parsed:
+
(parsed // {
+
abi = lib.systems.parse.abis.llvm;
+
});
stdenvAdapters = self: super:
let
···
crossSystem = stdenv.hostPlatform // {
useLLVM = true;
linker = "lld";
+
};
+
};
+
+
pkgsLLVMLibc = nixpkgsFun {
+
overlays = [ (self': super': {
+
pkgsLLVMLibc = super';
+
})] ++ overlays;
+
# Bootstrap a cross stdenv using LLVM libc.
+
# This is currently not possible when compiling natively,
+
# so we don't need to check hostPlatform != buildPlatform.
+
crossSystem = stdenv.hostPlatform // {
+
config = lib.systems.parse.tripleFromSystem (makeLLVMParsedPlatform stdenv.hostPlatform.parsed);
+
libc = "llvm";
};
};