Merge release-26.05 into staging-nixos-26.05

This commit is contained in:
nixpkgs-ci[bot]
2026-08-15 00:13:39 +00:00
committed by GitHub
34 changed files with 214 additions and 134 deletions

View File

@@ -18,6 +18,7 @@ let
settingsFileUnsubstituted = cfg: settingsFormat.generate "mautrix-meta-config.yaml" cfg.settings;
metaName = name: "mautrix-meta-${name}";
packageName = network: if network == "instagram" then "mautrix-instagram" else "mautrix-meta";
enabledInstances = lib.filterAttrs (
name: config: config.enable
@@ -200,8 +201,10 @@ in
'';
description = ''
{file}`config.yaml` configuration as a Nix attribute set.
Configuration options should match those described in
[example-config.yaml](https://github.com/mautrix/meta/blob/main/example-config.yaml).
Configuration options should match those described in the example configuration.
Get an example configuration by executing one of those commands
- `mautrix-meta -c example.yaml --generate-example-config`
- `mautrix-instagram -c example.yaml --generate-example-config`
Secret tokens should be specified using {option}`environmentFile`
instead
@@ -471,7 +474,7 @@ in
cp '${settingsFile cfg}' '${settingsFile cfg}.tmp'
echo "Generating registration file"
mautrix-meta \
${lib.getExe' upperCfg.package (packageName cfg.settings.network.mode)} \
--generate-registration \
--config='${settingsFile cfg}.tmp' \
--registration='${cfg.registrationFile}'
@@ -568,7 +571,7 @@ in
EnvironmentFile = cfg.environmentFile;
ExecStart = lib.escapeShellArgs [
(lib.getExe upperCfg.package)
(lib.getExe' upperCfg.package (packageName cfg.settings.network.mode))
"--config=${settingsFile cfg}"
];
};

View File

@@ -214,7 +214,13 @@ in
abi <abi/4.0>,
include <tunables/global>
profile ${cfg.package}/bin/miniflux {
# Flag `attach_disconnected` is necessary
# because the PostgreSQL socket path appears
# as a "disconnected" path: `run/postgresql/.s.PGSQL.XXXX`,
# without the trailing slash, which AppArmor can't resolve.
# The flag prepends a `/`, which isn't recommended,
# but there aren't any alternative currently.
profile ${cfg.package}/bin/miniflux flags=(attach_disconnected) {
include <abstractions/base>
include <abstractions/nameservice>
include <abstractions/ssl_certs>
@@ -222,6 +228,8 @@ in
include "${pkgs.apparmorRulesFromClosure { name = "miniflux"; } cfg.package}"
${cfg.package}/bin/miniflux r,
/run/miniflux/** rw,
/run/postgresql/.s.PGSQL.* rw,
/run/credentials/** r,
include if exists <local/bin.miniflux>
}
'';

View File

@@ -90,12 +90,21 @@ in
as_token = "$AS_TOKEN";
hs_token = "$HS_TOKEN";
database = {
type = "postgres";
uri = "postgres:///mautrix-meta-instagram?host=/var/run/postgresql";
bot = {
username = botUserName;
avatar = "";
};
};
bot.username = botUserName;
database = {
type = "postgres";
uri = "postgres:///mautrix-meta-instagram?host=/var/run/postgresql";
};
encryption = {
allow = false;
default = false;
require = false;
};
bridge.permissions."@${userName}:server" = "user";
@@ -127,13 +136,14 @@ in
import functools
import asyncio
from nio import AsyncClient, RoomMessageNotice, RoomCreateResponse, RoomInviteResponse
from nio import AsyncClient, RoomMessageText, RoomCreateResponse, RoomInviteResponse
async def message_callback(matrix: AsyncClient, msg: str, _r, e):
async def message_callback(matrix: AsyncClient, expected_msg: str, expected_sender: str, _r, e):
print("Received matrix text message: ", e)
assert msg in e.body
exit(0) # Success!
if getattr(e, "sender", "") == expected_sender and expected_msg in getattr(e, "body", ""):
print("Success!")
exit(0) # Success!
async def run(homeserver: str):
@@ -151,9 +161,9 @@ in
assert isinstance(response, RoomInviteResponse)
callback = functools.partial(
message_callback, matrix, "Hello, I'm an Instagram bridge bot."
message_callback, matrix, "Hello, I'm a Instagram bridge bot.", "@${botUserName}:${homeserverDomain}"
)
matrix.add_event_callback(callback, RoomMessageNotice)
matrix.add_event_callback(callback, RoomMessageText)
print("Waiting for matrix message...")
await matrix.sync_forever(timeout=30000)
@@ -171,11 +181,10 @@ in
def extract_token(data):
stdout = data[1]
stdout = stdout.strip()
line = stdout.split('\n')[-1]
return line.split(':')[-1].strip("\" '\n")
return stdout.split(':')[-1].strip("\" '\n")
def get_token_from(token, file):
data = server.execute(f"cat {file} | grep {token}")
data = server.execute(f"grep -E '^\\s*{token}:' {file}")
return extract_token(data)
def get_as_token_from(file):

View File

@@ -4,7 +4,7 @@ let
homeserverUrl = "http://server:8008";
username = "alice";
instagramBotUsername = "instagrambot";
facebookBotUsername = "facebookbot";
metaBotUsername = "metabot";
in
{
name = "mautrix-meta-sqlite";
@@ -60,7 +60,16 @@ in
appservice = {
port = 8009;
bot.username = facebookBotUsername;
bot = {
username = metaBotUsername;
avatar = "";
};
};
encryption = {
allow = false;
default = false;
require = false;
};
bridge.permissions."@${username}:server" = "user";
@@ -79,7 +88,16 @@ in
appservice = {
port = 8010;
bot.username = instagramBotUsername;
bot = {
username = instagramBotUsername;
avatar = "";
};
};
encryption = {
allow = false;
default = false;
require = false;
};
bridge.permissions."@${username}:server" = "user";
@@ -136,16 +154,17 @@ in
import functools
import asyncio
from nio import AsyncClient, RoomMessageNotice, RoomCreateResponse, RoomInviteResponse
from nio import AsyncClient, RoomMessageText, RoomCreateResponse, RoomInviteResponse
async def message_callback(matrix: AsyncClient, msg: str, _r, e):
async def message_callback(matrix: AsyncClient, expected_msg: str, expected_sender: str, _r, e):
print("Received matrix text message: ", e)
assert msg in e.body
exit(0) # Success!
if getattr(e, "sender", "") == expected_sender and expected_msg in getattr(e, "body", ""):
print("Success!")
exit(0) # Success!
async def run(username: str, bot_username: str, homeserver: str):
async def run(username: str, bot_username: str, homeserver: str, expected_msg: str):
matrix = AsyncClient(homeserver, f"@{username}:${homeserverDomain}")
response = await matrix.login("foobar")
@@ -161,16 +180,16 @@ in
assert isinstance(response, RoomInviteResponse)
callback = functools.partial(
message_callback, matrix, "Hello, I'm an Instagram bridge bot."
message_callback, matrix, expected_msg, f"@{bot_username}:${homeserverDomain}"
)
matrix.add_event_callback(callback, RoomMessageNotice)
matrix.add_event_callback(callback, RoomMessageText)
print("Waiting for matrix message...")
await matrix.sync_forever(timeout=30000)
if __name__ == "__main__":
asyncio.run(run(sys.argv[1], sys.argv[2], sys.argv[3]))
asyncio.run(run(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]))
''
)
];
@@ -181,11 +200,10 @@ in
def extract_token(data):
stdout = data[1]
stdout = stdout.strip()
line = stdout.split('\n')[-1]
return line.split(':')[-1].strip("\" '\n")
return stdout.split(':')[-1].strip("\" '\n")
def get_token_from(token, file):
data = server.execute(f"cat {file} | grep {token}")
data = server.execute(f"grep -E '^\\s*{token}:' {file}")
return extract_token(data)
def get_as_token_from(file):
@@ -216,8 +234,8 @@ in
client.succeed("register_user ${username} ${homeserverUrl} >&2")
with subtest("ensure messages can be exchanged"):
client.succeed("do_test ${username} ${facebookBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${metaBotUsername} ${homeserverUrl} \"Hello, I'm a Facebook Messenger bridge bot.\" >&2")
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} \"Hello, I'm a Instagram bridge bot.\" >&2")
with subtest("ensure as_token and hs_token stays same after restart"):
generated_as_token_facebook = get_as_token_from(config_yaml)
@@ -252,7 +270,7 @@ in
assert generated_hs_token_facebook == new_hs_token_facebook, f"hs_token should stay the same after restart inside the registration file (is: {new_hs_token_facebook}, was: {generated_hs_token_facebook})"
with subtest("ensure messages can be exchanged after restart"):
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${facebookBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} \"Hello, I'm a Instagram bridge bot.\" >&2")
client.succeed("do_test ${username} ${metaBotUsername} ${homeserverUrl} \"Hello, I'm a Facebook Messenger bridge bot.\" >&2")
'';
}

View File

@@ -29,6 +29,7 @@ in
default =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
inherit adminCredentialsFile;
@@ -38,6 +39,7 @@ in
withoutSudo =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
inherit adminCredentialsFile;
@@ -48,6 +50,7 @@ in
customized =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
config = {
@@ -82,6 +85,7 @@ in
externalDb =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
createDatabaseLocally = false;
@@ -105,6 +109,7 @@ in
machine.succeed(
f"curl 'http://localhost:{port}/v1/me' -u '{user}' -H Content-Type:application/json | grep '\"is_admin\":true'"
)
machine.fail('journalctl -b --no-pager --grep "^audit: .*apparmor=\\"DENIED\\""')
default.start()
withoutSudo.start()

View File

@@ -21,12 +21,14 @@ let
from selenium.webdriver.common.by import By
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument('--headless')
driver = Firefox(options=options)
service = Service(executable_path="${lib.getExe pkgs.geckodriver}")
driver = Firefox(options=options, service=service)
host = sys.argv[1]
user = sys.argv[2]
@@ -71,6 +73,7 @@ in
environment = {
ADMIN_PASSWORD = adminPassword;
IDM_CREATE_DEMO_USERS = "true";
IDM_LDAPS_ADDR = "127.0.0.1:9235";
IDM_LDAPS_CERT = "${certs.${domain}.cert}";
IDM_LDAPS_KEY = "${certs.${domain}.key}";
OC_INSECURE = "false";

View File

@@ -10,11 +10,11 @@
buildMozillaMach rec {
pname = "firefox-beta";
binaryName = "firefox-beta";
version = "154.0b9";
version = "154.0b10";
applicationName = "Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "a374ecaf21678f0cca685eed7a09763b3f14ac3d4415c27227a4e06f050042df5e31ade4188d3ab7191102b811b1161638336b41d9de82b9527d39049fe0d3d2";
sha512 = "ddbe3ff45217a16df9eecfac52fcb12425accae76457e7054b20bd085f5b22908940a20448f213c3dc62d1276bb1c81f38194432336ba97459b2c17393ebd3cd";
};
meta = {

View File

@@ -10,13 +10,13 @@
buildMozillaMach rec {
pname = "firefox-devedition";
binaryName = "firefox-devedition";
version = "154.0b9";
version = "154.0b10";
applicationName = "Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "83d15ab019fd49076f21574770c27e04d431b5b230d4bb3246a2c9190e26ae3f626bdb8241905bc91b87803586f312e4f6cfd7ce7908e5766fb1aa6a0669cff6";
sha512 = "e2275579e4769a0690010d8fbba528a0e347d86f0dc981d1702b3e627d9c73f3fd7399d3e618c514bf6a3c0059fa3aa5a29f9cdec802e52955a03b1122ca8d39";
};
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but

View File

@@ -14,7 +14,7 @@
librusty_v8 ? callPackage ./librusty_v8.nix {
inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8;
},
livekit-libwebrtc,
lld,
makeBinaryWrapper,
nix-update-script,
pkg-config,
@@ -25,39 +25,40 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codex";
version = "0.133.0";
version = "0.146.0";
src = fetchFromGitHub {
owner = "openai";
repo = "codex";
tag = "rust-v${finalAttrs.version}";
hash = "sha256-RTxhhZjZ/64N60pmbNVzLwcSBomn67pPDpOjkL6RPUw=";
hash = "sha256-/kTIOX/klxm1nq2bJsBqS8f1jZZp2ilaTeULQFPJgDk=";
};
sourceRoot = "${finalAttrs.src.name}/codex-rs";
cargoHash = "sha256-J4wvPn4lSTSsJrTG56vkhJe2F2b+fUvJLEd+qKQ9LUg=";
cargoHash = "sha256-N9jbH/cgAyu2QxneSnpkdaF0MgV3ZtDmN9q6rr9u+hE=";
# Match upstream's release build for the codex binary only.
__structuredAttrs = true;
# Match upstream's release build for the codex binary, plus its
# codex-code-mode-host runtime companion for out-of-process V8 execution.
cargoBuildFlags = [
"--package"
"codex-cli"
"--package"
"codex-code-mode-host"
];
cargoCheckFlags = [
"--package"
"codex-cli"
"--package"
"codex-code-mode-host"
];
postPatch = ''
# webrtc-sys asks rustc to link libwebrtc statically by default,
# but nixpkgs provides libwebrtc as a shared library.
# use LK_CUSTOM_WEBRTC to point to the packaged library and adjust linking
# to use the shared library instead
substituteInPlace $cargoDepsCopy/*/webrtc-sys-*/build.rs \
--replace-fail "cargo:rustc-link-lib=static=webrtc" "cargo:rustc-link-lib=dylib=webrtc"
substituteInPlace Cargo.toml \
--replace-fail 'lto = "fat"' "" \
--replace-fail 'codegen-units = 1' ""
--replace-fail 'lto = "thin"' "" \
--replace-fail 'codegen-units = 4' ""
'';
nativeBuildInputs = [
@@ -83,7 +84,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
# character-conversion warning-as-error disabled.
env = {
LIBCLANG_PATH = "${lib.getLib libclang}/lib";
LK_CUSTOM_WEBRTC = lib.getDev livekit-libwebrtc;
NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isGNU [
"-Wno-error=stringop-overflow"
@@ -93,6 +93,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
]
);
RUSTY_V8_ARCHIVE = librusty_v8;
}
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
# Link with lld on Darwin. nixpkgs' classic open-source ld64 fails to insert
# ARM64 branch thunks for this binary, producing `b(l) ARM64 branch out of range`.
NIX_CFLAGS_LINK = "-fuse-ld=${lib.getExe' lld "ld64.lld"}";
};
# NOTE: part of the test suite requires access to networking, local shells,

View File

@@ -30,7 +30,7 @@ let
in
stdenv.mkDerivation {
pname = "domination";
version = "1.3.4";
version = "1.3.5";
# The .zip releases do not contain the build.xml file
src = fetchsvn {
@@ -40,8 +40,8 @@ stdenv.mkDerivation {
# https://sourceforge.net/p/domination/code/HEAD/tree/Domination/ChangeLog.txt
# Alternatively, look for revs like "changelog update",
# "new version x.y.z info on website", or "website update for x.y.z".
rev = "2664";
hash = "sha256-bkaHpqJSc3UvwNT7LwuPUT8xN0g6QypfLSHlLmm8nX8=";
rev = "2778";
hash = "sha256-OsCpSL/0QgaaUAzoyPPrAlJixRlqsLJu2D8FkEuo0Ak=";
};
nativeBuildInputs = [

View File

@@ -50,8 +50,8 @@ stdenvNoCC.mkDerivation {
outputHash =
{
x86_64-linux = "sha256-dLATw5Mb9grQnI/JTdlRdNP2JETELeqY8aXqb5dCXOA=";
aarch64-linux = "sha256-Zrk0aTHw7nrN6lKFa/ap7Hz1OJwnY4jtCLw2KWWqyJQ=";
x86_64-linux = "sha256-TKFL47b+Xh8ChlSyXdhRY+zmPAnkHJss2vNblBvOSmw=";
aarch64-linux = "sha256-S5JNtQvDLFrOT+XCSMqFltrTlcRAzWcbXbRZk4CEkrA=";
}
.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View File

@@ -6,7 +6,7 @@
makeWrapper,
makeDesktopItem,
copyDesktopItems,
electron_41,
electron_43,
python3Packages,
pipewire,
libpulseaudio,
@@ -18,17 +18,17 @@
withMiddleClickScroll ? false,
}:
let
electron = electron_41;
electron = electron_43;
in
stdenv.mkDerivation (finalAttrs: {
pname = "equibop";
version = "3.2.1";
version = "3.2.2";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equibop";
tag = "v${finalAttrs.version}";
hash = "sha256-WqfxrVAJvD6Y6ZjkhbvibL6Bps7PL2lx3JBY94Yd6kk=";
hash = "sha256-foKgtyN1jr4+PHwJHTVXrYzWNVYtR1Sq8rLG4VEnujs=";
};
postPatch = ''
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
--replace-fail -baseline ""
'';
node-modules = callPackage ./node-modules.nix { };
node-modules = callPackage ./node-modules.nix { equibop = finalAttrs.finalPackage; }; # helps when the parent package is overidden
nativeBuildInputs = [
bun

View File

@@ -112,5 +112,9 @@ python3Packages.buildPythonApplication (finalAttrs: {
tebriel
traxys
];
knownVulnerabilities = [
# https://github.com/SamR1/FitTrackee/security/advisories/GHSA-rc38-72q6-pc7w
"GHSA-rc38-72q6-pc7w: JWT logout bypass in FitTrackee"
];
};
})

View File

@@ -135,6 +135,26 @@ stdenv.mkDerivation rec {
patches = [
./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
# CVE-2026-15268
(fetchpatch {
url = "https://gitlab.com/libvirt/libvirt/-/commit/f74495c7a157618e3df6fa61079678084c4cc685.patch";
hash = "sha256-ZOC7ApQiowMyLC0iB51rwDe4dIDwRmpFHpdAdHnEjHY=";
})
# CVE-2026-18917
(fetchpatch {
url = "https://gitlab.com/libvirt/libvirt/-/commit/5a62cbf2907d4590283597b46da9c0f41e7b4d4f.patch";
hash = "sha256-EjNp97J2++Wn7MLFaC99HPsJYUj4Nid8Fuk8fGq3Cis=";
})
# CVE-2026-63622
(fetchpatch {
url = "https://gitlab.com/libvirt/libvirt/-/commit/801160fd414ca2cc402bc01ead09b7ed4c3b8f5b.patch";
hash = "sha256-balBw0Rs2fSrnOeeiaqKRDnloXIWA1eITuciaZQ7zsk=";
})
# CVE-2026-63623
(fetchpatch {
url = "https://gitlab.com/libvirt/libvirt/-/commit/69335a484768d550854da1133d5490074695e825.patch";
hash = "sha256-3UCMOVOq//bKkKfRsn9NVq1j9rN3CZlBOsEeYQufleU=";
})
# CVE-2026-61478
(fetchpatch {
url = "https://gitlab.com/libvirt/libvirt/-/commit/68da70aae766c6271b8d3b466374d3cc7d1a8afb.patch";

View File

@@ -6,14 +6,14 @@
patches ? [ ],
}:
let
version = "4.6.5";
version = "4.6.6";
in
applyPatches {
src = fetchFromGitHub {
owner = "mastodon";
repo = "mastodon";
rev = "v${version}";
hash = "sha256-ZTqVCsiYEvEHACgtIfj1V7jlFXuFoxrfERvr/7bAgac=";
hash = "sha256-V/mhT11IJ60kT7Q1dP17XOEUIVGNuJoitseDBX1sbjI=";
passthru = {
inherit version;
yarnHash = "sha256-VlOG91ZuO+1UXTbtwIrYUbqHjmSfPSfLhrf4TxCJqJ0=";

View File

@@ -18,7 +18,10 @@ buildGoModule rec {
version = "26.05";
tag = "v0.2605.0";
subPackages = [ "cmd/mautrix-meta" ];
subPackages = [
"cmd/mautrix-meta"
"cmd/mautrix-instagram"
];
src = fetchFromGitHub {
owner = "mautrix";

View File

@@ -2,9 +2,10 @@
stdenvNoCC,
lib,
opencloud,
pnpm_9,
pnpm_11,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
nodejs,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -16,35 +17,30 @@ stdenvNoCC.mkDerivation (finalAttrs: {
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_9;
pnpm = pnpm_11;
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.pnpmRoot}";
fetcherVersion = 3;
hash = "sha256-E0bP15T2Ekj992Y1xFXL/4rko34AY+I5Lbn+blJhXYg=";
fetcherVersion = 4;
hash = "sha256-pQ01vBvC29B5oxDWtt7anI5QtFbvQFFBVamQtA2WTNo=";
};
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_9
pnpmBuildHook
pnpm_11
];
buildPhase = ''
runHook preBuild
cd $pnpmRoot
pnpm build
mkdir -p assets/identifier/static
cp -v src/images/favicon.svg assets/identifier/static/favicon.svg
cp -v src/images/icon-lilac.svg assets/identifier/static/icon-lilac.svg
runHook postBuild
postBuild = ''
mkdir -p services/idp/assets/identifier/static
cp -v services/idp/src/images/favicon.svg services/idp/assets/identifier/static/favicon.svg
cp -v services/idp/src/images/icon-lilac.svg services/idp/assets/identifier/static/icon-lilac.svg
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -r assets $out
cp -r services/idp/assets $out
runHook postInstall
'';

View File

@@ -28,13 +28,13 @@ let
in
buildGoModule (finalAttrs: {
pname = "opencloud";
version = "7.0.0";
version = "7.2.0";
src = fetchFromGitHub {
owner = "opencloud-eu";
repo = "opencloud";
tag = "v${finalAttrs.version}";
hash = "sha256-5bGsJcmrF01E0zXKxwRQpTZl/OinfW7da3nf3/T74hg=";
hash = "sha256-GAoDEXk7sBN7N0V/msi/fcJS72RqqlF6Qb5B9hArmvk=";
};
postPatch = ''

View File

@@ -3,33 +3,33 @@
stdenvNoCC,
fetchFromGitHub,
nodejs,
pnpm_10,
pnpm_11,
fetchPnpmDeps,
pnpmConfigHook,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "opencloud-web";
version = "7.0.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "opencloud-eu";
repo = "web";
tag = "v${finalAttrs.version}";
hash = "sha256-kkNdP3IpWnfOv5GEhQqKJwnnRXCHyxMcI2RA6vK7NrA=";
hash = "sha256-BiOue8+zQ3+6RLiDbLMnxKEen2aav3bljji4d+0Hr5c=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-Md6KcP5BV9Pskqg+o9D3RD0WconqyiizAvXNMZ9htfw=";
pnpm = pnpm_11;
fetcherVersion = 4;
hash = "sha256-gCsgnOEi9rvtwTZy8J/i63D92Gl2V9ZihxCJ+Y5hLUE=";
};
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_10
pnpm_11
];
buildPhase = ''

View File

@@ -141,6 +141,7 @@ python.pkgs.buildPythonPackage (finalAttrs: {
"huey"
"nh3"
"psycopg2-binary"
"pypdf"
"pypdfium2"
];

View File

@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
__structuredAttrs = true;
pname = "prometheus-speedtest-exporter";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "podocarp";
repo = "speedtest_exporter";
tag = "v${finalAttrs.version}";
hash = "sha256-n9eunZRssS13mTOeFeZ/PpfSj430DKf3ZRS10hY4Ps8=";
hash = "sha256-xXTyxwECGlYv9bBco09zvlOpF4GcHeT3yZMNUQTPPoo=";
};
vendorHash = "sha256-HBg44D0CUc4HYCBwGrswnrqG5o5ltA6UT8L0oWetlIc=";

View File

@@ -26,13 +26,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "radicle-desktop";
version = "0.14.0";
version = "0.15.0";
src = fetchFromRadicle {
seed = "seed.radicle.dev";
repo = "z4D5UCArafTzTQpDZNQRuqswh3ury";
tag = "releases/${finalAttrs.version}";
hash = "sha256-yT51MCHt00JEUbuC6rcXN3L4Vul3aBa8YCgpGVzM5rQ=";
hash = "sha256-L5QfFvswU/iPgObhh09/SAlMRy5w+Qs1kXDGpY31wjA=";
leaveDotGit = true;
postFetch = ''
git -C $out rev-parse --short HEAD > $out/.git_head
@@ -53,10 +53,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
hash = "sha256-HsPz3S2TL7TJzDU7c7IWgT7kO+FkloMsAWc8g5ZKofw=";
hash = "sha256-4gRc/nNrOEi7PU+5bSsR22z3f55cINebSrlFQ1NGTfk=";
};
cargoHash = "sha256-BTSmfMrxNwAdoPuYn4hbx9C9myE1wJh+1FXPG78IgeU=";
cargoHash = "sha256-DZM1YX3lzCvKGtrSxxeJkinR91HFWe5SpdqQ+oP1Hgc=";
twemojiAssets = fetchFromGitHub {
owner = "twitter";

View File

@@ -11,16 +11,15 @@
xwayland,
withSystemd ? true,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "xwayland-satellite";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "Supreeeme";
repo = "xwayland-satellite";
tag = "v${finalAttrs.version}";
hash = "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=";
hash = "sha256-Mb7jpqnrcYCfNSItIkkHpuR3YxWFxPuIBfcwNKlRBkk=";
};
postPatch = ''
@@ -28,7 +27,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '/usr/local/bin' "$out/bin"
'';
cargoHash = "sha256-16L6gsvze+m7XCJlOA1lsPNELE3D364ef2FTdkh0rVY=";
cargoHash = "sha256-Saa3SRsQuY6u6pfBGezaEExOt/ReblnrG7pAXjA6Dk8=";
nativeBuildInputs = [
installShellFiles

View File

@@ -25,11 +25,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "go";
version = "1.25.12";
version = "1.25.13";
src = fetchurl {
url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
hash = "sha256-+Q3O5L0CP6N2N06gpabr5VNTeznEJv/YxolGm0VRmTI=";
hash = "sha256-HX4vcLHum5PH3478ynH1rcxqWXl6QzbC0QFxvUwXRhQ=";
};
strictDeps = true;

View File

@@ -25,11 +25,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "go";
version = "1.27rc2";
version = "1.27rc3";
src = fetchurl {
url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
hash = "sha256-hg/XowsoXuFqKuDsXURBy0fEiHKgowy2DK40iUf0iiU=";
hash = "sha256-6eIO3RcgCV+RCWluljpmBp0/bUjQDrk4jIiM4GYx31w=";
};
strictDeps = true;

View File

@@ -47,10 +47,10 @@
sourceVersion = {
major = "3";
minor = "11";
patch = "15";
patch = "16";
suffix = "";
};
hash = "sha256-JyF53dmi5BoPyOQuM9+9ygs3EapavzctPy1RVD0JtiU=";
hash = "sha256-kbzev93iOaADrpNzin/OD5Iw/uXEvCuG9uboxvmKq+g=";
inherit passthruFun;
};
@@ -59,10 +59,10 @@
sourceVersion = {
major = "3";
minor = "12";
patch = "13";
patch = "14";
suffix = "";
};
hash = "sha256-wIvGWoGXHB3VeDGCgmUDNpRmx+ZzdNFkZRmt8FIHtoQ=";
hash = "sha256-XIRir1eQuvQ6MhoVWdvg2wbRvkMA+4X7U8QAYGaOVIo=";
inherit passthruFun;
};

View File

@@ -12,9 +12,11 @@
myst-parser,
# optionals
arabic-reshaper,
cryptography,
fonttools,
pillow,
python-bidi,
# tests
fpdf2,
@@ -24,7 +26,7 @@
buildPythonPackage rec {
pname = "pypdf";
version = "6.14.2";
version = "6.15.0";
pyproject = true;
src = fetchFromGitHub {
@@ -33,7 +35,7 @@ buildPythonPackage rec {
tag = version;
# fetch sample files used in tests
fetchSubmodules = true;
hash = "sha256-h7JuQTTUZ5tWoAhixjp+grDVA3JQ8PbHcMBzIyCMOJU=";
hash = "sha256-e39xclCnXlX4oagx4TnFCf99VKdJZeM2Kc3set1KXuo=";
};
outputs = [
@@ -55,10 +57,14 @@ buildPythonPackage rec {
];
optional-dependencies = rec {
full = crypto ++ fonts ++ image;
full = crypto ++ fonts ++ image ++ rtl_text;
crypto = [ cryptography ];
fonts = [ fonttools ];
image = [ pillow ];
rtl_text = [
arabic-reshaper
python-bidi
];
};
pythonImportsCheck = [ "pypdf" ];

View File

@@ -19,14 +19,14 @@
buildPythonPackage rec {
pname = "whenever";
version = "0.10.4";
version = "0.10.5";
pyproject = true;
src = fetchFromGitHub {
owner = "ariebovenberg";
repo = "whenever";
tag = version;
hash = "sha256-yDI5TAnEyVPNYXqsCEitFrQnk+Ed0CyRKcCykxFqeWU=";
hash = "sha256-axysocowBamYcNZ9IS58SefSltWC8mdO1Ovf65vMxTk=";
};
cargoDeps = rustPlatform.fetchCargoVendor {

View File

@@ -1,5 +1,5 @@
import ./generic.nix {
version = "1.11.0";
hash = "sha256-3dcJxJx8UFebW6WMdVTH6kfsNBed+55JFwHWVhZulOU=";
cargoHash = "sha256-qOs/uSs3iaiTGsqydpNbZ6KSLNE+k+5bM7k3ijRzNT0=";
version = "1.11.1";
hash = "sha256-IQmXHl+Gx7QLuLUCmIh919o+ziCy2q2NvVabwQwhML0=";
cargoHash = "sha256-DSYynKWb9jjFp3u3c6z9dFXts8ydgEho7xoFlL6cPXs=";
}

View File

@@ -1,7 +1,7 @@
import ./generic.nix {
version = "14.23";
rev = "refs/tags/REL_14_23";
hash = "sha256-fjoboaUhrHFDqusmIXzSS5ZnIpSRHO9+qcqvkchl2dM=";
version = "14.24";
rev = "refs/tags/REL_14_24";
hash = "sha256-yfZJFXk10vJ4QEhbUXe1gtz8rBS2YOEcD3unEjSHzjk=";
muslPatches = {
disable-test-collate-icu-utf8 = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";

View File

@@ -1,7 +1,7 @@
import ./generic.nix {
version = "15.18";
rev = "refs/tags/REL_15_18";
hash = "sha256-tw1zzgLXx7Jr4bi8rMKRmTJzOSQFGvrP2nHr9FcVrjs=";
version = "15.19";
rev = "refs/tags/REL_15_19";
hash = "sha256-y5QarcJSMifu+ctjsQOdG/Njo9KvFvIgncBJBjCVG3Y=";
muslPatches = {
dont-use-locale-a = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql15/dont-use-locale-a-on-musl.patch?id=f424e934e6d076c4ae065ce45e734aa283eecb9c";

View File

@@ -1,7 +1,7 @@
import ./generic.nix {
version = "16.14";
rev = "refs/tags/REL_16_14";
hash = "sha256-g2+OdB2dGIKBSFJ24Z3Yy7oRAFywNMSVDdWfnsaeJJQ=";
version = "16.15";
rev = "refs/tags/REL_16_15";
hash = "sha256-HHNROwOzfTatZif+hog/DZnDafV+mZ2Z9Jrq87XN0cY=";
muslPatches = {
dont-use-locale-a = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/dont-use-locale-a-on-musl.patch?id=08a24be262339fd093e641860680944c3590238e";

View File

@@ -1,7 +1,7 @@
import ./generic.nix {
version = "17.10";
rev = "refs/tags/REL_17_10";
hash = "sha256-3ZAqlT3R8ywhNH13oqz2VUbSwpOJ2JaICbxZ29awaMw=";
version = "17.11";
rev = "refs/tags/REL_17_11";
hash = "sha256-pkVBg4Rxku3rEnNhPvVoAoab55vqrDqZfW1z+umealE=";
muslPatches = {
dont-use-locale-a = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql17/dont-use-locale-a-on-musl.patch?id=d69ead2c87230118ae7f72cef7d761e761e1f37e";

View File

@@ -1,7 +1,7 @@
import ./generic.nix {
version = "18.4";
rev = "refs/tags/REL_18_4";
hash = "sha256-Ac/Dqcj8vjcW3my5vsnKaMiQqTq/HPtUzckJ3SMyrfA=";
version = "18.6";
rev = "refs/tags/REL_18_6";
hash = "sha256-ySffxlG7jlNyzx++BmIN+WuaQ9TMAJt/qER9wIjd6B8=";
muslPatches = {
dont-use-locale-a = {
url = "https://git.alpinelinux.org/aports/plain/main/postgresql17/dont-use-locale-a-on-musl.patch?id=d69ead2c87230118ae7f72cef7d761e761e1f37e";