Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-03-01 12:08:33 +00:00
committed by GitHub
68 changed files with 1466 additions and 289 deletions
+33
View File
@@ -0,0 +1,33 @@
# `juce.projucerHook` {#juce-projucer-hook}
[Projucer](https://juce.com/tutorials/tutorial_new_projucer_project/) is a graphical project management utility and build system for the [JUCE](https://juce.com/) audio programming framework. It is available in nixpkgs under the `juce` package.
The `juce.projucerHook` setup hook overrides the configure and install phases. It is only supported on Linux and requires your project's `.jucer` file to contain a `LinuxMakefile` exporter.
## Example {#juce-projucer-hook-example}
```nix
{
juce,
stdenv,
}:
stdenv.mkDerivation {
# ...
nativeBuildInputs = [ juce.projucerHook ];
jucerFile = "Microbiome.jucer";
dontUseProjucerInstall = true;
# ...
}
```
## Variables controlling `juce.projucerHook` {#juce-projucer-hook-variables}
### `dontUseProjucerConfigure`
Disables `projucerConfigurePhase`
### `dontUseProjucerInstall`
Disables `projucerInstallPhase`
+2
View File
@@ -62,6 +62,8 @@
This update introduces several breaking changes: the Python plugin interface is now v5.0, the `PATH` plugin has been renamed to `Commandline`, and the QStylesheets-based widgets box model frontend has been removed.
For more information read the [changelog for 34.0.0](https://albertlauncher.github.io/2026/01/19/albert-v34.0.0-released/).
- `sing-box` has been updated to 1.13.0, which has removed some deprecated options. See [upstream documentation](https://sing-box.sagernet.org/configuration/) for details and migration options.
- `cargo-codspeed` has been updated from `3.0.5` to `4.2.0`. Version `4.0.0` includes breaking changes. For more information read the [changelog for 4.0.0](https://github.com/CodSpeedHQ/codspeed-rust/releases/tag/v4.0.0).
- `corepack_latest` has been removed, as Corepack is no longer distributed with Node.js.
@@ -76,6 +76,8 @@
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
- `sing-box` has been updated to 1.13.0, which has removed some deprecated options. See [upstream documentation](https://sing-box.sagernet.org/configuration/) for details and migration options.
- `services.tandoor-recipes` now uses a sub-directory for media files by default starting with `26.05`. Existing setups should move media files out of the data directory and adjust `services.tandoor-recipes.extraConfig.MEDIA_ROOT` accordingly. See [Migrating media files for pre 26.05 installations](#module-services-tandoor-recipes-migrating-media).
- `rustic` was upgraded to `0.11.x`, which contains breaking [changes to command-line parameters and configuration file](https://rustic.cli.rs/docs/breaking_changes.html#0110).
@@ -145,14 +145,10 @@ in
systemd.services.ergochat = {
description = "Ergo IRC daemon";
wantedBy = [ "multi-user.target" ];
# reload is not applying the changed config. further investigation is needed
# at some point this should be enabled, since we don't want to restart for
# every config change
# reloadIfChanged = true;
restartTriggers = [ cfg.configFile ];
reloadTriggers = [ cfg.configFile ];
serviceConfig = {
Type = "notify-reload";
ExecStart = "${pkgs.ergochat}/bin/ergo run --conf /etc/ergo.yaml";
ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID";
DynamicUser = true;
StateDirectory = "ergo";
LimitNOFILE = toString cfg.openFilesLimit;
@@ -41,27 +41,6 @@ in
};
config = lib.mkIf cfg.enable {
assertions =
let
rules = cfg.settings.route.rules or [ ];
in
[
{
assertion = !lib.any (r: r ? source_geoip || r ? geoip) rules;
message = ''
Deprecated option `services.sing-box.settings.route.rules.*.{source_geoip,geoip}` is set.
See https://sing-box.sagernet.org/migration/#migrate-geoip-to-rule-sets for migration instructions.
'';
}
{
assertion = !lib.any (r: r ? geosite) rules;
message = ''
Deprecated option `services.sing-box.settings.route.rules.*.geosite` is set.
See https://sing-box.sagernet.org/migration/#migrate-geosite-to-rule-sets for migration instructions.
'';
}
];
# for polkit rules
environment.systemPackages = [ cfg.package ];
services.dbus.packages = [ cfg.package ];
+11 -1
View File
@@ -5,6 +5,7 @@ let
];
server = "ergochat";
ircPort = 6667;
altIrcPort = 16667;
channel = "nixos-cat";
iiDir = "/tmp/irc";
in
@@ -22,6 +23,10 @@ in
This one does.
'';
};
specialisation.new.configuration = {
services.ergochat.settings.server.listeners.":${toString altIrcPort}" = null;
};
};
}
// lib.listToAttrs (
@@ -101,5 +106,10 @@ in
# entry is executed by every client before advancing
# to the next one.
''
+ lib.concatStrings (reduce (lib.zipListsWith (cs: c: cs + c)) (map clientScript clients));
+ lib.concatStrings (reduce (lib.zipListsWith (cs: c: cs + c)) (map clientScript clients))
# Test server config reloading
+ ''
${server}.succeed("/run/current-system/specialisation/new/bin/switch-to-configuration test")
${server}.wait_for_open_port(${toString altIrcPort})
'';
}
+13 -7
View File
@@ -314,6 +314,9 @@ in
services.sing-box = {
enable = true;
settings = {
inbounds = [
tunInbound
];
outbounds = [
{
type = "block";
@@ -324,7 +327,6 @@ in
{
type = "wireguard";
tag = "outbound:wireguard";
name = "wg0";
address = [ "10.23.42.2/32" ];
mtu = 1280;
private_key = wg-keys.peer1.privateKey;
@@ -336,12 +338,19 @@ in
allowed_ips = [ "0.0.0.0/0" ];
}
];
system = true;
}
];
route = {
default_interface = "eth1";
final = "outbound:block";
rules = [
{
inbound = [
"inbound:tun"
];
outbound = "outbound:wireguard";
}
];
};
};
};
@@ -527,7 +536,6 @@ in
with subtest("tun"):
tun.wait_for_unit("sing-box.service")
tun.wait_for_unit("sys-devices-virtual-net-${tunInbound.interface_name}.device")
tun.wait_until_succeeds("ip route get ${hosts."${target_host}"} | grep 'dev ${tunInbound.interface_name}'")
tun.succeed("ip addr show ${tunInbound.interface_name}")
tun.succeed("ip route show table ${toString tunInbound.iproute2_table_index} | grep ${tunInbound.interface_name}")
@@ -539,9 +547,8 @@ in
with subtest("wireguard"):
wireguard.wait_for_unit("sing-box.service")
wireguard.wait_for_unit("sys-devices-virtual-net-wg0.device")
wireguard.succeed("ip addr show wg0")
test_curl(wireguard, "--interface wg0")
fakeip.wait_until_succeeds("ip route get ${hosts."${target_host}"} | grep 'dev ${tunInbound.interface_name}'")
test_curl(wireguard)
with subtest("tproxy"):
tproxy.wait_for_unit("sing-box.service")
@@ -549,7 +556,6 @@ in
with subtest("fakeip"):
fakeip.wait_for_unit("sing-box.service")
fakeip.wait_for_unit("sys-devices-virtual-net-${tunInbound.interface_name}.device")
fakeip.wait_until_succeeds("ip route get ${hosts."${target_host}"} | grep 'dev ${tunInbound.interface_name}'")
fakeip.succeed("dig +short A ${target_host} @${target_host} | grep '^198.18.'")
'';
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "pcsx-rearmed";
version = "0-unstable-2026-01-28";
version = "0-unstable-2026-02-23";
src = fetchFromGitHub {
owner = "libretro";
repo = "pcsx_rearmed";
rev = "94a7ee303c7852799caceb5af93cfd4f75c442e0";
hash = "sha256-EaXFWS5rdslgf/++FsWfhX3B6HvPlEQWYmiYoWzqGXY=";
rev = "5a8cedf59569a9f99caf5fda3b6d0b46a5d376a4";
hash = "sha256-orGU73BWcLaT2CqbdWZAT+5YOYSIb+0b1L4zQVGFZs0=";
};
dontConfigure = true;
@@ -15,14 +15,14 @@
go-md2man,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
pname = "cri-o";
version = "1.35.0";
src = fetchFromGitHub {
owner = "cri-o";
repo = "cri-o";
rev = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-aP3qhD2d1x+VPDifkg9lXgVD38UcongyN6vHkn8oYos=";
};
vendorHash = null;
@@ -52,7 +52,14 @@ buildGoModule rec {
glibc.static
];
BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
env.BUILDTAGS = toString [
"apparmor"
"seccomp"
"selinux"
"containers_image_openpgp"
"containers_image_ostree_stub"
];
buildPhase = ''
runHook preBuild
sed -i 's;\thack/;\tbash ./hack/;g' Makefile
@@ -87,4 +94,4 @@ buildGoModule rec {
teams = [ lib.teams.podman ];
platforms = lib.platforms.linux;
};
}
})
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bear";
version = "4.0.3";
version = "4.0.4";
src = fetchFromGitHub {
owner = "rizsotto";
repo = "bear";
rev = finalAttrs.version;
hash = "sha256-VZNrWfeeOJ5+qLg6hby4vR5rKKO7+mVOKp2p+lvwGOc=";
hash = "sha256-/sR0kIAqXaQkksoUvgSt2q1ZMQObeiLCr3TGalYiHs0=";
};
cargoHash = "sha256-61hKYDPPQ79QF3BNCLn2LxiCsoll+MGAMZ8obOVuNZI=";
cargoHash = "sha256-rjtf+8ZnkpTX6by20QN2VydWuuLRMvkDB8OTPlDCagI=";
nativeBuildInputs = [
installShellFiles
@@ -2,14 +2,15 @@
appimageTools,
lib,
fetchurl,
nix-update-script,
}:
let
pname = "betterdiscord-installer";
version = "1.0.0-beta";
version = "1.3.0";
src = fetchurl {
url = "https://github.com/BetterDiscord/Installer/releases/download/v${version}/Betterdiscord-Linux.AppImage";
sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
hash = "sha256-In5J6TWoJsFODDwMXd1lMg3341IZJD2OJebVtgISxP0=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
@@ -18,18 +19,21 @@ appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/betterdiscord.desktop -t $out/share/applications
substituteInPlace $out/share/applications/betterdiscord.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
install -m 444 -D ${appimageContents}/betterdiscord-installer.desktop -t $out/share/applications
substituteInPlace $out/share/applications/betterdiscord-installer.desktop \
--replace-fail 'Exec=AppRun' 'Exec=betterdiscord-installer'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Installer for BetterDiscord";
homepage = "https://betterdiscord.app";
license = lib.licenses.mit;
maintainers = [ ];
maintainers = with lib.maintainers; [ chillcicada ];
platforms = [ "x86_64-linux" ];
mainProgram = "betterdiscord-installer";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}
+2 -2
View File
@@ -19,13 +19,13 @@ in
llvmPackages.stdenv.mkDerivation (finalAttrs: {
pname = "c3c${optionalString debug "-debug"}";
version = "0.7.9";
version = "0.7.10";
src = fetchFromGitHub {
owner = "c3lang";
repo = "c3c";
tag = "v${finalAttrs.version}";
hash = "sha256-stbYTAetCkydPutI/Ck9Yx1bD6xc2idWz0Zr+zzl5F0=";
hash = "sha256-f4/tWe9pXogRNHLeMgwyK4yeQRWqeL+xPj6cwLWo2oo=";
};
cmakeBuildType = if debug then "Debug" else "Release";
+3 -3
View File
@@ -16,14 +16,14 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-update";
version = "18.1.0";
version = "18.1.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-MsABAqpXz+IDKmfiPLnZtp2YIGN506z2D/mpOvwwFQ4=";
hash = "sha256-q7o9CPz9d4cBkrrnp2JY4CZiYkKx/ebVlrS4D34RbIo=";
};
cargoHash = "sha256-y3XNROr8JrT5UlAdg3zJ8+/D6e9V4FBoObzw9EbTUuU=";
cargoHash = "sha256-kkMeVoeLAeavhfGWdZRgPF3eddsnqIGLa/qrRiGbvLM=";
nativeBuildInputs = [
cmake
+2 -2
View File
@@ -6,11 +6,11 @@
}:
let
pname = "chatbox";
version = "1.18.4";
version = "1.19.0";
src = fetchurl {
url = "https://download.chatboxai.app/releases/Chatbox-${version}-x86_64.AppImage";
hash = "sha256-6BUvwL87ndtI2lFMcNKxpdOpn+EyUhAK9jc+a/zpjpU=";
hash = "sha256-ETquOwdYRWTbXyQChtXo1vz/xqvog3fYgOmSnWenJxE=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "clipcat";
version = "0.24.0";
version = "0.24.1";
src = fetchFromGitHub {
owner = "xrelkd";
repo = "clipcat";
tag = "v${finalAttrs.version}";
hash = "sha256-EEM2gwr5j3umpZqHnxCO81EZbLQ3nYGcxb6DBJ7AbC8=";
hash = "sha256-MbbrkXbXMxWh4fwWg5cIA9Hdibo1qZU7fv5h2oe8KOs=";
};
cargoHash = "sha256-6fS/LnfNi3rH4H61GCdLp6pnfGPIXJiY2dAwKdK5ofk=";
cargoHash = "sha256-cJK3ZBlVvd+coDsVwux2qUD0JQadjtJ7ToNcrpYHXZ4=";
nativeBuildInputs = [
protobuf
+4
View File
@@ -46,6 +46,10 @@ stdenv.mkDerivation (finalAttrs: {
checkInputs = [ gtest ];
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
dsymutil unittest
'';
doCheck = true;
passthru = {
+2 -2
View File
@@ -17,13 +17,13 @@ let
in
maven.buildMavenPackage rec {
pname = "cryptomator";
version = "1.18.0";
version = "1.18.1";
src = fetchFromGitHub {
owner = "cryptomator";
repo = "cryptomator";
tag = version;
hash = "sha256-UWe9iBgb6eBasHnqfBtOFnZlLF1XCIF0y+ebphYQkQw=";
hash = "sha256-C2pvToxIK8gPzmqcRKYCu4B2FBrOGcH2Uzpjdt3nZZs=";
};
mvnJdk = jdk;
+3 -3
View File
@@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "databricks-cli";
version = "0.289.1";
version = "0.290.1";
src = fetchFromGitHub {
owner = "databricks";
repo = "cli";
rev = "v${finalAttrs.version}";
hash = "sha256-K3Zap7agH5tLkk5CVgU8s33giPuZwmQTdvh09TUa20U=";
hash = "sha256-KSwgEju6RRFV0B0dbnutZ/xgnBeSnPW6pyIQwBYg8Ew=";
};
# Otherwise these tests fail asserting that the version is 0.0.0-dev
@@ -25,7 +25,7 @@ buildGoModule (finalAttrs: {
--replace-fail "cli/0.0.0-dev" "cli/${finalAttrs.version}"
'';
vendorHash = "sha256-XNGoUDmoso6hx+pj6oLBa/Fsyzk5wRyFm/VtKZw5Pmk=";
vendorHash = "sha256-8PJ2M5L8DkL4ydtUQbw0wKvt+5rVYbOAAGvURkSMm/o=";
excludedPackages = [
"bundle/internal"
-26
View File
@@ -1,26 +0,0 @@
From 6f52bee7f71e253b0504164fc268750116945108 Mon Sep 17 00:00:00 2001
From: griffi-gh <prasol258@gmail.com>
Date: Mon, 4 Nov 2024 00:43:49 +0100
Subject: [PATCH] fix daemon autostart
---
src/daemon_utils.rs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/daemon_utils.rs b/src/daemon_utils.rs
index cd8f49b..f56e100 100644
--- a/src/daemon_utils.rs
+++ b/src/daemon_utils.rs
@@ -13,7 +13,11 @@ use nix::{
pub fn start() -> bool {
let curr_exe = env::current_exe().expect("Couldn't get current executable!");
let mut cmd = Command::new("nohup");
- let cmd = cmd.arg(curr_exe).arg("-d").arg("--no-fork").arg("-q");
+ let cmd = cmd
+ .arg(curr_exe)
+ .arg("--daemon").arg("true")
+ .arg("--no-fork").arg("true")
+ .arg("--quiet").arg("true");
cmd.stdout(Stdio::null());
cmd.stderr(Stdio::null());
let status = cmd.spawn();
+6 -11
View File
@@ -9,23 +9,18 @@
dbus,
libpulseaudio,
}:
rustPlatform.buildRustPackage {
rustPlatform.buildRustPackage (finalAttrs: {
pname = "earbuds";
version = "0.1.9-unstable-2024-06-28";
version = "0.2.0";
src = fetchFromGitHub {
owner = "JojiiOfficial";
repo = "LiveBudsCli";
rev = "df46706e44fa9e7de355b11eab4cc850efe968a3";
hash = "sha256-IEor7aZnwCA6Rg2gXIYSQ65hV/jJOKehujOSZnVzVis=";
tag = "v${finalAttrs.version}";
hash = "sha256-x0PXOWj77VgJDPY4j+1PRg0M7+vIYSk+6yfj8s0UKx8=";
};
# fix daemon autostart not working
patches = [
./fix-daemon.patch
];
cargoHash = "sha256-Y1pMmWxfXGcEFPj05/BpXQvd199O5l6hJmePNxMQc/Y=";
cargoHash = "sha256-N0/VtqulNRsuoiKcw1LMWTpYNLfX9IiU+hSDlm3ZP1Y=";
nativeBuildInputs = [
installShellFiles
@@ -57,4 +52,4 @@ rustPlatform.buildRustPackage {
mainProgram = "earbuds";
platforms = lib.platforms.linux;
};
}
})
+5 -1
View File
@@ -10,6 +10,7 @@
SDL_mixer,
SDL_image,
SDL_ttf,
imagemagick,
}:
stdenv.mkDerivation rec {
@@ -28,7 +29,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
pkg-config
copyDesktopItems
imagemagick
];
buildInputs = [
SDL
lua5_1
@@ -61,7 +64,8 @@ stdenv.mkDerivation rec {
postInstall = ''
mkdir -p $out/share/games/fillets-ng
tar -xf ${data} -C $out/share/games/fillets-ng --strip-components=1
install -Dm644 ${./icon.xpm} $out/share/pixmaps/fish-fillets-ng.xpm
mkdir -p $out/share/icons/hicolor/32x32/apps
magick ${./icon.xpm} $out/share/icons/hicolor/32x32/apps/fish-fillets-ng.png
'';
meta = {
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "newt";
version = "1.9.0";
version = "1.10.1";
src = fetchFromGitHub {
owner = "fosrl";
repo = "newt";
tag = finalAttrs.version;
hash = "sha256-Ya+OVSChGmiZ8JTAfl/im8fOhLCC+r6JKSlH+CnSwP8=";
hash = "sha256-JU4aBwwdlxlBGHKmceyjcAVUZoT9voaWPFAkha4aXSE=";
};
vendorHash = "sha256-Sib6AUCpMgxlMpTc2Esvs+UU0yduVOxWUgT44FHAI+k=";
+5 -5
View File
@@ -16,24 +16,24 @@
let
pname = "freelens-bin";
version = "1.8.0";
version = "1.8.1";
sources = {
x86_64-linux = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-amd64.AppImage";
hash = "sha256-sgbsGUp/TKQZhPZgMpbIJy7n+BW0UGkp55jFHLO5T8s=";
hash = "sha256-Goe/eAmefL+4itHrGmQjBGVWalk559kGg/OgA1yKKdk=";
};
aarch64-linux = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-arm64.AppImage";
hash = "sha256-8yAL+JxxjZ3XZOy+HCH5HfkZYr+84OoekTVcH3s6AsU=";
hash = "sha256-Mcvjiv7tQU56uaVvtoK5mn6jpQsRnP1F2UeG8OHhywQ=";
};
x86_64-darwin = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-amd64.dmg";
hash = "sha256-1htSmQ+p7LMziwroG4aVY7HV1ZoLZ1YBDw2EHI4bh+k=";
hash = "sha256-4b4xzr4shEBYhqQ+NZaew4ZSq3J5den5KPJ7X8UpTJ8=";
};
aarch64-darwin = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-arm64.dmg";
hash = "sha256-JFhzIhqdvcY3ssbKBoKyEcnX65C9OyVfTnGuuZJDAuw=";
hash = "sha256-jCR/ypqGTp8swi1b9hgm4iWjGoKA2pW0mqxF8QJzYVk=";
};
};
+3 -3
View File
@@ -23,13 +23,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "goldendict-ng";
version = "25.10.2";
version = "26.3.0";
src = fetchFromGitHub {
owner = "xiaoyifang";
repo = "goldendict-ng";
tag = "v${finalAttrs.version}-Release.673d1b90";
hash = "sha256-afzMUko09vGmQvu6sob8jYfVUvQECoUdAmIbLIoh1Dw=";
tag = "v${finalAttrs.version}-Release.fce2b872";
hash = "sha256-DLo3dVoeib/lIp6jKeMyeREN6pHufa3HhyNIxtu3Q94=";
};
strictDeps = true;
+1
View File
@@ -170,6 +170,7 @@ buildGoModule (finalAttrs: {
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
"riscv64-linux"
];
mainProgram = "grafana-server";
};
+2 -2
View File
@@ -11,13 +11,13 @@
}:
buildNpmPackage (finalAttrs: {
pname = "gridtracker2";
version = "2.260101.3";
version = "2.260111.0";
src = fetchFromGitLab {
owner = "gridtracker.org";
repo = "gridtracker2";
tag = "v${finalAttrs.version}";
hash = "sha256-Gtz5/caaDAIwG/vqtOO9w5ouysAIzQgD7GcTvXri8T8=";
hash = "sha256-LcaIOzCMtJxeMs7kEqTYmgMlrV62+HOXmG5wk67NUoE=";
};
npmDepsHash = "sha256-8bhOfLLsNSK+/mXku5ukLr65bfk+RwC3SyOGRHndqVQ=";
@@ -0,0 +1,14 @@
diff --git a/extras/CMakeLists.txt b/extras/CMakeLists.txt
index 21f61d0d18..db359dbbec 100644
--- a/extras/CMakeLists.txt
+++ b/extras/CMakeLists.txt
@@ -31,9 +31,4 @@
# ==============================================================================
set(CMAKE_FOLDER extras)
-add_subdirectory(AudioPerformanceTest)
-add_subdirectory(AudioPluginHost)
-add_subdirectory(BinaryBuilder)
-add_subdirectory(NetworkGraphicsDemo)
add_subdirectory(Projucer)
-add_subdirectory(UnitTestRunner)
+31 -2
View File
@@ -4,9 +4,9 @@
fetchFromGitHub,
# Native build inputs
autoPatchelfHook,
cmake,
pkg-config,
makeWrapper,
# Dependencies
alsa-lib,
@@ -15,6 +15,7 @@
libglvnd,
webkitgtk_4_1,
pcre2,
ladspa-sdk,
libsysprof-capture,
util-linuxMinimal,
libselinux,
@@ -28,8 +29,17 @@
libxtst,
sqlite,
fontconfig,
libGL,
libx11,
libxcursor,
libxext,
libxinerama,
libxrandr,
versionCheckHook,
nix-update-script,
callPackage,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -47,12 +57,13 @@ stdenv.mkDerivation (finalAttrs: {
# Adapted from https://gitlab.archlinux.org/archlinux/packaging/packages/juce/-/raw/4e6d34034b102af3cd762a983cff5dfc09e44e91/juce-6.1.2-cmake_install.patch
# for Juce 8.0.4.
./juce-8.0.4-cmake_install.patch
./cmake_extras_projucer_only.patch
];
nativeBuildInputs = [
autoPatchelfHook
cmake
pkg-config
makeWrapper
];
buildInputs = [
@@ -60,6 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
curl # libcurl.so
(lib.getLib stdenv.cc.cc) # libstdc++.so libgcc_s.so
pcre2 # libpcre2.pc
ladspa-sdk
libsysprof-capture
libthai
libdatrie
@@ -81,6 +93,22 @@ stdenv.mkDerivation (finalAttrs: {
propagatedBuildInputs = [ fontconfig ];
runtimeDependencies = [
libGL
libx11
libxcursor
libxext
libxinerama
libxrandr
];
cmakeFlags = [ "-DJUCE_BUILD_EXTRAS=ON" ];
postInstall = ''
cp extras/Projucer/Projucer_artefacts/Release/Projucer $out/bin/Projucer
ln -s $out/bin/Projucer $out/bin/projucer
'';
nativeInstallCheckInputs = [
versionCheckHook
];
@@ -90,6 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
updateScript = nix-update-script { };
projucerHook = callPackage ./projucerHook.nix { };
};
meta = {
+49
View File
@@ -0,0 +1,49 @@
# shellcheck disable=SC2034
set -e
projucerConfigurePhase() {
runHook preConfigure
Projucer --set-global-search-path linux defaultJuceModulePath @src@/modules
if [ -n "${jucerUserModules-}" ]; then
Projucer --set-global-search-path linux defaultUserModulePath "$jucerUserModules"
fi
Projucer --resave "${jucerFile:-$pname.jucer}"
runHook postConfigure
}
projucerInstallPhase() {
runHook preInstall
find build -maxdepth 1 -executable -type f -not -name "juce_*" | while IFS= read -r -d '' f; do
# shellcheck disable=SC2154
mkdir -p "$out"/bin
cp "$f" "$out"/bin
done
runHook postInstall
}
projucerPreBuild() {
# setting the makefile attribute screws up paths
cd Builds/LinuxMakefile
}
if [ -z "${dontUseProjucerConfigure-}" ] && [ -z "${configurePhase-}" ]; then
configurePhase=projucerConfigurePhase
preBuildHooks+=(projucerPreBuild)
makeFlags+=(
all
"Config=Release"
"JUCE_VST3DESTDIR=$out/lib/vst3"
"JUCE_VSTDESTDIR=$out/lib/vst"
"JUCE_LV2DESTDIR=$out/lib/lv2"
)
enableParallelBuilding=true
fi
if [ -z "${dontUseProjucerInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=projucerInstallPhase
fi
+10
View File
@@ -0,0 +1,10 @@
{
makeSetupHook,
lib,
callPackage,
}:
makeSetupHook {
name = "projucer-hook";
propagatedBuildInputs = [ (callPackage ./package.nix { }) ];
meta.platforms = lib.platforms.linux;
} ./projucer-hook.sh
+7 -8
View File
@@ -6,24 +6,23 @@
perlPackages,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "logcheck";
version = "1.4.7";
_name = "logcheck_${version}";
src = fetchurl {
url = "mirror://debian/pool/main/l/logcheck/${_name}.tar.xz";
sha256 = "sha256-zBYMvKwo85OI6LluRixOYtAFRTtpV/Hw6qjAk/+c898=";
url = "mirror://debian/pool/main/l/logcheck/logcheck_${finalAttrs.version}.tar.xz";
hash = "sha256-zBYMvKwo85OI6LluRixOYtAFRTtpV/Hw6qjAk/+c898=";
};
prePatch = ''
# do not set sticky bit in nix store.
substituteInPlace Makefile --replace 2750 0750
substituteInPlace Makefile --replace-fail 2750 0750
'';
preConfigure = ''
substituteInPlace src/logtail --replace "/usr/bin/perl" "${perlPackages.perl}/bin/perl"
substituteInPlace src/logtail2 --replace "/usr/bin/perl" "${perlPackages.perl}/bin/perl"
substituteInPlace src/logtail --replace-fail "/usr/bin/perl" "${perlPackages.perl}/bin/perl"
substituteInPlace src/logtail2 --replace-fail "/usr/bin/perl" "${perlPackages.perl}/bin/perl"
sed -i -e 's|! -f /usr/bin/lockfile|! -f ${lockfile-progs}/bin/lockfile|' \
-e 's|^\([ \t]*\)lockfile-|\1${lockfile-progs}/bin/lockfile-|' \
@@ -50,4 +49,4 @@ stdenv.mkDerivation rec {
homepage = "https://salsa.debian.org/debian/logcheck";
license = lib.licenses.gpl2Plus;
};
}
})
+1
View File
@@ -110,6 +110,7 @@ let
encode
seekTo
; # added 2024-11-28
mpv-cheatsheet = throw "'mpv-cheatsheet' is no longer maintained, use 'mpv-cheatsheet-ng' instead"; # added 2026-02-13
youtube-quality = throw "'youtube-quality' is no longer maintained, use 'quality-menu' instead"; # added 2023-07-14
};
in
@@ -0,0 +1,27 @@
{
lib,
buildLua,
fetchFromGitHub,
gitUpdater,
}:
buildLua (finalAttrs: {
pname = "mpv-cheatsheet-ng";
version = "0.1.0";
scriptPath = "cheatsheet.lua";
src = fetchFromGitHub {
owner = "ambroisie";
repo = "mpv-cheatsheet-ng";
tag = "v${finalAttrs.version}";
hash = "sha256-5CVEf5SPNiYaKKp0tn4zhwUvP5R75HU5/B+l8KCXJNg=";
};
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "mpv script for looking up keyboard shortcuts";
homepage = "https://github.com/ambroisie/mpv-cheatsheet-ng";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ambroisie ];
};
})
@@ -1,46 +0,0 @@
{
lib,
fetchFromGitHub,
gitUpdater,
nodePackages,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mpv-cheatsheet";
version = "0.30.0.2";
src = fetchFromGitHub {
owner = "ento";
repo = "mpv-cheatsheet";
rev = "v${finalAttrs.version}";
hash = "sha256-MWK0CYto3zgn3fivmL43tvgZn6XrjPxKLp0lgTFdplM=";
};
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
nativeBuildInputs = [ nodePackages.browserify ];
buildPhase = ''
runHook preBuild
make dist/${finalAttrs.passthru.scriptName}
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D dist/${finalAttrs.passthru.scriptName} $out/share/mpv/scripts/${finalAttrs.passthru.scriptName}
runHook postInstall
'';
passthru.scriptName = "cheatsheet.js";
meta = {
description = "mpv script for looking up keyboard shortcuts";
homepage = "https://github.com/ento/mpv-cheatsheet";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ambroisie ];
};
})
+1 -10
View File
@@ -41,15 +41,6 @@
withWayland ? stdenv.hostPlatform.isLinux,
}:
let
# TODO: remove when this is resolved, likely at the next cpptrace bump
cpptrace' = cpptrace.overrideAttrs {
# tests are failing on darwin
# https://hydra.nixos.org/build/310535948
doCheck = !stdenv.hostPlatform.isDarwin;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "odamex";
version = "12.1.0";
@@ -77,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
SDL2
SDL2_mixer
SDL2_net
cpptrace'
cpptrace
curl
expat
fltk
+3 -3
View File
@@ -8,13 +8,13 @@
buildNpmPackage rec {
pname = "opencommit";
version = "3.2.12";
version = "3.2.14";
src = fetchFromGitHub {
owner = "di-sukharev";
repo = "opencommit";
rev = "v${version}";
hash = "sha256-jtumHDDsoc/jJZf+V0bzTTS6dmgwKcIDNkDidXa8eYY=";
hash = "sha256-FA4ER8UDxDy/KcGgUu4xqjQnV17ouKt/QWUcrwjtb/s=";
postFetch = ''
cd $out
# Fix lockfile issues with bundled dependencies
@@ -22,7 +22,7 @@ buildNpmPackage rec {
'';
};
npmDepsHash = "sha256-oqmRUzAptEurwEFux6kvxUC2TexWaXftSILjWDwakYU=";
npmDepsHash = "sha256-gxjJoodnKE08bhOnA5r6A0UQg8ElB693Vm2BVrA2Z0k=";
passthru.updateScript = nix-update-script { };
@@ -57,13 +57,13 @@ let
in
clangStdenv.mkDerivation rec {
pname = "openscad-unstable";
unstable_date = "2026-02-18";
unstable_date = "2026-02-25";
version = "2021.01-unstable-${unstable_date}";
src = fetchFromGitHub {
owner = "openscad";
repo = "openscad";
rev = "231f4f8d5e3a0697825455cccbd2edb2fb9491cd";
hash = "sha256-YAKXU3z4ZBviGnt0LFgrS6yeEMm3REdkhyfJ4bZ4Vo8=";
rev = "ae3a780de777bcb96d41631818551650bc79650d";
hash = "sha256-jCiCB3tbM0dyIC2gvQarzwjfYI9mnREkMI+0R3EaGPM=";
fetchSubmodules = true; # Only really need sanitizers-cmake and MCAD and manifold
};
+80
View File
@@ -0,0 +1,80 @@
{
lib,
buildDartApplication,
fetchFromGitHub,
callPackage,
makeWrapper,
flutter,
dart,
}:
buildDartApplication rec {
pname = "pana";
version = "0.23.10";
src = fetchFromGitHub {
owner = "dart-lang";
repo = "pana";
tag = version;
hash = "sha256-opkHUmfFbFHD1Gfx055YGNnxMoFFsTZvd/8VRN90HGA=";
};
dartEntryPoints = {
"bin/pana" = "bin/pana.dart";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
# 1. Create a directory in the store to hold the license text files
mkdir -p $out/share/pana/spdx-licenses
# 2. Copy the .txt files from the source tree into the store
# These are the files pana needs to perform license detection
cp lib/src/third_party/spdx/licenses/*.txt $out/share/pana/spdx-licenses/
# 3. Wrap the binary to always know where its data is and
# where the dart-sdk and flutter-sdk are
wrapProgram $out/bin/pana \
--set FLUTTER_ROOT "${flutter}" \
--prefix PATH : "${
lib.makeBinPath [
dart
flutter
]
}" \
--add-flags "--dart-sdk ${dart} --flutter-sdk ${flutter} --license-data $out/share/pana/spdx-licenses"
'';
passthru = {
updateScript = lib.getExe (callPackage ./update.nix { });
tests = callPackage ./tests.nix { };
};
meta = {
mainProgram = "pana";
homepage = "https://pub.dev/packages/pana";
description = "Package ANAlysis for Dart";
longDescription = ''
Package ANAlyzer - produce a report summarizing the health and quality of a Dart package.
'';
changelog = "https://pub.dev/packages/pana/changelog#${lib.replaceStrings [ "." ] [ "" ] version}";
license = lib.licenses.bsd3;
sourceProvenance = with lib.sourceTypes; [ fromSource ];
identifiers.cpeParts =
let
versionSplit = lib.split "\\+" version;
versionPart = lib.elemAt versionSplit 0;
updatePart =
if lib.count (x: lib.isList x) versionSplit > 0 then lib.elemAt versionSplit 2 else "*";
in
{
vendor = "dart-lang";
product = "pana";
version = versionPart;
update = updatePart;
};
maintainers = with lib.maintainers; [ KristijanZic ];
};
}
+787
View File
@@ -0,0 +1,787 @@
{
"packages": {
"_fe_analyzer_shared": {
"dependency": "transitive",
"description": {
"name": "_fe_analyzer_shared",
"sha256": "3b19a47f6ea7c2632760777c78174f47f6aec1e05f0cd611380d4593b8af1dbc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "96.0.0"
},
"analyzer": {
"dependency": "direct main",
"description": {
"name": "analyzer",
"sha256": "0c516bc4ad36a1a75759e54d5047cb9d15cded4459df01aa35a0b5ec7db2c2a0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.2.0"
},
"args": {
"dependency": "direct main",
"description": {
"name": "args",
"sha256": "d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.7.0"
},
"async": {
"dependency": "direct main",
"description": {
"name": "async",
"sha256": "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.13.0"
},
"boolean_selector": {
"dependency": "transitive",
"description": {
"name": "boolean_selector",
"sha256": "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.2"
},
"build": {
"dependency": "direct dev",
"description": {
"name": "build",
"sha256": "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.4"
},
"build_config": {
"dependency": "direct dev",
"description": {
"name": "build_config",
"sha256": "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.0"
},
"build_daemon": {
"dependency": "transitive",
"description": {
"name": "build_daemon",
"sha256": "bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.1"
},
"build_runner": {
"dependency": "direct dev",
"description": {
"name": "build_runner",
"sha256": "39ad4ca8a2876779737c60e4228b4bcd35d4352ef7e14e47514093edc012c734",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.11.1"
},
"build_verify": {
"dependency": "direct dev",
"description": {
"name": "build_verify",
"sha256": "3b17b59b6d66f9d3e6014996f089902d56cec5760e051c353cc387b9da577652",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.1"
},
"build_version": {
"dependency": "direct dev",
"description": {
"name": "build_version",
"sha256": "1063066ec338c18f0629d01077c9315f92fae3e7e0e06d0dc10e8aa3145d44f5",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.3"
},
"built_collection": {
"dependency": "transitive",
"description": {
"name": "built_collection",
"sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.1.1"
},
"built_value": {
"dependency": "transitive",
"description": {
"name": "built_value",
"sha256": "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.12.4"
},
"checked_yaml": {
"dependency": "transitive",
"description": {
"name": "checked_yaml",
"sha256": "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.4"
},
"cli_config": {
"dependency": "transitive",
"description": {
"name": "cli_config",
"sha256": "ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"cli_util": {
"dependency": "direct main",
"description": {
"name": "cli_util",
"sha256": "ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.2"
},
"code_builder": {
"dependency": "transitive",
"description": {
"name": "code_builder",
"sha256": "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.11.1"
},
"collection": {
"dependency": "direct main",
"description": {
"name": "collection",
"sha256": "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.19.1"
},
"convert": {
"dependency": "transitive",
"description": {
"name": "convert",
"sha256": "b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.2"
},
"coverage": {
"dependency": "transitive",
"description": {
"name": "coverage",
"sha256": "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.15.0"
},
"crypto": {
"dependency": "direct main",
"description": {
"name": "crypto",
"sha256": "c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.7"
},
"csslib": {
"dependency": "transitive",
"description": {
"name": "csslib",
"sha256": "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.2"
},
"dart_flutter_team_lints": {
"dependency": "direct dev",
"description": {
"name": "dart_flutter_team_lints",
"sha256": "ce0f23e2cf95cbd21766d17a7cf88584758b67fd77338d61f2ce77e3cf6d763c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.5.2"
},
"dart_style": {
"dependency": "transitive",
"description": {
"name": "dart_style",
"sha256": "6f6b30cba0301e7b38f32bdc9a6bdae6f5921a55f0a1eb9450e1e6515645dbb2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.6"
},
"file": {
"dependency": "transitive",
"description": {
"name": "file",
"sha256": "a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.0.1"
},
"fixnum": {
"dependency": "transitive",
"description": {
"name": "fixnum",
"sha256": "b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.1"
},
"frontend_server_client": {
"dependency": "transitive",
"description": {
"name": "frontend_server_client",
"sha256": "f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.0"
},
"glob": {
"dependency": "transitive",
"description": {
"name": "glob",
"sha256": "c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.3"
},
"graphs": {
"dependency": "transitive",
"description": {
"name": "graphs",
"sha256": "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
},
"html": {
"dependency": "direct main",
"description": {
"name": "html",
"sha256": "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.15.6"
},
"http": {
"dependency": "direct main",
"description": {
"name": "http",
"sha256": "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.6.0"
},
"http_multi_server": {
"dependency": "transitive",
"description": {
"name": "http_multi_server",
"sha256": "aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.2"
},
"http_parser": {
"dependency": "transitive",
"description": {
"name": "http_parser",
"sha256": "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.2"
},
"io": {
"dependency": "direct main",
"description": {
"name": "io",
"sha256": "dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.5"
},
"json_annotation": {
"dependency": "direct main",
"description": {
"name": "json_annotation",
"sha256": "cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.11.0"
},
"json_serializable": {
"dependency": "direct dev",
"description": {
"name": "json_serializable",
"sha256": "44729f5c45748e6748f6b9a57ab8f7e4336edc8ae41fc295070e3814e616a6c0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.13.0"
},
"lints": {
"dependency": "direct main",
"description": {
"name": "lints",
"sha256": "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.1.0"
},
"logging": {
"dependency": "direct main",
"description": {
"name": "logging",
"sha256": "c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
},
"markdown": {
"dependency": "direct main",
"description": {
"name": "markdown",
"sha256": "935e23e1ff3bc02d390bad4d4be001208ee92cc217cb5b5a6c19bc14aaa318c1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.3.0"
},
"matcher": {
"dependency": "transitive",
"description": {
"name": "matcher",
"sha256": "dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.12.19"
},
"meta": {
"dependency": "direct main",
"description": {
"name": "meta",
"sha256": "9f29b9bcc8ee287b1a31e0d01be0eae99a930dbffdaecf04b3f3d82a969f296f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.18.1"
},
"mime": {
"dependency": "transitive",
"description": {
"name": "mime",
"sha256": "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.0"
},
"node_preamble": {
"dependency": "transitive",
"description": {
"name": "node_preamble",
"sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.2"
},
"package_config": {
"dependency": "transitive",
"description": {
"name": "package_config",
"sha256": "f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.0"
},
"path": {
"dependency": "direct main",
"description": {
"name": "path",
"sha256": "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.9.1"
},
"pool": {
"dependency": "transitive",
"description": {
"name": "pool",
"sha256": "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.2"
},
"pub_semver": {
"dependency": "direct main",
"description": {
"name": "pub_semver",
"sha256": "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.0"
},
"pubspec_parse": {
"dependency": "direct main",
"description": {
"name": "pubspec_parse",
"sha256": "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.0"
},
"retry": {
"dependency": "direct main",
"description": {
"name": "retry",
"sha256": "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.2"
},
"safe_url_check": {
"dependency": "direct main",
"description": {
"name": "safe_url_check",
"sha256": "49a3e060a7869cbafc8f4845ca1ecbbaaa53179980a32f4fdfeab1607e90f41d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.2"
},
"shelf": {
"dependency": "direct dev",
"description": {
"name": "shelf",
"sha256": "e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.2"
},
"shelf_packages_handler": {
"dependency": "transitive",
"description": {
"name": "shelf_packages_handler",
"sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.2"
},
"shelf_static": {
"dependency": "transitive",
"description": {
"name": "shelf_static",
"sha256": "c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.3"
},
"shelf_web_socket": {
"dependency": "transitive",
"description": {
"name": "shelf_web_socket",
"sha256": "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.0"
},
"source_gen": {
"dependency": "direct dev",
"description": {
"name": "source_gen",
"sha256": "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.2.0"
},
"source_helper": {
"dependency": "transitive",
"description": {
"name": "source_helper",
"sha256": "4a85e90b50694e652075cbe4575665539d253e6ec10e46e76b45368ab5e3caae",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.10"
},
"source_map_stack_trace": {
"dependency": "transitive",
"description": {
"name": "source_map_stack_trace",
"sha256": "c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.2"
},
"source_maps": {
"dependency": "transitive",
"description": {
"name": "source_maps",
"sha256": "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.10.13"
},
"source_span": {
"dependency": "direct main",
"description": {
"name": "source_span",
"sha256": "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.10.2"
},
"stack_trace": {
"dependency": "transitive",
"description": {
"name": "stack_trace",
"sha256": "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.12.1"
},
"stream_channel": {
"dependency": "transitive",
"description": {
"name": "stream_channel",
"sha256": "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.4"
},
"stream_transform": {
"dependency": "transitive",
"description": {
"name": "stream_transform",
"sha256": "ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
},
"string_scanner": {
"dependency": "direct main",
"description": {
"name": "string_scanner",
"sha256": "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.1"
},
"tar": {
"dependency": "direct dev",
"description": {
"name": "tar",
"sha256": "b338bacfd24dae6cf527acb4242003a71fc88ce183a9002376fabbc4ebda30c9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.2"
},
"term_glyph": {
"dependency": "transitive",
"description": {
"name": "term_glyph",
"sha256": "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.2"
},
"test": {
"dependency": "direct main",
"description": {
"name": "test",
"sha256": "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.30.0"
},
"test_api": {
"dependency": "transitive",
"description": {
"name": "test_api",
"sha256": "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.10"
},
"test_core": {
"dependency": "transitive",
"description": {
"name": "test_core",
"sha256": "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.6.16"
},
"test_descriptor": {
"dependency": "direct dev",
"description": {
"name": "test_descriptor",
"sha256": "9ce468c97ae396e8440d26bb43763f84e2a2a5331813ee5a397cb4da481aaf9a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.2"
},
"test_process": {
"dependency": "direct dev",
"description": {
"name": "test_process",
"sha256": "ea79c090deffc87d8276a5d28bb498d080a9873be6b1074d9dcfb82eb87e138e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
},
"typed_data": {
"dependency": "transitive",
"description": {
"name": "typed_data",
"sha256": "f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.0"
},
"vm_service": {
"dependency": "transitive",
"description": {
"name": "vm_service",
"sha256": "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "15.0.2"
},
"watcher": {
"dependency": "transitive",
"description": {
"name": "watcher",
"sha256": "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
},
"web": {
"dependency": "transitive",
"description": {
"name": "web",
"sha256": "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.1"
},
"web_socket": {
"dependency": "transitive",
"description": {
"name": "web_socket",
"sha256": "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.1"
},
"web_socket_channel": {
"dependency": "transitive",
"description": {
"name": "web_socket_channel",
"sha256": "d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.3"
},
"webkit_inspection_protocol": {
"dependency": "transitive",
"description": {
"name": "webkit_inspection_protocol",
"sha256": "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
},
"yaml": {
"dependency": "direct main",
"description": {
"name": "yaml",
"sha256": "b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.3"
}
},
"sdks": {
"dart": ">=3.10.0 <4.0.0"
}
}
+148
View File
@@ -0,0 +1,148 @@
{
testers,
pana,
git,
jq,
}:
let
testPkgName = "dummy_pkg";
testLicense = ''
MIT License
Copyright (c) 2026 The Nixpkgs Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'';
in
{
usage = testers.runCommand {
name = "pana-usage-test";
buildInputs = [ pana ];
script = ''
export HOME=$TMPDIR
pana > output.txt 2>&1 || true
if grep -q "Usage: pana" output.txt; then
touch $out
else
echo "Usage string not found in output."
exit 1
fi
'';
};
# Comprehensive behavioral test
json-output = testers.runCommand {
name = "pana-json-test";
buildInputs = [
pana
git
jq
];
script = ''
# Nix sandbox environment setup
export HOME=$TMPDIR
export PUB_HOSTED_URL="http://localhost:0"
init_package() {
# Initialize a valid Dart package structure
mkdir -p my_package/lib my_package/example
cd my_package
git init -b main
git config user.email "test@example.com"
git config user.name "Nix-Tester"
cat > pubspec.yaml <<EOF
name: ${testPkgName}
version: 1.0.0
description: >-
A comprehensive test package for Nixpkgs validation that meets
all the professional documentation requirements for pana scoring.
repository: https://github.com/nixos/nixpkgs
environment:
sdk: '>=3.0.0 <4.0.0'
EOF
cat > lib/${testPkgName}.dart <<EOF
/// A simple function to say hello.
void hello() => print('hi');
EOF
cat > example/main.dart <<EOF
import 'package:${testPkgName}/${testPkgName}.dart';
void main() => hello();
EOF
echo "# Dummy Pkg" > README.md
echo "## 1.0.0" > CHANGELOG.md
cat > LICENSE <<EOF
${testLicense}
EOF
git add . && git commit -m "feat: initial package"
}
determine_marks() {
PKG_NAME=$(jq -r '.packageName' report.json)
# Extract the first license identifier found
LICENSE_ID=$(jq -r '.result.licenses[0].spdxIdentifier' report.json)
# Extract the status of the documentation section
DOC_STATUS=$(jq -r '.report.sections[] | select(.id == "documentation") | .status' report.json)
PASS=""
FAIL=""
# Determine marks
[[ "$PKG_NAME" == "${testPkgName}" ]] && MARK_NAME="$PASS" || MARK_NAME="$FAIL"
[[ "$LICENSE_ID" == "MIT" ]] && MARK_LIC="$PASS" || MARK_LIC="$FAIL"
[[ "$DOC_STATUS" == "passed" ]] && MARK_DOC="$PASS" || MARK_DOC="$FAIL"
echo "---------------------------------------"
printf "%-10s %-20s %s\n" "Package:" "$PKG_NAME" "$MARK_NAME"
printf "%-10s %-20s %s\n" "License:" "$LICENSE_ID" "$MARK_LIC"
printf "%-10s %-20s %s\n" "Docs:" "$DOC_STATUS" "$MARK_DOC"
echo "---------------------------------------"
}
check_marks() {
if [[ "$MARK_NAME" == "$PASS" && "$MARK_LIC" == "$PASS" && "$MARK_DOC" == "$PASS" ]]; then
echo "Integration test passed successfully! 🚀"
touch $out
else
echo "Integration test failed metadata verification! "
# Print specifically why it failed to the log
jq -r '.report.sections[] | select(.status == "failed") | "Section [\(.id)]: \(.summary)"' report.json
exit 1
fi
}
main() {
init_package
echo "Running pana analysis...🔍"
pana --json . > report.json
determine_marks
check_marks
}
main
'';
};
}
+61
View File
@@ -0,0 +1,61 @@
{
writeShellApplication,
common-updater-scripts,
nix-update,
yq-go,
dart,
nix,
}:
let
name = "update-pana";
packageName = "pana";
packageDir = toString ./.;
in
writeShellApplication {
inherit name;
runtimeInputs = [
common-updater-scripts
nix-update
yq-go
dart
nix
];
text = ''
pname="''${UPDATE_NIX_PNAME:-${packageName}}"
main() {
old_version="''${UPDATE_NIX_OLD_VERSION:-$(get_version)}"
nix-update "$pname" --version stable
new_version=$(get_version)
if [[ "$new_version" == "$old_version" ]]; then
exit 0
fi
generate_lockfile
}
get_version() {
nix-instantiate --raw --eval --strict -A "$pname.version"
}
generate_lockfile() {
tmp_dir=$(mktemp -d)
trap 'rm -rf "$tmp_dir"' EXIT
src=$(nix-build --no-link . -A "$pname.src")
cp -r "$src/." "$tmp_dir/"
chmod -R +w "$tmp_dir"
cd "$tmp_dir"
# Generate lockfile because it's not included in the source
if ! test -f pubspec.lock; then
dart pub get
fi
# Convert to JSON
yq -o=json . pubspec.lock > "${packageDir}/pubspec.lock.json"
}
main
'';
}
+3 -3
View File
@@ -19,13 +19,13 @@
rustPlatform.buildRustPackage {
pname = "par-lang";
version = "0-unstable-2026-02-20";
version = "0-unstable-2026-02-27";
src = fetchFromGitHub {
owner = "faiface";
repo = "par-lang";
rev = "a43b59ab58b503f8e3171d9bdeba02ad0d43d0b4";
hash = "sha256-GTYRPhn6y7yaBMrxYAywnSOOggxI3+e7WlNWcMbuvNk=";
rev = "7c93277a1595bfb6bc6845377a1c6b53b85eeee1";
hash = "sha256-zDivcXpCJaXL/7LuiSUOhi8fMXqdhp5gBMjI6nTgik8=";
};
cargoHash = "sha256-Z0aTVloZY3UQWkL3+cMqxfzACLwD7OayjBPZbQ0bk1c=";
+4 -4
View File
@@ -10,13 +10,13 @@
stdenv,
}:
let
version = "0.25.0";
version = "0.26.0";
parca-src = fetchFromGitHub {
owner = "parca-dev";
repo = "parca";
tag = "v${version}";
hash = "sha256-LDdydMiAp86C2gzUHgVy7UMc2xajyvrSdD4rIpNK4qI=";
hash = "sha256-/btYLSTP8AAZX8RHJO0hwbK4aN4gX+LU838oDSf2eRo=";
};
ui = stdenv.mkDerivation (finalAttrs: {
@@ -28,7 +28,7 @@ let
inherit (finalAttrs) pname src version;
pnpm = pnpm_9;
fetcherVersion = 1;
hash = "sha256-3egNSL62TyuRg6JDMMptjT0vLlwYdDLnJC2rYzaPE1w=";
hash = "sha256-MRzM3CrfJmmIHBcqHKuaEwmCm9a2RFXKJXtwY2v1SuI=";
};
nativeBuildInputs = [
@@ -61,7 +61,7 @@ buildGoModule rec {
pname = "parca";
src = parca-src;
vendorHash = "sha256-aVkPyrnkJMfn6NPbASDhH5ckIIktcFygKGqcSTA3yy8=";
vendorHash = "sha256-Ud0OsoY1z+MrKA4RaAhHbOYeLD75EJupLxZCycDAFnA=";
ldflags = [
"-X=main.version=${version}"
+3 -3
View File
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "reindeer";
version = "2026.02.16.00";
version = "2026.02.23.00";
src = fetchFromGitHub {
owner = "facebookincubator";
repo = "reindeer";
tag = "v${finalAttrs.version}";
hash = "sha256-O4Os1OFtNsr31Y93WikQjH1hhUO9sF3+k0CxotOO1d4=";
hash = "sha256-m2IqtOzkrKhFfpwNX1KGW2HZz9DLskGXHum8mc4SVuc=";
};
cargoHash = "sha256-SC9vDpQQEASFQDZQbWijRPslqvuP1YDaG8I2rhMAJeY=";
cargoHash = "sha256-fWpxIQJOcqzUwHNID+Wc+3QOY9P9hIAYSb9wP8x4pVU=";
nativeBuildInputs = [ pkg-config ];
+2 -2
View File
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rime-wanxiang";
version = "14.7.0";
version = "14.7.5";
src = fetchFromGitHub {
owner = "amzxyz";
repo = "rime_wanxiang";
tag = "v" + finalAttrs.version;
hash = "sha256-c4Wx0TJPNTMN6wqJCc9Nk76rc/0Tul/Hu6Kj8cZ75BI=";
hash = "sha256-jiwWwqMVHflF5D5k37sxtN2kIAcistVDULw0pgCUL7k=";
};
installPhase = ''
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "scooter";
version = "0.8.5";
version = "0.9.0";
src = fetchFromGitHub {
owner = "thomasschafer";
repo = "scooter";
rev = "v${finalAttrs.version}";
hash = "sha256-hKF0b3vgZ8kIK9QT129Ms+Rua6+Rrv8Jk2pt81eCc5Y=";
hash = "sha256-AcHPJu8aDvrQVEXvvwj7f4v1vQ0dinA6da940zTOsYg=";
};
cargoHash = "sha256-008wp5xa0G6E3e6rIhd1sE8cIIcHQ3LoCBl/cJx76Sw=";
cargoHash = "sha256-DNsQGbZSlNK7O4KcCtHAabe/XotlHykvSP6FI2+KFqQ=";
# Ensure that only the `scooter` package is built (excluding `xtask`)
cargoBuildFlags = [
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "sing-box";
version = "1.12.23";
version = "1.13.0";
src = fetchFromGitHub {
owner = "SagerNet";
repo = "sing-box";
tag = "v${finalAttrs.version}";
hash = "sha256-GzZgsRvbSpppTFY7Jm+56nCi5auDzV34i0K7fKOMafk=";
hash = "sha256-lhkz/mXydZz5iJllqSp4skA4+jxs8oUmon/oFs98Zfc=";
};
vendorHash = "sha256-CSAXPvXMUwD08fsp66vr1pA4Wxy0rY2cEJU1Pl0mdUA=";
vendorHash = "sha256-vVLaG0PV1OXA+YL67BnrHJiSkNVzJbZ8TeMKbO2rMu0=";
tags = [
"with_quic"
+4 -4
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "svu";
version = "3.3.0";
version = "3.4.0";
src = fetchFromGitHub {
owner = "caarlos0";
repo = "svu";
rev = "v${finalAttrs.version}";
sha256 = "sha256-3Rj+2ROo9TuWc2aZ8kkGeXH+PHjKva6nD7wlXHY/LQg=";
tag = "v${finalAttrs.version}";
hash = "sha256-KSNf4FQ7Shh0ggdoy9oFuM6AIoDKMaAO2NlvCFWHW8c=";
};
vendorHash = "sha256-2QznJ28lp/+f4MIbu4Wi5Kx46B7IIHGYGofY7B1OEjo=";
vendorHash = "sha256-SWS8P2eJ1lPjPQ4GmvPcHg4II3Dv72b7UbyFg2uRj6g=";
ldflags = [
"-s"
+5 -5
View File
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "urbit";
version = "4.2";
version = "4.3";
src = fetchurl {
url = "https://github.com/urbit/vere/releases/download/vere-v${finalAttrs.version}/${platform}.tgz";
sha256 =
{
x86_64-linux = "0cmgm0cjcj0089dd7dnncl5lhw6ji669byjbzd72va51abdirnkq";
aarch64-linux = "1il2khylsxj3k757f401ph5g1sx6f4y85p87bzwgaksdb4nkq6mi";
x86_64-darwin = "1p09y7c81m3mx9cm0689jbg1daz0xpr2p2bzqfnnlgzjlmi9x794";
aarch64-darwin = "1gy64mhvk8450mv2abjc62c2sh0b1criiwrdmyj8kyfv4qpiqyc8";
x86_64-linux = "14svyh258iqw8zrbf6nmsc1rfhrsyp6wb2a84fc72lsh28jm7fm0";
aarch64-linux = "0gbpfsysmag9wnka9lgd812wsgrp78fr5l5nwin524zx47cq0fdm";
x86_64-darwin = "0ff77jpsblgbsx03w0yqqsnyrw6g6c90bcj4bvm6idjdxknfnpfv";
aarch64-darwin = "037860zqp9l9gzr3s0d8pbis3xsd26f3a6k63rpvjn76bpwy6swb";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
+2 -2
View File
@@ -29,14 +29,14 @@ stdenv.mkDerivation (finalAttrs: {
];
preInstall = ''
mkdir -vp $out/bin $out/share/man/man1 $out/share/gsettings-schemas/$name/glib-2.0/schemas $out/share/pixmaps $out/share/applications
mkdir -vp $out/bin $out/share/man/man1 $out/share/gsettings-schemas/$name/glib-2.0/schemas $out/share/icons/hicolor/512x512/apps $out/share/applications
# https://www.jwz.org/blog/2022/08/dali-clock-2-45-released/#comment-236762
gappsWrapperArgs+=(--set MESA_GL_VERSION_OVERRIDE 3.1)
'';
installFlags = [
"GTK_ICONDIR=${placeholder "out"}/share/pixmaps/"
"GTK_ICONDIR=${placeholder "out"}/share/icons/hicolor/512x512/apps"
"GTK_APPDIR=${placeholder "out"}/share/applications/"
];
@@ -2,27 +2,26 @@
lib,
aiohttp,
aresponses,
async-timeout,
backoff,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
hatchling,
pytest-asyncio,
pytestCheckHook,
sigstore,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "aiogithubapi";
version = "25.5.0";
version = "26.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ludeeus";
repo = "aiogithubapi";
tag = version;
hash = "sha256-zl9QpFpkvSTs0BUDMBmwTeLY1YvNRSqbkIZ5LDUP3zw=";
tag = finalAttrs.version;
hash = "sha256-LQFOmg59kusqYtaLQaFePh+4aM25MaXVNkYy3PIeZ5A=";
};
__darwinAllowLocalNetworking = true;
@@ -31,16 +30,13 @@ buildPythonPackage rec {
# Upstream is releasing with the help of a CI to PyPI, GitHub releases
# are not in their focus
substituteInPlace pyproject.toml \
--replace-fail 'version = "0"' 'version = "${version}"'
--replace-fail 'version = "0"' 'version = "${finalAttrs.version}"'
'';
pythonRelaxDeps = [ "async-timeout" ];
build-system = [ poetry-core ];
build-system = [ hatchling ];
dependencies = [
aiohttp
async-timeout
backoff
];
@@ -66,8 +62,8 @@ buildPythonPackage rec {
meta = {
description = "Python client for the GitHub API";
homepage = "https://github.com/ludeeus/aiogithubapi";
changelog = "https://github.com/ludeeus/aiogithubapi/releases/tag/${version}";
changelog = "https://github.com/ludeeus/aiogithubapi/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -14,7 +14,7 @@
buildPythonPackage (finalAttrs: {
pname = "airos";
version = "0.6.3";
version = "0.6.4";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -23,7 +23,7 @@ buildPythonPackage (finalAttrs: {
owner = "CoMPaTech";
repo = "python-airos";
tag = "v${finalAttrs.version}";
hash = "sha256-d8SmV+vDik7rIElVwPUkWdRtHyqLLLNJCkphNzdD6W4=";
hash = "sha256-PXi4wZv8BcEdFcFvrlxryrp3JTEjDXydnkEKMud8IJc=";
};
build-system = [ setuptools ];
@@ -6,26 +6,25 @@
pytest-timeout,
pytestCheckHook,
setuptools,
setuptools-scm,
}:
buildPythonPackage (finalAttrs: {
pname = "busypie";
version = "0.5.1";
version = "0.6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "rockem";
repo = "busypie";
tag = "v${finalAttrs.version}";
hash = "sha256-dw0Sc/a27/EYY7LVMQqDkYuxrUFYK+N6XLk6A7A/eS8=";
hash = "sha256-MIwME5QM0BDpYP9frraJP/1v0lTZpPzgbqAawpGAcU0=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "pytest-runner" ""
'';
build-system = [ setuptools ];
build-system = [
setuptools
setuptools-scm
];
nativeCheckInputs = [
pytest-asyncio
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "celery-redbeat";
version = "2.8.1";
version = "2.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "celery";
repo = "django-celery-beat";
tag = "v${version}";
hash = "sha256-pakOpch5r2ug0UDSqEU34qr4Tz1/mkuFiHW+IOUuGcc=";
hash = "sha256-UGKMSXB+Hg865sAk5ePc/noO3eNTr7b3pp7tvNvn1T8=";
};
postPatch = ''
@@ -11,16 +11,16 @@
zstandard,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "dissect-squashfs";
version = "1.11";
version = "1.12";
pyproject = true;
src = fetchFromGitHub {
owner = "fox-it";
repo = "dissect.squashfs";
tag = version;
hash = "sha256-glmrsbNkhgYBhcL+qgEnBfJnGL4ViHH1L5HN9rGlUNM=";
tag = finalAttrs.version;
hash = "sha256-p+8MKpjAq09jTrlTaA8zSf1wMYzAHtydm5c8RICCAOQ=";
};
build-system = [
@@ -46,8 +46,8 @@ buildPythonPackage rec {
meta = {
description = "Dissect module implementing a parser for the SquashFS file system";
homepage = "https://github.com/fox-it/dissect.squashfs";
changelog = "https://github.com/fox-it/dissect.squashfs/releases/tag/${src.tag}";
changelog = "https://github.com/fox-it/dissect.squashfs/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -20,14 +20,14 @@
buildPythonPackage rec {
pname = "django-cms";
version = "5.0.5";
version = "5.0.6";
pyproject = true;
src = fetchFromGitHub {
owner = "django-cms";
repo = "django-cms";
tag = version;
hash = "sha256-s7sgENs1A5weAiZ2zQYIbAKFOWR3Jmhbsli3vLyqi/4=";
hash = "sha256-pYxIW/GGBIKzsQs2QJiRkScDPzSf3YXC+HkDsfAgg/w=";
};
build-system = [ setuptools ];
@@ -20,14 +20,14 @@
buildPythonPackage (finalAttrs: {
pname = "env-canada";
version = "0.12.4";
version = "0.13.2";
pyproject = true;
src = fetchFromGitHub {
owner = "michaeldavie";
repo = "env_canada";
tag = "v${finalAttrs.version}";
hash = "sha256-2ajvBGgYf5xhygv2h9RzkhkedXm+6QJmPczLJ42hqMA=";
hash = "sha256-E6ZStsc0T0zbjC11wi1h0JtQVBrEPtr0SJwUodCbF7k=";
};
build-system = [ setuptools ];
@@ -11,16 +11,16 @@
sensor-state-data,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "govee-ble";
version = "1.1.0";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = "govee-ble";
tag = "v${version}";
hash = "sha256-fIQZd25NlkFE24d2ro5N4liFneH2SdGBw4gkJKoSqnk=";
tag = "v${finalAttrs.version}";
hash = "sha256-+qzSNwV+2h75LVly7kZaaulKQp5Hp0N8k05BauN1TXo=";
};
build-system = [ poetry-core ];
@@ -42,8 +42,8 @@ buildPythonPackage rec {
meta = {
description = "Library for Govee BLE devices";
homepage = "https://github.com/Bluetooth-Devices/govee-ble";
changelog = "https://github.com/bluetooth-devices/govee-ble/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/bluetooth-devices/govee-ble/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "iamdata";
version = "0.1.202602261";
version = "0.1.202603011";
pyproject = true;
src = fetchFromGitHub {
owner = "cloud-copilot";
repo = "iam-data-python";
tag = "v${finalAttrs.version}";
hash = "sha256-C2ubZ7R6tN9P27aRDeHJ94frgN/ZRpDSxGCS/qYrJqo=";
hash = "sha256-mZ/l+Gf6VlKdBIyKPdymNfR+fyfCrXadClfvfSPUljs=";
};
__darwinAllowLocalNetworking = true;
@@ -7,15 +7,15 @@
neo4j,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "llama-index-graph-stores-neo4j";
version = "0.5.1";
version = "0.5.2";
pyproject = true;
src = fetchPypi {
pname = "llama_index_graph_stores_neo4j";
inherit version;
hash = "sha256-P3EzR6piD49dFQY26LuV4/gZpOsFe5Hfp87BFiwo1Xg=";
inherit (finalAttrs) version;
hash = "sha256-TPPZyKD6sFX/qsHSTiidT6idXnW1edSv1ZbOXopa3lI=";
};
pythonRelaxDeps = [ "neo4j" ];
@@ -38,4 +38,4 @@ buildPythonPackage rec {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -6,16 +6,16 @@
pytestCheckHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "pick";
version = "2.4.0";
version = "2.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "wong2";
repo = "pick";
tag = "v${version}";
hash = "sha256-SnH37n0MCjO60IU6kUPxJkIC5vBCVGZXBhFfwvRI/tQ=";
tag = "v${finalAttrs.version}";
hash = "sha256-/cvnDTRS3V9mk1T0zHAqdrDeRuOrnco9UF7luy687BM=";
};
build-system = [ poetry-core ];
@@ -27,8 +27,8 @@ buildPythonPackage rec {
meta = {
description = "Module to create curses-based interactive selection list in the terminal";
homepage = "https://github.com/wong2/pick";
changelog = "https://github.com/wong2/pick/releases/tag/v${version}";
license = with lib.licenses; [ mit ];
changelog = "https://github.com/wong2/pick/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
@@ -19,6 +20,8 @@ buildPythonPackage rec {
build-system = [ setuptools ];
dependencies = [ typing-extensions ];
# This package does not include any tests.
doCheck = false;
@@ -11,14 +11,14 @@
buildPythonPackage (finalAttrs: {
pname = "pytest-spec";
version = "5.2.0";
version = "6.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pchomik";
repo = "pytest-spec";
tag = finalAttrs.version;
hash = "sha256-nKBzQrosgTKHoID43u6G31fphsDyCVZhsNQuYIHiLfA=";
hash = "sha256-2DXC02FSiGzsavdkoDFlxKdYaYpPAy3VbEG4YZSO5c8=";
};
build-system = [
@@ -21,15 +21,15 @@
websockets,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "ring-doorbell";
version = "0.9.13";
version = "0.9.14";
pyproject = true;
src = fetchPypi {
pname = "ring_doorbell";
inherit version;
hash = "sha256-M8lHODHdWXLvrDbQMeEgGaQMYCXicHTQta+XjJxSQlM=";
inherit (finalAttrs) version;
hash = "sha256-M99nwMuo0OziuJpNzuZgK69HtE+/wbOgheij1UwBaRc=";
};
patches = [
@@ -75,9 +75,9 @@ buildPythonPackage rec {
meta = {
description = "Library to communicate with Ring Door Bell";
homepage = "https://github.com/tchellomello/python-ring-doorbell";
changelog = "https://github.com/tchellomello/python-ring-doorbell/blob/${version}/CHANGELOG.md";
changelog = "https://github.com/tchellomello/python-ring-doorbell/blob/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [ graham33 ];
mainProgram = "ring-doorbell";
};
}
})
@@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "tencentcloud-sdk-python";
version = "3.1.47";
version = "3.1.49";
pyproject = true;
src = fetchFromGitHub {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = finalAttrs.version;
hash = "sha256-cW2+13i/Gv+Y69vs7o38Bwvs2r/PMbyvnMLbniNn6vo=";
hash = "sha256-p68gGzyY1PV5UryydJw/sLMsJLrX0MYTrcIrXPUhntM=";
};
build-system = [ setuptools ];
@@ -153,6 +153,12 @@ buildPythonPackage (finalAttrs: {
"test_qdq_per_channel"
"test_reentrant"
"test_static_linear"
# AttributeError: 'list' object has no attribute 'keys'
"test_tied_weights_quantization"
# execnet.gateway_base.DumpError: can't serialize <class 'torch.dtype'>
"test_numerical_consistency_per_tensor"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# AssertionError: tensor(False) is not true
@@ -128,7 +128,13 @@ buildPythonPackage (finalAttrs: {
"test_init_from_env_dup"
];
disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
disabledTestPaths = [
# TypeError: HfHubHTTPError.__init__() missing 1 required keyword-only argument: 'response'
"tests/torchtune/_cli/test_download.py::TestTuneDownloadCommand::test_download_calls_snapshot"
"tests/torchtune/_cli/test_download.py::TestTuneDownloadCommand::test_gated_repo_error_no_token"
"tests/torchtune/_cli/test_download.py::TestTuneDownloadCommand::test_gated_repo_error_with_token"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# fail due to floating-point precision differences
"tests/torchtune/models/flux/test_flux_autoencoder.py::TestFluxAutoencoder::test_encode"
"tests/torchtune/modules/peft/test_dora.py::TestDoRALinear::test_qdora_parity[True-dtype1]"
@@ -11,16 +11,16 @@
urllib3,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "weheat";
version = "2026.1.25";
version = "2026.2.28";
pyproject = true;
src = fetchFromGitHub {
owner = "wefabricate";
repo = "wh-python";
tag = version;
hash = "sha256-8gpRK7vQojOskF0n8iY/UzfCfNPQZ5eVhw2H7vZvgps=";
tag = finalAttrs.version;
hash = "sha256-V29B30LztIHFbTRTqppR3kvVNwDoK4BPq5fK1blJUrU=";
};
build-system = [ setuptools ];
@@ -42,8 +42,8 @@ buildPythonPackage rec {
meta = {
description = "Library to interact with the weheat API";
homepage = "https://github.com/wefabricate/wh-python";
changelog = "https://github.com/wefabricate/wh-python/releases/tag/${src.tag}";
changelog = "https://github.com/wefabricate/wh-python/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})