Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2026-02-16 18:12:30 +00:00 committed by GitHub
commit ae20412acf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
93 changed files with 930 additions and 371 deletions

View file

@ -49,7 +49,7 @@ jobs:
- name: Create backport PRs
id: backport
uses: korthout/backport-action@c656f5d5851037b2b38fb5db2691a03fa229e3b2 # v4.0.1
uses: korthout/backport-action@01619ebc9a6e3f6820274221b9956b3e7365000a # v4.1.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: 'severity:\ssecurity'

View file

@ -62,7 +62,7 @@ jobs:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
target-as-trusted-at: ${{ inputs.targetSha }}
- uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
- uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
with:
# Sandbox is disabled on MacOS by default.
extra_nix_config: sandbox = true

View file

@ -85,7 +85,7 @@ jobs:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
target-as-trusted-at: ${{ inputs.targetSha }}
- uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
- uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
continue-on-error: true

View file

@ -132,7 +132,7 @@ jobs:
core.info(`Found pinned.json commit: ${ciPinBumpCommit}`)
- name: Install Nix
uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- name: Load supported versions
id: versions
@ -180,7 +180,7 @@ jobs:
target-as-trusted-at: ${{ inputs.targetSha }}
- name: Install Nix
uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
continue-on-error: true
@ -270,7 +270,7 @@ jobs:
merge-multiple: true
- name: Install Nix
uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- name: Combine all output paths and eval stats
run: |
@ -451,7 +451,7 @@ jobs:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
- name: Install Nix
uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- name: Ensure flake outputs on all systems still evaluate
run: nix flake check --all-systems --no-build './nixpkgs/untrusted?shallow=1'

View file

@ -35,7 +35,7 @@ jobs:
with:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
- uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
- uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
# TODO: Figure out how to best enable caching for the treefmt job. Cachix won't work well,
# because the cache would be invalidated on every commit - treefmt checks every file.
@ -70,7 +70,7 @@ jobs:
with:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
- uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
- uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
continue-on-error: true
@ -100,7 +100,7 @@ jobs:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
target-as-trusted-at: ${{ inputs.targetSha }}
- uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31
- uses: cachix/install-nix-action@2126ae7fc54c9df00dd18f7f18754393182c73cd # v31.9.1
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
continue-on-error: true

View file

@ -54,7 +54,7 @@ stdenvNoCC.mkDerivation (
};
in
{
inherit (lib.trivial) version;
version = lib.trivial.release;
pname = "nixpkgs-manual";
nativeBuildInputs = [ nixos-render-docs ];

View file

@ -17088,7 +17088,7 @@
githubId = 22659757;
};
metalmatze = {
email = "matthias.loibl@polarsignals.com";
email = "mail@matthiasloibl.com";
name = "Matthias Loibl";
github = "metalmatze";
githubId = 872251;
@ -19529,6 +19529,12 @@
github = "nullishamy";
githubId = 99221043;
};
numbleroot = {
email = "hello@lennartoldenburg.de";
name = "Lennart Oldenburg";
github = "numbleroot";
githubId = 1864826;
};
numinit = {
email = "me+nixpkgs@numin.it";
name = "Morgan Jones";
@ -24636,6 +24642,13 @@
github = "Silver-Golden";
githubId = 7858375;
};
silverhadch = {
email = "hadichokr@icloud.com";
matrix = "@silverhadch07:matrix.org";
name = "Hadi Chokr";
github = "silverhadch";
githubId = 158838697;
};
simarra = {
name = "simarra";
email = "loic.martel@protonmail.com";

View file

@ -42,6 +42,8 @@
- [Dunst](https://github.com/dunst-project/dunst), a lightweight and customizable notification daemon. Available as [services.dunst](#opt-services.dunst.enable).
- [cocoon](https://github.com/haileyok/cocoon), is a PDS (personal data server) that is a alternative to the bluesky pds. Available as [services.cocoon](#opt-services.cocoon.enable).
- [Ente Auth](https://ente.io/auth/), an open source 2FA authenticator, with end-to-end encrypted backups. Available as [programs.ente-auth](#opt-programs.ente-auth.enable).
- [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable).

View file

@ -1598,6 +1598,7 @@
./services/web-apps/changedetection-io.nix
./services/web-apps/chhoto-url.nix
./services/web-apps/cloudlog.nix
./services/web-apps/cocoon.nix
./services/web-apps/code-server.nix
./services/web-apps/coder.nix
./services/web-apps/collabora-online.nix

View file

@ -24,7 +24,7 @@ let
else if (cfg.passwordFile != null) then
"password=@password_placeholder@"
else if (cfg.secretsFile != null) then
"password=@secrets_placeholder@"
"@secrets_placeholder@"
else
""
}

View file

@ -0,0 +1,210 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.services.cocoon;
inherit (lib)
getExe
mkEnableOption
mkIf
mkOption
mkPackageOption
types
optional
;
in
{
options.services.cocoon = {
enable = mkEnableOption "cocoon";
package = mkPackageOption pkgs "cocoon" { };
settings = mkOption {
type = types.submodule {
freeformType = types.attrsOf (types.nullOr (types.either types.str types.path));
options = {
COCOON_ADDR = mkOption {
type = types.str;
default = ":8080";
example = ":3000";
description = "Address to bind the Cocoon instance to";
};
COCOON_DID = mkOption {
type = types.nullOr types.str;
example = "did:web:cocoon.example.com";
description = "DID web address for the Cocoon instance";
};
COCOON_HOSTNAME = mkOption {
type = types.nullOr types.str;
example = "cocoon.example.com";
description = "Hostname for the Cocoon instance";
};
COCOON_ROTATION_KEY_PATH = mkOption {
type = types.either types.path types.str;
default = "/var/lib/cocoon/rotation.key";
description = ''
Path to the rotation key file.
Generate it with:
```
cocoon create-rotation-key --out /var/lib/cocoon/rotation.key
```
'';
};
COCOON_JWK_PATH = mkOption {
type = types.either types.path types.str;
default = "/var/lib/cocoon/jwk.key";
description = ''
Path to the JWK key file
Generate it with:
```
cocoon create-private-jwk --out /var/lib/cocoon/jwk.key
```
'';
};
COCOON_CONTACT_EMAIL = mkOption {
type = types.str;
example = "me@example.com";
description = "Contact email for the Cocoon instance";
};
COCOON_RELAYS = mkOption {
type = types.str;
default = "https://bsky.network";
description = "Comma-separated list of Nostr relays to connect to";
};
COCOON_SESSION_COOKIE_KEY = mkOption {
type = types.str;
default = "session";
description = "Name of the session cookie";
};
COCOON_DB_TYPE = mkOption {
type = types.str;
default = "sqlite";
description = "Type of database to use (sqlite or postgres)";
};
COCOON_DB_NAME = mkOption {
type = types.str;
default = "/var/lib/cocoon/cocoon.db";
description = "Name of the SQLite database file (if using sqlite)";
};
COCOON_DATABASE_URL = mkOption {
type = types.nullOr types.str;
default = null;
example = "postgres://cocoon:password@localhost:5432/cocoon?sslmode=disable";
description = "Database connection URL";
};
};
};
description = ''
Environment variables to set for the service. Secrets should be
specified using {option}`environmentFile`.
Refer to <https://github.com/haileyok/cocoon/blob/main/.env.example>
and <https://github.com/haileyok/cocoon/blob/main/README.md> for
available environment variables.
'';
};
environmentFiles = mkOption {
type = types.listOf types.path;
default = [ ];
description = ''
File to load environment variables from. Loaded variables override
values set in {option}`environment`.
Use it to set values of `COCOON_ADMIN_PASSWORD` and `COCOON_SESSION_SECRE`.
Generate `COCOON_ADMIN_PASSWORD` with
```
openssl rand -hex 16
```
Generate `COCOON_SESSION_SECRET` with
```
openssl rand -hex 32
```
'';
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.services.cocoon = {
description = "cocoon";
after = [
"network-online.target"
]
++ optional (cfg.settings.COCOON_DB_TYPE == "postgres") "postgresql.service";
wants = [
"network-online.target"
]
++ optional (cfg.settings.COCOON_DB_TYPE == "postgres") "postgresql.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${getExe cfg.package} run";
Environment = lib.mapAttrsToList (k: v: "${k}=${if builtins.isInt v then toString v else v}") (
lib.filterAttrs (_: v: v != null) cfg.settings
);
EnvironmentFile = cfg.environmentFiles;
StateDirectory = "cocoon";
StateDirectoryMode = "0755";
Restart = "always";
# Hardening
RemoveIPC = true;
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
NoNewPrivileges = true;
PrivateDevices = true;
ProtectClock = true;
ProtectKernelLogs = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
PrivateMounts = true;
SystemCallArchitectures = [ "native" ];
MemoryDenyWriteExecute = true;
RestrictNamespaces = true;
RestrictSUIDSGID = true;
ProtectHostname = true;
LockPersonality = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
RestrictRealtime = true;
DeviceAllow = [ "" ];
ProtectSystem = "strict";
ProtectProc = "invisible";
ProcSubset = "pid";
ProtectHome = true;
PrivateUsers = true;
PrivateTmp = true;
UMask = "0077";
};
};
};
meta.maintainers = with lib.maintainers; [ isabelroses ];
}

View file

@ -382,6 +382,7 @@ in
};
cockpit = runTest ./cockpit.nix;
cockroachdb = runTestOn [ "x86_64-linux" ] ./cockroachdb.nix;
cocoon = runTest ./cocoon.nix;
code-server = runTest ./code-server.nix;
coder = runTest ./coder.nix;
collectd = runTest ./collectd.nix;

37
nixos/tests/cocoon.nix Normal file
View file

@ -0,0 +1,37 @@
{ lib, ... }:
{
name = "cocoon";
nodes.machine =
{ pkgs, ... }:
{
services.cocoon = {
enable = true;
settings = {
COCOON_DID = "did:web:cocoon.example.com";
COCOON_HOSTNAME = "cocoon.example.com";
COCOON_CONTACT_EMAIL = "test@example.com";
# Snake oil testing credentials
COCOON_ADMIN_PASSWORD = "84f54c1229e02b662214e2af2df97cb6";
COCOON_SESSION_SECRET = "8ed099b41bb67939bf4e796fd4bd618add775a9265bcb32c63d00341a0f71b6c";
COCOON_ROTATION_KEY_PATH =
pkgs.runCommand "rotation-key" { nativeBuildInputs = [ pkgs.cocoon ]; }
''
cocoon create-rotation-key --out $out
'';
COCOON_JWK_PATH = pkgs.runCommand "jwk-key" { nativeBuildInputs = [ pkgs.cocoon ]; } ''
cocoon create-private-jwk --out $out
'';
};
};
};
testScript = ''
machine.wait_for_unit("cocoon.service")
machine.wait_for_open_port(8080)
machine.succeed("curl --fail http://localhost:8080")
'';
meta.maintainers = [ lib.maintainers.isabelroses ];
}

View file

@ -82,25 +82,25 @@ stdenv.mkDerivation {
postInstall =
lib.strings.optionalString withOpenASAR ''
cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
cp -f ${openasar} "$out/Applications/${desktopName}.app/Contents/Resources/app.asar"
''
+ lib.strings.optionalString withVencord ''
mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar
mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar
echo '{"name":"discord","main":"index.js"}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json
echo 'require("${vencord}/patcher.js")' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js
mv "$out/Applications/${desktopName}.app/Contents/Resources/app.asar" "$out/Applications/${desktopName}.app/Contents/Resources/_app.asar"
mkdir "$out/Applications/${desktopName}.app/Contents/Resources/app.asar"
echo '{"name":"discord","main":"index.js"}' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json"
echo 'require("${vencord}/patcher.js")' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js"
''
+ lib.strings.optionalString withEquicord ''
mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar
mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar
echo '{"name":"discord","main":"index.js"}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json
echo 'require("${equicord}/desktop/patcher.js")' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js
mv "$out/Applications/${desktopName}.app/Contents/Resources/app.asar" "$out/Applications/${desktopName}.app/Contents/Resources/_app.asar"
mkdir "$out/Applications/${desktopName}.app/Contents/Resources/app.asar"
echo '{"name":"discord","main":"index.js"}' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json"
echo 'require("${equicord}/desktop/patcher.js")' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js"
''
+ lib.strings.optionalString withMoonlight ''
mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar
mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar
echo '{"name":"discord","main":"injector.js","private": true}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json
echo 'require("${moonlight}/injector.js").inject(require("path").join(__dirname, "../_app.asar"));' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/injector.js
mv "$out/Applications/${desktopName}.app/Contents/Resources/app.asar" "$out/Applications/${desktopName}.app/Contents/Resources/_app.asar"
mkdir "$out/Applications/${desktopName}.app/Contents/Resources/app.asar"
echo '{"name":"discord","main":"injector.js","private": true}' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json"
echo 'require("${moonlight}/injector.js").inject(require("path").join(__dirname, "../_app.asar"));' > "$out/Applications/${desktopName}.app/Contents/Resources/app.asar/injector.js"
'';
passthru = {

View file

@ -33,13 +33,13 @@
stdenv.mkDerivation {
pname = "tg_owt";
version = "0-unstable-2025-06-02";
version = "0-unstable-2025-12-12";
src = fetchFromGitHub {
owner = "desktop-app";
repo = "tg_owt";
rev = "62321fd7128ab2650b459d4195781af8185e46b5";
hash = "sha256-l6EdHJLd42TU+4pLakdU3a5PLVxrxjta0CSRy5hVBFU=";
rev = "d888bc3f79b4aa80333d8903410fa439db5f6696";
hash = "sha256-ZiZ0HD4UNPJj1ZtoGroJRQBYeL/nwpp4B9GtXFcCA7M=";
fetchSubmodules = true;
};

View file

@ -42,14 +42,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "telegram-desktop-unwrapped";
version = "6.4.1";
version = "6.5.1";
src = fetchFromGitHub {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-jmUj0kTyok5CsOe/to6bTN3jH/RMF7jE+AnFJi2nW90=";
hash = "sha256-y2sf2wDJ6dYxRdDLKIr78z9tPBIoh2WICg4zJBmb85Q=";
};
nativeBuildInputs = [

View file

@ -13,14 +13,15 @@
hamlib,
libv4l,
fftwFloat,
imagemagick,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
version = "9.5.8";
pname = "qsstv";
src = fetchurl {
url = "https://www.qsl.net/o/on4qz/qsstv/downloads/qsstv_${version}.tar.gz";
url = "https://www.qsl.net/o/on4qz/qsstv/downloads/qsstv_${finalAttrs.version}.tar.gz";
sha256 = "0s3sivc0xan6amibdiwfnknrl3248wzgy98w6gyxikl0qsjpygy0";
};
@ -28,6 +29,7 @@ stdenv.mkDerivation rec {
qmake
pkg-config
wrapQtAppsHook
imagemagick
];
buildInputs = [
@ -43,7 +45,8 @@ stdenv.mkDerivation rec {
postInstall = ''
# Install desktop icon
install -D icons/qsstv.png $out/share/pixmaps/qsstv.png
mkdir -p $out/share/icons/hicolor/32x32/apps
magick icons/qsstv.png -resize 32x32 $out/share/icons/hicolor/32x32/apps/qsstv.png
install -D qsstv.desktop $out/share/applications/qsstv.desktop
'';
@ -55,4 +58,4 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ hax404 ];
};
}
})

View file

@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
# upstream lacks an install method
install -D -t $out/share/applications qtemu.desktop
install -D -t $out/share/pixmaps qtemu.png
install -D -t $out/share/icons/hicolor/32x32/apps qtemu.png
install -D -t $out/bin qtemu
# make sure that the qemu-* executables are found

View file

@ -16,7 +16,7 @@ in
runCommand "dub-to-nix"
{
pname = "dub-to-nix";
version = lib.trivial.version;
version = lib.trivial.release;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 ];
}

View file

@ -31,7 +31,7 @@ in
{
prefetch-yarn-deps = stdenv.mkDerivation {
pname = "prefetch-yarn-deps";
inherit (lib.trivial) version;
version = lib.trivial.release;
dontUnpack = true;
dontBuild = true;
@ -68,7 +68,7 @@ in
fixup-yarn-lock = stdenv.mkDerivation {
pname = "fixup-yarn-lock";
inherit (lib.trivial) version;
version = lib.trivial.release;
dontUnpack = true;
dontBuild = true;
@ -136,8 +136,11 @@ in
prefetch-yarn-deps
cacert
];
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt";
env = {
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt";
};
buildPhase = ''
runHook preBuild

View file

@ -572,69 +572,76 @@ rec {
other derivations. A derivation created with linkFarm is often used in CI
as a easy way to build multiple derivations at once.
*/
symlinkJoin =
args_@{
name ?
assert lib.assertMsg (
args_ ? pname && args_ ? version
) "symlinkJoin requires either a `name` OR `pname` and `version`";
"${args_.pname}-${args_.version}",
paths,
stripPrefix ? "",
preferLocalBuild ? true,
allowSubstitutes ? false,
postBuild ? "",
failOnMissing ? stripPrefix == "",
...
}:
assert lib.assertMsg (stripPrefix != "" -> (hasPrefix "/" stripPrefix && stripPrefix != "/")) ''
stripPrefix must be either an empty string (disable stripping behavior), or relative path prefixed with /.
symlinkJoin = lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation;
Ensure that the path starts with / and specifies path to the subdirectory.
'';
excludeDrvArgNames = [
"postBuild"
"stripPrefix"
"paths"
"failOnMissing"
];
let
mapPaths =
f: paths:
map (
path:
if path == null then
null
else if isList path then
mapPaths f path
else
f path
) paths;
args =
removeAttrs args_ [
"name"
"postBuild"
"stripPrefix"
"paths"
"failOnMissing"
]
// {
# Allow getting the proper position of the output derivation.
# Since one of these are required, it should be fairly accurate.
pos =
if args_ ? pname then
builtins.unsafeGetAttrPos "pname" args_
extendDrvArgs =
finalAttrs:
args@{
name ?
assert lib.assertMsg (
finalAttrs ? pname && finalAttrs ? version
) "symlinkJoin requires either a `name` OR `pname` and `version`";
"${finalAttrs.pname}-${finalAttrs.version}",
paths,
stripPrefix ? "",
preferLocalBuild ? true,
allowSubstitutes ? false,
postBuild ? "",
failOnMissing ? stripPrefix == "",
...
}:
assert lib.assertMsg (stripPrefix != "" -> (hasPrefix "/" stripPrefix && stripPrefix != "/")) ''
stripPrefix must be either an empty string (disable stripping behavior), or relative path prefixed with /.
Ensure that the path starts with / and specifies path to the subdirectory.
'';
let
mapPaths =
f:
map (
path:
if path == null then
null
else if isList path then
mapPaths f path
else
builtins.unsafeGetAttrPos "name" args_;
inherit preferLocalBuild allowSubstitutes;
paths = mapPaths (path: "${path}${stripPrefix}") paths;
passAsFile = [ "paths" ];
}; # pass the defaults
in
runCommand name args ''
mkdir -p $out
for i in $(cat $pathsPath); do
${optionalString (!failOnMissing) "if test -d $i; then "}${lndir}/bin/lndir -silent $i $out${
optionalString (!failOnMissing) "; fi"
}
done
${postBuild}
'';
f path
);
in
{
enableParallelBuilding = true;
inherit name allowSubstitutes preferLocalBuild;
passAsFile = [
"buildCommand"
"paths"
];
paths = mapPaths (path: "${path}${stripPrefix}") paths;
buildCommand = ''
mkdir -p $out
for i in $(cat $pathsPath); do
${optionalString (!failOnMissing) "if test -d $i; then "}${lndir}/bin/lndir -silent $i $out${
optionalString (!failOnMissing) "; fi"
}
done
${postBuild}
'';
}
// lib.optionalAttrs (!args ? meta) {
pos =
if args ? pname then
builtins.unsafeGetAttrPos "pname" args
else
builtins.unsafeGetAttrPos "name" args;
};
};
# TODO: move linkFarm docs to the Nixpkgs manual
/*
@ -1021,76 +1028,69 @@ rec {
];
}
*/
applyPatches =
{
src,
name ?
(
if builtins.typeOf src == "path" then
baseNameOf src
else if builtins.isAttrs src && builtins.hasAttr "name" src then
src.name
else
throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute."
)
+ "-patched",
patches ? [ ],
prePatch ? "",
postPatch ? "",
...
}@args:
assert lib.assertMsg (
!args ? meta
) "applyPatches will not merge 'meta', change it in 'src' instead";
assert lib.assertMsg (
!args ? passthru
) "applyPatches will not merge 'passthru', change it in 'src' instead";
if patches == [ ] && prePatch == "" && postPatch == "" then
src # nothing to do, so use original src to avoid additional drv
else
applyPatches = lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation;
extendDrvArgs =
finalAttrs:
{
src,
...
}@args:
assert lib.assertMsg (
!args ? meta
) "applyPatches will not merge 'meta', change it in 'src' instead";
assert lib.assertMsg (
!args ? passthru
) "applyPatches will not merge 'passthru', change it in 'src' instead";
let
keepAttrs = names: lib.filterAttrs (name: val: lib.elem name names);
# enables tools like nix-update to determine what src attributes to replace
extraPassthru = lib.optionalAttrs (lib.isAttrs src) (
extraPassthru = lib.optionalAttrs (lib.isAttrs finalAttrs.src) (
keepAttrs [
"rev"
"tag"
"url"
"outputHash"
"outputHashAlgo"
] src
] finalAttrs.src
);
in
stdenvNoCC.mkDerivation (
{
inherit
name
src
patches
prePatch
postPatch
;
preferLocalBuild = true;
allowSubstitutes = false;
phases = "unpackPhase patchPhase installPhase";
installPhase = "cp -R ./ $out";
}
{
name =
args.name or (
if builtins.isPath finalAttrs.src then
baseNameOf finalAttrs.src + "-patched"
else if builtins.isAttrs finalAttrs.src && (finalAttrs.src ? name) then
finalAttrs.src.name + "-patched"
else
throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute."
);
# Manually setting `name` can mess up positioning.
# This should fix it.
pos = builtins.unsafeGetAttrPos "src" args;
preferLocalBuild = true;
allowSubstitutes = false;
# unconditionally disable phases that are we don't want
phases = [
"unpackPhase"
"patchPhase"
"installPhase"
];
installPhase = "cp -R ./ $out";
# passthru the git and hash info for nix-update, as well
# as all the src's passthru attrs.
passthru = extraPassthru // finalAttrs.src.passthru or { };
# Carry (and merge) information from the underlying `src` if present.
// (optionalAttrs (src ? meta) {
inherit (src) meta;
})
// (optionalAttrs (extraPassthru != { } || src ? passthru) {
passthru = extraPassthru // src.passthru or { };
})
# Forward any additional arguments to the derivation
// (removeAttrs args [
"src"
"name"
"patches"
"prePatch"
"postPatch"
])
);
meta = lib.optionalAttrs (src ? meta) (removeAttrs finalAttrs.src.meta [ "position" ]);
};
};
# TODO: move docs to Nixpkgs manual
# An immutable file in the store with a length of 0 bytes.

View file

@ -212,7 +212,7 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = ''
mkdir -p $out/bin
ln -s $out/2s2h/2s2h.elf $out/bin/2s2h
install -Dm644 ../mm/linux/2s2hIcon.png $out/share/pixmaps/2s2h.png
install -Dm644 ../mm/linux/2s2hIcon.png $out/share/icons/hicolor/512x512/apps/2s2h.png
install -Dm644 -t $out/share/licenses/2ship2harkinian ../LICENSE
install -Dm644 -t $out/share/licenses/2ship2harkinian/OTRExporter ../OTRExporter/LICENSE

View file

@ -10,13 +10,13 @@ telegram-desktop.override {
inherit withWebkit;
unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec {
pname = "64gram-unwrapped";
version = "1.1.93";
version = "1.1.94";
src = fetchFromGitHub {
owner = "TDesktop-x64";
repo = "tdesktop";
tag = "v${version}";
hash = "sha256-AwzTmEaN6MsJNq1W+cyAbg+QkYrPaV2LXmt3NzKc/vQ=";
hash = "sha256-pMcG0B3YxrvvaLsC2yWJsm9wHpv5+xLtp+wQhRtJ38Q=";
fetchSubmodules = true;
};

View file

@ -93,8 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
--set-rpath ${lib.makeLibraryPath finalAttrs.buildInputs} \
$out/share/a-keys-path/a-keys-path
mkdir -p $out/share/pixmaps
cp icon.png $out/share/pixmaps/a-keys-path.png
install -D icon.png $out/share/icons/hicolor/256x256/apps/a-keys-path.png
install -Dm644 ${finalAttrs.desktopItem}/share/applications/a-keys-path.desktop \
$out/share/applications/a-keys-path.desktop

View file

@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
substituteAll "${./abuse.sh}" $out/bin/abuse
chmod +x $out/bin/abuse
install -Dm644 ${finalAttrs.data}/doc/abuse.png $out/share/pixmaps/abuse.png
install -Dm644 ${finalAttrs.data}/doc/abuse.png -t $out/share/icons/hicolor/32x32/apps
'';
env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2}/include/SDL2";

View file

@ -7,6 +7,7 @@
makeDesktopItem,
runCommand,
yq-go,
imagemagick,
_experimental-update-script-combinators,
nix-update-script,
}:
@ -26,7 +27,10 @@ flutter332.buildFlutterApplication {
pubspecLock = lib.importJSON ./pubspec.lock.json;
nativeBuildInputs = [ copyDesktopItems ];
nativeBuildInputs = [
imagemagick
copyDesktopItems
];
buildInputs = [ libayatana-appindicator ];
@ -44,7 +48,8 @@ flutter332.buildFlutterApplication {
];
postInstall = ''
install -D --mode=0644 assets/alisthelper.png -t $out/share/pixmaps
mkdir -p $out/share/icons/hicolor/1024x1024/apps
magick assets/alisthelper.png -resize 1024x1024 $out/share/icons/hicolor/1024x1024/apps/alisthelper.png
'';
passthru = {

View file

@ -151,11 +151,11 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/libexec $out/share/applications $out/share/pixmaps $out/lib/systemd/system
mkdir -p $out/bin $out/libexec $out/share/applications $out/lib/systemd/system
install -m555 client/AmneziaVPN service/server/AmneziaVPN-service $out/bin/
install -m555 ../deploy/data/linux/client/bin/update-resolv-conf.sh $out/libexec/
install -m444 ../AppDir/AmneziaVPN.desktop $out/share/applications/
install -m444 ../deploy/data/linux/AmneziaVPN.png $out/share/pixmaps/
install -Dm444 ../deploy/data/linux/AmneziaVPN.png -t $out/share/icons/hicolor/512x512/apps
install -m444 ../deploy/data/linux/AmneziaVPN.service $out/lib/systemd/system/
runHook postInstall

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "asmjit";
version = "0-unstable-2026-01-03";
version = "0-unstable-2026-02-10";
src = fetchFromGitHub {
owner = "asmjit";
repo = "asmjit";
rev = "f64c90818ff2ef87ec4f73f44d0a7e73fbff3229";
hash = "sha256-+tDWV25KxC+0hhnyC/9b7ixpP7PZsUHzTZB8KmpWtO8=";
rev = "5fe1940275d04432da841896bac0a66cc2375551";
hash = "sha256-Oj8VP9rJXHQYP3aV8sm+XbyHXLvmC+7e+OGy5YQqFzQ=";
};
nativeBuildInputs = [

View file

@ -83,8 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
if (test -e source/src/ac_client) then
cp source/src/ac_client $out/bin
mkdir -p $out/share/applications
install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png
install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png
install -Dpm644 packages/misc/icon.png $out/share/icons/hicolor/32x32/apps/assaultcube.png
makeWrapper $out/bin/ac_client $out/bin/assaultcube \
--chdir "$out/share/games/assaultcube" --add-flags "--home=\$HOME/.assaultcube/v1.2next --init"

View file

@ -92,7 +92,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
''
install -D -m444 ${packagingDir}/atlauncher.desktop -t $out/share/applications
install -D -m444 ${packagingDir}/atlauncher.metainfo.xml -t $out/share/metainfo
install -D -m444 ${packagingDir}/atlauncher.png -t $out/share/pixmaps
install -D -m444 ${packagingDir}/atlauncher.png -t $out/share/icons/hicolor/128x128/apps
install -D -m444 ${packagingDir}/atlauncher.svg -t $out/share/icons/hicolor/scalable/apps
'';

View file

@ -129,8 +129,7 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
mkdir -p $out/share/pixmaps
cp ${targetPath}/resources/app/resources/linux/code.png $out/share/pixmaps/azuredatastudio.png
install -D ${targetPath}/resources/app/resources/linux/code.png $out/share/icons/hicolor/1024x1024/apps/azuredatastudio.png
runHook postInstall
'';

View file

@ -14,18 +14,18 @@
buildNpmPackage rec {
pname = "cinny-unwrapped";
version = "4.10.2";
version = "4.10.3";
src = fetchFromGitHub {
owner = "cinnyapp";
repo = "cinny";
tag = "v${version}";
hash = "sha256-RPFEquxMRnNW+L6azcDmrIKXG27DAF2PxDmSB3ErOHk=";
hash = "sha256-ZztZ/znJUwgYlvv5h9uxNZvQrkUMVbMG6R+HbRtSXHM=";
};
nodejs = nodejs_22;
npmDepsHash = "sha256-h4Ipmmo0Jf6/rzCAKtLLCYrUi1anVKZSgy/kcEKDQJg=";
npmDepsHash = "sha256-Spt2+sQcoPwy1tU8ztqJHZS9ITX9avueYDVKE7BFYy4=";
nativeBuildInputs = [
python3

View file

@ -2,6 +2,8 @@
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
stdenvNoCC,
nix-update-script,
}:
buildGoModule (finalAttrs: {
@ -23,7 +25,10 @@ buildGoModule (finalAttrs: {
vendorHash = "sha256-bux3OfHT8f1FVpBAZUP23vo8M6h8nPTJbi/GTUzhdc4=";
passthru.updateScript = nix-update-script { };
passthru = {
tests = lib.optionalAttrs stdenvNoCC.hostPlatform.isLinux { inherit (nixosTests) cocoon; };
updateScript = nix-update-script { };
};
meta = {
description = "ATProtocol Personal Data Server written in Go with a SQLite block and blob store";

View file

@ -9,16 +9,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codeberg-cli";
version = "0.5.4";
version = "0.5.5";
src = fetchFromCodeberg {
owner = "Aviac";
repo = "codeberg-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-o+Jf9JKDGsnSVV8sJcJddZG+9DBn6DB4HfaxLxxwa+U=";
hash = "sha256-yjWAL4Tu9nuQsy8fDhga5lsxYwooE0fW70zfp7Dqq3Y=";
};
cargoHash = "sha256-HBVswxako/Djv8ayhEfgGVaFWblNn6ngtbQh9jNaxcQ=";
cargoHash = "sha256-AD4VLGsxkfl1UwJmZhR183Gk7ltjEyH9tlt+iKNs5J0=";
nativeBuildInputs = [
pkg-config
installShellFiles

View file

@ -71,11 +71,11 @@ in
python3Packages.buildPythonApplication rec {
pname = "copyparty${nameSuffix}";
version = "1.20.6";
version = "1.20.7";
src = fetchurl {
url = "https://github.com/9001/copyparty/releases/download/v${version}/copyparty-${version}.tar.gz";
hash = "sha256-wWVuB6D9SZg7scqpPF1elRmooItdheZb7z7qdhrQbTA=";
hash = "sha256-oFrgImxhcVUdCvDo27u/bWwy+hnsBkRrX1ZybczhuMQ=";
};
pyproject = true;

View file

@ -9,16 +9,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-ext-applet-minimon";
version = "1.0.0";
version = "1.0.1";
src = fetchFromGitHub {
owner = "cosmic-utils";
repo = "minimon-applet";
tag = "v${finalAttrs.version}";
hash = "sha256-Vxbzg7LHD+gYOeS+KHbV1zo17O0BsDLgQayYS0yBIOM=";
hash = "sha256-7XF2+6guu/DPY5IASS6BZPp2SfF2EDAkwTtkPfFbzfw=";
};
cargoHash = "sha256-VmpzzEe6rE2LbaH1wZH37FoLJ93y4VIK8KiVDzT/Wj8=";
cargoHash = "sha256-pwoJP9vfyMKxvFQ4Rabl3VKtP14ks5jlUw0xz1OTl3A=";
nativeBuildInputs = [
just

View file

@ -16,23 +16,23 @@
},
{
"pname": "CycloneDX.Core",
"version": "8.0.3",
"hash": "sha256-d9GiOXYxQ1Sv35rN5jywhgTS+HKHSydHVcJNbKs7Htg="
"version": "11.0.0",
"hash": "sha256-i1H/+oH4yljhvXg0PnM87F9qu2RtvPco7adZ2uxzOpY="
},
{
"pname": "CycloneDX.Spdx",
"version": "8.0.3",
"hash": "sha256-86E8rIXeE6gu+W3yK33abZ5w5zwuDR0Qv5texxJnsv0="
"version": "11.0.0",
"hash": "sha256-JOY+PjDApeXdJlCXhcr91lUiC6DOQEcjoYuQbBaaiog="
},
{
"pname": "CycloneDX.Spdx.Interop",
"version": "8.0.3",
"hash": "sha256-WpM0VZAjhN2f/IckRIzIeMIkpir9ZNAW+0ZGxL2cBNY="
"version": "11.0.0",
"hash": "sha256-N682Lern6x18EJlRuJDR+T7/n5+2DWXp4Kz1MNuGqEM="
},
{
"pname": "CycloneDX.Utils",
"version": "8.0.3",
"hash": "sha256-CW6e3uPmCP1U98fcQsiDvn3fLkQOGcchPiUNq4aXDbQ="
"version": "11.0.0",
"hash": "sha256-3rBD3lAzQiv0TghEbfxCVUQoWNOX8tzFew7V0s4NRpE="
},
{
"pname": "JetBrains.Annotations",
@ -64,11 +64,6 @@
"version": "4.0.1",
"hash": "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8="
},
{
"pname": "Microsoft.CSharp",
"version": "4.4.1",
"hash": "sha256-7/gsQHWAuFWrcVpVharASTNL+Mvl6Gw+AAw41k0MzXw="
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.3.2",
@ -391,8 +386,13 @@
},
{
"pname": "System.CommandLine",
"version": "2.0.0-beta1.21308.1",
"hash": "sha256-14pgyMy3F86XickXZB+AMX6uMTkVvBg5tV90p1G+4yY="
"version": "2.0.0-beta4.22272.1",
"hash": "sha256-zSO+CYnMH8deBHDI9DHhCPj79Ce3GOzHCyH1/TiHxcc="
},
{
"pname": "System.CommandLine.NamingConventionBinder",
"version": "2.0.0-beta4.22272.1",
"hash": "sha256-Ffzs51XiFraSX1efQRO1IyiNraIgi8aOdkRRzCT6DB4="
},
{
"pname": "System.Console",
@ -529,11 +529,6 @@
"version": "4.3.0",
"hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8="
},
{
"pname": "System.Memory",
"version": "4.5.4",
"hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="
},
{
"pname": "System.Net.Http",
"version": "4.3.0",
@ -664,11 +659,6 @@
"version": "4.3.0",
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.0.0",
"hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.1.0",
@ -809,15 +799,10 @@
"version": "4.3.0",
"hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="
},
{
"pname": "System.Text.Encodings.Web",
"version": "6.0.0",
"hash": "sha256-UemDHGFoQIG7ObQwRluhVf6AgtQikfHEoPLC6gbFyRo="
},
{
"pname": "System.Text.Json",
"version": "6.0.2",
"hash": "sha256-YLpB48NRiQ8oCuUx0AHJzqUHYgUwXW/60shFkkN/5tM="
"version": "8.0.5",
"hash": "sha256-yKxo54w5odWT6nPruUVsaX53oPRe+gKzGvLnnxtwP68="
},
{
"pname": "System.Text.RegularExpressions",

View file

@ -7,13 +7,13 @@
buildDotnetModule rec {
pname = "cyclonedx-cli";
version = "0.27.2";
version = "0.30.0";
src = fetchFromGitHub {
owner = "CycloneDX";
repo = "cyclonedx-cli";
tag = "v${version}";
hash = "sha256-QU/MaT8iIf/9VpOb2mixOfOtG/J+sE7S0mT6BKYQnlI=";
hash = "sha256-a9jUJqj/h2u2SrIQkQV8aFSzys+RVEI2yNlHTJpll+M=";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
@ -24,11 +24,6 @@ buildDotnetModule rec {
find . ! -name 'cyclonedx' -type f -exec rm -f {} +
'';
postPatch = ''
substituteInPlace src/cyclonedx/cyclonedx.csproj tests/cyclonedx.tests/cyclonedx.tests.csproj \
--replace-fail 'net6.0' 'net8.0'
'';
meta = {
description = "CycloneDX CLI tool for SBOM analysis, merging, diffs and format conversions";
homepage = "https://github.com/CycloneDX/cyclonedx-cli";

View file

@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
pkg-config,
curlMinimal,
glib,
gmime3,
libevent,
libmhash,
libxcrypt,
libzdb,
openssl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dbmail";
version = "3.5.5";
src = fetchFromGitHub {
owner = "dbmail";
repo = "dbmail";
tag = "v${finalAttrs.version}";
hash = "sha256-uoK+sj/CQ2CcliQ+vtE9Q3BWVbzpQ5MP8xHVIxe6w2o=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
curlMinimal
glib
gmime3
libmhash
libevent
libxcrypt
libzdb
openssl
];
strictDeps = true;
__structuredAttrs = true;
enableParallelBuilding = true;
configureFlags = [ "--with-zdb=${libzdb}" ];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Highly available Message Delivery Agent using SQL storage";
homepage = "https://dbmail.org";
downloadPage = "https://github.com/dbmail/dbmail";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
mainProgram = "dbmail-imapd";
maintainers = with lib.maintainers; [ maevii ];
};
})

View file

@ -23,6 +23,12 @@ buildDotnetModule rec {
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
dotnetBuildFlags = [
# workaround for https://github.com/belav/csharpier/pull/1696
# remove when csharpier is updated
"-p:FirstTargetFrameworks=workaround-for-csharpier-pr-1696"
];
postFixup = ''
ln -s $out/bin/DiscordChatExporter.Cli $out/bin/discordchatexporter-cli
'';

View file

@ -1,7 +1,7 @@
{
"version" = "1.12.9";
"version" = "1.12.10";
"hashes" = {
"desktopSrcHash" = "sha256-VBlKFknwafXar05kEpwv0+9EwUPe9WQRMn8S8uhX2U8=";
"desktopYarnHash" = "sha256-tBO8rtz5/8OxmGsPmMEATqNVuBEcNp6L6lJCaJdPlNY=";
"desktopSrcHash" = "sha256-2LQBT3+2JTR3XHO3DynOp8cw2m2SB/mGH01e3SFD/IM=";
"desktopYarnHash" = "sha256-QIzuVKmUS4tqXAzhpfLZOp51kLbfC1M2nrff8e+sdg4=";
};
}

View file

@ -5,7 +5,7 @@
makeWrapper,
makeDesktopItem,
nodejs,
electron_39,
electron_40,
element-web,
sqlcipher,
callPackage,
@ -24,7 +24,7 @@ let
pinData = import ./element-desktop-pin.nix;
inherit (pinData.hashes) desktopSrcHash desktopYarnHash;
executableName = "element-desktop";
electron = electron_39;
electron = electron_40;
seshat = callPackage ./seshat { };
in
stdenv.mkDerivation (

View file

@ -1,8 +1,8 @@
{
"version" = "1.12.9";
"version" = "1.12.10";
"hashes" = {
"webSrcHash" = "sha256-txG91VN4b0ZtUnQp4IfN47YAn1WBI9UUxemReachcDo=";
"webYarnHash" = "sha256-Y2AvBlS7qdVUXalKet3Ud4a6MA4MKHM4ffRhB7Uq8Co=";
"webSharedComponentsYarnHash" = "sha256-yeFFVVMWyPN3BqOY46KAxPv7VRVrsFvPan5arTNd/GM";
"webSrcHash" = "sha256-qc17AK2HvTJi0r03VTH0D2QitdYcGNRObji9cm6XsFU=";
"webYarnHash" = "sha256-qdmdwjVXA+ZnNG3S9Pnm3JOrJXYXVdH+w7mccNjRmVM=";
"webSharedComponentsYarnHash" = "sha256-0sOF3w6BnY1WenDP+zqZAo1W4C91glMQSMQ22iYajTw=";
};
}

View file

@ -49,8 +49,8 @@ let
depsHash
else
{
x86_64-linux = "sha256-cUpCkmJmFyd2mTImMKt5Cgi+A4bAWAXLYjJjMnV6haQ=";
aarch64-linux = "sha256-f1FbdFDunlF7uhCpkb5AqmKN5uimuKnFYBzXjIcRabk=";
x86_64-linux = "sha256-CMd8dIyvuYFoHg1+AdkkyBj5P367ZcklCOgih+7uQIA=";
aarch64-linux = "sha256-NJIkiTIJBZFPb+FpTYo6pQQQt8++VuCHHj0Y0AjqWGo=";
}
.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
@ -144,14 +144,14 @@ buildBazelPackage rec {
--replace-fail 'crates_repository(' 'crates_repository(generator="@@cargo_bazel_bootstrap//:cargo-bazel", '
'';
preInstall = ''
# Envoy uses --noenable_bzlmod so BCR modules are not needed.
# Populate the repository cache with entries the build needs from the empty
# workspace. Use `bazel sync` (which fetches WORKSPACE repos) rather than
# `bazel fetch` (which requires bzlmod for its --all mode).
mkdir $NIX_BUILD_TOP/empty
pushd $NIX_BUILD_TOP/empty
touch MODULE.bazel
# Unfortunately, we need to fetch a lot of irrelevant junk to make this work.
# This really bloats the size of the FOD.
# TODO: lukegb - figure out how to make this suck less.
bazel fetch --repository_cache="$bazelOut/external/repository_cache"
bazel sync --repository_cache="$bazelOut/external/repository_cache"
touch MODULE.bazel WORKSPACE
bazel sync --noenable_bzlmod --repository_cache="$bazelOut/external/repository_cache"
popd
# Strip out the path to the build location (by deleting the comment line).

View file

@ -23,7 +23,6 @@ python3Packages.buildPythonApplication (finalAttrs: {
homepage = "https://github.com/PabloCastellano/extract-dtb";
changelog = "https://github.com/PabloCastellano/extract-dtb/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ungeskriptet ];
mainProgram = "extract-dtb";
};

View file

@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "gitlab-art";
version = "0.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "kosma";
repo = "gitlab-art";
tag = "v${version}";
hash = "sha256-j1MdkZUGMfrzowdhjJKhZqwN07JusaJsGkFu78IFdTY=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
pyaml
platformdirs
click
python-gitlab
];
meta = {
description = "Pull cross-project Gitlab artifact dependencies";
homepage = "https://github.com/kosma/gitlab-art";
changelog = "https://github.com/kosma/gitlab-art/releases/tag/${src.tag}";
license = lib.licenses.wtfpl;
maintainers = with lib.maintainers; [ tbaldwin ];
mainProgram = "art";
};
}

View file

@ -9,16 +9,16 @@
buildGo125Module rec {
pname = "go-camo";
version = "2.7.2";
version = "2.7.3";
src = fetchFromGitHub {
owner = "cactus";
repo = "go-camo";
tag = "v${version}";
hash = "sha256-LP01sPTHDouUmp6iDxdPklunxYKak2vaL0gJZsO3QRM=";
hash = "sha256-qRGVqs1FsdAyXKxnOZdJU3dhy7Isa0SjQZQCSWtjqL0=";
};
vendorHash = "sha256-lFpVlK5/LSRTxVD5Ve6DSACeyLFTJxDM2bDTxcUU73E=";
vendorHash = "sha256-tmCvBMQWhDFqtxWT6iy8r5EhG72B4hBok31GNEvgCVU=";
nativeBuildInputs = [
installShellFiles

View file

@ -7,7 +7,7 @@
stdenv.mkDerivation {
pname = "hello-cpp";
version = lib.trivial.version;
version = lib.trivial.release;
src = ./src;
nativeBuildInputs = [
cmake

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "inori";
version = "0.2.5";
version = "0.2.6";
src = fetchFromGitHub {
owner = "eshrh";
repo = "inori";
tag = "v${finalAttrs.version}";
hash = "sha256-w+UsG4CHdug6TITJLjhHsQeAhHenzDFnZLICDT0Z1UM=";
hash = "sha256-U1fNLqJYtTJK0WZ0sO7DADVDRPSik5vuE78zGnJt15A=";
};
cargoHash = "sha256-AvYNeWyitoi9hDqiy5hl/VM4LO8J2xmLgl0y8P4xYNA=";
cargoHash = "sha256-EfRSFxu/F+ltkx3uQ353CRlMrZN4PbmFdcw7H9Tm3ss=";
passthru.updateScript = nix-update-script { };

View file

@ -6,10 +6,10 @@
kak-tree-sitter-unwrapped,
}:
symlinkJoin rec {
symlinkJoin (finalAttrs: {
pname = lib.replaceStrings [ "-unwrapped" ] [ "" ] kak-tree-sitter-unwrapped.pname;
inherit (kak-tree-sitter-unwrapped) version;
name = "${pname}-${version}";
name = "${finalAttrs.pname}-${finalAttrs.version}";
paths = [ kak-tree-sitter-unwrapped ];
nativeBuildInputs = [ makeWrapper ];
@ -24,4 +24,4 @@ symlinkJoin rec {
'';
inherit (kak-tree-sitter-unwrapped) meta;
}
})

View file

@ -25,6 +25,9 @@ buildDotnetModule rec {
nugetDeps = ./deps.json;
executables = [ "Knossos.NET" ];
# IO errors in build due to solution building race
enableParallelBuilding = false;
runtimeDeps = [ openal ];
nativeBuildInputs = [ copyDesktopItems ];

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "krep";
version = "1.5.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "davidesantangelo";
repo = "krep";
rev = "v${finalAttrs.version}";
hash = "sha256-yPrQwztqJQGWk/RFklsA3dnuk7GCflaF0WbTm0mx7Gw=";
hash = "sha256-/eYS+GGqWbUkMzjRSGU6OElRaUFQ2/xvyRywRcQ9F+s=";
};
makeFlags = [

View file

@ -26,6 +26,8 @@ buildDotnetModule rec {
sourceRoot = "${src.name}/Source";
env.AVALONIA_TELEMETRY_OPTOUT = "1";
dotnet-sdk = dotnetCorePackages.sdk_10_0;
dotnet-runtime = dotnetCorePackages.runtime_10_0;

View file

@ -18,16 +18,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "matrix-authentication-service";
version = "1.10.0";
version = "1.11.0";
src = fetchFromGitHub {
owner = "element-hq";
repo = "matrix-authentication-service";
tag = "v${finalAttrs.version}";
hash = "sha256-Cw7EPjN9PLmMxRTHV2DeUWM/BVNrDIQfy//Cn++C98o=";
hash = "sha256-vP/4QzsuA+guUBNFJWytdPiAuHh5+D+UMpRwb/9Lbxc=";
};
cargoHash = "sha256-aQ6zGaHVEGgrNMhbx2tnb4yQ4B31Nr2gf4BKyJsnP0U=";
cargoHash = "sha256-MLWjY+Rw4PkKb1zqZaDGpGsKPlGTDNpPRzyz/w1HfZ0=";
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";

View file

@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
ncurses,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "myman";
version = "0.7.0";
src = fetchurl {
url = "https://sourceforge.net/projects/myman/files/myman/myman-${finalAttrs.version}/myman-${finalAttrs.version}.tar.gz";
hash = "sha512-elJo+pqSdcjUa1fPcU6InCIVgaXL4Zs4jmpgI2Z/mUH3ZK9r5H+/HxGkMPFJ+/anoLtb4t2SsWwHAg+d6PyYtg==";
};
outputs = [
"out"
"doc"
"man"
];
buildInputs = [ ncurses ];
configureFlags = [
"--with-xterm"
"--with-rxvt"
"--with-kterm"
"--with-ncurses"
];
meta = {
description = "Pacman clone with an ncurses and a 'graphic' interface";
homepage = "http://myman.sourceforge.net/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ silverhadch ];
platforms = lib.platforms.unix;
mainProgram = "myman";
};
})

View file

@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "nixmate";
version = "0.7.2";
src = fetchFromGitHub {
owner = "daskladas";
repo = "nixmate";
tag = "v${finalAttrs.version}";
hash = "sha256-Buabxhaq9P1u2zqRMGnFnCZczrxENa/Ux//F5wHkb1U=";
};
cargoHash = "sha256-c11NRt6qBNhj6JQeI7/80aYzuCY36ApsUWVnbRH7rRU=";
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
meta = {
description = "All your NixOS tools in one TUI generations, rebuilds, services, errors, and more";
homepage = "https://github.com/daskladas/nixmate";
changelog = "https://github.com/daskladas/nixmate/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
mainProgram = "nixmate";
};
})

View file

@ -201,7 +201,7 @@ def get_parser() -> tuple[argparse.ArgumentParser, dict[str, argparse.ArgumentPa
"--diff",
action="store_true",
help="prints out the diff between the current system "
"and the newly built one using nix store diff-closures"
"and the newly built one using nix store diff-closures",
)
main_parser.add_argument("action", choices=Action.values(), nargs="?")

View file

@ -1,7 +1,7 @@
import sys
import json
import logging
import os
import sys
import textwrap
import uuid
from concurrent.futures import ThreadPoolExecutor
@ -314,6 +314,7 @@ def get_build_image_name_flake(
r = run_wrapper(
[
"nix",
*FLAKE_FLAGS,
"eval",
"--json",
flake.to_attr(
@ -365,6 +366,7 @@ def get_build_image_variants_flake(
r = run_wrapper(
[
"nix",
*FLAKE_FLAGS,
"eval",
"--json",
flake.to_attr("config.system.build.images"),
@ -538,12 +540,13 @@ def list_generations(profile: Profile) -> list[GenerationJson]:
reverse=True,
)
def diff_closures(current_config: Path, new_config: Path, target_host: Remote | None = None):
print(
f"<<< {current_config}\n"
f">>> {new_config}",
file=sys.stderr
)
def diff_closures(
current_config: Path,
new_config: Path,
target_host: Remote | None = None,
) -> None:
print(f"<<< {current_config}\n>>> {new_config}", file=sys.stderr)
run_wrapper(
[
"nix",
@ -554,7 +557,7 @@ def diff_closures(current_config: Path, new_config: Path, target_host: Remote |
new_config,
],
remote=target_host,
stdout=sys.stderr
stdout=sys.stderr,
)

View file

@ -8,7 +8,7 @@ import subprocess
from collections.abc import Sequence
from dataclasses import dataclass
from ipaddress import AddressValueError, IPv6Address
from typing import Final, Self, TypedDict, Unpack
from typing import Final, Self, TextIO, TypedDict, Unpack
from . import tmpdir
@ -85,8 +85,8 @@ class Remote:
# Not exhaustive, but we can always extend it later.
class RunKwargs(TypedDict, total=False):
capture_output: bool
stderr: int | None
stdout: int | None
stderr: int | TextIO | None
stdout: int | TextIO | None
def cleanup_ssh() -> None:

View file

@ -324,9 +324,15 @@ def build_and_activate_system(
current_config = Path("/run/current-system")
if args.diff:
if current_config.exists():
nix.diff_closures(current_config=current_config.readlink(), new_config=path_to_config, target_host=target_host)
nix.diff_closures(
current_config=current_config.readlink(),
new_config=path_to_config,
target_host=target_host,
)
else:
logger.warning(f"missing '{str(current_config)}', skipping configuration diff...")
logger.warning(
f"missing '{current_config!s}', skipping configuration diff..."
)
_activate_system(
path_to_config=path_to_config,

View file

@ -386,6 +386,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None:
call(
[
"nix",
"--extra-experimental-features",
"nix-command flakes",
"eval",
"--json",
'/path/to/config#nixosConfigurations."hostname".config.system.build.images',
@ -412,6 +414,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None:
call(
[
"nix",
"--extra-experimental-features",
"nix-command flakes",
"eval",
"--json",
'/path/to/config#nixosConfigurations."hostname".config.system.build.images.azure.passthru.filePath',

View file

@ -394,6 +394,8 @@ def test_get_build_image_variants_flake(mock_run: Mock) -> None:
mock_run.assert_called_with(
[
"nix",
"--extra-experimental-features",
"nix-command flakes",
"eval",
"--json",
"/flake.nix#myAttr.config.system.build.images",
@ -554,11 +556,9 @@ def test_list_generations(mock_get_generations: Mock, tmp_path: Path) -> None:
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
def test_diff_closures(mock_run: Mock) -> None:
assert n.diff_closures(
Path("/run/current-system"),
Path("/nix/var/nix/profiles/system"),
None
) == None
n.diff_closures(
Path("/run/current-system"), Path("/nix/var/nix/profiles/system"), None
)
mock_run.assert_called_with(
[
"nix",
@ -570,7 +570,7 @@ def test_diff_closures(mock_run: Mock) -> None:
Path("/nix/var/nix/profiles/system"),
],
remote=None,
stdout=sys.stderr
stdout=sys.stderr,
)

View file

@ -9,13 +9,13 @@
}:
let
pname = "open-webui";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "open-webui";
repo = "open-webui";
tag = "v${version}";
hash = "sha256-eUkP5fLXzcoVz8HPnPr0qQOXN2iTYS/ZJ73c9PgjCiU=";
hash = "sha256-2n2JGgnWEGsWVLnkWc+RilTybt3KXah8UzUUPINxzfE=";
};
frontend = buildNpmPackage rec {
@ -32,7 +32,7 @@ let
url = "https://github.com/pyodide/pyodide/releases/download/${pyodideVersion}/pyodide-${pyodideVersion}.tar.bz2";
};
npmDepsHash = "sha256-FifLj2Aj0cfUmGHm39N7HIpAUmTBgGH2cjwTH+ChlgA=";
npmDepsHash = "sha256-gaf4+/H3nqgebPtxnEeUw2uw5xVh+FE6UFqD3mRjhv0=";
# See https://github.com/open-webui/open-webui/issues/15880
npmFlags = [

View file

@ -7,7 +7,7 @@
cmake,
python3,
qt6,
imagemagick,
iconConvTools,
gitUpdater,
}:
@ -40,8 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
''
+ lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
install -D Source/PokeFinder $out/bin/PokeFinder
mkdir -p $out/share/pixmaps
convert "$src/Source/Form/Images/pokefinder.ico[-1]" $out/share/pixmaps/pokefinder.png
icoFileToHiColorTheme $src/Source/Form/Images/pokefinder.ico pokefinder $out
''
+ ''
runHook postInstall
@ -54,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
copyDesktopItems
imagemagick
iconConvTools
];
desktopItems = [

View file

@ -45,13 +45,13 @@ let
};
pname = "pretix";
version = "2026.1.0";
version = "2026.1.1";
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix";
tag = "v${version}";
hash = "sha256-XS4Kqgvg3Bu5S3gFJ4fvvezCtQEA26jUa+8pSx2saNw=";
hash = "sha256-iH8S7+2SMw4LJjHjJvHAQgNSWU/zuk0nOUY/YI96T3E=";
};
npmDeps = buildNpmPackage {

View file

@ -0,0 +1,62 @@
{
lib,
buildGoModule,
buildNpmPackage,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "pyrra";
version = "0.9.3";
src = fetchFromGitHub {
owner = "pyrra-dev";
repo = "pyrra";
tag = "v${finalAttrs.version}";
hash = "sha256-3eEnwS3nnDuIYfZCDUrWFeNmAHEGWtpxtSVoI+XIMVM=";
};
vendorHash = "sha256-E2/OrAC2Wkv7OYPjs9ROE1RL4UUXYTByJZRY1qZB3gE=";
ui = buildNpmPackage {
inherit (finalAttrs) version;
pname = "${finalAttrs.pname}-ui";
src = "${finalAttrs.src}/ui";
npmDepsHash = "sha256-1KSkYUIJy6uci+Cy2q4dXO2PGpnwKcXQmWaWmpjPneA=";
installPhase = ''
runHook preInstall
mkdir -p $out/share/pyrra
mv build $out/share/pyrra/ui
runHook postInstall
'';
};
preBuild = ''
mkdir -p ui/build
cp -r ${finalAttrs.ui}/share/pyrra/ui/* ui/build
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--subpackage"
"ui"
];
};
meta = {
mainProgram = "pyrra";
description = "Making SLOs with Prometheus manageable, accessible, and easy to use for everyone!";
homepage = "https://github.com/pyrra-dev/pyrra";
changelog = "https://github.com/pyrra-dev/pyrra/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
metalmatze
numbleroot
];
};
})

View file

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qmapshack";
version = "1.19.0";
version = "1.20.0";
src = fetchFromGitHub {
owner = "Maproom";
repo = "qmapshack";
tag = "V_${finalAttrs.version}";
hash = "sha256-g/csg44pyjLCavRNu/WgNY3sXW0hncB1xpAPhvyuD60=";
hash = "sha256-OazG5BkgofNXWKoTpKEoyZ+Ew1u2w2i1Y/ovTYNrl+w=";
};
nativeBuildInputs = [

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rasm";
version = "3.0.6";
version = "3.0.7";
src = fetchFromGitHub {
owner = "EdouardBERGE";
repo = "rasm";
tag = "v${finalAttrs.version}";
hash = "sha256-YNdm30gw2ycKTFrW+5tE0Du5m258befh17HjAWnQsbc=";
hash = "sha256-zBT4msN5ffqwsGTQDmK6gZJ5InzAy+kTlB4xEJPCGlY=";
};
# by default the EXEC variable contains `rasm.exe`

View file

@ -23,26 +23,17 @@
withBfbInstall ? true,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "rshim-user-space";
version = "2.5.7";
version = "2.6.6";
src = fetchFromGitHub {
owner = "Mellanox";
repo = "rshim-user-space";
rev = "rshim-${version}";
hash = "sha256-dXrReU6Wx8t6ObrrF3MeUWdFBSfn6tyQqQdGBAZsvDg=";
rev = "rshim-${finalAttrs.version}";
hash = "sha256-OdrJnOm0QegQ2ex1hFSWPfwYuBnXpGeMJ2YfvNyIwTU=";
};
# came up shortly after 2.5.7 release, remove with next update
patches = [
(fetchpatch2 {
name = "rshim-fix-bfb-install.patch";
url = "https://github.com/Mellanox/rshim-user-space/commit/0b2b17eeb04d80b7efb20aa2a9dc24759680aaea.patch";
hash = "sha256-JqnCGWM6Wjg+WFQhqHv6h4VbawyCf75L4wfd7L+n7po=";
})
];
nativeBuildInputs = [
autoconf
automake
@ -107,8 +98,5 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; [
thillux
];
# Requires https://github.com/Mellanox/rshim-user-space/pull/276 for glibc-2.42,
# patch appears broken though.
broken = true;
};
}
})

View file

@ -27,7 +27,6 @@ buildNpmPackage {
description = "Program for downloading Samsung firmware";
homepage = "https://github.com/DavidArsene/samfirm.js";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ungeskriptet ];
mainProgram = "samfirm-js";
};

View file

@ -26,6 +26,8 @@ buildDotnetModule rec {
dotnetBuildFlags = [
"-p:MinVerVersionOverride=${version}"
# this is fragile with sdk updates
"-p:EnforceCodeStyleInBuild=false"
];
dotnetInstallFlags = [

View file

@ -36,19 +36,22 @@
# Path to set ROBUST_SOUNDFONT_OVERRIDE to, essentially the default soundfont used.
soundfont-path ? "${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2",
}:
buildDotnetModule rec {
let
pname = "space-station-14-launcher";
version = "0.36.1";
version = "0.37.1";
in
buildDotnetModule rec {
inherit pname;
# Workaround to prevent buildDotnetModule from overriding assembly versions.
name = "space-station-14-launcher-${version}";
# If you inherit version it will break loading Robust.LoaderApi when connecting to a server!
name = "${pname}-${version}";
# A bit redundant but I don't trust this package to be maintained by anyone else.
src = fetchFromGitHub {
owner = "space-wizards";
repo = "SS14.Launcher";
tag = "v${version}";
hash = "sha256-6wH2CkTuwy+a3EGpKrdLDsIaQ7oZc2I1OLdmAREMazw=";
hash = "sha256-83eBAT+NuwwpC30Xc5bJEs++tTYlY3akMaizQgNHOsA=";
fetchSubmodules = true;
};
@ -66,9 +69,7 @@ buildDotnetModule rec {
inherit version;
};
dotnet-sdk = dotnetCorePackages.sdk_10_0 // {
inherit (dotnetCorePackages.sdk_8_0) packages;
};
dotnet-sdk = dotnetCorePackages.sdk_10_0;
dotnet-runtime = dotnetCorePackages.runtime_10_0;
dotnetFlags = [
@ -113,9 +114,9 @@ buildDotnetModule rec {
desktopItems = [
(makeDesktopItem {
name = "space-station-14-launcher";
name = pname;
exec = meta.mainProgram;
icon = "space-station-14-launcher";
icon = pname;
desktopName = "Space Station 14 Launcher";
comment = meta.description;
categories = [ "Game" ];
@ -127,14 +128,14 @@ buildDotnetModule rec {
mkdir -p $out/lib/space-station-14-launcher/loader
cp -r SS14.Loader/bin/${buildType}/*/*/* $out/lib/space-station-14-launcher/loader/
icoFileToHiColorTheme SS14.Launcher/Assets/icon.ico space-station-14-launcher $out
icoFileToHiColorTheme SS14.Launcher/Assets/icon.ico ${pname} $out
'';
meta = {
description = "Launcher for Space Station 14, a multiplayer game about paranoia and disaster";
homepage = "https://spacestation14.io";
license = lib.licenses.mit;
maintainers = [ ];
maintainers = [ lib.maintainers.coca ];
platforms = [ "x86_64-linux" ];
mainProgram = "SS14.Launcher";
};

View file

@ -69,7 +69,6 @@ buildGoModule (finalAttrs: {
homepage = "https://github.com/nirui/sshwifty";
changelog = "https://github.com/nirui/sshwifty/releases/tag/${finalAttrs.version}";
license = lib.licenses.agpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ungeskriptet ];
mainProgram = "sshwifty";
};

View file

@ -18,7 +18,7 @@ let
in
buildNpmPackage rec {
pname = "super-productivity";
version = "17.1.5";
version = "17.1.8";
inherit nodejs;
@ -26,7 +26,7 @@ buildNpmPackage rec {
owner = "johannesjo";
repo = "super-productivity";
tag = "v${version}";
hash = "sha256-ECUn+0RFNYc5QgJYXMYQ0fWZ39WVErCNCIIkrual1P4=";
hash = "sha256-76rgW97ElM/6Sy3JwmrqA+nV5ONWqYBoK1uK+UEYf24=";
postFetch = ''
find $out -name package-lock.json -exec ${lib.getExe npm-lockfile-fix} -r {} \;
@ -69,7 +69,7 @@ buildNpmPackage rec {
dontInstall = true;
outputHashMode = "recursive";
hash = "sha256-tDQd3HVktivwyPaLF88fLLDwU6H7yX03DWrpFVkdDXk=";
hash = "sha256-epDGYONJgLJsNG0f6GiIbXwoPdjAsLGGQa0giPiBMYs=";
}
);

View file

@ -34,13 +34,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "velocity";
version = "3.5.0-unstable-2026-01-31";
version = "3.5.0-unstable-2026-02-11";
src = fetchFromGitHub {
owner = "PaperMC";
repo = "Velocity";
rev = "7e01491e2f7952a3d2d798ddaaf0ffd396921329";
hash = "sha256-yKH5M1pN2/vm2cRKiasT3TwRMLjtBla/qR/71U595wQ=";
rev = "c2fd3c07ac1f317e2700aead1a2338fe11152ce2";
hash = "sha256-Nnrod7sEOqXCnHx6gkpnkXObt4FNE35vp6fvGN9988Q=";
};
nativeBuildInputs = [

View file

@ -53,13 +53,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "vulkan-cts";
version = "1.4.5.0";
version = "1.4.5.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "VK-GL-CTS";
rev = "vulkan-cts-${finalAttrs.version}";
hash = "sha256-cbXSelRPCCH52xczWaxqftbimHe4PyIKZqySQSFTHos=";
hash = "sha256-kGnOBEiZQuvRqqwx7pbOK2y3VpUlHVoXH1ntq+o5y5g=";
};
prePatch = ''

View file

@ -60,8 +60,8 @@ rec {
vulkan-video-samples = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Video-Samples";
rev = "v0.3.7";
hash = "sha256-vNdRAx4kgPHxhHB0bUUsvi6yJhNcm/H5pU24tkVshuM=";
rev = "v0.3.9";
hash = "sha256-SyW/OzDGPdRPYGG7jgFMp8AkvpZq8Yi/7QZKZugXKho=";
};
prePatch = ''

View file

@ -0,0 +1,40 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation {
pname = "wavelib";
version = "0-unstable-2025-12-12";
src = fetchFromGitHub {
owner = "rafat";
repo = "wavelib";
rev = "7f61bf592f3c470b2a7d8199431fde821d7253ac";
hash = "sha256-M8HnyZ/ARnF7D7GuTx7vhuaJtpQVl5sV2qBe0LBynW4=";
};
nativeBuildInputs = [ cmake ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
checkPhase = ''
runHook preCheck
Bin/Release/wavelibLibTests
runHook postCheck
'';
# Don't install the test binary
postInstall = ''
rm -r $out/bin
'';
meta = {
description = "C Implementation of Discrete Wavelet Transform (DWT,SWT and MODWT)";
homepage = "https://github.com/rafat/wavelib";
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ rowanG077 ];
};
}

View file

@ -44,9 +44,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,libexec,share/pixmaps}
mkdir -p $out/{bin,libexec}
ln -s "${icon}" "$out/share/pixmaps/winbox.png"
install -D "${icon}" "$out/share/icons/hicolor/128x128/apps/winbox.png"
makeWrapper ${lib.getExe wine} $out/bin/winbox \
--add-flags $src

View file

@ -61,7 +61,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
install -Dm644 "assets/img/winbox.png" "$out/share/pixmaps/winbox.png"
install -Dm644 "assets/img/winbox.png" -t "$out/share/icons/hicolor/1024x1024/apps"
install -Dm755 "WinBox" "$out/bin/WinBox"
wrapProgram "$out/bin/WinBox" --run "${lib.getExe finalAttrs.migrationScript}"

View file

@ -7,7 +7,7 @@
runCommandCC "xkbvalidate"
{
pname = "xkbvalidate";
inherit (lib.trivial) version;
version = lib.trivial.release;
buildInputs = [ libxkbcommon ];
meta = {

View file

@ -1,7 +1,7 @@
{
lib,
stdenvNoCC,
fetchzip,
dockerTools,
makeBinaryWrapper,
jdk21_headless,
gawk,
@ -10,12 +10,22 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "youtrack";
version = "2025.1.86199";
version = "2025.3.121962";
src = fetchzip {
url = "https://download.jetbrains.com/charisma/youtrack-${finalAttrs.version}.zip";
hash = "sha256-+sHxagy9+H6DEnpdtRTNMy6GLSSCopaeqlXWJodAim0=";
src = dockerTools.exportImage {
diskSize = 8192;
fromImage = dockerTools.pullImage {
imageName = "jetbrains/youtrack";
arch = "amd64";
imageDigest = "sha256:90b641d623cb30f4915bd4a0bdba088bab25cf14314231e0333b8564bc353161";
hash = "sha256-WkEKJKfG5lagfgn4hbpEqIUPXGJYcYbwMjb1c5BNvp8=";
};
};
unpackPhase = ''
mkdir source
tar -C source -xvf $src ./opt/youtrack
cd source
'';
nativeBuildInputs = [ makeBinaryWrapper ];
@ -25,12 +35,13 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r * $out
cp -r opt/youtrack/* $out
makeWrapper $out/bin/youtrack.sh $out/bin/youtrack \
--prefix PATH : "${lib.makeBinPath [ gawk ]}" \
--set JRE_HOME ${jdk21_headless}
rm -rf $out/internal/java
mv $out/conf $out/conf.orig
rmdir $out/{backups,data,logs,temp}
ln -s ${statePath}/backups $out/backups
ln -s ${statePath}/conf $out/conf
ln -s ${statePath}/data $out/data
@ -45,6 +56,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
description = "Issue tracking and project management tool for developers";
maintainers = [ lib.maintainers.leona ];
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
platforms = [ "x86_64-linux" ];
# https://www.jetbrains.com/youtrack/buy/license.html
license = lib.licenses.unfree;
};

View file

@ -85,15 +85,14 @@ stdenv.mkDerivation rec {
# Install Linux-specific files (desktop, mime, icons)
mkdir -p $out/share/applications
mkdir -p $out/share/mime/packages
mkdir -p $out/share/pixmaps
mkdir -p $out/share/icons/hicolor/scalable/mimetypes
mkdir -p $out/share/icons/hicolor/scalable/{apps,mimetypes}
# Generate desktop file from template
substitute $src/platform/unix/love.desktop.in $out/share/applications/love.desktop \
--replace-fail '@bindir@' "$out/bin"
cp $src/platform/unix/love.xml $out/share/mime/packages/
cp $src/platform/unix/love.svg $out/share/pixmaps/
cp $src/platform/unix/love.svg $out/share/icons/hicolor/scalable/apps
cp $src/platform/unix/application-x-love-game.svg $out/share/icons/hicolor/scalable/mimetypes/
''
+ ''

View file

@ -28,7 +28,6 @@ buildPythonPackage rec {
description = "Android logical partitions library ported from C++ to Python";
homepage = "https://github.com/sebaubuntu-python/liblp";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ungeskriptet ];
mainProgram = "lpunpack";
};

View file

@ -38,6 +38,6 @@ buildPythonPackage rec {
changelog = "https://github.com/pyocd/libusb-package/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.brianmcgillion ];
platforms = lib.platforms.linux;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}

View file

@ -50,14 +50,14 @@
buildPythonPackage rec {
pname = "pymobiledevice3";
version = "7.5.1";
version = "7.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "doronz88";
repo = "pymobiledevice3";
tag = "v${version}";
hash = "sha256-j183S5H6jUnhOn/xMfeZtG9c4OowH/6HPpP2giko4dM=";
hash = "sha256-dBzBvwjto0pr0EWOKStEPXbdlX1mOxBFsU1CkmQLhNw=";
};
build-system = [

View file

@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "tlds";
version = "2026020700";
version = "2026021400";
pyproject = true;
src = fetchFromGitHub {
owner = "kichik";
repo = "tlds";
tag = finalAttrs.version;
hash = "sha256-cpm3x17B+w+Tq+ztQjd0Xttkyivv5Al+3w6RD+SU3T8=";
hash = "sha256-IyIZCBlH918let5qa/fi/SYampE3E+yAVMG17nHF7mk=";
};
nativeBuildInputs = [ setuptools ];

View file

@ -6,6 +6,7 @@
cmake,
pkg-config,
libdrm,
python,
wrapPython,
autoPatchelfHook,
}:
@ -67,6 +68,9 @@ stdenv.mkDerivation (finalAttrs: {
];
postInstall = ''
mkdir -p $out/${python.sitePackages}
ln -s $out/share/amd_smi/amdsmi $out/${python.sitePackages}/amdsmi
makeWrapperArgs=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libdrm ]})
wrapPythonProgramsIn $out
rm $out/bin/amd-smi

View file

@ -20,10 +20,7 @@ assert stdenv.hostPlatform.libc == "musl" -> useMusl;
let
configParser = ''
function parseconfig {
while read LINE; do
NAME=`echo "$LINE" | cut -d \ -f 1`
OPTION=`echo "$LINE" | cut -d \ -f 2`
while IFS=" " read NAME OPTION; do
if ! [[ "$NAME" =~ ^CONFIG_ ]]; then continue; fi
echo "parseconfig: removing $NAME"

View file

@ -20,23 +20,23 @@
"lts": true
},
"6.6": {
"version": "6.6.125",
"hash": "sha256:0g88r1v5q0m1n1ii2f16awc8w9m471m6hqx7r5whad4a8dpkpqwf",
"version": "6.6.126",
"hash": "sha256:0bzfa31h4d3808a6kz1vqccyiiv3kpvkryq5jb6cizmbg172yx0n",
"lts": true
},
"6.12": {
"version": "6.12.72",
"hash": "sha256:0ybijkw2zadhlg49r0wvnvy3s2czj5jnb149cz8ybvzvp90qgxdi",
"version": "6.12.73",
"hash": "sha256:1fj1ggpp19vjk80wbv0l9sn0ji0cm2wf0dvdyf6m9sgqrfad6na0",
"lts": true
},
"6.18": {
"version": "6.18.11",
"hash": "sha256:1xrsc7s3kh7mipfs0v33n97gfi55ll83x4hxvwi969qh8293ibrq",
"version": "6.18.12",
"hash": "sha256:1spihc64pp1jd18i4ckvk0fzad0ia5cq5fvznxdsrhn2si52j0z0",
"lts": false
},
"6.19": {
"version": "6.19.1",
"hash": "sha256:1vlki73j7m2khjl39hq4fy42qql9als18nmnjg00a8yklhqzb0qb",
"version": "6.19.2",
"hash": "sha256:0npfhawx99iwla9j29bnf6bz8g07h7cdk26nsk6vgkicb20ijqc8",
"lts": false
}
}

View file

@ -61,9 +61,9 @@ stdenv.mkDerivation {
runHook preInstall
d=$out/share/nifskope
mkdir -p $out/bin $out/share/applications $out/share/pixmaps $d/{shaders,lang}
mkdir -p $out/bin $out/share/applications $d/{shaders,lang}
cp release/NifSkope $out/bin/
cp ./res/nifskope.png $out/share/pixmaps/
install -D ./res/nifskope.png -t $out/share/icons/hicolor/128x128/apps
cp release/{nif.xml,kfm.xml,style.qss} $d/
cp res/shaders/*.frag res/shaders/*.prog res/shaders/*.vert $d/shaders/
cp ./res/lang/*.ts ./res/lang/*.tm $d/lang/

View file

@ -26,7 +26,7 @@ let
mkPrefetchScript =
tool: src: deps:
stdenv.mkDerivation {
inherit (lib.trivial) version;
version = lib.trivial.release;
pname = "nix-prefetch-${tool}";
strictDeps = true;

View file

@ -694,6 +694,12 @@ self: super: with self; {
amcrest = callPackage ../development/python-modules/amcrest { };
amdsmi = toPythonModule (
pkgs.rocmPackages.amdsmi.override {
inherit python;
}
);
ament-package = callPackage ../development/python-modules/ament-package { };
amply = callPackage ../development/python-modules/amply { };