Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-05-18 18:01:09 +00:00 committed by GitHub
commit 10b5ff04c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
37 changed files with 1410 additions and 795 deletions

View File

@ -3207,6 +3207,16 @@
githubId = 3212452; githubId = 3212452;
name = "Cameron Nemo"; name = "Cameron Nemo";
}; };
cameronraysmith = {
email = "cameronraysmith@gmail.com";
matrix = "@cameronraysmith:matrix.org";
github = "cameronraysmith";
githubId = 420942;
name = "Cameron Smith";
keys = [{
fingerprint = "3F14 C258 856E 88AE E0F9 661E FF04 3B36 8811 DD1C";
}];
};
camillemndn = { camillemndn = {
email = "camillemondon@free.fr"; email = "camillemondon@free.fr";
github = "camillemndn"; github = "camillemndn";

View File

@ -92,6 +92,11 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- [Handheld Daemon](https://github.com/hhd-dev/hhd), support for gaming handhelds like the Legion Go, ROG Ally, and GPD Win. Available as [services.handheld-daemon](#opt-services.handheld-daemon.enable). - [Handheld Daemon](https://github.com/hhd-dev/hhd), support for gaming handhelds like the Legion Go, ROG Ally, and GPD Win. Available as [services.handheld-daemon](#opt-services.handheld-daemon.enable).
- [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
As well as related programs
[CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
[PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
- [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable). - [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable).
- [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition. - [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition.

View File

@ -158,6 +158,7 @@
./programs/bash/ls-colors.nix ./programs/bash/ls-colors.nix
./programs/bash/undistract-me.nix ./programs/bash/undistract-me.nix
./programs/bcc.nix ./programs/bcc.nix
./programs/benchexec.nix
./programs/browserpass.nix ./programs/browserpass.nix
./programs/calls.nix ./programs/calls.nix
./programs/captive-browser.nix ./programs/captive-browser.nix
@ -167,6 +168,7 @@
./programs/chromium.nix ./programs/chromium.nix
./programs/clash-verge.nix ./programs/clash-verge.nix
./programs/cnping.nix ./programs/cnping.nix
./programs/cpu-energy-meter.nix
./programs/command-not-found/command-not-found.nix ./programs/command-not-found/command-not-found.nix
./programs/coolercontrol.nix ./programs/coolercontrol.nix
./programs/criu.nix ./programs/criu.nix
@ -250,6 +252,7 @@
./programs/pantheon-tweaks.nix ./programs/pantheon-tweaks.nix
./programs/partition-manager.nix ./programs/partition-manager.nix
./programs/plotinus.nix ./programs/plotinus.nix
./programs/pqos-wrapper.nix
./programs/projecteur.nix ./programs/projecteur.nix
./programs/proxychains.nix ./programs/proxychains.nix
./programs/qdmr.nix ./programs/qdmr.nix

View File

@ -0,0 +1,98 @@
{ lib
, pkgs
, config
, options
, ...
}:
let
cfg = config.programs.benchexec;
opt = options.programs.benchexec;
filterUsers = x:
if builtins.isString x then config.users.users ? ${x} else
if builtins.isInt x then x else
throw "filterUsers expects string (username) or int (UID)";
uid = x:
if builtins.isString x then config.users.users.${x}.uid else
if builtins.isInt x then x else
throw "uid expects string (username) or int (UID)";
in
{
options.programs.benchexec = {
enable = lib.mkEnableOption "BenchExec";
package = lib.options.mkPackageOption pkgs "benchexec" { };
users = lib.options.mkOption {
type = with lib.types; listOf (either str int);
description = ''
Users that intend to use BenchExec.
Provide usernames of users that are configured via {option}`${options.users.users}` as string,
and UIDs of "mutable users" as integers.
Control group delegation will be configured via systemd.
For more information, see <https://github.com/sosy-lab/benchexec/blob/3.18/doc/INSTALL.md#setting-up-cgroups>.
'';
default = [ ];
example = lib.literalExpression ''
[
"alice" # username of a user configured via ${options.users.users}
1007 # UID of a mutable user
]
'';
};
};
config = lib.mkIf cfg.enable {
assertions = (map
(user: {
assertion = config.users.users ? ${user};
message = ''
The user '${user}' intends to use BenchExec (via `${opt.users}`), but is not configured via `${options.users.users}`.
'';
})
(builtins.filter builtins.isString cfg.users)
) ++ (map
(id: {
assertion = config.users.mutableUsers;
message = ''
The user with UID '${id}' intends to use BenchExec (via `${opt.users}`), but mutable users are disabled via `${options.users.mutableUsers}`.
'';
})
(builtins.filter builtins.isInt cfg.users)
) ++ [
{
assertion = config.systemd.enableUnifiedCgroupHierarchy == true;
message = ''
The BenchExec module `${opt.enable}` only supports control groups 2 (`${options.systemd.enableUnifiedCgroupHierarchy} = true`).
'';
}
];
environment.systemPackages = [ cfg.package ];
# See <https://github.com/sosy-lab/benchexec/blob/3.18/doc/INSTALL.md#setting-up-cgroups>.
systemd.services = builtins.listToAttrs (map
(user: {
name = "user@${builtins.toString (uid user)}";
value = {
serviceConfig.Delegate = "yes";
overrideStrategy = "asDropin";
};
})
(builtins.filter filterUsers cfg.users));
# See <https://github.com/sosy-lab/benchexec/blob/3.18/doc/INSTALL.md#requirements>.
virtualisation.lxc.lxcfs.enable = lib.mkDefault true;
# See <https://github.com/sosy-lab/benchexec/blob/3.18/doc/INSTALL.md#requirements>.
programs = {
cpu-energy-meter.enable = lib.mkDefault true;
pqos-wrapper.enable = lib.mkDefault true;
};
# See <https://github.com/sosy-lab/benchexec/blob/3.18/doc/INSTALL.md#kernel-requirements>.
security.unprivilegedUsernsClone = true;
};
meta.maintainers = with lib.maintainers; [ lorenzleutgeb ];
}

View File

@ -0,0 +1,27 @@
{ config
, lib
, pkgs
, ...
}: {
options.programs.cpu-energy-meter = {
enable = lib.mkEnableOption "CPU Energy Meter";
package = lib.mkPackageOption pkgs "cpu-energy-meter" { };
};
config =
let
cfg = config.programs.cpu-energy-meter;
in
lib.mkIf cfg.enable {
hardware.cpu.x86.msr.enable = true;
security.wrappers.${cfg.package.meta.mainProgram} = {
owner = "nobody";
group = config.hardware.cpu.x86.msr.group;
source = lib.getExe cfg.package;
capabilities = "cap_sys_rawio=ep";
};
};
meta.maintainers = with lib.maintainers; [ lorenzleutgeb ];
}

View File

@ -0,0 +1,27 @@
{ config
, lib
, pkgs
, ...
}:
let
cfg = config.programs.pqos-wrapper;
in
{
options.programs.pqos-wrapper = {
enable = lib.mkEnableOption "PQoS Wrapper for BenchExec";
package = lib.mkPackageOption pkgs "pqos-wrapper" { };
};
config = lib.mkIf cfg.enable {
hardware.cpu.x86.msr.enable = true;
security.wrappers.${cfg.package.meta.mainProgram} = {
owner = "nobody";
group = config.hardware.cpu.x86.msr.group;
source = lib.getExe cfg.package;
capabilities = "cap_sys_rawio=eip";
};
};
meta.maintainers = with lib.maintainers; [ lorenzleutgeb ];
}

View File

@ -144,6 +144,7 @@ in {
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {}; bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
beanstalkd = handleTest ./beanstalkd.nix {}; beanstalkd = handleTest ./beanstalkd.nix {};
bees = handleTest ./bees.nix {}; bees = handleTest ./bees.nix {};
benchexec = handleTest ./benchexec.nix {};
binary-cache = handleTest ./binary-cache.nix {}; binary-cache = handleTest ./binary-cache.nix {};
bind = handleTest ./bind.nix {}; bind = handleTest ./bind.nix {};
bird = handleTest ./bird.nix {}; bird = handleTest ./bird.nix {};

54
nixos/tests/benchexec.nix Normal file
View File

@ -0,0 +1,54 @@
import ./make-test-python.nix ({ pkgs, lib, ... }:
let
user = "alice";
in
{
name = "benchexec";
nodes.benchexec = {
imports = [ ./common/user-account.nix ];
programs.benchexec = {
enable = true;
users = [ user ];
};
};
testScript = { ... }:
let
runexec = lib.getExe' pkgs.benchexec "runexec";
echo = builtins.toString pkgs.benchexec;
test = lib.getExe (pkgs.writeShellApplication rec {
name = "test";
meta.mainProgram = name;
text = "echo '${echo}'";
});
wd = "/tmp";
stdout = "${wd}/runexec.out";
stderr = "${wd}/runexec.err";
in
''
start_all()
machine.wait_for_unit("multi-user.target")
benchexec.succeed(''''\
systemd-run \
--property='StandardOutput=file:${stdout}' \
--property='StandardError=file:${stderr}' \
--unit=runexec --wait --user --machine='${user}@' \
--working-directory ${wd} \
'${runexec}' \
--debug \
--read-only-dir / \
--hidden-dir /home \
'${test}' \
'''')
benchexec.succeed("grep -s '${echo}' ${wd}/output.log")
benchexec.succeed("test \"$(grep -Ec '((start|wall|cpu)time|memory)=' ${stdout})\" = 4")
benchexec.succeed("! grep -E '(WARNING|ERROR)' ${stderr}")
'';
interactive.nodes.benchexec.services.kmscon = {
enable = true;
fonts = [{ name = "Fira Code"; package = pkgs.fira-code; }];
};
})

View File

@ -55,20 +55,20 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "beetle-pce-libretro", "repo": "beetle-pce-libretro",
"rev": "b5dd6466f18714ab4c9702e5bdb51cc9dfea061b", "rev": "0eb4b423452da40dbf4393e09d4126c3090a1210",
"hash": "sha256-PBirwijCwaOcjRdyIyx/UsnYMQuojQuogK7X7Hte7r8=" "hash": "sha256-PhhItDKvlvx3uBDx+xEUVr0sW2Y9HiTR/IvsnXVNAqo="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-17"
}, },
"beetle-pce-fast": { "beetle-pce-fast": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "beetle-pce-fast-libretro", "repo": "beetle-pce-fast-libretro",
"rev": "e2c0259a6941285f853bdc81dfd33756e107c2c2", "rev": "414149d335ce2a3284db6cdffbb8ed2ce42dbe5f",
"hash": "sha256-S5p38rC5JqLL7ydeEtYR29rWFx1Pok3s7SNPr9zKwb8=" "hash": "sha256-sta71o4NJIPDZlQkAFLzx+XlHVA8MmUjuZ17MuCKhOY="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-17"
}, },
"beetle-pcfx": { "beetle-pcfx": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -85,10 +85,10 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "beetle-psx-libretro", "repo": "beetle-psx-libretro",
"rev": "0c8abf7f9dda23874b5b9cecfcec519a9dfb032b", "rev": "1743ca1a97cc90eac463def2e6118602b3d230c0",
"hash": "sha256-psGXpYzKI1QicoHxGhHwR92kymZ+9EaJUpGMcM2OMUY=" "hash": "sha256-0ViuIo+iEIthRayJQeedOo2L+uTsJQh6PTJ21zlC/f0="
}, },
"version": "unstable-2024-05-10" "version": "unstable-2024-05-17"
}, },
"beetle-saturn": { "beetle-saturn": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -115,10 +115,10 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "beetle-supergrafx-libretro", "repo": "beetle-supergrafx-libretro",
"rev": "77a965d3433b1585638b54aa6a15d0c33a64ea0c", "rev": "c96c05c0b6e948df00da7e6253ff3e2874314baa",
"hash": "sha256-KuXvzse/EnzCcRoWVtZP1f/SKOp6qGrLbzbQEuFQGqA=" "hash": "sha256-ruxp66E7D+r/9h7lzggIy9q9DKWKJikVzL5Oqsy9kQM="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-17"
}, },
"beetle-vb": { "beetle-vb": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -155,20 +155,20 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "bluemsx-libretro", "repo": "bluemsx-libretro",
"rev": "e8a4280bcbd149d1e020adcd9469ad9d8bd67412", "rev": "0dcb73adef9601ca70d94b3f4e3ba1b3b54edbc0",
"hash": "sha256-uh4lMOCN1WXKVJybFkkGxIRWAlde74yPH5eaB1/1qsk=" "hash": "sha256-jjo9vUMRZjHwhnh5OiC1JuNc/diJWoa/GcHwHnLIFqw="
}, },
"version": "unstable-2023-11-10" "version": "unstable-2024-05-17"
}, },
"bsnes": { "bsnes": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "bsnes-libretro", "repo": "bsnes-libretro",
"rev": "b2f3ca10ee48546ad267719fb21bcf6b503d91e6", "rev": "37606e377ebae5d3175cd6267e4ddfa3f3c5091f",
"hash": "sha256-qClpkmkERAxdVL3DZvkUsmmGmFj6TArEBdS0AcIyXuA=" "hash": "sha256-B1ragos8ZeCjg8Xlt6SC8V69iTZ6OXTpPptlWw4EMOU="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-17"
}, },
"bsnes-hd": { "bsnes-hd": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -287,10 +287,10 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "fbneo", "repo": "fbneo",
"rev": "573c9b99e3cc0b11a652b2f21a22dcb15a2c4dda", "rev": "d64b24ca2eaf5dcdc0e9e5a8ada95af736ec80d7",
"hash": "sha256-MTRv/F68GiEwt5iN4xilTWGgTw2mf2aAvqDExgeN/g0=" "hash": "sha256-3arvKLXFXr7+s08IF4Qv215qfvi6uOk3afpo8zT4d3I="
}, },
"version": "unstable-2024-05-07" "version": "unstable-2024-05-15"
}, },
"fceumm": { "fceumm": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -307,11 +307,11 @@
"src": { "src": {
"owner": "flyinghead", "owner": "flyinghead",
"repo": "flycast", "repo": "flycast",
"rev": "f13d7ad2dcf141f59a999090dbc0f78be196e665", "rev": "88f23958ace20840fb2666ccc42750a6f9b20d19",
"hash": "sha256-YFLSUaEikwLPglHh3t8sHiKHRn5cchKzzkJlZDdgVsU=", "hash": "sha256-foLCf8E8HNT2DgSM5sUN4fkvJqBrlvOU6XBK4NgZzEU=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"version": "unstable-2024-05-11" "version": "unstable-2024-05-17"
}, },
"fmsx": { "fmsx": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -348,20 +348,20 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "gambatte-libretro", "repo": "gambatte-libretro",
"rev": "a7e645196f5e54904a056e390ac7ceb033037de0", "rev": "238b195bca073bc1a2032c4e92c097d157e521f8",
"hash": "sha256-pz/IQpjySByHnRu64Ysd1LJPrcImMQ0CfTRV4ONUsA0=" "hash": "sha256-i9+a1kVlJ6EPaCOMkuIZgujNEg6MwPRM3mHnhconWHo="
}, },
"version": "unstable-2024-05-10" "version": "unstable-2024-05-17"
}, },
"genesis-plus-gx": { "genesis-plus-gx": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "Genesis-Plus-GX", "repo": "Genesis-Plus-GX",
"rev": "ba9fc37cfa4930311a9c77b1d8a23df0cae95e9a", "rev": "58cf8471e3aa09ac4cb4c4b2dc5fdf3d1d54d626",
"hash": "sha256-Smw0MoUfewlz0zYQmtFLB0n8l0KyyoInohXZ7d9Xrwk=" "hash": "sha256-y1pVoKrIV5n2wKoUIkUEor2CKTx9CyvkDagkByuFeiE="
}, },
"version": "unstable-2024-05-10" "version": "unstable-2024-05-17"
}, },
"gpsp": { "gpsp": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -429,20 +429,20 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "mame2003-libretro", "repo": "mame2003-libretro",
"rev": "838f84f14422529c37bbb9803eb649209c8ba4e8", "rev": "aed807fce1acd4fbc70f7ced8fa52548220082ac",
"hash": "sha256-NiqlA4FjHS0GLypEg6QbhEJlhV0YU7VmMquzqnyr7aA=" "hash": "sha256-48C2vJIFfna2LcbcLVTTVmJzvV87DZBa+6UQz/LfaVU="
}, },
"version": "unstable-2024-02-08" "version": "unstable-2024-05-17"
}, },
"mame2003-plus": { "mame2003-plus": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "mame2003-plus-libretro", "repo": "mame2003-plus-libretro",
"rev": "11fad92faea0acfd3eb4fd15beced9088caab1fc", "rev": "f0135f7f610c43496f376dfddbc60fc0ed24a736",
"hash": "sha256-ck+zdwiuVw4bhPSdQxEz8a0nj8J6GP7ccvYRZ1WJy8s=" "hash": "sha256-jHilxNFL+n8QesjgD6lt8HQSVwA4uiLMsNa1JkkCIuA="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-17"
}, },
"mame2010": { "mame2010": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -529,11 +529,11 @@
"src": { "src": {
"owner": "Javanaise", "owner": "Javanaise",
"repo": "mrboom-libretro", "repo": "mrboom-libretro",
"rev": "3d5a840e424df30beaf2746c98f538ea1b44bd31", "rev": "d9695504924344eb681b526d0cc3bb5e3884a32b",
"hash": "sha256-emNX2U4y2CO6biJ6vwY15otRs44WbPJTGmgP+uCSUfM=", "hash": "sha256-incaTU5pFv5K4jeiWx09Cp50+4Ewf13tT83zr7Zidmo=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"version": "unstable-2024-02-26" "version": "unstable-2024-05-17"
}, },
"mupen64plus": { "mupen64plus": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -631,10 +631,10 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "pcsx_rearmed", "repo": "pcsx_rearmed",
"rev": "87a0a6318564fc171d0b576da8ea7e629aa229e7", "rev": "db02598e737b8d50cd347fe2ef13cb85ade051dd",
"hash": "sha256-quIvyfigl/4itSldj73HpZezeHQwVGlz/jQvwmmsDik=" "hash": "sha256-BgqwKbmRXKIMfv8xPBH38wTMSVWvkFKOJCb0emZkx5Y="
}, },
"version": "unstable-2024-04-22" "version": "unstable-2024-05-17"
}, },
"picodrive": { "picodrive": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -652,22 +652,22 @@
"src": { "src": {
"owner": "jpd002", "owner": "jpd002",
"repo": "Play-", "repo": "Play-",
"rev": "700a44a1548d099705c901203414724518c90d43", "rev": "0efd17e79dc470c86cd1363a93130888c1e7a528",
"hash": "sha256-OZO8vVA2B/SdckC2Rm/v35cdJDzkpdU9lJhFYEyyl1U=", "hash": "sha256-+f1xOSqKUJmM0bhtsPR9zk6mybo2HOXLURtYVb6qBGU=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"version": "unstable-2024-05-05" "version": "unstable-2024-05-17"
}, },
"ppsspp": { "ppsspp": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
"src": { "src": {
"owner": "hrydgard", "owner": "hrydgard",
"repo": "ppsspp", "repo": "ppsspp",
"rev": "60ffd07116d0a2e07db141db8414524138b6f035", "rev": "dbcac0e48c769e4874028496c6d6f6ecc418e16f",
"hash": "sha256-tkIbsYjQRoV9A8NIDMJCRnHd+NCPycqrPu6JRjF6dHs=", "hash": "sha256-Nn1kRh2xgKZWrrWRIuYkm4U7sJ5U9tMBRMZFTA4pcEE=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-14"
}, },
"prboom": { "prboom": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -754,10 +754,10 @@
"src": { "src": {
"owner": "snes9xgit", "owner": "snes9xgit",
"repo": "snes9x", "repo": "snes9x",
"rev": "771b0ffc3792ffeca10baa88d6a62e3889060236", "rev": "8f41776532c407744c41e5d08444cb2dbd492c14",
"hash": "sha256-U8O4u6gD8jopqzwcnWy9xLSuuBjMSq5nhncSQmrIePs=" "hash": "sha256-w8RWXqTjAUVrg3U0aMdaZ5mOlZYhgARzOAgyc57AhGQ="
}, },
"version": "unstable-2024-05-01" "version": "unstable-2024-05-13"
}, },
"snes9x2002": { "snes9x2002": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -794,10 +794,10 @@
"src": { "src": {
"owner": "stella-emu", "owner": "stella-emu",
"repo": "stella", "repo": "stella",
"rev": "68e671169f11373e00c88b24d7b319a42b69a715", "rev": "49166ca9949708c3bddaed5cc549194c4bfcfae5",
"hash": "sha256-WpkUbnYaohP6rDKYi3pPdDxGfW9f7d1QjhJVSBzqLjc=" "hash": "sha256-Oszglo1BQYTkuSZ96RSIBa1A0v/4qLQSBzsSVmOq07I="
}, },
"version": "unstable-2024-05-03" "version": "unstable-2024-05-13"
}, },
"stella2014": { "stella2014": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",
@ -844,11 +844,11 @@
"src": { "src": {
"owner": "libretro", "owner": "libretro",
"repo": "tic-80", "repo": "tic-80",
"rev": "bd6ce86174fc7c9d7d3a86263acf3a7de1b62c11", "rev": "6412f72d0f4725c153ce3d245729b829e713542e",
"hash": "sha256-RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=", "hash": "sha256-RFp8sTSRwD+cgW3EYk3nBeY+zVKgZVQI5mjtfe2a64Q=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"version": "unstable-2022-06-11" "version": "unstable-2024-05-13"
}, },
"vba-m": { "vba-m": {
"fetcher": "fetchFromGitHub", "fetcher": "fetchFromGitHub",

View File

@ -69,9 +69,9 @@ in rec {
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the hash for staging as well. # NOTE: Don't forget to change the hash for staging as well.
version = "9.8"; version = "9.9";
url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz"; url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
hash = "sha256-hpQ8g47aj62aeUDUCZcDOUvx0b6aEBQ0L+2HnH3DuZM="; hash = "sha256-TWengSxKvUo96SMjjmD1qGsWrH+yD2KU4Nxu+ei+yjY=";
inherit (stable) patches; inherit (stable) patches;
## see http://wiki.winehq.org/Gecko ## see http://wiki.winehq.org/Gecko
@ -117,7 +117,7 @@ in rec {
staging = fetchFromGitLab rec { staging = fetchFromGitLab rec {
# https://gitlab.winehq.org/wine/wine-staging # https://gitlab.winehq.org/wine/wine-staging
inherit (unstable) version; inherit (unstable) version;
hash = "sha256-c69E+jr5DKdD8JJxQhM3ILJgvmGvOe54FqMghcVPkpg="; hash = "sha256-JJrt2zTCjI8Zectoa5B0eZm2BLQm9u5cHbqVEHygwd0=";
domain = "gitlab.winehq.org"; domain = "gitlab.winehq.org";
owner = "wine"; owner = "wine";
repo = "wine-staging"; repo = "wine-staging";

View File

@ -1,40 +0,0 @@
{ lib, stdenv, fetchurl, unzip, makeWrapper
, coreutils, gawk, which, gnugrep, findutils
, jdk
}:
stdenv.mkDerivation {
pname = "openjump";
version = "1.15";
src = fetchurl {
url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.15/OpenJUMP-Portable-1.15-r6241-CORE.zip";
sha256 = "12snzkv83w6khcdqzp6xahqapwp82af6c7j2q8n0lj62hk79rfgl";
};
# TODO: build from source
unpackPhase = ''
mkdir -p $out/bin;
cd $out; unzip $src
'';
nativeBuildInputs = [ makeWrapper unzip ];
installPhase = ''
dir=$(echo $out/OpenJUMP-*)
chmod +x $dir/bin/oj_linux.sh
makeWrapper $dir/bin/oj_linux.sh $out/bin/OpenJump \
--set JAVA_HOME ${jdk.home} \
--set PATH "${coreutils}/bin:${gawk}/bin:${which}/bin:${gnugrep}/bin:${findutils}/bin"
'';
meta = {
description = "Open source Geographic Information System (GIS) written in the Java programming language";
homepage = "http://www.openjump.org/index.html";
license = lib.licenses.gpl2;
maintainers = [lib.maintainers.marcweber];
platforms = lib.platforms.linux;
mainProgram = "OpenJump";
};
}

View File

@ -51,11 +51,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "opera"; pname = "opera";
version = "109.0.5097.80"; version = "110.0.5130.23";
src = fetchurl { src = fetchurl {
url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb"; url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
hash = "sha256-3NSinITYisulR5rNhSnwQC3D9pKWj4SdBtFt/9OgCvo="; hash = "sha256-Y1YmTUvXHOXBB5Mei8lX0DCoEkOmgVCPtT1GnTqNTtA=";
}; };
unpackPhase = "dpkg-deb -x $src ."; unpackPhase = "dpkg-deb -x $src .";

View File

@ -5,11 +5,11 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "tutanota-desktop"; pname = "tutanota-desktop";
version = "227.240502.0"; version = "229.240514.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage"; url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage";
hash = "sha256-D7qWwIFuCJmBvfdgf4Dsd2/jvi39tbAttaHOwLND4DY="; hash = "sha256-wUxg6Gu8jjV+EEvD9nt38BU5J3qoByvj+sUkilk4voc=";
}; };
extraPkgs = pkgs: [ pkgs.libsecret ]; extraPkgs = pkgs: [ pkgs.libsecret ];

View File

@ -52,13 +52,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "sdrangel"; pname = "sdrangel";
version = "7.20.0"; version = "7.20.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "f4exb"; owner = "f4exb";
repo = "sdrangel"; repo = "sdrangel";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-sS/ASTMdNJpllHqtmUsG+qBQ77j8IcG6l4g53/Lmcwk="; hash = "sha256-8v00JiPRCFqg+6wEZw5BrsHMvUYweigbroBHKQGOlHI=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -21,7 +21,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "river"; pname = "river";
version = "0.3.0"; version = "0.3.1";
outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ]; outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
repo = "river"; repo = "river";
rev = "refs/tags/v${finalAttrs.version}"; rev = "refs/tags/v${finalAttrs.version}";
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-6LZuWx0sC6bW0K7D0PR8hJlVW6i6NIzOOORdMu3Gk5U="; hash = "sha256-H/908/TP2uzJD1yH4mCXHvorY+4kAhzEkWn6nZGsyBg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -0,0 +1,62 @@
{ lib
, fetchFromGitHub
, python3
, libseccomp
, nixosTests
, testers
, benchexec
}:
python3.pkgs.buildPythonApplication rec {
pname = "benchexec";
version = "3.21";
src = fetchFromGitHub {
owner = "sosy-lab";
repo = "benchexec";
rev = version;
hash = "sha256-bE3brmmLHZQakDKvd47I1hm9Dcsu6DrSeJyjWWtEZWI=";
};
pyproject = true;
nativeBuildInputs = with python3.pkgs; [ setuptools ];
# NOTE: CPU Energy Meter is not added,
# because BenchExec should call the wrapper configured
# via `security.wrappers.cpu-energy-meter`
# in `programs.cpu-energy-meter`, which will have the required
# capabilities to access MSR.
# If we add `cpu-energy-meter` here, BenchExec will instead call an executable
# without `CAP_SYS_RAWIO` and fail.
propagatedBuildInputs = with python3.pkgs; [
coloredlogs
lxml
pystemd
pyyaml
];
makeWrapperArgs = [ "--set-default LIBSECCOMP ${lib.getLib libseccomp}/lib/libseccomp.so" ];
passthru.tests =
let
testVersion = result: testers.testVersion {
command = "${result} --version";
package = benchexec;
};
in
{
nixos = nixosTests.benchexec;
benchexec-version = testVersion "benchexec";
runexec-version = testVersion "runexec";
table-generator-version = testVersion "table-generator";
containerexec-version = testVersion "containerexec";
};
meta = with lib; {
description = "A Framework for Reliable Benchmarking and Resource Measurement.";
homepage = "https://github.com/sosy-lab/benchexec";
maintainers = with maintainers; [ lorenzleutgeb ];
license = licenses.asl20;
mainProgram = "benchexec";
};
}

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "boxbuddy"; pname = "boxbuddy";
version = "2.2.3"; version = "2.2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Dvlv"; owner = "Dvlv";
repo = "BoxBuddyRS"; repo = "BoxBuddyRS";
rev = version; rev = version;
hash = "sha256-b7b5IWo2REr0HBfsKbnFYcReEQG5SfuGDa9KSKIC3t0="; hash = "sha256-1a9rSVP40+ZKp21BJLO+6HGDf1m6dROqGyTkql58iA4=";
}; };
cargoHash = "sha256-h+pDjS+VtvfiaWMQjpFHBBJ/8bZ0SRgayRmx4vg96Jw="; cargoHash = "sha256-Y89TkqjTmaYnFsQmg48FSPMFoUL7Wbgb2xh60boILdQ=";
# The software assumes it is installed either in flatpak or in the home directory # The software assumes it is installed either in flatpak or in the home directory
# so the xdg data path needs to be patched here # so the xdg data path needs to be patched here

View File

@ -0,0 +1,40 @@
{ lib
, stdenv
, fetchFromGitHub
, libcap
}:
stdenv.mkDerivation rec {
pname = "cpu-energy-meter";
version = "1.2";
src = fetchFromGitHub {
owner = "sosy-lab";
repo = "cpu-energy-meter";
rev = version;
hash = "sha256-QW65Z8mRYLHcyLeOtNAHjwPNWAUP214wqIYclK+whFw=";
};
postPatch = ''
substituteInPlace Makefile \
--replace "DESTDIR :=" "DESTDIR := $out" \
--replace "PREFIX := /usr/local" "PREFIX :="
'';
buildInputs = [ libcap ];
env.NIX_CFLAGS_COMPILE = "-fcommon";
postInstall = ''
install -Dm444 -t $out/etc/udev/rules.d $src/debian/additional_files/59-msr.rules
'';
meta = with lib; {
description = "A tool for measuring energy consumption of Intel CPUs";
homepage = "https://github.com/sosy-lab/cpu-energy-meter";
changelog = "https://github.com/sosy-lab/cpu-energy-meter/blob/main/CHANGELOG.md";
maintainers = with maintainers; [ lorenzleutgeb ];
license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
mainProgram = "cpu-energy-meter";
};
}

View File

@ -1,100 +1,47 @@
{ lib {
, stdenv lib,
, fetchFromGitHub stdenv,
, fetchpatch fetchFromGitHub,
, SDL2 SDL2,
, SDL2_image SDL2_image,
, SDL2_net SDL2_net,
, alsa-lib alsa-lib,
, copyDesktopItems darwin,
, darwin fluidsynth,
, fluidsynth glib,
, glib gtest,
, gtest iir1,
, iir1 libGL,
, libGL libGLU,
, libGLU libjack2,
, libjack2 libmt32emu,
, libmt32emu libogg,
, libogg libpng,
, libpng zlib-ng,
, libpulseaudio libpulseaudio,
, libslirp libslirp,
, libsndfile libsndfile,
, makeDesktopItem makeWrapper,
, makeWrapper meson,
, meson ninja,
, ninja opusfile,
, opusfile pkg-config,
, pkg-config speexdsp,
, speexdsp nix-update-script,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "dosbox-staging"; pname = "dosbox-staging";
version = "0.80.1"; version = "0.81.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dosbox-staging"; owner = "dosbox-staging";
repo = "dosbox-staging"; repo = "dosbox-staging";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc="; hash = "sha256-XGssEyX+AVv7/ixgGTRtPFjsUSX0FT0fhP+TXsFl2fY=";
}; };
patches = [
# Pull missind SDL2_net dependency:
# https://github.com/dosbox-staging/dosbox-staging/pull/2358
(fetchpatch {
name = "sdl2-net.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/1b02f187a39263f4b0285323dcfe184bccd749c2.patch";
hash = "sha256-Ev97xApInu6r5wvI9Q7FhkSXqtMW/rwJj48fExvqnT0=";
})
# Pull missing SDL2_image dependency:
# https://github.com/dosbox-staging/dosbox-staging/pull/2239
(fetchpatch {
name = "sdl2-image.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/ca8b7a906d29a3f8ce956c4af7dc829a6ac3e229.patch";
hash = "sha256-WtTVSWWSlfXrdPVsnlDe4P5K/Fnj4QsOzx3Wo/Kusmg=";
includes = [ "src/gui/meson.build" ];
})
]
# Pagesize detection via syscall; remove when next stable version arrives
++ [
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Fix ppc64le backend and 64K page size support (#2828)
name = "meson-add-ppc64.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/765bcc2b1d87050a4ea366bf22e1db075ad5660b.patch";
hash = "sha256-RtkidyF7w6RrPmCKK4Bd+3FtAn/+/38xk2cl32+yzxw=";
includes = [ "meson.build" ];
})
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Account for debian powerpc prefix (instead of ppc)
name = "meson-powerpc64le.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/d44aa7441cd871ffac08974f22af7a735a839288.patch";
hash = "sha256-oMZtfmB1CRlDWyXwEWc3XzC+XxKazXDgo+jUiNBoJDw=";
includes = [ "meson.build" ];
})
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Restore the PowerPC dynrec core to working order
name = "meson-option-write-or-execute.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/ef86642de390839afc77b2b591a6ea9ac43909b3.patch";
hash = "sha256-htOKEaXRRy28XNMX/t6uFTBLCkTr7YPtfmI9UyIBiz4=";
includes = [ "meson_options.txt" ];
})
(fetchpatch {
# Use a system call to detect the page size
name = "meson-detect-pagesize-by-syscall.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/7e20f6e401956a7a308f1b3462294d7ac9fa5db8.patch";
hash = "sha256-QW9lpHWCYSlQFgTqX/UxHAAWisz4wfPrdjLqROn/wR0=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
copyDesktopItems
gtest gtest
makeWrapper makeWrapper
meson meson
@ -102,43 +49,40 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config pkg-config
]; ];
buildInputs = [ buildInputs =
fluidsynth [
glib fluidsynth
iir1 glib
libGL iir1
libGLU libGL
libjack2 libGLU
libmt32emu libjack2
libogg libmt32emu
libpng libogg
libpulseaudio libpng
libslirp zlib-ng
libsndfile libpulseaudio
opusfile libslirp
SDL2 libsndfile
SDL2_image opusfile
SDL2_net SDL2
speexdsp SDL2_image
] ++ lib.optionals stdenv.isLinux [ SDL2_net
alsa-lib speexdsp
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ]
AudioUnit ++ lib.optionals stdenv.isLinux [ alsa-lib ]
Carbon ++ lib.optionals stdenv.isDarwin (
Cocoa with darwin.apple_sdk.frameworks;
]); [
AudioUnit
Carbon
Cocoa
]
);
desktopItems = [ postInstall = ''
(makeDesktopItem { install -Dm644 $src/contrib/linux/dosbox-staging.desktop $out/share/applications/
name = "dosbox-staging"; '';
exec = "dosbox-staging";
icon = "dosbox-staging";
comment = "x86 dos emulator enhanced";
desktopName = "DosBox-Staging";
genericName = "DOS emulator";
categories = [ "Emulator" "Game" ];
})
];
postFixup = '' postFixup = ''
# Rename binary, add a wrapper, and copy manual to avoid conflict with # Rename binary, add a wrapper, and copy manual to avoid conflict with
@ -154,6 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
popd popd
''; '';
passthru.updateScript = nix-update-script { };
meta = { meta = {
homepage = "https://dosbox-staging.github.io/"; homepage = "https://dosbox-staging.github.io/";
description = "A modernized DOS emulator"; description = "A modernized DOS emulator";
@ -164,9 +110,11 @@ stdenv.mkDerivation (finalAttrs: {
practices. practices.
''; '';
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ joshuafern AndersonTorres ]; maintainers = with lib.maintainers; [
joshuafern
AndersonTorres
];
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
priority = 101; priority = 101;
}; };
}) })
# TODO: report upstream about not finding SDL2_net

View File

@ -7,16 +7,16 @@
buildGoModule rec { buildGoModule rec {
pname = "files-cli"; pname = "files-cli";
version = "2.13.41"; version = "2.13.49";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "files-cli"; repo = "files-cli";
owner = "files-com"; owner = "files-com";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-WW6E0K3HOi8gtBwcmN9syV4wM73BPGyXbv3t4ZJjoIc="; hash = "sha256-QQ2UzWGodQASHJVfnTIp/BUNkAPAV0q8UpTk7qBYgc0=";
}; };
vendorHash = "sha256-LdebAbdbiUX0xw1EJKCzK1jdt5+FgoZQBPI0apZkcsc="; vendorHash = "sha256-L6UnKbqS6aO8+XSPt5KaKGYr30y9RE+l4U3hapPHHvA=";
ldflags = [ ldflags = [
"-s" "-s"

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "gitui"; pname = "gitui";
version = "0.26.1"; version = "0.26.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "extrawurst"; owner = "extrawurst";
repo = "gitui"; repo = "gitui";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-JqxZbxjZrrdsXWhpYu0E9F18gMldtOLrAYd+uiY8IcQ="; hash = "sha256-eXkbvBdymwOUPLimv2zaJr9zqc+5LGK3hghZ2aUVWA0=";
}; };
cargoHash = "sha256-zEoNyIiHQT6HBNSe+H7pz229K4eD0WMhp3I/6zJQHuU="; cargoHash = "sha256-Cb3/4l7fECVfmvPIw3n1QT8CoC+Kuohtfk+huKv9Yrg=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
# The cargo config overrides linkers for some targets, breaking the build # The cargo config overrides linkers for some targets, breaking the build
# on e.g. `aarch64-linux`. These overrides are not required in the Nix # on e.g. `aarch64-linux`. These overrides are not required in the Nix
# environment: delete them. # environment: delete them.
rm .cargo/config rm .cargo/config.toml
# build script tries to get version information from git # build script tries to get version information from git
rm build.rs rm build.rs

View File

@ -0,0 +1,42 @@
{ lib, stdenv, fetchurl, unzip, makeWrapper
, coreutils, gawk, which, gnugrep, findutils
, jre
}:
stdenv.mkDerivation rec {
pname = "openjump";
version = "2.2.1";
revision = "r5222%5B94156e5%5D";
src = fetchurl {
url = "mirror://sourceforge/jump-pilot/OpenJUMP/${version}/OpenJUMP-Portable-${version}-${revision}-PLUS.zip";
hash = "sha256-+/AMmD6NDPy+2Gq1Ji5i/QWGU7FOsU+kKsWoNXcx/VI=";
};
# TODO: build from source
unpackPhase = ''
mkdir -p $out/opt
unzip $src -d $out/opt
'';
nativeBuildInputs = [ makeWrapper unzip ];
installPhase = ''
dir=$(echo $out/opt/OpenJUMP-*)
chmod +x "$dir/bin/oj_linux.sh"
makeWrapper "$dir/bin/oj_linux.sh" $out/bin/OpenJump \
--set JAVA_HOME ${jre} \
--set PATH ${lib.makeBinPath [ coreutils gawk which gnugrep findutils ]}
'';
meta = {
description = "Open source Geographic Information System (GIS) written in the Java programming language";
homepage = "http://www.openjump.org/";
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
license = lib.licenses.gpl2;
maintainers = lib.teams.geospatial.members ++ [ lib.maintainers.marcweber ];
platforms = jre.meta.platforms;
mainProgram = "OpenJump";
};
}

View File

@ -3,6 +3,7 @@
lib, lib,
fetchurl, fetchurl,
testers, testers,
installShellFiles,
platformsh platformsh
}: }:
@ -10,6 +11,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
pname = "platformsh"; pname = "platformsh";
version = "5.0.13"; version = "5.0.13";
nativeBuildInputs = [ installShellFiles ];
src = src =
{ {
x86_64-darwin = fetchurl { x86_64-darwin = fetchurl {
@ -39,7 +42,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dm755 platformsh $out/bin/platformsh install -Dm755 platform $out/bin/platform
installShellCompletion completion/bash/platform.bash \
completion/zsh/_platform
runHook postInstall runHook postInstall
''; '';

View File

@ -0,0 +1,28 @@
{ lib
, intel-cmt-cat
, fetchFromGitLab
, python3
}:
python3.pkgs.buildPythonApplication rec {
pname = "pqos-wrapper";
version = "unstable-2022-01-31";
src = fetchFromGitLab {
group = "sosy-lab";
owner = "software";
repo = pname;
rev = "ce816497a07dcb4b931652b98359e4601a292b15";
hash = "sha256-SaYr6lVucpJjVtGgxRbDGYbOoBwdfEDVKtvD+M1L0o4=";
};
makeWrapperArgs = [ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ intel-cmt-cat ]}" ];
meta = with lib; {
description = "Wrapper for Intel PQoS for the purpose of using it in BenchExec";
homepage = "https://gitlab.com/sosy-lab/software/pqos-wrapper";
maintainers = with maintainers; [ lorenzleutgeb ];
license = licenses.asl20;
platforms = [ "x86_64-linux" ];
mainProgram = "pqos_wrapper";
};
}

View File

@ -0,0 +1,70 @@
{
lib,
buildGoModule,
fetchFromGitHub,
callPackage,
}:
buildGoModule rec {
pname = "ratchet";
version = "0.9.2";
# ratchet uses the git sha-1 in the version string, e.g.
#
# $ ./ratchet --version
# ratchet 0.9.2 (d57cc1a53c022d3f87c4820bc6b64384a06c8a07, darwin/arm64)
#
# so we need to either hard-code the sha-1 corresponding to the version tag
# head or retain the git metadata folder and extract it using the git cli.
# We currently hard-code it.
src = fetchFromGitHub {
owner = "sethvargo";
repo = "ratchet";
rev = "d57cc1a53c022d3f87c4820bc6b64384a06c8a07";
hash = "sha256-gQ98uD9oPUsECsduv/lqGdYNmtHetU49ETfWCE8ft8U=";
};
proxyVendor = true;
vendorHash = "sha256-J7LijbhpKDIfTcQMgk2x5FVaYG7Kgkba/1aSTmgs5yw=";
subPackages = [ "." ];
ldflags =
let
package_url = "github.com/sethvargo/ratchet";
in
[
"-s"
"-w"
"-X ${package_url}/internal/version.name=${pname}"
"-X ${package_url}/internal/version.version=${version}"
"-X ${package_url}/internal/version.commit=${src.rev}"
];
doInstallCheck = true;
installCheckPhase = ''
$out/bin/ratchet --version 2>&1 | grep ${version};
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 "$GOPATH/bin/ratchet" -T $out/bin/ratchet
runHook postInstall
'';
passthru.tests = {
execution = callPackage ./tests.nix { };
};
meta = with lib; {
description = "A tool for securing CI/CD workflows with version pinning.";
mainProgram = "ratchet";
downloadPage = "https://github.com/sethvargo/ratchet";
homepage = "https://github.com/sethvargo/ratchet";
license = licenses.asl20;
maintainers = with maintainers; [
cameronraysmith
ryanccn
];
};
}

View File

@ -0,0 +1,17 @@
{
lib,
runCommand,
ratchet,
}: let
inherit (ratchet) pname version;
in
runCommand "${pname}-tests" {meta.timeout = 60;}
''
set -euo pipefail
# Ensure ratchet is executable
${ratchet}/bin/ratchet --version
${ratchet}/bin/ratchet --help
touch $out
''

View File

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "tgpt"; pname = "tgpt";
version = "2.7.3"; version = "2.7.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aandrew-me"; owner = "aandrew-me";
repo = "tgpt"; repo = "tgpt";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-tInbOCrGXZkyGrkXSppK7Qugh0E2CdjmybMeH49Wc5s="; hash = "sha256-Nk+iLsTXnw6RAc1VztW8ZqeUVsywFjMCOBY2yuWbUXQ=";
}; };
vendorHash = "sha256-docq/r6yyMPsuUyFbtCMaYfEVL0gLmyTy4PbrAemR00="; vendorHash = "sha256-docq/r6yyMPsuUyFbtCMaYfEVL0gLmyTy4PbrAemR00=";

View File

@ -1,19 +1,36 @@
{ fetchFromGitHub, lib, stdenv, ffmpeg-headless, cmake, libpng, pkg-config, libjpeg {
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
ffmpeg-headless,
libpng,
libjpeg,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ffmpegthumbnailer"; pname = "ffmpegthumbnailer";
version = "unstable-2022-02-18"; version = "unstable-2024-01-04";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dirkvdb"; owner = "dirkvdb";
repo = "ffmpegthumbnailer"; repo = "ffmpegthumbnailer";
rev = "3db9fe895b2fa656bb40ddb7a62e27604a688171"; rev = "1b5a77983240bcf00a4ef7702c07bcd8f4e5f97c";
sha256 = "0606pbg391l4s8mpyyalm9zrcnm75fwqdlrxy2gif9n21i2fm3rc"; hash = "sha256-7SPRQMPgdvP7J3HCf7F1eXxZjUH5vCYZ9UOwTUFMLp0=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [
buildInputs = [ ffmpeg-headless libpng libjpeg ]; cmake
pkg-config
];
buildInputs = [
ffmpeg-headless
libpng
libjpeg
];
cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ]; cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ];
# https://github.com/dirkvdb/ffmpegthumbnailer/issues/215 # https://github.com/dirkvdb/ffmpegthumbnailer/issues/215
@ -22,21 +39,20 @@ stdenv.mkDerivation rec {
--replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
description = "A lightweight video thumbnailer"; description = "A lightweight video thumbnailer";
mainProgram = "ffmpegthumbnailer";
longDescription = "FFmpegthumbnailer is a lightweight video longDescription = "FFmpegthumbnailer is a lightweight video
thumbnailer that can be used by file managers to create thumbnails thumbnailer that can be used by file managers to create thumbnails
for your video files. The thumbnailer uses ffmpeg o decode frames for your video files. The thumbnailer uses ffmpeg to decode frames
from the video files, so supported videoformats depend on the from the video files, so supported videoformats depend on the
configuration flags of ffmpeg. configuration flags of ffmpeg.
This thumbnailer was designed to be as fast and lightweight as possible. This thumbnailer was designed to be as fast and lightweight as possible.
The only dependencies are ffmpeg and libpng. The only dependencies are ffmpeg and libpng/libjpeg.
"; ";
platforms = platforms.unix; homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = [ maintainers.jagajaga ]; maintainers = [ maintainers.jagajaga ];
platforms = platforms.unix;
mainProgram = "ffmpegthumbnailer";
}; };
} }

View File

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycaption"; pname = "pycaption";
version = "2.2.6"; version = "2.2.7";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "pbs"; owner = "pbs";
repo = "pycaption"; repo = "pycaption";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-XN83L6WsRyl9G0ia4uz3SCVcwwUNUyfNMB64RfZh+PA="; hash = "sha256-0rh8w4zQN5qAIPwnm7FO6VyPxMdutYFflpY+xWdEm3M=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -21,7 +21,18 @@ buildPythonPackage rec {
setuptools setuptools
]; ];
pythonImportsCheck = [ "png" ]; patches = [
# pngsuite is imported by code/test_png.py but is not defined in
# setup.cfg, so it isn't built - this adds it to py_modules
./setup-cfg-pngsuite.patch
];
# allow tests to use the binaries produced by this package
preCheck = ''
export PATH="$out/bin:$PATH"
'';
pythonImportsCheck = [ "png" "pngsuite" ];
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [ pytestCheckHook ];

View File

@ -0,0 +1,12 @@
diff --git a/setup.cfg b/setup.cfg
index 04bba8a..db159d2 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -28,6 +28,7 @@ package_dir =
= code
py_modules =
png
+ pngsuite
scripts =
code/prichunkpng
code/pricolpng

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
let let
pname = "surrealdb-migrations"; pname = "surrealdb-migrations";
version = "1.1.0"; version = "1.5.0";
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
inherit pname version; inherit pname version;
@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
owner = "Odonno"; owner = "Odonno";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-UnRf9HdEcKH0cOWKJIjgjNBlSVjXyk27bwB+4ftzAcs="; hash = "sha256-x5WyaVHLVFCHWPqyEuaVSbeIaGXDB0o7h776udcC4DM=";
}; };
cargoLock = { cargoLock = {

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-binstall"; pname = "cargo-binstall";
version = "1.6.6"; version = "1.6.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cargo-bins"; owner = "cargo-bins";
repo = "cargo-binstall"; repo = "cargo-binstall";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-o31/cEkQyn89URqmJpOZHG6YII8VOle1X3vwdgJF334="; hash = "sha256-BMWcLEoqX8uHXazitOuzon5Sef3xMQ0b6Lk0IiVGFP8=";
}; };
cargoHash = "sha256-kZZ2S3XDdCREuit3RIByLXn/tEiqY+Oap242ZXx6y6s="; cargoHash = "sha256-nAp2wySQ8u9lgixE9M6ri/Mk4BUBBe3CLHnqUv+mdxk=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -71,18 +71,18 @@ let
# To compute the commit when upgrading this derivation, do: # To compute the commit when upgrading this derivation, do:
# `$ git rev-parse <git-rev>` where <git-rev> is the git revision of the `src` # `$ git rev-parse <git-rev>` where <git-rev> is the git revision of the `src`
# Example: `$ git rev-parse v4.16.1` # Example: `$ git rev-parse v4.16.1`
commit = "9a28bc29dbddb6886dfe03dc1c31320249a901ce"; commit = "effc6e95b4ad1c5ac5f9083ec06663ba4a2e005c";
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "code-server"; pname = "code-server";
version = "4.23.1"; version = "4.89.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "coder"; owner = "coder";
repo = "code-server"; repo = "code-server";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-nOfdEbnnNLfePhqGSXD/2A0DxqoJCo8U18VFYnNvFMU="; hash = "sha256-exFt7dgy076MJJKDzTRRlTVjucfIXVaXKgurYfJ1Uvo=";
}; };
yarnCache = stdenv.mkDerivation { yarnCache = stdenv.mkDerivation {
@ -114,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
outputHashMode = "recursive"; outputHashMode = "recursive";
outputHashAlgo = "sha256"; outputHashAlgo = "sha256";
outputHash = "sha256-MxUQ9Gw7MabLKPs5j8+Q4v7IULr68Pd/OIBWpfZ+rVU="; outputHash = "sha256-BYz7ym+tsdbExUNOL3GV0wSMYuy4Q0GadZterH0ZGM0=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -18,11 +18,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ugs"; pname = "ugs";
version = "2.1.6"; version = "2.1.7";
src = fetchzip { src = fetchzip {
url = "https://github.com/winder/Universal-G-Code-Sender/releases/download/v${version}/UniversalGcodeSender.zip"; url = "https://github.com/winder/Universal-G-Code-Sender/releases/download/v${version}/UniversalGcodeSender.zip";
hash = "sha256-6L/4s/QmlTnYnhwLgPf7z8UVkBUYXi3Wb3doa5JCViE="; hash = "sha256-HxaFGa7UG7dWtVKTLDRbhY7UCWeA6E50txz45bjb5uE=";
}; };
dontUnpack = true; dontUnpack = true;

View File

@ -27817,7 +27817,9 @@ with pkgs;
sdparm = callPackage ../os-specific/linux/sdparm { }; sdparm = callPackage ../os-specific/linux/sdparm { };
sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel { }; sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel {
stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
};
setools = callPackage ../os-specific/linux/setools { }; setools = callPackage ../os-specific/linux/setools { };
@ -33463,8 +33465,6 @@ with pkgs;
openexr = openexr_3; openexr = openexr_3;
}; };
openjump = callPackage ../applications/misc/openjump { };
open-music-kontrollers = lib.recurseIntoAttrs { open-music-kontrollers = lib.recurseIntoAttrs {
eteroj = callPackage ../applications/audio/open-music-kontrollers/eteroj.nix { }; eteroj = callPackage ../applications/audio/open-music-kontrollers/eteroj.nix { };
jit = callPackage ../applications/audio/open-music-kontrollers/jit.nix { }; jit = callPackage ../applications/audio/open-music-kontrollers/jit.nix { };