Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-04-17 00:32:57 +00:00
committed by GitHub
108 changed files with 1521 additions and 319 deletions
+5
View File
@@ -120,6 +120,11 @@
- Reloading or restarting systemd units from the NixOS activation script is deprecated, and will be removed in NixOS 26.11. This deprecation is part of a bigger effort to deprecate activation scripts altogether, which will take place over several releases. There are no in-tree usages of the now-deprecated reload/restart functionality.
- Keycloak has been updated to 26.6.X, bringing a lot new features like federated client authentication, JWT authorization grants, workflows and the ability to do
zero-downtime patch releases. Read more about [all the exciting new capabilities in keycloak 26.6 here](https://github.com/keycloak/keycloak/releases/tag/26.6.0)
and [consult the migration guide to 26.6](https://www.keycloak.org/docs/latest/upgrading/index.html#migrating-to-26-6-0) to find out wether this is a breaking
change for your keycloak instance.
- `elegant-sddm` has been updated to be Qt6 compatible. Themes for SDDM are slightly different so read the [wiki](https://wiki.nixos.org/wiki/SDDM_Themes) for more.
- `forgejo` has been updated to major version 14. For more information, see the [release blog post](https://forgejo.org/2026-01-release-v14-0/) and [full release notes](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/release-notes-published/14.0.0.md)
+1 -2
View File
@@ -337,7 +337,6 @@ rec {
/**
Concatenate a list of strings, adding a newline at the end of each one.
Defined as `concatMapStrings (s: s + "\n")`.
# Inputs
@@ -361,7 +360,7 @@ rec {
:::
*/
concatLines = concatMapStrings (s: s + "\n");
concatLines = str: concatStringsSep "\n" str + "\n";
/**
Given string `s`, replace every occurrence of the string `from` with the string `to`.
+11
View File
@@ -11401,6 +11401,11 @@
githubId = 39416660;
name = "Mladen Branković";
};
imcvampire = {
github = "imcvampire";
githubId = 9426721;
name = "Quoc-Anh Nguyen";
};
imgabe = {
email = "gabrielpmonte@hotmail.com";
github = "ImGabe";
@@ -14964,6 +14969,12 @@
githubId = 61395246;
name = "Lampros Pitsillos";
};
landreussi = {
email = "lucasandreussi@gmail.com";
github = "landreussi";
githubId = 5938518;
name = "Lucas Andreussi";
};
langsjo = {
name = "langsjo";
github = "langsjo";
@@ -102,6 +102,8 @@
- [Tinyauth](https://tinyauth.app/), a simple authentication middleware for web apps, with OAuth and LDAP support. Available as [services.tinyauth](#opt-services.tinyauth.enable).
- [Strichliste](https://www.strichliste.org), a digital self-service tallysheet used in hackerspaces, clubs and offices. Available as [services.strichliste](#opt-services.strichliste.enable).
- [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable).
- [Howdy](https://github.com/boltgolt/howdy), a Windows Hello™ style facial authentication program for Linux.
@@ -313,6 +315,8 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- [hardware.xpadneo](#opt-hardware.xpadneo.enable) now supports configuring kernel module parameters via a freeform [settings](#opt-hardware.xpadneo.settings) option, with convenience options for [rumble attenuation](#opt-hardware.xpadneo.rumbleAttenuation) and [controller quirks](#opt-hardware.xpadneo.quirks).
- The `services.prometheus.exporters` module interface now accepts an optional `socketOpts` attribute, allowing individual exporter modules to describe an accompanying `systemd.sockets.prometheus-${name}-exporter` unit alongside their service, enabling socket activation support.
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
- `security.acme` now defaults to a dynamic renewal duration, if
+1
View File
@@ -1779,6 +1779,7 @@
./services/web-apps/stash.nix
./services/web-apps/stirling-pdf.nix
./services/web-apps/strfry.nix
./services/web-apps/strichliste.nix
./services/web-apps/suwayomi-server.nix
./services/web-apps/szurubooru.nix
./services/web-apps/tabbyapi.nix
@@ -138,12 +138,23 @@ example:
DynamicUser = false;
ExecStart = ''
${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
--web.systemd-socket \
--web.telemetry-path ${cfg.telemetryPath} \
${lib.concatStringsSep " \\\n " cfg.extraFlags}
'';
};
};
# `socketOpts` is an optional attribute set describing a
# `systemd.sockets.prometheus-${name}-exporter` unit that
# accompanies the exporter's service. When set, it is merged
# with a default definition that includes
# `wantedBy = [ "sockets.target" ]`, enabling socket activation
# for exporters that support it.
# Note that this attribute is optional.
socketOpts = {
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
};
}
```
- This should already be enough for the postfix exporter. Additionally one
@@ -36,10 +36,15 @@ let
# - extraOpts (types.attrs): extra configuration options to
# configure the exporter with, which
# are appended to the default options
# - socketOpts (types.attrs): optional config that is merged with
# the default definition of the
# exporter's systemd socket unit. When
# set, a `prometheus-${name}-exporter.socket`
# unit is created, enabling socket activation.
#
# Note that `extraOpts` is optional, but a script for the exporter's
# systemd service must be provided by specifying either
# `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
# Note that `extraOpts` and `socketOpts` are optional, but a script
# for the exporter's systemd service must be provided by specifying
# either `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
exporterOpts =
(genAttrs
@@ -311,6 +316,7 @@ let
name,
conf,
serviceOpts,
socketOpts,
}:
let
enableDynamicUser = serviceOpts.serviceConfig.DynamicUser or true;
@@ -368,6 +374,12 @@ let
"-m comment --comment ${name}-exporter -j nixos-fw-accept"
]);
networking.firewall.extraInputRules = mkIf (conf.openFirewall && nftables) conf.firewallRules;
systemd.sockets."prometheus-${name}-exporter" = mkIf (socketOpts != null) (mkMerge [
{
wantedBy = [ "sockets.target" ];
}
socketOpts
]);
systemd.services."prometheus-${name}-exporter" = mkMerge [
{
wantedBy = [ "multi-user.target" ];
@@ -603,6 +615,7 @@ in
mkExporterConf {
inherit name;
inherit (conf) serviceOpts;
socketOpts = conf.socketOpts or null;
conf = cfg.${name};
}
) exporterOpts)
@@ -39,6 +39,7 @@ in
'';
};
};
serviceOpts = {
serviceConfig = {
DynamicUser = false;
@@ -47,7 +48,7 @@ in
${pkgs.prometheus-node-exporter}/bin/node_exporter \
${concatMapStringsSep " " (x: "--collector." + x) cfg.enabledCollectors} \
${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
--web.systemd-socket ${concatStringsSep " " cfg.extraFlags}
'';
RestrictAddressFamilies =
optionals (collectorIsEnabled "logind" || collectorIsEnabled "systemd") [
@@ -67,4 +68,8 @@ in
ProtectHome = true;
};
};
socketOpts = {
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
};
}
@@ -85,6 +85,7 @@ in
};
};
};
serviceOpts = {
after = mkIf cfg.systemd.enable [ cfg.systemd.unit ];
serviceConfig = {
@@ -95,7 +96,7 @@ in
SupplementaryGroups = mkIf cfg.systemd.enable [ "systemd-journal" ];
ExecStart = ''
${lib.getExe cfg.package} \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
--web.systemd-socket \
--web.telemetry-path ${cfg.telemetryPath} \
--postfix.showq_path ${escapeShellArg cfg.showqPath} \
${concatStringsSep " \\\n " (
@@ -115,4 +116,8 @@ in
'';
};
};
socketOpts = {
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
};
}
@@ -0,0 +1,521 @@
{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
mkEnableOption
mkForce
mkIf
mkMerge
mkOption
mkPackageOption
types
;
cfg = config.services.strichliste;
format = pkgs.formats.yaml { };
settingsFile = format.generate "strichliste.yaml" {
parameters.strichliste = cfg.settings;
};
unitDependencies =
lib.optionals (
lib.hasInfix "pgpsql" cfg.environment.DATABASE_URL
|| lib.hasInfix "postgres" cfg.environment.DATABASE_URL
) [ "postgresql.service" ]
++ lib.optionals (lib.hasInfix "mysql" cfg.environment.DATABASE_URL) [ "mysql.service" ];
in
{
meta.buildDocsInSandbox = false;
options.services.strichliste = {
enable = mkEnableOption "strichliste, a web based tally sheet.";
packages = {
backend = mkPackageOption pkgs "strichliste" { };
frontend = mkOption {
type = types.package;
default = pkgs.strichliste.frontend;
description = ''
The strichliste-frontend package to use.
'';
};
};
settings = mkOption {
type = types.submodule {
freeformType = format.type;
options = {
common = {
idleTimeout = mkOption {
type = types.int;
default = 30000;
description = ''
Time until the app returns to the start page.
'';
};
};
user = {
stalePeriod = mkOption {
type = types.str;
default = "10 day";
example = "1 week";
description = ''
Duration after which users are listed as inactive.
The format used is documented in <https://www.php.net/manual/en/dateinterval.createfromdatestring.php>.
::: {.tip}
This helps unclutter the user listing by prioritizing active users.
:::
'';
};
};
i18n = {
timezone = mkOption {
type = types.str;
default = config.time.timeZone;
defaultText = lib.literalExpression "config.time.timeZone";
example = "Europe/Berlin";
description = ''
Timezone used throughout the app, e.g. in the transaction log.
'';
};
language = mkOption {
type = types.str;
default = "en";
example = "de";
description = ''
Language used throughout the app.
'';
};
currency = {
name = mkOption {
type = types.str;
example = "Euro";
description = ''
Name of the currency.
'';
};
symbol = mkOption {
type = types.str;
example = "";
description = ''
Symbol for the currency.
'';
};
alpha3 = mkOption {
type = types.str;
example = "EUR";
description = ''
[ISO 4217] alpha code representing the currency.
[ISO 4217]: https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes
'';
};
};
};
account = {
lower = mkOption {
type = types.int;
default = -200000;
example = 0;
description = ''
The credit limit for user accounts.
'';
};
upper = mkOption {
type = types.ints.positive;
default = 200000;
description = ''
The maximum balance on a user account.
'';
};
};
payment = {
boundary = {
lower = mkOption {
type = types.int;
default = -2000;
example = 0;
description = ''
The lowest amount that can be used for payments.
'';
};
upper = mkOption {
type = types.ints.positive;
default = 15000;
description = ''
The highest amount that can be used for payment.
'';
};
};
deposit = {
enabled = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow money deposits.
'';
};
custom = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow custom amounts for deposits.
'';
};
steps = mkOption {
type = types.listOf (
types.oneOf [
types.int
types.float
]
);
example = [
0.5
1
2
5
10
20
];
description = ''
List of selectable deposit amounts.
This should match your most common coins and banknotes.
'';
};
};
dispense = {
enabled = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow spending money.
'';
};
custom = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow custom spending amounts.
'';
};
steps = mkOption {
type = types.listOf (
types.oneOf [
types.int
types.float
]
);
example = [
0.5
1
2
5
10
20
];
description = ''
List of selectable spending amounts.
This should match your most common products.
'';
};
};
transaction = {
enabled = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow transactions between user accounts.
'';
};
};
undo = {
enabled = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow undoing transactions withing the {option}`services.strichliste.settings.payment.undo.timeout` period.
'';
};
delete = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow deleting within the {option}`services.strichliste.settings.payment.undo.timeout` period.
'';
};
timeout = mkOption {
type = types.str;
default = "5 minute";
description = ''
The time period after creating a transaction in which undoing/deleting remains possible.
The format used is documented in <https://www.php.net/manual/en/dateinterval.createfromdatestring.php>.
'';
};
};
};
};
};
description = ''
The {file}`strichliste.yaml` configuration as a Nix attribute set.
See the [configuration reference](https://github.com/strichliste/strichliste-backend/blob/v${cfg.packages.backend.version}/docs/Config.md)
for possible options.
'';
};
domain = mkOption {
type = types.str;
example = "strichliste.example.com";
description = ''
Domain name used to configure the webserver virtual host.
'';
};
environment = mkOption {
type = types.submodule {
freeformType = types.attrs;
options = {
APP_ENV = mkOption {
type = types.str;
default = "prod";
description = ''
The active environment.
'';
};
APP_LOG_DIR = mkOption {
type = types.path;
default = "/var/log/strichliste";
description = ''
Directory to write logs.
'';
};
APP_CACHE_DIR = mkOption {
type = types.path;
default = "/var/cache/strichliste";
description = ''
Directory used for caching.
'';
};
CORS_ALLOW_ORIGIN = mkOption {
type = types.str;
default = "^https?://${config.services.strichliste.domain}(:[0-9]+)?$";
defaultText = lib.literalExpression "^https?://$${config.services.strichliste.domain}(:[0-9]+)?$";
description = ''
Regular expression defining the allowed CORS origins.
'';
};
DATABASE_URL = mkOption {
type = types.str;
default = "sqlite:////var/lib/strichliste/db.sqlite";
example = "postgresql://strichliste@localhost/strichliste?host=/run/postgresql";
description = ''
See <https://www.doctrine-project.org/projects/doctrine-dbal/en/3.9/reference/configuration.html#connecting-using-a-url>
for more URL examples.
'';
};
};
};
default = { };
description = ''
Environment variables consumed by Symfony.
See <https://github.com/strichliste/strichliste-backend/blob/v${cfg.packages.backend.version}/.env.dist> for possible options.
'';
};
environmentFiles = mkOption {
type = types.listOf types.path;
default = [ ];
example = lib.literalExpression ''
[
"/run/keys/strichliste.env"
]
'';
description = ''
Environment files to configure Symfony.
See <https://github.com/strichliste/strichliste-backend/blob/v${cfg.packages.backend.version}/.env.dist> for possible options.
::: {.important}
You should configure `APP_SECRET` here.
:::
'';
};
nginx = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable and configure an nginx vhost to serve strichliste.
'';
};
virtualHost = mkOption {
type = types.submodule (
import ../web-servers/nginx/vhost-options.nix {
inherit config lib;
}
);
example = lib.literalExpression ''
{
enableACME = true;
forceSSL = true;
}
'';
description = ''
Nginx virtual settings to allow direct customization of its settings.
'';
};
};
};
config = mkMerge [
(mkIf (cfg.enable && cfg.nginx.enable) {
services.phpfpm.pools.strichliste.settings = {
"listen.owner" = config.services.nginx.user;
"listen.group" = config.services.nginx.group;
};
services.nginx.enable = true;
services.nginx.virtualHosts.${cfg.domain} = mkMerge [
cfg.nginx.virtualHost
{
root = mkForce "${cfg.packages.frontend}";
locations = {
"/" = {
tryFiles = toString [
"$uri"
"$uri/"
"index.html"
];
};
"/api/" = {
fastcgiParams = {
SCRIPT_FILENAME = "${cfg.packages.backend}/share/php/strichliste-backend/public/index.php";
SCRIPT_NAME = "/index.php";
REQUEST_URI = "$request_uri";
modHeadersAvailable = "true";
front_controller_active = "true";
};
extraConfig = ''
fastcgi_intercept_errors on;
fastcgi_pass unix:${config.services.phpfpm.pools.strichliste.socket};
fastcgi_request_buffering off;
'';
};
};
}
];
})
(mkIf cfg.enable {
environment.etc."strichliste.yaml".source = settingsFile;
systemd.tmpfiles.settings."strichliste" = {
${cfg.environment.APP_CACHE_DIR}.d = {
user = "strichliste";
group = "strichliste";
mode = "0700";
};
${cfg.environment.APP_LOG_DIR}.d = {
user = "strichliste";
group = "strichliste";
mode = "0700";
};
};
systemd.services.strichliste-migrate = {
wantedBy = [ "phpfpm-strichliste.service" ];
before = [ "phpfpm-strichliste.service" ];
wants = unitDependencies;
after = unitDependencies;
inherit (cfg) environment;
preStart = ''
set -ex
if [ ! -e "/var/lib/strichliste/.db-init" ]; then
${lib.optionalString (lib.hasInfix "sqlite" cfg.environment.DATABASE_URL) ''
${lib.getExe cfg.packages.backend} doctrine:database:create
''}
${lib.getExe cfg.packages.backend} doctrine:schema:create
touch "/var/lib/strichliste/.db-init"
fi
'';
serviceConfig = {
Type = "exec";
User = "strichliste";
Group = "strichliste";
EnvironmentFile = cfg.environmentFiles;
ExecStart = toString [
(lib.getExe cfg.packages.backend)
"doctrine:migrations:migrate"
"--allow-no-migration"
"--no-interaction"
];
};
};
systemd.services.phpfpm-strichliste = {
inherit (cfg) environment;
serviceConfig.EnvironmentFile = cfg.environmentFiles;
};
services.phpfpm.pools.strichliste = {
user = "strichliste";
group = "strichliste";
settings = {
# support environment variables
"clear_env" = false;
"pm" = "dynamic";
"pm.max_children" = 8;
"pm.start_servers" = 1;
"pm.min_spare_servers" = 1;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 256;
};
inherit (cfg.packages.backend) phpPackage;
};
users.groups.strichliste = { };
users.users.strichliste = {
group = "strichliste";
home = "/var/lib/strichliste";
createHome = true;
isSystemUser = true;
};
})
];
}
+1
View File
@@ -1520,6 +1520,7 @@ in
step-ca = handleTestOn [ "x86_64-linux" ] ./step-ca.nix { };
stirling-pdf-desktop = runTest ./stirling-pdf-desktop.nix;
stratis = handleTest ./stratis { };
strichliste = runTest ./web-apps/strichliste.nix;
strongswan-swanctl = runTest ./strongswan-swanctl.nix;
stub-ld = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./stub-ld.nix { };
stunnel = import ./stunnel.nix { inherit runTest; };
+105
View File
@@ -0,0 +1,105 @@
{
pkgs,
...
}:
{
name = "strichliste";
meta.maintainers = pkgs.strichliste.meta.maintainers;
nodes = {
server =
{ config, ... }:
{
networking.extraHosts = ''
127.0.0.1 strichliste.local
'';
environment.systemPackages = with pkgs; [ httpie ];
time.timeZone = "Europe/Berlin";
services.strichliste = {
enable = true;
domain = "strichliste.local";
environmentFiles = [
(pkgs.writeText "strichliste-secret.env" ''
APP_SECRET=changemechangemechangeme
'')
];
settings = {
i18n = {
currency = {
alpha3 = "EUR";
name = "Euro";
symbol = "";
};
};
};
};
};
};
testScript =
{
nodes,
...
}:
# python
''
import json
start_all()
def get_users():
response = machine.succeed("http --check-status http://strichliste.local/api/user")
users = json.loads(response)["users"]
return users
def get_user(uid: int):
response = machine.succeed(f"http --check-status http://strichliste.local/api/user/{uid}")
user = json.loads(response)["user"]
return user
def test():
with subtest("Check empty user list"):
users = get_users()
t.assertEqual(len(users), 0, "Strichliste must not have users.")
with subtest("Create user"):
machine.succeed("http --check-status post http://strichliste.local/api/user name=Alice")
users = get_users()
t.assertEqual(len(users), 1, "Strichliste must have exactly one user.")
with subtest("Retrieve user details"):
user = get_user(1)
t.assertEqual(user["name"], "Alice", "Created user must be named Alice")
t.assertEqual(user["balance"], 0, "New users should have a balance of 0")
with subtest("Deposit money"):
machine.succeed("http --check-status post http://strichliste.local/api/user/1/transaction amount=500")
user = get_user(1)
t.assertEqual(user["balance"], 500, "Balance must be 500 after depositing 500")
with subtest("Dispense money"):
machine.succeed("http --check-status post http://strichliste.local/api/user/1/transaction amount=-1000")
user = get_user(1)
t.assertEqual(user["balance"], -500, "Balance must be -500 after dispensing 1000")
with subtest("Undo transaction"):
response = machine.succeed("http --check-status post http://strichliste.local/api/user/1/transaction amount=7500")
transaction = json.loads(response)["transaction"]
machine.succeed(f"http --check-status delete http://strichliste.local/api/user/1/transaction/{transaction['id']}")
server.wait_for_unit("phpfpm-strichliste.service")
# frontend
server.wait_until_succeeds("http --check-status http://strichliste.local/ | grep -q '<title>Strichliste</title>'")
# backend
server.wait_until_succeeds("http --check-status http://strichliste.local/api/settings")
# sqlite
test()
'';
}
@@ -1330,8 +1330,8 @@ let
mktplcRef = {
publisher = "discloud";
name = "discloud";
version = "2.28.4";
hash = "sha256-9m3Oi6w1GoVQatiMShmQAlsXDOauW3JBmNi3o78LFys=";
version = "2.28.5";
hash = "sha256-G5WgFSrmQOOtsDFfmJaJxvgbKfnpQSmMf+xAJeuhvhU=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/discloud.discloud/changelog";
@@ -3090,8 +3090,8 @@ let
mktplcRef = {
name = "compare-folders";
publisher = "moshfeu";
version = "0.29.0";
hash = "sha256-oX4182qaoHbvZC9MdzzARBlW4MbtE7H0Fg687K5h2XQ=";
version = "0.30.0";
hash = "sha256-XBMHEk5iRW6n9fjDUbD8c/FFGNRttrnV0tH1qUphXYo=";
};
meta = {
@@ -5076,8 +5076,8 @@ let
mktplcRef = {
publisher = "vscjava";
name = "vscode-java-debug";
version = "0.58.2025022807";
hash = "sha256-8bzDbCF03U5P15tkVkieOGuuLetUFXjZNrQKZTcKNFA=";
version = "0.59.0";
hash = "sha256-5Zc/zXY6mE6k1uV2RMz49f5sqoDA5YnylAPwDJrOOSA=";
};
meta = {
license = lib.licenses.mit;
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "copilot-chat";
version = "0.42.3";
hash = "sha256-bkVfwPFQSuTMcIEoEa/M91foSZC+0H4ESFXFwDDDhbc=";
version = "0.44.1";
hash = "sha256-xm3BG6d853ztavvTmADyTbc13xD0x9eZ4TudNpNH7+0=";
};
meta = {
@@ -12,7 +12,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
};
meta = {
description = "VSCode extension providing an autonomous coding agent right in your IDE, capable of creating/editing files, executing commands, using the browser, and more with your permission every step of the way";
description = "Cline - autonomous coding agent VSCode extension, capable of creating/editing files, executing commands, using the browser, and more with your permission every step of the way";
downloadPage = "https://github.com/cline/cline";
homepage = "https://github.com/cline/cline";
license = lib.licenses.asl20;
@@ -8,13 +8,13 @@
}:
mkLibretroCore {
core = "flycast";
version = "0-unstable-2026-04-07";
version = "0-unstable-2026-04-12";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
rev = "ad03e10c16a70b289f29bb10112857961125b4e6";
hash = "sha256-XSCI+94PXJXnU6/6lqA+1p05A3p2r8W0XPwbaDPSsaM=";
rev = "321bdaf08b4b007a720f196ea072c1813b1b7efe";
hash = "sha256-9Ry5+krdhz2RCmZZh2l6DdcKTgMpcgHwOBG4c7fc/og=";
fetchSubmodules = true;
};
@@ -7,13 +7,13 @@
}:
mkLibretroCore {
core = "vecx";
version = "0-unstable-2026-01-12";
version = "0-unstable-2026-04-11";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-vecx";
rev = "eacee1f6f029688b043ed802cece29dd3c320e21";
hash = "sha256-2OlacvnJWcfTA8l91IBvuoUgd1HAs5ZHCbBGfaTGCyg=";
rev = "8f671cc9d737f2890c3ce19e177e2984dcae121f";
hash = "sha256-gNHPmoCiqWg7vWapWBPwHPPogiXCvXfkyqsHuudKHDg=";
};
extraBuildInputs = [
@@ -828,11 +828,11 @@
}
},
"ungoogled-chromium": {
"version": "147.0.7727.55",
"version": "147.0.7727.101",
"deps": {
"depot_tools": {
"rev": "4ce8ba39a3488397a2d1494f167020f21de502f3",
"hash": "sha256-WTzjmLFjh1yDDEvYE7Qfx8aBxMLdATx14+Jprwh8ZgQ="
"rev": "442cbd6d584d2c992ca9bcc19ecbd2235bea772e",
"hash": "sha256-CgEu3y/MNRcCN2EmtcVgmGW/bEPKypeyLaANtiplDJU="
},
"gn": {
"version": "0-unstable-2026-03-05",
@@ -840,16 +840,16 @@
"hash": "sha256-3AfExm7NL5GJXyC5JCPbGC70D59doRfIZIgpt6MLy9Y="
},
"ungoogled-patches": {
"rev": "147.0.7727.55-1",
"hash": "sha256-7Fs/dfAn+N7zpkUSzACf9SDRhgMJUsnVi8cAExwn21A="
"rev": "147.0.7727.101-1",
"hash": "sha256-w/9bzbYHZM3Ot26ZcYWB51z7T+I4OBOxflo1dWxghyQ="
},
"npmHash": "sha256-ByB1Ea5tduIJZXyydeBWsoS8OPABOgwHe+dNXRssdvc="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "7dc2b8f6f651b42c0a8f3634c9feb5e0b6b25c91",
"hash": "sha256-mAauWiP5AlyzoRFOSGA71ljtZ9MtYLKtRlSolCA/spE=",
"rev": "56536d2a8034c51b0e68e1a0483ab9f1a0165ae3",
"hash": "sha256-94TMvPkcWm+IEVYwTh+m1ys5du75bvJcc1RpkSKpAwc=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -919,8 +919,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "401e94882e22cf2aa7af649b92ab123eaa329321",
"hash": "sha256-WD8GaB8LYhICdHZ+meCXSmLylAcISzEaZj06g+z1sfw="
"rev": "cbc4f074126e6f1acf72ad620a28cd4a8dd86f2a",
"hash": "sha256-MUgLUj2L0vmpAoxt/TJy1clsJfvYkQqe3Xm2+e4Y6tw="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -959,8 +959,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "3ab1df504f1af37a64f8d3949e77b0868e154894",
"hash": "sha256-wWoXEvgROx5FLx4nnvaiEW7N9q5VibulffWwCkkEXOs="
"rev": "2c681aed02b0add6bcf6724175660c4b35ece843",
"hash": "sha256-io3X9zu6tHgqJGXjygUXMa98rXELRNl6Y330U2nRc/M="
},
"src/third_party/dawn/third_party/glfw": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1254,8 +1254,8 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "9dd1b8af51cfd431cbcdeebc95256c0ec6b249eb",
"hash": "sha256-IX9mgT9f8fyAd0e1HzBNDE6tNAK4JC+OVqQLJIsvMY0="
"rev": "ab9876a5983227865ee26e91caac87c6b8750e27",
"hash": "sha256-V40GL7fKj1qratP0KcrhedEPDIsg0XVb3ha5nroM0ws="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
@@ -1369,8 +1369,8 @@
},
"src/third_party/libvpx/source/libvpx": {
"url": "https://chromium.googlesource.com/webm/libvpx.git",
"rev": "9a2d3d1f46afbdfa9b9820a9fd3aacb084e65e2f",
"hash": "sha256-9OkXFvBDfh/NFA96IQzaJcXSKSKW6tBN/HJSAwAr3S8="
"rev": "aec2a6f1cd6e3d9e8cf5d9682fcb8a442799bd22",
"hash": "sha256-PNreh1VisA46I0WZqq8wZRCjbQRiVMxbL5Gl2Bfzo3M="
},
"src/third_party/libwebm/source": {
"url": "https://chromium.googlesource.com/webm/libwebm.git",
@@ -1434,8 +1434,8 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "f99c212599bb85ce2e60936099f829cbcc3d4f5c",
"hash": "sha256-jq5qVIRWmC1xTvV/YwaosJMQH3XpS2N6Xn601uUPFkc="
"rev": "e5bafd3be58c26673576fd5bb5cbf413b485de5b",
"hash": "sha256-umtG2n6kWYD0hT44GpmnwUVztkZ0RtQDV0h0+4CTC9w="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
@@ -1484,8 +1484,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "abbe599fb3c0ef2fa82bfadbb0ddcd321f22faf0",
"hash": "sha256-QR0R8gwDh6m4RCCCj0EJ/oQQd/mHdUkOVSO8mg74WkE="
"rev": "f8cd2da0256752afb0059bf17e4bf2bec422967e",
"hash": "sha256-dtSWBpCaewkKMW3Jc1PNDQh0jSQHIPduaXsIU9rcTa0="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -1649,8 +1649,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "0cd69a9ba82925f5eb2c91376c4e7ba0da9dd445",
"hash": "sha256-PKaDXkDkdUVBlcXRmlfWjd5tqvLTCywhC7KdP/xp5NM="
"rev": "c207e34c08865143dc6774c1c624f3cea07f7420",
"hash": "sha256-5rc28tPK9mOJDO3HA3F1ZgsRQmWXhoLZGeKTzxWSISw="
}
}
}
@@ -652,11 +652,11 @@
"vendorHash": "sha256-GlkqFg9Bgs+Hi59PYAxqq3YW9ji1qeuX4vz59wQ4pRw="
},
"hashicorp_tfe": {
"hash": "sha256-TDDnW6786MGOBuptsIBqPe4/PUHQ3pKeLFqLHex3ObI=",
"hash": "sha256-/vEbhPKNhKUIlChGYuMNR5Ulbk9gG4171vZ6pvoTdcM=",
"homepage": "https://registry.terraform.io/providers/hashicorp/tfe",
"owner": "hashicorp",
"repo": "terraform-provider-tfe",
"rev": "v0.76.1",
"rev": "v0.76.2",
"spdx": "MPL-2.0",
"vendorHash": "sha256-JNTe1RI2aDw86jNzYJqmiBr5BBnr824/DhkJeaMpbKI="
},
@@ -1247,13 +1247,13 @@
"vendorHash": "sha256-u3WK/pLsuwySJX6GMNho8ImB+F+XXUPC6h+IQtDrOp8="
},
"spotinst_spotinst": {
"hash": "sha256-ow/8K8MXUKG0D5U2ILHImPBzRZwAp5oxybCf5wqbclA=",
"hash": "sha256-DWMa48u6D9lT6xtcYOQxWyHfMwFvI+iYufKoXgQJmC0=",
"homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
"owner": "spotinst",
"repo": "terraform-provider-spotinst",
"rev": "v1.233.1",
"rev": "v1.234.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-wcuB0GpsrVajguxa6FQ7jELVdgpZ0chazUKeH0ElVMo="
"vendorHash": "sha256-iUu/SG4VprmEuYo6e8az5GARJhJWHyvyyJNSapnpWME="
},
"statuscakedev_statuscake": {
"hash": "sha256-zXBZZA+2uRN2FeGrayq0a4EBk7T+PvlBIwbuxwM7yBc=",
@@ -86,19 +86,18 @@ let
src =
if stdenv.hostPlatform.isDarwin then
fetchurl {
url = "https://www.mrc-lmb.cam.ac.uk/mosflm/mosflm/ver${
url = "https://www.mrc-lmb.cam.ac.uk/harry/imosflm/ver${
builtins.replaceStrings [ "." ] [ "" ] version
}/pre-built/mosflm-osx-64-noX11.zip";
sha256 = "1da5wimv3kl8bccp49j69vh8gi28cn7axg59lrmb38s68c618h7j";
}/downloads/mosflm-${version}-osx-64.zip";
hash = "sha256-0sXgA3zSIjhy9+zTiv+K/51yZsIgGorMtKVjdRjW+AM=";
}
else
fetchurl {
url = "https://www.mrc-lmb.cam.ac.uk/mosflm/mosflm/ver${
url = "https://www.mrc-lmb.cam.ac.uk/harry/imosflm/ver${
builtins.replaceStrings [ "." ] [ "" ] version
}/pre-built/mosflm-linux-64-noX11.zip";
hash = "sha256:1f2qins5kaz5v6mkaclncqpirx3mlz177ywm13py9p6s9mk99g32";
}/downloads/imosflm-${version}-linux-64.zip";
hash = "sha256-2we0K09W31LKgn9SHLGti50EA/zhbX+CWWuQGCSKW18=";
};
mosflmBinary = if stdenv.hostPlatform.isDarwin then "bin/mosflm" else "mosflm-linux-64-noX11";
in
stdenv.mkDerivation {
pname = "mosflm";
@@ -112,13 +111,11 @@ let
makeWrapper
];
sourceRoot = ".";
# mosflm statically links against its own libccp4, which as the syminfo.lib environment variable problem.
# Here, we circumvent it by creating a little wrapper script that calls mosflm after setting the SYMINFO variable.
installPhase = ''
mkdir -p $out/bin
cp ${mosflmBinary} $out/bin/mosflm-raw
cp bin/mosflm $out/bin/mosflm-raw
makeWrapper $out/bin/mosflm-raw $out/bin/mosflm --set SYMINFO ${libccp4}/share/syminfo.lib --add-flags -n
'';
};
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "auth0-cli";
version = "1.28.0";
version = "1.29.0";
src = fetchFromGitHub {
owner = "auth0";
repo = "auth0-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-FqMfnousaJg0u8W3o2lR8REIGFThq3vhsQFN1Je65Q8=";
hash = "sha256-RAfDCYDTlinx4mxmpTqOtAMmNG7G9E8XqYYVfkhwCpY=";
};
vendorHash = "sha256-PrcGZ1UJb9fsp7ZsAAxH5VzumDwn/mkyoKVvniuPQrg=";
vendorHash = "sha256-OICMv7yAkY2OQu++HKfowcuvmISeLk3HzrYygW8EPbI=";
ldflags = [
"-s"
+3 -3
View File
@@ -10,17 +10,17 @@
}:
buildGoModule (finalAttrs: {
pname = "aws-vault";
version = "7.9.14";
version = "7.9.15";
src = fetchFromGitHub {
owner = "ByteNess";
repo = "aws-vault";
rev = "v${finalAttrs.version}";
hash = "sha256-L3WJtS94EYgNqgwM2Gzayx89l2aKHkjaGNwOtfJMk3o=";
hash = "sha256-kDzFiuzSyxNyJnj3nechenhvm4bg+fSif+D+/stdTyo=";
};
proxyVendor = true;
vendorHash = "sha256-axxV3XCxZVY3UM0yzC2ziTO0cbwJiNnDkOKAQADKUKA=";
vendorHash = "sha256-92k0E4zCKgWyCAvXWU49dFaYuiTByYNAWxdTYDeTzoE=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bdf2psf";
version = "1.246";
version = "1.247";
src = fetchurl {
url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${finalAttrs.version}_all.deb";
sha256 = "sha256-mfg5Ml3jnzCgyzWER592nH9F2lD7PToFWlIAsEFQ++o=";
sha256 = "sha256-56JC3wJZz80nGXn/YywWZ4wXiR1h+X//Y72qfLyPtyE=";
};
nativeBuildInputs = [ dpkg ];
+41 -12
View File
@@ -2,25 +2,28 @@
lib,
stdenv,
buildGoModule,
dolt,
fetchFromGitHub,
gitMinimal,
icu,
installShellFiles,
makeBinaryWrapper,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
buildGoModule (finalAttrs: {
pname = "beads";
version = "0.42.0";
version = "1.0.0";
src = fetchFromGitHub {
owner = "steveyegge";
owner = "gastownhall";
repo = "beads";
tag = "v${finalAttrs.version}";
hash = "sha256-3t+pm7vuFj3PH1oCJ/AnwbGupqleimNQnP2bRSBHrSg=";
hash = "sha256-D2jShGpkOWKx9aRmRvV5bmV8t0/Y2eAE8q0m54QrRN0=";
};
vendorHash = "sha256-ovG0EWQFtifHF5leEQTFvTjGvc+yiAjpAaqaV0OklgE=";
vendorHash = "sha256-7DJgqJX2HDa9gcGD8fLNHLIXvGAEivYeDYx3snCUyCE=";
subPackages = [ "cmd/bd" ];
@@ -29,23 +32,46 @@ buildGoModule (finalAttrs: {
"-w"
];
nativeBuildInputs = [ installShellFiles ];
buildInputs = [
icu
];
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
];
nativeCheckInputs = [
gitMinimal
writableTmpDirAsHomeHook
];
# Skip security tests on Darwin - they check for /etc/passwd which isn't available in sandbox
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"-skip=TestCleanupMergeArtifacts_CommandInjectionPrevention"
];
# Workaround for: panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
# ref: https://github.com/NixOS/nix/pull/1646
__darwinAllowLocalNetworking = true;
checkFlags =
let
skippedTests = [
# Upstream test bug: version gap 0.55.0->1.0.0 triggers "very old" warning instead of expected "ok"
"TestCheckMetadataVersionTracking"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Checks for /etc/passwd which isn't available in sandbox
"TestCleanupMergeArtifacts_CommandInjectionPrevention"
];
in
[ "-skip=^(${lib.concatStringsSep "|" skippedTests})$" ];
preCheck = ''
export PATH="$out/bin:$PATH"
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
postInstall = ''
wrapProgram $out/bin/bd \
--prefix PATH : ${lib.makeBinPath [ dolt ]}
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd bd \
--bash <($out/bin/bd completion bash) \
--fish <($out/bin/bd completion fish) \
@@ -61,9 +87,12 @@ buildGoModule (finalAttrs: {
meta = {
description = "Lightweight memory system for AI coding agents with graph-based issue tracking";
homepage = "https://github.com/steveyegge/beads";
homepage = "https://github.com/gastownhall/beads";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kedry ];
maintainers = with lib.maintainers; [
kedry
imcvampire
];
mainProgram = "bd";
};
})
@@ -4,6 +4,7 @@
fetchurl,
buildPackages,
fixDarwinDylibNames,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "build2-bootstrap";
@@ -15,6 +16,12 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
# Pick up sysdirs from NIX_LDFLAGS
./nix-ldflags-sysdirs.patch
# Fix build on newer clang/libcpp
(fetchpatch {
name = "new-libcpp-fix.patch";
url = "https://github.com/build2/build2/commit/7cf9cece1d88cd1be283ab309f9a851bd02b43d0.patch";
hash = "sha256-PTo1C6Aa1L9fvjiJ08KtGgVqHMw2ZlW5LSKoripL22g=";
})
];
sourceRoot = "build2-toolchain-${finalAttrs.version}/build2";
+8 -1
View File
@@ -25,7 +25,14 @@ stdenv.mkDerivation {
sha256 = "1ighpl7nvcvwnsd6r5h5n9p95kclwrq99hq7bry7s53yr57l6588";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
postPatch = ''
# gcc15
substituteInPlace lua_nodes.c \
--replace-fail "ui_update(1)" "ui_update()"
substituteInPlace ui/gtk/gui_cardview.c \
--replace-fail "ui_update(0)" "ui_update()"
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# replace xcode check and hard-coded PCSC framework path
substituteInPlace configure.ac \
--replace-fail 'if test ! -e "/Applications/Xcode.app/"; then' 'if test yes != yes; then' \
+3 -1
View File
@@ -45,7 +45,9 @@ stdenv.mkDerivation (finalAttrs: {
# https://github.com/NixOS/nixpkgs/issues/379859
doCheck = false;
passthru.updateScript = nix-update-script { };
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "UK capital gains tax calculator written in Swift";
@@ -20,6 +20,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
"docutils"
"importlib-metadata"
"referencing"
"tabulate"
"urllib3"
];
+4
View File
@@ -61,6 +61,10 @@ python3Packages.buildPythonApplication (finalAttrs: {
]
);
pythonRelaxDeps = [
"ruamel-yaml"
];
dontWrapQtApps = true;
preFixup = ''
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "COSTA";
version = "2.3.0";
version = "2.3.1";
src = fetchFromGitHub {
owner = "eth-cscs";
repo = "COSTA";
rev = "v${finalAttrs.version}";
hash = "sha256-rkieWcUkAMI/fJjsPL20jI1jII5o5TwBx27nMQqNIXg=";
hash = "sha256-G/+AXGOjTbc92+6HLkDzkVJIikri0A+cB7Ft0RRQTzw=";
};
nativeBuildInputs = [ cmake ];
+2 -2
View File
@@ -11,9 +11,9 @@ in
buildDotnetGlobalTool (finalAttrs: {
pname = "csharp-ls";
version = "0.23.0";
version = "0.24.0";
nugetHash = "sha256-kaHjd23JFI30dbGvH0up6zFUe0rierF+uD7rpnWqO1M=";
nugetHash = "sha256-hpLTqgxwXiycfTaSd3nliS1quNB3VHLpSDBo+V18a9A=";
inherit dotnet-sdk;
dotnet-runtime = dotnet-sdk;
+3 -3
View File
@@ -5,7 +5,7 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dnglab";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitHub {
owner = "dnglab";
@@ -15,10 +15,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
postFetch = ''
rm -rf "$out"/rawler/data/testdata/cameras/Canon/{"EOS REBEL T7i","EOS Rebel T7i"}
'';
hash = "sha256-KBv7HhsGSPo1fa2QGXZi7zjh5Bu9wEtKwZ9X2TRkg2g=";
hash = "sha256-uCOdfCeec//5CnkuDEIgCy9B7SsqiXN8oGkoHhJ4N5Y=";
};
cargoHash = "sha256-0Fxhs6Igi5kf/I5wgQ6bM01ka3Favo4AhfIL2DSvLAw=";
cargoHash = "sha256-CFtCONFL1qRTg67AxfuEeIqLq/+57xMGbTKKMFPAhuo=";
postInstall = ''
rm $out/bin/benchmark $out/bin/identify
+2 -2
View File
@@ -9,7 +9,7 @@
buildGoModule (finalAttrs: {
pname = "doctl";
version = "1.154.0";
version = "1.155.0";
vendorHash = null;
@@ -42,7 +42,7 @@ buildGoModule (finalAttrs: {
owner = "digitalocean";
repo = "doctl";
tag = "v${finalAttrs.version}";
hash = "sha256-+CqkkWpy1bzMBgjml4Tztyz2t/fUFkyYVNh4gXpJjiw=";
hash = "sha256-sN/ZC3TAUiQokSZax3oF6LMl/H7lCCgtEjjcpy44aTY=";
};
meta = {
+1
View File
@@ -7,3 +7,4 @@ gem "facter"
gem "base64", "~> 0.2.0"
gem "benchmark", "~> 0.5.0"
gem "logger", "~> 1.7.0"
gem "sys-filesystem", "~> 1.5", ">= 1.5.5"
+6
View File
@@ -6,18 +6,24 @@ GEM
facter (4.10.0)
hocon (~> 1.3)
thor (>= 1.0.1, < 1.3)
ffi (1.17.3)
ffi (1.17.3-x86_64-linux-gnu)
hocon (1.4.0)
logger (1.7.0)
sys-filesystem (1.5.5)
ffi (~> 1.1)
thor (1.2.2)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
base64 (~> 0.2.0)
benchmark (~> 0.5.0)
facter
logger (~> 1.7.0)
sys-filesystem (~> 1.5, >= 1.5.5)
BUNDLED WITH
2.7.2
+21
View File
@@ -33,6 +33,16 @@
};
version = "4.10.0";
};
ffi = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0k1xaqw2jk13q3ss7cnyvkp8fzp75dk4kazysrxgfd1rpgvkk7qf";
type = "gem";
};
version = "1.17.3";
};
hocon = {
groups = [ "default" ];
platforms = [ ];
@@ -53,6 +63,17 @@
};
version = "1.7.0";
};
sys-filesystem = {
dependencies = [ "ffi" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0cshw6aqq7ws4sbl0b4g50fgvffykbchjpnzanmg1f9lly85i6bg";
type = "gem";
};
version = "1.5.5";
};
thor = {
groups = [ "default" ];
platforms = [ ];
@@ -0,0 +1,12 @@
{
openbangla-keyboard,
...
}@args:
openbangla-keyboard.override (
{
withFcitx5Support = true;
withIbusSupport = false;
}
// removeAttrs args [ "openbangla-keyboard" ]
)
+2 -2
View File
@@ -16,13 +16,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "flow";
version = "0.308.0";
version = "0.309.0";
src = fetchFromGitHub {
owner = "facebook";
repo = "flow";
tag = "v${finalAttrs.version}";
hash = "sha256-PWSGay3WVXUtk3NA5ukAY2HMrJV49BXISoMM1UyqzXE=";
hash = "sha256-ml1bi5LXk2qzS1Us6ddzctfazoS3XFz2jJQy1of6txc=";
};
patches = [
@@ -0,0 +1,46 @@
{
lib,
fetchCrate,
openssl,
pkg-config,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "fs-watcher-lsp";
version = "0.1.0";
__structuredAttrs = true;
src = fetchCrate {
version = finalAttrs.version;
crateName = "fs_watcher_lsp";
hash = "sha256-zahbi8RK8aDHcVOzIk5fCIh57+SjMGAVtUvtKhpMvF0=";
};
cargoHash = "sha256-w1i19IV/tjyl+W0NIjjbB0R9UpGrAUuK/yWbOZUKPUA=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
buildNoDefaultFeatures = false;
doCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Little file system watcher LSP to reload your editor";
changelog = "https://codeberg.org/Zentropivity/fs_watcher_lsp/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ landreussi ];
mainProgram = "fs_watcher_lsp";
};
})
+7
View File
@@ -2,6 +2,7 @@
lib,
autoreconfHook,
fetchFromGitHub,
fetchDebianPatch,
fetchpatch2,
flex,
gtk3,
@@ -30,6 +31,12 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-qVJHcfJTtl0hK8pzSp6MjhYAh1NbIIWr3rBDodIYBvk=";
})
./gettext-0.25.patch
(fetchDebianPatch {
inherit (finalAttrs) pname version;
patch = "0002-Declare-function-parameters-as-required-by-C23.patch";
debianRevision = "2.1";
hash = "sha256-kwRYYNOo3Z2SjFQzR6Mo+qBgW3LQfhxdE6mMpLGoE44=";
})
];
nativeBuildInputs = [
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "gh";
version = "2.89.0";
version = "2.90.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-SiPcji8CbJd6GwWmsIFWq3874Mr9/VggOATX9yKYjow=";
hash = "sha256-yVc4UvC+CsW+pP/BJRjcOGX7h8zO2M8yM0m57Mr89JY=";
};
vendorHash = "sha256-Sko+jTkGUTiR66Mv/p5INv/CLID1EK2v9fY0GfIeckg=";
vendorHash = "sha256-hz6oMLTibnSLB11vEWsO0O5ZFGKYJaVce6POqINObnI=";
nativeBuildInputs = [ installShellFiles ];
+4 -3
View File
@@ -13,13 +13,13 @@
buildGoModule (finalAttrs: {
pname = "glab";
version = "1.91.0";
version = "1.92.1";
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-AXScsFVN8vEdhjM4m4VK41tje9QABp0OGq+8sPM+4oo=";
hash = "sha256-4DUEsh2T5rx/0u79+edMLAjTRUmXxlbA0SVH/EwoeVo=";
leaveDotGit = true;
postFetch = ''
cd "$out"
@@ -28,7 +28,7 @@ buildGoModule (finalAttrs: {
'';
};
vendorHash = "sha256-idxt6qrs2CPO4SvZEuZNy12mw7dy1dslfuVn1ufrZ5Y=";
vendorHash = "sha256-fnVY1WEwzuRjHXQSGLl1c7bQXxzOHFEPlb/DhntYm2U=";
ldflags = [
"-s"
@@ -85,6 +85,7 @@ buildGoModule (finalAttrs: {
maintainers = with lib.maintainers; [
luftmensch-luftmensch
anthonyroussel
turebentzin
];
mainProgram = "glab";
};
+4 -4
View File
@@ -11,17 +11,17 @@
buildGoModule (finalAttrs: {
pname = "gomuks-web";
version = "26.03";
version = "26.04";
src = fetchFromGitHub {
owner = "gomuks";
repo = "gomuks";
tag = "v0.${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}.0";
hash = "sha256-lWuZ1UkazG31qfZsRUb4eTc34qazCQlI7k+i9H1cdb4=";
hash = "sha256-IysL++H3ncAU1xqNWKy2Z9RKkF1hriVmIDdQu0SkDbQ=";
};
proxyVendor = true;
vendorHash = "sha256-0h0/pNCd6g3aknDdKmVgojXKHzbtvWK/NVNToVJP0fU=";
vendorHash = "sha256-Ev6nmmOzLPjXp8XYj+7MRPElfGAv8fUcXJ5fXP8LCvs=";
nativeBuildInputs = [
nodejs
@@ -37,7 +37,7 @@ buildGoModule (finalAttrs: {
npmRoot = "web";
npmDeps = fetchNpmDeps {
src = "${finalAttrs.src}/web";
hash = "sha256-9kGKUF+t4miz+uXZVifNhLkwYTK8ZAhFfrAfWF8Rxck=";
hash = "sha256-NeQzz2+Vdi1OtVN7ZF8I33nFCO7OpccD1AjpPl7tML4=";
};
};
+16 -4
View File
@@ -13,20 +13,25 @@
lld,
useLLD ? stdenv.hostPlatform.isArmv7,
}:
let
beylaVersion = "v3.6.0";
in
buildGoModule (finalAttrs: {
pname = "grafana-alloy";
version = "1.14.2";
version = "1.15.1";
src = fetchFromGitHub {
owner = "grafana";
repo = "alloy";
tag = "v${finalAttrs.version}";
hash = "sha256-77WMsnC2WgVnbw1BsCj9ayS6XPsVTghmtIyl9Dk71uY=";
hash = "sha256-dAWBmvrthnsji6WuM2itRdfV4ONKDjsCzUJkUSmb1XI=";
};
npmDeps = fetchNpmDeps {
src = "${finalAttrs.src}/internal/web/ui";
hash = "sha256-MiHFeyDxLzYF3t9H8OEn/bL10WRbzMcwlENs2FSJ4xo=";
hash = "sha256-YUCft67WskKubZu8qEIUoH5NHwSfD5o0tWzyply90Zg=";
};
frontend = buildNpmPackage {
@@ -49,12 +54,18 @@ buildGoModule (finalAttrs: {
patchPhase = ''
cp -av ${finalAttrs.frontend}/share internal/web/ui/dist
goSumBeylaVersion="$(grep beyla go.sum | head -1 | cut -d ' ' -f2)"
if [[ "$goSumBeylaVersion" != "${beylaVersion}" ]];then
echo "beyla version in go.sum ($goSumBeylaVersion) doesn't match the one set in the expression (${beylaVersion}), needs updating."
exit 1
fi
'';
modRoot = "collector";
proxyVendor = true;
vendorHash = "sha256-i/BV987/ZYnCRYX8m9iFdtPo0vrWsmpn6UDs0q59sMM=";
vendorHash = "sha256-PbaqxDJHXB1MT5KtiEIkl+gP0DolzlC5JRItGC5VCpQ=";
subPackages = [ "." ];
@@ -66,6 +77,7 @@ buildGoModule (finalAttrs: {
"-X github.com/grafana/alloy/internal/build.Revision=v${finalAttrs.version}"
"-X github.com/grafana/alloy/internal/build.BuildUser=nix@nixpkgs"
"-X github.com/grafana/alloy/internal/build.BuildDate=1970-01-01T00:00:00Z"
"-X github.com/grafana/beyla/pkg/buildinfo=${beylaVersion}"
];
tags = [
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "grpc-gateway";
version = "2.28.0";
version = "2.29.0";
src = fetchFromGitHub {
owner = "grpc-ecosystem";
repo = "grpc-gateway";
tag = "v${finalAttrs.version}";
sha256 = "sha256-93omvHb+b+S0w4D+FGEEwYYDjgumJFDAruc1P4elfvA=";
sha256 = "sha256-d9OIIGttyMBSNgpS6mbR5JEIm13qGu2gFHJazJAexdw=";
};
vendorHash = "sha256-jVP5zfFPfHeAEApKNJzZwuZLA+DjKgkL7m2DFG72UNs=";
vendorHash = "sha256-p51yD+v8+rPs+ztlX7r0VQ4XlwUkxu+PxgknKEvH00k=";
ldflags = [
"-X=main.version=${finalAttrs.version}"
+3 -3
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation {
pname = "hello-wayland";
version = "0-unstable-2026-03-17";
version = "0-unstable-2026-04-14";
src = fetchFromGitHub {
owner = "emersion";
repo = "hello-wayland";
rev = "9a64c5ce78d004dc50814361b5153cef071f7042";
hash = "sha256-YSdBY0IJQB7iyiunVikFHd0S2GlPy7cZBl+aQkpCY1s=";
rev = "14231ae0a7f12e0041e81f749ae509d07e88fbe5";
hash = "sha256-9ciyfNnjBY3hg+UB7/xS7B30q9m3vvOc1emxi8qJTRE=";
};
separateDebugInfo = true;
+3 -3
View File
@@ -19,14 +19,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-manager";
version = "0-unstable-2026-04-08";
version = "0-unstable-2026-04-14";
src = fetchFromGitHub {
name = "home-manager-source";
owner = "nix-community";
repo = "home-manager";
rev = "7ba4ee4228ed36123c7cb75d50524b43514ef992";
hash = "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=";
rev = "3c7524c68348ef79ce48308e0978611a050089b2";
hash = "sha256-No6QGBmIv5ChiwKCcbkxjdEQ/RO2ZS1gD7SFy6EZ7rc=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -20,7 +20,7 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "iotas";
version = "2026.5";
version = "2026.6";
pyproject = false;
src = fetchFromGitLab {
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
owner = "World";
repo = "iotas";
tag = finalAttrs.version;
hash = "sha256-HTwhlbTc+s7eZVMLA/fYrhwwrmfDkdExARoJghLchls=";
hash = "sha256-Zsfp5O6k8VMjF6Hl3lT+u9JingGq3XgCzc8h9PVAhLg=";
};
nativeBuildInputs = [
+3 -1
View File
@@ -330,7 +330,6 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Generic proof assistant";
longDescription = ''
Isabelle is a generic proof assistant. It allows mathematical formulas
to be expressed in a formal language and provides tools for proving those
@@ -346,6 +345,9 @@ stdenv.mkDerivation (finalAttrs: {
lib.maintainers.jvanbruegge
lib.maintainers.sempiternal-aurora
];
# need to compile the heaps for host on build
# which requires us to use the host polyml toolchain
broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
platforms = [
"x86_64-linux"
"aarch64-linux"
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kak-tree-sitter-unwrapped";
version = "3.2.0";
version = "3.2.1";
src = fetchFromSourcehut {
owner = "~hadronized";
repo = "kak-tree-sitter";
rev = "kak-tree-sitter-v${finalAttrs.version}";
hash = "sha256-8J6bqQkeDfJOyd9WusT+H35J6AMVcCIEr0BCrwGKVXI=";
hash = "sha256-w+taJzr9tPLXdpV5RLTedVGR48Qodq/4M5IhlKAM/lU=";
};
cargoHash = "sha256-rEF2BaadWuM0OtesiXV3IZ8bRpcpdRekUnvBAWM7Dwc=";
cargoHash = "sha256-ztVBBeLU1AByDz3yVDMZ102bDG6JfL/6IoJlcqRmCmU=";
passthru = {
updateScript = nix-update-script { };
+33
View File
@@ -0,0 +1,33 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "kcl-kafka";
version = "0.17.0";
src = fetchFromGitHub {
owner = "twmb";
repo = "kcl";
tag = "v${finalAttrs.version}";
hash = "sha256-P55k9PIUDtYMzgPHCQYQLNgprnC9MDUX6ZfgZhI9fC0=";
};
vendorHash = "sha256-o7iSFI0zRwjlE2MVqKSpPMowR4mD2zW6wez4sqNX4Cw=";
subPackages = [ "." ];
passthru.updateScript = nix-update-script { };
meta = {
description = "One stop shop to do anything with Apache Kafka";
homepage = "https://github.com/twmb/kcl";
changelog = "https://github.com/twmb/kcl/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ chillcicada ];
mainProgram = "kcl";
};
})
+2 -2
View File
@@ -24,11 +24,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "keycloak";
version = "26.5.7";
version = "26.6.1";
src = fetchzip {
url = "https://github.com/keycloak/keycloak/releases/download/${finalAttrs.version}/keycloak-${finalAttrs.version}.zip";
hash = "sha256-Brd/tRed8SmY4mzNScLqJDmGLdCFskEGeBbnKOoJ10s=";
hash = "sha256-nAINLLwC3H9FNwjcj0xUSy/TwpDA6+LQI1IqMtMxaCM=";
};
nativeBuildInputs = [
+29
View File
@@ -0,0 +1,29 @@
diff --git a/lib/mbedtls/library/ssl_tls13_keys.c b/lib/mbedtls/library/ssl_tls13_keys.c
index dbc703a6c124961cfe38973ed4a0cae4867ba870..51afb044ccf3892bd0d69ec06b1f0ab0d15c287d 100644
--- a/lib/mbedtls/library/ssl_tls13_keys.c
+++ b/lib/mbedtls/library/ssl_tls13_keys.c
@@ -80,7 +80,8 @@ struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels =
* the HkdfLabel structure on success.
*/
-static const char tls13_label_prefix[6] = "tls13 ";
+/* We need to tell the compiler that we meant to leave out the null character. */
+static const char tls13_label_prefix[6] __attribute__ ((nonstring)) = "tls13 ";
#define SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN(label_len, context_len) \
(2 /* expansion length */ \
diff --git a/lib/mbedtls/library/ssl_tls13_keys.h b/lib/mbedtls/library/ssl_tls13_keys.h
index 14f6e4876c64b7562eef7de589f92c1fd84b190a..f6d02b522a5e3f4a6f6802ae7655dee07218f8d1 100644
--- a/lib/mbedtls/library/ssl_tls13_keys.h
+++ b/lib/mbedtls/library/ssl_tls13_keys.h
@@ -40,8 +40,9 @@
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+/* We need to tell the compiler that we meant to leave out the null character. */
#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \
- const unsigned char name [sizeof(string) - 1];
+ const unsigned char name [sizeof(string) - 1] __attribute__ ((nonstring));
union mbedtls_ssl_tls13_labels_union {
MBEDTLS_SSL_TLS1_3_LABEL_LIST
+5
View File
@@ -17,6 +17,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-aR3r84AYvCNx3jm9lB1qtbbEh9rU3LTkI+TK9LPQaPk=";
};
patches = [
# adapted from https://github.com/Mbed-TLS/mbedtls/commit/79b513894a28718604f7cb531380bfea0354844f
./fix-gcc15.patch
];
nativeBuildInputs = [ cmake ];
cmakeFlags = [
@@ -36,7 +36,7 @@ let
pname = "librewolf-bin-unwrapped";
version = "149.0-1";
version = "149.0.2-2";
in
stdenv.mkDerivation {
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
url = "https://codeberg.org/api/packages/librewolf/generic/librewolf/${version}/librewolf-${version}-${arch}-package.tar.xz";
hash =
{
x86_64-linux = "sha256-pW10vDNZMFmNx43yI3dsSO0FNQFS16NVBu2X9NAa+Uo=";
aarch64-linux = "sha256-2mOleX25KcNG8+2jSgXI2rTDvZ6jVwgVYOooIOHqqJE=";
x86_64-linux = "sha256-BzgSMeAHE3t3P5L/Xj0xjJcfsFk3UIYlrJvQGoahpM0=";
aarch64-linux = "sha256-49ODecTb/NeTa8iwB8f4XzGqPfFTJPvEgRJz8gsoGNs=";
}
.${stdenv.hostPlatform.system} or throwSystem;
};
+3 -3
View File
@@ -11,14 +11,14 @@
python3Packages.buildPythonApplication {
pname = "lichess-bot";
version = "2026.4.3.1";
version = "2026.4.15.1";
pyproject = false;
src = fetchFromGitHub {
owner = "lichess-bot-devs";
repo = "lichess-bot";
rev = "98c70bbd693e12eafe1eff40996fb61c08c60ddb";
hash = "sha256-GpnplQ+MQdA+RrLKaq2JO7TQjJY1jWGxSu/Kbg5bBEo=";
rev = "55200ddb52746b87cff3756526c96c8d4f05feb6";
hash = "sha256-HaVDUYEnS1ZC26AXr4CmKY4+1nr59w40+eGDgpOEsKA=";
};
propagatedBuildInputs = with python3Packages; [
+3 -3
View File
@@ -6,13 +6,13 @@
}:
buildGoModule (finalAttrs: {
pname = "litestream";
version = "0.5.10";
version = "0.5.11";
src = fetchFromGitHub {
owner = "benbjohnson";
repo = "litestream";
rev = "v${finalAttrs.version}";
hash = "sha256-xp1Ic7sF3yzpR4FgMOfx/uRp/jv/qzTgSlItOIrl2pI=";
hash = "sha256-LGlcc/FoBiZ7YiZUyqdYmAoV9BgUm4h2/n/KQ3NzFa4=";
};
ldflags = [
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
"-X main.Version=${finalAttrs.version}"
];
vendorHash = "sha256-e2fsgK/fZNIos5W/Gc3u72uzoT2igs6BgzYtz1PyI10=";
vendorHash = "sha256-Zf7BdL0mljGFrRTx4JJxAUXUm6Uh/sVJP/zOJ4ef/CU=";
passthru.tests = { inherit (nixosTests) litestream; };
+5 -5
View File
@@ -24,13 +24,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lnav";
version = "0.13.2";
version = "0.14.0";
src = fetchFromGitHub {
owner = "tstack";
repo = "lnav";
tag = "v${finalAttrs.version}";
hash = "sha256-IYBcYnai7Se3/GNITzhpSV/XYvCUvcpiZDTF4Y58Zt0=";
hash = "sha256-BP4QiGO6x2o+9hRvoB4gz1IfQbr/yLVHgT9PWX/k/3c=";
};
enableParallelBuilding = true;
@@ -68,11 +68,11 @@ stdenv.mkDerivation (finalAttrs: {
];
cargoDeps = rustPlatform.fetchCargoVendor {
src = "${finalAttrs.src}/src/third-party/prqlc-c";
hash = "sha256-hXjn2CF4FxCfDzikWif9hGWRmlIJI+nxbcV8EBEWxis=";
src = "${finalAttrs.src}/src/third-party/lnav-rs-ext";
hash = "sha256-Dy+V45X27dy2TN3JRic6nLmmG11I1Pw7m+vYKYJMnQs=";
};
cargoRoot = "src/third-party/prqlc-c";
cargoRoot = "src/third-party/lnav-rs-ext";
preConfigure = ''
./autogen.sh
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "miro";
version = "0.7.3";
version = "0.8.1";
src = fetchFromGitHub {
owner = "vincent-uden";
repo = "miro";
tag = "v${finalAttrs.version}";
hash = "sha256-HSI6sAXy+PtZdla2GMuWFwoClUIf3E4rc3NHh7Wz1BE=";
hash = "sha256-uHg2RUn0k8POlV5Hod5hwLDLgjAOG6JxWsmdI4Mvx50=";
};
cargoHash = "sha256-yYpHB7LwGxBy5r16vzXflqaygJmibEV4XteD0BV0HoA=";
cargoHash = "sha256-YoLRw/HVMEKIGmAqyffEyKJ9MTkAJhr2gWWW7TXZ4Io=";
nativeBuildInputs = [
rustPlatform.bindgenHook
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "misconfig-mapper";
version = "1.15.2";
version = "1.15.4";
src = fetchFromGitHub {
owner = "intigriti";
repo = "misconfig-mapper";
tag = "v${finalAttrs.version}";
hash = "sha256-pHVa/K9zVLpo/3KKyJfLgYXISRpUE1GbiSQoTrfCxqA=";
hash = "sha256-U4zr+5TD8/rjCv1Ldmie52FZulfohfud72Gyivj2Zko=";
};
vendorHash = "sha256-K3qHMeB+gYWjallt3JurVMC0aK3g9sXYxCgiGUU3OjM=";
vendorHash = "sha256-eQetkCrVlYtiXezFzj35TnYAt6tntzUuJHqRvWEkuC4=";
ldflags = [
"-s"
+83 -22
View File
@@ -1,34 +1,95 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
index ceff715b..143659fb 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -31,30 +31,6 @@ endif()
diff --git c/CMakeLists.txt i/CMakeLists.txt
index bc227885..143382b3 100644
--- c/CMakeLists.txt
+++ i/CMakeLists.txt
@@ -30,91 +30,6 @@ endif()
# Platform specifics
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
add_definitions(-D_XOPEN_SOURCE_EXTENDED)
-
- # ncurses
- execute_process(COMMAND sh "-c"
- "command -v brew &> /dev/null && brew --prefix ncurses 2> /dev/null | tr -d '\n'"
- OUTPUT_VARIABLE NCURSES_ROOT_DIR)
- if (EXISTS "${NCURSES_ROOT_DIR}")
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (detected).")
- if (DEFINED NCURSES_ROOT_DIR AND EXISTS "${NCURSES_ROOT_DIR}")
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (user-specified)")
- else()
- set(NCURSES_ROOT_DIR /opt/local)
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (default).")
- execute_process(COMMAND sh "-c"
- "command -v brew &> /dev/null && brew --prefix ncurses 2> /dev/null | tr -d '\n'"
- OUTPUT_VARIABLE NCURSES_ROOT_DIR)
- if (EXISTS "${NCURSES_ROOT_DIR}")
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (homebrew)")
- else()
- foreach(FALLBACK_DIR /opt/homebrew/opt/ncurses /usr/local/opt/ncurses)
- if (EXISTS "${FALLBACK_DIR}")
- set(NCURSES_ROOT_DIR "${FALLBACK_DIR}")
- break()
- endif()
- endforeach()
- if (EXISTS "${NCURSES_ROOT_DIR}")
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (fallback)")
- elseif (EXISTS "/opt/local")
- set(NCURSES_ROOT_DIR "/opt/local")
- message(STATUS "Ncurses cmake prefix '${NCURSES_ROOT_DIR}' (macports)")
- endif()
- endif()
- endif()
- if (EXISTS "${NCURSES_ROOT_DIR}")
- list(APPEND CMAKE_PREFIX_PATH ${NCURSES_ROOT_DIR})
- endif()
- list(APPEND CMAKE_PREFIX_PATH ${NCURSES_ROOT_DIR})
-
- # openssl
- execute_process(COMMAND sh "-c"
- "command -v brew &> /dev/null && brew --prefix openssl 2> /dev/null | tr -d '\n'"
- OUTPUT_VARIABLE OPENSSL_ROOT_DIR)
- if (EXISTS "${OPENSSL_ROOT_DIR}")
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (detected).")
- if (DEFINED OPENSSL_ROOT_DIR AND EXISTS "${OPENSSL_ROOT_DIR}")
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (user-specified)")
- else()
- set(OPENSSL_ROOT_DIR /opt/local)
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (default).")
- execute_process(COMMAND sh "-c"
- "command -v brew &> /dev/null && brew --prefix openssl 2> /dev/null | tr -d '\n'"
- OUTPUT_VARIABLE OPENSSL_ROOT_DIR)
- if (EXISTS "${OPENSSL_ROOT_DIR}")
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (homebrew)")
- else()
- foreach(FALLBACK_DIR /opt/homebrew/opt/openssl /usr/local/opt/openssl)
- if (EXISTS "${FALLBACK_DIR}")
- set(OPENSSL_ROOT_DIR "${FALLBACK_DIR}")
- break()
- endif()
- endforeach()
- if (EXISTS "${OPENSSL_ROOT_DIR}")
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (fallback)")
- elseif (EXISTS "/opt/local")
- set(OPENSSL_ROOT_DIR "/opt/local")
- message(STATUS "OpenSSL cmake prefix '${OPENSSL_ROOT_DIR}' (macports)")
- endif()
- endif()
- endif()
- if (EXISTS "${OPENSSL_ROOT_DIR}")
- list(APPEND CMAKE_PREFIX_PATH ${OPENSSL_ROOT_DIR})
- endif()
-
- # sqlite
- if (DEFINED SQLITE_ROOT_DIR AND EXISTS "${SQLITE_ROOT_DIR}")
- message(STATUS "SQLite cmake prefix '${SQLITE_ROOT_DIR}' (user-specified)")
- else()
- execute_process(COMMAND sh "-c"
- "command -v brew &> /dev/null && brew --prefix sqlite 2> /dev/null | tr -d '\n'"
- OUTPUT_VARIABLE SQLITE_ROOT_DIR)
- if (EXISTS "${SQLITE_ROOT_DIR}")
- message(STATUS "SQLite cmake prefix '${SQLITE_ROOT_DIR}' (homebrew)")
- else()
- foreach(FALLBACK_DIR /opt/homebrew/opt/sqlite /usr/local/opt/sqlite)
- if (EXISTS "${FALLBACK_DIR}")
- set(SQLITE_ROOT_DIR "${FALLBACK_DIR}")
- break()
- endif()
- endforeach()
- if (EXISTS "${SQLITE_ROOT_DIR}")
- message(STATUS "SQLite cmake prefix '${SQLITE_ROOT_DIR}' (fallback)")
- elseif (EXISTS "/opt/local")
- set(SQLITE_ROOT_DIR "/opt/local")
- message(STATUS "SQLite cmake prefix '${SQLITE_ROOT_DIR}' (macports)")
- endif()
- endif()
- endif()
- if (EXISTS "${SQLITE_ROOT_DIR}")
- list(APPEND CMAKE_PREFIX_PATH ${SQLITE_ROOT_DIR})
- endif()
- list(APPEND CMAKE_PREFIX_PATH ${OPENSSL_ROOT_DIR})
-
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Android")
add_compile_definitions(_XOPEN_SOURCE_EXTENDED)
+13 -13
View File
@@ -1,22 +1,22 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
index a1928ee3..26157e56 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -126,10 +126,6 @@ message(STATUS "Static Go: ${HAS_STATICGOLIB}")
diff --git c/CMakeLists.txt i/CMakeLists.txt
index bc227885..d37cafe9 100644
--- c/CMakeLists.txt
+++ i/CMakeLists.txt
@@ -182,10 +182,6 @@ message(STATUS "Static Go: ${HAS_STATICGOLIB}")
# Check Golang version for whatsmeow minimum requirement
set(GO_VERSION_MIN 1.23)
-execute_process(COMMAND bash "-c" "go version 2> /dev/null | cut -c14- | cut -d' ' -f1 | tr -d '\n'" OUTPUT_VARIABLE GO_VERSION)
-if((HAS_WHATSAPP OR HAS_SIGNAL) AND (NOT GO_VERSION VERSION_GREATER_EQUAL GO_VERSION_MIN))
- message(FATAL_ERROR "Go version ${GO_VERSION} (need >= ${GO_VERSION_MIN} to build WhatsApp or Signal).")
- message(FATAL_ERROR "Go version ${GO_VERSION} (need >= ${GO_VERSION_MIN} to build WhatsApp or Signal)")
-endif()
# Check Little/Big Endian for tdlib requirement
test_big_endian(IS_BIG_ENDIAN)
diff --git i/lib/tgchat/ext/td/CMakeLists.txt w/lib/tgchat/ext/td/CMakeLists.txt
index 795f1f4b..7e41549c 100644
--- i/lib/tgchat/ext/td/CMakeLists.txt
+++ w/lib/tgchat/ext/td/CMakeLists.txt
diff --git c/lib/tgchat/ext/td/CMakeLists.txt i/lib/tgchat/ext/td/CMakeLists.txt
index f65c6e45..46b08fdd 100644
--- c/lib/tgchat/ext/td/CMakeLists.txt
+++ i/lib/tgchat/ext/td/CMakeLists.txt
@@ -140,7 +140,6 @@ if (CLANG OR GCC)
endif()
@@ -25,10 +25,10 @@ index 795f1f4b..7e41549c 100644
message(STATUS "Git state: ${TD_GIT_COMMIT_HASH}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/td/telegram/GitCommitHash.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/td/telegram/GitCommitHash.cpp" @ONLY)
diff --git i/lib/wmchat/CMakeLists.txt w/lib/wmchat/CMakeLists.txt
diff --git c/lib/wmchat/CMakeLists.txt i/lib/wmchat/CMakeLists.txt
index 84a42ef9..556df050 100644
--- i/lib/wmchat/CMakeLists.txt
+++ w/lib/wmchat/CMakeLists.txt
--- c/lib/wmchat/CMakeLists.txt
+++ i/lib/wmchat/CMakeLists.txt
@@ -20,8 +20,8 @@ install(TARGETS wmchat DESTINATION ${CMAKE_INSTALL_LIBDIR})
target_common_config(wmchat)
+3 -3
View File
@@ -17,13 +17,13 @@
}:
let
version = "5.13.17";
version = "5.14.44";
src = fetchFromGitHub {
owner = "d99kris";
repo = "nchat";
tag = "v${version}";
hash = "sha256-VSya6s3/+vII/M76tHmeJEZh7/gv9L5tYdILuthdO5s=";
hash = "sha256-gG0YkahHP/6KjM+5uzdTRxsonn83cxlJDvdn5HE3h0Q=";
};
libcgowm = buildGoModule {
@@ -31,7 +31,7 @@ let
inherit version src;
sourceRoot = "${src.name}/lib/wmchat/go";
vendorHash = "sha256-lfy7uHH3rLYx6kzIy72ftEiO1CkJkEr7rRXHhuFU/ac=";
vendorHash = "sha256-5Id5+DehV2juLJnEHYvcI67/ykFUQehSrfFW+toZRM0=";
buildPhase = ''
runHook preBuild
+2 -2
View File
@@ -68,13 +68,13 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "noctalia-shell";
version = "4.7.5";
version = "4.7.6";
src = fetchFromGitHub {
owner = "noctalia-dev";
repo = "noctalia-shell";
tag = "v${finalAttrs.version}";
hash = "sha256-0xoCuJSRSWcn4mCX382lCxqLbnuOrrqS4dOcdpoUmZg=";
hash = "sha256-oGMYWsP0qthxQisirZc/r/vpdGTZrInwkh75AC714AE=";
};
nativeBuildInputs = [
+43
View File
@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
installShellFiles,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ocelot";
version = "0.5.2";
src = fetchFromGitHub {
owner = "xrelkd";
repo = "ocelot";
tag = "v${finalAttrs.version}";
hash = "sha256-Z0RKEHeDhHjZtqXWueASMgiqnFRNsPe2rdoC7LZ/Mh8=";
};
cargoHash = "sha256-rJoIElM7fYg+oEV5idUNGys88x6dFeO4Ux8TxJKNqPU=";
nativeBuildInputs = [
installShellFiles
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ocelot \
--bash <($out/bin/ocelot completions bash) \
--fish <($out/bin/ocelot completions fish) \
--zsh <($out/bin/ocelot completions zsh)
'';
__structuredAttrs = true;
meta = {
description = "Process supervisor and init system written in Rust Programming Language";
homepage = "https://github.com/xrelkd/ocelot";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ xrelkd ];
mainProgram = "ocelot";
};
})
@@ -22,9 +22,9 @@ let
phome = "$out/lib/olympus";
# The following variables are to be updated by the update script.
version = "26.03.21.03";
buildId = "5526"; # IMPORTANT: This line is matched with regex in update.sh.
rev = "cd3c4695cf4be1f1aa59211fcc183f603e6c6343";
version = "26.04.16.02";
buildId = "5566"; # IMPORTANT: This line is matched with regex in update.sh.
rev = "047950f997ecf24c3ec5cc01244ffbe2fdc601d9";
in
buildDotnetModule {
pname = "olympus-unwrapped";
@@ -37,7 +37,7 @@ buildDotnetModule {
owner = "EverestAPI";
repo = "Olympus";
fetchSubmodules = true; # Required. See upstream's README.
hash = "sha256-pKKVdCkeqTIFH0iqpko5LuDj9qqLubD+cltkwo86bXg=";
hash = "sha256-lj2cBwtalTK5wJrIzKcZKirviodUehqIagL9j61iTyM=";
};
nativeBuildInputs = [
@@ -7,19 +7,21 @@
pkg-config,
rustPlatform,
rustc,
wrapQtAppsHook,
fcitx5,
ibus,
qtbase,
libsForQt5,
zstd,
withFcitx5Support ? false,
withIbusSupport ? false,
withIbusSupport ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "openbangla-keyboard";
version = "2.0.0-unstable-2025-08-19";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "openbangla";
repo = "openbangla-keyboard";
@@ -34,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
cargo
rustc
rustPlatform.cargoSetupHook
wrapQtAppsHook
libsForQt5.wrapQtAppsHook
];
buildInputs =
@@ -45,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
ibus
]
++ [
qtbase
libsForQt5.qtbase
zstd
];
@@ -17,7 +17,7 @@
buildNpmPackage,
}:
let
pname = "ot-br-posix";
pname = "openthread-border-router";
version = "0-unstable-2025-06-12";
src = fetchFromGitHub {
@@ -74,9 +74,7 @@ stdenv.mkDerivation {
];
postInstall = ''
mkdir -p $out/bin
cp ../script/otbr-firewall $out/bin/
chmod +x $out/bin/otbr-firewall
install -Dm555 -t $out/bin ../script/otbr-firewall
'';
cmakeFlags = [
+7 -3
View File
@@ -10,16 +10,20 @@
buildGoModule (finalAttrs: {
pname = "pangolin-cli";
version = "0.3.3";
version = "0.6.0";
src = fetchFromGitHub {
owner = "fosrl";
repo = "cli";
tag = finalAttrs.version;
hash = "sha256-VOb/rmfeJ51MaI37v9+wEDuSmPQyOuKqfGKxY7gtl1c=";
hash = "sha256-9uQLCSH7LLl8I/LgsgTo6w808iwmH1FF0GYNn5xyVuc=";
};
vendorHash = "sha256-hZj/PDNsWGplSrOgzJtL09/oFXHZ4zdS7BiRS+oy5bw=";
ldflags = [
"-X github.com/fosrl/cli/internal/version.Version=${finalAttrs.version}"
];
vendorHash = "sha256-eBrglhyqKy6pG9eF0yfJdCOLxeWys4atKAp9Jgtzdj8=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -9,14 +9,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "proton-vpn-cli";
version = "0.1.9";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "proton-vpn-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-rve97cy4VwZmzZXXj3OiqITDNJgKp9XimtBQ0MFZ8Tk=";
hash = "sha256-TIS1vhiOaX0ADKD1WRiPv+WYj0LwHmUuqyctygpaBho=";
};
nativeBuildInputs = [
+51 -4
View File
@@ -1,4 +1,5 @@
{
stdenv,
rustPlatform,
pnpm_10,
fetchPnpmDeps,
@@ -21,13 +22,13 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "readest";
version = "0.9.100";
version = "0.10.6";
src = fetchFromGitHub {
owner = "readest";
repo = "readest";
tag = "v${finalAttrs.version}";
hash = "sha256-GsIOMfNqjcdtVRZ0XwCkxpQoIonivLJVT4GmZyB86M0=";
hash = "sha256-48POUgO6torvLJLXpVzDQLF5sZ2Ws+vhiI1x84+exAw=";
fetchSubmodules = true;
};
@@ -44,11 +45,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-/bzjOdpvuPLBMvX/q1WaO3lFg5/jLz5Ypr5OojssXUI=";
hash = "sha256-4CO0ouas6TAZDaL2J8zr9wR28QB/DVN4y1Cqe8m1FEg=";
};
cargoRoot = "../..";
cargoHash = "sha256-qYBHYjwfGkKmGXN8caamZ6/XGtnxe+lmy6dIpdMwS/I=";
cargoHash = "sha256-7wmqDGhtBHU9iOvLrsqGifCEuVdymdljlETkW7dThHA=";
buildAndTestSubdir = "src-tauri";
@@ -60,6 +61,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
substituteInPlace src/services/constants.ts \
--replace-fail "autoCheckUpdates: true" "autoCheckUpdates: false" \
--replace-fail "telemetryEnabled: true" "telemetryEnabled: false"
mkdir -p src-tauri/plugins/tauri-plugin-turso/dist-js
cp -r ${finalAttrs.passthru.tursoPlugin} src-tauri/plugins/tauri-plugin-turso/dist-js
jq '.scripts.build = "true"' \
src-tauri/plugins/tauri-plugin-turso/package.json | \
sponge src-tauri/plugins/tauri-plugin-turso/package.json
'';
nativeBuildInputs = [
@@ -89,10 +96,50 @@ rustPlatform.buildRustPackage (finalAttrs: {
preBuild = ''
# set up pdfjs and simplecc
pnpm setup-vendors
# `tauri-plugin-turso` expects frontend files to exist before the build, else it fails with:
#
# > > tauri-plugin-turso-api@0.1.0 build /build/source/apps/readest-app/src-tauri/plugins/tauri-plugin-turso
# > > true
# >
# > Error Unable to find your web assets, did you forget to build your web app?
# Your frontendDist is set to "../out" (which is `/build/source/apps/readest-app/out`).
pnpm --filter @readest/readest-app build
'';
passthru.updateScript = nix-update-script { };
passthru.tursoPluginDeps = fetchPnpmDeps {
pname = "tauri-plugin-turso";
version = finalAttrs.version;
src = "${finalAttrs.src}/apps/readest-app/src-tauri/plugins/tauri-plugin-turso";
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-Jf/UaEaLUg/v9ZRInBCEfkDY4d6nwyAIegCMKZe0iAQ=";
};
passthru.tursoPlugin = stdenv.mkDerivation {
pname = "tauri-plugin-turso";
version = finalAttrs.version;
src = "${finalAttrs.src}/apps/readest-app/src-tauri/plugins/tauri-plugin-turso";
nativeBuildInputs = [
pnpm_10
pnpmConfigHook
nodejs
];
pnpmDeps = finalAttrs.passthru.tursoPluginDeps;
buildPhase = ''
pnpm build
'';
installPhase = ''
cp -r dist-js $out
'';
};
meta = {
description = "Modern, feature-rich ebook reader";
homepage = "https://github.com/readest/readest";
+2 -2
View File
@@ -9,13 +9,13 @@
# redumper is using C++ modules, this requires latest C++20 compiler and build tools
llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: {
pname = "redumper";
version = "708";
version = "709";
src = fetchFromGitHub {
owner = "superg";
repo = "redumper";
tag = "b${finalAttrs.version}";
hash = "sha256-sn5afjJB50ZyFg7kOalHi+O61LRHMWqOIOV+MxnXcRQ=";
hash = "sha256-3J+/v8Rhu5yT+MgAxcNBiHLAPAcNWc/YJXxFMgOZnPs=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "sentry-native";
version = "0.13.5";
version = "0.13.6";
src = fetchFromGitHub {
owner = "getsentry";
repo = "sentry-native";
tag = finalAttrs.version;
hash = "sha256-EXuSc1xpRwECrOHWLs2hT4VoRmF6x+lDCeu4J0ma5uQ=";
hash = "sha256-4ZHA/sUHAhYwduLPbFQ3Ju8Pjdz14oiIcSvpFMrbkgE=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "sigma-cli";
version = "3.0.0";
version = "3.0.1";
pyproject = true;
src = fetchFromGitHub {
owner = "SigmaHQ";
repo = "sigma-cli";
tag = "v${version}";
hash = "sha256-eRPOGI/mK1jFAs56MJ+VSuce95gMKEffba3cR9Sl8k0=";
hash = "sha256-BBuiLQXGUc3hDF/Dnbs6dNHBMqz43ZtrtnPXTz8r3kQ=";
};
pythonRelaxDeps = [ "click" ];
+8 -5
View File
@@ -11,19 +11,19 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "skills";
version = "1.4.6";
version = "1.5.0";
src = fetchFromGitHub {
owner = "vercel-labs";
repo = "skills";
tag = "v${finalAttrs.version}";
hash = "sha256-H2ZUOjYbG2I2OBV4J8dil84cAhSh+j9ovJFbT88JVEo=";
hash = "sha256-cdundZSbWn8wXByYeXI4lQ3gWtBj3DkPQ37Py0bL3IY=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 3;
hash = "sha256-pwPJ4CRHEtCXpt5b6g/7EbDsUc2KCjOtpiVED0tqoMk=";
inherit (finalAttrs) pname version src;
hash = "sha256-0CS6BTjTj/TAnMNahTk4Vt/0/2eMxmCGUV9PwI8l4Ao=";
};
nativeBuildInputs = [
@@ -47,9 +47,12 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
rm -rf node_modules
pnpm install --force --offline --production --ignore-scripts
mkdir -p $out/lib/node_modules/skills/
mkdir $out/bin
cp -r dist bin package.json $out/lib/node_modules/skills
cp -r dist bin node_modules package.json $out/lib/node_modules/skills
ln -s $out/lib/node_modules/skills/bin/cli.mjs $out/bin/skills
chmod +x $out/bin/skills
+2 -2
View File
@@ -42,7 +42,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "slurm";
version = "25-11-4-1";
version = "25-11-5-1";
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
# because the latter does not keep older releases.
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
repo = "slurm";
# The release tags use - instead of .
rev = "slurm-${builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version}";
hash = "sha256-5axewcMS7+S9R7aQUlQH24M8+AeqO1/qNv+WZMkVDUc=";
hash = "sha256-YGENCN4Ge8wftpSNSA9zw2xV0Ltd0wJMROY+fwOREE8=";
};
outputs = [
+43
View File
@@ -0,0 +1,43 @@
{
stdenv,
fetchFromGitHub,
fetchYarnDeps,
nodejs,
yarnConfigHook,
yarnBuildHook,
meta,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "strichliste-frontend";
version = "2.0.0";
src = fetchFromGitHub {
owner = "strichliste";
repo = "strichliste-web-frontend";
tag = "v${finalAttrs.version}";
hash = "sha256-fi4pz3ylWyC4yvDWsK2Rvv8KDaXeHNVz0jY6PpF07hE=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-leMwcsyhbxPoHJdA3kZDz97Ti77d1TCe8SrzTQMGrWo=";
};
env.NODE_OPTIONS = "--openssl-legacy-provider";
nativeBuildInputs = [
nodejs
yarnConfigHook
yarnBuildHook
];
installPhase = ''
mkdir $out
cp -R build/* $out/
'';
__structuredAttrs = true;
inherit meta;
})
+55
View File
@@ -0,0 +1,55 @@
{
callPackage,
fetchFromGitHub,
lib,
pkgs,
php ? pkgs.php85,
nixosTests,
}:
php.buildComposerProject2 (finalAttrs: {
pname = "strichliste-backend";
version = "2.0.1";
src = fetchFromGitHub {
owner = "strichliste";
repo = "strichliste-backend";
tag = "v${finalAttrs.version}";
hash = "sha256-yI20cUp19ehtOnWdu+MItwgOlNDnt1VK3giInaTQQ4Y=";
};
vendorHash = "sha256-vYPjUaNIf62GoKXopC4nGqIa+Z3C8Q5dnX9FPvM1Ers=";
composerNoDev = true;
composerStrictValidation = false;
postPatch = ''
substituteInPlace config/services.yaml \
--replace-fail "strichliste.yaml" "/etc/strichliste.yaml"
'';
postInstall = ''
mkdir $out/bin
ln -s $out/share/php/strichliste-backend/bin/console $out/bin/strichliste-console
'';
__structuredAttrs = true;
passthru = {
frontend = callPackage ./frontend.nix {
inherit (finalAttrs) meta;
};
phpPackage = php;
tests = {
inherit (nixosTests) strichliste;
};
};
meta = {
description = "strichliste is a tool to replace a tally sheet.";
homepage = "https://www.strichliste.org/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
mainProgram = "strichliste-console";
platforms = lib.platforms.all;
};
})
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "vendir";
version = "0.45.2";
version = "0.45.3";
src = fetchFromGitHub {
owner = "vmware-tanzu";
repo = "carvel-vendir";
rev = "v${finalAttrs.version}";
sha256 = "sha256-2qcaAuLevtP5pouFuENiKneTJs0/k7ftDaFuKjVVIow=";
sha256 = "sha256-pGChtADYje6tGM0qYTwSrGQkUu6P1N8AZiXLJDWoYjA=";
};
vendorHash = null;
+4 -14
View File
@@ -1,6 +1,5 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
testers,
@@ -10,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "wakatime-cli";
version = "2.2.0";
version = "2.3.0";
src = fetchFromGitHub {
owner = "wakatime";
repo = "wakatime-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-TOdAcT+IS6XONIfkASRvd7oTSSW5VX8w5q5ASvJlQb8=";
hash = "sha256-t0HKRN7qguE+zhyI3fbBtuhpDAPZrbMS9wa8crQkLhc=";
};
vendorHash = "sha256-HngszNLX2b2EVvh8ovouIEvjBOJL1jA5AhA6Y11ke9Y=";
@@ -27,23 +26,14 @@ buildGoModule (finalAttrs: {
"-X github.com/wakatime/wakatime-cli/pkg/version.Version=${finalAttrs.version}"
];
# dial tcp 127.0.0.1:51272: connect: operation not permitted
# and goroutine 33 [IO wait, 10 minutes] on darwin
doCheck = !stdenv.hostPlatform.isDarwin;
__darwinAllowLocalNetworking = true;
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
checkFlags =
let
skippedTests = [
# Tests requiring network
"TestFileExperts"
"TestSendHeartbeats"
"TestSendHeartbeats_ExtraHeartbeats"
"TestSendHeartbeats_IsUnsavedEntity"
"TestSendHeartbeats_NonExistingExtraHeartbeatsEntity"
"TestSendHeartbeats_ExtraHeartbeatsIsUnsavedEntity"
"TestFileExperts_Err(Auth|Api|BadRequest)"
"TestLoadParams_APIKey_FromVault_Err_Darwin"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+2 -2
View File
@@ -14,13 +14,13 @@
}:
buildDotnetModule rec {
pname = "wheelwizard";
version = "2.4.3";
version = "2.4.4";
src = fetchFromGitHub {
owner = "TeamWheelWizard";
repo = "WheelWizard";
tag = version;
hash = "sha256-WJVEofU41ZoOYLgD2TMPy50KQ44SPuLKS2piRmI9wV8=";
hash = "sha256-uuEAJPV3P9SRs77nDC9nR3XtnGJreD+H1Xweyx4tU2s=";
};
postPatch = ''
rm .config/dotnet-tools.json
+3 -3
View File
@@ -58,13 +58,13 @@ assert (
);
rustPlatform.buildRustPackage (finalAttrs: {
pname = "xremap${variant.suffix or ""}";
version = "0.15.0";
version = "0.15.1";
src = fetchFromGitHub {
owner = "xremap";
repo = "xremap";
tag = "v${finalAttrs.version}";
hash = "sha256-8IryQGSAxIVQiGGiY3trDvvJ50c19LHP4KvIa3P0zII=";
hash = "sha256-PvhpPdgAnCT8HaPEQHdTSympmGqRAK9/t3T5KEHovMM=";
};
nativeBuildInputs = [ pkg-config ];
@@ -72,7 +72,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
buildNoDefaultFeatures = true;
buildFeatures = variant.features;
cargoHash = "sha256-5vDKb6S4G+oNm//WtGsr4kEthozoznzn2N8ajtiMIeY=";
cargoHash = "sha256-t32EVL8btJEeqWL5601+6pptT/Mt4KxMeVVlNo/nw5k=";
passthru = lib.mapAttrs (name: lib.const (xremap.override { withVariant = name; })) variants;
+31
View File
@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage (oldAttrs: {
pname = "yggdrasil-ng";
version = "0.1.4";
src = fetchFromGitHub {
owner = "Revertron";
repo = "Yggdrasil-ng";
tag = "v${oldAttrs.version}";
hash = "sha256-AutOV1FXBeiG9CNoVSili3sF+QndZI2L7b72jdPOe5E=";
};
cargoHash = "sha256-9/whbfM5fMZT6COo2HvdCmeCFC93NI1GXhGNAAaTiLM=";
__structuredAttrs = true;
meta = {
mainProgram = "telemt";
description = "Yggdrasil Network rewritten in Rust";
homepage = "https://github.com/Revertron/Yggdrasil-ng";
license = with lib.licenses; [ mpl20 ];
maintainers = with lib.maintainers; [
r4v3n6101
malik
];
};
})
+2 -2
View File
@@ -11,14 +11,14 @@
python3Packages.buildPythonPackage rec {
pname = "yubikey-manager";
version = "5.9.0";
version = "5.9.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Yubico";
repo = "yubikey-manager";
tag = version;
hash = "sha256-8SWuhuFeMRIskJRxeb67gA3gdhSDf/vnrYHra6t71Bc=";
hash = "sha256-ldJZWKzXDyBTHkrhiIRI4RFCBEZxVPiHBqzmcCT7PYc=";
};
postPatch = ''
@@ -34,13 +34,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "morph-browser";
version = "1.99.3";
version = "1.99.4";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/morph-browser";
tag = finalAttrs.version;
hash = "sha256-zSpgcOiudt1UIsW5tRGA5AmguJn2q4+XR/G8UCqxePk=";
hash = "sha256-gVRaM4pnQlfwRKYVsXk4wO79FgNJ60QBn0X2QZE+8a4=";
};
outputs = [
@@ -12,7 +12,7 @@
config,
enableCuda ? config.cudaSupport,
cudaPackages,
openmp ? null,
llvmPackages,
}@inputs:
let
@@ -36,14 +36,13 @@ effectiveStdenv.mkDerivation rec {
sha256 = "sha256-Anen1YtXsSPhk8DpA4JtADIz9m8oXFl9umlkb4iImf8=";
};
nativeBuildInputs = [
]
++ lib.optionals effectiveStdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
]
++ lib.optionals enableCuda [
cudaPackages.cuda_nvcc
];
nativeBuildInputs =
lib.optionals effectiveStdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
]
++ lib.optionals enableCuda [
cudaPackages.cuda_nvcc
];
# Use compatible indexing for lapack and blas used
buildInputs =
@@ -57,7 +56,7 @@ effectiveStdenv.mkDerivation rec {
mpfr
]
++ lib.optionals effectiveStdenv.cc.isClang [
openmp
llvmPackages.openmp
]
++ lib.optionals enableCuda [
cudaPackages.cuda_cudart
@@ -885,6 +885,20 @@ in
});
neorg = prev.neorg.overrideAttrs {
doCheck = true;
nativeCheckInputs = [
final.nlua
final.bustedCheckHook
writableTmpDirAsHomeHook
];
nvimSkipModules = [
"neorg.modules.core.dirman.tests"
"neorg.modules.core.ui.module"
"neorg.modules.core.concealer.module"
];
# Relax dependencies
postConfigure = ''
substituteInPlace ''${rockspecFilename} \
@@ -13,14 +13,14 @@
buildPythonPackage (finalAttrs: {
pname = "claude-agent-sdk";
version = "0.1.59";
version = "0.1.60";
pyproject = true;
src = fetchFromGitHub {
owner = "anthropics";
repo = "claude-agent-sdk-python";
tag = "v${finalAttrs.version}";
hash = "sha256-fKPY/ORxIvwJ7MI6gkBQv0Ydy5rPRszQ+/1HvIIzOEA=";
hash = "sha256-4pDR8YkzF5tt6JlWN5zfNxQah7hz97bqeputPUstqfY=";
};
build-system = [ hatchling ];
@@ -7,6 +7,7 @@
fetchFromGitHub,
go,
pykerberos,
hatchling,
skein,
sqlalchemy,
traitlets,
@@ -15,7 +16,7 @@
buildPythonPackage rec {
pname = "dask-gateway-server";
version = "2025.4.0";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "dask";
@@ -28,7 +29,9 @@ buildPythonPackage rec {
nativeBuildInputs = [ go ];
propagatedBuildInputs = [
build-system = [ hatchling ];
dependencies = [
aiohttp
colorlog
cryptography
@@ -64,13 +64,7 @@ buildPythonPackage.override { inherit (torch) stdenv; } (finalAttrs: {
{
TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep " " cudaCapabilities'}";
DISABLE_SM90_FEATURES =
if disableSm90Features then
lib.warn ''
python3Packages.deepep: Disabling SM90 features as the provided `cudaCapabilities` list include '${minCudaCapability}'
'' "1"
else
"0";
DISABLE_SM90_FEATURES = if disableSm90Features then "1" else "0";
CUDA_HOME = symlinkJoin {
name = "cuda-redist";
@@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "django-modeltranslation";
version = "0.20.2";
version = "0.20.3";
pyproject = true;
src = fetchFromGitHub {
owner = "deschler";
repo = "django-modeltranslation";
tag = "v${version}";
hash = "sha256-zjCasSZzIviCBDHyKwQlS0lR5S01AmMjBnWG/iEEJO4=";
hash = "sha256-DlghTCh2bcY+jHOYhQWVzMRGNKRIiQkLt4ZHDLVxUUs=";
};
build-system = [
@@ -1,5 +1,6 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
@@ -87,6 +88,10 @@ buildPythonPackage (finalAttrs: {
"test_as_runnable_batch"
"test_as_runnable_async"
"test_as_runnable_async_batch"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# flaky (timing sensitive)
"test_refresh_loop_continues_after_500_errors"
];
disabledTestPaths = [
@@ -13,14 +13,14 @@
buildPythonPackage (finalAttrs: {
pname = "polyswarm-api";
version = "3.17.1";
version = "3.18.0";
pyproject = true;
src = fetchFromGitHub {
owner = "polyswarm";
repo = "polyswarm-api";
tag = finalAttrs.version;
hash = "sha256-nL+DolLBnw/yahNqeCYtepAMFw4yHWXTajz3+KxF9R8=";
hash = "sha256-Mrw+/SbDhfVfC651EHcItf2x2/97kj8ePpxfAQYxBXc=";
};
build-system = [ setuptools ];
@@ -27,14 +27,14 @@
buildPythonPackage rec {
pname = "proton-vpn-api-core";
version = "4.18.0";
version = "4.19.1";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "python-proton-vpn-api-core";
rev = "v${version}";
hash = "sha256-dyMSyGkeyYXVKAhkmQpq2w4zCFk3fz1qEVECOVl8jEI=";
hash = "sha256-PD/UQ+BoDO6firhlBJDRNrtiHgnp+4uIb8j+egXqxPA=";
};
postPatch = ''
@@ -10,14 +10,14 @@
buildPythonPackage (finalAttrs: {
pname = "py-netgear-plus";
version = "0.4.7";
version = "0.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "foxey";
repo = "py-netgear-plus";
tag = "v${finalAttrs.version}";
hash = "sha256-HoHXqAqVPqaw7WkRCi5AJ2dKG8IZX7l7bTp22KZBzdU=";
hash = "sha256-8cFaNDgOrsoDkOb6m5dJmd+vzUe11RyTOhd49JOygkA=";
};
build-system = [ hatchling ];
@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "pyvicare";
version = "2.58.1";
version = "2.59.1";
pyproject = true;
src = fetchFromGitHub {
owner = "openviess";
repo = "PyViCare";
tag = finalAttrs.version;
hash = "sha256-yCi+Eu3PsxSsvfzoxvTg5FE5wUEtGm4GT1pkzkeNVmI=";
hash = "sha256-dy6VFVisQXWB46pdltP2Ww/WyAyQ1igLn8LiSGHPKa8=";
};
postPatch = ''
@@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "tencentcloud-sdk-python";
version = "3.1.78";
version = "3.1.79";
pyproject = true;
src = fetchFromGitHub {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = finalAttrs.version;
hash = "sha256-hcRbJly7dkCopzTHwwOD77ec8MJh3/2LYuBfh0d55Wc=";
hash = "sha256-4RedYjoUdwHfq2232jmoXgS6t115/RR2LfO2IyDOk1U=";
};
build-system = [ setuptools ];
@@ -10,14 +10,14 @@
buildPythonPackage (finalAttrs: {
pname = "tuya-device-handlers";
version = "0.0.16";
version = "0.0.17";
pyproject = true;
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = "tuya-device-handlers";
tag = "v${finalAttrs.version}";
hash = "sha256-DuMG0nItXwJYl4c3JprA308+qyFzEemt2QS/sJ8kvlU=";
hash = "sha256-T3jwUeRVSAiRSzyIOo7M046C+Dul1/1I9kZj0OzIIcs=";
};
build-system = [ poetry-core ];
@@ -1,32 +1,35 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
rich,
syrupy,
typer,
yarl,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "twentemilieu";
version = "2.2.1";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-twentemilieu";
tag = "v${version}";
hash = "sha256-N6XSf212orMf3vqIjBzu+4fpKX7kFinH180lCWXtjzc=";
tag = "v${finalAttrs.version}";
hash = "sha256-RSUKluCE66oA0QbPlJ3niIuewvBxPmj18ZCUBNCFr4o=";
};
postPatch = ''
# Upstream is creating GitHub releases without version
substituteInPlace pyproject.toml \
--replace '"0.0.0"' '"${version}"'
--replace '"0.0.0"' '"${finalAttrs.version}"'
'';
build-system = [ poetry-core ];
@@ -36,20 +39,29 @@ buildPythonPackage rec {
yarl
];
optional-dependencies = {
cli = [
rich
typer
];
};
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
syrupy
]
++ lib.flatten (builtins.attrValues finalAttrs.passthru.optional-dependencies);
pythonImportsCheck = [ "twentemilieu" ];
meta = {
description = "Python client for Twente Milieu";
homepage = "https://github.com/frenck/python-twentemilieu";
changelog = "https://github.com/frenck/python-twentemilieu/releases/tag/v${version}";
changelog = "https://github.com/frenck/python-twentemilieu/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})

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