Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-08-03 00:33:35 +00:00
committed by GitHub
153 changed files with 1666 additions and 572 deletions

View File

@@ -109,6 +109,8 @@
- `buildFHSEnvChroot` has been removed after deprecation in 23.05.
- `leafnode` has been removed, as it was an unmaintained alpha-release of leafnode 2 and has a dependency on the EOL PRCE-library. Consider using `leafnode1` instead, which is still maintained.
- `gh-actions-cache` has been removed since its functionality has been integrated directly into `gh` (`gh cache`). See [upstream readme](https://github.com/actions/gh-actions-cache).
- `requireFile` now sets `meta.license = lib.licenses.unfree` by default. Users of `requireFile`-based derivations that preserve this default will need to explicitly allow their evaluation as described in [](#sec-allow-unfree).

View File

@@ -7425,6 +7425,12 @@
githubId = 974130;
name = "David Pätzel";
};
dpaulat = {
email = "dpaulat@gmail.com";
name = "Dan Paulat";
github = "dpaulat";
githubId = 2886605;
};
dpc = {
email = "dpc@dpc.pw";
github = "dpc";
@@ -24024,6 +24030,12 @@
githubId = 12279531;
name = "Ricardo Guevara";
};
rharish = {
email = "harish.rajagopals@gmail.com";
github = "rharish101";
githubId = 25344287;
name = "Harish Rajagopal";
};
rhelmot = {
name = "Audrey Dutcher";
github = "rhelmot";

View File

@@ -40,6 +40,8 @@
- [mail-tlsa-check-exporter](https://github.com/ietf-tools/mail-tlsa-check-exporter), validates SMTP / IMAP server certificates against a TLSA record as a Prometheus exporter. Available as [services.prometheus.exporters.mail-tlsa-check](#opt-services.prometheus.exporters.mail-tlsa-check.enable).
- [feishin](https://github.com/jeffvli/feishin), a modern self-hosted music player. Available as [services.feishin](#opt-services.feishin.enable).
- [CastSponsorSkip](https://github.com/gabe565/CastSponsorSkip/), skips YouTube sponsorships (and sometimes ads) on all local Google Cast devices.
- [Stump](https://www.stumpapp.dev/), a free and open source comics, manga and digital book server with OPDS support. Available as [services.stump](#opt-services.stump.enable).

View File

@@ -1674,6 +1674,7 @@
./services/web-apps/engelsystem.nix
./services/web-apps/ente.nix
./services/web-apps/fediwall.nix
./services/web-apps/feishin.nix
./services/web-apps/fider.nix
./services/web-apps/filebrowser.nix
./services/web-apps/firefly-iii-data-importer.nix

View File

@@ -0,0 +1,156 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.feishin;
in
{
options.services.feishin = {
enable = lib.mkEnableOption "the web version of Feishin";
package = lib.mkPackageOption pkgs "feishin-web" { };
domain = lib.mkOption {
description = "Domain to use for the virtualhost.";
type = lib.types.str;
};
pathbase = lib.mkOption {
description = "URL path base to use for the virtualhost.";
type = lib.types.str;
default = "";
example = "/music";
};
settings = lib.mkOption {
description = ''
Configuration for the web version of Feishin, specified as key-value pairs.
Refer to <https://github.com/jeffvli/feishin#configuration>, and
<https://github.com/jeffvli/feishin/blob/development/settings.js.template>
for the template.
'';
type = lib.types.attrsOf lib.types.str;
default = {
ANALYTICS_DISABLED = "true";
};
example = {
ANALYTICS_DISABLED = "true";
SERVER_NAME = "My Server";
SERVER_LOCK = "true";
};
};
nginx = {
enable = lib.mkEnableOption "a virtualhost to serve Feishin through nginx";
virtualHost = lib.mkOption {
description = "Extra configuration for the nginx virtualhost for Feishin.";
type = lib.types.submodule (import ../web-servers/nginx/vhost-options.nix { inherit config lib; });
default = { };
example = lib.literalExpression ''
{
serverAliases = [ "feishin.''${config.networking.domain}" ];
}
'';
};
};
caddy = {
enable = lib.mkEnableOption "a virtualhost to serve Feishin through Caddy";
virtualHost = lib.mkOption {
description = "Extra configuration for the Caddy virtualhost for Feishin.";
type = lib.types.submodule (
import ../web-servers/caddy/vhost-options.nix { cfg = config.services.caddy; }
);
default = { };
example = lib.literalExpression ''
{
serverAliases = [ "feishin.''${config.networking.domain}" ];
}
'';
};
};
};
config =
let
resolvedSettings =
cfg.settings // lib.optionalAttrs (cfg.pathbase != "") { PUBLIC_PATH = cfg.pathbase; };
settingsJs = ''
"use strict";
${lib.concatMapAttrsStringSep "\n" (name: value: ''window.${name} = "${value}";'') resolvedSettings}
'';
settingsJsDir = pkgs.writeTextDir "settings.js" settingsJs;
in
lib.mkIf cfg.enable {
services.nginx = lib.mkIf cfg.nginx.enable {
enable = lib.mkDefault true;
virtualHosts."${cfg.domain}" = lib.mkMerge [
cfg.nginx.virtualHost
{
root = lib.mkForce "${cfg.package}";
extraConfig = ''
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
'';
locations."${cfg.pathbase}/" = {
tryFiles = "$uri $uri/ /index.html =404";
};
locations."=${cfg.pathbase}/settings.js" = {
alias = settingsJsDir + "/settings.js";
extraConfig = ''
add_header Cache-Control "no-store";
'';
};
}
];
};
services.caddy = lib.mkIf cfg.caddy.enable {
enable = lib.mkDefault true;
virtualHosts."${cfg.domain}" = lib.mkMerge [
cfg.caddy.virtualHost
{
hostName = lib.mkForce cfg.domain;
extraConfig =
let
baseConfig = ''
encode
handle /settings.js {
header Cache-Control no-store
root ${settingsJsDir}
file_server
}
handle {
root ${cfg.package}
try_files {path} /index.html
file_server
}
'';
in
if (cfg.pathbase == "") then
baseConfig
else
''
handle_path ${cfg.pathbase}/* {
${baseConfig}
}
'';
}
];
};
};
meta.maintainers = with lib.maintainers; [
rharish
BatteredBunny
];
}

View File

@@ -577,6 +577,7 @@ in
fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
fcitx5 = runTest ./fcitx5;
fedimintd = runTest ./fedimintd.nix;
feishin = handleTest ./feishin { };
ferm = runTest ./ferm.nix;
ferretdb = import ./ferretdb.nix { inherit pkgs runTest; };
fider = runTest ./fider.nix;

View File

@@ -0,0 +1,36 @@
import ../make-test-python.nix (
{ lib, ... }:
{
name = "feishin-caddy";
meta.maintainers = with lib.maintainers; [
rharish
BatteredBunny
];
nodes.machine =
{ pkgs, ... }:
{
services.feishin = {
enable = true;
domain = "localhost:80";
pathbase = "/feishin";
settings = {
ANALYTICS_DISABLED = "true";
};
caddy.enable = true;
caddy.virtualHost.extraConfig = "tls internal";
};
# disable letsencrypt cert fetching
services.caddy.globalConfig = "auto_https disable_certs";
};
testScript = ''
machine.wait_for_unit("caddy.service")
machine.wait_for_open_port(80)
machine.succeed("curl -vvv --fail --show-error --silent --location --insecure http://localhost/feishin/")
assert "<title>Feishin</title>" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/feishin/")
assert "window.ANALYTICS_DISABLED = \"true\";" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/feishin/settings.js")
'';
}
)

View File

@@ -0,0 +1,6 @@
{ system, pkgs, ... }:
{
caddy = import ./caddy.nix { inherit system pkgs; };
nginx = import ./nginx.nix { inherit system pkgs; };
}

View File

@@ -0,0 +1,33 @@
import ../make-test-python.nix (
{ lib, ... }:
{
name = "feishin-nginx";
meta.maintainers = with lib.maintainers; [
rharish
BatteredBunny
];
nodes.machine =
{ pkgs, ... }:
{
services.feishin = {
enable = true;
domain = "localhost";
pathbase = "/feishin";
settings = {
ANALYTICS_DISABLED = "true";
};
nginx.enable = true;
};
};
testScript = ''
machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80)
machine.succeed("curl -vvv --fail --show-error --silent --location --insecure http://localhost/feishin/")
assert "<title>Feishin</title>" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/feishin/")
assert "window.ANALYTICS_DISABLED = \"true\";" in machine.succeed("curl --fail --show-error --silent --location --insecure http://localhost/feishin/settings.js")
'';
}
)

View File

@@ -3538,6 +3538,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
cocci-syntax = buildVimPlugin {
pname = "cocci-syntax";
version = "0-unstable-2025-03-19";
src = fetchFromGitHub {
owner = "ahf";
repo = "cocci-syntax";
rev = "7399561a3e4a08e0f1dfa5288e2ebf112482816c";
hash = "sha256-Oah+00qd5MzTfNOi4daP3ibqtb6PflBaMzn0+QDqsj0=";
};
meta.homepage = "https://github.com/ahf/cocci-syntax/";
meta.license = unfree;
meta.hydraPlatforms = [ ];
};
coconut-vim = buildVimPlugin {
pname = "coconut.vim";
version = "0-unstable-2017-10-10";

View File

@@ -894,6 +894,12 @@ assertNoAdditions {
};
});
cocci-syntax = super.cocci-syntax.overrideAttrs (old: {
meta = old.meta // {
license = lib.licenses.vim;
};
});
codecompanion-history-nvim = super.codecompanion-history-nvim.overrideAttrs {
dependencies = with self; [
# transitive dependency for codecompanion-nvim

View File

@@ -251,6 +251,7 @@ https://github.com/neoclide/coc-neco/,,
https://github.com/coc-extensions/coc-svelte/,,
https://github.com/iamcco/coc-tailwindcss/,,
https://github.com/neoclide/coc.nvim/,release,
https://github.com/ahf/cocci-syntax/,,
https://github.com/manicmaniac/coconut.vim/,,
https://github.com/ravitemer/codecompanion-history.nvim/,,
https://github.com/franco-ruggeri/codecompanion-lualine.nvim/,,

View File

@@ -396,8 +396,8 @@ let
mktplcRef = {
name = "astro-vscode";
publisher = "astro-build";
version = "2.16.17";
hash = "sha256-k54hpRlzjtNWv0mIUBKFxJYc5T2jpWxB9U8nuXXmjJ0=";
version = "2.16.18";
hash = "sha256-kDn4AtjFsdKjbUBg9nvYyXXUWiEqzoSnoxhiDuw8jVY=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/astro-build.astro-vscode/changelog";
@@ -1243,8 +1243,8 @@ let
mktplcRef = {
name = "vscode-markdownlint";
publisher = "DavidAnson";
version = "0.61.2";
hash = "sha256-RGWgY6pyq7j509UjLD3SSyOOA7cXGFFk95H1hoeKPjA=";
version = "0.62.0";
hash = "sha256-cupXtTdzTKxhvTEHKe/OU8TFlp1CeAIIy2XCLvLMZ5s=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@@ -2015,8 +2015,8 @@ let
mktplcRef = {
name = "gitlab-workflow";
publisher = "gitlab";
version = "6.85.3";
hash = "sha256-EsQ+95Wo/5F9mEMQ7X36vBgUWlsz5BCOm+7QrGHuepc=";
version = "6.85.5";
hash = "sha256-WtdTQjDxeI4YLOSQFdrFpdualNizYIQC7HQlsocSt4M=";
};
meta = {
description = "GitLab extension for Visual Studio Code";
@@ -4269,8 +4269,8 @@ let
mktplcRef = {
publisher = "shopify";
name = "ruby-lsp";
version = "0.10.4";
hash = "sha256-fonAbZ2nvC3Dz/9j4J23hiiJ/xgT8z/LI1HYYQh6u9w=";
version = "0.10.6";
hash = "sha256-5yEfTSgcSv9SQILOu7hyfNcK+m5IBHKpLDjXXwOZb/I=";
};
meta = {
description = "VS Code plugin for connecting with the Ruby LSP";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "dosbox-pure";
version = "0-unstable-2026-07-15";
version = "0-unstable-2026-07-29";
src = fetchFromGitHub {
owner = "schellingb";
repo = "dosbox-pure";
rev = "a4a0bab7f8931433588f2fcad9045c85b277373d";
hash = "sha256-sniDrr5kSU/OnoE08WXNmTTstfI6cHyq4I7xjtrM+7c=";
rev = "7f6e8fb7385fa446d1444d671063268520bf9b54";
hash = "sha256-w1LSyDvUPo5Owa0JCtXkEmdlqIzrk1pnpuwOlncMYJc=";
};
hardeningDisable = [ "format" ];

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "genesis-plus-gx";
version = "0-unstable-2026-07-10";
version = "0-unstable-2026-07-27";
src = fetchFromGitHub {
owner = "libretro";
repo = "Genesis-Plus-GX";
rev = "fa4dca561e08d5be9077419f7b255e1da213ed21";
hash = "sha256-FfO5LzCH0hYqiVpE2qPJhX4gOrXqqYCoW4XRbz93La4=";
rev = "f687c49dc4b825101f26a483b222620686616b78";
hash = "sha256-CztdCuoNIGzpntWmdFmWaTv4TGbo3PdRiH57UMp785M=";
};
meta = {

View File

@@ -6,13 +6,13 @@
}:
mkLibretroCore {
core = "mame2000";
version = "0-unstable-2026-06-15";
version = "0-unstable-2026-07-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2000-libretro";
rev = "131ae96d72a613451517fa2eca0b598b2b266a94";
hash = "sha256-fbOGMebiqckcwPk81YrdSHwti6qrLSxB3qYSY8SEqRs=";
rev = "f099ba44c7664906fd7e01cbed89d13a7e32dee1";
hash = "sha256-6DhPtvN8CzZl+jJ2ygQdvIJjvjA5Bqjho6KWGyJvOwQ=";
};
makefile = "Makefile";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mgba";
version = "0-unstable-2026-04-03";
version = "0-unstable-2026-07-28";
src = fetchFromGitHub {
owner = "libretro";
repo = "mgba";
rev = "6dce57eef127dc4cc292644f38196e0e7c58590c";
hash = "sha256-sLxQ7NG5ypSQACo1Q/9/FwQKCpZsIU0Y35dLa8uhOVs=";
rev = "32de792178a3662cd0402c8568fccfaad4a764a1";
hash = "sha256-Wz2qr657sF7D9R2jkHJLLs1BHkoKxYXd2rUAbroY5Rw=";
};
meta = {

View File

@@ -6,13 +6,13 @@
}:
mkLibretroCore {
core = "opera";
version = "0-unstable-2026-07-23";
version = "0-unstable-2026-07-27";
src = fetchFromGitHub {
owner = "libretro";
repo = "opera-libretro";
rev = "74dd2a8c6319678ffce9f31bdf36279db5681762";
hash = "sha256-NHXOfKItLkQJ0/jH1gLBpLFqOKBB8qgH5gMw7j1YoLw=";
rev = "0e9562eb2e2628fb4fc5d7180fd7125631da7fd4";
hash = "sha256-yz1pOn8S8l4FeMXOpaqdBnZETcr1iKFTOcCTyNEjVS8=";
};
makefile = "Makefile";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "pokemini";
version = "0-unstable-2026-04-20";
version = "0-unstable-2026-07-31";
src = fetchFromGitHub {
owner = "libretro";
repo = "PokeMini";
rev = "bb009b1379ad15f1514f20ca7cbf710b4af42b3e";
hash = "sha256-iXHUk0gWciJCKfbfIa2pOBPIOeKg1yRahNKesLRC8v8=";
rev = "132111b76343559860532a1ccc094f93f1ed5650";
hash = "sha256-Gyany/aEzDlhLM/zowsOU8LLI4FdWEQ83B+mxHX56UI=";
};
makefile = "Makefile";

View File

@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "helm-diff";
version = "3.15.10";
version = "3.15.11";
src = fetchFromGitHub {
owner = "databus23";
repo = "helm-diff";
rev = "v${version}";
hash = "sha256-c0sbFd19cDGm7VJbbfT+FKzUbeyAO1kCgh1eYV11C3I=";
hash = "sha256-h3q0YZQCP+TO5xXSLduAo0cLq3zGo+x3PyvwaZkKoOI=";
};
vendorHash = "sha256-GanQBm/g+PcMHaXA5gAaqacpOuv6kES6ng/CmH8/0j4=";
vendorHash = "sha256-TZ+S1URJP6+R3mOFqisz4Uyhy1cJHw6yCotBOMMdStM=";
ldflags = [
"-s"

View File

@@ -292,13 +292,13 @@
"vendorHash": "sha256-frrFEPGmvem2qQSpPn9fG5hUITa2k5fQ0NHfm65ehfI="
},
"datadrivers_nexus": {
"hash": "sha256-gwExaFhOoJFrAhH91oZEp1AFvI7kgWekp655zd4tyd8=",
"hash": "sha256-t9hpZ4COmMPvs4TgcZLeuOA23oD5vvHw8UVK7SpzI0Y=",
"homepage": "https://registry.terraform.io/providers/datadrivers/nexus",
"owner": "datadrivers",
"repo": "terraform-provider-nexus",
"rev": "v2.8.0",
"rev": "v3.0.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-2nNvLu2jicDUxiIi53qxtc6rvZQ+IEtW+LbRPYChfQE="
"vendorHash": "sha256-DXQ8bfDLI0Wt2UXXeRXaZkgLXoYKjJ6MMNeTbZctD6E="
},
"denoland_deno": {
"hash": "sha256-7IvJrhXMeAmf8e21QBdYNSJyVMEzLpat4Tm4zHWglW8=",
@@ -1139,13 +1139,13 @@
"vendorHash": "sha256-WpI4OZ7BUVgHwQY+7ct+K6CnwXFFuiRbI+iTFSJ8a5A="
},
"rootlyhq_rootly": {
"hash": "sha256-uxEqnGPJPUHhD2qtT9BR34/x6xSN5cZcW0JvH8fKfT0=",
"hash": "sha256-yKcXSVWb1oXXojnZxlVAWLueP6JqW+M0ShpuisyBE8I=",
"homepage": "https://registry.terraform.io/providers/rootlyhq/rootly",
"owner": "rootlyhq",
"repo": "terraform-provider-rootly",
"rev": "v5.17.2",
"rev": "v5.18.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-CndTtUfv1NWZd1sgfGq+e4lPm68aQuqwo55KzmdgXeI="
"vendorHash": "sha256-1ZuYmpnvRD3DI9h6RwaRa171QRKWY9DpAZyVRRXJJlY="
},
"rundeck_rundeck": {
"hash": "sha256-g8unbz8+UGLiAOJju6E2bLkygvZgHkv173PdMDefmrc=",

View File

@@ -41,6 +41,7 @@ let
src = fetchgit {
url = repository;
rev = version;
fetchSubmodules = true; # this is the default, but let's be explicit
inherit sha256;
};
};

View File

@@ -57,7 +57,7 @@ for pname in depsDict:
repository = depDict["repository"]
strippedRepo = repository[4:]
eprint(f"Fetching {pname}@{version} ({strippedRepo})")
command = ["nix-prefetch-git", strippedRepo, version]
command = ["nix-prefetch-git", "--fetch-submodules", strippedRepo, version]
rawRes = subprocess.run(command, check=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout
sha256 = json.loads(rawRes)["sha256"]
lockedDepsDict[pname] = {"version": version, "repository": strippedRepo, "sha256": sha256}

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ab-av1";
version = "0.11.4";
version = "0.11.5";
src = fetchFromGitHub {
owner = "alexheretic";
repo = "ab-av1";
tag = "v${finalAttrs.version}";
hash = "sha256-830STu0YfEhsYr4EU3ATF6kgH5J/tUEhm4b47VOwMEQ=";
hash = "sha256-jXtl/V0cwugrUQ4Iz1Mx6zMeCpm0FaRTYDRIXHnKTOA=";
};
cargoHash = "sha256-mKtP+QoG0MjbBB4kMLlioyxshlgVyhqLH4C5GKx9Hes=";
cargoHash = "sha256-XOXzWawdeGO5oqNlBOx0ZzMpdVTVidfak6AcfiZLFKY=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "abracadabra";
version = "4.1.1";
version = "4.2.0";
src = fetchFromGitHub {
owner = "KejPi";
repo = "AbracaDABra";
tag = "v${finalAttrs.version}";
hash = "sha256-6MraWIon5bqLmqwLodZXys4Lz+kamFhIa03+eVsApqk=";
hash = "sha256-TuOqTVBJSuZyA53UETR383md4LjqQx1FL/qRZwXOCRs=";
};
nativeBuildInputs = [

View File

@@ -7,7 +7,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "adscan";
version = "9.2.1";
version = "10.1.0";
pyproject = true;
__structuredAttrs = true;
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "ADScanPro";
repo = "adscan";
tag = "v${finalAttrs.version}";
hash = "sha256-gBlS5co1LUu07Xz+JZWi4zNOPtPHGfl+StpFPauOFG4=";
hash = "sha256-ITOfDt4T927fYdIiVzkowb4JWU4VTpsApdCpwWLLkK0=";
};
pythonRelaxDeps = [ "credsweeper" ];

View File

@@ -5,13 +5,12 @@
lib,
gnugrep,
gnused,
curl,
curl-impersonate,
catt,
syncplay,
openssl,
ffmpeg,
fzf,
aria2,
yt-dlp,
mpv,
vlc,
iina,
@@ -39,17 +38,19 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeBuildInputs = [ makeWrapper ];
runtimeInputs = [
openssl
gnugrep
gnused
curl
curl-impersonate
fzf
ffmpeg
aria2
yt-dlp
]
++ lib.optional chromecastSupport catt
++ lib.optional syncSupport syncplay;
strictDeps = true;
__structuredAttrs = true;
installPhase = ''
runHook preInstall

View File

@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "apko";
version = "1.2.27";
version = "1.2.30";
src = fetchFromGitHub {
owner = "chainguard-dev";
repo = "apko";
tag = "v${finalAttrs.version}";
hash = "sha256-yu7DGFscciEVRshiUYHNo9QEggljbSOFLX/dl2LYsFU=";
hash = "sha256-uNUzlPuk2HD7O4ENnQ01u9h2U0PbP3a4XiYYvVuksqo=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -29,7 +29,7 @@ buildGoModule (finalAttrs: {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-4aQAnmmnwEPAZE/ph/xyQWcW+thfVX42dpFQq296Hf4=";
vendorHash = "sha256-HZrL3K1gbg5fXp0yrfXxgZ780qTGJJ2bpZ7Y//EhOqo=";
excludedPackages = [
"internal/gen-jsonschema"

View File

@@ -47,13 +47,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "astc-encoder";
version = "5.6.0";
version = "5.7.0";
src = fetchFromGitHub {
owner = "ARM-software";
repo = "astc-encoder";
tag = finalAttrs.version;
hash = "sha256-2/3m5G7rMoc/qZ9wPN3kn7O/CdQbWnKyU5OvAIxx97A=";
hash = "sha256-g/XuCBs07G8Tpod6be8lQ5A8Jh52JUzrstrToAgT2ag=";
};
nativeBuildInputs = [ cmake ];

View File

@@ -70,6 +70,8 @@ buildNpmPackage {
npmInstallFlags = [ "--only-production" ];
installPhase = ''
runHook preInstall
mkdir -p $out/opt/client
cp -r index.js server package* node_modules $out/opt/
cp -r ${client}/lib/node_modules/audiobookshelf-client/dist $out/opt/client/dist
@@ -79,6 +81,8 @@ buildNpmPackage {
echo " exec ${nodejs_22}/bin/node $out/opt/index.js" >> $out/bin/audiobookshelf
chmod +x $out/bin/audiobookshelf
runHook postInstall
'';
passthru = {

View File

@@ -6,13 +6,13 @@
buildGoModule rec {
__structuredAttrs = true;
pname = "balena-compose-parser";
version = "0.2.6";
version = "0.3.0";
src = fetchFromGitHub {
owner = "balena-io-modules";
repo = "balena-compose-parser";
rev = "v${version}";
hash = "sha256-Bpcj3a689CjXmcjccyBzg30bj4+YT2FCvDvnpIy+EdY=";
hash = "sha256-VOFSdcygi3YlRlV48zV1fGtRgFSio2KBZCs25iqBmLY=";
};
modRoot = "lib";

View File

@@ -6,12 +6,12 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "bbot";
version = "2.8.6";
version = "3.0.1";
pyproject = true;
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-u8F995BD1l6nPWYckMIYSgErSO3fBcU2IyBFU1WZjF8=";
hash = "sha256-2PmJFDvD1bFFO6AINU60P4yW7RGhcyFyZ6S9h42XqB4=";
};
pythonRelaxDeps = [
@@ -27,15 +27,15 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
"cloudcheck"
];
build-system = with python3.pkgs; [
poetry-core
poetry-dynamic-versioning
];
build-system = with python3.pkgs; [ hatchling ];
dependencies = with python3.pkgs; [
ansible-core
ansible-runner
asndb
beautifulsoup4
blastdns
blasthttp
cachetools
cloudcheck
deepdiff
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
mmh3
omegaconf
orjson
pip
psutil
puremagic
pycryptodome
@@ -67,6 +68,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
yara-python
starlette
tornado
zstandard
];
# Project has no tests
@@ -74,7 +76,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
meta = {
description = "OSINT automation for hackers";
homepage = "https://pypi.org/project/bbot/";
homepage = "https://github.com/blacklanternsecurity/bbot";
changelog = "https://github.com/blacklanternsecurity/bbot/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
fab

View File

@@ -9,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "bosh-cli";
version = "7.10.7";
version = "7.10.8";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = "bosh-cli";
rev = "v${finalAttrs.version}";
sha256 = "sha256-hWaJcB+H907QRw5A+xJzy4Dr22NufKNDEAJTtLNYqqg=";
sha256 = "sha256-MNXmSjkUNFWh0OQNefHAQEeD3TzoLJdLW/1WM9sxJK4=";
};
vendorHash = null;

View File

@@ -15,20 +15,20 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "bumpp";
version = "12.0.0";
version = "12.1.1";
src = fetchFromGitHub {
owner = "antfu-collective";
repo = "bumpp";
tag = "v${finalAttrs.version}";
hash = "sha256-9o3eUZ4cCusvV+IwQbLqbEI4NhTKkcwgqv4Mqe/VxZ4=";
hash = "sha256-Rl/dD5iRjdjQyvnM7YrU64Yl90+8zJKIretNoAB3AAU=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 3;
hash = "sha256-Em3HvH5nCiyxgaPQvenqAnOraYnvQNxLVdHQd1lz3+o=";
hash = "sha256-5qMDDUs1Zi4FKZzhvZ8T87MRtEtpxvssicpvJd0Nhkc=";
};
nativeBuildInputs = [

View File

@@ -31,7 +31,7 @@ buildGoModule (finalAttrs: {
meta = {
description = "Compile shell scripts to static binaries";
homepage = "https://github.com/yassinebenaid/bunster";
changelog = "https://github.com/yassinebenaid/bunster/releases/tag/v{finalAttrs.version}";
changelog = "https://github.com/yassinebenaid/bunster/releases/tag/v${finalAttrs.version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
yunz

View File

@@ -9,16 +9,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
__structuredAttrs = true;
pname = "cargo-feature-combinations";
version = "0.4.1";
version = "0.4.2";
src = fetchFromGitHub {
owner = "romnn";
repo = "cargo-feature-combinations";
tag = "v${finalAttrs.version}";
hash = "sha256-0aPe0YmEpLHt3aZHDuNlov/TiRbLLpR7TLt0ULkjsVU=";
hash = "sha256-jB2I/AZTiBR6w1SsxQKQbu5OtiEvPZBKIy8ostTx21M=";
};
cargoHash = "sha256-r09otRStFli5Bx0pfDOMu1LGDonDyCVGPEdY/KnjkmY=";
cargoHash = "sha256-ECGf597VaVBIs7NsRF7vSCo+Uf5T/v5Es61MmoRIZI4=";
passthru.updateScript = nix-update-script { };

View File

@@ -16,14 +16,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-update";
version = "22.1.0";
version = "22.1.1";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-0iXO+cmW1vfKc9sPTnw132fZlqTMfInVCIgT8NLrhwM=";
hash = "sha256-aq6l2tDWwvARdRgFJ1dTrWnh4XSy8uM32GdACVtzjQ8=";
};
cargoHash = "sha256-6yE4zdGosZhXhT3Q3mh/1h33OXqXrAWhZ0b18qaI1vs=";
cargoHash = "sha256-3OfxeVPWd2v0/A2945/MZgwTBpEcfH3ql1oMVTsjNBY=";
nativeBuildInputs = [
cmake

View File

@@ -35,6 +35,7 @@
pkg-config,
polkit,
python312Packages,
removeReferencesTo,
sscg,
systemd,
udev,
@@ -78,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
pam
pkg-config
python3Packages.setuptools
removeReferencesTo
systemd
xmlto
];
@@ -250,9 +252,34 @@ stdenv.mkDerivation (finalAttrs: {
popd
''}
remove-references-to \
-t ${stdenv.cc.cc} \
-t ${lib.getDev stdenv.cc.libc} \
-t ${lib.getDev glib} \
-t ${lib.getDev json-glib} \
-t ${lib.getDev systemd} \
-t ${lib.getDev gnutls} \
-t ${lib.getDev krb5} \
"$out/lib/security/pam_ssh_add.so" \
"$out/libexec/cockpit-certificate-ensure" \
"$out/libexec/cockpit-session" \
"$out/libexec/cockpit-tls" \
"$out/libexec/cockpit-ws" \
"$out/libexec/cockpit-wsinstance-factory"
runHook postFixup
'';
disallowedRequisites = [
stdenv.cc.cc
(lib.getDev stdenv.cc.libc)
(lib.getDev glib)
(lib.getDev json-glib)
(lib.getDev systemd)
(lib.getDev gnutls)
(lib.getDev krb5)
];
nativeCheckInputs = [ python3Packages.pytestCheckHook ];
checkInputs = [

View File

@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "coroot";
version = "1.24.0";
version = "1.24.3";
src = fetchFromGitHub {
owner = "coroot";
repo = "coroot";
rev = "v${finalAttrs.version}";
hash = "sha256-50VB7qONhRQ5FehPH6uemA8+4HZin/vdJ7JmD0S7AEk=";
hash = "sha256-IuUo3EEemPzMVTHoDMcBVYei+bU2PGk4FscljBzLOpI=";
};
vendorHash = "sha256-P7EXBRG6OYIwaoObqpKBK2n0f6QYphr+DRNLbfysotA=";

View File

@@ -16,6 +16,14 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "sha256-qmT7WBWKtSWGIK/dEd3/bF1bBjqSjfkP99htfnlFLCw=";
};
postPatch =
# Copy-pasting typo
# https://github.com/Dr-Noob/cpufetch/issues/350
''
substituteInPlace src/ppc/udev.c \
--replace-fail 'memset(name, 0, sizeof(char) * 128)' 'memset(path, 0, sizeof(char) * 128)'
'';
nativeBuildInputs = [
installShellFiles
];

View File

@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dalfox";
version = "3.1.2";
version = "3.2.0";
src = fetchFromGitHub {
owner = "hahwul";
repo = "dalfox";
tag = "v${finalAttrs.version}";
hash = "sha256-0amVlnLwwb7YAUbTce9gRmjv3W1FMgc2/XZQKCettTY=";
hash = "sha256-YLM//zRdwnlIL+lZH3HyxwstViLm9o+XykT/e/iz6CQ=";
};
cargoHash = "sha256-pxlUEGCrJjoakAVpXFq2q73wEWiODsHvdax12quDlec=";
cargoHash = "sha256-hhvmvnPYo6L0VreP8SKoiz2Xp9spgXuZL54DGxyzHY4=";
nativeBuildInputs = [ pkg-config ];

View File

@@ -9,13 +9,13 @@
}:
buildGoModule (finalAttrs: {
pname = "databricks-cli";
version = "1.7.0";
version = "1.10.0";
src = fetchFromGitHub {
owner = "databricks";
repo = "cli";
rev = "v${finalAttrs.version}";
hash = "sha256-08fYKWJRYkT48ivM9miPyoQ3fNNm6etdeqvqPZehtaM=";
hash = "sha256-9Zh0SwFNX08R4+D0a0DlptJF7vyQluTiGLKnneFqYU4=";
};
# Otherwise these tests fail asserting that the version is 0.0.0-dev
@@ -24,7 +24,7 @@ buildGoModule (finalAttrs: {
--replace-fail "cli/0.0.0-dev" "cli/${finalAttrs.version}"
'';
vendorHash = "sha256-1K722pdIXdYkc2HMlnjyjrZb/L2iUoRx2vY1szcF7aY=";
vendorHash = "sha256-lq4+qRUDEvHUgtLrIQwAurHc6iPcrzk/7aLb52JbSfA=";
subPackages = [ "." ];

View File

@@ -24,16 +24,16 @@
}:
let
version = "2.2.0";
version = "2.2.1";
devenvNixVersion = "2.34";
devenvNixRev = "782ac1b155679b065ec945ae50d0fa1d495883b7";
devenvNixRev = "f33db89fd6db6edc337d93212f6628ab6d25f407";
devenvNixSrc = fetchFromGitHub {
name = "devenv-nix-${devenvNixVersion}-source";
owner = "cachix";
repo = "nix";
rev = devenvNixRev;
hash = "sha256-xem+4ncdQCTFJsQ4PrVuyVmi3j4w/Yqg298hBUzVejA=";
hash = "sha256-JSD8lPe5kalvPKx5X+inX8ZZdGLeXkAbd3Jiv7UDf+I=";
};
nix_components = (nixVersions.nixComponents_git.overrideSource devenvNixSrc).overrideScope (
@@ -49,11 +49,11 @@ rustPlatform.buildRustPackage {
src = fetchFromGitHub {
owner = "cachix";
repo = "devenv";
tag = "v2.2";
hash = "sha256-9ewHcbuOk7wvBRBM28g06MkjcEIWyqoD04QZKouiRKI=";
tag = "v2.2.1";
hash = "sha256-S4baMekJYJGWDCo1yOYxZkmgBlAruQ5MLi+h3Zo8als=";
};
cargoHash = "sha256-OJqaOJx++WON7SvWQQmSQW0t/8lym5csf3gkSPYaDYY=";
cargoHash = "sha256-2SQbXhDOoXQ33RYB5ik2rSdP3LxNR77lp/B9R1abUl0=";
env = {
RUSTFLAGS = "--cfg tracing_unstable";

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dtop";
version = "0.7.9";
version = "0.7.11";
src = fetchFromGitHub {
owner = "amir20";
repo = "dtop";
tag = "v${finalAttrs.version}";
hash = "sha256-1OHtMV2GmZQIx2pVujOXoQOkc6hJdJZjca4kk4HyESM=";
hash = "sha256-2BtKGO8Y+fZv8RElCuh592Sj0xYPNBNyBHvcxzSvko8=";
};
cargoHash = "sha256-OHjgG5qHBz0Q74uWLkN9Ok0NiVeT71qpEjzFdMFWlfs=";
cargoHash = "sha256-oM5jQ7KYJSf+AhnOXhxtiVwglE/TAj4i9IqaEVVXZ4E=";
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";

View File

@@ -7,12 +7,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "eliza";
version = "0-unstable-2026-06-13";
version = "0-unstable-2026-07-28";
src = fetchFromGitHub {
owner = "anthay";
repo = "ELIZA";
rev = "8e93cb50107a4c6c854e96b533a36958ac934d3f";
hash = "sha256-KRw5ow/34A0GANUoCLM3xOhMc4dlzTWpVqWcsgruTCE=";
rev = "31e8df29971773375305f87d26d52633683c3edc";
hash = "sha256-95xTWpeUsfLaawOtzdXV5XjhxTBkmP6U3WVtc/ebvJQ=";
};
doCheck = true;

View File

@@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "eslint_d";
version = "15.0.2";
version = "15.0.3";
src = fetchFromGitHub {
owner = "mantoni";
repo = "eslint_d.js";
rev = "v${version}";
hash = "sha256-Q1FW/DmUyHbTYcisQ0rp/XZXxkf3c6kO7jLM4b+kYHI=";
hash = "sha256-pcwU4WB1aIHYV50DMbuobsh3dQm+IJ6ByMUz4zvnwHE=";
};
npmDepsHash = "sha256-XFFjrAEXtNFSuIN5yn2AQeurY3cpF0silSgmIA17Wog=";
npmDepsHash = "sha256-R1hv7sRZrDLDK05LvxyvuYCsugBM3c4pyZsqYlA7vd4=";
dontNpmBuild = true;

View File

@@ -24,13 +24,13 @@ let
in
buildGoModule (finalAttrs: {
pname = "faas-cli";
version = "0.18.11";
version = "0.18.12";
src = fetchFromGitHub {
owner = "openfaas";
repo = "faas-cli";
rev = finalAttrs.version;
sha256 = "sha256-4bfp9nM6cAglx9mNzjQZ4uo6nJNWI9Q9g9zIdkev9FM=";
sha256 = "sha256-I7P30c7rEVqemgUu/1AtM6jq2f4KB8xyDpjGBMvkLRU=";
};
vendorHash = null;

View File

@@ -11,13 +11,13 @@
}:
buildGoModule (finalAttrs: {
pname = "foxglove-cli";
version = "1.0.32";
version = "1.0.33";
src = fetchFromGitHub {
owner = "foxglove";
repo = "foxglove-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-bc2YNCkTbO6qO2PyBI4UH7O48GNMgDfKKXWXjYaznBI=";
hash = "sha256-Ec1kG04fFb+YXHogjVI4QUXFDxY7EaifJM/XNhYj/lQ=";
};
vendorHash = "sha256-IXmkO7WIvy4ETMMHHJF6hS8ACRat/vnoiqaXyhw8u+M=";

View File

@@ -19,16 +19,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gelly";
version = "1.9.4";
version = "1.9.5";
src = fetchFromGitHub {
owner = "Fingel";
repo = "gelly";
tag = "v${finalAttrs.version}";
hash = "sha256-GYMLV4hffaIbqUp1b5ERo2QQqiKRlHe9oXfq+wNH/hM=";
hash = "sha256-k6LgXEK5xoVrjiXCkYnFgC7Hs7oz+v3Kz47CELPqN9Q=";
};
cargoHash = "sha256-CsmcXlkOec/KJ59Ng7MyGsfjWQ80YyV6MztRFULmvDA=";
cargoHash = "sha256-RbOs5CEj3KRe6F1RJSGx97wBoQKSynx+iza929ipfjA=";
nativeBuildInputs = [
pkg-config

View File

@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "go-judge";
version = "1.12.1";
version = "1.12.2";
src = fetchFromGitHub {
owner = "criyle";
repo = "go-judge";
rev = "v${finalAttrs.version}";
hash = "sha256-QWLR0bIBgjqh75D0J7KEDjS+6rL5kV+fg01ThO6Cbq0=";
hash = "sha256-iC26hZT4jD0Z3wADxnSXkUaBnBmxWXY3WNb46cseb/Q=";
};
vendorHash = "sha256-i5RiLaALbHQhOSb143kyQQGu2maJIw2VS0JELmxbxM0=";
vendorHash = "sha256-LQnndEO4TFsLvxxfhifDmufjdFhsqOt4jBUqc38NuD0=";
tags = [
"nomsgpack"

View File

@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "gofumpt";
version = "0.10.0";
version = "0.11.0";
src = fetchFromGitHub {
owner = "mvdan";
repo = "gofumpt";
rev = "v${finalAttrs.version}";
hash = "sha256-FaaXfvx63q+CkVGm3DyPrAykRVmpwyw+/2bBIAz8ab8=";
hash = "sha256-ybGY9zgzg2cK72hoebj9QF3SlrTzfI1eEk7IsKbp3pQ=";
};
vendorHash = "sha256-tM9IKMdCAdKcQPzENWdeK9GtVD20IzZYGaoLGJPettw=";
vendorHash = "sha256-xN7s8zSK9V7E0cCRaRKVkhzp0rOcEIlgaZjPAgrpdio=";
env.CGO_ENABLED = "0";

View File

@@ -8,17 +8,17 @@
buildGoModule (finalAttrs: {
pname = "gopodder";
version = "1.2.1";
version = "1.2.2";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "cbrgm";
repo = "gopodder";
tag = "v${finalAttrs.version}";
hash = "sha256-o/iQnr8WLArecRyMttCluuEYwKirKsOJyj5a7tdulVo=";
hash = "sha256-e+d2/1yAhUc88Hn8lAACfK3LGhGiPxQX+FjzNQc6Wqk=";
};
vendorHash = "sha256-iG2IUfBVLQ7P0W4HOiGShVyD4mGUQ0dfGjG4XIYVtWU=";
vendorHash = "sha256-3SJbVflgwhIw2JmWoKUVjVL8fXWHfYXlm7iI3hYbTpE=";
ldflags = [
"-s"

View File

@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "gore";
version = "0.6.2";
version = "0.7.0";
src = fetchFromGitHub {
owner = "x-motemen";
repo = "gore";
rev = "v${finalAttrs.version}";
sha256 = "sha256-niMYoYkDaZsv6ntUIfB0B4VheiG6rMouZGUSjHnm51w=";
sha256 = "sha256-0J+FnR2hFpoRV4+5NvU4Sp9YT+bNIXftruBDXPe9MIw=";
};
vendorHash = "sha256-oS5LJfLFrmHEwayoD+HygfamZpmerIL1i4QtoRL4Om4=";

View File

@@ -0,0 +1,14 @@
diff --git a/go.mod b/go.mod
index fe507b4678693915f275648ff052c2d2d859f4cc..aeb7e04795d9527edd1c4c100a870b38f4de538c 100644
--- a/go.mod
+++ b/go.mod
@@ -104 +104 @@ require (
- github.com/yuin/goldmark v1.7.13 // indirect
+ github.com/yuin/goldmark v1.7.17 // indirect
diff --git a/go.sum b/go.sum
index 1c56fd543ca070281c9c23e83a3387b16cf3dac3..9cc1bcb4a0fac0eb2e366a9b438da16d6cd13428 100644
--- a/go.sum
+++ b/go.sum
@@ -217,0 +218,2 @@ github.com/yuin/goldmark v1.7.13/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Br
+github.com/yuin/goldmark v1.7.17 h1:p36OVWwRb246iHxA/U4p8OPEpOTESm4n+g+8t0EE5uA=
+github.com/yuin/goldmark v1.7.17/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=

View File

@@ -3,30 +3,25 @@
stdenv,
buildGoModule,
fetchFromGitHub,
fetchpatch2,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "goshs";
version = "2.1.4";
version = "2.1.5";
src = fetchFromGitHub {
owner = "goshs-labs";
repo = "goshs";
tag = "v${finalAttrs.version}";
hash = "sha256-8xSYdLO+2AB044sV3JJw0RXB0RuLQ7eIzWvwgoJdp5k=";
hash = "sha256-mVgBY1QhQ+tDQnfangqylNeCbBJTSJaM0y7vZ95BU3Y=";
};
vendorHash = "sha256-yKNJHs6A7Du9NvGOpwaDmABz6SBMPVzJNoQb7W32IfA=";
vendorHash = "sha256-LLYgb0DIFx97+ZXOlQc4yVdjjiw7ebXx76hADfWnlkw=";
patches = [
# Remove when updating to 2.1.5 or later.
(fetchpatch2 {
name = "CVE-2026-66063+CVE-2026-66064.patch";
url = "https://github.com/goshs-labs/goshs/commit/f3ef599e409151d1380866e47de8b1afb0bb54fa.patch?full_index=1";
hash = "sha256-fIKeqWKraaLcocp7aaWE58ffkA1/2NVwR7KMmJfXL5g=";
})
# No upstream fix yet; remove when updating to a release that uses goldmark 1.7.17 or later.
./CVE-2026-5160.patch
];
ldflags = [ "-s" ];
@@ -53,7 +48,7 @@ buildGoModule (finalAttrs: {
meta = {
description = "Simple, yet feature-rich web server written in Go";
homepage = "https://goshs.de";
changelog = "https://github.com/goshs-labs/goshs/releases/tag/${finalAttrs.src.rev}";
changelog = "https://github.com/goshs-labs/goshs/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
fab

View File

@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "helmfile";
version = "1.7.1";
version = "1.7.2";
src = fetchFromGitHub {
owner = "helmfile";
repo = "helmfile";
rev = "v${finalAttrs.version}";
hash = "sha256-RfhOc/iraWHdccKE5rp7WR5s9HhLOmxtSe1SZXy2UMI=";
hash = "sha256-B9peVIqI2DveyWzVo+oXtsW8WLq7COk/2RrUjf2XX0w=";
};
vendorHash = "sha256-Q+G4G27hwT+zravktjk+mU0VC3OlS9zqXwclwACG9B0=";
vendorHash = "sha256-LBp+UASFNctJ0iclgNk3OlIumifG5jV6sllExwCvp1g=";
proxyVendor = true; # darwin/linux hash mismatch

View File

@@ -14,13 +14,13 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-assistant-matter-hub";
version = "2.0.49";
version = "2.0.52";
src = fetchFromGitHub {
owner = "RiDDiX";
repo = "home-assistant-matter-hub";
tag = "v${finalAttrs.version}";
hash = "sha256-AbXm70mxpqIefVyoapdYc8NC+XUTAdfRDhorMP446JI=";
hash = "sha256-KRhSN2fRNcenql+KZMRS+v2rw1G9+xGqQiGzkqvf7W4=";
};
# The bundled cli.js imports transitive dependencies (e.g. @noble/curves)
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-PESk5TexRfwD/4upUA7npGQobhFwgm87oqVS1LqzbRg=";
hash = "sha256-B2yjPQAI+B2E/siQ1YNjsbKfa0xeC1qWum13kD44DB8=";
};
__structuredAttrs = true;

View File

@@ -5,15 +5,15 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hongdown";
version = "0.5.1";
version = "0.5.3";
src = fetchFromGitHub {
owner = "dahlia";
repo = "hongdown";
tag = finalAttrs.version;
hash = "sha256-JnfYBPWnZgZ7149yVsabP3n2+GnxR6ZvK0S+4w6x/c4=";
hash = "sha256-yHKOGtm9ApBMry+5IROQxNEySf6q8jHpGlWPRQuDxGA=";
};
cargoHash = "sha256-Vn5dEaDnZ2FQ6ZlDKbbQ5lUvjyhIuhT2/xEaZ8KWmRA=";
cargoHash = "sha256-VnNisWSEeyxlPQwsF6I47+jxm64ybwiq48EwpFwz7Pw=";
meta = {
description = "Markdown formatter that enforces Hong Minhee's Markdown style conventions";
mainProgram = "hongdown";

View File

@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "jid";
version = "1.1.2";
version = "1.1.3";
src = fetchFromGitHub {
owner = "simeji";
repo = "jid";
rev = "v${finalAttrs.version}";
hash = "sha256-Zf1YIEhvmvO482wh8VqQhyvHp7Nz6MXQ1SG0RCG0lRI=";
hash = "sha256-5Bi9nPOASxuZoxVxt6i3AQxvyWfe1B3JDSjXyuOPUHk=";
};
vendorHash = "sha256-ZqnIBmziPX45wqiEzD9mq4jLLW69mgGYhDSOTj20auQ=";

View File

@@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "json-sort-cli";
version = "3.0.1";
version = "3.0.2";
src = fetchFromGitHub {
owner = "tillig";
repo = "json-sort-cli";
tag = "v${version}";
hash = "sha256-wUuVQmmcevGfcoYq5tPzEFRyPMMtbW/CeE5vNoCKFXQ=";
hash = "sha256-QNMdSwZWJqKIxTSrxoW20r7XTepTHF4p1C/JYXxJxPg=";
};
npmDepsHash = "sha256-4sjP3ri52CunwLcbIJF6+qGgciiPmZKsrLnm50HX0PQ=";
npmDepsHash = "sha256-n9i+Mny/EkS/ZU/TUUAu+eJoMZqECvVDeokO5XPFiQM=";
dontNpmBuild = true;
doCheck = true;

View File

@@ -9,18 +9,18 @@ buildGoModule (finalAttrs: {
# "chatgpt-cli" is taken by another package with the same upsteam name.
# To keep "pname" and "package attribute name" identical, the owners name (kardolus) gets prefixed as identifier.
pname = "kardolus-chatgpt-cli";
version = "1.10.12";
version = "1.11.0";
src = fetchFromGitHub {
owner = "kardolus";
repo = "chatgpt-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-X+QfmoVY8J+D9WEQ6GS7ws5sFUh/2yfszyLkNCRy4gc=";
hash = "sha256-OADL3dR6tFNGu5oGpxbeJSWkNe38zDlDmnM70ilpQPY=";
};
vendorHash = null;
# The tests of kardolus/chatgpt-cli require an OpenAI API Key to be present in the environment,
# (e.g. https://github.com/kardolus/chatgpt-cli/blob/v1.10.12/test/contract/contract_test.go#L35)
# (e.g. https://github.com/kardolus/chatgpt-cli/blob/v1.11.0/test/contract/contract_test.go#L35)
# which will not be the case in the pipeline.
# Therefore, tests must be skipped.
doCheck = false;

View File

@@ -7,14 +7,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "killport";
version = "2.0.1";
version = "2.0.2";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-BEvtRNP/fuS1l7RbUT4+6jWIElEa23yGQCOi9k23B0o=";
hash = "sha256-m2+rlVLmEODfGuY+pdhQRGLjDP3yBfu33VhYXMMSUEg=";
};
cargoHash = "sha256-fEeG076P6z5FojNG19QXQYTymJddLemt9L+v9OX/uxI=";
cargoHash = "sha256-V3VWy+bAKeynod2u4eEJyywGAX4ASoNgRmiTe/ju1GU=";
nativeBuildInputs = [ rustPlatform.bindgenHook ];

View File

@@ -2,37 +2,28 @@
lib,
stdenv,
fetchFromGitHub,
cmake,
asciidoc,
libxslt,
scdoc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "kpack";
version = "1.1.1";
version = "1.2.0";
src = fetchFromGitHub {
owner = "KnightOS";
repo = "kpack";
rev = finalAttrs.version;
sha256 = "1l6bm2j45946i80qgwhrixg9sckazwb5x4051s76d3mapq9bara8";
sha256 = "sha256-QIi960hlS+aE3DRMtHOndWlehVfD59ybAaO/Dl/qiyQ=";
};
strictDeps = true;
nativeBuildInputs = [
asciidoc
cmake
libxslt.bin
];
nativeBuildInputs = [ scdoc ];
hardeningDisable = [ "fortify" ];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "cmake_minimum_required(VERSION 2.8.5)" "cmake_minimum_required(VERSION 3.10)"
'';
installFlags = [ "PREFIX=$(out)" ];
meta = {
homepage = "https://knightos.org/";

View File

@@ -8,14 +8,14 @@
buildGo126Module (finalAttrs: {
pname = "ku";
version = "0.9.0";
version = "0.10.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "bjarneo";
repo = "ku";
tag = "v${finalAttrs.version}";
hash = "sha256-4z4lPvmkEqC7YBEaAa8cUyB42hkFkTFRkHGaA58/Vpg=";
hash = "sha256-MXtZdogaUhaMQcZdave5rz3afq+6T/tvQkZVzk0WCfg=";
};
vendorHash = "sha256-x7O2/uKnIIFDr8WK0ej3FJiIGxN5Fq5Czqrv4OJ5A44=";

View File

@@ -6,7 +6,7 @@
pkg-config,
bison,
libiconv,
pcre,
pcre2,
libgcrypt,
libxcrypt-legacy,
json_c,
@@ -39,6 +39,11 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./mysql-compat.patch
# pcre2 support, vendored from the upstream maintainer's release prep
# branch, which is rebased regularly and so unsuitable for fetchpatch:
# https://github.com/amotzkau/ldmud/commit/421ae90e611b3a4816bf52d84abfdcc73bf999b7
# Remove when updating to the next release.
./pcre2.patch
];
sourceRoot = "${finalAttrs.src.name}/src";
@@ -52,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
libgcrypt
libxcrypt-legacy
pcre
pcre2
json_c
libxml2
]

View File

@@ -0,0 +1,620 @@
From 421ae90e611b3a4816bf52d84abfdcc73bf999b7 Mon Sep 17 00:00:00 2001
From: Alexander Motzkau <a.motzkau@web.de>
Date: Tue, 9 Sep 2025 23:15:11 +0200
Subject: [PATCH] Implement support for libpcre2
The original libpcre library is deprecated and not supported anymore.
Therefore use libpcre2 instead if available.
---
src/autoconf/configure.ac | 10 +-
src/driver.h | 2 +-
src/lex.c | 2 +-
src/mregex.c | 335 ++++++++++++++++++++++++++++++++++----
src/pkg-pcre.h | 11 +-
src/simulate.c | 2 +-
6 files changed, 327 insertions(+), 35 deletions(-)
diff --git src/autoconf/configure.ac src/autoconf/configure.ac
index e04bcc659..678c2f487 100644
--- src/autoconf/configure.ac
+++ src/autoconf/configure.ac
@@ -1301,7 +1301,15 @@ int main(void)
else
lp_cv_has_pcre=no
fi
-if test "$lp_cv_has_pcre" = "no" && test "x$enable_use_pcre" = "xyes"; then
+
+lp_cv_has_pcre2_lib="no"
+AC_CHECK_LIB(pcre2-8, pcre2_config_8, PKGLIBS="$PKGLIBS -lpcre2-8" lp_cv_has_pcre2_lib="yes")
+
+if test "$lp_cv_has_pcre2_lib" = "yes"; then
+ AC_DEFINE(HAS_PCRE2, 1, [Does the machine offer PCRE2?])
+fi
+
+if test "$lp_cv_has_pcre" = "no" && test "$lp_cv_has_pcre2_lib" = "no" && test "x$enable_use_pcre" = "xyes"; then
AC_NOT_AVAILABLE(use-pcre)
fi
diff --git src/driver.h src/driver.h
index ec10645ac..00509f59b 100644
--- src/driver.h
+++ src/driver.h
@@ -139,7 +139,7 @@
/* If USE_PCRE is defined, check if the libpcre is available on this system.
* Disable USE_PCRE if not. */
-#if defined(USE_PCRE) && !defined(HAS_PCRE)
+#if defined(USE_PCRE) && !defined(HAS_PCRE) && !defined(HAS_PCRE2)
#undef USE_PCRE
#endif
diff --git src/lex.c src/lex.c
index df61f4435..783428515 100644
--- src/lex.c
+++ src/lex.c
@@ -920,7 +920,7 @@ init_lexer(void)
#ifdef USE_JSON
add_permanent_define_str("__JSON__", -1, "1");
#endif
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE) || defined(HAS_PCRE2)
add_permanent_define_str("__PCRE__", -1, "1");
#endif
add_permanent_define_str("__LPC_NOSAVE__", -1, "1");
diff --git src/mregex.c src/mregex.c
index 17014ddde..81b6ef826 100644
--- src/mregex.c
+++ src/mregex.c
@@ -80,18 +80,22 @@
*/
typedef struct regdata_s {
- p_uint ref; /* Number of refs */
- int opt; /* Additional options, but no package flags */
+ p_uint ref; /* Number of refs */
+ int opt; /* Additional options, but no package flags */
/* -- PCRE -- */
-#ifdef HAS_PCRE
- pcre * pProg; /* The generated regular expression */
- pcre_extra * pHints; /* Study data */
- int num_subs; /* Number of elements in pSubs */
- int * pSubs; /* Substring offsets + workarea */
- int res; /* Result of last rx_exec() */
+#if defined(HAS_PCRE2)
+ pcre2_code * pcre_prog; /* The compiled regular expression */
+ pcre2_match_data * pcre_match_data; /* Block for holding the result */
+ int res; /* Result of last pcre2_match() */
+#elif defined(HAS_PCRE)
+ pcre * pProg; /* The generated regular expression */
+ pcre_extra * pHints; /* Study data */
+ int num_subs; /* Number of elements in pSubs */
+ int * pSubs; /* Substring offsets + workarea */
+ int res; /* Result of last rx_exec() */
#endif // HAS_PCRE
/* -- Traditional -- */
- regexp * rx; /* The actual regular expression */
+ regexp * rx; /* The actual regular expression */
} regdata_t;
#ifdef RXCACHE_TABLE
@@ -143,7 +147,14 @@ static uint32 iXSizeAlloc = 0; /* Dynamic memory held in regexp structs */
#endif /* RXCACHE_TABLE */
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+static bool in_init_context = false;
+static pcre2_general_context* general_context = NULL;
+static pcre2_compile_context* compile_context = NULL;
+static pcre2_match_context* match_context = NULL;
+#endif
+
+#if defined(HAS_PCRE) || defined(HAS_PCRE2)
static size_t pcre_malloc_size;
/* Accumulated size from pcre_malloc() calls. Used when creating
* a new PCRE to capture its allocated size for statistics.
@@ -197,7 +208,41 @@ free_regdata(regdata_t *r)
#endif /* RXCHACHE_TABLE */
/*--------------------------------------------------------------------*/
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+static void *
+pcre_xalloc (PCRE2_SIZE size, void *data)
+
+/* Wrapper function so that PCRE will use our special allocator. */
+
+{
+ void * p;
+
+ if (!pcre_malloc_err)
+ pcre_malloc_err = "in PCRE function";
+ if (in_init_context)
+ {
+ p = pxalloc(size);
+ if (p == NULL)
+ fatal("Out of memory (%zu bytes) for pcre context\n", (size_t)(size));
+ }
+ else
+ xallocate(p, size, pcre_malloc_err);
+ pcre_malloc_size += size;
+ return p;
+} /* pcre_xalloc() */
+
+/*--------------------------------------------------------------------*/
+static void
+pcre_xfree (void *block, void *data)
+
+/* Wrapper function so that PCRE will use our special allocator. */
+
+{
+ xfree(block);
+} /* pcre_xalloc() */
+
+/*--------------------------------------------------------------------*/
+#elif defined(HAS_PCRE)
static void *
pcre_xalloc (size_t size)
@@ -223,7 +268,9 @@ rx_pcre_version (void)
{
static char buf[40];
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ snprintf(buf, sizeof(buf), "%d.%d", PCRE2_MAJOR, PCRE2_MINOR);
+#elif defined(HAS_PCRE)
snprintf(buf, sizeof(buf), "%d.%d", PCRE_MAJOR, PCRE_MINOR);
#else
sprintf(buf, "not available");
@@ -240,7 +287,22 @@ void rx_init(void)
#ifdef RXCACHE_TABLE
memset(xtable, 0, sizeof(xtable));
#endif
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ in_init_context = true;
+ general_context = pcre2_general_context_create(pcre_xalloc, pcre_xfree, NULL);
+ compile_context = pcre2_compile_context_create(general_context);
+ match_context = pcre2_match_context_create(general_context);
+ in_init_context = false;
+
+#if LD_PCRE_RECURSION_LIMIT > 0
+ pcre2_set_depth_limit(match_context, LD_PCRE_RECURSION_LIMIT);
+#endif
+
+ uint32_t opt = 0;
+ if (pcre2_config(PCRE2_CONFIG_UNICODE, &opt) || !opt)
+ fprintf(stderr, "%s PCRE2 package does not support Unicode.\n", time_stamp());
+
+#elif defined(HAS_PCRE)
int opt = 0;
pcre_malloc = pcre_xalloc;
@@ -259,10 +321,22 @@ get_error_message (int code, int package)
/* Return a constant string with the error message for <code>
* generated by <package>.
* If <code> is not an error, NULL is returned.
+ * Subsequent calls to this function may overwrite previous results.
*/
{
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (package & RE_PCRE)
+ {
+ static unsigned char buf[256];
+
+ if (!code)
+ return NULL;
+ if (pcre2_get_error_message(code, buf, sizeof(buf)) == PCRE2_ERROR_BADDATA)
+ return "unknown error";
+ return (const char*) buf;
+ }
+#elif defined(HAS_PCRE)
if (package & RE_PCRE)
{
const char* text;
@@ -373,7 +447,70 @@ rx_compile_re (string_t * expr, int opt, Bool from_ed, regdata_t * rdata)
} /* rx_compile_re() */
/*--------------------------------------------------------------------*/
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+static size_t
+rx_compile_pcre (string_t * expr, int opt, Bool from_ed, regdata_t * rdata)
+
+/* Compile the expression <expr> with the options <opt> into a PCRE2
+ * expression and store it into *<rdata>.
+ * On success, return the accumulated size of the expression.
+ * On failure, if <from_ed> is FALSE, an error is thrown.
+ * On failure, if <from_ed> is TRUE, the error message is printed directly
+ * to the user and the function returns with 0.
+ */
+
+{
+ uint32_t pcre_opt; /* <opt> translated into PCRE opts */
+ int err_code;
+ PCRE2_SIZE err_offset;
+ pcre2_code* pcre_prog;
+ pcre2_match_data* pcre_match_data;
+
+ /* Sanitize the <opt> value */
+ opt = opt & ~(RE_EXCOMPATIBLE) & ~(RE_PACKAGE_MASK);
+
+ /* Determine the RE compilation options */
+ pcre_opt = PCRE2_UTF | PCRE2_UCP;
+ if (opt & RE_CASELESS) pcre_opt |= PCRE2_CASELESS;
+ if (opt & RE_MULTILINE) pcre_opt |= PCRE2_MULTILINE;
+ if (opt & RE_DOTALL) pcre_opt |= PCRE2_DOTALL;
+ if (opt & RE_EXTENDED) pcre_opt |= PCRE2_EXTENDED;
+ if (opt & RE_DOLLAR_ENDONLY) pcre_opt |= PCRE2_DOLLAR_ENDONLY;
+ if (opt & RE_UNGREEDY) pcre_opt |= PCRE2_UNGREEDY;
+
+ /* Compile the RE */
+ pcre_malloc_size = 0;
+ pcre_malloc_err = "compiling regex";
+ pcre_prog = pcre2_compile((unsigned char*) get_txt(expr), mstrsize(expr),
+ pcre_opt, &err_code, &err_offset, compile_context);
+
+ if (pcre_prog == NULL)
+ {
+ rx_free_subdata(rdata); /* Might have HS data in it already */
+ if (from_ed)
+ add_message("pcre: %s at offset %d\n", get_error_message(err_code, RE_PCRE), (int)err_offset);
+ else
+ errorf("pcre: %s at offset %d\n", get_error_message(err_code, RE_PCRE), (int)err_offset);
+ return 0;
+ }
+
+ pcre_malloc_err = "JIT compiling regex";
+ pcre2_jit_compile(pcre_prog, PCRE2_JIT_COMPLETE);
+
+ pcre_match_data = pcre2_match_data_create_from_pattern(pcre_prog, general_context);
+
+ /* Compilation complete - store the result in the outgoing regdata
+ * structure.
+ */
+
+ rdata->pcre_prog = pcre_prog;
+ rdata->pcre_match_data = pcre_match_data;
+ rdata->res = 0;
+
+ return pcre_malloc_size;
+} /* rx_compile_pcre() */
+/*--------------------------------------------------------------------*/
+#elif defined(HAS_PCRE)
static size_t
rx_compile_pcre (string_t * expr, int opt, Bool from_ed, regdata_t * rdata)
@@ -537,8 +674,12 @@ rx_compile_data (string_t * expr, int opt, Bool from_ed)
/* Regexp found, but it may not have been compiled for us yet.
*/
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2) || defined(HAS_PCRE)
+#if defined(HAS_PCRE2)
+ if ((opt & RE_PCRE) && !pHash->base.pcre_prog)
+#else
if ((opt & RE_PCRE) && !pHash->base.pProg)
+#endif
{
pHash->size = rx_compile_pcre(expr, opt, from_ed, &(pHash->base));
if (!pHash->size)
@@ -560,7 +701,7 @@ rx_compile_data (string_t * expr, int opt, Bool from_ed)
pcre_size = 0;
memset(&rdata, 0, sizeof(rdata));
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE) || defined(HAS_PCRE2)
if (opt & RE_PCRE)
{
pcre_size = rx_compile_pcre(expr, opt, from_ed, &rdata);
@@ -673,7 +814,7 @@ rx_compile (string_t * expr, int opt, Bool from_ed)
errorf("Missing specification of which regexp package to use.\n");
return NULL;
}
-#ifndef HAS_PCRE
+#if !(defined(HAS_PCRE) || defined(HAS_PCRE2))
if (opt & RE_PCRE)
{
if (from_ed)
@@ -716,7 +857,31 @@ rx_exec (regexp_t *pRegexp, string_t * string, size_t start)
{
regdata_t * prog = pRegexp->data;
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ uint32_t pcre_opt = 0;
+
+ /* Determine the RE compilation options */
+ if (prog->opt & RE_ANCHORED) pcre_opt |= PCRE2_ANCHORED;
+ if (prog->opt & RE_NOTBOL) pcre_opt |= PCRE2_NOTBOL;
+ if (prog->opt & RE_NOTEOL) pcre_opt |= PCRE2_NOTEOL;
+ if (prog->opt & RE_NOTEMPTY) pcre_opt |= PCRE2_NOTEMPTY;
+
+ prog->res = pcre2_match(prog->pcre_prog, (unsigned char*)get_txt(string), mstrsize(string),
+ start, pcre_opt, prog->pcre_match_data, match_context);
+
+ /* Reverse the roles of return codes 0 (pcre_match_data too small)
+ * and PCRE_ERROR_NOMATCH.
+ */
+ if (prog->res == PCRE2_ERROR_NOMATCH)
+ prog->res = 0;
+ else if (prog->res == 0)
+ prog->res = PCRE2_ERROR_NOMATCH;
+
+ return prog->res;
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
int rc;
@@ -776,7 +941,32 @@ rx_exec_str (regexp_t *pRegexp, char * string, char * start)
{
regdata_t * prog = pRegexp->data;
-#ifdef HAS_PCRE
+
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ uint32_t pcre_opt = 0;
+
+ /* Determine the RE compilation options */
+ if (prog->opt & RE_ANCHORED) pcre_opt |= PCRE2_ANCHORED;
+ if (prog->opt & RE_NOTBOL) pcre_opt |= PCRE2_NOTBOL;
+ if (prog->opt & RE_NOTEOL) pcre_opt |= PCRE2_NOTEOL;
+ if (prog->opt & RE_NOTEMPTY) pcre_opt |= PCRE2_NOTEMPTY;
+
+ prog->res = pcre2_match(prog->pcre_prog, (unsigned char*)start, PCRE2_ZERO_TERMINATED,
+ string - start, pcre_opt, prog->pcre_match_data, match_context);
+
+ /* Reverse the roles of return codes 0 (pcre_match_data too small)
+ * and PCRE_ERROR_NOMATCH.
+ */
+ if (prog->res == PCRE2_ERROR_NOMATCH)
+ prog->res = 0;
+ else if (prog->res == 0)
+ prog->res = PCRE2_ERROR_NOMATCH;
+
+ return prog->res;
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
int rc;
@@ -835,7 +1025,7 @@ rx_num_matches (regexp_t *pRegexp)
*/
{
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2) || defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
return pRegexp->data->res >= 1 ? pRegexp->data->res : 0;
@@ -881,7 +1071,25 @@ rx_get_match_n (regexp_t *pRegexp, string_t * str, int n, size_t * start, size_t
Bool rc;
regdata_t * prog = pRegexp->data;
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ PCRE2_SIZE* subs = pcre2_get_ovector_pointer(prog->pcre_match_data);
+ if (n < 0 || n >= prog->res || subs[2*n] == PCRE2_UNSET || subs[2*n+1] == PCRE2_UNSET)
+ {
+ *start = 0;
+ *end = 0;
+ rc = false;
+ }
+ else
+ {
+ *start = (size_t) subs[2*n];
+ *end = (size_t) subs[2*n+1];
+ rc = true;
+ }
+ return rc;
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
if (n < 0
@@ -937,7 +1145,16 @@ rx_get_match (regexp_t *pRegexp, string_t * str, size_t * start, size_t * end)
{
regdata_t * prog = pRegexp->data;
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ PCRE2_SIZE* subs = pcre2_get_ovector_pointer(prog->pcre_match_data);
+
+ *start = (size_t) subs[0];
+ *end = (size_t) subs[1];
+ return;
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
*start = (size_t)prog->pSubs[0];
@@ -963,7 +1180,16 @@ rx_get_match_str (regexp_t *pRegexp, char * str, size_t * start, size_t * end)
{
regdata_t * prog = pRegexp->data;
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ PCRE2_SIZE* subs = pcre2_get_ovector_pointer(prog->pcre_match_data);
+
+ *start = (size_t) subs[0];
+ *end = (size_t) subs[1];
+ return;
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
*start = (size_t)prog->pSubs[0];
@@ -1042,7 +1268,28 @@ rx_sub (regexp_t *pRegexp, string_t *source, string_t *subst)
}
else
{
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (pRegexp->opt & RE_PCRE)
+ {
+ PCRE2_SIZE* subs = pcre2_get_ovector_pointer(prog->pcre_match_data);
+
+ if (no < prog->res && subs[2*no] != PCRE2_UNSET && subs[2*no+1] != PCRE2_UNSET)
+ {
+ size_t start = (size_t) subs[2*no];
+ size_t sublen = (size_t) subs[2*no+1] - start;
+
+ if (copyPass)
+ {
+ memcpy(dst, get_txt(source)+start, sublen);
+ dst += sublen;
+ }
+ else
+ {
+ len += sublen;
+ }
+ }
+ }
+#elif defined(HAS_PCRE)
if (pRegexp->opt & RE_PCRE)
{
if (no < prog->res
@@ -1139,7 +1386,7 @@ rx_sub_str (regexp_t *pRegexp, char *source, char *subst)
/*-------------------------------------------------------------------------*/
Bool
rx_reganch (regexp_t *pRegexp)
-
+
/* If <pRegexp> is a traditional regexp, return TRUE if rx->reganch
* is not NULL. If <pRegexp> is a PCRE, always return FALSE.
*
@@ -1162,7 +1409,19 @@ rx_free_subdata (regdata_t * expr)
*/
{
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+ if (expr->pcre_match_data)
+ {
+ pcre2_match_data_free(expr->pcre_match_data);
+ expr->pcre_match_data = NULL;
+ }
+
+ if (expr->pcre_prog)
+ {
+ pcre2_code_free(expr->pcre_prog);
+ expr->pcre_prog = NULL;
+ }
+#elif defined(HAS_PCRE)
if (expr->pSubs)
{
xfree(expr->pSubs);
@@ -1324,6 +1583,20 @@ rxcache_driver_info (svalue_t *svp, int value)
/*--------------------------------------------------------------------*/
#if defined(GC_SUPPORT)
+/*--------------------------------------------------------------------*/
+void
+clear_regdata_ref (regdata_t * pRegexp)
+
+/* Clear regexp data where we cannot follow references.
+ */
+
+{
+#if defined(HAS_PCRE2)
+ if (pRegexp->pcre_prog != NULL)
+ rx_free_subdata(pRegexp);
+#endif
+} /* clear_regdata_ref() */
+
/*--------------------------------------------------------------------*/
void
clear_rxcache_refs (void)
@@ -1341,6 +1614,7 @@ clear_rxcache_refs (void)
if (NULL != xtable[i])
{
xtable[i]->base.ref = 0;
+ clear_regdata_ref(&xtable[i]->base);
}
#endif
} /* clear_rxcache_refs() */
@@ -1354,7 +1628,10 @@ clear_regexp_ref (regexp_t * pRegexp)
{
if (pRegexp)
+ {
pRegexp->data->ref = 0;
+ clear_regdata_ref(pRegexp->data);
+ }
} /* clear_regexp_ref() */
/*--------------------------------------------------------------------*/
@@ -1368,7 +1645,7 @@ count_regdata_ref (regdata_t * pRegexp)
{
note_malloced_block_ref(pRegexp);
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE)
if (pRegexp->pProg)
{
note_malloced_block_ref(pRegexp->pProg);
@@ -1414,7 +1691,7 @@ count_rxcache_refs (void)
{
if (NULL != xtable[i])
{
- count_regdata_ref((regdata_t *)xtable[i]);
+ count_regdata_ref(&xtable[i]->base);
}
} /* for (i) */
#endif
diff --git src/pkg-pcre.h src/pkg-pcre.h
index 7aa622561..21e452916 100644
--- src/pkg-pcre.h
+++ src/pkg-pcre.h
@@ -11,9 +11,15 @@
#include "driver.h"
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE2)
+#define PCRE2_CODE_UNIT_WIDTH 8
+#include <pcre2.h>
+
+#define RE_ERROR_BACKTRACK (-8) // Free error code, see regexp.h for others.
+#undef HAS_PCRE
+
+#elif defined(HAS_PCRE)
#include <pcre.h>
-#endif
/* Error code to be returned if too many backtracks are detected.
*/
@@ -22,5 +28,6 @@
#else
#define RE_ERROR_BACKTRACK (-8) // PCRE_ERROR_MATCHLIMIT from PCRE
#endif
+#endif
#endif /* PKG_PCRE_H_ */
diff --git src/simulate.c src/simulate.c
index ac29fed98..6c4c73783 100644
--- src/simulate.c
+++ src/simulate.c
@@ -5108,7 +5108,7 @@ f_set_driver_hook (svalue_t *sp)
}
else if (n == H_REGEXP_PACKAGE)
{
-#ifdef HAS_PCRE
+#if defined(HAS_PCRE) || defined(HAS_PCRE2)
if (sp->u.number != RE_PCRE
&& sp->u.number != RE_TRADITIONAL )
{

View File

@@ -1,48 +0,0 @@
{
lib,
stdenv,
fetchurl,
pcre,
libxcrypt,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "leafnode";
version = "2.0.0.alpha20140727b";
src = fetchurl {
url = "http://krusty.dt.e-technik.tu-dortmund.de/~ma/leafnode/beta/leafnode-${finalAttrs.version}.tar.bz2";
sha256 = "sha256-NOuiy7uHG3JMjV3UAtHDWK6yG6QmvrVljhVe0NdGEHU=";
};
configureFlags = [ "--enable-runas-user=nobody" ];
prePatch = ''
substituteInPlace Makefile.in --replace 02770 0770
'';
# configure uses id to check environment; we don't want this check
preConfigure = ''
sed -re 's/^ID[=].*/ID="echo whatever"/' -i configure
'';
# The is_validfqdn is far too restrictive, and only allows
# Internet-facing servers to run. In order to run leafnode via
# localhost only, we need to disable this check.
postConfigure = ''
sed -i validatefqdn.c -e 's/int is_validfqdn(const char \*f) {/int is_validfqdn(const char *f) { return 1;/;'
'';
buildInputs = [
pcre
libxcrypt
];
meta = {
homepage = "https://leafnode.sourceforge.io/index.shtml";
description = "Implementation of a store & forward NNTP proxy, under development";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = [ ];
};
})

View File

@@ -14,6 +14,7 @@ stdenv.mkDerivation (finalAttrs: {
pname = "pkgconf";
version = "2.5.1";
# fetchFromGitHub isn't used because it's unavailable during bootstrapping
src = fetchurl {
url = "https://github.com/pkgconf/pkgconf/archive/refs/tags/pkgconf-${finalAttrs.version}.tar.gz";
hash = "sha256-eXIbrcrRmH3q2cNgnrSHerm1iCHAa9rLgk8siJfBHyo=";

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "Lighthouse";
version = "1.4.0";
version = "1.5.0";
src = fetchFromGitHub {
owner = "ShayBox";
repo = "Lighthouse";
rev = finalAttrs.version;
hash = "sha256-Ai+d7BKA1o98iOhQ7VXltnWHW/knw122xLZHhFM6gZ0=";
hash = "sha256-2AJMXnfMvtYfCWusVDdZYUzKIPxey2mP4v3JVhsp2JE=";
};
cargoHash = "sha256-+5fxqWq7akICVmDa8Lc6M8laEAWrrEyg4uCFLoCNRpo=";
cargoHash = "sha256-fOiVMg3K3wYhgYZ9kx3WfAgrgcSzUKjKyvXm5N386nw=";
nativeBuildInputs = [ pkg-config ];

View File

@@ -41,13 +41,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "linux-router";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "garywill";
repo = "linux-router";
tag = finalAttrs.version;
hash = "sha256-tBrHuZKTf+7ABmE4FVYT9ny62CBa2A7va7OOFUsKJtM=";
hash = "sha256-OIwrpQCzzcCMrBLv0ufGOIrNUZcvrFzHctAA0w4xNV8=";
};
nativeBuildInputs = [

View File

@@ -0,0 +1,24 @@
diff --git a/libmu_sieve/extensions/Makefile.am b/libmu_sieve/extensions/Makefile.am
--- a/libmu_sieve/extensions/Makefile.am
+++ b/libmu_sieve/extensions/Makefile.am
@@ -25,7 +25,7 @@ mod_LTLIBRARIES =\
vacation.la
AM_CPPFLAGS = $(MU_APP_COMMON_INCLUDES)
AM_LDFLAGS = -module -avoid-version -no-undefined -rpath '$(moddir)'
-LIBS = ../libmu_sieve.la
+LIBS = ../libmu_sieve.la $(MU_LIB_MAILUTILS)
if MU_COND_DBM
mod_LTLIBRARIES += uidnew.la
diff --git a/examples/Makefile.am b/examples/Makefile.am
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -60,7 +60,7 @@ LDADD = \
$(MU_COMMON_LIBRARIES)
numaddr_la_SOURCES = numaddr.c
-numaddr_la_LIBADD = $(MU_LIB_SIEVE)
+numaddr_la_LIBADD = $(MU_LIB_SIEVE) $(MU_LIB_MAILUTILS)
numaddr_la_LDFLAGS = -module -avoid-version -no-undefined -rpath '$(moddir)'
msg_send_LDADD =\

View File

@@ -75,6 +75,9 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./fix-build-mb-len-max.patch
# Fix linking loadable modules with Libtool 2.6.2
# https://savannah.gnu.org/bugs/?68588
./fix-linking-with-libtool-2.6.2.patch
./path-to-cat.patch
# Fix cross-compilation
# https://lists.gnu.org/archive/html/bug-mailutils/2020-11/msg00038.html

View File

@@ -12,7 +12,7 @@
buildNpmPackage (finalAttrs: {
pname = "matterjs-server";
version = "1.3.1";
version = "1.3.3";
__structuredAttrs = true;
strictDeps = true;
@@ -20,10 +20,10 @@ buildNpmPackage (finalAttrs: {
owner = "matter-js";
repo = "matterjs-server";
tag = "v${finalAttrs.version}";
hash = "sha256-HY1VEjqQ2C6Ym9PB2/g7M7TeAgOFsVYMX6jvpZLPgOI=";
hash = "sha256-s30pdP/ci/ft3V01sDrs57niZO3yPJ16qexprKICJZM=";
};
npmDepsHash = "sha256-I/iY2YdsgvdLMkLRzML5VttmmDNUr/U38l+Wp8bu2B8=";
npmDepsHash = "sha256-eKLRkyT3oKn5lJzRe5Mr/rYdSTnxipbpZ3EisBkD6l4=";
nativeBuildInputs = [
makeBinaryWrapper

View File

@@ -29,13 +29,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "melonds";
version = "1.1-unstable-2026-07-19";
version = "1.1-unstable-2026-07-29";
src = fetchFromGitHub {
owner = "melonDS-emu";
repo = "melonDS";
rev = "82fdbc78483f43b310e920e21acc47787cb43564";
hash = "sha256-2T8qzsqbULFw7jsNk0pTpLMIyS1XVnA5ojel8BmTPMw=";
rev = "b3dd9880768a5d36c8daf87229b0bc915b51c1ff";
hash = "sha256-wnfi43f2nUR4xh3BtlY8oKBsS8aFQ1xE7ZNp5cdkvb4=";
};
nativeBuildInputs = [

View File

@@ -48,11 +48,11 @@ let
in
stdenv.mkDerivation rec {
pname = "miniupnpd";
version = "2.3.9";
version = "2.3.10";
src = fetchurl {
url = "https://miniupnp.tuxfamily.org/files/miniupnpd-${version}.tar.gz";
sha256 = "sha256-Zss8PWl6srs6YdPEhigWbWujKNfC2+uViY/fKjICr3s=";
sha256 = "sha256-+cNO02MvtgzSSN1Yl72YR5oQOnVoiwVsovBp5oqzKYc=";
};
buildInputs = [

View File

@@ -17,7 +17,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mongodb-ce";
version = "8.2.11";
version = "8.2.12";
__structuredAttrs = true;
strictDeps = true;
@@ -60,15 +60,15 @@ stdenv.mkDerivation (finalAttrs: {
sources = {
"x86_64-linux" = fetchurl {
url = "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2404-${finalAttrs.version}.tgz";
hash = "sha256-sqFkZ19eYZHQFwVX2zwaKaYXisvoqN25+8DFbyGU2H4=";
hash = "sha256-dInAJIYOsz7lAZD7o7p178pKUNlCZcSILebC0XUam4g=";
};
"aarch64-linux" = fetchurl {
url = "https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-ubuntu2404-${finalAttrs.version}.tgz";
hash = "sha256-5AX8pb1jInbQTuE0RqpqqcRXon6wKwdvoDCNDF70krE=";
hash = "sha256-hIqjImtj0sZmgoU6fLp6ASdqL97bG+6iFoB62vuUndE=";
};
"aarch64-darwin" = fetchurl {
url = "https://fastdl.mongodb.org/osx/mongodb-macos-arm64-${finalAttrs.version}.tgz";
hash = "sha256-M3/x/d2rVKUmIZBQ9hVuT6W9ajZy/Ut5+8aDeXF+HwY=";
hash = "sha256-ixFA3XRcI6yvuBIBL6w/9VnFkwZdtjGlvsPbr6+N0cI=";
};
};
updateScript =

View File

@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "mtail";
version = "3.4.5";
version = "3.4.6";
src = fetchFromGitHub {
owner = "jaqx0r";
repo = "mtail";
rev = "v${finalAttrs.version}";
hash = "sha256-lCIl5Kc9VatCt6APXUT7vk4AZJ/WeqEjKvvAZKLVuRE=";
hash = "sha256-xjakb+HpctC68FL8ct6aVfwzl0qA2F8sZ3/C1SkFTkY=";
};
proxyVendor = true;

View File

@@ -27,7 +27,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "nfs-ganesha";
version = "12.0";
version = "13.0";
outputs = [
"out"
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "nfs-ganesha";
repo = "nfs-ganesha";
tag = "V${finalAttrs.version}";
hash = "sha256-a0Hv5smtGgVQCGxMZU/lafNlnRM1w0HgkUIQJ/L+0r0=";
hash = "sha256-PAEDBUIMjuMzhSvWn80EtiHOaFPgcJgE9kZVG6nKLZs=";
fetchSubmodules = true;
};

View File

@@ -5,14 +5,14 @@
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "pferd";
version = "3.9.2";
version = "3.9.3";
pyproject = true;
src = fetchFromGitHub {
owner = "Garmelon";
repo = "PFERD";
tag = "v${finalAttrs.version}";
sha256 = "sha256-q1IyuANj47M3KR8qQXASf3WOpFgjNGD/gFZn1l6grTk=";
sha256 = "sha256-wzBWDpnftDantDDAjb1k5ukSeTUpXAvaETIQSrjpt8U=";
};
nativeBuildInputs = with python3Packages; [

View File

@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "picard-tools";
version = "3.4.0";
version = "3.5.0";
src = fetchurl {
url = "https://github.com/broadinstitute/picard/releases/download/${finalAttrs.version}/picard.jar";
sha256 = "sha256-52EowoOIn8WDyd6jOjt0SJdMBn0QLJ41vhUmQtTV+QE=";
sha256 = "sha256-t9l4YcOlS6WkIfWjF/ODgvlVgDhi0w70rKK83FSUNjE=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "mongodb_exporter";
version = "0.51.0";
version = "0.52.0";
src = fetchFromGitHub {
owner = "percona";
repo = "mongodb_exporter";
rev = "v${version}";
hash = "sha256-FpB1xijoKoKTCteHhuPakej4PkYXcuPMD9Vmc7B6/vs=";
hash = "sha256-sf9I5RTlciXcoNOo5UTiLcr3N1c93xqFozbLQke/fFY=";
};
vendorHash = "sha256-xNfwbUPJjLDLMXzEYH+xsywRc9dRLf/8/V9Zn/sYato=";
vendorHash = "sha256-swxJxgZccgcfuixcjzQHBu/b0dlFvhfcE4IS6xDdZI8=";
buildInputs = lib.optionals withGssapi [ krb5 ];

View File

@@ -11,13 +11,13 @@ buildGoModule rec {
'';
pname = "script_exporter";
version = "3.2.0";
version = "3.2.1";
src = fetchFromGitHub {
owner = "ricoberger";
repo = "script_exporter";
rev = "v${version}";
hash = "sha256-TanhxXQYiMVkY89TfuzlHNrExe0u6FCPUlmuLgCN1RQ=";
hash = "sha256-8FEMa/fBZS69TE9An6RZq3AvETxvYEqDEIq3roQvgac=";
};
postPatch = ''
@@ -26,7 +26,7 @@ buildGoModule rec {
sed -i '/func TestHandler/a\\ t.Skip("skipped in Nix build")' prober/handler_test.go
'';
vendorHash = "sha256-g7Sd8rMqxFTNi3XsO05gyQ1d1icENx9FZthnGC2qQbM=";
vendorHash = "sha256-9skBLU4btdKpboJ1Y/qs2BZ9RPKrKijJWVb+qOy2RlU=";
passthru.tests = { inherit (nixosTests.prometheus-exporters) script; };

View File

@@ -15,7 +15,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "proton-pass-cli";
version = "2.2.3";
version = "2.2.4";
__structuredAttrs = true;
strictDeps = true;
@@ -57,15 +57,15 @@ stdenv.mkDerivation (finalAttrs: {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-aarch64";
hash = "sha256-gxjlrznYmXgCFOxixtHCz9x2KLsgNtuo9yr3TJpjxzI=";
hash = "sha256-DtXcwCVpaep0OPkFMO3vLJYNwfBtCl6jnVaj4cMSWSQ=";
};
"aarch64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-aarch64";
hash = "sha256-NdBabzetuIJEbu81Rfg3hUVEw8BJ2A3Who/i08/qwMs=";
hash = "sha256-aqipkzdJwZYIpzZYNpuBM0Qbb/7T6DrGzz8yuYUbn6Y=";
};
"x86_64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-x86_64";
hash = "sha256-cYjwKnweeahg9xZq0sNPei5slhJltwZ34nBPIW3Rdtk=";
hash = "sha256-nVDLhgTjx67gvdKfzs9Glu0yWRNKbBfkuK2t/eF9e7Y=";
};
};
updateScript = writeShellScript "update-proton-pass-cli" ''

View File

@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "rancher";
version = "2.14.2";
version = "2.15.0";
src = fetchFromGitHub {
owner = "rancher";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-SysEf7oe85htpwi2xy3Em82WuV+sTZCy2OlxoZLshYc=";
hash = "sha256-WG3XPt9sNTQQuiwNJMi+MB42NRnDLNwwD2DlpUOO9ME=";
};
env.CGO_ENABLED = 0;
@@ -25,7 +25,7 @@ buildGoModule (finalAttrs: {
"-static"
];
vendorHash = "sha256-sDSblZzRZ3StEMBeJbx2+hsSTKkuU3ixgLqR7vLfp3A=";
vendorHash = "sha256-/aMJicr6O+a6YOgaAxjYxFU7oBF7Idad10mIh1Lk32g=";
postInstall = ''
mv $out/bin/cli $out/bin/rancher

View File

@@ -7,14 +7,14 @@
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "rclip";
version = "3.2.4";
version = "3.2.5";
pyproject = true;
src = fetchFromGitHub {
owner = "yurijmikhalevich";
repo = "rclip";
tag = "v${finalAttrs.version}";
hash = "sha256-ggetthpQj6XdhwPHrx9piTB4/eIEqNYEc5nsWJ8EpJQ=";
hash = "sha256-rlrhGeNoTVuN7HjN26ahrxeBlB1VeEpBoF65qcV/A0M=";
};
patches = [

View File

@@ -15,13 +15,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rdkafka";
version = "2.13.0";
version = "2.15.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "confluentinc";
repo = "librdkafka";
tag = "v${finalAttrs.version}";
sha256 = "sha256-gxZ20qpG3iXwY21fY2lvafWudcnsqN6hOml1UR9fPKQ=";
hash = "sha256-WW64fwh0xR4lEVwmrv00tP9mo6b49aCNgLLH/P0YS8k=";
};
outputs = [
@@ -61,19 +64,21 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs .
'';
postFixup = lib.optionalString stdenv.hostPlatform.isStatic ''
postFixup =
# rdkafka changes the library names for static libraries but users in pkgsStatic aren't likely to be aware of this
# make sure the libraries are findable with both names
for pc in rdkafka{,++}; do
ln -s $dev/lib/pkgconfig/$pc{-static,}.pc
done
'';
lib.optionalString stdenv.hostPlatform.isStatic ''
for pc in rdkafka{,++}; do
ln -s $dev/lib/pkgconfig/$pc{-static,}.pc
done
'';
enableParallelBuilding = true;
meta = {
description = "Apache Kafka C/C++ client library";
homepage = "https://github.com/confluentinc/librdkafka";
changelog = "https://github.com/confluentinc/librdkafka/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.bsd2;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ commandodev ];

View File

@@ -21,19 +21,19 @@
stdenv.mkDerivation rec {
pname = "read-it-later";
version = "0.6.2";
version = "0.6.3";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "read-it-later";
tag = version;
hash = "sha256-dXDpZ5CXR/+lJUpQ1EpGgzYC6WKE4Y6CKytvCPrsMNk=";
hash = "sha256-m4s5oW8JlRogPVriJ+WHhEmf1asmZoC8f5zgPW0Crpc=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-zC9rb+yUWKozTTc3aBOnpTkhqykhQYemnzPtjjKnOdQ=";
hash = "sha256-hAdWDzEs1Xs5Ywa7uxCvB8E9NqKVWbMtJSjoCeXHklM=";
};
nativeBuildInputs = [

View File

@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "resvg";
version = "0.47.0";
version = "0.48.0";
src = fetchFromGitHub {
owner = "linebender";
repo = "resvg";
rev = "v${finalAttrs.version}";
hash = "sha256-BCYjVOWFpOZm7ocmfszFpaBxnd96vhf3/yGlvAVRtCw=";
hash = "sha256-rzTmbk1pt9plH2yIyNUD/zgyz2xrlpxU6pyz+puEw/A=";
};
cargoHash = "sha256-cVOAmwX/pYA6R0HK8+RLt/IvzowAO/g1i2YM71bYFoA=";
cargoHash = "sha256-dhFymHs3BliU0lSqtUEiu9FTeGfdP47KtokZFOJAheI=";
cargoBuildFlags = [
"--package=resvg"

View File

@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "runpodctl";
version = "2.7.2";
version = "2.8.0";
src = fetchFromGitHub {
owner = "runpod";
repo = "runpodctl";
rev = "v${finalAttrs.version}";
hash = "sha256-QorGhaHwgzcJJXa36dejLdN8STa8Q7H8qvKK66g2JBA=";
hash = "sha256-ZbqpeXQQA6ulcKn70BqHtYmdUQLsZuSnFd/GqrtWb5w=";
};
vendorHash = "sha256-38d+nWZDjWgcK091G3JCGtBqyE7iJ60edAhbx8GzxPM=";
vendorHash = "sha256-aCrN521urP1FioTmbcR1BNKg+OCith1mabyayuC9FtI=";
postInstall = ''
rm $out/bin/docs # remove the docs binary

View File

@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rustical";
version = "0.14.0";
version = "0.14.1";
__darwinAllowLocalNetworking = true;
src = fetchFromGitHub {
owner = "lennart-k";
repo = "rustical";
tag = "v${finalAttrs.version}";
hash = "sha256-V0gd4qFs3mRhajhBbtVO835HLAwLKswFQDaURENNTOM=";
hash = "sha256-kQBTNpl0DS1wpSetEtlHnvAOydl5FwZ4S1qTrIxD7/k=";
};
cargoHash = "sha256-HJeN9xv1U6l1ailE+8L+wlZSCKiCZyhfsh7uT+zebE0=";
cargoHash = "sha256-gOJY5Y5futzTSkX+VW2DzGg4VIjdj1IfNRYrIeTXevM=";
nativeBuildInputs = [ pkg-config ];

View File

@@ -15,16 +15,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "samrewritten";
version = "1.4.5";
version = "1.4.6";
src = fetchFromGitHub {
owner = "PaulCombal";
repo = "SamRewritten";
tag = "v${finalAttrs.version}";
hash = "sha256-sSZC7yN/WuMYkdcPmHyvasaWRFzppSxmlS1bYLZGvyM=";
hash = "sha256-Fqsxcx8QLFVaNvKHXV0UfIMpGAi0Wtl8zfiGWSg0vOY=";
};
cargoHash = "sha256-YKiICPP6z9lZWqdoPOYRq+0mmz7jY3/eJd7XzN8Vmnk=";
cargoHash = "sha256-6f5QRXUYt6isklEWKkFc3OQHVHH11jq0i74LmCYxdG8=";
# Tests require network access and a running Steam client. Skipping.
doCheck = false;

View File

@@ -15,7 +15,7 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sane-airscan";
version = "0.99.37";
version = "0.99.38";
nativeBuildInputs = [
meson
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "alexpevzner";
repo = "sane-airscan";
rev = finalAttrs.version;
sha256 = "sha256-Vm6t4i2UDAzMULM8d0m1W8vNtOh+i4X8oXOEdguudfw=";
sha256 = "sha256-LgheG67QVH9gcXLCgrmpXvE39n3H6ub1k4PYTpcGDxM=";
};
meta = {

View File

@@ -10,16 +10,16 @@
buildGo126Module (finalAttrs: {
pname = "scaleway-cli";
version = "2.59.0";
version = "2.60.0";
src = fetchFromGitHub {
owner = "scaleway";
repo = "scaleway-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-7gZ8rjwbvbmCP2E7uHOsCT6D9SCAczz2XZ8TfQGmdEk=";
hash = "sha256-Zt44lX7P/5fakiIPYegehCB/OjS9CGDiL0V9PjnbGOE=";
};
vendorHash = "sha256-A+w5tayU/Bri1R47/39+UREOGiAGxtKfZc1npvubHcY=";
vendorHash = "sha256-/ksIUNlYFQBOoLvO0VAHi4coxxICWkkdfAuOKnlVK4M=";
env.CGO_ENABLED = 0;

View File

@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "search-vulns";
version = "1.2.3";
version = "1.2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ra1nb0rn";
repo = "search_vulns";
tag = "v${finalAttrs.version}";
hash = "sha256-YSnBM0nTjQSNh7eDqAeu58J1DuyG7tRjOX+6zlUVH+I=";
hash = "sha256-OflNIW4EnFArnfU1wPgjjOFAFQq7m2in5DJnNheLhWI=";
fetchSubmodules = true;
};

View File

@@ -1,7 +1,6 @@
{
lib,
stdenv,
gcc14Stdenv,
fetchFromGitHub,
replaceVars,
tracy,
@@ -17,13 +16,16 @@
bzip2,
geos,
geographiclib,
glew,
glm,
gtest,
howard-hinnant-date,
libsm,
libcpr,
libGLU,
libjpeg,
libpng,
libtiff,
libzip,
onetbb,
openssl,
python3,
@@ -34,7 +36,11 @@
zlib,
}:
let
buildStdenv = if stdenv.cc.isGNU then gcc14Stdenv else stdenv;
libtiffWithCxx = libtiff.overrideAttrs (old: {
cmakeFlags = (old.cmakeFlags or [ ]) ++ [
"-Dcxx=ON"
];
});
gtestSkip = [
# Skip tests requiring network access
@@ -57,16 +63,16 @@ let
"MarkerModelTest.*"
];
in
buildStdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "supercell-wx";
version = "0.5.3";
version = "0.6.1";
src = fetchFromGitHub {
owner = "dpaulat";
repo = "supercell-wx";
tag = "v${finalAttrs.version}-release";
fetchSubmodules = true;
hash = "sha256-1n1WXBLco2TpyhS8KA1tk6HzRIXLqS6YV3aYagoQiTM=";
hash = "sha256-wvtLu5K0bz0X7WzUCUH4/vAYtJsHJ2UOv5Q06uMMlyw=";
};
patches = [
@@ -78,13 +84,14 @@ buildStdenv.mkDerivation (finalAttrs: {
})
# Prevents using some Qt scripts that seemed to break the install step. Fixes missing link to some targets.
./patches/fix-cmake-install.patch
# libtiff with C++ support is required
./patches/libtiff-cxx.patch
# }}}
# These may be or already are submitted upstream {{{
./patches/explicit-link-aws-crt.patch # fix missing symbols from aws-crt-cpp
./patches/fix-qt-6.10.patch
./patches/fix-find-opengl.patch
# }}}
./patches/boost-1.89-compat.patch
];
# This also may be submitted upstream to maplibre-native-qt, which is currently vendored
@@ -96,6 +103,7 @@ buildStdenv.mkDerivation (finalAttrs: {
env = {
CXXFLAGS = lib.concatStringsSep " " [
"-Wno-error=deprecated-declarations"
"-Wno-error=free-nonheap-object"
"-Wno-error=maybe-uninitialized"
"-Wno-error=restrict"
"-Wno-error=stringop-overflow"
@@ -105,6 +113,9 @@ buildStdenv.mkDerivation (finalAttrs: {
};
cmakeFlags = [
# v0.6.1 Release Date
(lib.cmakeFeature "SCWX_RELEASE_DATE" "2026-07-18")
# CMake Error at external/aws-sdk-cpp/crt/aws-crt-cpp/cmake/EnforceSubmoduleVersions.cmake:18 (message):
# ENFORCE_SUBMODULE_VERSIONS is ON but Git was not found.
(lib.cmakeBool "ENFORCE_SUBMODULE_VERSIONS" false)
@@ -127,13 +138,16 @@ buildStdenv.mkDerivation (finalAttrs: {
bzip2
geos
geographiclib
glew
glm
gtest
howard-hinnant-date
libsm
libcpr
libGLU
libjpeg
libpng
libtiffWithCxx
libzip
onetbb
openssl
(python3.withPackages (ps: [
@@ -167,7 +181,7 @@ buildStdenv.mkDerivation (finalAttrs: {
'';
meta = {
homepage = "https://supercell-wx.rtfd.io";
homepage = "https://supercellwx.net/";
downloadPage = "https://github.com/dpaulat/supercell-wx/releases";
description = "Live visualization of NEXRAD weather data and alerts";
changelog = "https://github.com/dpaulat/supercell-wx/releases/tag/${finalAttrs.src.tag}";
@@ -184,6 +198,9 @@ buildStdenv.mkDerivation (finalAttrs: {
"x86_64-linux"
"aarch64-linux"
];
maintainers = with lib.maintainers; [ aware70 ];
maintainers = with lib.maintainers; [
aware70
dpaulat
];
};
})

View File

@@ -0,0 +1,12 @@
diff --git a/wxdata/source/scwx/provider/nws_level3_behavior.cpp b/wxdata/source/scwx/provider/nws_level3_behavior.cpp
index 378c98d4..f95b6d80 100644
--- a/wxdata/source/scwx/provider/nws_level3_behavior.cpp
+++ b/wxdata/source/scwx/provider/nws_level3_behavior.cpp
@@ -12,6 +12,7 @@
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/unordered/unordered_flat_map.hpp>
+#include <boost/url/parse.hpp>
#include <boost/url/url.hpp>
#include <cpr/cpr.h>
#include <range/v3/range/conversion.hpp>

View File

@@ -1,12 +1,12 @@
diff --git a/wxdata/wxdata.cmake b/wxdata/wxdata.cmake
index 36911947..451efc13 100644
index 0624971d..1df079de 100644
--- a/wxdata/wxdata.cmake
+++ b/wxdata/wxdata.cmake
@@ -320,6 +320,7 @@ endif()
@@ -363,6 +363,7 @@ endif()
target_link_libraries(wxdata PUBLIC aws-cpp-sdk-core
aws-cpp-sdk-s3
+ aws-crt-cpp
cpr::cpr
LibXml2::LibXml2
OpenSSL::Crypto
libzip::zip

View File

@@ -1,18 +1,18 @@
diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake
index 648b6578..4833b9c2 100644
index ed40e428..8743b2ab 100644
--- a/scwx-qt/scwx-qt.cmake
+++ b/scwx-qt/scwx-qt.cmake
@@ -776,6 +776,7 @@ target_link_libraries(scwx-qt PUBLIC Qt${QT_VERSION_MAJOR}::Widgets
@@ -859,6 +859,7 @@ target_link_libraries(scwx-qt PUBLIC Qt${QT_VERSION_MAJOR}::Widgets
Boost::timer
Boost::atomic
QMapLibre::Core
+ QMapLibre::Widgets
OpenGL::GLU
$<$<CXX_COMPILER_ID:MSVC>:opengl32>
$<$<CXX_COMPILER_ID:MSVC>:SetupAPI>
Fontconfig::Fontconfig
@@ -793,18 +794,7 @@ target_link_libraries(scwx-qt PUBLIC Qt${QT_VERSION_MAJOR}::Widgets
target_link_libraries(supercell-wx PRIVATE scwx-qt
wxdata)
@@ -891,18 +892,7 @@ if (WIN32)
COMMENT "Running windeployqt for supercell-wx...")
endif()
-if (LINUX)
- # Set DT_RUNPATH for Linux targets
@@ -29,7 +29,7 @@ index 648b6578..4833b9c2 100644
RUNTIME
COMPONENT supercell-wx
BUNDLE
@@ -819,24 +809,6 @@ install(TARGETS supercell-wx
@@ -917,24 +907,6 @@ install(TARGETS supercell-wx
COMPONENT supercell-wx
OPTIONAL)

View File

@@ -1,27 +0,0 @@
diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake
index 648b6578..3f1d8070 100644
--- a/scwx-qt/scwx-qt.cmake
+++ b/scwx-qt/scwx-qt.cmake
@@ -18,7 +18,7 @@ find_package(Fontconfig)
find_package(geographiclib)
find_package(geos)
find_package(glm)
-find_package(OpenGL)
+find_package(OpenGL REQUIRED)
find_package(Python COMPONENTS Interpreter)
find_package(SQLite3)
@@ -759,12 +759,7 @@ if (LINUX)
target_link_libraries(scwx-qt PUBLIC Qt${QT_VERSION_MAJOR}::WaylandClient)
endif()
-if (LINUX)
- find_package(mesa-glu REQUIRED)
- target_link_libraries(scwx-qt PUBLIC mesa-glu::mesa-glu)
-else()
- target_link_libraries(scwx-qt PUBLIC OpenGL::GLU)
-endif()
+target_link_libraries(scwx-qt PUBLIC OpenGL::GLU)
target_link_libraries(scwx-qt PUBLIC Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::OpenGLWidgets

View File

@@ -1,13 +0,0 @@
diff --git a/external/qt6ct.cmake b/external/qt6ct.cmake
index 665b5368..9e6ed0e9 100644
--- a/external/qt6ct.cmake
+++ b/external/qt6ct.cmake
@@ -5,7 +5,7 @@ find_package(QT NAMES Qt6
COMPONENTS Gui Widgets
REQUIRED)
find_package(Qt${QT_VERSION_MAJOR}
- COMPONENTS Gui Widgets
+ COMPONENTS Gui Widgets WidgetsPrivate
REQUIRED)
#extract version from qt6ct.h

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