Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-08-11 12:08:11 +00:00
committed by GitHub
316 changed files with 2450 additions and 1370 deletions

View File

@@ -48,6 +48,8 @@
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](options.html#opt-services.broadcast-box.enable).
- [boot.kernel.sysfs](options.html#opt-boot.kernel.sysfs) allows setting of sysfs attributes.
- Docker now defaults to 28.x, because version 27.x stopped receiving security updates and bug fixes after [May 2, 2025](https://github.com/moby/moby/pull/49910).
- [Corteza](https://cortezaproject.org/), a low-code platform. Available as [services.corteza](#opt-services.corteza.enable).

View File

@@ -0,0 +1,265 @@
{
lib,
config,
utils,
pkgs,
...
}:
let
inherit (lib)
all
any
concatLines
concatStringsSep
escapeShellArg
flatten
floatToString
foldl'
head
isAttrs
isDerivation
isFloat
isList
length
listToAttrs
match
mapAttrsToList
nameValuePair
removePrefix
tail
throwIf
;
inherit (lib.options)
showDefs
showOption
;
inherit (lib.strings)
escapeC
isConvertibleWithToString
;
inherit (lib.path.subpath) join;
inherit (utils) escapeSystemdPath;
cfg = config.boot.kernel.sysfs;
sysfsAttrs = with lib.types; nullOr (either sysfsValue (attrsOf sysfsAttrs));
sysfsValue = lib.mkOptionType {
name = "sysfs value";
description = "sysfs attribute value";
descriptionClass = "noun";
check = v: isConvertibleWithToString v;
merge =
loc: defs:
if length defs == 1 then
(head defs).value
else
(foldl' (
first: def:
# merge definitions if they produce the same value string
throwIf (mkValueString first.value != mkValueString def.value)
"The option \"${showOption loc}\" has conflicting definition values:${
showDefs [
first
def
]
}"
first
) (head defs) (tail defs)).value;
};
mapAttrsToListRecursive =
fn: set:
let
recurse =
p: v:
if isAttrs v && !isDerivation v then mapAttrsToList (n: v: recurse (p ++ [ n ]) v) v else fn p v;
in
flatten (recurse [ ] set);
mkPath = p: "/sys" + removePrefix "." (join p);
hasGlob = p: any (n: match ''(.*[^\\])?[*?[].*'' n != null) p;
mkValueString =
v:
# true will be converted to "1" by toString, saving one branch
if v == false then
"0"
else if isFloat v then
floatToString v # warn about loss of precision
else if isList v then
concatStringsSep "," (map mkValueString v)
else
toString v;
# escape whitespace and linebreaks, as well as the escape character itself,
# to ensure that field boundaries are always preserved
escapeTmpfiles = escapeC [
"\t"
"\n"
"\r"
" "
"\\"
];
tmpfiles = pkgs.runCommand "nixos-sysfs-tmpfiles.d" { } (
''
mkdir "$out"
''
+ concatLines (
mapAttrsToListRecursive (
p: v:
let
path = mkPath p;
in
if v == null then
[ ]
else
''
printf 'w %s - - - - %s\n' \
${escapeShellArg (escapeTmpfiles path)} \
${escapeShellArg (escapeTmpfiles (mkValueString v))} \
>"$out"/${escapeShellArg (escapeSystemdPath path)}.conf
''
) cfg
)
);
in
{
options = {
boot.kernel.sysfs = lib.mkOption {
type = lib.types.submodule {
freeformType = lib.types.attrsOf sysfsAttrs // {
description = "nested attribute set of null or sysfs attribute values";
};
};
description = ''
sysfs attributes to be set as soon as they become available.
Attribute names represent path components in the sysfs filesystem and
cannot be `.` or `..` nor contain any slash character (`/`).
Names may contain shell‐style glob patterns (`*`, `?` and `[…]`)
matching a single path component, these should however be used with
caution, as they may produce unexpected results if attribute paths
overlap.
Values will be converted to strings, with list elements concatenated
with commata and booleans converted to numeric values (`0` or `1`).
`null` values are ignored, allowing removal of values defined in other
modules, as are empty attribute sets.
List values defined in different modules will _not_ be concatenated.
This option may only be used for attributes which can be set
idempotently, as the configured values might be written more than once.
'';
default = { };
example = lib.literalExpression ''
{
# enable transparent hugepages with deferred defragmentaion
kernel.mm.transparent_hugepage = {
enabled = "always";
defrag = "defer";
shmem_enabled = "within_size";
};
devices.system.cpu = {
# configure powesave frequency governor for all CPUs
# the [0-9]* glob pattern ensures that other paths
# like cpufreq or cpuidle are not matched
"cpu[0-9]*" = {
scaling_governor = "powersave";
energy_performance_preference = 8;
};
# disable frequency boost
intel_pstate.no_turbo = true;
};
}
'';
};
};
config = lib.mkIf (cfg != { }) {
systemd = {
paths = {
"nixos-sysfs@" = {
description = "/%I attribute watcher";
pathConfig.PathExistsGlob = "/%I";
unitConfig.DefaultDependencies = false;
};
}
// listToAttrs (
mapAttrsToListRecursive (
p: v:
if v == null then
[ ]
else
nameValuePair "nixos-sysfs@${escapeSystemdPath (mkPath p)}" {
overrideStrategy = "asDropin";
wantedBy = [ "sysinit.target" ];
before = [ "sysinit.target" ];
}
) cfg
);
services."nixos-sysfs@" = {
description = "/%I attribute setter";
unitConfig = {
DefaultDependencies = false;
AssertPathIsMountPoint = "/sys";
AssertPathExistsGlob = "/%I";
};
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
# while we could be tempted to use simple shell script to set the
# sysfs attributes specified by the path or glob pattern, it is
# almost impossible to properly escape a glob pattern so that it
# can be used safely in a shell script
ExecStart = "${lib.getExe' config.systemd.package "systemd-tmpfiles"} --prefix=/sys --create ${tmpfiles}/%i.conf";
# hardening may be overkill for such a simple and short‐lived
# service, the following settings would however be suitable to deny
# access to anything but /sys
#ProtectProc = "noaccess";
#ProcSubset = "pid";
#ProtectSystem = "strict";
#PrivateDevices = true;
#SystemCallErrorNumber = "EPERM";
#SystemCallFilter = [
# "@basic-io"
# "@file-system"
#];
};
};
};
warnings = mapAttrsToListRecursive (
p: v:
if hasGlob p then
"Attribute path \"${concatStringsSep "." p}\" contains glob patterns. Please ensure that it does not overlap with other paths."
else
[ ]
) cfg;
assertions = mapAttrsToListRecursive (p: v: {
assertion = all (n: match ''(\.\.?|.*/.*)'' n == null) p;
message = "Attribute path \"${concatStringsSep "." p}\" has invalid components.";
}) cfg;
};
meta.maintainers = with lib.maintainers; [ mvs ];
}

View File

@@ -31,6 +31,7 @@
./config/stub-ld.nix
./config/swap.nix
./config/sysctl.nix
./config/sysfs.nix
./config/system-environment.nix
./config/system-path.nix
./config/terminfo.nix

View File

@@ -2311,11 +2311,28 @@ in
environment.etc = lib.mapAttrs' makePAMService enabledServices;
systemd = lib.optionalAttrs config.security.pam.services.login.updateWtmp {
tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf
services.lastlog2-import.enable = true;
packages = [ pkgs.util-linux.lastlog ]; # lib/systemd/system/lastlog2-import.service
};
systemd =
lib.optionalAttrs
(lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
{
tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf
services.lastlog2-import = {
enable = true;
wantedBy = [ "default.target" ];
after = [
"local-fs.target"
"systemd-tmpfiles-setup.service"
];
# TODO: ${pkgs.util-linux.lastlog}/lib/systemd/system/lastlog2-import.service
# uses unpatched /usr/bin/mv, needs to be fixed on staging
# in the meantime, use a service drop-in here
serviceConfig.ExecStartPost = [
""
"${lib.getExe' pkgs.coreutils "mv"} /var/log/lastlog /var/log/lastlog.migrated"
];
};
packages = [ pkgs.util-linux.lastlog ]; # lib/systemd/system/lastlog2-import.service
};
security.pam.services = {
other.text = ''

View File

@@ -36,7 +36,7 @@ in
};
configFile = lib.mkOption {
type = lib.types.path;
type = lib.types.nullOr lib.types.path;
example = lib.literalExpression ''
pkgs.writeText "oxidized-config.yml" '''
---
@@ -122,6 +122,8 @@ in
};
};
}
// lib.optionalAttrs (cfg.configFile != null) {
"${cfg.dataDir}/.config/oxidized/config" = {
"L+" = {
argument = "${cfg.configFile}";

View File

@@ -152,6 +152,7 @@ in
ProtectSystem = "full";
ReadWritePaths = [ cfg.dataDir ];
RuntimeDirectory = "traefik";
WorkingDirectory = cfg.dataDir;
};
};

View File

@@ -1395,6 +1395,7 @@ in
syncthing-folders = runTest ./syncthing-folders.nix;
syncthing-relay = runTest ./syncthing-relay.nix;
sysinit-reactivation = runTest ./sysinit-reactivation.nix;
sysfs = runTest ./sysfs.nix;
systemd = runTest ./systemd.nix;
systemd-analyze = runTest ./systemd-analyze.nix;
systemd-binfmt = handleTestOn [ "x86_64-linux" ] ./systemd-binfmt.nix { };

View File

@@ -13,9 +13,18 @@
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.succeed("run0 --pty true") # perform full login
print(machine.succeed("lastlog2 --active --user root"))
machine.succeed("stat /var/lib/lastlog/lastlog2.db")
with subtest("Test legacy lastlog import"):
# create old lastlog file to test import
# empty = nothing will actually be imported, but the service will run
machine.succeed("touch /var/log/lastlog")
machine.wait_for_unit("lastlog2-import.service")
machine.succeed("journalctl -b --grep 'Starting Import lastlog data into lastlog2 database'")
machine.succeed("stat /var/log/lastlog.migrated")
with subtest("Test lastlog entries are created by logins"):
machine.wait_for_unit("multi-user.target")
machine.succeed("run0 --pty true") # perform full login
print(machine.succeed("lastlog2 --active --user root"))
machine.succeed("stat /var/lib/lastlog/lastlog2.db")
'';
}

37
nixos/tests/sysfs.nix Normal file
View File

@@ -0,0 +1,37 @@
{ lib, ... }:
{
name = "sysfs";
meta.maintainers = with lib.maintainers; [ mvs ];
nodes.machine = {
boot.kernel.sysfs = {
kernel.mm.transparent_hugepage = {
enabled = "always";
defrag = "defer";
shmem_enabled = "within_size";
};
block."*".queue.scheduler = "none";
};
};
testScript =
{ nodes, ... }:
let
inherit (nodes.machine.boot.kernel) sysfs;
in
''
from shlex import quote
def check(filename, contents):
machine.succeed('grep -F -q {} {}'.format(quote(contents), quote(filename)))
check('/sys/kernel/mm/transparent_hugepage/enabled',
'[${sysfs.kernel.mm.transparent_hugepage.enabled}]')
check('/sys/kernel/mm/transparent_hugepage/defrag',
'[${sysfs.kernel.mm.transparent_hugepage.defrag}]')
check('/sys/kernel/mm/transparent_hugepage/shmem_enabled',
'[${sysfs.kernel.mm.transparent_hugepage.shmem_enabled}]')
'';
}

View File

@@ -36,20 +36,20 @@ let
hash =
{
x86_64-linux = "sha256-EbgP2CjUBiC+2G7TkGyuxaqr35sTArls4lbDNTH1Pmc=";
x86_64-darwin = "sha256-OrDuzSaPxuedhS21Hx1PNTbp6eQpfFfUbO05gIu5Ou8=";
aarch64-linux = "sha256-V0aEGqBRf3qVKvPYNypQ9hYWovqQIC3kQq2goq/hVjA=";
aarch64-darwin = "sha256-29i/+mz0NCU0ZCO+tzlbSl1iKx5/H89bGQTvRR5/PuA=";
armv7l-linux = "sha256-VSsn4d9ztFgGXVZeCeTSHDD5n3aTBbHF/xx2JvTGOeQ=";
x86_64-linux = "sha256-Fji3/9T8X2VQH6gUhReSuniuX2BX+4S7uPJWEZn56vc=";
x86_64-darwin = "sha256-LgYdgiZbMdpe/KjAYuAVYEFFc1gcFSo5+/6lf15zUvk=";
aarch64-linux = "sha256-WxJEjTvXK1N1FjEFv0nUX7oLgPrcKlPHYSiLkTcdhj4=";
aarch64-darwin = "sha256-2H44MkP7Vv+j78DxGWROHCPdMQv2WzTrG1I7LANMYqg=";
armv7l-linux = "sha256-Pw9krAFjrllNOsXipaZy7X7wnB7C8V45WU7HuKa59JQ=";
}
.${system} or throwSystem;
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.102.3";
version = "1.103.0";
# This is used for VS Code - Remote SSH test
rev = "488a1f239235055e34e673291fb8d8c810886f81";
rev = "e3550cfac4b63ca4eafca7b601f0d2885817fd1f";
in
callPackage ./generic.nix {
pname = "vscode" + lib.optionalString isInsiders "-insiders";
@@ -82,7 +82,7 @@ callPackage ./generic.nix {
src = fetchurl {
name = "vscode-server-${rev}.tar.gz";
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
hash = "sha256-xVYG/EJRPRJBj3BSarTwpX9F1UM/OI+7ci6vQa64iWI=";
hash = "sha256-GEN8WMPaYhwQsgml3tXWJP7F4RXH5vy6Ht0RUGauxnw=";
};
stdenv = stdenvNoCC;
};

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "snes9x";
version = "0-unstable-2025-07-03";
version = "0-unstable-2025-08-10";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = "68acd5bfa3146d7124233e3e372f6ffb5d8d0dcf";
hash = "sha256-X3O4GirNXzjMNYH7UrItNpYGT+8NWPsKl+sAs036OCU=";
rev = "f6c78e954d7f38498f82145d20a916acea6cbc57";
hash = "sha256-oFKO9y6t0BXeykuqZYfe2KKJpkm7Y2b7JuMJYspkL3g=";
};
makefile = "Makefile";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "stella";
version = "0-unstable-2025-07-28";
version = "0-unstable-2025-08-07";
src = fetchFromGitHub {
owner = "stella-emu";
repo = "stella";
rev = "211b4902d5b4440b0aa567dade4eebf77cd868aa";
hash = "sha256-l2b2Lu9l5CwmfDsJazOdQ9mowxfAqJY4SEgtDxCnYxY=";
rev = "92313128c3e2afdb9b3decf6642d342af18a1ab5";
hash = "sha256-b1GaRB9Iv3qqyb3I9XKmEbkiplV+Wi3TflJdnQboLbw=";
};
makefile = "Makefile";

View File

@@ -2,6 +2,7 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
runtimeShell,
buildPackages,
gettext,
@@ -52,6 +53,15 @@ stdenv.mkDerivation rec {
hash = "sha256-e7Wjda+CobYatblvVCGkMAO2aWrdSCp7q+qIEGnGDCY=";
};
# Fix hangs in tests, hopefully
# FIXME: remove in next release
patches = [
(fetchpatch {
url = "https://gitlab.com/sane-project/backends/-/commit/8acc267d5f4049d8438456821137ae56e91baea9.patch";
hash = "sha256-IyupDeH1MPvEBnGaUzBbCu106Gp7zXxlPGFAaiiINQI=";
})
];
postPatch = ''
# Do not create lock dir in install phase
sed -i '/^install-lockpath:/!b;n;c\ # pass' backend/Makefile.am

View File

@@ -74,6 +74,7 @@ let
"-D g15=OFF"
"-D CMAKE_CXX_STANDARD=17" # protobuf >22 requires C++ 17
"-D BUILD_NUMBER=${lib.versions.patch source.version}"
"-D CMAKE_UNITY_BUILD=ON" # Upstream uses this in their build pipeline to speed up builds
"-D bundled-gsl=OFF"
"-D bundled-json=OFF"
]

View File

@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
];
meta = {
description = "Easy to use, general purpose Computer Algebra System${lib.optionalString enableGui ", built with GUI."}";
description = "Easy to use, general purpose Computer Algebra System, optionally with GUI";
homepage = "http://www.yacas.org/";
license = lib.licenses.gpl2Plus;
maintainers = [ ];

View File

@@ -38,7 +38,7 @@ linkFarm "writeShellApplication-tests" {
script = writeShellApplication {
name = "test-meta";
text = "";
meta.description = "A test for the `writeShellApplication` `meta` argument";
meta.description = "Test for the `writeShellApplication` `meta` argument";
};
in
assert script.meta.mainProgram == "test-meta";
@@ -101,7 +101,7 @@ linkFarm "writeShellApplication-tests" {
exit 1
fi
'';
meta.description = "A test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`";
meta.description = "Test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`";
expected = "";
};

View File

@@ -5,13 +5,13 @@
}:
buildGoModule rec {
pname = "alpaca-proxy";
version = "2.0.10";
version = "2.0.11";
src = fetchFromGitHub {
owner = "samuong";
repo = "alpaca";
tag = "v${version}";
hash = "sha256-1CMuZl1bVlofogPwA2wRuQPlXNE2EM1B8rDDDaJGq64=";
hash = "sha256-74JQ9ltJ7+sasySgNN3AaXlBILP7VgFN06adoNJG+Bc=";
};
vendorHash = "sha256-N9qpyCQg6H1v/JGJ2wCxDX+ZTM9x6/BM6wQ26xC+dlE=";

View File

@@ -2,36 +2,19 @@
stdenv,
fetchurl,
lib,
cmake,
extra-cmake-modules,
kdoctools,
qca-qt5,
qjson,
qtquickcontrols2,
qtscript,
qtwebengine,
karchive,
kcmutils,
kconfig,
kdnssd,
kguiaddons,
kinit,
kirigami2,
knewstuff,
knotifyconfig,
ktexteditor,
kwindowsystem,
pkg-config,
kdePackages,
fftw,
phonon,
plasma-framework,
threadweaver,
breeze-icons,
wrapQtAppsHook,
curl,
ffmpeg,
gdk-pixbuf,
gst_all_1,
libaio,
liblastfm,
libmtp,
libsysprof-capture,
libunwind,
loudmouth,
lzo,
lz4,
@@ -43,11 +26,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "amarok";
version = "3.2.2";
version = "3.3.1";
src = fetchurl {
url = "mirror://kde/stable/amarok/${finalAttrs.version}/amarok-${finalAttrs.version}.tar.xz";
sha256 = "sha256-/N48N9H4FezIiTD+bR6k1LCx7Tsz/NMt9VQq+HTdKrA=";
hash = "sha256-OW8uqToH25XI+762gNeAai5ZVKUgxSwFZIXBHeYznAE=";
};
outputs = [
@@ -55,39 +38,15 @@ stdenv.mkDerivation (finalAttrs: {
"doc"
];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
wrapQtAppsHook
];
propagatedBuildInputs = [
qca-qt5
qjson
qtquickcontrols2
qtscript
qtwebengine
karchive
kcmutils
kconfig
kdnssd
kguiaddons
kinit
kirigami2
knewstuff
knotifyconfig
ktexteditor
kwindowsystem
phonon
plasma-framework
threadweaver
buildInputs = [
curl
fftw
ffmpeg
gdk-pixbuf
libaio
liblastfm
libmtp
libsysprof-capture
libunwind
loudmouth
lz4
lzo
@@ -95,15 +54,52 @@ stdenv.mkDerivation (finalAttrs: {
snappy
taglib
taglib_extras
breeze-icons
];
]
++ (with kdePackages; [
qca
qt5compat
qtbase
qtdeclarative
qtwebengine
kcmutils
kcoreaddons
kdnssd
kio
kpackage
kstatusnotifieritem
ktexteditor
threadweaver
])
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
]);
enableParallelBuilding = true;
nativeBuildInputs = [
cmake
pkg-config
]
++ (with kdePackages; [
extra-cmake-modules
kdoctools
qttools
wrapQtAppsHook
]);
meta = with lib; {
env.LANG = "C.UTF-8";
postInstall = ''
qtWrapperArgs+=(
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
)
'';
meta = {
homepage = "https://amarok.kde.org";
description = "Powerful music player with an intuitive interface";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ peterhoeg ];
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ];
mainProgram = "amarok";
};
})

View File

@@ -90,10 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://github.com/opencollab/arpack-ng";
changelog = "https://github.com/opencollab/arpack-ng/blob/${finalAttrs.version}/CHANGES";
description = ''
A collection of Fortran77 subroutines to solve large scale eigenvalue
problems.
'';
description = "Collection of Fortran77 subroutines to solve large scale eigenvalue problems";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
ttuegel

View File

@@ -0,0 +1,85 @@
{
lib,
fetchFromGitHub,
fetchpatch2,
python3Packages,
qt6Packages,
libvncserver,
}:
python3Packages.buildPythonApplication rec {
pname = "blink-qt";
version = "6.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "AGProjects";
repo = "blink-qt";
tag = version;
hash = "sha256-QESg9yo5oddYqSKuFLSMI2Oju3FCq97+j0uJDK85Yy8=";
};
patches = [
# Remove when version > 6.0.4
(fetchpatch2 {
url = "https://github.com/AGProjects/blink-qt/commit/45343c90ae0680a3d03589fa8a12ac1eb85a6925.patch";
hash = "sha256-XwV5L3r0IqWkhlaJypS2cHkDCcoumOgEEqDpdcaTviE=";
})
];
nativeBuildInputs = [ qt6Packages.wrapQtAppsHook ];
build-system = with python3Packages; [
cython
setuptools
];
buildInputs = [
libvncserver
qt6Packages.qtbase
qt6Packages.qtsvg
];
dependencies = with python3Packages; [
dateutils
dnspython
google-api-python-client
lxml
lxml-html-clean
msrplib
oauth2client
otr
pgpy
pyqt6
pyqt6-webengine
python3-application
python3-eventlib
python3-gnutls
sipsimple
sqlobject
standard-imghdr
xcaplib
];
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
pythonImportsCheck = [ "blink" ];
# no upstream tests exist
doCheck = false;
meta = {
description = "Blink SIP Client";
homepage = "https://icanblink.com";
downloadPage = "https://github.com/agprojects/blink-qt";
changelog = "https://github.com/AGProjects/blink-qt/releases/tag/${version}";
license = lib.licenses.gpl3Plus;
teams = [ lib.teams.ngi ];
platforms = lib.platforms.unix;
mainProgram = "blink";
};
}

View File

@@ -69,7 +69,7 @@ stdenv.mkDerivation {
+ lib.optionalString stdenv.cc.isClang " -Wno-error=incompatible-function-pointer-types";
meta = with lib; {
description = "Buzztrax is a modular music composer for Linux";
description = "Modular music composer for Linux";
homepage = "https://www.buzztrax.org/";
license = licenses.lgpl21Plus;
maintainers = [ maintainers.bendlas ];

View File

@@ -0,0 +1,74 @@
From f26dd335c8650a2f8ab7d6e4fb5dfc40ee6af618 Mon Sep 17 00:00:00 2001
From: Jade Lovelace <software@lfcode.ca>
Date: Sun, 10 Aug 2025 10:54:14 +0000
Subject: [PATCH] fix: include libucontext in Requires.private in cmake builds
This is required so that static musl actually links to libucontext
correctly to get setcontext/etc for fibers.
---
c++/CMakeLists.txt | 4 ++++
c++/configure.ac | 4 ++++
c++/pkgconfig/kj-async.pc.in | 1 +
3 files changed, 9 insertions(+)
diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
index f335f12f7c..b2a24e40e0 100644
--- a/c++/CMakeLists.txt
+++ b/c++/CMakeLists.txt
@@ -96,6 +96,9 @@ set_property(CACHE WITH_FIBERS PROPERTY STRINGS AUTO ON OFF)
# CapnProtoConfig.cmake.in needs this variable.
set(_WITH_LIBUCONTEXT OFF)
+# Used by pkg-config files
+set(ASYNC_REQUIRES_PRIVATE "")
+
if (WITH_FIBERS OR WITH_FIBERS STREQUAL "AUTO")
set(_capnp_fibers_found OFF)
if (WIN32 OR CYGWIN)
@@ -116,6 +119,7 @@ if (WITH_FIBERS OR WITH_FIBERS STREQUAL "AUTO")
if (libucontext_FOUND)
set(_WITH_LIBUCONTEXT ON)
set(_capnp_fibers_found ON)
+ set(ASYNC_REQUIRES_PRIVATE "${ASYNC_REQUIRES_PRIVATE} libucontext")
endif()
else()
set(_capnp_fibers_found OFF)
diff --git a/c++/configure.ac b/c++/configure.ac
index a2de7aac80..ce3c632e8c 100644
--- a/c++/configure.ac
+++ b/c++/configure.ac
@@ -216,6 +216,8 @@ AS_IF([test "$with_fibers" != no], [
])
])
+ASYNC_REQUIRES_PRIVATE=""
+
# Check for library support necessary for fibers.
AS_IF([test "$with_fibers" != no], [
case "${host_os}" in
@@ -241,6 +243,7 @@ AS_IF([test "$with_fibers" != no], [
])
AS_IF([test "$ucontext_supports_fibers" = yes], [
ASYNC_LIBS="$ASYNC_LIBS -lucontext"
+ ASYNC_REQUIRES_PRIVATE="$ASYNC_REQUIRES_PRIVATE libucontext"
with_fibers=yes
], [
AS_IF([test "$with_fibers" = yes], [
@@ -259,6 +262,7 @@ AS_IF([test "$with_fibers" = yes], [
], [
CXXFLAGS="$CXXFLAGS -DKJ_USE_FIBERS=0"
])
+AC_SUBST(ASYNC_REQUIRES_PRIVATE, $ASYNC_REQUIRES_PRIVATE)
# CapnProtoConfig.cmake.in needs these variables,
# we force them to NO because we don't need the CMake dependency for them,
diff --git a/c++/pkgconfig/kj-async.pc.in b/c++/pkgconfig/kj-async.pc.in
index 49d5ff6996..41aae28555 100644
--- a/c++/pkgconfig/kj-async.pc.in
+++ b/c++/pkgconfig/kj-async.pc.in
@@ -8,4 +8,5 @@ Description: Basic utility library called KJ (async part)
Version: @VERSION@
Libs: -L${libdir} -lkj-async @ASYNC_LIBS@ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ @STDLIB_FLAG@
Requires: kj = @VERSION@
+Requires.private: @ASYNC_REQUIRES_PRIVATE@
Cflags: -I${includedir} @ASYNC_LIBS@ @PTHREAD_CFLAGS@ @STDLIB_FLAG@ @CAPNP_LITE_FLAG@

View File

@@ -1,11 +1,14 @@
{
binutils,
lib,
libucontext,
pkg-config,
clangStdenv,
fetchFromGitHub,
cmake,
openssl,
zlib,
nix-update-script,
}:
let
@@ -40,12 +43,22 @@ clangStdenv.mkDerivation rec {
hash = "sha256-aDcn4bLZGq8915/NPPQsN5Jv8FRWd8cAspkG3078psc=";
};
nativeBuildInputs = [ cmake ];
patches = [
# https://github.com/capnproto/capnproto/pull/2377
./fix-libucontext.patch
];
nativeBuildInputs = [
cmake
pkg-config
];
propagatedBuildInputs = [
openssl
zlib
]
++ lib.optional (clangStdenv.cc.isClang && clangStdenv.hostPlatform.isStatic) empty-libgcc_eh;
++ lib.optional (clangStdenv.cc.isClang && clangStdenv.hostPlatform.isStatic) empty-libgcc_eh
# musl doesn't ship getcontext/setcontext unlike basically every other libc
++ lib.optional clangStdenv.hostPlatform.isMusl libucontext;
# FIXME: separate the binaries from the stuff that user systems actually use
# This runs into a terrible UX issue in Lix and I just don't want to debug it
@@ -55,6 +68,10 @@ clangStdenv.mkDerivation rec {
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
# merely requires setcontext/getcontext (libc), lix expects fibers to
# be available, and we want to make sure that the build will fail if
# it breaks
(lib.cmakeBool "WITH_FIBERS" true)
# Take optimization flags from CXXFLAGS rather than cmake injecting them
(lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
];
@@ -66,6 +83,8 @@ clangStdenv.mkDerivation rec {
separateDebugInfo = true;
passthru.updateScript = nix-update-script { };
meta = with lib; {
homepage = "https://capnproto.org/";
description = "Cap'n Proto cerealization protocol";

View File

@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation {
'';
meta = with lib; {
description = "Cardo is a large Unicode font specifically designed for the needs of classicists, Biblical scholars, medievalists, and linguists";
description = "Large Unicode font specifically designed for the needs of classicists, Biblical scholars, medievalists, and linguists";
longDescription = ''
Cardo is a large Unicode font specifically designed for the needs of
classicists, Biblical scholars, medievalists, and linguists. It also

View File

@@ -6,14 +6,14 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-tally";
version = "1.0.66";
version = "1.0.67";
src = fetchCrate {
inherit pname version;
hash = "sha256-PC/gscMO7oYcsd/cVcP5WZYweWRsh23Z7Do/qeGjAOc=";
hash = "sha256-Jt7pEpy06xoYWLIMustYvVB81fcGEK7GYvh5ukDUiQ0=";
};
cargoHash = "sha256-00J8ip2fr/nphY0OXVOLKv7gaHitMziwsdJ4YBaYxog=";
cargoHash = "sha256-gXFcsaXaCkX4wQ9/eHr9CUI/r6KEAfZ8HYiDqBRtQeA=";
meta = {
description = "Graph the number of crates that depend on your crate over time";

View File

@@ -200,7 +200,15 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
meta = {
description = "CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave";
description = "Symbolic framework for numeric optimization";
longDescription = ''
CasADi is a symbolic framework for numeric optimization
implementing automatic differentiation in forward and reverse
modes on sparse matrix-valued computational graphs. It supports
self-contained C-code generation and interfaces state-of-the-art
codes such as SUNDIALS, IPOPT etc. It can be used from C++,
Python or Matlab/Octave
'';
homepage = "https://github.com/casadi/casadi";
license = lib.licenses.lgpl3Only;
maintainers = with lib.maintainers; [ nim65s ];

View File

@@ -115,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
description = "CBMC is a Bounded Model Checker for C and C++ programs";
description = "Bounded Model Checker for C and C++ programs";
homepage = "http://www.cprover.org/cbmc/";
license = lib.licenses.bsdOriginal;
maintainers = with lib.maintainers; [ jiegec ];

View File

@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
];
meta = {
description = "Composing and deciphering C (or C++) declarations or casts, aka ''gibberish.''";
description = "Composing and deciphering C (or C++) declarations or casts, aka 'gibberish'";
homepage = "https://github.com/paul-j-lucas/cdecl";
changelog = "https://github.com/paul-j-lucas/cdecl/blob/cdecl-${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;

View File

@@ -28,7 +28,7 @@ buildGoModule rec {
meta = {
changelog = "https://github.com/paepckehh/certinfo/releases/tag/v${version}";
homepage = "https://paepcke.de/certinfo";
description = "Tool to analyze and troubleshoot x.509 & ssh certificates, encoded keys, ...";
description = "Tool to analyze and troubleshoot x.509 & ssh certificates, encoded keys";
license = lib.licenses.bsd3;
mainProgram = "certinfo";
maintainers = with lib.maintainers; [ paepcke ];

View File

@@ -30,9 +30,7 @@ buildGoModule rec {
};
meta = with lib; {
description = ''
A tool for managing your Cloudflare credentials, securely..
'';
description = "Tool for managing your Cloudflare credentials, securely";
homepage = "https://github.com/jacobbednarz/cf-vault/";
license = licenses.mit;
maintainers = with maintainers; [ viraptor ];

View File

@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://github.com/dloebl/cgif";
description = "CGIF, a GIF encoder written in C";
description = "GIF encoder written in C";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.unix;

View File

@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "https://checkinstall.izto.org/";
description = "Tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
description = "Tool for automatically generating Slackware, RPM or Debian packages when doing `make install`";
maintainers = [ ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;

View File

@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
doCheck = false;
meta = with lib; {
description = "This is a Library for ChezScheme providing the portable hygenic pattern matcher by Alex Shinn";
description = "Library for ChezScheme providing the portable hygenic pattern matcher by Alex Shinn";
homepage = "https://github.com/fedeinthemix/chez-matchable/";
maintainers = [ maintainers.jitwit ];
license = licenses.publicDomain;

View File

@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
doCheck = false;
meta = with lib; {
description = "This is a MIT/GNU Scheme compatibility library for Chez Scheme";
description = "MIT/GNU Scheme compatibility library for Chez Scheme";
homepage = "https://github.com/fedeinthemix/chez-mit/";
maintainers = [ maintainers.jitwit ];
license = licenses.gpl3Plus;

View File

@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
doCheck = false;
meta = with lib; {
description = "This is a port of the ‘MIT Scmutils’ library to Chez Scheme";
description = "Port of the 'MIT Scmutils' library to Chez Scheme";
homepage = "https://github.com/fedeinthemix/chez-scmutils/";
maintainers = [ maintainers.jitwit ];
license = licenses.gpl3;

View File

@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ openssl ];
meta = with lib; {
description = ''The "Command Line Interactive Controller for Kubernetes"'';
description = "Command Line Interactive Controller for Kubernetes";
homepage = "https://github.com/databricks/click";
license = [ licenses.asl20 ];
maintainers = [ maintainers.mbode ];

View File

@@ -8,14 +8,14 @@
python3Packages.buildPythonApplication rec {
pname = "clickable";
version = "8.3.1";
version = "8.4.0";
format = "pyproject";
src = fetchFromGitLab {
owner = "clickable";
repo = "clickable";
rev = "v${version}";
hash = "sha256-Vn2PyALaRrE+jJRdZzW+jjCm3f2GfpgrQcFGB7kr4EM=";
hash = "sha256-mqAJBxYHOsMiSjWjtam/GvxjNBZ8mkOuBibmFORGhEg=";
};
build-system = [ python3Packages.setuptools ];

View File

@@ -22,7 +22,7 @@ mkDerivation {
bytestring
network
];
description = "accepts TCP connections and echoes the client's IP address back to it";
description = "Accepts TCP connections and echoes the client's IP address back to it";
license = lib.licenses.lgpl3;
mainProgram = "client-ip-echo";
}

View File

@@ -9,13 +9,13 @@
buildGoModule rec {
pname = "cloudflared";
version = "2025.7.0";
version = "2025.8.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
tag = version;
hash = "sha256-GAmSWdyFQYtGQ5Ml+10Xy7OpKc1bXuAc3hy7Ly6+yC8=";
hash = "sha256-kvhDdgnAkYvs+W0TE8Pu3nlEp2n7tHDphDwqCc4J0eE=";
};
vendorHash = null;

View File

@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
changelog = "https://github.com/codefresh-io/cli/releases/tag/v${finalAttrs.version}";
description = "Codefresh CLI tool to interact with Codefresh services";
description = "CLI tool to interact with Codefresh services";
homepage = "https://github.com/codefresh-io/cli";
license = lib.licenses.mit;
mainProgram = "codefresh";

View File

@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://colobot.info/";
description = "Colobot: Gold Edition is a real-time strategy game, where you can program your bots";
description = "Real-time strategy game with programmable bots";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ freezeboy ];
platforms = lib.platforms.linux;

View File

@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
description = "Commit message editor";
description = "Git commit message editor";
homepage = "https://github.com/sonnyp/Commit";
license = lib.licenses.gpl3Only;
teams = [ lib.teams.gnome-circle ];

View File

@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
description = "Find compression type/ratio on a file or set of files in Btrfs filesystem";
description = "Find compression type/ratio on a file or set of files in the Btrfs filesystem";
mainProgram = "compsize";
homepage = "https://github.com/kilobyte/compsize";
license = licenses.gpl2Plus;

View File

@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = with lib; {
description = "Construct is an abstraction over x86 NASM Assembly";
description = "Abstraction over x86 NASM Assembly";
longDescription = "Construct adds features such as while loops, if statements, scoped macros and function-call syntax to NASM Assembly.";
homepage = "https://github.com/Thomas-de-Bock/construct";
maintainers = with maintainers; [ rucadi ];

View File

@@ -119,7 +119,7 @@ perlPackages.buildPerlPackage rec {
meta = {
homepage = "https://convos.chat";
description = "Convos is the simplest way to use IRC in your browser";
description = "IRC browser client";
mainProgram = "convos";
license = lib.licenses.artistic2;
maintainers = with lib.maintainers; [ sgo ];

View File

@@ -65,7 +65,7 @@ buildGoModule rec {
meta = {
homepage = "https://crowdsec.net/";
changelog = "https://github.com/crowdsecurity/crowdsec/releases/tag/v${version}";
description = "CrowdSec is a free, open-source and collaborative IPS";
description = "Free, open-source and collaborative IPS";
longDescription = ''
CrowdSec is a free, modern & collaborative behavior detection engine,
coupled with a global IP reputation network. It stacks on fail2ban's

View File

@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = {
description = "(3)DS capture software for Linux and Mac";
description = "Nintendo DS and 3DS capture software for Linux and Mac";
homepage = "https://github.com/Gotos/CuteCapture";
license = lib.licenses.asl20;
platforms = lib.platforms.linux ++ lib.platforms.darwin;

View File

@@ -53,7 +53,7 @@ clangStdenv.mkDerivation rec {
];
meta = with lib; {
description = "d-SEAMS: Deferred Structural Elucidation Analysis for Molecular Simulations";
description = "Deferred Structural Elucidation Analysis for Molecular Simulations";
mainProgram = "yodaStruct";
longDescription = ''
d-SEAMS, is a free and open-source postprocessing engine for the analysis

View File

@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
];
doDist = false;
meta = {
description = "dashy";
description = "Open source, highly customizable, easy-to-use, privacy-respecting dashboard app";
homepage = "https://dashy.to";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.therealgramdalf ];

View File

@@ -23,7 +23,7 @@ buildGoModule rec {
meta = with lib; {
description = ''
A small human-editable language to emit DER or BER encodings of ASN.1
Small human-editable language to emit DER or BER encodings of ASN.1
structures and malformed variants of them
'';
homepage = "https://github.com/google/der-ascii";

View File

@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libX11 ];
meta = with lib; {
description = "Devour hides your current window when launching an external program";
description = "Hides your current window when launching an external program";
longDescription = "Devour hides your current window before launching an external program and unhides it after quitting";
homepage = "https://github.com/salman-abedin/devour";
license = licenses.gpl2Only;

View File

@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
];
meta = {
description = "Library provides a thin wrapper around QApplication, QGuiApplication and QCoreApplication";
description = "Thin wrapper around QApplication, QGuiApplication and QCoreApplication";
homepage = "https://gitlab.com/desktop-frameworks/applications";
changelog = "https://gitlab.com/desktop-frameworks/applications/-/blob/${finalAttrs.src.rev}/ChangeLog";
license = lib.licenses.gpl3Only;

View File

@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
passthru.updateScript = nix-update-script { };
meta = {
description = "Dhcpm is a CLI tool for constructing & sending DHCP messages";
description = "CLI tool for constructing & sending DHCP messages";
homepage = "https://github.com/leshow/dhcpm";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jmbaur ];

View File

@@ -10,7 +10,7 @@
let
pname = "digital";
pkgDescription = "A digital logic designer and circuit simulator.";
pkgDescription = "Digital logic designer and circuit simulator";
version = "0.31";
buildDate = "2024-09-03T14:02:31+02:00"; # v0.31 commit date

View File

@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "http://www.deadhat.com/";
description = ''
A C program to generate random data using several random models,
C program to generate random data using several random models,
with parameterized non uniformities and flexible output formats
'';
license = lib.licenses.gpl2Only;

View File

@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "http://www.deadhat.com/";
description = ''
A reimplementation of the Fourmilab/John Walker random number test program
Reimplementation of the Fourmilab/John Walker random number test program
ent with several improvements
'';
mainProgram = "djent";

View File

@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://lwn.net/Articles/421072/";
description = "cat replacement";
description = "'cat' replacement";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ qknight ];
platforms = platforms.all;

View File

@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
};
meta = with lib; {
description = "Dotfile manager and templater written in rust 🦀";
description = "Dotfile manager and templater written in Rust";
homepage = "https://github.com/SuperCuber/dotter";
license = licenses.unlicense;
maintainers = with maintainers; [ linsui ];

View File

@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
];
meta = with lib; {
description = "DPS8M: GE / Honeywell / Bull DPS‑8/M mainframe simulator";
description = "GE / Honeywell / Bull DPS-8/M mainframe simulator";
homepage = "https://gitlab.com/dps8m/dps8m";
changelog = "https://gitlab.com/dps8m/dps8m/-/wikis/DPS8M-${src.rev}-Release-Notes";
license = licenses.icu;

View File

@@ -27,10 +27,10 @@ php.buildComposerProject2 (finalAttrs: {
};
updateScript = writeScript "update.sh" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts xmlstarlet
#!nix-shell -i bash -p nix-update xmlstarlet
set -eu -o pipefail
version=$(curl -k --silent --globoff "https://updates.drupal.org/release-history/drupal/current" | xmlstarlet sel -t -v "project/releases/release[1]/tag")
update-source-version drupal $version --file=./pkgs/by-name/dr/drupal/package.nix
nix-update drupal --version $version
'';
};

View File

@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://github.com/Pedro-Beirao/dsda-launcher";
description = "This is a launcher GUI for the dsda-doom source port";
description = "Launcher GUI for the dsda-doom source port";
mainProgram = "dsda-launcher";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;

View File

@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
passthru.updateScript = nix-update-script { };
meta = {
description = "du + rust = dust. Like du but more intuitive";
description = "du, but more intuitive";
homepage = "https://github.com/bootandy/dust";
changelog = "https://github.com/bootandy/dust/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;

View File

@@ -20,7 +20,7 @@ buildGoModule {
vendorHash = "sha256-1lise/u40Q8W9STsuyrWIbhf2HY+SFCytUL1PTSWvfY=";
meta = {
description = "Easily Manage AWS ECS Resources in Terminal 🐱";
description = "Easily Manage AWS ECS Resources in Terminal";
homepage = "https://github.com/keidarcy/e1s";
changelog = "https://github.com/keidarcy/e1s/releases/tag/v${version}";
license = lib.licenses.mit;

View File

@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-TfAT36/JeBjBxymnX1gIyCEPZcxTW4fPVIOhHF3z9wA=";
meta = with lib; {
description = "A better way of working with structured data on the command line";
description = "Command-line tool for processing CSV, JSON and other structured data";
mainProgram = "each";
homepage = "https://github.com/arraypad/each";
license = with licenses; [ mit ];

View File

@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "easytier";
version = "2.4.0";
version = "2.4.1";
src = fetchFromGitHub {
owner = "EasyTier";
repo = "EasyTier";
tag = "v${version}";
hash = "sha256-GNHF15FJDLZKYrNuvaTQfsPGS6BabEhk5BZm7OzFbvU=";
hash = "sha256-H7mFBARxElegXeUsp+wTHy8X19Lk5FUL3GuU88+8UVs=";
};
cargoHash = "sha256-rwwrCiTiLn1DM3LaTNKzQi0tUWGzAYMXku9LHjq2K7g=";
cargoHash = "sha256-BNEc4R3Jzqx4ncMmmeZygM8peHqHGZ/HMy4eJyuvxv0=";
nativeBuildInputs = [
protobuf

View File

@@ -34,7 +34,7 @@ appimageTools.wrapType2 {
passthru.updateScript = nix-update-script { };
meta = {
description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail";
description = "Unofficial Election-based ProtonMail desktop client";
mainProgram = "electron-mail";
homepage = "https://github.com/vladimiry/ElectronMail";
license = lib.licenses.gpl3;

View File

@@ -154,7 +154,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://github.com/elogind/elogind";
description = ''The systemd project's "logind", extracted to a standalone package'';
description = "systemd project's 'logind', extracted to a standalone package";
platforms = platforms.linux; # probably more
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ nh2 ];

View File

@@ -127,7 +127,7 @@ buildNpmPackage rec {
'';
meta = with lib; {
description = "DVR software compatible with Mirakurun.";
description = "DVR software compatible with Mirakurun";
homepage = "https://github.com/l3tnun/EPGStation";
license = licenses.mit;
maintainers = with maintainers; [ midchildan ];

View File

@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
meta = {
homepage = "https://plus.excalidraw.com/excalifont";
description = "Excalifont is based on the original handwritten Virgil font carefully curated to improve legibility while preserving its hand-drawn nature";
description = "Font based on the original handwritten Virgil font carefully curated to improve legibility while preserving its hand-drawn nature";
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ drupol ];
license = lib.licenses.ofl;

View File

@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
configureFlags = lib.optional (!enableTools) "--disable-tools";
meta = with lib; {
description = "Exult is a project to recreate Ultima VII for modern operating systems";
description = "Recreation of Ultima VII for modern operating systems";
longDescription = ''
Ultima VII, an RPG from the early 1990's, still has a huge following. But,
being a DOS game with a very nonstandard memory manager, it is difficult

View File

@@ -18,7 +18,7 @@ buildDotnetGlobalTool (finalAttrs: {
};
meta = {
description = "Fable is an F# to JavaScript compiler";
description = "F# to JavaScript compiler";
mainProgram = "fable";
homepage = "https://github.com/fable-compiler/fable";
changelog = "https://github.com/fable-compiler/fable/releases/tag/v${finalAttrs.version}";

View File

@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ zlib ] ++ lib.optionals mklSupport [ mkl ];
meta = {
description = "FEBio Suite Solver";
description = "Software tool for nonlinear finite element analysis in biomechanics and biophysics";
license = with lib.licenses; [ mit ];
homepage = "https://febio.org/";
platforms = lib.platforms.unix;

View File

@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://imagej.net/software/fiji/";
description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
description = "Batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
mainProgram = "fiji";
platforms = [ "x86_64-linux" ];
sourceProvenance = with sourceTypes; [

View File

@@ -78,7 +78,7 @@ buildGo123Module {
};
meta = with lib; {
description = "Filebrowser is a web application for managing files and directories";
description = "Web application for managing files and directories";
homepage = "https://filebrowser.org";
license = licenses.asl20;
maintainers = with maintainers; [ oakenshield ];

View File

@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://github.com/epoupon/fileshelter";
description = "FileShelter is a 'one-click' file sharing web application";
description = "One-click file sharing web application";
mainProgram = "fileshelter";
maintainers = [ ];
license = lib.licenses.gpl3;

View File

@@ -16,7 +16,7 @@ symlinkJoin rec {
];
meta = {
description = "Fira font family including Fira Sans and Fira Mono";
description = "Font family including Fira Sans and Fira Mono";
homepage = "https://bboxtype.com/fira/";
license = lib.licenses.ofl;
platforms = lib.platforms.all;

View File

@@ -6,15 +6,15 @@
}:
rustPlatform.buildRustPackage rec {
pname = "firezone-gateway";
version = "1.4.12";
version = "1.4.15";
src = fetchFromGitHub {
owner = "firezone";
repo = "firezone";
tag = "gateway-${version}";
hash = "sha256-isWtx9DwJqPwlbA7MTW1r+VFpy7+xzVx86XvKlsQ+SY=";
hash = "sha256-eIef5csbrZdh2e2fxBSBYAgHSpSfHCMTbatTsHZR8DY=";
};
cargoHash = "sha256-w/FHN3EQBqM32O1zHEFXvg8c5JBeM14MUbq29APCrVI=";
cargoHash = "sha256-OAWPO18s9749nfkyPEaArRkxdqnCKo69k8ZSRS2Tyw0=";
sourceRoot = "${src.name}/rust";
buildAndTestSubdir = "gateway";
RUSTFLAGS = "--cfg system_certs";

View File

@@ -21,7 +21,7 @@ php.buildComposerProject2 (finalAttrs: {
meta = with lib; {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";
description = "Flarum is a delightfully simple discussion platform for your website";
description = "Delightfully simple discussion platform for your website";
homepage = "https://github.com/flarum/flarum";
license = lib.licenses.mit;
maintainers = with maintainers; [

View File

@@ -34,7 +34,7 @@ buildRubyGem rec {
passthru.updateScript = bundlerUpdateScript "${pname}";
meta = with lib; {
description = "It allows you to search for a key and get the value and the line number where it is located in YAML and JSON files";
description = "Grep for keys in YAML and JSON files";
homepage = "https://github.com/ceritium/flatito";
license = licenses.mit;
maintainers = with maintainers; [ rucadi ];

View File

@@ -43,7 +43,7 @@ stdenv.mkDerivation {
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "(F)ast (lat)tice (r)eduction of integer lattice bases";
description = "Fast lattice reduction of integer lattice bases";
homepage = "https://github.com/keeganryan/flatter";
license = licenses.lgpl3Only;
mainProgram = "flatter";

View File

@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
];
meta = with lib; {
description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac";
description = "Free/libre font explorer for Linux, Windows and Mac";
homepage = "https://github.com/fontmatrix/fontmatrix";
license = licenses.gpl2Plus;
platforms = platforms.linux;

View File

@@ -22,7 +22,7 @@ stdenv.mkDerivation {
];
meta = with lib; {
description = "FORM project for symbolic manipulation of very big expressions";
description = "Symbolic manipulation of very big expressions";
homepage = "https://www.nikhef.nl/~form/";
license = licenses.gpl3;
maintainers = [ maintainers.veprbl ];

View File

@@ -41,7 +41,7 @@ buildDotnetModule (finalAttrs: {
};
meta = {
description = "FsAutoComplete project (FSAC) provides a backend service for rich editing or intellisense features for editors";
description = "Backend service for rich editing or intellisense features for editors";
mainProgram = "fsautocomplete";
homepage = "https://github.com/fsharp/FsAutoComplete";
changelog = "https://github.com/fsharp/FsAutoComplete/releases/tag/${finalAttrs.src.tag}";

View File

@@ -2,25 +2,30 @@
lib,
buildNpmPackage,
fetchFromGitHub,
fetchNpmDeps,
fetchpatch,
gitUpdater,
}:
buildNpmPackage (finalAttrs: {
pname = "gemini-cli";
version = "0.1.14";
version = "0.1.18";
src = fetchFromGitHub {
owner = "google-gemini";
repo = "gemini-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-u73aqh7WnfetHj/64/HyzSR6aJXRKt0OXg3bddhhQq8=";
hash = "sha256-vO70olSAG6NaZjyERU22lc8MbVivyJFieGcy0xOErrc=";
};
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
hash = "sha256-9T31QlffPP6+ryRVN/7t0iMo+2AgwPb6l6CkYh6839U=";
};
patches = [
(fetchpatch {
url = "https://github.com/google-gemini/gemini-cli/pull/5336/commits/c1aef417d559237bf4d147c584449b74d6fbc1f8.patch";
name = "restore-missing-dependencies-fields.patch";
hash = "sha256-euRoLpbv075KIpYF9QPMba5FxG4+h/kxwLRetaay33s=";
})
];
npmDepsHash = "sha256-8dn0i2laR4LFZk/sFDdvblvrHSnraGcLl3WAthCOKc0=";
preConfigure = ''
mkdir -p packages/generated
@@ -35,6 +40,7 @@ buildNpmPackage (finalAttrs: {
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-test-utils
rm -f $out/share/gemini-cli/node_modules/gemini-cli-vscode-ide-companion
cp -r packages/cli $out/share/gemini-cli/node_modules/@google/gemini-cli
cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core

View File

@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--disable-rpath" ];
meta = with lib; {
description = "GiNaC is Not a CAS";
description = "GiNaC C++ library for symbolic manipulations";
homepage = "https://www.ginac.de/";
maintainers = with maintainers; [ lovek323 ];
license = licenses.gpl2;

View File

@@ -15,9 +15,7 @@ bundlerEnv {
passthru.updateScript = bundlerUpdateScript "git-fame";
meta = with lib; {
description = ''
A command-line tool that helps you summarize and pretty-print collaborators based on contributions
'';
description = "Command-line tool that helps you summarize and pretty-print collaborators based on contributions";
homepage = "http://oleander.io/git-fame-rb";
license = licenses.mit;
maintainers = with maintainers; [

View File

@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-2VhbvhGeQHAbQLW0iBAgl0ICAX/X+PnwcGdodJG2Hsw=";
meta = with lib; {
description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
description = "Commit changes in your git repository to a new branch without leaving the current branch";
homepage = "https://github.com/siedentop/git-quickfix";
license = licenses.gpl3;
platforms = platforms.all;

View File

@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage {
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "GlueSQL is quite sticky. It attaches to anywhere";
description = "Rust library for SQL databases";
homepage = "https://github.com/gluesql/gluesql";
license = licenses.asl20;
maintainers = with maintainers; [ happysalada ];

View File

@@ -33,7 +33,7 @@ buildGoModule (finalAttrs: {
passthru.updateScript = nix-update-script { };
meta = {
description = "A tool to generate Go data types from JSON Schema definitions.";
description = "Tool to generate Go data types from JSON Schema definitions";
homepage = "https://github.com/omissis/go-jsonschema";
changelog = "https://github.com/omissis/go-jsonschema/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;

View File

@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
'';
meta = {
description = "gobbles your terminal";
description = "Rust rewrite of Devour";
homepage = "https://github.com/EmperorPenguin18/gobble";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ vuimuich ];

View File

@@ -25,7 +25,7 @@ buildGoModule rec {
meta = with lib; {
homepage = "https://github.com/boumenot/gocover-cobertura";
description = "This is a simple helper tool for generating XML output in Cobertura format for CIs like Jenkins and others from go tool cover output";
description = "Simple helper tool for generating XML output in Cobertura format for CIs like Jenkins and others from go tool cover output";
mainProgram = "gocover-cobertura";
license = licenses.mit;
maintainers = with maintainers; [

View File

@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
cargoHash = "sha256-w4HSxdihElPz0q05vWjajQ9arZjAzd82L0kEKk1Uk8s=";
meta = {
description = "Grafana-to-ntfy (ntfy.sh) alerts channel";
description = "Bridge to forward Grafana alerts to ntfy.sh notification service";
homepage = "https://github.com/kittyandrew/grafana-to-ntfy";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.linux;

View File

@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = with lib; {
description = "Guile-zlib is a GNU Guile library providing bindings to zlib";
description = "GNU Guile library providing bindings to zlib";
homepage = "https://notabug.org/guile-zlib/guile-zlib";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ foo-dogsquared ];

View File

@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "GXml provides a GObject API for manipulating XML and a Serializable framework from GObject to XML";
description = "Provides a GObject API for manipulating XML and a Serializable framework from GObject to XML";
homepage = "https://gitlab.gnome.org/GNOME/gxml";
changelog = "https://gitlab.gnome.org/GNOME/gxml/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
license = licenses.lgpl21Plus;

View File

@@ -0,0 +1,42 @@
diff --git a/tools/bitlocker2hashcat.py b/tools/bitlocker2hashcat.py
index f7501a37b..a72fb8c78 100755
--- a/tools/bitlocker2hashcat.py
+++ b/tools/bitlocker2hashcat.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
# Construct a hash for use with hashcat mode 22100
# Usage: python3 bitlocker2hashcat.py <bitlocker_image> -o <bitlocker_partition_offset>
# Hashcat supports modes $bitlocker$0$ and $bitlocker$1$ and therefore this script will output hashes that relate to a VMK protected by a user password only.
diff --git a/tools/keybag2hashcat.py b/tools/keybag2hashcat.py
index 83da25c5e..6a30384ac 100755
--- a/tools/keybag2hashcat.py
+++ b/tools/keybag2hashcat.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
import argparse
import logging
import sys
diff --git a/tools/shiro1-to-hashcat.py b/tools/shiro1-to-hashcat.py
old mode 100755
new mode 100644
index 9619530ef..86ee8e502
--- a/tools/shiro1-to-hashcat.py
+++ b/tools/shiro1-to-hashcat.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
import os
import re
import glob
diff --git a/tools/veeamvbk2hashcat.py b/tools/veeamvbk2hashcat.py
index e8d6ac05c..5f6d1977a 100755
--- a/tools/veeamvbk2hashcat.py
+++ b/tools/veeamvbk2hashcat.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
import argparse
import binascii

View File

@@ -10,6 +10,8 @@
minizip,
opencl-headers,
ocl-icd,
perl,
python3,
xxHash,
zlib,
libiconv,
@@ -24,6 +26,10 @@ stdenv.mkDerivation rec {
sha256 = "sha256-hCtx0NNLAgAFiCR6rp/smg/BMnfyzTpqSSWw8Jszv3U=";
};
patches = [
./0001-python-shebangs.patch
];
postPatch = ''
# MACOSX_DEPLOYMENT_TARGET is defined by the enviroment
# Remove hardcoded paths on darwin
@@ -44,6 +50,17 @@ stdenv.mkDerivation rec {
buildInputs = [
minizip
opencl-headers
perl
(python3.withPackages (
ps: with ps; [
# leveldb # Required for bitwarden2hashcat.py, broken since python 3.12 https://github.com/NixOS/nixpkgs/pull/342756
protobuf
pyasn1
pycryptodome
python-snappy
simplejson
]
))
xxHash
zlib
]

View File

@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://htcondor.org/";
description = "HTCondor is a software system that creates a High-Throughput Computing (HTC) environment";
description = "Software system that creates a High-Throughput Computing (HTC) environment";
platforms = platforms.linux;
license = licenses.asl20;
maintainers = with maintainers; [ evey ];

View File

@@ -37,7 +37,7 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Httperf HTTP load generator";
description = "HTTP load generator";
homepage = "https://github.com/httperf/httperf";
maintainers = [ ];
license = licenses.gpl2Plus;

View File

@@ -18,7 +18,7 @@ buildNpmPackage rec {
npmDepsHash = "sha256-u1dndTKvInobva+71yI2vPiwrW9vqzAJ2sDAqT9YJsg=";
meta = {
description = "Git hooks made easy 🐶 woof!";
description = "Git hooks made easy";
mainProgram = "husky";
homepage = "https://github.com/typicode/husky";
changelog = "https://github.com/typicode/husky/releases/tag/v${version}";

View File

@@ -27,7 +27,7 @@ buildNpmPackage (finalAttrs: {
passthru.updateScript = nix-update-script { };
meta = {
description = "1-1 End-to-End Encrypted Internet Pipe Powered by Hyperswarm ";
description = "1-1 End-to-End Encrypted Internet Pipe Powered by Hyperswarm";
homepage = "https://github.com/holepunchto/hyperbeam";
mainProgram = "hyperbeam";
license = lib.licenses.mit;

Some files were not shown because too many files have changed in this diff Show More