Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-02-18 06:25:47 +00:00
committed by GitHub
41 changed files with 1095 additions and 274 deletions
+3 -2
View File
@@ -78,8 +78,8 @@ in
copy_bin_and_libs ${pkgs.curl}/bin/curl
copy_bin_and_libs ${pkgs.bashNonInteractive}/bin/bash
copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
copy_bin_and_libs ${pkgs.gnused}/bin/gnused
copy_bin_and_libs ${pkgs.gnugrep}/bin/gnugrep
copy_bin_and_libs ${pkgs.gnused}/bin/sed
copy_bin_and_libs ${pkgs.gnugrep}/bin/grep
copy_bin_and_libs ${pkgs.tpm2-tools}/bin/.tpm2-wrapped
mv $out/bin/{.tpm2-wrapped,tpm2}
@@ -106,6 +106,7 @@ in
systemd = {
extraBin = lib.mkIf systemd.enable {
clevis = "${cfg.package}/bin/clevis";
curl = "${pkgs.curl}/bin/curl";
};
storePaths = lib.mkIf systemd.enable [
+2 -3
View File
@@ -6,7 +6,7 @@
}:
let
version = "0.11.12";
version = "0.11.13";
in
python3Packages.buildPythonApplication {
pname = "ablog";
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication {
owner = "sunpy";
repo = "ablog";
tag = "v${version}";
hash = "sha256-bPTaxkuIKeypfnZItG9cl51flHBIx/yg0qENuiqQgY4=";
hash = "sha256-P1eSN3wqlPNYbYW3Rkz2Y6yFcC379dt/qK8aVNwZRSs=";
};
build-system = with python3Packages; [
@@ -43,7 +43,6 @@ python3Packages.buildPythonApplication {
pytestFlags = [
"--rootdir=src/ablog"
"-Wignore::sphinx.deprecation.RemovedInSphinx90Warning" # Ignore ImportError
];
disabledTests = [
+6
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
writeTextFile,
pkg-config,
@@ -43,6 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
./remove-default-commit-hash.patch
./remove-vendored-libraries.patch
./fix-avcodec-close.patch
(fetchpatch {
name = "CVE-2026-2245.patch";
url = "https://github.com/CCExtractor/ccextractor/commit/fd7271bae238ccb3ae8a71304ea64f0886324925.patch";
hash = "sha256-wZiJob5v4SVa5YBmiHuNvgphSi4PhTTb3hg4vs1lhVg=";
})
]
++ finalAttrs.cargoDeps.vendorStaging.patches;
@@ -0,0 +1,38 @@
From 8b1db0c6724640ff995c24145a9777bd49da1ce4 Mon Sep 17 00:00:00 2001
From: Marcin Serwin <marcin@serwin.dev>
Date: Fri, 21 Nov 2025 19:11:48 +0100
Subject: [PATCH] Fix SDL_SOUND_CFLAGS usage
The flags were quried but unused during compilation. Also, there was a
typo in the else branch.
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
---
src/sdl/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/sdl/Makefile b/src/sdl/Makefile
index e21477e..84a2136 100644
--- a/src/sdl/Makefile
+++ b/src/sdl/Makefile
@@ -22,7 +22,7 @@ SDL_CFLAGS += $(shell $(PKGCONF) $(SDL_PKGS) --cflags)
SDL_SOUND_CFLAGS += $(shell $(PKGCONF) $(SDL_SOUND_PKGS) --cflags)
else
SDL_CFLAGS += $(SDL_CFLAGS_DEF)
-SD_SOUND_CFLAGS += $(SDL_SOUND_CFLAGS_DEF)
+SDL_SOUND_CFLAGS += $(SDL_SOUND_CFLAGS_DEF)
endif
@@ -32,7 +32,7 @@ $(TARGET): $(DEFINES) $(OBJECTS) | $(DEFINES)
@echo "** Done with SDL interface."
%.o: %.c
- $(CC) $(CFLAGS) $(SDL_CFLAGS) -fPIC -fpic -o $@ -c $<
+ $(CC) $(CFLAGS) $(SDL_CFLAGS) $(SDL_SOUND_CFLAGS) -fPIC -fpic -o $@ -c $<
$(DEFINES):
@echo "** Generating $@"
--
2.51.2
+49 -15
View File
@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
libao,
libmodplug,
libsamplerate,
@@ -11,28 +10,42 @@
ncurses,
which,
pkg-config,
SDL2,
SDL2_mixer,
zlib,
libjpeg,
libpng,
freetype,
frontend ? "ncurses",
}:
assert lib.assertOneOf "frontend" frontend [
"ncurses"
"sdl"
# NOTE: more options are present in the Makefile, e.g., x11, dumb, nosound, ...
];
let
progName = if frontend == "ncurses" then "frotz" else "sfrotz";
in
stdenv.mkDerivation (finalAttrs: {
pname = "frotz";
version = "2.54";
pname = progName;
version = "2.55";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "DavidGriffith";
repo = "frotz";
rev = finalAttrs.version;
hash = "sha256-GvGxojD8d5GVy/d8h3q6K7KJroz2lsKbfE0F0acjBl8=";
tag = finalAttrs.version;
hash = "sha256-XZjimskjupTtYdgfVaOS2QnQrDIBSwkJqxrffdjgZk0=";
};
patches = [
(fetchpatch {
url = "https://github.com/macports/macports-ports/raw/496e5b91e3b6c9dc6820d77ab60dbe400d1924ee/games/frotz/files/Makefile.patch";
extraPrefix = "";
hash = "sha256-P83ZzSi3bhncQ52Y38Q3F/7v1SJKr5614tytt862HRg=";
})
# https://gitlab.com/DavidGriffith/frotz/-/merge_requests/226
./0001-Fix-SDL_SOUND_CFLAGS-usage.patch
];
strictDeps = true;
enableParallelBuilding = true;
nativeBuildInputs = [
which
pkg-config
@@ -43,16 +56,37 @@ stdenv.mkDerivation (finalAttrs: {
libsamplerate
libsndfile
libvorbis
ncurses
];
]
++ (
if frontend == "ncurses" then
[ ncurses ]
else
[
freetype
libjpeg
libpng
SDL2
SDL2_mixer
zlib
]
);
installFlags = [ "PREFIX=$(out)" ];
makeFlags = [
"PREFIX=${placeholder "out"}"
"HOMEBREW_PREFIX=/var/empty"
];
preConfigure = ''
makeFlagsArray+=(CURSES_CONFIG="$PKG_CONFIG ncurses")
'';
buildFlags = [ frontend ];
installTargets = if frontend == "ncurses" then "install-frotz" else "install-${frontend}";
meta = {
homepage = "https://davidgriffith.gitlab.io/frotz/";
changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${finalAttrs.version}/NEWS";
description = "Z-machine interpreter for Infocom games and other interactive fiction";
mainProgram = "frotz";
description = "Z-machine interpreter for Infocom games and other interactive fiction (${frontend})";
mainProgram = progName;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
nicknovitski
+3 -3
View File
@@ -12,16 +12,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hyprviz";
version = "0.7.1";
version = "0.8.0";
src = fetchFromGitHub {
owner = "timasoft";
repo = "hyprviz";
tag = "v${finalAttrs.version}";
hash = "sha256-ar1O/Em9AcPPfbuT4xnyOwBX1IClJlFYfdPQbU/5vTk=";
hash = "sha256-5w7+fkf2oB0x5N6xlKjSPbgsB7Ifr1NWW8qWDmGyFwU=";
};
cargoHash = "sha256-BICF6nZcn/7t5X4Dj18fPD2RpEz7U1Zytt9sfHe7Xnw=";
cargoHash = "sha256-+8MKYruPjCTooiY7pxwz5oqIpk4ZidugPrVlMZ1yMI0=";
nativeBuildInputs = [
pkg-config
+6 -1
View File
@@ -21,6 +21,11 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-dZrZjzygT6Q7jIPkasYgJ2uN3eyPQXsg0opksookLYI=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "typer-slim" "typer"
'';
build-system = [
python3Packages.uv-build
];
@@ -28,7 +33,7 @@ python3Packages.buildPythonApplication rec {
dependencies =
with python3Packages;
[
typer-slim
typer
]
++ lib.optionals withPrecommit [ pre-commit ];
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "pdfmixtool";
version = "1.2.1";
version = "1.2.2";
src = fetchFromGitLab {
owner = "scarpetta";
repo = "pdfmixtool";
rev = "v${finalAttrs.version}";
hash = "sha256-UuRTMLlUIyo2RF+XjI229kkE67ybmllIy98p97PjWCE=";
hash = "sha256-+omL0WNU34BcWbsfK3FXfhp0DVWjm9Vb5OVjRCoT/IA=";
};
nativeBuildInputs = [
+3 -11
View File
@@ -14,13 +14,13 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "presenterm";
version = "0.15.1";
version = "0.16.0";
src = fetchFromGitHub {
owner = "mfontanini";
repo = "presenterm";
tag = "v${finalAttrs.version}";
hash = "sha256-tkIw7qo7lq3rSaBG0m6HzlXt8l3dQVFSBm8P3v7adVk=";
hash = "sha256-wQP3tLa6+GZAhNkAaIrbpIMBnQD7UoH6O5N/wDKtfrQ=";
};
nativeBuildInputs =
@@ -35,20 +35,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
libsixel
];
buildFeatures = [
"sixel"
];
cargoHash = "sha256-CLoN85A2fggTHs/AHmo43N+9Q4FGKwNmKObw+OMBFao=";
cargoHash = "sha256-mDbzZZDsGCpbOKJ9/lX23VgSH0LGzHvYo2nxnRay15A=";
env = lib.optionalAttrs (isDarwin && isx86_64) {
NIX_CFLAGS_LINK = "-fuse-ld=lld";
};
checkFeatures = [
"sixel"
];
checkFlags = [
# failed to load .tmpEeeeaQ: No such file or directory (os error 2)
"--skip=external_snippet"
+3 -3
View File
@@ -8,15 +8,15 @@
buildGoModule rec {
pname = "prow";
version = "0-unstable-2026-02-06";
rev = "85e3dda3b79520c15cd101b85b52ccf4f7e1f1e6";
version = "0-unstable-2026-02-17";
rev = "999e46ca7aee8a1561241b965222140ebc29120c";
src = fetchFromGitHub {
inherit rev;
owner = "kubernetes-sigs";
repo = "prow";
hash = "sha256-1x0RKRYi7HruNJJwAhPQ+sIcKKwdyyI3cysBQvY2Z8Y=";
hash = "sha256-EzP0Yd3cMstMhPGBD+3dUJE4NL0YnJTGip/tTDj/Rfw=";
};
vendorHash = "sha256-Pv9LznRh7Nzm74gMKT2Q/VLIMIIc93en0qX6YA6TwK4=";
+2 -2
View File
@@ -12,12 +12,12 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "salt";
version = "3007.11";
version = "3007.12";
format = "setuptools";
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-EAkO0/1kKSXRkEXNH6mJHznUkQR0AsQ2ijtzCrwUCAU=";
hash = "sha256-y7JG3aXOynH/5Uq9/mY4s6LjGWw2JPv7EgdSo9HYN5c=";
};
patches = [
+1 -72
View File
@@ -1,72 +1 @@
{
fetchFromGitLab,
freetype,
libao,
libjpeg,
libmodplug,
libpng,
libsamplerate,
libsndfile,
libvorbis,
pkg-config,
SDL2,
SDL2_mixer,
lib,
stdenv,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sfrotz";
version = "2.54";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "DavidGriffith";
repo = "frotz";
rev = finalAttrs.version;
hash = "sha256-GvGxojD8d5GVy/d8h3q6K7KJroz2lsKbfE0F0acjBl8=";
};
buildInputs = [
freetype
libao
libjpeg
libmodplug
libpng
libsamplerate
libsndfile
libvorbis
SDL2
SDL2_mixer
zlib
];
nativeBuildInputs = [ pkg-config ];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
buildPhase = "make sdl";
installTargets = [ "install_sfrotz" ];
meta = {
description = "Interpreter for Infocom and other Z-Machine games (SDL interface)";
mainProgram = "sfrotz";
longDescription = ''
Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine
designed by Infocom to run all of their text adventures. It went through
multiple revisions during the lifetime of the company, and two further
revisions (V7 and V8) were created by Graham Nelson after the company's
demise. The specification is now quite well documented; this version of
Frotz supports version 1.0.
This version of Frotz fully supports all these versions of the Z-Machine
including the graphical version 6. Graphics and sound are created through
the use of the SDL libraries. AIFF sound effects and music in MOD and OGG
formats are supported when packaged in Blorb container files or optionally
from individual files.
'';
homepage = "https://davidgriffith.gitlab.io/frotz/";
changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${finalAttrs.version}/NEWS";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ddelabru ];
platforms = lib.platforms.linux;
};
})
{ frotz }: frotz.override { frontend = "sdl"; }
+3 -3
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "sydbox";
version = "3.48.7";
version = "3.49.1";
outputs = [
"out"
@@ -24,10 +24,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "Sydbox";
repo = "sydbox";
tag = "v${finalAttrs.version}";
hash = "sha256-oNA0/1X0av/pd7e6lxDWidNdc+nu7fIclNwkH85Vdag=";
hash = "sha256-TFPN0KvzO+tNlt9EWEx7MC3DNC3+CzHJn2MfMWpwOp4=";
};
cargoHash = "sha256-U8Q1OGHfM4o7QYSh7e0yuB7RdIN02z21ZnHfCMfrL74=";
cargoHash = "sha256-yrsJrZ4rDBYlapz/O+1l4h6MIAgZ0PpYm68OFfeHb8A=";
nativeBuildInputs = [
mandoc
@@ -1,16 +1,3 @@
diff --git a/meson.build b/meson.build
index 9e69128d..8c53ac88 100644
--- a/meson.build
+++ b/meson.build
@@ -226,7 +226,7 @@ if is_64bit_system
xcb_64bit_dep = dependency('xcb')
endif
if with_bitbridge
- xcb_32bit_dep = winegcc.find_library('xcb')
+ xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib'])
endif
# These are all headers-only libraries, and thus won't require separate 32-bit
diff --git a/src/common/notifications.cpp b/src/common/notifications.cpp
index 654b6c83..78ba2fe7 100644
--- a/src/common/notifications.cpp
+4 -6
View File
@@ -1,9 +1,8 @@
{
lib,
multiStdenv,
stdenv,
fetchFromGitHub,
replaceVars,
pkgsi686Linux,
dbus,
meson,
ninja,
@@ -73,7 +72,7 @@ let
hash = "sha256-LsPHPoAL21XOKmF1Wl/tvLJGzjaCLjaDAcUtDvXdXSU=";
};
in
multiStdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "yabridge";
version = "5.1.1";
@@ -105,7 +104,6 @@ multiStdenv.mkDerivation (finalAttrs: {
# Hard code bitbridge & runtime dependencies
(replaceVars ./hardcode-dependencies.patch {
libdbus = dbus.lib;
libxcb32 = pkgsi686Linux.libxcb;
inherit wine;
})
@@ -140,7 +138,7 @@ multiStdenv.mkDerivation (finalAttrs: {
mesonFlags = [
"--cross-file"
"cross-wine.conf"
"-Dbitbridge=true"
"-Dbitbridge=false"
# Requires CMake and is unnecessary
"-Dtomlplusplus:generate_cmake_config=false"
@@ -149,7 +147,7 @@ multiStdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
mkdir -p "$out/bin" "$out/lib"
cp yabridge-host{,-32}.exe{,.so} "$out/bin"
cp yabridge-host.exe{,.so} "$out/bin"
cp libyabridge{,-chainloader}-{vst2,vst3,clap}.so "$out/lib"
runHook postInstall
'';
+2 -2
View File
@@ -26,12 +26,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "yarg";
version = "0.13.2";
version = "0.14.0";
src = fetchzip {
url = "https://github.com/YARC-Official/YARG/releases/download/v${finalAttrs.version}/YARG_v${finalAttrs.version}-Linux-x86_64.zip";
stripRoot = false;
hash = "sha256-TcX4O0TDesuBMbUH8Lp6wLM8A5xzXH9Pl7vCMEIhQvE=";
hash = "sha256-l83tnEO9hHFiaks7D/y9D1HJKihU7+cvsvkbIKkNeuk=";
};
nativeBuildInputs = [ autoPatchelfHook ];
+5 -4
View File
@@ -8,16 +8,16 @@
}:
buildGoModule (finalAttrs: {
pname = "zrepl";
version = "0.6.1";
version = "0.7.0";
src = fetchFromGitHub {
owner = "zrepl";
repo = "zrepl";
rev = "v${finalAttrs.version}";
sha256 = "sha256-sFSWcJ0aBMay+ngUqnr0PKBMOfCcKHgBjff6KRpPZrg=";
tag = "v${finalAttrs.version}";
hash = "sha256-D2ADK1mX6Aq0I2fBeNLZeJ0GdxWxi2ApiZqT4b72yf4=";
};
vendorHash = "sha256-75fGejR7eiECsm1j3yIU1lAWaW9GrorrVnv8JEzkAtU=";
vendorHash = "sha256-yu/bKkcWhHJSQPU2F4C58RC7geVTVEcXHlV0DRn/sUs=";
subPackages = [ "." ];
@@ -46,6 +46,7 @@ buildGoModule (finalAttrs: {
meta = {
homepage = "https://zrepl.github.io/";
changelog = "https://github.com/zrepl/zrepl/releases/tag/${finalAttrs.src.tag}";
description = "One-stop, integrated solution for ZFS replication";
platforms = lib.platforms.linux;
license = lib.licenses.mit;
+6 -2
View File
@@ -3,7 +3,6 @@
stdenv,
fetchurl,
unzip,
bintools,
versionCheckHook,
runCommand,
cctools,
@@ -48,7 +47,12 @@ stdenv.mkDerivation (finalAttrs: {
cp -R . $out
''
+ lib.optionalString (stdenv.hostPlatform.isLinux) ''
find $out/bin -executable -type f -exec patchelf --set-interpreter ${bintools.dynamicLinker} {} \;
find $out/bin -type f -executable | while read f; do
if patchelf --print-interpreter "$f" >/dev/null 2>&1; then
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lib.makeLibraryPath [ (lib.getLib stdenv.cc.cc) ]}" "$f"
fi
done
''
+ ''
runHook postInstall
@@ -0,0 +1,15 @@
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index b041a075..27dc22ed 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -430,6 +430,10 @@ config("compiler") {
}
}
+ cflags_c += string_split(getenv("CFLAGS"), " ")
+ cflags_cc += string_split(getenv("CXXFLAGS"), " ")
+ ldflags += string_split(getenv("LDFLAGS"), " ")
+
# Assign any flags set for the C compiler to asmflags so that they are sent
# to the assembler. The Windows assembler takes different types of flags
# so only do so for posix platforms.
@@ -0,0 +1,261 @@
{
bintools,
buildPackages,
callPackage,
cacert,
curlMinimal,
dart,
debug ? false,
fetchurl,
gn,
gitMinimal,
gitSetupHook,
icu,
jq,
lib,
nix-update,
pax-utils,
pkg-config,
python312,
ripgrep,
runCommand,
samurai,
stdenv,
versionCheckHook,
writeShellScript,
writeText,
zlib,
}:
let
version = "3.11.0";
tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; };
getArchInfo =
platform:
let
arch = if platform.isx86_64 then "x64" else platform.linuxArch;
in
{
inherit arch;
outSuffix = lib.strings.toUpper arch;
};
targetArchInfo = getArchInfo stdenv.hostPlatform;
buildArchInfo = getArchInfo stdenv.buildPlatform;
python3 = python312.withPackages (
ps: with ps; [
httplib2
six
]
);
src =
runCommand "dart-source-deps"
{
pname = "dart-source-deps";
inherit version;
nativeBuildInputs = [
cacert
curlMinimal
gitMinimal
pax-utils
python3
tools.cipd
];
env = {
NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
DEPOT_TOOLS_UPDATE = "0";
DEPOT_TOOLS_COLLECT_METRICS = "0";
PYTHONDONTWRITEBYTECODE = "1";
CIPD_HTTP_USER_AGENT = "standard-nix-build";
};
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-7y6kNpjWpc8+4Rhv+GuMnV5xHCQ5om2/3woZOJ8wYSc=";
}
''
mkdir source
cd source
source ${../../../../build-support/fetchgit/deterministic-git}
export -f clean_git
export -f make_deterministic_repo
cp ${writeText ".gclient" ''
solutions = [{
'name': 'sdk',
'url': 'https://dart.googlesource.com/sdk.git@${version}',
}]
target_os = ['linux']
target_cpu = ['x64', 'arm64', 'riscv64']
target_cpu_only = True
''} .gclient
export PATH=${python3}/bin:$PATH:${tools.depot_tools}
python3 ${tools.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks
find sdk -name ".versions" -type d -exec rm -rf {} +
rm --recursive --force sdk/buildtools/sysroot
rm --recursive --force sdk/buildtools/linux-arm64
rm --recursive --force sdk/buildtools/reclient
rm --recursive --force sdk/buildtools/*/clang
find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete
rm --recursive --force sdk/tools/sdks/dart-sdk
find . -type l ! -exec test -e {} \; -delete
find . -name "ChangeLog*" -delete
rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes
rm --recursive --force .cipd .cipd_cache
find . -name ".git" -type d -prune -exec rm --recursive --force {} +
find . -name ".git*" -exec rm --recursive --force {} +
find . \( \
-name ".build-id" -o \
-name ".svn" -o \
-name "*~" -o \
-name "#*#" \
\) -exec rm --recursive --force {} +
for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do
rm --force "$elf"
done
find . -name "__pycache__" -type d -exec rm --recursive --force {} +
find . -name "*.pyc" -delete
cp --recursive sdk $out
'';
in
dart.overrideAttrs (oldAttrs: {
inherit version src;
nativeBuildInputs = [
gitMinimal
gitSetupHook
python312
ripgrep
pkg-config
];
buildInputs = lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
icu
zlib
];
patches = [
./gcc13.patch
./zlib-not-found.patch
./custom-flags.patch
]
++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
./unbundle.patch
./unbundle-icu.patch
];
postPatch = ''
sed --in-place 's/"-fsanitize=memory"//g' build/config/compiler/BUILD.gn
patchShebangs runtime/tools/
sed --in-place 's/ldflags = pkgresult\[4\]/ldflags = []/' build/config/linux/pkg_config.gni
cp ${
fetchurl {
url = "https://raw.githubusercontent.com/chromium/chromium/631a813125b886a52274653144019fd1681a0e97/build/config/linux/pkg-config.py";
hash = "sha256-9coRpgCewlkFXSGrMVkudaZUll0IFc9jDRBP+2PloOI=";
}
} build/config/linux/pkg-config.py
''
+ lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
sed --in-place "s/default='pkg-config'/default='${stdenv.cc.targetPrefix}pkg-config'/g" build/config/linux/pkg-config.py
mkdir --parents .bin-tools
ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}g++) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-g++
ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}gcc) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-gcc
ln --symbolic $(command -v ${buildPackages.stdenv.cc.targetPrefix}ar) .bin-tools/${stdenv.buildPlatform.parsed.cpu.name}-linux-gnu-ar
export PATH=$PWD/.bin-tools:$PATH
''
+ ''
ln --symbolic ${buildPackages.dart} tools/sdks/dart-sdk
ln --symbolic --force ${lib.getExe buildPackages.gn} buildtools/gn
mkdir --parents buildtools/ninja
ln --symbolic --force ${lib.getExe buildPackages.samurai} buildtools/ninja/ninja
python3 tools/generate_package_config.py
python3 tools/generate_sdk_version_file.py
echo "" > tools/bots/dartdoc_footer.html
rm third_party/devtools/web/devtools_analytics.js
JOBS_COUNT=''${NIX_BUILD_CORES:-2}
rg --no-ignore -l 'google-analytics\.com' . \
| rg -v "\.map\$" \
| xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \
sed --in-place --regexp-extended 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g'
rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \
| xargs --no-run-if-empty -t -n 1 -P "$JOBS_COUNT" \
sed --in-place --regexp-extended 's|UA-[0-9]+-[0-9]+|UA-2137-0|g'
''
+ lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
for _lib in icu zlib; do
find . -type f -path "*third_party/$_lib/*" \
\! -path "*third_party/$_lib/chromium/*" \
\! -path "*third_party/$_lib/google/*" \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete
done
python3 build/linux/unbundle/replace_gn_files.py --system-libraries icu zlib
''
+ ''
git init
git add .
git commit --message="stub" --quiet
'';
buildPhase = ''
runHook preBuild
python3 ./tools/build.py \
--no-clang \
--mode=${if debug then "debug" else "release"} \
--arch=${targetArchInfo.arch} \
--gn-args="${targetArchInfo.arch}_toolchain_prefix=\"${stdenv.cc}/bin/${stdenv.cc.targetPrefix}\"" \
''
+ lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
--gn-args="dart_target_arch=\"${targetArchInfo.arch}\"" \
--gn-args="dart_host_arch=\"${buildArchInfo.arch}\"" \
--gn-args="${buildArchInfo.arch}_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \
--gn-args="host_cpu=\"${buildArchInfo.arch}\"" \
--gn-args="dart_force_runtime_snapshot_deps=true" \
--gn-args="host_toolchain_prefix=\"${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}\"" \
--gn-args="target_cpu=\"${targetArchInfo.arch}\"" \
''
+ lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
--gn-args="dart_embed_icu_data=false dart_snapshot_kind=\"app-jit\"" \
''
+ ''
--gn-args="dart_sysroot=\"\"" \
--no-verify-sdk-hash \
create_sdk runtime
runHook postBuild
'';
installPhase = ''
runHook preInstall
pushd out/${if debug then "Debug" else "Release"}${
if (stdenv.hostPlatform == stdenv.buildPlatform) then targetArchInfo.outSuffix else "*"
}/dart-sdk
rm LICENSE README revision
cp --recursive . $out
popd
runHook postInstall
'';
passthru.updateScript = writeShellScript "update-dart" ''
${lib.getExe nix-update} --version=$(${lib.getExe curlMinimal} --fail --location --silent https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION | ${lib.getExe jq} --raw-output .version)
'';
meta = oldAttrs.meta // {
platforms = [
"aarch64-linux"
"x86_64-linux"
];
sourceProvenance = [ lib.sourceTypes.fromSource ];
};
})
@@ -0,0 +1,20 @@
--- a/runtime/bin/ffi_test/ffi_test_functions_generated.cc
+++ b/runtime/bin/ffi_test/ffi_test_functions_generated.cc
@@ -11,6 +11,7 @@
#include <sys/types.h>
#include <cmath>
+#include <cstdint>
#include <iostream>
#include <limits>
--- a/runtime/bin/ffi_test/ffi_test_functions.cc
+++ b/runtime/bin/ffi_test/ffi_test_functions.cc
@@ -13,6 +13,7 @@
#include <sys/types.h>
#include <cmath>
+#include <cstdint>
#include <iostream>
#include <limits>
@@ -0,0 +1,64 @@
From 0d936b3e64e1e629bd29fa4dd84240f5c5344092 Mon Sep 17 00:00:00 2001
From: LN Liberda <lauren@selfisekai.rocks>
Date: Tue, 26 Nov 2024 19:28:59 +0100
Subject: [PATCH] build: option to not embed icu data
Bug: none
---
runtime/bin/BUILD.gn | 11 ++++++++---
runtime/runtime_args.gni | 3 +++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index 90dc09a0c02..8f88873dc18 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -795,7 +795,6 @@ template("dart_executable") {
}
deps = [
":crashpad",
- ":icudtl_cc",
"//third_party/boringssl",
"//third_party/icu:icui18n",
"//third_party/icu:icuuc",
@@ -804,7 +803,11 @@ template("dart_executable") {
if (is_fuchsia) {
deps += [ "$fuchsia_sdk/pkg/fdio" ]
}
- defines = [ "DART_EMBED_ICU_DATA" ] + extra_defines
+ defines = extra_defines
+ if (dart_embed_icu_data) {
+ defines += [ "DART_EMBED_ICU_DATA" ]
+ deps += [ ":icudtl_cc" ]
+ }
if (exclude_kernel_service) {
defines += [ "EXCLUDE_CFE_AND_KERNEL_PLATFORM" ]
}
@@ -1004,10 +1004,12 @@
"..:add_empty_macho_section_config",
]
extra_deps = [
- ":icudtl_cc",
"..:libdart_aotruntime",
"../platform:libdart_platform_aotruntime",
]
+ if (dart_embed_icu_data) {
+ extra_deps += [":icudtl_cc"]
+ }
extra_sources = [
"builtin.cc",
"gzip.cc",
diff --git a/runtime/runtime_args.gni b/runtime/runtime_args.gni
index fbcfeb157fb..061e8f74a5c 100644
--- a/runtime/runtime_args.gni
+++ b/runtime/runtime_args.gni
@@ -77,6 +77,9 @@ declare_args() {
# Whether to support dynamic loading and interpretation of Dart bytecode.
dart_dynamic_modules = false
+
+ # Whether to embed ICU data inside the runtime binary.
+ dart_embed_icu_data = true
}
declare_args() {
@@ -0,0 +1,439 @@
diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
new file mode 100644
index 00000000000..9e54d4efe4e
--- /dev/null
+++ b/build/linux/unbundle/icu.gn
@@ -0,0 +1,262 @@
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+group("icu") {
+ public_deps = [
+ ":icui18n",
+ ":icuuc",
+ ]
+}
+
+config("icu_config") {
+ defines = [
+ "USING_SYSTEM_ICU=1",
+ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
+
+ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
+ # on classes through the U_COMMON_API and U_I18N_API macros (among others).
+ # When linking against the system ICU library, we want its symbols to have
+ # public LTO visibility. This disables CFI checks for the ICU classes and
+ # allows whole-program optimization to be applied to the rest of Chromium.
+ #
+ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only
+ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because
+ # we override the default system UCHAR_TYPE (char16_t), it is not possible
+ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API
+ # and U_I18N_API macros are set to U_IMPORT which is an empty definition.
+ #
+ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply
+ # public visibility (and thus public LTO visibility) to all ICU classes is
+ # to define U_IMPORT to have the same value as U_EXPORT. For more details,
+ # please see: https://crbug.com/822820
+ "U_IMPORT=U_EXPORT",
+ ]
+}
+
+pkg_config("system_icui18n") {
+ packages = [ "icu-i18n" ]
+}
+
+pkg_config("system_icuuc") {
+ packages = [ "icu-uc" ]
+}
+
+source_set("icui18n") {
+ public_deps = [ ":icui18n_shim" ]
+ public_configs = [
+ ":icu_config",
+ ":system_icui18n",
+ ]
+}
+
+source_set("icuuc") {
+ public_deps = [ ":icuuc_shim" ]
+ public_configs = [
+ ":icu_config",
+ ":system_icuuc",
+ ]
+}
+
+group("icui18n_hidden_visibility") {
+ public_deps = [ ":icui18n" ]
+}
+
+group("icuuc_hidden_visibility") {
+ public_deps = [ ":icuuc" ]
+}
+
+shim_headers("icui18n_shim") {
+ root_path = "source/i18n"
+ headers = [
+ # This list can easily be updated using the commands below:
+ # cd third_party/icu/source/i18n
+ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
+ "unicode/alphaindex.h",
+ "unicode/basictz.h",
+ "unicode/calendar.h",
+ "unicode/choicfmt.h",
+ "unicode/coleitr.h",
+ "unicode/coll.h",
+ "unicode/compactdecimalformat.h",
+ "unicode/curramt.h",
+ "unicode/currpinf.h",
+ "unicode/currunit.h",
+ "unicode/datefmt.h",
+ "unicode/dcfmtsym.h",
+ "unicode/decimfmt.h",
+ "unicode/dtfmtsym.h",
+ "unicode/dtitvfmt.h",
+ "unicode/dtitvinf.h",
+ "unicode/dtptngen.h",
+ "unicode/dtrule.h",
+ "unicode/fieldpos.h",
+ "unicode/fmtable.h",
+ "unicode/format.h",
+ "unicode/fpositer.h",
+ "unicode/gender.h",
+ "unicode/gregocal.h",
+ "unicode/listformatter.h",
+ "unicode/measfmt.h",
+ "unicode/measunit.h",
+ "unicode/measure.h",
+ "unicode/msgfmt.h",
+ "unicode/numfmt.h",
+ "unicode/numsys.h",
+ "unicode/plurfmt.h",
+ "unicode/plurrule.h",
+ "unicode/rbnf.h",
+ "unicode/rbtz.h",
+ "unicode/regex.h",
+ "unicode/region.h",
+ "unicode/reldatefmt.h",
+ "unicode/scientificnumberformatter.h",
+ "unicode/search.h",
+ "unicode/selfmt.h",
+ "unicode/simpletz.h",
+ "unicode/smpdtfmt.h",
+ "unicode/sortkey.h",
+ "unicode/stsearch.h",
+ "unicode/tblcoll.h",
+ "unicode/timezone.h",
+ "unicode/tmunit.h",
+ "unicode/tmutamt.h",
+ "unicode/tmutfmt.h",
+ "unicode/translit.h",
+ "unicode/tzfmt.h",
+ "unicode/tznames.h",
+ "unicode/tzrule.h",
+ "unicode/tztrans.h",
+ "unicode/ucal.h",
+ "unicode/ucol.h",
+ "unicode/ucoleitr.h",
+ "unicode/ucsdet.h",
+ "unicode/udat.h",
+ "unicode/udateintervalformat.h",
+ "unicode/udatpg.h",
+ "unicode/ufieldpositer.h",
+ "unicode/uformattable.h",
+ "unicode/ugender.h",
+ "unicode/ulocdata.h",
+ "unicode/umsg.h",
+ "unicode/unirepl.h",
+ "unicode/unum.h",
+ "unicode/unumsys.h",
+ "unicode/upluralrules.h",
+ "unicode/uregex.h",
+ "unicode/uregion.h",
+ "unicode/ureldatefmt.h",
+ "unicode/usearch.h",
+ "unicode/uspoof.h",
+ "unicode/utmscale.h",
+ "unicode/utrans.h",
+ "unicode/vtzone.h",
+ ]
+}
+
+shim_headers("icuuc_shim") {
+ root_path = "source/common"
+ headers = [
+ # This list can easily be updated using the commands below:
+ # cd third_party/icu/source/common
+ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
+ "unicode/appendable.h",
+ "unicode/brkiter.h",
+ "unicode/bytestream.h",
+ "unicode/bytestrie.h",
+ "unicode/bytestriebuilder.h",
+ "unicode/caniter.h",
+ "unicode/casemap.h",
+ "unicode/char16ptr.h",
+ "unicode/chariter.h",
+ "unicode/dbbi.h",
+ "unicode/docmain.h",
+ "unicode/dtintrv.h",
+ "unicode/edits.h",
+ "unicode/enumset.h",
+ "unicode/errorcode.h",
+ "unicode/filteredbrk.h",
+ "unicode/icudataver.h",
+ "unicode/icuplug.h",
+ "unicode/idna.h",
+ "unicode/localematcher.h",
+ "unicode/localpointer.h",
+ "unicode/locdspnm.h",
+ "unicode/locid.h",
+ "unicode/messagepattern.h",
+ "unicode/normalizer2.h",
+ "unicode/normlzr.h",
+ "unicode/parseerr.h",
+ "unicode/parsepos.h",
+ "unicode/platform.h",
+ "unicode/ptypes.h",
+ "unicode/putil.h",
+ "unicode/rbbi.h",
+ "unicode/rep.h",
+ "unicode/resbund.h",
+ "unicode/schriter.h",
+ "unicode/simpleformatter.h",
+ "unicode/std_string.h",
+ "unicode/strenum.h",
+ "unicode/stringpiece.h",
+ "unicode/stringtriebuilder.h",
+ "unicode/symtable.h",
+ "unicode/ubidi.h",
+ "unicode/ubiditransform.h",
+ "unicode/ubrk.h",
+ "unicode/ucasemap.h",
+ "unicode/ucat.h",
+ "unicode/uchar.h",
+ "unicode/ucharstrie.h",
+ "unicode/ucharstriebuilder.h",
+ "unicode/uchriter.h",
+ "unicode/uclean.h",
+ "unicode/ucnv.h",
+ "unicode/ucnv_cb.h",
+ "unicode/ucnv_err.h",
+ "unicode/ucnvsel.h",
+ "unicode/uconfig.h",
+ "unicode/ucurr.h",
+ "unicode/udata.h",
+ "unicode/udisplaycontext.h",
+ "unicode/uenum.h",
+ "unicode/uidna.h",
+ "unicode/uiter.h",
+ "unicode/uldnames.h",
+ "unicode/ulistformatter.h",
+ "unicode/uloc.h",
+ "unicode/umachine.h",
+ "unicode/umisc.h",
+ "unicode/unifilt.h",
+ "unicode/unifunct.h",
+ "unicode/unimatch.h",
+ "unicode/uniset.h",
+ "unicode/unistr.h",
+ "unicode/unorm.h",
+ "unicode/unorm2.h",
+ "unicode/uobject.h",
+ "unicode/urename.h",
+ "unicode/urep.h",
+ "unicode/ures.h",
+ "unicode/uscript.h",
+ "unicode/uset.h",
+ "unicode/usetiter.h",
+ "unicode/ushape.h",
+ "unicode/usprep.h",
+ "unicode/ustring.h",
+ "unicode/ustringtrie.h",
+ "unicode/utext.h",
+ "unicode/utf.h",
+ "unicode/utf16.h",
+ "unicode/utf32.h",
+ "unicode/utf8.h",
+ "unicode/utf_old.h",
+ "unicode/utrace.h",
+ "unicode/utypes.h",
+ "unicode/uvernum.h",
+ "unicode/uversion.h",
+ ]
+}
diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py
new file mode 100755
index 00000000000..1aed7bca99d
--- /dev/null
+++ b/build/linux/unbundle/replace_gn_files.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""
+Replaces GN files in tree with files from here that
+make the build use system libraries.
+"""
+
+import argparse
+import os
+import shutil
+import sys
+
+
+REPLACEMENTS = {
+ 'icu': 'third_party/icu/BUILD.gn',
+ 'protobuf': 'build/secondary/third_party/protobuf/BUILD.gn',
+ 'zlib': 'third_party/zlib/BUILD.gn',
+}
+
+
+def DoMain(argv):
+ my_dirname = os.path.dirname(__file__)
+ source_tree_root = os.path.abspath(
+ os.path.join(my_dirname, '..', '..', '..'))
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--system-libraries', nargs='*', default=[])
+ parser.add_argument('--undo', action='store_true')
+
+ args = parser.parse_args(argv)
+
+ handled_libraries = set()
+ for lib, path in REPLACEMENTS.items():
+ if lib not in args.system_libraries:
+ continue
+ handled_libraries.add(lib)
+
+ if args.undo:
+ # Restore original file, and also remove the backup.
+ # This is meant to restore the source tree to its original state.
+ os.rename(os.path.join(source_tree_root, path + '.orig'),
+ os.path.join(source_tree_root, path))
+ else:
+ # Create a backup copy for --undo.
+ shutil.copyfile(os.path.join(source_tree_root, path),
+ os.path.join(source_tree_root, path + '.orig'))
+
+ # Copy the GN file from directory of this script to target path.
+ shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib),
+ os.path.join(source_tree_root, path))
+
+ unhandled_libraries = set(args.system_libraries) - handled_libraries
+ if unhandled_libraries:
+ print('Unrecognized system libraries requested: %s' % ', '.join(
+ sorted(unhandled_libraries)), file=sys.stderr)
+ return 1
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(DoMain(sys.argv[1:]))
diff --git a/build/linux/unbundle/zlib.gn b/build/linux/unbundle/zlib.gn
new file mode 100644
index 00000000000..fa2bbffd25f
--- /dev/null
+++ b/build/linux/unbundle/zlib.gn
@@ -0,0 +1,63 @@
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/shim_headers.gni")
+
+shim_headers("zlib_shim") {
+ root_path = "."
+ headers = [ "zlib.h" ]
+ additional_includes = [ "third_party" ]
+
+}
+
+config("system_zlib") {
+ defines = [ "USE_SYSTEM_ZLIB=1" ]
+}
+
+config("zlib_config") {
+ configs = [ ":system_zlib" ]
+}
+
+source_set("zlib") {
+ public_deps = [ ":zlib_shim" ]
+ libs = [ "z" ]
+ public_configs = [ ":system_zlib" ]
+}
+
+shim_headers("minizip_shim") {
+ root_path = "contrib"
+ headers = [
+ "minizip/crypt.h",
+ "minizip/ioapi.h",
+ "minizip/iowin32.h",
+ "minizip/mztools.h",
+ "minizip/unzip.h",
+ "minizip/zip.h",
+ ]
+}
+
+source_set("minizip") {
+ deps = [ ":minizip_shim" ]
+ libs = [ "minizip" ]
+}
+
+static_library("zip") {
+ sources = [
+ "google/zip.cc",
+ "google/zip.h",
+ "google/zip_internal.cc",
+ "google/zip_internal.h",
+ "google/zip_reader.cc",
+ "google/zip_reader.h",
+ ]
+ deps = [ ":minizip" ]
+}
+
+static_library("compression_utils") {
+ sources = [
+ "google/compression_utils.cc",
+ "google/compression_utils.h",
+ ]
+ deps = [ ":zlib" ]
+}
diff --git a/build/shim_headers.gni b/build/shim_headers.gni
index dc57d12ed0c..1d24e0ad00e 100644
--- a/build/shim_headers.gni
+++ b/build/shim_headers.gni
@@ -7,6 +7,11 @@ template("shim_headers") {
shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
config(config_name) {
include_dirs = [ shim_headers_path ]
+ if (defined(invoker.additional_includes)) {
+ foreach(i, invoker.additional_includes) {
+ include_dirs += [ shim_headers_path + "/" + i ]
+ }
+ }
}
action(action_name) {
script = "//tools/generate_shim_headers.py"
@@ -26,11 +31,12 @@ template("shim_headers") {
args += invoker.headers
outputs = []
foreach(h, invoker.headers) {
- outputs += [ shim_headers_path + "/" + rebase_path(invoker.root_path,"//") + "/" + h ]
+ outputs += [ shim_headers_path + "/" +
+ rebase_path(invoker.root_path, "//") + "/" + h ]
}
}
group(target_name) {
- deps = [ ":${action_name}" ]
+ public_deps = [ ":${action_name}" ]
all_dependent_configs = [ ":${config_name}" ]
}
}
@@ -0,0 +1,10 @@
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -1152,6 +1152,7 @@
deps = [
"//third_party/boringssl", # for secure_socket_utils_test
"//third_party/perfetto:libprotozero", # for timeline_test
+ "//third_party/zlib", # for gzip
]
if (is_fuchsia) {
@@ -8,7 +8,7 @@
buildDunePackage (finalAttrs: {
pname = "synchronizer";
version = "0.2";
version = "0.3";
minimalOCamlVersion = "5.1";
@@ -16,7 +16,7 @@ buildDunePackage (finalAttrs: {
owner = "OCamlPro";
repo = "synchronizer";
tag = finalAttrs.version;
hash = "sha256-0XtPHpDlyH1h8W2ZlRvJbZjCN9WP5mzk2N01WFd8eLQ=";
hash = "sha256-zomP15CRV6pFK3yk9hMCSDHPk11hEqXiRw8vr2Dg0CI=";
};
propagatedBuildInputs = [
@@ -5,26 +5,24 @@
poetry-core,
aiohttp,
yarl,
aioresponses,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "aiosolaredge";
version = "0.2.0";
version = "1.0.2";
pyproject = true;
src = fetchFromGitHub {
owner = "bdraco";
repo = "aiosolaredge";
tag = "v${version}";
hash = "sha256-1C74U5HWDTJum1XES21t1uIJwm0YW3l041mwvqY/dA4=";
hash = "sha256-1RdkYcdhhU+MaP91iJ1tSrL0OlUi6Il1XBXnmRYhC7g=";
};
postPatch = ''
sed -i "/^addopts/d" pyproject.toml
'';
build-system = [ poetry-core ];
dependencies = [
@@ -35,12 +33,14 @@ buildPythonPackage rec {
pythonImportsCheck = [ "aiosolaredge" ];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
meta = {
changelog = "https://github.com/bdraco/aiosolaredge/blob/${src.rev}/CHANGELOG.md";
changelog = "https://github.com/bdraco/aiosolaredge/blob/${src.tag}/CHANGELOG.md";
description = "Asyncio SolarEdge API client";
homepage = "https://github.com/bdraco/aiosolaredge";
license = lib.licenses.mit;
@@ -25,7 +25,7 @@
buildPythonPackage rec {
pname = "debugpy";
version = "1.8.19";
version = "1.8.20";
pyproject = true;
src = fetchFromGitHub {
@@ -42,7 +42,7 @@ buildPythonPackage rec {
sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' "$out/src/debugpy/_version.py"
'';
hash = "sha256-O9RHqyV7xMMnouCp4t18CNH/z2jBxZBUkybAw1c2gY0=";
hash = "sha256-0h2VQU5eYb0heXSFmKnwAFW0jcWc+bYllhwxfdzkGWc=";
};
patches = [
@@ -41,14 +41,14 @@
buildPythonPackage rec {
pname = "django-allauth";
version = "65.14.0";
version = "65.14.3";
pyproject = true;
src = fetchFromCodeberg {
owner = "allauth";
repo = "django-allauth";
tag = version;
hash = "sha256-hoPNSMzn/bX98Qe+7guaLK8UhA5FfHpUCjzN6hCXVgs=";
hash = "sha256-Kr6iYN+qM1ZdtQAJ9Ks+zC70AiiUi2IY2O/G9S+tTmI=";
};
nativeBuildInputs = [ gettext ];
@@ -5,6 +5,7 @@
blurhash,
cryptography,
decorator,
fetchpatch,
graphemeu,
http-ece,
python-dateutil,
@@ -30,6 +31,14 @@ buildPythonPackage rec {
hash = "sha256-i3HMT8cabSl664UK3eopJQ9bDBpGCgbHTvBJkgeoxd8=";
};
patches = [
# Switch dependency from unmaintained `grapheme` to `graphemeu`
(fetchpatch {
url = "https://github.com/halcy/Mastodon.py/commit/939c7508414e950922c518260a9ba5a5853aeef2.patch";
hash = "sha256-XBiAFxYUBNyynld++UwPGIIg9j+3/EF2jGqiysVqYRM=";
})
];
build-system = [ setuptools ];
dependencies = [
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "pyturbojpeg";
version = "1.8.2";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "lilohuang";
repo = "PyTurboJPEG";
tag = "v${version}";
hash = "sha256-zyLNIo7hQuzTlEgdvri3bSnAiRRKKup57tfCIxiBq24=";
hash = "sha256-yITX+6mP8AihaTFjZG9A5U6pAUTdPy6UDbbjnznwuqI=";
};
patches = [
@@ -17,7 +17,7 @@ let
in
buildPythonPackage rec {
pname = "reportlab";
version = "4.4.9";
version = "4.4.10";
pyproject = true;
# See https://bitbucket.org/pypy/compatibility/wiki/reportlab%20toolkit
@@ -25,7 +25,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
hash = "sha256-fPSHdkKU7nkaR4H1oVe+vOJipmauS7uHeGdgqWdsk3g=";
hash = "sha256-XLuzSsNUYDnQCG3rKTjN7AaxLaPNuDboEyWOszzShIc=";
};
postPatch = ''
@@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "simsimd";
version = "6.5.12";
version = "6.5.13";
pyproject = true;
src = fetchFromGitHub {
owner = "ashvardanian";
repo = "SimSIMD";
tag = "v${version}";
hash = "sha256-4mgWm4FcTGf9DNc39GOjK9jnyev7hIeODjpnuIz6f1k=";
hash = "sha256-jNJ44jCPcs83HbLSkup6eeCL0Hf+SyU4RzyQAyuPJ94=";
};
build-system = [
@@ -47,8 +47,7 @@ buildPythonPackage (finalAttrs: {
# cli deps
typer
]
++ typer.optional-dependencies.standard;
];
preCheck = ''
# make sphinx_path an alias of pathlib.Path, since sphinx_path was removed in Sphinx v7.2.0
@@ -5,7 +5,7 @@
hatchling,
lib,
pytestCheckHook,
typer-slim,
typer,
}:
buildPythonPackage rec {
@@ -20,13 +20,18 @@ buildPythonPackage rec {
hash = "sha256-nwEYFw+4jeF/SoaZWR51VWRezqBFjGoLiVgJWdPNoIk=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "typer-slim" "typer"
'';
build-system = [
hatch-vcs
hatchling
];
dependencies = [
typer-slim
typer
];
pythonImportsCheck = [ "typer_injector" ];
@@ -1,90 +0,0 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
# build-system
pdm-backend,
# dependencies
click,
typing-extensions,
# optional-dependencies
rich,
shellingham,
# tests
pytest-xdist,
pytestCheckHook,
writableTmpDirAsHomeHook,
procps,
}:
buildPythonPackage rec {
pname = "typer-slim";
version = "0.21.0";
pyproject = true;
src = fetchFromGitHub {
owner = "fastapi";
repo = "typer";
tag = version;
hash = "sha256-MvrwHemciLa2m0QUTZNuCLa7x63RKWFzJ5k6Ask25ZY=";
};
postPatch = ''
for f in $(find tests -type f -print); do
# replace `sys.executable -m coverage run` with `sys.executable`
sed -z -i 's/"-m",\n\?\s*"coverage",\n\?\s*"run",//g' "$f"
done
'';
env.TIANGOLO_BUILD_PACKAGE = "typer-slim";
build-system = [ pdm-backend ];
dependencies = [
click
typing-extensions
];
optional-dependencies = {
standard = [
rich
shellingham
];
};
nativeCheckInputs = [
pytest-xdist
pytestCheckHook
writableTmpDirAsHomeHook
]
++ lib.concatAttrValues optional-dependencies
++ lib.optionals stdenv.hostPlatform.isDarwin [
procps
];
disabledTests = [
"test_scripts"
# Likely related to https://github.com/sarugaku/shellingham/issues/35
# fails also on Linux
"test_show_completion"
"test_install_completion"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
"test_install_completion"
];
pythonImportsCheck = [ "typer" ];
meta = {
description = "Library for building CLI applications";
homepage = "https://typer.tiangolo.com/";
changelog = "https://github.com/tiangolo/typer/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ winpat ];
};
}
@@ -1,20 +1,84 @@
{
lib,
mkPythonMetaPackage,
typer-slim,
stdenv,
buildPythonPackage,
fetchFromGitHub,
# build-system
pdm-backend,
# dependencies
annotated-doc,
click,
# optional-dependencies
rich,
shellingham,
# tests
pytest-xdist,
pytestCheckHook,
writableTmpDirAsHomeHook,
procps,
}:
mkPythonMetaPackage {
buildPythonPackage rec {
pname = "typer";
inherit (typer-slim) version optional-dependencies;
dependencies = [ typer-slim ] ++ typer-slim.optional-dependencies.standard;
version = "0.24.0";
pyproject = true;
src = fetchFromGitHub {
owner = "fastapi";
repo = "typer";
tag = version;
hash = "sha256-ha/cT2+I9/WUjb7ZXSKqLSocZ3vq0N1fm4RvRpsXIDc=";
};
postPatch = ''
for f in $(find tests -type f -print); do
# replace `sys.executable -m coverage run` with `sys.executable`
sed -z -i 's/"-m",\n\?\s*"coverage",\n\?\s*"run",//g' "$f"
done
'';
env.TIANGOLO_BUILD_PACKAGE = "typer";
build-system = [ pdm-backend ];
dependencies = [
annotated-doc
click
rich
shellingham
];
nativeCheckInputs = [
pytest-xdist
pytestCheckHook
writableTmpDirAsHomeHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
procps
];
disabledTests = [
"test_scripts"
# Likely related to https://github.com/sarugaku/shellingham/issues/35
# fails also on Linux
"test_show_completion"
"test_install_completion"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
"test_install_completion"
];
pythonImportsCheck = [ "typer" ];
meta = {
inherit (typer-slim.meta)
changelog
description
homepage
license
maintainers
;
description = "Library for building CLI applications";
homepage = "https://typer.tiangolo.com/";
changelog = "https://github.com/tiangolo/typer/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ winpat ];
};
}
@@ -55,6 +55,6 @@ buildPythonPackage rec {
license = lib.licenses.bsd3;
homepage = "https://github.com/vega/vl-convert";
changelog = "https://github.com/vega/vl-convert/releases/tag/v${version}";
maintainers = with lib.maintainers; [ antonmosich ];
maintainers = [ ];
};
}
@@ -14,7 +14,7 @@
requests,
smart-open,
srsly,
typer-slim,
typer,
wasabi,
# tests
@@ -33,6 +33,11 @@ buildPythonPackage rec {
hash = "sha256-Xd7cJlUi/a8gwtnuO9wqZiHT1xVMbp6V6Ha+Kyr4tFE=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "typer-slim" "typer"
'';
build-system = [ setuptools ];
dependencies = [
@@ -43,7 +48,7 @@ buildPythonPackage rec {
requests
smart-open
srsly
typer-slim
typer
wasabi
];
+7
View File
@@ -12765,6 +12765,13 @@ with pkgs;
dart = callPackage ../development/compilers/dart { };
inherit
({
dart-source = callPackage ../development/compilers/dart/source { };
})
dart-source
;
pub2nix = recurseIntoAttrs (callPackage ../build-support/dart/pub2nix { });
buildDartApplication = callPackage ../build-support/dart/build-dart-application { };
+21
View File
@@ -27,6 +27,26 @@ let
lib.mapAttrs (
n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias))
) aliases;
warnAlias =
msg: v:
if lib.isDerivation v then
lib.warnOnInstantiate msg v
else if lib.isAttrs v then
lib.mapAttrs (_: lib.warn msg) v
else if lib.isFunction v then
arg: lib.warn msg (v arg)
else if lib.isList v then
map (lib.warn msg) v
else
# Cant do better than this, and a `throw` would be more
# disruptive for users…
#
# `nix search` flags up warnings already, so hopefully this wont
# make things much worse until we have proper CI for aliases,
# especially since aliases of paths and numbers are presumably
# not common.
lib.warn msg v;
in
### Deprecated aliases - for backward compatibility
@@ -519,6 +539,7 @@ mapAliases {
tvdb_api = throw "'tvdb_api' has been renamed to/replaced by 'tvdb-api'"; # Converted to throw 2025-10-29
tweedledum = throw "'tweedledum' has been removed due to lack of upstream maintenance."; # Added 2025-11-22
typed-ast = throw "typed-ast was removed because it went end of life in July 2023"; # added 2025-05-24
typer-slim = warnAlias "typer-slim was an alias package of typer that only depended on it and has been removed." typer; # added 2026-02-16
types-typed-ast = throw "types-typed-ast was removed because so was typed-ast"; # added 2025-05-24
typesentry = throw "typesentry was removed because it was broken and unmaintained"; # added 2026-02-02
typesystem = throw "'typesystem' has been removed as it was broken, unmaintained, and archived upstream"; # Added 2025-11-27
-2
View File
@@ -19604,8 +19604,6 @@ self: super: with self; {
typer-shell = callPackage ../development/python-modules/typer-shell { };
typer-slim = callPackage ../development/python-modules/typer-slim { };
types-aiobotocore = callPackage ../development/python-modules/types-aiobotocore { };
inherit (callPackage ../development/python-modules/types-aiobotocore-packages { })