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:
commit
536476f3aa
44 changed files with 530 additions and 160 deletions
|
@ -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";
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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 [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
22
pkgs/applications/misc/input-leap/macos-no-dmg.patch
Normal file
22
pkgs/applications/misc/input-leap/macos-no-dmg.patch
Normal 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)
|
||||
|
|
@ -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 = [
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 ];
|
||||
|
|
61
pkgs/by-name/gh/gh-signoff/package.nix
Normal file
61
pkgs/by-name/gh/gh-signoff/package.nix
Normal 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;
|
||||
};
|
||||
})
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
}
|
||||
})
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 =
|
||||
[
|
||||
|
|
|
@ -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 ];
|
||||
}
|
||||
)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}"
|
||||
|
|
|
@ -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;
|
||||
|
|
59
pkgs/development/python-modules/control/default.nix
Normal file
59
pkgs/development/python-modules/control/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
|
40
pkgs/development/rocq-modules/parseque/default.nix
Normal file
40
pkgs/development/rocq-modules/parseque/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
32
pkgs/servers/nextcloud/packages/apps/memories-paths.diff
Normal file
32
pkgs/servers/nextcloud/packages/apps/memories-paths.diff
Normal 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}");
|
91
pkgs/servers/nextcloud/packages/apps/memories.nix
Normal file
91
pkgs/servers/nextcloud/packages/apps/memories.nix
Normal 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.
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
, "integration_paperless": "agpl3Plus"
|
||||
, "mail": "agpl3Plus"
|
||||
, "maps": "agpl3Plus"
|
||||
, "memories": "agpl3Plus"
|
||||
, "music": "agpl3Plus"
|
||||
, "news": "agpl3Plus"
|
||||
, "nextpod": "agpl3Only"
|
||||
|
|
|
@ -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; };
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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 { };
|
||||
|
|
|
@ -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 { };
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue