mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-25 17:55:21 +00:00
Merge release-26.05 into staging-next-26.05
This commit is contained in:
2
.github/workflows/backport.yml
vendored
2
.github/workflows/backport.yml
vendored
@@ -39,6 +39,8 @@ jobs:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
# Avoid materializing full nixpkgs tree
|
||||
sparse-checkout: .
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
persist-credentials: true
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ async function getCommitDetailsForPR({ core, pr, repoPath }) {
|
||||
'log',
|
||||
'--format=%s\t%aN\t%aE\t%cN\t%cE',
|
||||
'--name-only',
|
||||
'-m',
|
||||
'-1',
|
||||
sha,
|
||||
],
|
||||
|
||||
@@ -27019,6 +27019,12 @@
|
||||
githubId = 51232929;
|
||||
name = "Taito Horiuchi";
|
||||
};
|
||||
tallesCoelho = {
|
||||
email = "talles.hoc@gmail.com";
|
||||
github = "tallesCoelho";
|
||||
githubId = 7442204;
|
||||
name = "Talles Coelho";
|
||||
};
|
||||
talyz = {
|
||||
email = "kim.lindberger@gmail.com";
|
||||
matrix = "@talyz:matrix.org";
|
||||
|
||||
@@ -52,7 +52,7 @@ in
|
||||
'';
|
||||
description =
|
||||
let
|
||||
documentationLink = "https://gitlab.com/mojo42/Jirafeau/-/blob/${cfg.package.version}/lib/config.original.php";
|
||||
documentationLink = "https://gitlab.com/jirafeau/Jirafeau/-/blob/${cfg.package.version}/lib/config.original.php";
|
||||
in
|
||||
''
|
||||
Jirefeau configuration. Refer to <${documentationLink}> for supported
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!@python3@/bin/python3 -B
|
||||
#!@python3@/bin/python3 -BP
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Any, Callable, Dict, List, Optional, Tuple
|
||||
|
||||
@@ -18,5 +18,20 @@
|
||||
machine.wait_for_unit("nginx.service")
|
||||
machine.wait_for_open_port(80)
|
||||
machine.succeed("curl -sSfL http://localhost/ | grep 'Jirafeau'")
|
||||
|
||||
machine.succeed("printf '%s' '<svg xmlns=\"http://www.w3.org/2000/svg\"><script>alert(1)</script></svg>' > /tmp/preview.svg")
|
||||
link = machine.succeed(
|
||||
"curl --fail --silent --show-error "
|
||||
"-F time=month -F 'file=@/tmp/preview.svg;type=image' "
|
||||
"http://localhost/script.php"
|
||||
).splitlines()[0]
|
||||
headers = machine.succeed(
|
||||
f"curl --fail --silent --show-error --dump-header - "
|
||||
f"--output /tmp/preview-response 'http://localhost/f.php?h={link}&p=1'"
|
||||
)
|
||||
header_lines = {line.lower() for line in headers.splitlines()}
|
||||
assert "x-content-type-options: nosniff" in header_lines
|
||||
assert "content-type: image" in header_lines
|
||||
machine.succeed("cmp /tmp/preview.svg /tmp/preview-response")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ in
|
||||
name = "kanidm-provisioning-${kanidmPackage.version}";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ oddlama ];
|
||||
|
||||
_module.args.kanidmPackage = pkgs.lib.mkDefault pkgs.kanidmWithSecretProvisioning_1_10;
|
||||
_module.args.kanidmPackage = pkgs.lib.mkDefault pkgs.kanidmWithSecretProvisioning_1_11;
|
||||
|
||||
nodes.provision =
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
@@ -22,7 +22,7 @@ in
|
||||
oddlama
|
||||
];
|
||||
|
||||
_module.args.kanidmPackage = pkgs.lib.mkDefault pkgs.kanidm_1_10;
|
||||
_module.args.kanidmPackage = pkgs.lib.mkDefault pkgs.kanidm_1_11;
|
||||
|
||||
nodes.server =
|
||||
{ pkgs, ... }:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -218,14 +218,14 @@ let
|
||||
} source;
|
||||
|
||||
source = rec {
|
||||
version = "1.5.901";
|
||||
version = "1.5.915";
|
||||
|
||||
# Needs submodules
|
||||
src = fetchFromGitHub {
|
||||
owner = "mumble-voip";
|
||||
repo = "mumble";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-UBJH7EwfWvInuSD6ZALOKeVnWdfh/rmq8GVLG5URjOQ=";
|
||||
hash = "sha256-pbO+V8p/vqn+jIFWvcHOKhpr1Nv0nXaHG9lFiMRTntM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -41,6 +41,7 @@ let
|
||||
src = fetchgit {
|
||||
url = repository;
|
||||
rev = version;
|
||||
fetchSubmodules = true; # this is the default, but let's be explicit
|
||||
inherit sha256;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
|
||||
let
|
||||
source = {
|
||||
version = "2.35.1";
|
||||
hash = "sha256-31cKSjSTJyUetjCSOCDY2wnTFV+Z52LcvGrh7Emc0cM=";
|
||||
npmDepsHash = "sha256-wmbzbMQHrbHcL9JSpPXpc+vjjj5LTNN8e6Ug3ZRQ7mo=";
|
||||
clientNpmDepsHash = "sha256-wJdCvUVLZzCY3iW/Q7QVuRu96s49TehnuQNqbImbe0g=";
|
||||
version = "2.36.0";
|
||||
hash = "sha256-oohjRiKARpIyoPFEXR24nlKK4xBBEHUMVTaq/i6NfV8=";
|
||||
npmDepsHash = "sha256-uDIL9PxbFUa3MwLoPomTfq1A/R1ewDIv+EFWml/8uy8=";
|
||||
clientNpmDepsHash = "sha256-0xqqpls8FLuXngjjdwjoNLpq9dSixWouROviTjsFCbU=";
|
||||
};
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bird";
|
||||
version = "2.19.1";
|
||||
version = "2.19.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.nic.cz";
|
||||
owner = "labs";
|
||||
repo = "bird";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-8D83U9IgNQ0HDWk2WSQsRsy82bDmjkgectkCOXy2RyI=";
|
||||
hash = "sha256-5C7hVUWy5QOD2r0Qcu2b2j+xxRek8NsYoWgeRm2Exis=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bird";
|
||||
version = "3.3.1";
|
||||
version = "3.3.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.nic.cz";
|
||||
owner = "labs";
|
||||
repo = "bird";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-aJo6Ut/ULBDGoekSXgN1WvmFmonTzNA3TES1FHqCiOM=";
|
||||
hash = "sha256-qrzi8uYZiohpIRosdPQXxnDu6fP3V9i8PPo8BV8XTZI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "containerd";
|
||||
version = "2.3.1";
|
||||
version = "2.3.3";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -28,7 +28,7 @@ buildGoModule rec {
|
||||
owner = "containerd";
|
||||
repo = "containerd";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BpKBrMluU5MmojJp/9Og5UrkUBLHav5qx6Re1SFhlhY=";
|
||||
hash = "sha256-wa9Pixaq5RRrJucWibbBe4n6s53Pdj+mr5gLoFmDgLU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -71,11 +71,11 @@ in
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "copyparty${nameSuffix}";
|
||||
version = "1.20.17";
|
||||
version = "1.20.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/9001/copyparty/releases/download/v${version}/copyparty-${version}.tar.gz";
|
||||
hash = "sha256-lJVTrv/qlCoN2r0+EtKKZD/qhi14kwuzbgrMxmxMlHU=";
|
||||
hash = "sha256-g02X1jdXXLmy1TBSeQtlEvRisyQd/0ic9kFTnvYk/Ww=";
|
||||
};
|
||||
|
||||
pyproject = true;
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fuse-overlayfs";
|
||||
version = "1.16";
|
||||
version = "1.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "fuse-overlayfs";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-FwAv5PmiBz25PNH/IEIV6cHjhlE+1mDTrgvR2vN++ZY=";
|
||||
hash = "sha256-oXSqyxe5+hsuFXKajuviqh2nKIz8Kw6rjLnb6XTF6GI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gammu";
|
||||
version = "1.43.2";
|
||||
version = "1.43.3";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "gammu";
|
||||
repo = "gammu";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-+mZBELwFUEL4S3IUIIa83TaNIYQxjQE1TvWhXTcIfYc=";
|
||||
sha256 = "sha256-qmpbAiu0aIjawdKTNClMa3yFSdakOlh/dY5gAY04K3M=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "goaccess";
|
||||
version = "1.10.2";
|
||||
version = "1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "allinurl";
|
||||
repo = "goaccess";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-n0+Z3kkjMCjPN0Cb0R1QGSzzXH3S9kjDchy9ay6109s=";
|
||||
hash = "sha256-9Z57T0MPs3ytwi32fMF67j8h7ml20cw4Hf+/DEg5AQY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "h2o";
|
||||
version = "2.3.0-rolling-2026-06-29";
|
||||
version = "2.3.0-rolling-2026-07-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "h2o";
|
||||
repo = "h2o";
|
||||
rev = "edd7a120bfc4af11ac0cbebce2a43cc1f93f9af1";
|
||||
hash = "sha256-WQy+v4zpwzgbMxT43+Nd33+YPynyZIwqzVTaknqjCmE=";
|
||||
rev = "ba16320ad18c2bb2e28478ce9e37b9a57a5c98f6";
|
||||
hash = "sha256-MmfypvlLJ3NeZ1Nyeyzo1mXxICllQPBwwseOo+rC1Ig=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
@@ -71,9 +71,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optional withZstandard zstd;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DWITH_BROTLI=${if withBrotli then "ON" else "OFF"}"
|
||||
"-DWITH_MRUBY=${if withMruby then "ON" else "OFF"}"
|
||||
"-DWITH_ZSTD=${if withZstandard then "ON" else "OFF"}"
|
||||
(lib.cmakeBool "WITH_BROTLI" withBrotli)
|
||||
(lib.cmakeBool "WITH_MRUBY" withMruby)
|
||||
(lib.cmakeBool "WITH_ZSTD" withZstandard)
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@@ -14,13 +14,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jirafeau";
|
||||
version = "4.4.0";
|
||||
version = "4.7.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mojo42";
|
||||
owner = "jirafeau";
|
||||
repo = "Jirafeau";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-jJ2r8XTtAzawTVo2A2pDwy7Z6KHeyBkgXXaCPY0w/rg=";
|
||||
hash = "sha256-zCmSdlHkYQVQXBeVk8AUPoC0UBxz3hWIdM2tGmnLTrw=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = {
|
||||
description = "Website permitting upload of a file in a simple way and giving a unique link to it";
|
||||
license = lib.licenses.agpl3Plus;
|
||||
homepage = "https://gitlab.com/mojo42/Jirafeau";
|
||||
homepage = "https://gitlab.com/jirafeau/Jirafeau";
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
@@ -9,20 +9,21 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lib60870";
|
||||
version = "2.3.6";
|
||||
version = "2.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mz-automation";
|
||||
repo = "lib60870";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-9VqLl1pDmi8TauBA8uCyymzsYd3w4b5AKtqH7XW80N4=";
|
||||
hash = "sha256-WXEe+G7ib9XNAZSsNl/RZcFHXpIbCMKNfPLnxZzz09E=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/lib60870-C";
|
||||
|
||||
postPatch = ''
|
||||
# Keep system mbedTLS support enabled without vendored mbedTLS sources.
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "cmake_minimum_required(VERSION 3.0)" "cmake_minimum_required(VERSION 3.10)"
|
||||
--replace-fail "if(MBEDTLS_DIR)" "if(MBEDTLS_DIR OR WITH_MBEDTLS3)"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace src/CMakeLists.txt \
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libks";
|
||||
version = "2.0.10";
|
||||
version = "2.0.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "signalwire";
|
||||
repo = "libks";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-oLf1ECSKa6KLTA8MO0le44eEDaLmPz/RHoLa8ZSwjWs=";
|
||||
hash = "sha256-tPhGXDEAKgeODAcM6hu4GDU83A3Zi7sIMnTQkfCGlFc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -41,6 +41,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://github.com/LibVNC/libvncserver/commit/e64fa928170f22a2e21b5bbd6d46c8f8e7dd7a96.patch";
|
||||
hash = "sha256-AAZ3H34+nLqQggb/sNSx2gIGK96m4zatHX3wpyjNLOA=";
|
||||
})
|
||||
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-32854.patch";
|
||||
url = "https://github.com/LibVNC/libvncserver/commit/dc78dee51a7e270e537a541a17befdf2073f5314.patch";
|
||||
hash = "sha256-CgVfvsrgZWnjIzu/0UegoAuCqO7WHhCDVvhH8Yk1cXo=";
|
||||
})
|
||||
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-32853.patch";
|
||||
url = "https://github.com/LibVNC/libvncserver/commit/009008e2f4d5a54dd71f422070df3af7b3dbc931.patch";
|
||||
hash = "sha256-ZgpiIS7KoRzDmVLQ0J86wTFFykCBVMt6bZwJsFvIO74=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "luau";
|
||||
version = "0.720";
|
||||
version = "0.725";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "luau-lang";
|
||||
repo = "luau";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-OF0Zsy1O+9rCcOlWRiBmoets7dAZES4Yy6X4QJ3ZdvQ=";
|
||||
hash = "sha256-zRoB1psMrZRt8mLoaReyc0hvhRBPAotC1LmDNTYGLjA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
hash,
|
||||
patches ? [ ],
|
||||
fetchFromGitHub,
|
||||
buildPackages,
|
||||
|
||||
cmake,
|
||||
ninja,
|
||||
@@ -87,6 +88,10 @@ stdenv.mkDerivation rec {
|
||||
"-DCMAKE_C_FLAGS=-fzero-init-padding-bits=unions"
|
||||
];
|
||||
|
||||
env = lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
HOSTCC = lib.getExe buildPackages.stdenv.cc;
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# Parallel checking causes test failures
|
||||
|
||||
@@ -152,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"i686-linux"
|
||||
"x86_64-linux"
|
||||
];
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ tallesCoelho ];
|
||||
mainProgram = "megasync";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.2.0-23522718";
|
||||
version = "1.3.1-24494674";
|
||||
urlVersion = lib.replaceStrings [ "." ] [ "-" ] version;
|
||||
|
||||
in
|
||||
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation {
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://necesse.pwn.sh/server/necesse-server-linux64-${urlVersion}.zip";
|
||||
hash = "sha256-PIguTYULddLKj6PpoSvX3gNSvqrS7oRTOPuwoA0/XOc=";
|
||||
hash = "sha256-A2mWnIIRGNfbxg7aZDwEk7QvuDUUpr2ARIddasTlvFM=";
|
||||
};
|
||||
|
||||
# removing packaged jre since we use our own
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "obsidian";
|
||||
version = "1.12.7";
|
||||
version = "1.13.4";
|
||||
appname = "Obsidian";
|
||||
meta = {
|
||||
description = "Powerful knowledge base that works on top of a local folder of plain text Markdown files";
|
||||
@@ -41,17 +41,17 @@ let
|
||||
srcs = rec {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
|
||||
hash = "sha256-/L4IsRHZwf2wm5wIlSsG4cgpxiFj66JYTEtOyFm+B50=";
|
||||
hash = "sha256-66wkn5SbaJSBn7tLxWV+yIkvAGzv7ZVdNKbB/+Ji8Ws=";
|
||||
};
|
||||
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}-arm64.tar.gz";
|
||||
hash = "sha256-a8hye/27bXMdWvmgb1HW3nBhxoyQjIrotDqe03miAmA=";
|
||||
hash = "sha256-4tRNJjab0DXhrVj2MRMHP7eRtS9MJsziLO1jtJKnE24=";
|
||||
};
|
||||
|
||||
x86_64-darwin = fetchurl {
|
||||
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/Obsidian-${version}.dmg";
|
||||
hash = "sha256-O4XBO0zlVRLobhcKfNKklOLbaVrIiMBgHhU8uFt3iBs=";
|
||||
hash = "sha256-6EuVlaul5QIhyX5D0+P0N0Fu379MSoTDeUYecPhU148=";
|
||||
};
|
||||
|
||||
aarch64-darwin = x86_64-darwin;
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
raspberrypifw,
|
||||
pcre,
|
||||
boost,
|
||||
freetype,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
let
|
||||
ffmpeg = stdenv.mkDerivation rec {
|
||||
pname = "ffmpeg";
|
||||
version = "1.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2";
|
||||
sha256 = "03s1zsprz5p6gjgwwqcf7b6cvzwwid6l8k7bamx9i0f1iwkgdm0j";
|
||||
};
|
||||
|
||||
configurePlatforms = [ ];
|
||||
configureFlags = [
|
||||
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isAarch32 [
|
||||
# TODO be better with condition
|
||||
"--cpu=arm1176jzf-s"
|
||||
]
|
||||
++ [
|
||||
"--disable-muxers"
|
||||
"--enable-muxer=spdif"
|
||||
"--enable-muxer=adts"
|
||||
"--disable-encoders"
|
||||
"--enable-encoder=ac3"
|
||||
"--enable-encoder=aac"
|
||||
"--disable-decoder=mpeg_xvmc"
|
||||
"--disable-devices"
|
||||
"--disable-ffprobe"
|
||||
"--disable-ffplay"
|
||||
"--disable-ffserver"
|
||||
"--disable-ffmpeg"
|
||||
"--enable-shared"
|
||||
"--disable-doc"
|
||||
"--enable-postproc"
|
||||
"--enable-gpl"
|
||||
"--enable-protocol=http"
|
||||
"--enable-pthreads"
|
||||
"--disable-runtime-cpudetect"
|
||||
"--enable-pic"
|
||||
"--disable-armv5te"
|
||||
"--disable-neon"
|
||||
"--enable-armv6t2"
|
||||
"--enable-armv6"
|
||||
"--enable-hardcoded-tables"
|
||||
"--disable-runtime-cpudetect"
|
||||
"--disable-debug"
|
||||
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"--target_os=${stdenv.hostPlatform.parsed.kernel.name}"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"--cross-prefix=${stdenv.cc.targetPrefix}"
|
||||
"--enable-cross-compile"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.ffmpeg.org/";
|
||||
description = "Complete, cross-platform solution to record, convert and stream audio and video";
|
||||
};
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "omxplayer";
|
||||
version = "0-unstable-2013-03-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huceke";
|
||||
repo = "omxplayer";
|
||||
rev = "fbee325dc20441138d04d8d2022ad85956302e97";
|
||||
sha256 = "0fkvv8il7ffqxki2gp8cxa5shh6sz9jsy5vv3f4025g4gss6afkg";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i 1d Makefile
|
||||
export INCLUDES="-I${raspberrypifw}/include/interface/vcos/pthreads -I${raspberrypifw}/include/interface/vmcs_host/linux/"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp omxplayer.bin $out/bin
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
raspberrypifw
|
||||
ffmpeg
|
||||
pcre
|
||||
boost
|
||||
freetype
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/huceke/omxplayer";
|
||||
description = "Commandline OMX player for the Raspberry Pi";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.arm;
|
||||
};
|
||||
}
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "panoply";
|
||||
version = "5.9.2";
|
||||
version = "5.10.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
|
||||
hash = "sha256-fPaPd/ZFblZXOwM2yHeXPIUv/bxGAHki9jbeG2HTckI=";
|
||||
hash = "sha256-xSvzYD7Bk3SC0WUhQVKRhkCZTiB1vAATM7qSGw9U7Lo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
version = "1.83.0";
|
||||
version = "1.83.1";
|
||||
hashes = {
|
||||
linux-aarch_64 = "sha256-Nwnk4Upg8VZCVbR/bpJDct/wI6GGaTICK+Sh711ZVEM=";
|
||||
linux-ppcle_64 = "sha256-xUwugnrRQQqEkupYFh7SPtqtNmXmNCjAE+msHskmPXY=";
|
||||
linux-s390_64 = "sha256-hj+QMaSxtX+hs6G5qCxf7ON2bDvpEGovt9iuVFwsXAQ=";
|
||||
linux-x86_32 = "sha256-qJ034I7Im1pEn5u6W16y662y4+d7ZpB9EQtd7hkSCG4=";
|
||||
linux-x86_64 = "sha256-oZrnSqTLA+HQEmlWKsYWXsMqhIp769AyrqmguVaXGLo=";
|
||||
osx-aarch_64 = "sha256-w+3q+DtvfVzsqm9PfeMq6WyUn0jJorp0NngnH6HQh3I=";
|
||||
osx-x86_64 = "sha256-w+3q+DtvfVzsqm9PfeMq6WyUn0jJorp0NngnH6HQh3I=";
|
||||
windows-x86_32 = "sha256-fwDjhD8Jhy7M7qPSc8vJSUA8H/OhWeOyV/69uuZX+9Y=";
|
||||
windows-x86_64 = "sha256-MER2cr8kaMO3zVTLujYr4jPX8jcbBqbHf9/Fxb0CbJY=";
|
||||
linux-aarch_64 = "sha256-WvVUQ2m9hVcRGr++0hRTu2+oZ78yol8v/l9yNm5wXO8=";
|
||||
linux-ppcle_64 = "sha256-X3+mYub01d3mwGZ6aNRfXSxfjNE2Tw1+xETUc/jC9Oc=";
|
||||
linux-s390_64 = "sha256-CgdF8/0GCb/P8sUCMCdxByqHeD86PN6P4V1q9SbPLPs=";
|
||||
linux-x86_32 = "sha256-N8xukQz+zPnnTi8RaELXjiP/PoT+ZBemSjvoXjp49R8=";
|
||||
linux-x86_64 = "sha256-20BE54OR1aI0ORQ8gUfwe6WHdnVYe01I87aPvuOJNYk=";
|
||||
osx-aarch_64 = "sha256-Ny4TslywWOpuOrbLVLoUWNXSu+HP3NN7xX6CuHJlbiE=";
|
||||
osx-x86_64 = "sha256-Ny4TslywWOpuOrbLVLoUWNXSu+HP3NN7xX6CuHJlbiE=";
|
||||
windows-x86_32 = "sha256-DdroVwr0NVeFGrM0JxnqfRJFXx1j3DVhGrEzTyJ6++8=";
|
||||
windows-x86_64 = "sha256-9GVLC44frt+Jf0q811TFJQy0iv4H1ZXlbvyftHhzbHM=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
||||
|
||||
ruby '>= 3.2.0', '< 3.5.0'
|
||||
|
||||
gem 'rails', '7.2.3.1'
|
||||
gem 'rails', '7.2.3.2'
|
||||
gem 'rouge', '~> 4.5'
|
||||
gem 'mini_mime', '~> 1.1.0'
|
||||
gem "actionpack-xml_parser"
|
||||
|
||||
188
pkgs/by-name/re/redmine/Gemfile.lock
generated
188
pkgs/by-name/re/redmine/Gemfile.lock
generated
@@ -1,29 +1,29 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
actioncable (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actioncable (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
zeitwerk (~> 2.6)
|
||||
actionmailbox (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
activejob (= 7.2.3.1)
|
||||
activerecord (= 7.2.3.1)
|
||||
activestorage (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actionmailbox (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
activejob (= 7.2.3.2)
|
||||
activerecord (= 7.2.3.2)
|
||||
activestorage (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
mail (>= 2.8.0)
|
||||
actionmailer (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
actionview (= 7.2.3.1)
|
||||
activejob (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actionmailer (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
actionview (= 7.2.3.2)
|
||||
activejob (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
mail (>= 2.8.0)
|
||||
rails-dom-testing (~> 2.2)
|
||||
actionpack (7.2.3.1)
|
||||
actionview (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actionpack (7.2.3.2)
|
||||
actionview (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
cgi
|
||||
nokogiri (>= 1.8.5)
|
||||
racc
|
||||
@@ -36,36 +36,36 @@ GEM
|
||||
actionpack-xml_parser (2.0.1)
|
||||
actionpack (>= 5.0)
|
||||
railties (>= 5.0)
|
||||
actiontext (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
activerecord (= 7.2.3.1)
|
||||
activestorage (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actiontext (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
activerecord (= 7.2.3.2)
|
||||
activestorage (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
globalid (>= 0.6.0)
|
||||
nokogiri (>= 1.8.5)
|
||||
actionview (7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
actionview (7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
builder (~> 3.1)
|
||||
cgi
|
||||
erubi (~> 1.11)
|
||||
rails-dom-testing (~> 2.2)
|
||||
rails-html-sanitizer (~> 1.6)
|
||||
activejob (7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
activejob (7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
activerecord (7.2.3.1)
|
||||
activemodel (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
activemodel (7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
activerecord (7.2.3.2)
|
||||
activemodel (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
timeout (>= 0.4.0)
|
||||
activestorage (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
activejob (= 7.2.3.1)
|
||||
activerecord (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
activestorage (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
activejob (= 7.2.3.2)
|
||||
activerecord (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
marcel (~> 1.0)
|
||||
activesupport (7.2.3.1)
|
||||
activesupport (7.2.3.2)
|
||||
base64
|
||||
benchmark (>= 0.3)
|
||||
bigdecimal
|
||||
@@ -79,9 +79,11 @@ GEM
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
addressable (2.9.0)
|
||||
public_suffix (>= 2.0.2, < 8.0)
|
||||
anonymous_loader (0.1.3)
|
||||
version_gem (~> 1.1, >= 1.1.14)
|
||||
ast (2.4.3)
|
||||
auth-sanitizer (0.2.1)
|
||||
version_gem (~> 1.1, >= 1.1.10)
|
||||
auth-sanitizer (0.2.3)
|
||||
version_gem (~> 1.1, >= 1.1.14)
|
||||
base64 (0.3.0)
|
||||
bcrypt (3.1.22)
|
||||
benchmark (0.5.0)
|
||||
@@ -104,16 +106,17 @@ GEM
|
||||
rack-test (>= 0.6.3)
|
||||
regexp_parser (>= 1.5, < 3.0)
|
||||
xpath (~> 3.2)
|
||||
cgi (0.5.1)
|
||||
cgi (0.5.2)
|
||||
chunky_png (1.4.0)
|
||||
commonmarker (2.3.2)
|
||||
rb_sys (~> 0.9)
|
||||
concurrent-ruby (1.3.7)
|
||||
concurrent-ruby (1.3.8)
|
||||
connection_pool (3.0.2)
|
||||
crass (1.0.6)
|
||||
css_parser (2.2.0)
|
||||
crass (1.0.7)
|
||||
css_parser (3.0.0)
|
||||
addressable
|
||||
csv (3.3.5)
|
||||
ssrf_filter (~> 1.5)
|
||||
csv (3.3.6)
|
||||
date (3.5.1)
|
||||
debug (1.11.1)
|
||||
irb (~> 1.10)
|
||||
@@ -125,7 +128,7 @@ GEM
|
||||
doorkeeper-i18n (5.2.9)
|
||||
doorkeeper (>= 5.2)
|
||||
drb (2.2.3)
|
||||
erb (6.0.4)
|
||||
erb (6.0.6)
|
||||
erubi (1.13.1)
|
||||
faraday (2.14.3)
|
||||
faraday-net_http (>= 2.0, < 3.5)
|
||||
@@ -134,7 +137,7 @@ GEM
|
||||
faraday-net_http (3.4.4)
|
||||
net-http (~> 0.5)
|
||||
ffi (1.17.4)
|
||||
globalid (1.3.0)
|
||||
globalid (1.4.0)
|
||||
activesupport (>= 6.1)
|
||||
hashie (5.1.0)
|
||||
logger
|
||||
@@ -157,17 +160,17 @@ GEM
|
||||
prism (>= 1.3.0)
|
||||
rdoc (>= 4.0.0)
|
||||
reline (>= 0.4.2)
|
||||
json (2.19.9)
|
||||
json (2.21.2)
|
||||
jwt (3.2.0)
|
||||
base64
|
||||
language_server-protocol (3.17.0.5)
|
||||
language_server-protocol (3.17.0.6)
|
||||
lint_roller (1.1.0)
|
||||
listen (3.10.0)
|
||||
logger
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.7.0)
|
||||
loofah (2.25.1)
|
||||
loofah (2.25.2)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
mail (2.8.1)
|
||||
@@ -180,7 +183,7 @@ GEM
|
||||
mime-types (3.7.0)
|
||||
logger
|
||||
mime-types-data (~> 3.2025, >= 3.2025.0507)
|
||||
mime-types-data (3.2026.0414)
|
||||
mime-types-data (3.2026.0701)
|
||||
mini_magick (5.2.0)
|
||||
benchmark
|
||||
logger
|
||||
@@ -207,24 +210,25 @@ GEM
|
||||
net-protocol
|
||||
netrc (0.11.0)
|
||||
nio4r (2.7.5)
|
||||
nokogiri (1.19.3)
|
||||
nokogiri (1.19.4)
|
||||
mini_portile2 (~> 2.8.2)
|
||||
racc (~> 1.4)
|
||||
oauth2 (2.0.23)
|
||||
auth-sanitizer (~> 0.2, >= 0.2.1)
|
||||
oauth2 (2.0.25)
|
||||
anonymous_loader (~> 0.1, >= 0.1.3)
|
||||
auth-sanitizer (~> 0.2, >= 0.2.3)
|
||||
faraday (>= 0.17.3, < 4.0)
|
||||
jwt (>= 1.0, < 4.0)
|
||||
logger (~> 1.2)
|
||||
multi_xml (~> 0.5)
|
||||
rack (>= 1.2, < 4)
|
||||
snaky_hash (~> 2.0, >= 2.0.6)
|
||||
version_gem (~> 1.1, >= 1.1.11)
|
||||
snaky_hash (~> 2.0, >= 2.0.7)
|
||||
version_gem (~> 1.1, >= 1.1.14)
|
||||
parallel (1.28.0)
|
||||
parser (3.3.11.1)
|
||||
parser (3.3.12.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pg (1.5.9)
|
||||
pp (0.6.3)
|
||||
pp (0.6.4)
|
||||
prettyprint
|
||||
prettyprint (0.2.0)
|
||||
prism (1.9.0)
|
||||
@@ -233,9 +237,6 @@ GEM
|
||||
activesupport (>= 7.0.0)
|
||||
rack
|
||||
railties (>= 7.0.0)
|
||||
psych (5.4.0)
|
||||
date
|
||||
stringio
|
||||
public_suffix (7.0.5)
|
||||
puma (8.0.2)
|
||||
nio4r (~> 2.0)
|
||||
@@ -248,30 +249,30 @@ GEM
|
||||
rack (>= 1.3)
|
||||
rackup (2.3.1)
|
||||
rack (>= 3)
|
||||
rails (7.2.3.1)
|
||||
actioncable (= 7.2.3.1)
|
||||
actionmailbox (= 7.2.3.1)
|
||||
actionmailer (= 7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
actiontext (= 7.2.3.1)
|
||||
actionview (= 7.2.3.1)
|
||||
activejob (= 7.2.3.1)
|
||||
activemodel (= 7.2.3.1)
|
||||
activerecord (= 7.2.3.1)
|
||||
activestorage (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
rails (7.2.3.2)
|
||||
actioncable (= 7.2.3.2)
|
||||
actionmailbox (= 7.2.3.2)
|
||||
actionmailer (= 7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
actiontext (= 7.2.3.2)
|
||||
actionview (= 7.2.3.2)
|
||||
activejob (= 7.2.3.2)
|
||||
activemodel (= 7.2.3.2)
|
||||
activerecord (= 7.2.3.2)
|
||||
activestorage (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
bundler (>= 1.15.0)
|
||||
railties (= 7.2.3.1)
|
||||
railties (= 7.2.3.2)
|
||||
rails-dom-testing (2.3.0)
|
||||
activesupport (>= 5.0.0)
|
||||
minitest
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.7.0)
|
||||
loofah (~> 2.25)
|
||||
rails-html-sanitizer (1.7.1)
|
||||
loofah (~> 2.25, >= 2.25.2)
|
||||
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
||||
railties (7.2.3.1)
|
||||
actionpack (= 7.2.3.1)
|
||||
activesupport (= 7.2.3.1)
|
||||
railties (7.2.3.2)
|
||||
actionpack (= 7.2.3.2)
|
||||
activesupport (= 7.2.3.2)
|
||||
cgi
|
||||
irb (~> 1.13)
|
||||
rackup (>= 1.0.0)
|
||||
@@ -291,9 +292,14 @@ GEM
|
||||
htmlentities
|
||||
rbpdf-font (~> 1.19.0)
|
||||
rbpdf-font (1.19.1)
|
||||
rdoc (7.2.0)
|
||||
rbs (4.1.1)
|
||||
logger
|
||||
prism (>= 1.6.0)
|
||||
tsort
|
||||
rdoc (8.0.0)
|
||||
erb
|
||||
psych (>= 4.0.0)
|
||||
prism (>= 1.6.0)
|
||||
rbs (>= 4.0.0)
|
||||
tsort
|
||||
regexp_parser (2.12.0)
|
||||
reline (0.6.3)
|
||||
@@ -306,8 +312,8 @@ GEM
|
||||
mime-types (>= 1.16, < 4.0)
|
||||
netrc (~> 0.8)
|
||||
rexml (3.4.4)
|
||||
roadie (5.3.0)
|
||||
css_parser (>= 1.4, < 3.0)
|
||||
roadie (5.3.1)
|
||||
css_parser (>= 1.4, < 4.0)
|
||||
nokogiri (~> 1.15)
|
||||
roadie-rails (3.3.0)
|
||||
railties (>= 5.1, < 8.1)
|
||||
@@ -329,7 +335,7 @@ GEM
|
||||
rubocop-ast (>= 1.45.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.49.1)
|
||||
rubocop-ast (1.50.0)
|
||||
parser (>= 3.3.7.2)
|
||||
prism (~> 1.7)
|
||||
rubocop-performance (1.25.0)
|
||||
@@ -349,7 +355,7 @@ GEM
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
securerandom (0.4.1)
|
||||
selenium-webdriver (4.45.0)
|
||||
selenium-webdriver (4.46.0)
|
||||
base64 (~> 0.2)
|
||||
logger (~> 1.4)
|
||||
rexml (~> 3.2, >= 3.2.5)
|
||||
@@ -361,14 +367,14 @@ GEM
|
||||
simplecov_json_formatter (~> 0.1)
|
||||
simplecov-html (0.13.2)
|
||||
simplecov_json_formatter (0.1.4)
|
||||
snaky_hash (2.0.6)
|
||||
snaky_hash (2.0.7)
|
||||
hashie (>= 0.1.0, < 6)
|
||||
version_gem (>= 1.1.8, < 3)
|
||||
version_gem (~> 1.1, >= 1.1.14)
|
||||
sqlite3 (2.5.0)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
ssrf_filter (1.5.0)
|
||||
stimulus-rails (1.3.4)
|
||||
railties (>= 6.0.0)
|
||||
stringio (3.2.0)
|
||||
svg_optimizer (0.3.0)
|
||||
nokogiri
|
||||
svg_sprite (1.0.3)
|
||||
@@ -387,10 +393,10 @@ GEM
|
||||
uniform_notifier (1.18.0)
|
||||
uri (1.1.1)
|
||||
useragent (0.16.11)
|
||||
version_gem (1.1.12)
|
||||
version_gem (1.1.14)
|
||||
webrick (1.9.2)
|
||||
websocket (1.2.11)
|
||||
websocket-driver (0.8.1)
|
||||
websocket-driver (0.8.2)
|
||||
base64
|
||||
websocket-extensions (>= 0.1.0)
|
||||
websocket-extensions (0.1.5)
|
||||
@@ -399,7 +405,7 @@ GEM
|
||||
zeitwerk (>= 2.7)
|
||||
xpath (3.2.0)
|
||||
nokogiri (~> 1.8)
|
||||
yard (0.9.44)
|
||||
yard (0.9.45)
|
||||
zeitwerk (2.8.2)
|
||||
|
||||
PLATFORMS
|
||||
@@ -439,7 +445,7 @@ DEPENDENCIES
|
||||
propshaft (~> 1.1.0)
|
||||
puma
|
||||
rack (>= 3.1.3)
|
||||
rails (= 7.2.3.1)
|
||||
rails (= 7.2.3.2)
|
||||
rails-dom-testing (>= 2.3.0)
|
||||
rbpdf (~> 1.21.4)
|
||||
requestjs-rails (~> 0.0.13)
|
||||
|
||||
246
pkgs/by-name/re/redmine/gemset.nix
generated
246
pkgs/by-name/re/redmine/gemset.nix
generated
@@ -11,10 +11,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0g5kbrqvhwlliyrzd2bhc3kdiqm58df0x3w716bs0ygwyjil1gyk";
|
||||
sha256 = "0mvb7hkrbg1nrb0xy347f1wb2vlf61kc3gs3yi2swawl34axkzq4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
actionmailbox = {
|
||||
dependencies = [
|
||||
@@ -29,10 +29,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0hf59r6sk0qb5va0ga549rbadcb5n1a2ry8nlkszzcksr6039rx4";
|
||||
sha256 = "19ccdmx2l8rdz698686n7yzlkwlry4qaiqacw68w6c5nqnc6x7yi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
actionmailer = {
|
||||
dependencies = [
|
||||
@@ -47,10 +47,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0rq4aan18y6gwziabnj1q1486349k1v1i5m7ysv206pqqpavcy7m";
|
||||
sha256 = "0ndpcw5q3hyxwkncg6wf37qlzyn8qcvd4q19inrcsrr8hwkc79j5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
actionpack = {
|
||||
dependencies = [
|
||||
@@ -70,10 +70,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1jp4w493wvfh9246wxk7g00m1a3vmzkvs0rznq62fwvjjdzzwsmn";
|
||||
sha256 = "0av5562qr6f7lddlr4ipycp2qk54q8pl3caa0vp7690gvz2b3yy1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
actionpack-xml_parser = {
|
||||
dependencies = [
|
||||
@@ -102,10 +102,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1qs350j3zm7sd6xxn61d93mv3lx1ravbjqja12c7nd7a0zs1h52v";
|
||||
sha256 = "1c7h6fyyi8q1kqgclcdr55vrm28v7swriam9ara6m5xb0wm7xaqr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
actionview = {
|
||||
dependencies = [
|
||||
@@ -120,10 +120,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0z7zy6ibfpsdj9jbdm54bx3ws4dszcq7qa564jn645rr8dlbh6fy";
|
||||
sha256 = "00fw5sqg71zjw5bgk5l620l05aj07kbl6clzz8fjg4qc0ikdkgs2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
activejob = {
|
||||
dependencies = [
|
||||
@@ -134,10 +134,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1n3fiwm1x3dxwj36n9pspd2bgffyw28ys9yd36hjvf3iwdy25i0b";
|
||||
sha256 = "0fm9fghq86z09xdrsdqq1z8bbasxsb8w1f2c1hzq44c9i5qa0gxq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
activemodel = {
|
||||
dependencies = [ "activesupport" ];
|
||||
@@ -145,10 +145,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1l60a6mqx1wgp15ki1cp68djci0czgrikpydii5bd877hndqdq9r";
|
||||
sha256 = "09v987j1jy4821s06cpm3h50ldybv89k0ll70grn05fxv1yccxrp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
activerecord = {
|
||||
dependencies = [
|
||||
@@ -160,10 +160,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0pd0f1hy6rvyanmrklqir33xq0jb2my4jajz7hc38nysfpi175dq";
|
||||
sha256 = "1iw5f93c6rq080xphy4776lamc4iahibjbhjxlj0v0jzgsx28bg6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
activestorage = {
|
||||
dependencies = [
|
||||
@@ -177,10 +177,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1azzbpfp726yigwzmj8g2jji149wisnwrgb86zix6mk25sj4w8hb";
|
||||
sha256 = "1z6v9rz1lvqdn2x28vbcbyq6m1gvzqwvkp9apramal433frb8g46";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
activesupport = {
|
||||
dependencies = [
|
||||
@@ -204,10 +204,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0d6bhg9cim83g8cypjd7cms45ng4p9ga69v26i3vp823d98yvsqi";
|
||||
sha256 = "04ikxwixhpnv2dih9hy3af45qgra7kz0fd70miw6s248vl8hvjfx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = [ "public_suffix" ];
|
||||
@@ -223,6 +223,20 @@
|
||||
};
|
||||
version = "2.9.0";
|
||||
};
|
||||
anonymous_loader = {
|
||||
dependencies = [ "version_gem" ];
|
||||
groups = [
|
||||
"default"
|
||||
"test"
|
||||
];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0mfb8kf2a4qmam6jvlrsb38zqh9gk3y1vhbx8iaxji4i8gi1hjh8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.3";
|
||||
};
|
||||
ast = {
|
||||
groups = [
|
||||
"default"
|
||||
@@ -245,10 +259,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0xy5gjb12kv6zjn4zyd16yfv4bygd02ykbr6cz10d6sqyw0wyzci";
|
||||
sha256 = "0g1yjdchydvk44v4303rjhb5sfb73nzbrvipnr5cdr7v5k4sl46v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
version = "0.2.3";
|
||||
};
|
||||
base64 = {
|
||||
groups = [
|
||||
@@ -377,10 +391,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1s8qdw1nfh3njd47q154njlfyc2llcgi4ik13vz39adqd7yclgz9";
|
||||
sha256 = "1fzqwshg1xzbdm97havskfp6wifsgbjii00dzba0y6bih4lk1jk1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.5.1";
|
||||
version = "0.5.2";
|
||||
};
|
||||
chunky_png = {
|
||||
groups = [ "default" ];
|
||||
@@ -412,10 +426,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1c2i64xsd35vijnb50rxb70g508s0x674xi0qpyyb8jy7bncl4j4";
|
||||
sha256 = "1qfi2ns3zwkgq616fc127xiqhan7g7m7gqpwriwcr34nds1vxwdj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.7";
|
||||
version = "1.3.8";
|
||||
};
|
||||
connection_pool = {
|
||||
groups = [
|
||||
@@ -436,38 +450,37 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
|
||||
sha256 = "15djj19ynz3sbw54fsf8n7y3sha8a333f2mgvjfwhr46jhcqg1ll";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.6";
|
||||
version = "1.0.7";
|
||||
};
|
||||
css_parser = {
|
||||
dependencies = [ "addressable" ];
|
||||
dependencies = [
|
||||
"addressable"
|
||||
"ssrf_filter"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "09b3zwmx95jhdp3da6qx9w0d6s2yfpxjjip55wpwny5wsx3v5l93";
|
||||
sha256 = "119q8j23xyb9pifka1n6jjrw04099zpwwdajh5pd10fm7wlfkw7a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.0";
|
||||
version = "3.0.0";
|
||||
};
|
||||
csv = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0gz7r2kazwwwyrwi95hbnhy54kwkfac5swh2gy5p5vw36fn38lbf";
|
||||
sha256 = "0mj4kq4wwpc7c8ll52q30hsir1jrcd5kq7yb8lyz0rksa1z1x9mb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.3.5";
|
||||
version = "3.3.6";
|
||||
};
|
||||
date = {
|
||||
groups = [
|
||||
"default"
|
||||
"development"
|
||||
"test"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
@@ -564,10 +577,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1ncmbdjf2bwmk0jf5cxywns9zbxyfiy4h4p3pzi7yddyjhv81qrq";
|
||||
sha256 = "1raacipbb5m0176w05m3n21ip91w7i0cb5zjqhkz2nqgf234kcm9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.4";
|
||||
version = "6.0.6";
|
||||
};
|
||||
erubi = {
|
||||
groups = [ "default" ];
|
||||
@@ -647,10 +660,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "04gzhqvsm4z4l12r9dkac9a75ah45w186ydhl0i4andldsnkkih5";
|
||||
sha256 = "09zl0rkskfq0cwfrk9ypjvflvzanfg3xbhh1slaa1myry7xi4zq3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.0";
|
||||
version = "1.4.0";
|
||||
};
|
||||
hashie = {
|
||||
dependencies = [ "logger" ];
|
||||
@@ -789,10 +802,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "16mp8vzgxa8nsa81np042za453j8b0ihpjkf666s7byxrnvjb44v";
|
||||
sha256 = "0shwgjqbj856mb6m9kgkpy08nhym2gdvc2yaprlimfmky9y3n78z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.19.9";
|
||||
version = "2.21.2";
|
||||
};
|
||||
jwt = {
|
||||
dependencies = [ "base64" ];
|
||||
@@ -816,10 +829,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1k0311vah76kg5m6zr7wmkwyk5p2f9d9hyckjpn3xgr83ajkj7px";
|
||||
sha256 = "1w5p8c2145lmqzr25bxh4ikzjm6k8y1k5lriqqdpw9pq730w1wjy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.17.0.5";
|
||||
version = "3.17.0.6";
|
||||
};
|
||||
lint_roller = {
|
||||
groups = [
|
||||
@@ -873,10 +886,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "011fdngxzr1p9dq2hxqz7qq1glj2g44xnhaadjqlf48cplywfdnl";
|
||||
sha256 = "062r891hxis58j5q735kk9sj5srxx0rv813f8m95bilsjm3gf1r0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.25.1";
|
||||
version = "2.25.2";
|
||||
};
|
||||
mail = {
|
||||
dependencies = [
|
||||
@@ -942,10 +955,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1k28j6ww8rf43r5i8278jvm2cq3pnzsvqm7yqpb4p93kadjlq726";
|
||||
sha256 = "03vkd9g09jnxsp8mdacvjbplrrqfl5l26n50kd4kdn49zghi326d";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2026.0414";
|
||||
version = "3.2026.0701";
|
||||
};
|
||||
mini_magick = {
|
||||
dependencies = [
|
||||
@@ -1148,13 +1161,14 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1s30b7h7qpyim30m8060xs415mbr3ci7i5hdg09chh1aqfx2qcbq";
|
||||
sha256 = "1d9safb4dly6qmc2g06444l0zifby52yy6j1a5fa1g4j3ihm3jah";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.19.3";
|
||||
version = "1.19.4";
|
||||
};
|
||||
oauth2 = {
|
||||
dependencies = [
|
||||
"anonymous_loader"
|
||||
"auth-sanitizer"
|
||||
"faraday"
|
||||
"jwt"
|
||||
@@ -1168,10 +1182,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0k428i1mlk6g7c054iks86g2h4h2p1y0mg2l3g6w84gd9l8604g6";
|
||||
sha256 = "1b42dax3qwm1zbz86c9zcii7v45vi6c3rp083dyadjn2jcpnlwrg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.23";
|
||||
version = "2.0.25";
|
||||
};
|
||||
parallel = {
|
||||
groups = [
|
||||
@@ -1198,10 +1212,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0m2xqvn1la62hji1mn04y59giikww95p2hs0r4y2rrz3mdxcwyni";
|
||||
sha256 = "0a4q5h2hcihk79dbr20scgkm56l79qp7fsvfvkxlv8nmapvxg9i1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.3.11.1";
|
||||
version = "3.3.12.0";
|
||||
};
|
||||
pg = {
|
||||
groups = [ "default" ];
|
||||
@@ -1223,10 +1237,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1xlxmg86k5kifci1xvlmgw56x88dmqf04zfzn7zcr4qb8ladal99";
|
||||
sha256 = "0w5mha75hs8gdj75g8vl0sxpyp8rzvwq8a4jcmi4ah8cf370zjyz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
};
|
||||
prettyprint = {
|
||||
groups = [
|
||||
@@ -1272,24 +1286,6 @@
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
psych = {
|
||||
dependencies = [
|
||||
"date"
|
||||
"stringio"
|
||||
];
|
||||
groups = [
|
||||
"default"
|
||||
"development"
|
||||
"test"
|
||||
];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1dx5bc3s1mb1i53np4cdkypg7ccygnvagr3hglyndbqilrljvxql";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.4.0";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = [
|
||||
"default"
|
||||
@@ -1399,10 +1395,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "155skqkjrckvzj1qy37lrnafrillc47qhf3l80g3zvw100ba1h4n";
|
||||
sha256 = "0g0iq4i93h24fzccp55aggg9agv1myi57y8ljpvv01chkxkr14i7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
rails-dom-testing = {
|
||||
dependencies = [
|
||||
@@ -1428,10 +1424,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "128y5g3fyi8fds41jasrr4va1jrs7hcamzklk1523k7rxb64bc98";
|
||||
sha256 = "1hi25xz5ijz3kjx4vsiywqbq05mlkas7di8pwc3p6mhyn34sg5z7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
version = "1.7.1";
|
||||
};
|
||||
railties = {
|
||||
dependencies = [
|
||||
@@ -1449,10 +1445,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0np1m8xqb4wbzwpg66yjnqjban0di92lbjzcrgnwwhq2w4z3k8xf";
|
||||
sha256 = "17n2zx2ryjqq8a95pzin7v4k92b49ancy6cn2ddzia80rkgwc9pn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.3.1";
|
||||
version = "7.2.3.2";
|
||||
};
|
||||
rainbow = {
|
||||
groups = [
|
||||
@@ -1549,10 +1545,10 @@
|
||||
};
|
||||
version = "1.19.1";
|
||||
};
|
||||
rdoc = {
|
||||
rbs = {
|
||||
dependencies = [
|
||||
"erb"
|
||||
"psych"
|
||||
"logger"
|
||||
"prism"
|
||||
"tsort"
|
||||
];
|
||||
groups = [
|
||||
@@ -1563,10 +1559,30 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "14iiyb4yi1chdzrynrk74xbhmikml3ixgdayjma3p700singfl46";
|
||||
sha256 = "17ibc9hx9v6f30fphmvy4ph63djja54msr2pcfax672xz7r1iw8v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.0";
|
||||
version = "4.1.1";
|
||||
};
|
||||
rdoc = {
|
||||
dependencies = [
|
||||
"erb"
|
||||
"prism"
|
||||
"rbs"
|
||||
"tsort"
|
||||
];
|
||||
groups = [
|
||||
"default"
|
||||
"development"
|
||||
"test"
|
||||
];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0sf4909q2mr9z0rpygv94z12b0yamg07gz8cba2mi5k3m448rgq3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "8.0.0";
|
||||
};
|
||||
regexp_parser = {
|
||||
groups = [
|
||||
@@ -1645,10 +1661,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1jlzxlq52qbsacxkz4gny988j2pcip73ydp1fg9s1q98ra4h6554";
|
||||
sha256 = "1h8w5kv6l9lrqzd4d3ja05zp3fa3plf36hdkhdaq1g2zy66nlnk6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
};
|
||||
roadie-rails = {
|
||||
dependencies = [
|
||||
@@ -1742,10 +1758,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0dahfpnzz63hyqxa03x8rypnrxzwyvh4i5a8ri34bzpnf3pg64j4";
|
||||
sha256 = "1nw84xk6vc2ls8sxqvyhxs2agh4l0jrws85d4bi3x0501lq8ijmr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.49.1";
|
||||
version = "1.50.0";
|
||||
};
|
||||
rubocop-performance = {
|
||||
dependencies = [
|
||||
@@ -1858,10 +1874,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1lg22fmcalwnzgnanswn5g7vc24wmancnvbyf1ynzb46vyj6bb7c";
|
||||
sha256 = "0mzrk5dk8sx5z9xwfr2sf7rmvzp9n3f4rcghkms43h7ag5pzlv6b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.45.0";
|
||||
version = "4.46.0";
|
||||
};
|
||||
simplecov = {
|
||||
dependencies = [
|
||||
@@ -1916,10 +1932,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0jk50mjq69065ygdhkhbmxp9k2c7knizhp022ysq5xfyikjclqrn";
|
||||
sha256 = "0kfbrd4sgajhnjwhqpk1mb4h10whfx2h5kb0i3j35yd3280cf0kx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.6";
|
||||
version = "2.0.7";
|
||||
};
|
||||
sqlite3 = {
|
||||
dependencies = [ "mini_portile2" ];
|
||||
@@ -1932,6 +1948,16 @@
|
||||
};
|
||||
version = "2.5.0";
|
||||
};
|
||||
ssrf_filter = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1xlpb8y555frl82cx4q2i922mps36mmn0ajk21kpy3bks6wwsgg0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.5.0";
|
||||
};
|
||||
stimulus-rails = {
|
||||
dependencies = [ "railties" ];
|
||||
groups = [ "default" ];
|
||||
@@ -1943,20 +1969,6 @@
|
||||
};
|
||||
version = "1.3.4";
|
||||
};
|
||||
stringio = {
|
||||
groups = [
|
||||
"default"
|
||||
"development"
|
||||
"test"
|
||||
];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1q92y9627yisykyscv0bdsrrgyaajc2qr56dwlzx7ysgigjv4z63";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.0";
|
||||
};
|
||||
svg_optimizer = {
|
||||
dependencies = [ "nokogiri" ];
|
||||
groups = [
|
||||
@@ -2120,10 +2132,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0gfv1qxfn202xffasw2mrrrf2jkdp6hsps0177k9fyc0fwb6k3xp";
|
||||
sha256 = "04snz16b89rwmqjw6v7j8jwfqb2f8jrim631fl30cva1x73hcwvb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.12";
|
||||
version = "1.1.14";
|
||||
};
|
||||
webrick = {
|
||||
groups = [ "default" ];
|
||||
@@ -2157,10 +2169,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "15idgibqpdaj97f734drx8a7k1jcc8wvxlk2nbafac72ihikicjs";
|
||||
sha256 = "0ij19k6034x0c4hw0ywa7wnk5s912r8aq0hhjss10d5z36q5dicp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.1";
|
||||
version = "0.8.2";
|
||||
};
|
||||
websocket-extensions = {
|
||||
groups = [ "default" ];
|
||||
@@ -2205,10 +2217,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0a3zi3v7qjm7lm4yp9z2sm959533k543sc4z0ixqik8wcfdpw27b";
|
||||
sha256 = "0lfwngmsz3xq9k9la9890cqpm4vk3rda4171yzms7f3w7x4i3qjj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.44";
|
||||
version = "0.9.45";
|
||||
};
|
||||
zeitwerk = {
|
||||
groups = [ "default" ];
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
bundlerEnv,
|
||||
ruby_3_4,
|
||||
makeWrapper,
|
||||
@@ -72,6 +73,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-YdswCMf9GKOvxVntZW/Tj9+N+CIKxpWYsxkJUYMZC3o=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "update_rails_7_2_3_2.patch";
|
||||
url = "https://github.com/redmine/redmine/commit/4817525723f7bd900f12ce8c16f05326c25cbadf.patch";
|
||||
hash = "sha256-UYmaDnVNpuO0nZuuDHLecBd9rFkDq2jTCCX4Rm0xsB8=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
rubyEnv
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
fetchpatch,
|
||||
autoreconfHook,
|
||||
perl,
|
||||
nixosTests,
|
||||
@@ -22,10 +22,26 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
patches = [
|
||||
# Fix case-sensitive matching of "chunked" (CVE-2026-31842)
|
||||
(fetchpatch2 {
|
||||
(fetchpatch {
|
||||
name = "fix-chunked-case-sensitivity.patch";
|
||||
url = "https://github.com/tinyproxy/tinyproxy/commit/879bf844abffa0bf5fae6aff0c73179024dd9f98.patch";
|
||||
hash = "sha256-Nav3nXyxdoM/tIvfyPJHEYEjAtrRrJlvkMXzsQCZan4=";
|
||||
hash = "sha256-kU9Vqf2YtnKNJU4eQlau/ijtXkGPS/n+YSeficfu7JM=";
|
||||
})
|
||||
# Remove when updating to the first upstream release containing these fixes.
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-54387.patch";
|
||||
url = "https://github.com/tinyproxy/tinyproxy/commit/623bfc093df009296f0b85d40bc677ef9d5c09bb.patch";
|
||||
hash = "sha256-BSnK3XkBFW43cnD937RKr7FJzQT90BxJkILXz/QPZo8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-54388.patch";
|
||||
url = "https://github.com/tinyproxy/tinyproxy/commit/364cdb67e0ea00a8e4a7037e2693e0711e816adb.patch";
|
||||
hash = "sha256-+Z/Rj/zNldfOPVzWUlFHa37LEfSh/PtXOaN8z++ONJQ=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-55202.patch";
|
||||
url = "https://github.com/tinyproxy/tinyproxy/commit/09312a185ae25cc486b4ff5987638a7917a48bce.patch";
|
||||
hash = "sha256-kwYk5E95KQK42ebLV0nHB706VynDnjHB/5eENKO7Eaw=";
|
||||
})
|
||||
];
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
dbus,
|
||||
cups,
|
||||
libexif,
|
||||
ffmpeg,
|
||||
systemd,
|
||||
libva,
|
||||
libGL,
|
||||
@@ -67,7 +66,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "8.1.4087.48";
|
||||
version = "8.1.4087.58";
|
||||
|
||||
suffix =
|
||||
{
|
||||
@@ -80,8 +79,8 @@ stdenv.mkDerivation rec {
|
||||
url = "https://downloads.vivaldi.com/stable/vivaldi-stable_${version}-1_${suffix}.deb";
|
||||
hash =
|
||||
{
|
||||
aarch64-linux = "sha256-T6mBi4FpHz2iGXeF91giTbuVp4KjFG1DUnPNpKEV06c=";
|
||||
x86_64-linux = "sha256-/Bgh+Y6DHWe7al9vLsWWH1HM5JQGwv91KUxQ9TNkqjs=";
|
||||
aarch64-linux = "sha256-Yvs3HRbsrgTeYXAKrRliLArXtK96jnjjf7x/sdpwvig=";
|
||||
x86_64-linux = "sha256-/2GdNvj9+O6LDfqJdjNNdNWJymNAtnpTnzznW/4jINE=";
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
@@ -131,7 +130,6 @@ stdenv.mkDerivation rec {
|
||||
gtk3
|
||||
gdk-pixbuf
|
||||
libexif
|
||||
ffmpeg
|
||||
systemd
|
||||
libva
|
||||
qt6.qtbase
|
||||
@@ -163,7 +161,7 @@ stdenv.mkDerivation rec {
|
||||
+ lib.optionalString (stdenv.hostPlatform.is64bit) (
|
||||
":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs
|
||||
)
|
||||
+ ":$out/opt/vivaldi/lib";
|
||||
+ ":$out/opt/vivaldi";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
@@ -2,12 +2,18 @@ diff --git a/warpgate-common/src/version.rs b/warpgate-common/src/version.rs
|
||||
index 0e7985a..62c2b67 100644
|
||||
--- a/warpgate-common/src/version.rs
|
||||
+++ b/warpgate-common/src/version.rs
|
||||
@@ -1,8 +1,3 @@
|
||||
@@ -1,14 +1,3 @@
|
||||
-use git_version::git_version;
|
||||
-
|
||||
pub const fn warpgate_version() -> &'static str {
|
||||
- git_version!(
|
||||
- args = ["--tags", "--always", "--dirty=-modified"],
|
||||
- args = [
|
||||
- "--tags",
|
||||
- "--always",
|
||||
- "--dirty=-modified",
|
||||
- "--match",
|
||||
- "v[0-9]*"
|
||||
- ],
|
||||
- fallback = "unknown"
|
||||
- )
|
||||
+ "v@version@"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
replaceVars,
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
buildNpmPackage,
|
||||
openapi-generator-cli,
|
||||
nixosTests,
|
||||
nix-update-script,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (
|
||||
finalAttrs:
|
||||
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage (
|
||||
|
||||
patches = [ ./web-ui-package-json.patch ];
|
||||
|
||||
npmDepsHash = "sha256-JW3nibMIETj5PQcaNRS5UVZgguSvGd9Bw8uGD3kb5uM=";
|
||||
npmDepsHash = "sha256-McQI5EmTfrbdcWnYRsoRHjhZphrZVaV/fN9i9MX8XF0=";
|
||||
|
||||
nativeBuildInputs = [ openapi-generator-cli ];
|
||||
|
||||
@@ -35,16 +35,16 @@ rustPlatform.buildRustPackage (
|
||||
in
|
||||
{
|
||||
pname = "warpgate";
|
||||
version = "0.23.4";
|
||||
version = "0.26.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warp-tech";
|
||||
repo = "warpgate";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/IhnDBQq7Ed5vaGiCHNTcE7Uu9b9VrBN1ipCd2Tai1o=";
|
||||
hash = "sha256-1Dg7bzhBQNe+u90Tw+kcmVaxV5IK0/t505HZr18qP5I=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-PRR+bzvmWcWUVdV1HqDqD08SwvDCvGXMvkIVoFEnaQI=";
|
||||
cargoHash = "sha256-A5rRLrqlAZV/3ID8F+wUO8OP3Ocivg7vYrNDiMqRKik=";
|
||||
|
||||
patches = [
|
||||
(replaceVars ./hardcode-version.patch { inherit (finalAttrs) version; })
|
||||
@@ -67,13 +67,20 @@ rustPlatform.buildRustPackage (
|
||||
# skip check, project included tests require python stuff and docker
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) warpgate;
|
||||
passthru = {
|
||||
inherit warpgate-web;
|
||||
tests = {
|
||||
inherit (nixosTests) warpgate;
|
||||
};
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--subpackage=warpgate-web" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Smart SSH, HTTPS, MySQL and Postgres bastion that requires no additional client-side software";
|
||||
homepage = "https://warpgate.null.page";
|
||||
changelog = "https://github.com/warp-tech/warpgate/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
mainProgram = "warpgate";
|
||||
|
||||
@@ -2,25 +2,30 @@ diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 0e92acb..d187ebc 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -100,21 +100,3 @@ strip = "debuginfo"
|
||||
@@ -1,5 +1,3 @@
|
||||
-cargo-features = ["profile-rustflags"]
|
||||
-
|
||||
[workspace]
|
||||
members = [
|
||||
"warpgate",
|
||||
@@ -160,20 +158,2 @@
|
||||
[profile.coverage]
|
||||
inherits = "dev"
|
||||
# rustflags = ["-Cinstrument-coverage"]
|
||||
-
|
||||
-[profile.dev.package.aws-sdk-ec2]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
-
|
||||
-[profile.release.package.aws-sdk-ec2]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
-
|
||||
-[profile.dev.package.aws-sdk-rds]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
-
|
||||
-[profile.release.package.aws-sdk-rds]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
-
|
||||
-[profile.dev.package.aws-sdk-eks]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
-
|
||||
-[profile.release.package.aws-sdk-eks]
|
||||
-rustflags = ["-Zhint-mostly-unused"]
|
||||
-hint-mostly-unused = true
|
||||
|
||||
@@ -14,20 +14,20 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zigbee2mqtt";
|
||||
version = "2.12.1";
|
||||
version = "2.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Koenkk";
|
||||
repo = "zigbee2mqtt";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-DTL27AcPmAI5XEEHb2S74LYWm4f6kUASsTmQeGftDzM=";
|
||||
hash = "sha256-JSmJXjEF0dQ1sWyXvtLmN9gfAg3PjXWPOlb7xCxz8RI=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-RI6tz8pyqYg/L6wSc0Rt5ZqHT8aktReyVjNgISPqKRQ=";
|
||||
hash = "sha256-5S3VnPxR7P4dwXcFQSjNbTJ5KOWteb4ZBpTy7gtoY4I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -69,16 +69,16 @@ let
|
||||
in
|
||||
{
|
||||
php82 = mkPhp {
|
||||
version = "8.2.32";
|
||||
hash = "sha256-jyHpiMpN1eFN2fuImIRIeENWbkhygAJ8Tvq2yTGIotE=";
|
||||
version = "8.2.33";
|
||||
hash = "sha256-U2Lyp6DnFoznIv6gBIsaHSjg98wmXEF99nDGVnBpUBg=";
|
||||
};
|
||||
php83 = mkPhp {
|
||||
version = "8.3.32";
|
||||
hash = "sha256-93fKJGYZZvlLMfaEDNrUN88wUBU324uHKxt6HCRLjQI=";
|
||||
version = "8.3.33";
|
||||
hash = "sha256-+cn00M12ksbj2jY81MpyqCakmuGPXtQwtvyue8KIHhg=";
|
||||
};
|
||||
php84 = mkPhp {
|
||||
version = "8.4.23";
|
||||
hash = "sha256-wULAY7EM/2jQcnZuP/v7NlSgibk4ZosIMDVkN+6V4Po=";
|
||||
version = "8.4.24";
|
||||
hash = "sha256-KGiQRHWIUQ3xEO3p6c4J8etPmFZjC0f9xA7OcOIDc88=";
|
||||
};
|
||||
php85 = mkPhp {
|
||||
version = "8.5.9";
|
||||
|
||||
@@ -36,6 +36,11 @@ buildPythonPackage rec {
|
||||
url = "https://github.com/eclipse-paho/paho.mqtt.python/pull/931.diff";
|
||||
hash = "sha256-A7rWwpR4PnCi77F1VqsQKHBxHNrdeHgmVM6BGMeUpjs=";
|
||||
})
|
||||
# backports an upstream fix for flaky tests as repoted here:
|
||||
# https://github.com/NixOS/nixpkgs/issues/542586
|
||||
# the fix has already landed in master of paho-mqtt:
|
||||
# https://github.com/eclipse-paho/paho.mqtt.python/pull/934
|
||||
./fix-flaky-tests-backport-934.patch
|
||||
];
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
diff --git a/tests/lib/conftest.py b/tests/lib/conftest.py
|
||||
index 98bbebe..5999085 100644
|
||||
--- a/tests/lib/conftest.py
|
||||
+++ b/tests/lib/conftest.py
|
||||
@@ -2,6 +2,7 @@ import os
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
+import time
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -45,7 +46,29 @@ def alpn_ssl_server_socket(monkeypatch, ssl_certs_path):
|
||||
yield from _yield_server(monkeypatch, create_server_socket_ssl(path=ssl_certs_path, alpn_protocols=["paho-test-protocol"]))
|
||||
|
||||
|
||||
-def stop_process(proc: subprocess.Popen) -> None:
|
||||
+def terminate_process(proc: subprocess.Popen) -> None:
|
||||
+ proc.terminate()
|
||||
+ try:
|
||||
+ # At least on Unix, terminate() isn't an unconditional kill, process
|
||||
+ # could ignore/handle it.
|
||||
+ proc.wait(1)
|
||||
+ except subprocess.TimeoutExpired:
|
||||
+ # So use kill which is unstoppable on Unix
|
||||
+ proc.kill()
|
||||
+ proc.wait(1) # If here we timeout, there is nothing more to do.
|
||||
+
|
||||
+
|
||||
+def stop_process(proc: subprocess.Popen, ready_file) -> None:
|
||||
+ deadline = time.monotonic() + 5
|
||||
+ while proc.poll() is None and not ready_file.exists():
|
||||
+ if time.monotonic() >= deadline:
|
||||
+ terminate_process(proc)
|
||||
+ raise RuntimeError("Client did not become ready to stop")
|
||||
+ time.sleep(0.01)
|
||||
+
|
||||
+ if proc.poll() is not None:
|
||||
+ return
|
||||
+
|
||||
if sys.platform == "win32":
|
||||
proc.send_signal(signal.CTRL_C_EVENT)
|
||||
else:
|
||||
@@ -53,17 +76,19 @@ def stop_process(proc: subprocess.Popen) -> None:
|
||||
try:
|
||||
proc.wait(5)
|
||||
except subprocess.TimeoutExpired:
|
||||
- proc.terminate()
|
||||
+ terminate_process(proc)
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
-def start_client(request: pytest.FixtureRequest, ssl_certs_path):
|
||||
+def start_client(request: pytest.FixtureRequest, ssl_certs_path, tmp_path):
|
||||
def starter(name: str, expected_returncode: int = 0) -> None:
|
||||
client_path = clients_path / name
|
||||
if not client_path.exists():
|
||||
raise FileNotFoundError(client_path)
|
||||
+ ready_file = tmp_path / f"{name}.ready"
|
||||
env = dict(
|
||||
os.environ,
|
||||
+ PAHO_TEST_READY_FILE=str(ready_file),
|
||||
PAHO_SSL_PATH=str(ssl_certs_path),
|
||||
PYTHONPATH=f"{tests_path}{os.pathsep}{os.environ.get('PYTHONPATH', '')}",
|
||||
)
|
||||
@@ -74,7 +99,7 @@ def start_client(request: pytest.FixtureRequest, ssl_certs_path):
|
||||
], env=env)
|
||||
|
||||
def fin():
|
||||
- stop_process(proc)
|
||||
+ stop_process(proc, ready_file)
|
||||
if proc.returncode != expected_returncode:
|
||||
raise RuntimeError(f"Client {name} exited with code {proc.returncode}, expected {expected_returncode}")
|
||||
|
||||
diff --git a/tests/paho_test.py b/tests/paho_test.py
|
||||
index 3df996e..188ceef 100644
|
||||
--- a/tests/paho_test.py
|
||||
+++ b/tests/paho_test.py
|
||||
@@ -402,6 +402,11 @@ def pack_remaining_length(remaining_length):
|
||||
if remaining_length == 0:
|
||||
return s
|
||||
|
||||
+def signal_client_ready():
|
||||
+ ready_file = os.environ.get("PAHO_TEST_READY_FILE")
|
||||
+ if ready_file is not None:
|
||||
+ with open(ready_file, "w"):
|
||||
+ pass
|
||||
|
||||
def loop_until_keyboard_interrupt(mqttc):
|
||||
"""
|
||||
@@ -413,6 +418,7 @@ def loop_until_keyboard_interrupt(mqttc):
|
||||
and stop the client gracefully.
|
||||
"""
|
||||
try:
|
||||
+ signal_client_ready()
|
||||
while True:
|
||||
mqttc.loop()
|
||||
except KeyboardInterrupt:
|
||||
@@ -431,6 +437,7 @@ def wait_for_keyboard_interrupt():
|
||||
"""
|
||||
yield # If we get a KeyboardInterrupt during the block, it's too soon!
|
||||
try:
|
||||
+ signal_client_ready()
|
||||
while True:
|
||||
time.sleep(0.1)
|
||||
except KeyboardInterrupt:
|
||||
diff --git a/tests/test_client.py b/tests/test_client.py
|
||||
index 09e4606..86652ca 100644
|
||||
--- a/tests/test_client.py
|
||||
+++ b/tests/test_client.py
|
||||
@@ -864,19 +864,19 @@ class TestCompatibility:
|
||||
disconnect_packet = paho_test.gen_disconnect()
|
||||
fake_broker.expect_packet("disconnect", disconnect_packet)
|
||||
|
||||
- assert callback_called == [
|
||||
- "on_connect",
|
||||
- "on_subscribe",
|
||||
- "on_publish",
|
||||
- "on_message",
|
||||
- "on_unsubscribe",
|
||||
- "on_disconnect",
|
||||
- ]
|
||||
-
|
||||
finally:
|
||||
mqttc.disconnect()
|
||||
mqttc.loop_stop()
|
||||
|
||||
+ assert callback_called == [
|
||||
+ "on_connect",
|
||||
+ "on_subscribe",
|
||||
+ "on_publish",
|
||||
+ "on_message",
|
||||
+ "on_unsubscribe",
|
||||
+ "on_disconnect",
|
||||
+ ]
|
||||
+
|
||||
packet_in = fake_broker.receive_packet(1)
|
||||
assert not packet_in # Check connection is closed
|
||||
|
||||
@@ -1004,18 +1004,18 @@ class TestCompatibility:
|
||||
disconnect_packet = paho_test.gen_disconnect()
|
||||
fake_broker.expect_packet("disconnect", disconnect_packet)
|
||||
|
||||
- assert callback_called == [
|
||||
- "on_connect",
|
||||
- "on_subscribe",
|
||||
- "on_publish",
|
||||
- "on_message",
|
||||
- "on_unsubscribe",
|
||||
- "on_disconnect",
|
||||
- ]
|
||||
-
|
||||
finally:
|
||||
mqttc.disconnect()
|
||||
mqttc.loop_stop()
|
||||
|
||||
+ assert callback_called == [
|
||||
+ "on_connect",
|
||||
+ "on_subscribe",
|
||||
+ "on_publish",
|
||||
+ "on_message",
|
||||
+ "on_unsubscribe",
|
||||
+ "on_disconnect",
|
||||
+ ]
|
||||
+
|
||||
packet_in = fake_broker.receive_packet(1)
|
||||
assert not packet_in # Check connection is closed
|
||||
diff --git a/tests/testsupport/broker.py b/tests/testsupport/broker.py
|
||||
index e08cf73..a587599 100644
|
||||
--- a/tests/testsupport/broker.py
|
||||
+++ b/tests/testsupport/broker.py
|
||||
@@ -59,8 +59,10 @@ class FakeBroker:
|
||||
if self._conn is None:
|
||||
raise ValueError('Connection is not open')
|
||||
|
||||
- packet_in = self._conn.recv(num_bytes)
|
||||
- return packet_in
|
||||
+ try:
|
||||
+ return self._conn.recv(num_bytes)
|
||||
+ except ConnectionResetError:
|
||||
+ return b""
|
||||
|
||||
def send_packet(self, packet_out):
|
||||
if self._conn is None:
|
||||
@@ -14,6 +14,9 @@
|
||||
xmlto,
|
||||
meson,
|
||||
ninja,
|
||||
gnome,
|
||||
librsvg,
|
||||
makeWrapper,
|
||||
|
||||
acl,
|
||||
appstream,
|
||||
@@ -42,6 +45,11 @@
|
||||
attr,
|
||||
}:
|
||||
|
||||
let
|
||||
gdkPixbufLoadersCache = gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
|
||||
extraLoaders = [ librsvg ];
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "flatpak-builder";
|
||||
version = "1.4.4";
|
||||
@@ -95,6 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libxslt
|
||||
pkg-config
|
||||
xmlto
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@@ -132,6 +141,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
for file in ${installed_testdir}/{test-builder.sh,test-builder-python.sh,test-builder-deprecated.sh}; do
|
||||
patchShebangs $file
|
||||
done
|
||||
wrapProgram $out/bin/flatpak-builder --set GDK_PIXBUF_MODULE_FILE ${gdkPixbufLoadersCache}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -348,7 +348,7 @@ let
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureScript = "${python.interpreter} configure.py";
|
||||
configureScript = "${python.pythonOnBuildForHost.interpreter} configure.py";
|
||||
|
||||
# In order to support unsupported cross configurations, we copy some intermediate executables
|
||||
# from a native build and replace all the build-system tools with a script which simply touches
|
||||
|
||||
@@ -43,5 +43,8 @@ callPackage ../nginx/generic.nix args rec {
|
||||
license = lib.licenses.bsd2;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ izorkin ];
|
||||
knownVulnerabilities = [
|
||||
"angie is insufficiently maintained in nixpkgs. Security updates are frequently delayed. Please consider stepping up as maintainer or switching to an alternative."
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import ./generic.nix {
|
||||
version = "1.10.4";
|
||||
hash = "sha256-+PutvVt7mqnZN+/vr0FwstB8JPuO3kJ4TSmX2Sx8WvA=";
|
||||
cargoHash = "sha256-rfANfheiQnHEcbBODRW0nrPrlPdWQx3S7NmSQ50q010=";
|
||||
version = "1.10.5";
|
||||
hash = "sha256-mNdG5iPtnhwvy9PABaRPV6KQfvD+/ZKH2hC6Hfo0y48=";
|
||||
cargoHash = "sha256-UE/jZaX/mEJUHBqsk2o0rBcocpoFg5XWAmVk4smm5mc=";
|
||||
eolDate = "2026-08-31";
|
||||
}
|
||||
|
||||
5
pkgs/servers/kanidm/1_11.nix
Normal file
5
pkgs/servers/kanidm/1_11.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
import ./generic.nix {
|
||||
version = "1.11.0";
|
||||
hash = "sha256-3dcJxJx8UFebW6WMdVTH6kfsNBed+55JFwHWVhZulOU=";
|
||||
cargoHash = "sha256-qOs/uSs3iaiTGsqydpNbZ6KSLNE+k+5bM7k3ijRzNT0=";
|
||||
}
|
||||
@@ -91,14 +91,23 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
// lib.optionalAttrs (lib.versionAtLeast finalAttrs.version "1.9") {
|
||||
server_migration_path = "/etc/kanidm/migrations.d";
|
||||
};
|
||||
# lower required rust-version in Cargo.toml to allow backporting
|
||||
rustVersion =
|
||||
if lib.versionAtLeast finalAttrs.version "1.11" then
|
||||
{
|
||||
from = "1.96";
|
||||
to = "1.95";
|
||||
}
|
||||
else
|
||||
null;
|
||||
in
|
||||
''
|
||||
cp ${format profile} libs/profiles/${finalAttrs.env.KANIDM_BUILD_PROFILE}.toml
|
||||
substituteInPlace libs/profiles/${finalAttrs.env.KANIDM_BUILD_PROFILE}.toml --replace-fail '@htmx_ui_pkg_path@' "$out/ui/hpkg"
|
||||
''
|
||||
+ lib.optionalString (lib.versionAtLeast finalAttrs.version "1.9") ''
|
||||
+ lib.optionalString (rustVersion != null) ''
|
||||
substituteInPlace Cargo.toml \
|
||||
--replace-fail 'rust-version = "1.93"' 'rust-version = "1.91"'
|
||||
--replace-fail 'rust-version = "${rustVersion.from}"' 'rust-version = "${rustVersion.to}"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,159 @@
|
||||
From 5b97267c49def10f5a4b7bb372963261c0f4b08d Mon Sep 17 00:00:00 2001
|
||||
From: oddlama <oddlama@oddlama.org>
|
||||
Date: Fri, 1 May 2026 15:01:05 +0200
|
||||
Subject: [PATCH 1/2] oauth2 basic secret modify
|
||||
|
||||
---
|
||||
server/core/src/actors/v1_write.rs | 42 +++++++++++++++++++++++++++++
|
||||
server/core/src/https/v1.rs | 6 ++++-
|
||||
server/core/src/https/v1_oauth2.rs | 29 ++++++++++++++++++++
|
||||
server/lib/src/server/migrations.rs | 16 +++++++++++
|
||||
4 files changed, 92 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/server/core/src/actors/v1_write.rs b/server/core/src/actors/v1_write.rs
|
||||
index 977292ae9..bf79c42a1 100644
|
||||
--- a/server/core/src/actors/v1_write.rs
|
||||
+++ b/server/core/src/actors/v1_write.rs
|
||||
@@ -326,6 +326,48 @@ impl QueryServerWriteV1 {
|
||||
.and_then(|_| idms_prox_write.commit().map(|_| ()))
|
||||
}
|
||||
|
||||
+ #[instrument(
|
||||
+ level = "info",
|
||||
+ skip_all,
|
||||
+ fields(uuid = ?eventid)
|
||||
+ )]
|
||||
+ pub async fn handle_oauth2_basic_secret_write(
|
||||
+ &self,
|
||||
+ client_auth_info: ClientAuthInfo,
|
||||
+ filter: Filter<FilterInvalid>,
|
||||
+ new_secret: String,
|
||||
+ eventid: Uuid,
|
||||
+ ) -> Result<(), OperationError> {
|
||||
+ // Given a protoEntry, turn this into a modification set.
|
||||
+ let ct = duration_from_epoch_now();
|
||||
+ let mut idms_prox_write = self.idms.proxy_write(ct).await?;
|
||||
+ let ident = idms_prox_write
|
||||
+ .validate_client_auth_info_to_ident(client_auth_info, ct)
|
||||
+ .map_err(|e| {
|
||||
+ admin_error!(err = ?e, "Invalid identity");
|
||||
+ e
|
||||
+ })?;
|
||||
+
|
||||
+ let modlist = ModifyList::new_purge_and_set(
|
||||
+ Attribute::OAuth2RsBasicSecret,
|
||||
+ Value::SecretValue(new_secret),
|
||||
+ );
|
||||
+
|
||||
+ let mdf =
|
||||
+ ModifyEvent::from_internal_parts(ident, &modlist, &filter, &idms_prox_write.qs_write)
|
||||
+ .map_err(|e| {
|
||||
+ admin_error!(err = ?e, "Failed to begin modify during handle_oauth2_basic_secret_write");
|
||||
+ e
|
||||
+ })?;
|
||||
+
|
||||
+ trace!(?mdf, "Begin modify event");
|
||||
+
|
||||
+ idms_prox_write
|
||||
+ .qs_write
|
||||
+ .modify(&mdf)
|
||||
+ .and_then(|_| idms_prox_write.commit())
|
||||
+ }
|
||||
+
|
||||
#[instrument(
|
||||
level = "info",
|
||||
skip_all,
|
||||
diff --git a/server/core/src/https/v1.rs b/server/core/src/https/v1.rs
|
||||
index ba3ea2827..489ce0002 100644
|
||||
--- a/server/core/src/https/v1.rs
|
||||
+++ b/server/core/src/https/v1.rs
|
||||
@@ -10,7 +10,7 @@ use axum::extract::{Path, State};
|
||||
use axum::http::{HeaderMap, HeaderValue};
|
||||
use axum::middleware::from_fn;
|
||||
use axum::response::{IntoResponse, Response};
|
||||
-use axum::routing::{delete, get, post, put};
|
||||
+use axum::routing::{delete, get, post, put, patch};
|
||||
use axum::{Extension, Json, Router};
|
||||
use axum_extra::extract::cookie::{Cookie, CookieJar, SameSite};
|
||||
use compact_jwt::{Jwk, Jws, JwsSigner};
|
||||
@@ -3156,6 +3156,10 @@ pub(crate) fn route_setup(state: ServerState) -> Router<ServerState> {
|
||||
"/v1/oauth2/{rs_name}/_basic_secret",
|
||||
get(super::v1_oauth2::oauth2_id_get_basic_secret),
|
||||
)
|
||||
+ .route(
|
||||
+ "/v1/oauth2/{rs_name}/_basic_secret",
|
||||
+ patch(super::v1_oauth2::oauth2_id_patch_basic_secret),
|
||||
+ )
|
||||
.route(
|
||||
"/v1/oauth2/{rs_name}/_scopemap/{group}",
|
||||
post(super::v1_oauth2::oauth2_id_scopemap_post)
|
||||
diff --git a/server/core/src/https/v1_oauth2.rs b/server/core/src/https/v1_oauth2.rs
|
||||
index fdc3647b4..ed4709d27 100644
|
||||
--- a/server/core/src/https/v1_oauth2.rs
|
||||
+++ b/server/core/src/https/v1_oauth2.rs
|
||||
@@ -149,6 +149,35 @@ pub(crate) async fn oauth2_id_get_basic_secret(
|
||||
.map_err(WebError::from)
|
||||
}
|
||||
|
||||
+#[utoipa::path(
|
||||
+ patch,
|
||||
+ path = "/v1/oauth2/{rs_name}/_basic_secret",
|
||||
+ request_body=ProtoEntry,
|
||||
+ responses(
|
||||
+ DefaultApiResponse,
|
||||
+ ),
|
||||
+ security(("token_jwt" = [])),
|
||||
+ tag = "v1/oauth2",
|
||||
+ operation_id = "oauth2_id_patch_basic_secret"
|
||||
+)]
|
||||
+/// Overwrite the basic secret for a given OAuth2 Resource Server.
|
||||
+#[instrument(level = "info", skip(state, new_secret))]
|
||||
+pub(crate) async fn oauth2_id_patch_basic_secret(
|
||||
+ State(state): State<ServerState>,
|
||||
+ Extension(kopid): Extension<KOpId>,
|
||||
+ VerifiedClientInformation(client_auth_info): VerifiedClientInformation,
|
||||
+ Path(rs_name): Path<String>,
|
||||
+ Json(new_secret): Json<String>,
|
||||
+) -> Result<Json<()>, WebError> {
|
||||
+ let filter = oauth2_id(&rs_name);
|
||||
+ state
|
||||
+ .qe_w_ref
|
||||
+ .handle_oauth2_basic_secret_write(client_auth_info, filter, new_secret, kopid.eventid)
|
||||
+ .await
|
||||
+ .map(Json::from)
|
||||
+ .map_err(WebError::from)
|
||||
+}
|
||||
+
|
||||
#[utoipa::path(
|
||||
patch,
|
||||
path = "/v1/oauth2/{rs_name}",
|
||||
diff --git a/server/lib/src/server/migrations.rs b/server/lib/src/server/migrations.rs
|
||||
index b3effb95b..5c6a56d24 100644
|
||||
--- a/server/lib/src/server/migrations.rs
|
||||
+++ b/server/lib/src/server/migrations.rs
|
||||
@@ -220,6 +220,22 @@ impl QueryServer {
|
||||
reload_required = true;
|
||||
};
|
||||
|
||||
+ // secret provisioning: allow idm_admin to modify OAuth2RsBasicSecret.
|
||||
+ write_txn.internal_modify_uuid(
|
||||
+ UUID_IDM_ACP_OAUTH2_MANAGE_V1,
|
||||
+ &ModifyList::new_append(
|
||||
+ Attribute::AcpCreateAttr,
|
||||
+ Attribute::OAuth2RsBasicSecret.into(),
|
||||
+ ),
|
||||
+ )?;
|
||||
+ write_txn.internal_modify_uuid(
|
||||
+ UUID_IDM_ACP_OAUTH2_MANAGE_V1,
|
||||
+ &ModifyList::new_append(
|
||||
+ Attribute::AcpModifyPresentAttr,
|
||||
+ Attribute::OAuth2RsBasicSecret.into(),
|
||||
+ ),
|
||||
+ )?;
|
||||
+
|
||||
// Execute whatever operations we have batched up and ready to go. This is needed
|
||||
// to preserve ordering of the operations - if we reloaded after a remigrate then
|
||||
// we would have skipped the patch level fix which needs to have occurred *first*.
|
||||
--
|
||||
2.53.0
|
||||
|
||||
128
pkgs/servers/kanidm/provision-patches/1_11/recover-account.patch
Normal file
128
pkgs/servers/kanidm/provision-patches/1_11/recover-account.patch
Normal file
@@ -0,0 +1,128 @@
|
||||
From e8cd69afcee9d8d37233fa998cf9d1fa124ae90d Mon Sep 17 00:00:00 2001
|
||||
From: oddlama <oddlama@oddlama.org>
|
||||
Date: Fri, 1 May 2026 15:01:14 +0200
|
||||
Subject: [PATCH 2/2] recover account
|
||||
|
||||
---
|
||||
server/core/src/actors/internal.rs | 5 +++--
|
||||
server/core/src/admin.rs | 6 +++---
|
||||
server/daemon/src/main.rs | 24 +++++++++++++++++++++++-
|
||||
server/daemon/src/opt.rs | 7 +++++++
|
||||
4 files changed, 36 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/server/core/src/actors/internal.rs b/server/core/src/actors/internal.rs
|
||||
index deed7350d..f4e9e486a 100644
|
||||
--- a/server/core/src/actors/internal.rs
|
||||
+++ b/server/core/src/actors/internal.rs
|
||||
@@ -189,17 +189,18 @@ impl QueryServerWriteV1 {
|
||||
|
||||
#[instrument(
|
||||
level = "info",
|
||||
- skip(self, eventid),
|
||||
+ skip(self, password, eventid),
|
||||
fields(uuid = ?eventid)
|
||||
)]
|
||||
pub(crate) async fn handle_admin_recover_account(
|
||||
&self,
|
||||
name: String,
|
||||
+ password: Option<String>,
|
||||
eventid: Uuid,
|
||||
) -> Result<String, OperationError> {
|
||||
let ct = duration_from_epoch_now();
|
||||
let mut idms_prox_write = self.idms.proxy_write(ct).await?;
|
||||
- let pw = idms_prox_write.recover_account(name.as_str(), None)?;
|
||||
+ let pw = idms_prox_write.recover_account(name.as_str(), password.as_deref())?;
|
||||
|
||||
idms_prox_write.commit().map(|()| pw)
|
||||
}
|
||||
diff --git a/server/core/src/admin.rs b/server/core/src/admin.rs
|
||||
index 6a13dcaab..6b1070113 100644
|
||||
--- a/server/core/src/admin.rs
|
||||
+++ b/server/core/src/admin.rs
|
||||
@@ -27,7 +27,7 @@ const REPL_CTRL_TIMEOUT: Duration = Duration::from_secs(15);
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub enum AdminTaskRequest {
|
||||
- RecoverAccount { name: String },
|
||||
+ RecoverAccount { name: String, password: Option<String> },
|
||||
DisableAccount { name: String },
|
||||
ShowReplicationCertificate,
|
||||
ShowReplicationCertificateMetadata,
|
||||
@@ -416,8 +416,8 @@ async fn handle_client(
|
||||
|
||||
let resp = async {
|
||||
match req {
|
||||
- AdminTaskRequest::RecoverAccount { name } => {
|
||||
- match server_rw.handle_admin_recover_account(name, eventid).await {
|
||||
+ AdminTaskRequest::RecoverAccount { name, password } => {
|
||||
+ match server_rw.handle_admin_recover_account(name, password, eventid).await {
|
||||
Ok(password) => AdminTaskResponse::RecoverAccount { password },
|
||||
Err(e) => {
|
||||
error!(err = ?e, "error during recover-account");
|
||||
diff --git a/server/daemon/src/main.rs b/server/daemon/src/main.rs
|
||||
index 13653a5cb..ae560f9ce 100644
|
||||
--- a/server/daemon/src/main.rs
|
||||
+++ b/server/daemon/src/main.rs
|
||||
@@ -380,11 +380,32 @@ fn check_file_ownership(opt: &KanidmdParser) -> Result<(), ExitCode> {
|
||||
|
||||
async fn scripting_command(cmd: ScriptingCommand, config: Configuration) -> ExitCode {
|
||||
match cmd {
|
||||
- ScriptingCommand::RecoverAccount { name } => {
|
||||
+ ScriptingCommand::RecoverAccount { name, from_environment } => {
|
||||
+ let password = if from_environment {
|
||||
+ match std::env::var("KANIDM_RECOVER_ACCOUNT_PASSWORD_FILE") {
|
||||
+ Ok(path) => match tokio::fs::read_to_string(&path).await {
|
||||
+ Ok(contents) => Some(contents),
|
||||
+ Err(e) => {
|
||||
+ error!("Failed to read password file '{}': {}", path, e);
|
||||
+ return ExitCode::FAILURE;
|
||||
+ }
|
||||
+ },
|
||||
+ Err(_) => match std::env::var("KANIDM_RECOVER_ACCOUNT_PASSWORD") {
|
||||
+ Ok(val) => Some(val),
|
||||
+ Err(_) => {
|
||||
+ error!("Neither KANIDM_RECOVER_ACCOUNT_PASSWORD_FILE nor KANIDM_RECOVER_ACCOUNT_PASSWORD was set");
|
||||
+ return ExitCode::FAILURE;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ None
|
||||
+ };
|
||||
submit_admin_req_json(
|
||||
config.adminbindpath.as_str(),
|
||||
AdminTaskRequest::RecoverAccount {
|
||||
name: name.to_owned(),
|
||||
+ password,
|
||||
},
|
||||
)
|
||||
.await;
|
||||
@@ -1008,6 +1029,7 @@ async fn kanidm_main(config: Configuration, opt: KanidmdParser) -> ExitCode {
|
||||
config.adminbindpath.as_str(),
|
||||
AdminTaskRequest::RecoverAccount {
|
||||
name: name.to_owned(),
|
||||
+ password: None,
|
||||
},
|
||||
)
|
||||
.await;
|
||||
diff --git a/server/daemon/src/opt.rs b/server/daemon/src/opt.rs
|
||||
index 524ba3134..fa3d70f44 100644
|
||||
--- a/server/daemon/src/opt.rs
|
||||
+++ b/server/daemon/src/opt.rs
|
||||
@@ -128,6 +128,13 @@ enum ScriptingCommand {
|
||||
#[clap(value_parser)]
|
||||
/// The account name to recover credentials for.
|
||||
name: String,
|
||||
+ /// Use a password given via an environment variable.
|
||||
+ /// - `KANIDM_RECOVER_ACCOUNT_PASSWORD_FILE` takes precedence and reads the desired
|
||||
+ /// password from the given file
|
||||
+ /// - `KANIDM_RECOVER_ACCOUNT_PASSWORD` directly takes a
|
||||
+ /// password - beware that this will leave the password in the environment
|
||||
+ #[clap(long = "from-environment")]
|
||||
+ from_environment: bool,
|
||||
},
|
||||
/// Backup
|
||||
Backup {
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@@ -50,11 +50,11 @@ assert !(withJemalloc && withTcmalloc);
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "percona-server";
|
||||
version = "8.4.8-8";
|
||||
version = "8.4.10-10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.percona.com/downloads/Percona-Server-${lib.versions.majorMinor finalAttrs.version}/Percona-Server-${finalAttrs.version}/source/tarball/percona-server-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-jsGaovy3FNBrprC27R7cNofAZmTjqSK21U6wn6TEiBA=";
|
||||
hash = "sha256-IjHeflYc3AMd6hNXDEYegXm14wjyt9hX3gIVtOQzauU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
addons ? [ ],
|
||||
}:
|
||||
|
||||
let
|
||||
extraLdLibraries = lib.flatten (map (x: x.extraLdLibraries or [ ]) addons);
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "fcitx5-with-addons-${fcitx5.version}";
|
||||
|
||||
@@ -37,10 +40,11 @@ symlinkJoin {
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||
--prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" \
|
||||
--suffix XDG_DATA_DIRS : "$out/share" \
|
||||
--suffix PATH : "$out/bin" \
|
||||
--suffix LD_LIBRARY_PATH : "${
|
||||
lib.makeLibraryPath (lib.flatten (map (x: x.extraLdLibraries or [ ]) addons))
|
||||
}"
|
||||
--suffix PATH : "$out/bin" ${
|
||||
lib.optionalString (
|
||||
extraLdLibraries != [ ]
|
||||
) ''--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLdLibraries}"''
|
||||
}
|
||||
|
||||
${lib.optionalString withConfigtool ''
|
||||
# Configtool call libexec/fcitx5-qt5-gui-wrapper for gui addons in FCITX_ADDON_DIRS
|
||||
|
||||
@@ -1596,6 +1596,7 @@ mapAliases {
|
||||
oil = throw "'oil' has been renamed to/replaced by 'oils-for-unix'"; # Converted to throw 2025-10-27
|
||||
olaris-server = throw "'olaris-server' has been removed as it failed to build since 2024"; # Added 2026-01-15
|
||||
olive-editor = throw "'olive-editor' has been removed as it is unmaintained upstream and broken"; # Added 2026-05-22
|
||||
omxplayer = throw "'omxplayer' has been removed because it depends on a severely outdated upstream, a severely outdated FFmpeg, and the new upstream was deprecated since 2020. Please use 'vlc' instead."; # Added 2026-07-24
|
||||
oneDNN = onednn; # Added 2026-02-08
|
||||
oneDNN_2 = onednn_2; # Added 2026-02-08
|
||||
onevpl-intel-gpu = throw "'onevpl-intel-gpu' has been renamed to/replaced by 'vpl-gpu-rt'"; # Converted to throw 2025-10-27
|
||||
|
||||
@@ -7748,17 +7748,23 @@ with pkgs;
|
||||
kanidm_1_10 = callPackage ../servers/kanidm/1_10.nix {
|
||||
kanidmWithSecretProvisioning = kanidmWithSecretProvisioning_1_10;
|
||||
};
|
||||
kanidm_1_11 = callPackage ../servers/kanidm/1_11.nix {
|
||||
kanidmWithSecretProvisioning = kanidmWithSecretProvisioning_1_11;
|
||||
};
|
||||
|
||||
kanidmWithSecretProvisioning_1_8 = kanidm_1_8.override { enableSecretProvisioning = true; };
|
||||
kanidmWithSecretProvisioning_1_9 = kanidm_1_9.override { enableSecretProvisioning = true; };
|
||||
kanidmWithSecretProvisioning_1_10 = kanidm_1_10.override { enableSecretProvisioning = true; };
|
||||
kanidmWithSecretProvisioning_1_11 = kanidm_1_11.override { enableSecretProvisioning = true; };
|
||||
})
|
||||
kanidm_1_8
|
||||
kanidm_1_9
|
||||
kanidm_1_10
|
||||
kanidm_1_11
|
||||
kanidmWithSecretProvisioning_1_8
|
||||
kanidmWithSecretProvisioning_1_9
|
||||
kanidmWithSecretProvisioning_1_10
|
||||
kanidmWithSecretProvisioning_1_11
|
||||
;
|
||||
|
||||
lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix { };
|
||||
|
||||
@@ -8914,8 +8914,21 @@ with self;
|
||||
url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.98.tar.gz";
|
||||
hash = "sha256-rP2KYFGbpM0YHIpnqD1/ApxtmrTosCEtxH5B1iEP2kk=";
|
||||
};
|
||||
# Remove when updating to the first release containing both CVE fixes.
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-60074.patch";
|
||||
url = "https://security.metacpan.org/patches/D/Date-Manip/6.99/CVE-2026-60074-r1.patch";
|
||||
hash = "sha256-leXFfzLyy0yBpBXgT3u3ZyFaIbsbJSFzVkdam9hb3+0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-60075.patch";
|
||||
url = "https://security.metacpan.org/patches/D/Date-Manip/6.99/CVE-2026-60075-r1.patch";
|
||||
hash = "sha256-vMsOrUhrfn8efKRzfJ+jaypOHER8MlUIob5u88n/TAw=";
|
||||
})
|
||||
];
|
||||
# for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
sed -i "s#/bin/date#${pkgs.coreutils}/bin/date#" lib/Date/Manip/TZ.pm
|
||||
'';
|
||||
doCheck = !stdenv.hostPlatform.isi686; # build freezes during tests on i686
|
||||
|
||||
Reference in New Issue
Block a user