0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 14:10:33 +03:00

Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot] 2025-07-01 12:08:22 +00:00 committed by GitHub
commit 536476f3aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 530 additions and 160 deletions

View file

@ -15213,6 +15213,15 @@
githubId = 59240843;
name = "Mahyar Mirrashed";
};
maikotan = {
email = "maiko.tan.coding@gmail.com";
github = "MaikoTan";
githubId = 19927330;
name = "Maiko Tan";
keys = [
{ fingerprint = "9C68 989F ECF9 8993 3225 96DD 970A 6794 990C 52AE"; }
];
};
majesticmullet = {
email = "hoccthomas@gmail.com.au";
github = "MajesticMullet";
@ -19510,6 +19519,11 @@
github = "petee";
githubId = 89916;
};
Peter3579 = {
github = "Peter3579";
githubId = 170885528;
name = "Peter3579";
};
peterhoeg = {
email = "peter@hoeg.com";
matrix = "@peter:hoeg.com";

View file

@ -88,6 +88,8 @@ in
script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}";
serviceConfig.Type = "oneshot";
startAt = lib.optionals cfg.automatic cfg.dates;
# do not start and delay when switching
restartIfChanged = false;
};
systemd.timers.nix-gc = lib.mkIf cfg.automatic {

View file

@ -69,6 +69,8 @@ in
unitConfig.ConditionPathIsReadWrite = "/nix/var/nix/daemon-socket";
serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
startAt = lib.optionals cfg.automatic cfg.dates;
# do not start and delay when switching
restartIfChanged = false;
};
timers.nix-optimise = lib.mkIf cfg.automatic {

View file

@ -15,16 +15,18 @@ let
mkEnableOption
optionalString
escapeShellArg
concatStringsSep
concatMapStringsSep
;
in
{
port = 9586;
imports = [
(mkRenamedOptionModule [ "addr" ] [ "listenAddress" ])
({
{
options.warnings = options.warnings;
options.assertions = options.assertions;
})
}
];
extraOpts = {
verbose = mkEnableOption "verbose logging mode for prometheus-wireguard-exporter";
@ -44,6 +46,15 @@ in
'';
};
interfaces = mkOption {
type = types.listOf types.str;
default = [ ];
description = ''
Specifies the interface(s) passed to the wg show <interface> dump parameter.
By default all interfaces are used.
'';
};
singleSubnetPerField = mkOption {
type = types.bool;
default = false;
@ -70,6 +81,14 @@ in
Adds the `wireguard_latest_handshake_delay_seconds` metric that automatically calculates the seconds passed since the last handshake.
'';
};
prependSudo = mkOption {
type = types.bool;
default = false;
description = ''
Whether or no to prepend sudo to wg commands.
'';
};
};
serviceOpts = {
path = [ pkgs.wireguard-tools ];
@ -85,7 +104,10 @@ in
${optionalString cfg.singleSubnetPerField "-s true"} \
${optionalString cfg.withRemoteIp "-r true"} \
${optionalString cfg.latestHandshakeDelay "-d true"} \
${optionalString (cfg.wireguardConfig != null) "-n ${escapeShellArg cfg.wireguardConfig}"}
${optionalString cfg.prependSudo "-a true"} \
${optionalString (cfg.wireguardConfig != null) "-n ${escapeShellArg cfg.wireguardConfig}"} \
${concatMapStringsSep " " (i: "-i ${i}") cfg.interfaces} \
${concatStringsSep " " cfg.extraFlags}
'';
RestrictAddressFamilies = [
# Need AF_NETLINK to collect data

View file

@ -25,17 +25,17 @@ let
chmod +x $out/startwm.sh
substituteInPlace $out/xrdp.ini \
--replace "#rsakeys_ini=" "rsakeys_ini=/run/xrdp/rsakeys.ini" \
--replace "certificate=" "certificate=${cfg.sslCert}" \
--replace "key_file=" "key_file=${cfg.sslKey}" \
--replace LogFile=xrdp.log LogFile=/dev/null \
--replace EnableSyslog=true EnableSyslog=false
--replace-fail "#rsakeys_ini=" "rsakeys_ini=/run/xrdp/rsakeys.ini" \
--replace-fail "certificate=" "certificate=${cfg.sslCert}" \
--replace-fail "key_file=" "key_file=${cfg.sslKey}" \
--replace-fail LogFile=xrdp.log LogFile=/dev/null \
--replace-fail EnableSyslog=true EnableSyslog=false
substituteInPlace $out/sesman.ini \
--replace LogFile=xrdp-sesman.log LogFile=/dev/null \
--replace EnableSyslog=1 EnableSyslog=0 \
--replace startwm.sh $out/startwm.sh \
--replace reconnectwm.sh $out/reconnectwm.sh \
--replace-fail LogFile=xrdp-sesman.log LogFile=/dev/null \
--replace-fail EnableSyslog=true EnableSyslog=false \
--replace-fail startwm.sh $out/startwm.sh \
--replace-fail reconnectwm.sh $out/reconnectwm.sh \
# Ensure that clipboard works for non-ASCII characters
sed -i -e '/.*SessionVariables.*/ a\
@ -127,8 +127,8 @@ in
'';
example = ''
substituteInPlace $out/sesman.ini \
--replace LogLevel=INFO LogLevel=DEBUG \
--replace LogFile=/dev/null LogFile=/var/log/xrdp.log
--replace-fail LogLevel=INFO LogLevel=DEBUG \
--replace-fail LogFile=/dev/null LogFile=/var/log/xrdp.log
'';
};
};

View file

@ -8,13 +8,13 @@
}:
mkLibretroCore {
core = "mednafen-psx" + lib.optionalString withHw "-hw";
version = "0-unstable-2025-06-20";
version = "0-unstable-2025-06-27";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-psx-libretro";
rev = "22ba62e8a2e0fb7a8d05b4eec039e58de46924de";
hash = "sha256-Z+TMWxPWedZuqpGIfyN7hYC/S5RG1ENnWD2nUDDYDFU=";
rev = "27aa688076606a272d024fcad67b330fe434ff0d";
hash = "sha256-omr5k1NOB3RZVeQJj2hbK53hiQbJwu7utEnxqfFPqbU=";
};
extraBuildInputs = lib.optionals withHw [

View file

@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
withLibei ? true,
withLibei ? !stdenv.hostPlatform.isDarwin,
avahi,
curl,
@ -19,6 +19,7 @@
libei,
libportal,
openssl,
pkgsStatic,
pkg-config,
qtbase,
qttools,
@ -38,6 +39,8 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
patches = [ ./macos-no-dmg.patch ];
nativeBuildInputs = [
pkg-config
cmake
@ -45,6 +48,7 @@ stdenv.mkDerivation rec {
wrapQtAppsHook
qttools
];
buildInputs =
[
curl
@ -62,6 +66,9 @@ stdenv.mkDerivation rec {
++ lib.optionals withLibei [
libei
libportal
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
pkgsStatic.openssl
];
cmakeFlags = [
@ -94,6 +101,6 @@ stdenv.mkDerivation rec {
twey
shymega
];
platforms = lib.platforms.linux;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}

View file

@ -0,0 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab4e56f2..d01d946d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -289,17 +289,6 @@ endmacro (configure_files)
# Make a bundle for mac os
if (APPLE)
set (CMAKE_INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks")
- set(INPUTLEAP_BUNDLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/bundle)
- set(INPUTLEAP_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
- set(INPUTLEAP_BUNDLE_APP_DIR ${INPUTLEAP_BUNDLE_DIR}/InputLeap.app)
- set(INPUTLEAP_BUNDLE_BINARY_DIR ${INPUTLEAP_BUNDLE_APP_DIR}/Contents/MacOS)
-
- configure_files(${INPUTLEAP_BUNDLE_SOURCE_DIR} ${INPUTLEAP_BUNDLE_DIR})
-
- add_custom_target(InputLeap_MacOS ALL
- bash build_dist.sh
- DEPENDS input-leap input-leaps input-leapc
- WORKING_DIRECTORY ${INPUTLEAP_BUNDLE_DIR})
elseif (UNIX AND NOT APPLE)
install(FILES doc/input-leapc.1 doc/input-leaps.1 DESTINATION share/man/man1)

View file

@ -27,11 +27,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bind";
version = "9.20.9";
version = "9.20.10";
src = fetchurl {
url = "https://downloads.isc.org/isc/bind9/${finalAttrs.version}/bind-${finalAttrs.version}.tar.xz";
hash = "sha256-PSaQDtnJqFkHP/6puX4pLBJI2tGCebF7BfyyPDCR+G0=";
hash = "sha256-D7O6LDN7tIjKaPXfKWxDXNJVBY+2PQgi6R2wI1yQVxY=";
};
outputs = [

View file

@ -17,13 +17,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cbmc";
version = "6.6.0";
version = "6.7.0";
src = fetchFromGitHub {
owner = "diffblue";
repo = "cbmc";
tag = "cbmc-${finalAttrs.version}";
hash = "sha256-ot0vVBgiSVru/RE7KeyTsXzDfs0CSa5vaFsON+PCZZo=";
hash = "sha256-a2Lc4Vou+tND/d8bRw9MpjWrPgdE9gwisfT+xbHUMjY=";
};
srcglucose = fetchFromGitHub {

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "closure-compiler";
version = "20250407";
version = "20250528";
src = fetchurl {
url = "mirror://maven/com/google/javascript/closure-compiler/v${version}/closure-compiler-v${version}.jar";
sha256 = "sha256-T9qZBdjeV+pa5d+wRGSAwmP1Kn7laZTuFuDOxqadhVQ=";
sha256 = "sha256-P7NzTMgMdvG4LMKcmJx+x2LsPvmjtrr+RC6Oy/CVvD0=";
};
dontUnpack = true;

View file

@ -11,14 +11,14 @@
}:
buildGoModule rec {
pname = "ctags-lsp";
version = "0.6.1";
version = "0.7.0";
vendorHash = null;
src = fetchFromGitHub {
owner = "netmute";
repo = "ctags-lsp";
tag = "v${version}";
hash = "sha256-wSccfhVp1PDn/gj46r8BNskEuBuRIx1wydYAW1PV4cg=";
hash = "sha256-yueT8Q/mJTvQ3fqE4237E93W4ToEi0IzSus/xoto6vA=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -0,0 +1,61 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
bash,
gh,
git,
jq,
makeWrapper,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gh-signoff";
version = "0.2.1"; # version is in the script
src = fetchFromGitHub {
owner = "basecamp";
repo = "gh-signoff";
rev = "24f274070c9dfbb3916347dbf6f9d38d4fb64eca"; # Repo didn't have a valid Git tag for specific version
hash = "sha256-jqRbh4To6uHoohkNZrzgmGWOBp/Mahmjm5NwXjmshhM=";
};
nativeBuildInputs = [
makeWrapper
];
buildInputs = [ bash ];
strictDeps = true;
runtimeDeps = [
gh
git
jq
];
installPhase = ''
runHook preInstall
install -D -m755 "gh-signoff" "$out/bin/gh-signoff"
runHook postInstall
'';
postFixup = ''
wrapProgram "$out/bin/gh-signoff" \
--prefix PATH : "${lib.makeBinPath finalAttrs.runtimeDeps}"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "GitHub CLI extension for local CI to sign off on your own work";
homepage = "https://github.com/basecamp/gh-signoff";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ maikotan ];
mainProgram = "gh-signoff";
inherit (gh.meta) platforms;
};
})

View file

@ -8,45 +8,40 @@
nix-update-script,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
pname = "gotify-server";
version = "2.6.3";
src = fetchFromGitHub {
owner = "gotify";
repo = "server";
rev = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-9vIReA29dWf3QwUYEW8JhzF9o74JZqG4zGobgI+gIWE=";
};
# With `allowGoReference = true;`, `buildGoModule` adds the `-trimpath`
# argument for Go builds which apparently breaks the UI like this:
#
# server[780]: stat /var/lib/private/ui/build/index.html: no such file or directory
allowGoReference = true;
vendorHash = "sha256-rs6EfnJT6Jgif2TR5u5Tp5/Ozn+4uhSapksyKFnQiCo=";
# No test
doCheck = false;
buildInputs = [
sqlite
];
ui = callPackage ./ui.nix { };
ui = callPackage ./ui.nix { inherit (finalAttrs) src version; };
preBuild = ''
if [ -n "$ui" ] # to make the preBuild a no-op inside the goModules fixed-output derivation, where it would fail
then
cp -r $ui ui/build
fi
# Use preConfigure instead of preBuild to keep goModules independent from ui
preConfigure = ''
cp -r ${finalAttrs.ui} ui/build
'';
passthru = {
# For nix-update to detect the location of this attribute from this
# derivation.
inherit (ui) offlineCache;
updateScript = nix-update-script { };
updateScript = nix-update-script {
extraArgs = [
"--subpackage"
"ui"
];
};
tests = {
nixos = nixosTests.gotify-server;
};
@ -56,16 +51,21 @@ buildGoModule rec {
# produce binaries which panic when executed and are not interesting at all
subPackages = [ "." ];
# Based on LD_FLAGS in upstream's .github/workflows/build.yml:
# https://github.com/gotify/server/blob/v2.6.3/.github/workflows/build.yml#L33
ldflags = [
"-X main.Version=${version}"
"-s"
"-X main.Version=${finalAttrs.version}"
"-X main.Mode=prod"
"-X main.Commit=refs/tags/v${finalAttrs.version}"
"-X main.BuildDate=unknown"
];
meta = with lib; {
meta = {
description = "Simple server for sending and receiving messages in real-time per WebSocket";
homepage = "https://gotify.net";
license = licenses.mit;
maintainers = with maintainers; [ doronbehar ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ doronbehar ];
mainProgram = "server";
};
}
})

View file

@ -1,45 +1,31 @@
{
src,
version,
stdenv,
yarn,
fixup-yarn-lock,
yarnConfigHook,
yarnBuildHook,
nodejs-slim,
fetchYarnDeps,
gotify-server,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gotify-ui";
inherit (gotify-server) version;
inherit version;
src = gotify-server.src + "/ui";
src = src + "/ui";
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-ejHzo6NHCMlNiYePWvfMY9Blb58pj3UQ5PFI0V84flI=";
};
nativeBuildInputs = [
yarn
fixup-yarn-lock
yarnConfigHook
yarnBuildHook
nodejs-slim
];
postPatch = ''
export HOME=$NIX_BUILD_TOP/fake_home
yarn config --offline set yarn-offline-mirror $offlineCache
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
'';
buildPhase = ''
runHook preBuild
export NODE_OPTIONS=--openssl-legacy-provider
yarn --offline build
runHook postBuild
'';
env.NODE_OPTIONS = "--openssl-legacy-provider";
installPhase = ''
runHook preInstall
@ -48,4 +34,4 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
}
})

View file

@ -7,11 +7,11 @@
}:
stdenv.mkDerivation rec {
pname = "jreleaser-cli";
version = "1.18.0";
version = "1.19.0";
src = fetchurl {
url = "https://github.com/jreleaser/jreleaser/releases/download/v${version}/jreleaser-tool-provider-${version}.jar";
hash = "sha256-rJYFoPPz1tR7LgcVfiRPFJHf1tMLhlxNQXsmutHZs3Q=";
hash = "sha256-tUliZBRHAXgv+FR5z298IAG3egTTqwhRYt8r96gdtdM=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -35,17 +35,17 @@
let
# Note: The cacert version is synthetic and must match the version in the package's CMake
cacert_version = "2023-12-12";
cacert_version = "2025-05-20";
in
stdenv.mkDerivation (finalAttrs: {
pname = "ladybird";
version = "0-unstable-2025-06-18";
version = "0-unstable-2025-06-27";
src = fetchFromGitHub {
owner = "LadybirdWebBrowser";
repo = "ladybird";
rev = "86c8dbbf902d5c84bdc90cd35d19cc167d5848bd";
hash = "sha256-CUVKrbpwPDMHPMHQfNSOQLQmRv7Fy4H/xsglZJaPZlI=";
rev = "831ba5d6550fd9dfaf90153876ff42396f7165ac";
hash = "sha256-7feXPFKExjuOGbitlAkSEEzYNEZb6hGSDUZW1EJGIW8=";
};
postPatch = ''
@ -201,5 +201,6 @@ stdenv.mkDerivation (finalAttrs: {
"aarch64-darwin"
];
mainProgram = "Ladybird";
broken = stdenv.hostPlatform.isDarwin;
};
})

View file

@ -11,18 +11,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mergiraf";
version = "0.10.0";
version = "0.11.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "mergiraf";
repo = "mergiraf";
tag = "v${finalAttrs.version}";
hash = "sha256-wnXOl7KzSvvxQP4CebOJ+fEIn7fQDKTmO2PkGMRA4t4=";
hash = "sha256-nzWRMCIeZ1RmZO4v5UqX1JrbN1UjBHkl/bYaERCzfew=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-jShWfd3m9g6YlUFLOzlMPFtuXAAfjh+sBujCJ9F2Uj0=";
cargoHash = "sha256-9OjcEmed9nLM/fp6Qk/Gh9hTVnn5cqCxTUpAJUkI4/M=";
nativeCheckInputs = [ git ];

View file

@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "nak";
version = "0.14.2";
version = "0.14.4";
src = fetchFromGitHub {
owner = "fiatjaf";
repo = "nak";
tag = "v${finalAttrs.version}";
hash = "sha256-+91warH+uvQ5jkPIxkJxsS9R83cZ1u+FKMy3xgjHIAQ=";
hash = "sha256-MoH1jQP4X3DYri5+TfmjBh3+5jkyItgcS7+nOBSnRGI=";
};
vendorHash = "sha256-HGZwcg8C9UuYu0+oPfJG4LEXIHqt+IRrDQdXtIjg0Hg=";
vendorHash = "sha256-5W7uqHT9iP5NbE3EFiFBSdjsINIWv5lIkz3K6yMcgrM=";
ldflags = [
"-s"

View file

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "ntfs2btrfs";
version = "20240115";
version = "20250616";
src = fetchFromGitHub {
owner = "maharmstone";
repo = "ntfs2btrfs";
tag = version;
hash = "sha256-sZ8AWREe2jasy3hqLTjaLcOMCNsrDjz2eIuknA2TsEs=";
hash = "sha256-hRPidvpBVm42Rg+acwHQ6b8WHGMPbE6SHwlrQrB+fD8=";
};
nativeBuildInputs = [

View file

@ -41,12 +41,12 @@ let
in
stdenv.mkDerivation rec {
pname = "peergos";
version = "1.6.0";
version = "1.7.1";
src = fetchFromGitHub {
owner = "Peergos";
repo = "web-ui";
rev = "v${version}";
hash = "sha256-Y2oGvYqLEAuF732DAOFLmXqwDX48/ZeYW0kPc17Z+oU=";
hash = "sha256-gafFkHgTDBBon5fxjZwDGhEPyk6bp2XL4DxAWKtpWzo=";
fetchSubmodules = true;
};

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "portmidi";
version = "2.0.4";
version = "2.0.6";
src = fetchFromGitHub {
owner = "portmidi";
repo = "portmidi";
rev = "v${version}";
sha256 = "sha256-uqBeh9vBP6+V+FN4lfeGxePQcpZMDYUuAo/d9a5rQxU=";
sha256 = "sha256-ou+zN4XnR+QaWC/hzgtThVbeZ/3UVLTpZ9O+eQSGVBs=";
};
cmakeFlags = [

View file

@ -14,7 +14,8 @@
systemd,
openssl,
python3,
nix-update-script,
versionCheckHook,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
tlsSupport ? true,
# Using system jemalloc fixes cross-compilation and various setups.
@ -25,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "redis";
version = "7.2.7";
version = "8.0.2";
src = fetchFromGitHub {
owner = "redis";
repo = "redis";
rev = finalAttrs.version;
hash = "sha256-WZ89BUm3zz6n0dZKyODHCyMGExbqaPJJ1qxLvJKUSDI=";
tag = finalAttrs.version;
hash = "sha256-BZJEBp3M7Gw/6/fZjfaMfU777dFmMzAS4bDI06ErkSc=";
};
patches = lib.optional useSystemJemalloc (fetchpatch2 {
@ -65,7 +66,6 @@ stdenv.mkDerivation (finalAttrs: {
hardeningEnable = lib.optionals (!stdenv.hostPlatform.isDarwin) [ "pie" ];
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [ "-std=c11" ]);
env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isFreeBSD "-lexecinfo";
# darwin currently lacks a pure `pgrep` which is extensively used here
@ -81,12 +81,13 @@ stdenv.mkDerivation (finalAttrs: {
# disable test "Connect multiple replicas at the same time": even
# upstream find this test too timing-sensitive
substituteInPlace tests/integration/replication.tcl \
--replace 'foreach mdl {no yes}' 'foreach mdl {}'
--replace-fail 'foreach sdl {disabled swapdb} {' 'foreach sdl {} {'
substituteInPlace tests/support/server.tcl \
--replace 'exec /usr/bin/env' 'exec env'
--replace-fail 'exec /usr/bin/env' 'exec env'
sed -i '/^proc wait_load_handlers_disconnected/{n ; s/wait_for_condition 50 100/wait_for_condition 50 500/; }' \
sed -i -e '/^proc wait_load_handlers_disconnected/{n ; s/wait_for_condition 50 100/wait_for_condition 50 500/; }' \
-e '/^proc wait_for_ofs_sync/{n ; s/wait_for_condition 50 100/wait_for_condition 50 500/; }' \
tests/support/util.tcl
./runtest \
@ -100,15 +101,23 @@ stdenv.mkDerivation (finalAttrs: {
runHook postCheck
'';
passthru.tests.redis = nixosTests.redis;
passthru.serverBin = "redis-server";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/redis-server";
versionCheckProgramArg = "--version";
passthru = {
tests.redis = nixosTests.redis;
serverBin = "redis-server";
updateScript = nix-update-script { };
};
meta = {
homepage = "https://redis.io";
description = "Open source, advanced key-value store";
license = lib.licenses.bsd3;
license = lib.licenses.agpl3Only;
platforms = lib.platforms.all;
changelog = "https://github.com/redis/redis/raw/${finalAttrs.version}/00-RELEASENOTES";
changelog = "https://github.com/redis/redis/releases/tag/${finalAttrs.version}";
maintainers = with lib.maintainers; [
berdario
globin

View file

@ -14,7 +14,7 @@
python312Packages.buildPythonApplication rec {
pname = "snapcraft";
version = "8.9.5";
version = "8.10.0";
pyproject = true;
@ -22,7 +22,7 @@ python312Packages.buildPythonApplication rec {
owner = "canonical";
repo = "snapcraft";
tag = version;
hash = "sha256-bwk9wK8fIXhhmj4XdtpTzZfzZkAtETpfMleTrbYt6Ww=";
hash = "sha256-k48OgHg0Pm3WfjPex27UvMZBOq9708vGJy/rZvCZdbg=";
};
patches = [

View file

@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "tevent";
version = "0.16.2";
version = "0.17.0";
src = fetchurl {
url = "mirror://samba/tevent/${pname}-${version}.tar.gz";
sha256 = "sha256-8LvSnfq7y7zp9HGPwWVBDN1PfY7h89/FRhjUwDGZzqM=";
sha256 = "sha256-dwL7Nztp2ilguGE0tqnsb6C5SaAXVv7ACkpqQ1dcg2E=";
};
nativeBuildInputs = [

View file

@ -10,14 +10,14 @@ let
platform =
if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system;
hash = builtins.getAttr platform {
"universal-macos" = "sha256-muEoLk6pL0hobpdzalXs/SjlB+eRJgbt7rPHbgs0IZo=";
"x86_64-linux" = "sha256-TP7pqXZceqboMuQGkO2/yyPH4K2YWEpNIzREKQDY2is=";
"aarch64-linux" = "sha256-GGbCJVqBud+Fh1aasEEupmRF3B/sYntBkC8B5mGxnWI=";
"universal-macos" = "sha256-8RyNDE8br4fPjCE38MVci7eatiEHIMUtVGa0pCTKj1k=";
"x86_64-linux" = "sha256-18dj7GNXYhsjECIp4oqGbBSLWZhQjPORm3ohNL/jXmg=";
"aarch64-linux" = "sha256-u4JIJtEu7+YtfIpTxqmSb2xTBA57YtNtQCCNkkoEURg=";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tigerbeetle";
version = "0.16.45";
version = "0.16.47";
src = fetchzip {
url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip";

View file

@ -99,7 +99,7 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "zed-editor";
version = "0.192.7";
version = "0.192.8";
outputs =
[ "out" ]
@ -111,7 +111,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "zed-industries";
repo = "zed";
tag = "v${finalAttrs.version}";
hash = "sha256-OjqJAb7IlFpSd7+i5QAkpsBDAbM6tZ8x/Y1HWiyDkPI=";
hash = "sha256-SvfxveVgi2GvnG4d3YUFSn0LY92YrNmwXAicQP5mivk=";
};
patches = [
@ -138,7 +138,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
useFetchCargoVendor = true;
cargoHash = "sha256-qi3V6qGbb6kKecSTCbDMqfUKdgIliBJG1RaI5v+W9yY=";
cargoHash = "sha256-H7IgJJsdL7UsAWavdzrMQAc8SZqErJSINaLkzh+0Qic=";
nativeBuildInputs =
[

View file

@ -1,13 +1,14 @@
{
lib,
mkCoqDerivation,
rocqPackages,
which,
coq,
version ? null,
}:
with lib;
mkCoqDerivation {
(mkCoqDerivation {
pname = "parseque";
repo = "parseque";
owner = "rocq-community";
@ -19,7 +20,7 @@ mkCoqDerivation {
[ coq.coq-version ]
[
{
cases = [ (range "8.16" "8.20") ];
cases = [ (range "8.16" "9.0") ];
out = "0.2.2";
}
]
@ -30,8 +31,26 @@ mkCoqDerivation {
releaseRev = v: "v${v}";
meta = {
description = "Total parser combinators in Rocq";
description = "Total parser combinators in Coq/Rocq";
maintainers = with maintainers; [ womeier ];
license = licenses.mit;
};
}
}).overrideAttrs
(
o:
# this is just a wrapper for rocPackages.parseque for Rocq >= 9.0
lib.optionalAttrs
(coq.version != null && (coq.version == "dev" || lib.versions.isGe "9.0" coq.version))
{
configurePhase = ''
echo no configuration
'';
buildPhase = ''
echo building nothing
'';
installPhase = ''
echo installing nothing
'';
propagatedBuildInputs = [ rocqPackages.parseque ];
}
)

View file

@ -1315,6 +1315,21 @@ self: super:
VulkanMemoryAllocator = addExtraLibrary pkgs.vulkan-headers super.VulkanMemoryAllocator;
vulkan-utils = addExtraLibrary pkgs.vulkan-headers super.vulkan-utils;
# Support for vulkan-headers 1.4.313.0
# https://github.com/YoshikuniJujo/gpu-vulkan-middle/issues/10
gpu-vulkan-middle = overrideCabal (drv: {
version =
let
fixed = "0.1.0.76";
in
lib.warnIf (lib.versionAtLeast drv.version fixed)
"haskellPackages.gpu-vulkan-middle: default version ${drv.version} >= ${fixed}, consider dropping override"
fixed;
sha256 = "sha256-VQAVo/84qPBFkQSmY3pT4WXOK9zrFMpK7WN9/UdED6E=";
revision = null;
editedCabalFile = null;
}) super.gpu-vulkan-middle;
# Generate cli completions for dhall.
dhall = self.generateOptparseApplicativeCompletions [ "dhall" ] super.dhall;
# 2025-01-27: allow aeson >= 2.2, 9.8 versions of text and bytestring

View file

@ -269,6 +269,10 @@ stdenv.mkDerivation rec {
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DQT_FEATURE_rpath=OFF"
"-DQT_NO_XCODE_MIN_VERSION_CHECK=ON"
# This is only used for the min version check, which we disabled above.
# When this variable is not set, cmake tries to execute xcodebuild
# to query the version.
"-DQT_INTERNAL_XCODE_VERSION=0.1"
]
++ lib.optionals isCrossBuild [
"-DQT_HOST_PATH=${pkgsBuildBuild.qt6.qtbase}"

View file

@ -42,7 +42,13 @@ stdenv.mkDerivation (
# don't leak OS version into the final output
# https://bugreports.qt.io/browse/QTBUG-136060
[ "-DCMAKE_SYSTEM_VERSION=" ]
++ lib.optional stdenv.hostPlatform.isDarwin "-DQT_NO_XCODE_MIN_VERSION_CHECK=ON"
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DQT_NO_XCODE_MIN_VERSION_CHECK=ON"
# This is only used for the min version check, which we disabled above.
# When this variable is not set, cmake tries to execute xcodebuild
# to query the version.
"-DQT_INTERNAL_XCODE_VERSION=0.1"
]
++ args.cmakeFlags or [ ];
moveToDev = false;

View file

@ -0,0 +1,59 @@
{
lib,
fetchFromGitHub,
buildPythonPackage,
numpy,
scipy,
matplotlib,
setuptools,
setuptools-scm,
cvxopt,
pytest-timeout,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "control";
version = "0.10.1";
pyproject = true;
src = fetchFromGitHub {
owner = "python-control";
repo = "python-control";
tag = version;
hash = "sha256-wLDYPuLnsZ2+cXf7j3BxUbn4IjHPt09LE9cjQGXWrO0=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
numpy
scipy
matplotlib
];
optional-dependencies = {
# slycot is not in nixpkgs
# slycot = [ slycot ];
cvxopt = [ cvxopt ];
};
pythonImportsCheck = [ "control" ];
nativeCheckInputs = [
cvxopt
pytest-timeout
pytestCheckHook
];
meta = {
changelog = "https://github.com/python-control/python-control/releases/tag/${src.tag}";
description = "Python Control Systems Library";
homepage = "https://github.com/python-control/python-control";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ Peter3579 ];
};
}

View file

@ -30,7 +30,7 @@
buildPythonPackage rec {
pname = "craft-parts";
version = "2.12.0";
version = "2.14.0";
pyproject = true;
@ -38,7 +38,7 @@ buildPythonPackage rec {
owner = "canonical";
repo = "craft-parts";
tag = version;
hash = "sha256-mm5s7lHbU9SJsS9wTkXkJpmVsGG0qVXIeaQ+TiGz/7o=";
hash = "sha256-NJTueawkjoYPVnDSODgU/JlTG5yLow+4wiHQzNWHNbA=";
};
patches = [ ./bash-path.patch ];

View file

@ -0,0 +1,40 @@
{
lib,
mkRocqDerivation,
which,
stdlib,
rocq-core,
version ? null,
}:
with lib;
mkRocqDerivation {
pname = "parseque";
repo = "parseque";
owner = "rocq-community";
inherit version;
defaultVersion =
with versions;
switch
[ rocq-core.rocq-version ]
[
{
cases = [ (range "9.0" "9.0") ];
out = "0.3.0";
}
]
null;
release."0.3.0".sha256 = "sha256-W2eenv5Q421eVn2ubbninFmmdT875f3w/Zs7yGHUKP4=";
propagatedBuildInputs = [ stdlib ];
releaseRev = v: "v${v}";
meta = {
description = "Total parser combinators in Rocq";
maintainers = with maintainers; [ womeier ];
license = licenses.mit;
};
}

View file

@ -17,13 +17,13 @@
let
data = stdenv.mkDerivation (finalAttrs: {
pname = "path-of-building-data";
version = "2.55.1";
version = "2.55.2";
src = fetchFromGitHub {
owner = "PathOfBuildingCommunity";
repo = "PathOfBuilding";
rev = "v${finalAttrs.version}";
hash = "sha256-O3XD52UdkjxtWdsXs6QbXzfik3ZT9TEc2PPZCIGJdCQ=";
hash = "sha256-i+9WeASdOj9QSB0HjDMP7qM7wQh3tyHuh74QlVWhi1c=";
};
nativeBuildInputs = [ unzip ];

View file

@ -219,16 +219,6 @@
"agpl"
]
},
"memories": {
"hash": "sha256-BfxJDCGsiRJrZWkNJSQF3rSFm/G3zzQn7C6DCETSzw4=",
"url": "https://github.com/pulsejet/memories/releases/download/v7.5.2/memories.tar.gz",
"version": "7.5.2",
"description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery",
"licenses": [
"agpl"
]
},
"music": {
"hash": "sha256-h83Xc292/NQPWOTRIbUSgqHUH/Sp4fYJ8GAHSiJWHP0=",
"url": "https://github.com/owncloud/music/releases/download/v2.1.4/music_2.1.4_for_nextcloud.tar.gz",

View file

@ -219,16 +219,6 @@
"agpl"
]
},
"memories": {
"hash": "sha256-BfxJDCGsiRJrZWkNJSQF3rSFm/G3zzQn7C6DCETSzw4=",
"url": "https://github.com/pulsejet/memories/releases/download/v7.5.2/memories.tar.gz",
"version": "7.5.2",
"description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
"homepage": "https://memories.gallery",
"licenses": [
"agpl"
]
},
"music": {
"hash": "sha256-h83Xc292/NQPWOTRIbUSgqHUH/Sp4fYJ8GAHSiJWHP0=",
"url": "https://github.com/owncloud/music/releases/download/v2.1.4/music_2.1.4_for_nextcloud.tar.gz",

View file

@ -0,0 +1,32 @@
diff --git a/lib/Settings/SystemConfig.php b/lib/Settings/SystemConfig.php
index 7814f071..bb1309fa 100644
--- a/lib/Settings/SystemConfig.php
+++ b/lib/Settings/SystemConfig.php
@@ -124,6 +125,14 @@ class SystemConfig
*/
public static function get(string $key, mixed $default = null): mixed
{
+ switch ($key) {
+ case "memories.exiftool": return "@exiftool@";
+ case "memories.exiftool_no_local": return false;
+ case "memories.vod.ffmpeg": return "@ffmpeg@";
+ case "memories.vod.ffprobe": return "@ffprobe@";
+ case "memories.vod.path": return "@go-vod@";
+ }
+
if (!\array_key_exists($key, self::DEFAULTS)) {
throw new \InvalidArgumentException("Invalid system config key: {$key}");
}
@@ -154,6 +161,12 @@ public static function get(string $key, mixed $default = null): mixed
*/
public static function set(string $key, mixed $value): void
{
+ // Ignore those paths and always use the nix paths.
+ // We cannot return a proper error message except a 500 here without changing the code to much.
+ if (in_array($key, array("memories.exiftool", "memories.exiftool_no_local", "memories.vod.ffmpeg", "memories.vod.ffprobe", "memories.vod.path"))) {
+ throw new \InvalidArgumentException("Cannot set nix-managed key: {$key}");
+ }
+
// Check if the key is valid
if (!\array_key_exists($key, self::DEFAULTS)) {
throw new \InvalidArgumentException("Invalid system config key: {$key}");

View file

@ -0,0 +1,91 @@
{
stdenv,
buildGoModule,
exiftool,
fetchurl,
ffmpeg-headless,
fetchFromGitHub,
lib,
replaceVars,
ncVersion,
}:
let
latestVersionForNc = {
"31" = latestVersionForNc."30";
"30" = {
version = "7.5.2";
appHash = "sha256-BfxJDCGsiRJrZWkNJSQF3rSFm/G3zzQn7C6DCETSzw4=";
srcHash = "sha256-imBO/64NW5MiozpufbMRcTI9WCaN8grnHlVo+fsUNlU=";
};
};
currentVersionInfo =
latestVersionForNc.${ncVersion}
or (throw "memories currently does not support nextcloud version ${ncVersion}");
commonMeta = with lib; {
homepage = "https://apps.nextcloud.com/apps/memories";
changelog = "https://github.com/pulsejet/memories/blob/v${currentVersionInfo.version}/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = with maintainers; [ SuperSandro2000 ];
};
go-vod = buildGoModule rec {
pname = "go-vod";
inherit (currentVersionInfo) version;
src = fetchFromGitHub {
owner = "pulsejet";
repo = "memories";
tag = "v${version}";
hash = currentVersionInfo.srcHash;
};
sourceRoot = "${src.name}/go-vod";
vendorHash = null;
meta = commonMeta // {
description = "Extremely minimal on-demand video transcoding server in go";
mainProgram = "go-vod";
};
};
in
stdenv.mkDerivation rec {
pname = "nextcloud-app-memories";
inherit (currentVersionInfo) version;
src = fetchurl {
url = "https://github.com/pulsejet/memories/releases/download/v${version}/memories.tar.gz";
hash = currentVersionInfo.appHash;
};
patches = [
(replaceVars ./memories-paths.diff {
exiftool = lib.getExe exiftool;
ffmpeg = lib.getExe ffmpeg-headless;
ffprobe = lib.getExe' ffmpeg-headless "ffprobe";
go-vod = lib.getExe go-vod;
})
];
postPatch = ''
rm appinfo/signature.json
rm -rf bin-ext/
substituteInPlace lib/Service/BinExt.php \
--replace-fail "EXIFTOOL_VER = '12.70'" "EXIFTOOL_VER = '${exiftool.version}'"
'';
installPhase = ''
mkdir -p $out
cp -r ./* $out/
'';
meta = commonMeta // {
description = "Fast, modern and advanced photo management suite";
longDescription = ''
All settings related to required packages and installed programs are hardcoded in program code and cannot be changed.
'';
};
}

View file

@ -38,22 +38,19 @@ stdenv.mkDerivation rec {
srcs =
[
(fetchurl {
inherit version;
url = "https://github.com/nextcloud/recognize/releases/download/v${version}/recognize-${version}.tar.gz";
hash = currentVersionInfo.appHash;
})
(fetchurl {
inherit version;
url = "https://github.com/nextcloud/recognize/archive/refs/tags/v${version}.tar.gz";
hash = currentVersionInfo.modelHash;
})
]
++ lib.optionals useLibTensorflow [
(fetchurl rec {
(fetchurl {
# For version see LIBTENSORFLOW_VERSION in https://github.com/tensorflow/tfjs/blob/master/tfjs-node/scripts/deps-constants.js
version = "2.9.1";
url = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-${version}.tar.gz";
url = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.9.1.tar.gz";
hash = "sha256-f1ENJUbj214QsdEZRjaJAD1YeEKJKtPJW8pRz4KCAXM=";
})
];
@ -61,7 +58,7 @@ stdenv.mkDerivation rec {
unpackPhase =
''
# Merge the app and the models from github
tar -xzpf "${builtins.elemAt srcs 0}" recognize;
tar -xzpf "${builtins.elemAt srcs 0}" recognize
tar -xzpf "${builtins.elemAt srcs 1}" -C recognize --strip-components=1 recognize-${version}/models
''
+ lib.optionalString useLibTensorflow ''
@ -81,8 +78,6 @@ stdenv.mkDerivation rec {
--replace-quiet "\$this->config->getAppValueString('node_binary')" "'${lib.getExe nodejs}'"
test "$(grep "get[a-zA-Z]*('node_binary'" recognize/lib/**/*.php | wc -l)" -eq 0
# Skip trying to install it... (less warnings in the log)
sed -i '/public function run/areturn ; //skip' recognize/lib/Migration/InstallDeps.php
@ -110,10 +105,10 @@ stdenv.mkDerivation rec {
node src/test_libtensorflow.js
cd ..
'';
installPhase = ''
approot="$(dirname $(dirname $(find -path '*/appinfo/info.xml' | head -n 1)))"
if [ -d "$approot" ];
then
if [ -d "$approot" ]; then
mv "$approot/" $out
chmod -R a-w $out
fi

View file

@ -23,7 +23,6 @@
, "integration_paperless": "agpl3Plus"
, "mail": "agpl3Plus"
, "maps": "agpl3Plus"
, "memories": "agpl3Plus"
, "music": "agpl3Plus"
, "news": "agpl3Plus"
, "nextpod": "agpl3Only"

View file

@ -5,10 +5,11 @@ _:
apps = apps.extend (
self: super: {
hmr_enabler = callPackage ./apps/hmr_enabler.nix { };
recognize = callPackage ./apps/recognize.nix { inherit ncVersion; };
memories = callPackage ./apps/memories.nix { inherit ncVersion; };
recognize = callPackage ./apps/recognize.nix { inherit ncVersion; };
}
);
}

View file

@ -2897,6 +2897,8 @@ self: super: with self; {
controku = callPackage ../development/python-modules/controku { };
control = callPackage ../development/python-modules/control { };
convertdate = callPackage ../development/python-modules/convertdate { };
convertertools = callPackage ../development/python-modules/convertertools { };

View file

@ -38,6 +38,7 @@ let
bignums = callPackage ../development/rocq-modules/bignums { };
hierarchy-builder = callPackage ../development/rocq-modules/hierarchy-builder { };
parseque = callPackage ../development/rocq-modules/parseque { };
rocq-elpi = callPackage ../development/rocq-modules/rocq-elpi { };
stdlib = callPackage ../development/rocq-modules/stdlib { };