Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-03-05 12:06:03 +00:00
committed by GitHub
67 changed files with 4421 additions and 2711 deletions
@@ -185,6 +185,8 @@
- `ast-grep` remove `sg` command to prevent conflict with `sg` command from shadow-utils. If you need legacy sg command compatibility with old code, you can use `ast-grep.override { enableLegacySg = true; }`
- rename package `wtf` to `wtfutil`.
- `python3Packages.beancount` was updated to 3.1.0. Previous major version remains available as `python3Packages.beancount_2`.
- `binwalk` was updated to 3.1.0, which has been rewritten in rust. The python module is no longer available.
+9 -1
View File
@@ -65,7 +65,10 @@ in
config = lib.mkIf cfg.enable {
environment = {
systemPackages = [ pkgs.miriway ];
systemPackages = with pkgs; [
miriway
vanilla-dmz
];
etc = {
"xdg/xdg-miriway/miriway-shell.config".text = cfg.config;
};
@@ -80,6 +83,11 @@ in
services.displayManager.sessionPackages = [ pkgs.miriway ];
xdg.icons.enable = true;
xdg.icons.fallbackCursorThemes = lib.mkDefault [
# Miriway looks for "default" theme, fails to start if not present
# Mir normally looks for DMZ-White theme if none specified, so make that present as the default
"DMZ-White"
];
};
meta.maintainers = with lib.maintainers; [ OPNA2608 ];
@@ -80,6 +80,8 @@ in
XRT_COMPOSITOR_LOG = mkDefault "debug";
XRT_PRINT_OPTIONS = mkDefault "on";
IPC_EXIT_ON_DISCONNECT = mkDefault "off";
# Needed to avoid libbasalt.so: cannot open shared object file: No such file or directory
VIT_SYSTEM_LIBRARY_PATH = mkDefault "${pkgs.basalt-monado}/lib/libbasalt.so";
};
preStart = mkIf cfg.forceDefaultRuntime ''
@@ -58,6 +58,7 @@ in
"degraded"
"configuring"
"configured"
"enslaved"
]
);
default = null;
+18 -7
View File
@@ -254,6 +254,9 @@ in
proxy_set_header Cookie $http_cookie;
proxy_set_header X-CSRF-TOKEN "1";
# Header used to validate reverse proxy trust
proxy_set_header X-Proxy-Secret $http_x_proxy_secret;
# Pass headers for common auth proxies
proxy_set_header Remote-User $http_remote_user;
proxy_set_header Remote-Groups $http_remote_groups;
@@ -282,6 +285,8 @@ in
add_header Cache-Control "no-store";
expires off;
keepalive_disable safari;
'';
};
"/stream/" = {
@@ -407,7 +412,7 @@ in
proxyPass = "http://frigate-api";
recommendedProxySettings = true;
extraConfig = nginxAuthRequest + nginxProxySettings + ''
rewrite ^/api/(.*)$ $1 break;
rewrite ^/api/(.*)$ /$1 break;
'';
};
"/api/" = {
@@ -443,7 +448,7 @@ in
location /api/stats {
${nginxAuthRequest}
access_log off;
rewrite ^/api/(.*)$ $1 break;
rewrite ^/api(/.*)$ $1 break;
add_header Cache-Control "no-store";
proxy_pass http://frigate-api;
${nginxProxySettings}
@@ -452,7 +457,7 @@ in
location /api/version {
${nginxAuthRequest}
access_log off;
rewrite ^/api/(.*)$ $1 break;
rewrite ^/api(/.*)$ $1 break;
add_header Cache-Control "no-store";
proxy_pass http://frigate-api;
${nginxProxySettings}
@@ -560,7 +565,7 @@ in
"multi-user.target"
];
environment = {
CONFIG_FILE = format.generate "frigate.yml" filteredConfig;
CONFIG_FILE = "/run/frigate/frigate.yml";
HOME = "/var/lib/frigate";
PYTHONPATH = cfg.package.pythonPath;
} // optionalAttrs (cfg.vaapiDriver != null) {
@@ -578,11 +583,17 @@ in
] ++ optionals (!stdenv.hostPlatform.isAarch64) [
# not available on aarch64-linux
intel-gpu-tools
rocmPackages.rocminfo
];
serviceConfig = {
ExecStartPre = pkgs.writeShellScript "frigate-clear-cache" ''
rm --recursive --force /var/cache/frigate/*
'';
ExecStartPre = [
(pkgs.writeShellScript "frigate-clear-cache" ''
rm --recursive --force /var/cache/frigate/*
'')
(pkgs.writeShellScript "frigate-create-writable-config" ''
cp --no-preserve=mode "${format.generate "frigate.yml" filteredConfig}" /run/frigate/frigate.yml
'')
];
ExecStart = "${cfg.package.python.interpreter} -m frigate";
Restart = "on-failure";
SyslogIdentifier = "frigate";
+1 -1
View File
@@ -410,7 +410,7 @@ in {
freeswitch = handleTest ./freeswitch.nix {};
freetube = discoverTests (import ./freetube.nix);
freshrss = handleTest ./freshrss {};
frigate = handleTest ./frigate.nix {};
frigate = runTest ./frigate.nix;
frp = handleTest ./frp.nix {};
frr = handleTest ./frr.nix {};
fsck = handleTest ./fsck.nix {};
+63 -61
View File
@@ -1,79 +1,81 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
{
pkgs,
lib,
...
}:
{
name = "frigate";
meta.maintainers = with lib.maintainers; [ hexa ];
{
name = "frigate";
meta = { inherit (pkgs.frigate.meta) maintainers; };
nodes = {
machine = {
services.frigate = {
enable = true;
nodes = {
machine = {
services.frigate = {
enable = true;
hostname = "localhost";
hostname = "localhost";
settings = {
mqtt.enabled = false;
settings = {
mqtt.enabled = false;
cameras.test = {
ffmpeg = {
input_args = "-fflags nobuffer -strict experimental -fflags +genpts+discardcorrupt -r 10 -use_wallclock_as_timestamps 1";
inputs = [
{
path = "http://127.0.0.1:8080";
roles = [
"record"
];
}
];
};
cameras.test = {
ffmpeg = {
input_args = "-fflags nobuffer -strict experimental -fflags +genpts+discardcorrupt -r 10 -use_wallclock_as_timestamps 1";
inputs = [
{
path = "http://127.0.0.1:8080";
roles = [
"record"
];
}
];
};
record.enabled = true;
};
};
systemd.services.video-stream = {
description = "Start a test stream that frigate can capture";
before = [
"frigate.service"
];
wantedBy = [
"multi-user.target"
];
serviceConfig = {
DynamicUser = true;
ExecStart = "${lib.getExe pkgs.ffmpeg-headless} -re -f lavfi -i smptebars=size=1280x720:rate=5 -f mpegts -listen 1 http://0.0.0.0:8080";
Restart = "always";
};
record.enabled = true;
};
environment.systemPackages = with pkgs; [ httpie ];
};
systemd.services.video-stream = {
description = "Start a test stream that frigate can capture";
before = [
"frigate.service"
];
wantedBy = [
"multi-user.target"
];
serviceConfig = {
DynamicUser = true;
ExecStart = "${lib.getExe pkgs.ffmpeg-headless} -re -f lavfi -i smptebars=size=1280x720:rate=5 -f mpegts -listen 1 http://0.0.0.0:8080";
Restart = "always";
};
};
environment.systemPackages = with pkgs; [ httpie ];
};
};
testScript = ''
start_all()
testScript = ''
start_all()
# wait until frigate is up
machine.wait_for_unit("frigate.service")
machine.wait_for_open_port(5001)
# wait until frigate is up
machine.wait_for_unit("frigate.service")
machine.wait_for_open_port(5001)
# extract admin password from logs
machine.wait_until_succeeds("journalctl -u frigate.service -o cat | grep -q 'Password: '")
password = machine.execute("journalctl -u frigate.service -o cat | grep -oP '([a-f0-9]{32})'")[1]
# extract admin password from logs
machine.wait_until_succeeds("journalctl -u frigate.service -o cat | grep -q 'Password: '")
password = machine.execute("journalctl -u frigate.service -o cat | grep -oP '([a-f0-9]{32})'")[1]
# login and store session
machine.log(machine.succeed(f"http --check-status --session=frigate post http://localhost/api/login user=admin password={password}"))
# login and store session
machine.log(machine.succeed(f"http --check-status --session=frigate post http://localhost/api/login user=admin password={password}"))
# make authenticated api request
machine.log(machine.succeed("http --check-status --session=frigate get http://localhost/api/version"))
# make authenticated api request
machine.log(machine.succeed("http --check-status --session=frigate get http://localhost/api/version"))
# make unauthenticated api request
machine.log(machine.succeed("http --check-status get http://localhost:5000/api/version"))
# make unauthenticated api request
machine.log(machine.succeed("http --check-status get http://localhost:5000/api/version"))
# wait for a recording to appear
machine.wait_for_file("/var/cache/frigate/test@*.mp4")
'';
}
)
# wait for a recording to appear
machine.wait_for_file("/var/cache/frigate/test@*.mp4")
'';
}
@@ -2631,10 +2631,6 @@ in
];
};
orgmode = super.orgmode.overrideAttrs {
dependencies = with self; [ (nvim-treesitter.withPlugins (p: [ p.org ])) ];
};
otter-nvim = super.otter-nvim.overrideAttrs {
dependencies = [ self.nvim-lspconfig ];
};
@@ -1,11 +1,11 @@
{
version = "3.6.0";
version = "3.8.0";
x86_64-linux = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-linux.deb";
sha256 = "sha256-jUp4Q9tiR/WLkTNHz97j0eE/WwcfFF3ut0S9N4M75Oc=";
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.8.0-linux.deb";
sha256 = "sha256-0smSLq8PAwEWK9yf4GeUjXcKlKVRoqfb+qd8w3ppQqA=";
};
x86_64-darwin = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-mac.dmg";
sha256 = "sha256-ZvTig1/fm1GRoOYuTRBiZ8j4CRbZSa95q6a0sxo39Gs=";
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.8.0-mac.dmg";
sha256 = "sha256-lysO25oDNDs86Es2VO3XSafVpZU5mcKAZXEdkn0AHig=";
};
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,93 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
yarnBuildHook,
fetchzip,
makeWrapper,
makeDesktopItem,
electron,
desktopToDarwinBundle,
copyDesktopItems,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "micropad";
version = "4.5.1";
src = fetchFromGitHub {
owner = "MicroPad";
repo = "Micropad-Electron";
rev = "v${finalAttrs.version}";
hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
};
# This project can't be built from source currently, because Nixpkgs lacks
# ecosystem for https://bun.sh
micropad-core = fetchzip {
url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${finalAttrs.version}/micropad.tar.xz";
hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
};
nativeBuildInputs = [
yarnBuildHook
copyDesktopItems
makeWrapper
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ];
installPhase = ''
runHook preInstall
# resources
mkdir -p "$out/share/"
cp -r './deps/micropad' "$out/share/micropad"
ln -s '${finalAttrs.micropad-core}' "$out/share/micropad/core"
rm "$out/share/micropad/node_modules"
cp -r './node_modules' "$out/share/micropad"
# icons
for icon in $out/share/micropad/build/icons/*.png; do
mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
done
# executable wrapper
makeWrapper '${electron}/bin/electron' "$out/bin/micropad" \
--add-flags "$out/share/micropad" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
runHook postInstall
'';
# Do not attempt generating a tarball for micropad again.
doDist = false;
# The desktop item properties should be kept in sync with data from upstream:
# https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
desktopItems = [
(makeDesktopItem {
name = "micropad";
exec = "micropad %u";
icon = "micropad";
desktopName = "µPad";
startupWMClass = "µPad";
comment = finalAttrs.meta.description;
categories = [ "Office" ];
})
];
meta = {
description = "A powerful note-taking app that helps you organise + take notes without restrictions";
homepage = "https://getmicropad.com/";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ rhysmdnz ];
inherit (electron.meta) platforms;
mainProgram = "micropad";
};
})
@@ -9,21 +9,21 @@ let
buildComposerProjectOverride =
finalAttrs:
{
php ? toplevel.php,
composer ? toplevel.php.packages.composer,
composerVendor ? null,
vendorHash ? null,
composerLock ? null,
composerNoDev ? true,
composerNoPlugins ? true,
composerNoScripts ? true,
composerStrictValidation ? true,
php ? finalAttrs.php or toplevel.php,
composer ? finalAttrs.php.packages.composer or toplevel.php.packages.composer,
composerLock ? finalAttrs.composerLock or null,
vendorHash ? finalAttrs.vendorHash or "",
composerNoDev ? finalAttrs.composerNoDev or true,
composerNoPlugins ? finalAttrs.composerNoPlugins or true,
composerNoScripts ? finalAttrs.composerNoScripts or true,
composerStrictValidation ? finalAttrs.composerStrictValidation or true,
buildInputs ? [ ],
nativeBuildInputs ? [ ],
strictDeps ? true,
patches ? [ ],
doCheck ? true,
doInstallCheck ? true,
dontCheckForBrokenSymlinks ? true,
passthru ? { },
meta ? { },
...
@@ -34,7 +34,9 @@ let
strictDeps
doCheck
doInstallCheck
dontCheckForBrokenSymlinks
;
nativeBuildInputs = nativeBuildInputs ++ [
composer
php
@@ -81,20 +83,21 @@ let
composerVendor =
args.composerVendor or (php.mkComposerVendor {
inherit (finalAttrs)
pname
src
version
;
inherit
php
composer
vendorHash
composerLock
composerNoDev
composerNoPlugins
composerNoScripts
composerStrictValidation
vendorHash
;
inherit (finalAttrs)
patches
pname
src
version
dontCheckForBrokenSymlinks
;
});
@@ -8,33 +8,37 @@ let
mkComposerVendorOverride =
finalAttrs:
{
php ? toplevel.php,
composer ? toplevel.php.packages.composer,
composerLock,
vendorHash ? null,
composerNoDev ? true,
composerNoPlugins ? true,
composerNoScripts ? true,
composerStrictValidation ? true,
php ? finalAttrs.php or toplevel.php,
composer ? finalAttrs.php.packages.composer or toplevel.php.packages.composer,
composerLock ? finalAttrs.composerLock or null,
vendorHash ? finalAttrs.vendorHash or "",
composerNoDev ? finalAttrs.composerNoDev or true,
composerNoPlugins ? finalAttrs.composerNoPlugins or true,
composerNoScripts ? finalAttrs.composerNoScripts or true,
composerStrictValidation ? finalAttrs.composerStrictValidation or true,
buildInputs ? [ ],
nativeBuildInputs ? [ ],
dontPatchShebangs ? true,
strictDeps ? true,
doCheck ? true,
doInstallCheck ? false,
dontCheckForBrokenSymlinks ? true,
...
}@args:
assert (lib.assertMsg (args ? src) "mkComposerVendor expects src argument.");
assert (lib.assertMsg (args ? vendorHash) "mkComposerVendor expects vendorHash argument.");
assert (lib.assertMsg (args ? version) "mkComposerVendor expects version argument.");
assert (lib.assertMsg (args ? pname) "mkComposerVendor expects pname argument.");
assert (lib.assertMsg (args ? version) "mkComposerVendor expects version argument.");
assert (lib.assertMsg (args ? src) "mkComposerVendor expects src argument.");
{
name = "${args.pname}-composer-vendor-${args.version}";
# See https://github.com/NixOS/nix/issues/6660
inherit dontPatchShebangs;
inherit buildInputs strictDeps doCheck;
inherit
buildInputs
strictDeps
doCheck
;
nativeBuildInputs = nativeBuildInputs ++ [
composer
@@ -1,8 +1,7 @@
declare composerVendor
declare version
declare composerNoDev
declare composerNoPlugins
declare composerNoScripts
declare -g version
declare -g pname
declare -g composerVendor
declare -g -i composerStrictValidation="${composerStrictValidation:-0}"
preConfigureHooks+=(composerInstallConfigureHook)
preBuildHooks+=(composerInstallBuildHook)
@@ -17,7 +16,7 @@ composerInstallConfigureHook() {
setComposerRootVersion
if [[ ! -e "${composerVendor}" ]]; then
echo "No local composer vendor found."
echo "No local composer vendor found." >&2
exit 1
fi
@@ -60,10 +59,11 @@ composerInstallInstallHook() {
cp -r . "$out"/share/php/"${pname}"/
# Create symlinks for the binaries.
jq -r -c 'try (.bin[] | select(test(".bat$")? | not) )' composer.json | while read -r bin; do
mapfile -t BINS < <(jq -r -c 'try (.bin[] | select(test(".bat$")? | not) )' composer.json)
for bin in "${BINS[@]}"; do
echo -e "\e[32mCreating symlink ${bin}...\e[0m"
mkdir -p "$out"/bin
ln -s "$out"/share/php/"${pname}"/"$bin" "$out"/bin/"$(basename "$bin")"
mkdir -p "$out/bin"
ln -s "$out/share/php/${pname}/${bin}" "$out/bin/$(basename "$bin")"
done
echo "Finished composerInstallInstallHook"
@@ -1,28 +1,28 @@
declare composerLock
declare version
declare composerNoDev
declare composerNoPlugins
declare composerNoScripts
declare composerStrictValidation
source @phpScriptUtils@
declare -g composerNoDev="${composerNoDev:+--no-dev}"
declare -g composerNoPlugins="${composerNoPlugins:+--no-plugins}"
declare -g composerNoScripts="${composerNoScripts:+--no-scripts}"
preConfigureHooks+=(composerVendorConfigureHook)
preBuildHooks+=(composerVendorBuildHook)
preCheckHooks+=(composerVendorCheckHook)
preInstallHooks+=(composerVendorInstallHook)
source @phpScriptUtils@
composerVendorConfigureHook() {
echo "Executing composerVendorConfigureHook"
setComposerRootVersion
if [[ -f "composer.lock" ]]; then
echo -e "\e[32mUsing \`composer.lock\` file from the source package\e[0m"
fi
if [[ -e "$composerLock" ]]; then
echo -e "\e[32mUsing user provided \`composer.lock\` file from \`$composerLock\`\e[0m"
install -Dm644 $composerLock ./composer.lock
fi
if [[ ! -f "composer.lock" ]]; then
composer \
--no-cache \
@@ -30,9 +30,9 @@ composerVendorConfigureHook() {
--no-interaction \
--no-progress \
--optimize-autoloader \
${composerNoDev:+--no-dev} \
${composerNoPlugins:+--no-plugins} \
${composerNoScripts:+--no-scripts} \
${composerNoDev} \
${composerNoPlugins} \
${composerNoScripts} \
update
if [[ -f "composer.lock" ]]; then
@@ -74,9 +74,9 @@ composerVendorBuildHook() {
--no-interaction \
--no-progress \
--optimize-autoloader \
${composerNoDev:+--no-dev} \
${composerNoPlugins:+--no-plugins} \
${composerNoScripts:+--no-scripts} \
${composerNoDev} \
${composerNoPlugins} \
${composerNoScripts} \
install
echo "Finished composerVendorBuildHook"
@@ -96,7 +96,7 @@ composerVendorInstallHook() {
mkdir -p $out
cp -ar composer.json $(composer config vendor-dir) $out/
mapfile -t installer_paths < <(jq -r 'try((.extra."installer-paths") | keys[])' composer.json)
mapfile -t installer_paths < <(jq -r -c 'try((.extra."installer-paths") | keys[])' composer.json)
for installer_path in "${installer_paths[@]}"; do
# Remove everything after {$name} placeholder
@@ -105,6 +105,7 @@ composerVendorInstallHook() {
# Copy the installer path if it exists
if [[ -d "$installer_path" ]]; then
mkdir -p $(dirname "$out_installer_path")
echo -e "\e[32mCopying installer path $installer_path to $out_installer_path\e[0m"
cp -ar "$installer_path" "$out_installer_path"
# Strip out the git repositories
find $out_installer_path -name .git -type d -prune -print -exec rm -rf {} ";"
@@ -1,35 +1,24 @@
declare version
declare composerStrictValidation
declare composerGlobal
declare -g version
declare -g -i composerStrictValidation="${composerStrictValidation:-0}"
setComposerRootVersion() {
set +e # Disable exit on error
if [[ -v version ]]; then
if [[ -n $version ]]; then
echo -e "\e[32mSetting COMPOSER_ROOT_VERSION to $version\e[0m"
export COMPOSER_ROOT_VERSION=$version
export COMPOSER_ROOT_VERSION="$version"
fi
set -e
}
setComposerEnvVariables() {
echo -e "\e[32mSetting some required environment variables for Composer...\e[0m"
export COMPOSER_MIRROR_PATH_REPOS=1
export COMPOSER_CACHE_DIR=/dev/null
export COMPOSER_HTACCESS_PROTECT=0
export COMPOSER_FUND=0
}
checkComposerValidate() {
if [ "1" == "${composerGlobal-}" ]; then
global="global";
else
global="";
fi
command="composer ${global} validate --strict --quiet --no-interaction --no-check-all --no-check-lock"
command="composer validate --strict --quiet --no-interaction --no-check-all --no-check-lock"
if ! $command; then
if [ "1" == "${composerStrictValidation-}" ]; then
if [[ "${composerStrictValidation}" == "1" ]]; then
echo
echo -e "\e[31mERROR: composer files validation failed\e[0m"
echo
@@ -57,9 +46,9 @@ checkComposerValidate() {
fi
fi
command="composer ${global} validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock"
command="composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock"
if ! $command; then
if [ "1" == "${composerStrictValidation-}" ]; then
if [[ "${composerStrictValidation}" == "1" ]]; then
echo
echo -e "\e[31mERROR: composer files validation failed\e[0m"
echo
+20 -3
View File
@@ -3,10 +3,12 @@
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
pkg-config,
alsa-lib,
versionCheckHook,
bacon,
buildPackages,
nix-update-script,
withSound ? false,
@@ -41,9 +43,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
"sound"
];
nativeBuildInputs = lib.optionals withSound [
pkg-config
];
nativeBuildInputs =
[
installShellFiles
]
++ lib.optionals withSound [
pkg-config
];
buildInputs = lib.optionals withSound soundDependencies;
@@ -51,6 +57,17 @@ rustPlatform.buildRustPackage (finalAttrs: {
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
postInstall =
let
bacon = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/bacon";
in
lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) ''
installShellCompletion --cmd bacon \
--bash <(COMPLETE=bash ${bacon}) \
--fish <(COMPLETE=fish ${bacon}) \
--zsh <(COMPLETE=zsh ${bacon})
'';
passthru = {
tests = {
withSound = bacon.override { withSound = true; };
+380
View File
@@ -0,0 +1,380 @@
diff --git a/frigate/api/media.py b/frigate/api/media.py
index b5f3ba70..09a09c13 100644
--- a/frigate/api/media.py
+++ b/frigate/api/media.py
@@ -31,6 +31,7 @@ from frigate.config import FrigateConfig
from frigate.const import (
CACHE_DIR,
CLIPS_DIR,
+ INSTALL_DIR,
MAX_SEGMENT_DURATION,
PREVIEW_FRAME_TYPE,
RECORD_DIR,
@@ -154,7 +155,9 @@ def latest_frame(
frame_processor.get_current_frame_time(camera_name) + retry_interval
):
if request.app.camera_error_image is None:
- error_image = glob.glob("/opt/frigate/frigate/images/camera-error.jpg")
+ error_image = glob.glob(
+ os.path.join(INSTALL_DIR, "frigate/images/camera-error.jpg")
+ )
if len(error_image) > 0:
request.app.camera_error_image = cv2.imread(
@@ -497,7 +500,7 @@ def recording_clip(
)
file_name = sanitize_filename(f"playlist_{camera_name}_{start_ts}-{end_ts}.txt")
- file_path = f"/tmp/cache/{file_name}"
+ file_path = os.path.join(CACHE_DIR, file_name)
with open(file_path, "w") as file:
clip: Recordings
for clip in recordings:
diff --git a/frigate/api/preview.py b/frigate/api/preview.py
index d14a15ff..2db2326a 100644
--- a/frigate/api/preview.py
+++ b/frigate/api/preview.py
@@ -9,7 +9,7 @@ from fastapi import APIRouter
from fastapi.responses import JSONResponse
from frigate.api.defs.tags import Tags
-from frigate.const import CACHE_DIR, PREVIEW_FRAME_TYPE
+from frigate.const import BASE_DIR, CACHE_DIR, PREVIEW_FRAME_TYPE
from frigate.models import Previews
logger = logging.getLogger(__name__)
@@ -52,7 +52,7 @@ def preview_ts(camera_name: str, start_ts: float, end_ts: float):
clips.append(
{
"camera": preview["camera"],
- "src": preview["path"].replace("/media/frigate", ""),
+ "src": preview["path"].replace(BASE_DIR, ""),
"type": "video/mp4",
"start": preview["start_time"],
"end": preview["end_time"],
diff --git a/frigate/comms/webpush.py b/frigate/comms/webpush.py
index abfd52d1..ab4cf3c5 100644
--- a/frigate/comms/webpush.py
+++ b/frigate/comms/webpush.py
@@ -12,7 +12,7 @@ from pywebpush import WebPusher
from frigate.comms.config_updater import ConfigSubscriber
from frigate.comms.dispatcher import Communicator
from frigate.config import FrigateConfig
-from frigate.const import CONFIG_DIR
+from frigate.const import BASE_DIR, CONFIG_DIR
from frigate.models import User
logger = logging.getLogger(__name__)
@@ -151,7 +151,7 @@ class WebPushClient(Communicator): # type: ignore[misc]
camera: str = payload["after"]["camera"]
title = f"{', '.join(sorted_objects).replace('_', ' ').title()}{' was' if state == 'end' else ''} detected in {', '.join(payload['after']['data']['zones']).replace('_', ' ').title()}"
message = f"Detected on {camera.replace('_', ' ').title()}"
- image = f"{payload['after']['thumb_path'].replace('/media/frigate', '')}"
+ image = f"{payload['after']['thumb_path'].replace(BASE_DIR, '')}"
# if event is ongoing open to live view otherwise open to recordings view
direct_url = f"/review?id={reviewId}" if state == "end" else f"/#{camera}"
diff --git a/frigate/const.py b/frigate/const.py
index 5976f47b..dc710467 100644
--- a/frigate/const.py
+++ b/frigate/const.py
@@ -1,5 +1,6 @@
import re
+INSTALL_DIR = "/opt/frigate"
CONFIG_DIR = "/config"
DEFAULT_DB_PATH = f"{CONFIG_DIR}/frigate.db"
MODEL_CACHE_DIR = f"{CONFIG_DIR}/model_cache"
diff --git a/frigate/detectors/detector_config.py b/frigate/detectors/detector_config.py
index 452f1fee..13535a62 100644
--- a/frigate/detectors/detector_config.py
+++ b/frigate/detectors/detector_config.py
@@ -9,7 +9,7 @@ import requests
from pydantic import BaseModel, ConfigDict, Field
from pydantic.fields import PrivateAttr
-from frigate.const import DEFAULT_ATTRIBUTE_LABEL_MAP
+from frigate.const import DEFAULT_ATTRIBUTE_LABEL_MAP, MODEL_CACHE_DIR
from frigate.plus import PlusApi
from frigate.util.builtin import generate_color_palette, load_labels
@@ -117,7 +117,7 @@ class ModelConfig(BaseModel):
return
model_id = self.path[7:]
- self.path = f"/config/model_cache/{model_id}"
+ self.path = os.path.join(MODEL_CACHE_DIR, model_id)
model_info_path = f"{self.path}.json"
# download the model if it doesn't exist
diff --git a/frigate/detectors/plugins/hailo8l.py b/frigate/detectors/plugins/hailo8l.py
index b66d78bd..69e86bc5 100644
--- a/frigate/detectors/plugins/hailo8l.py
+++ b/frigate/detectors/plugins/hailo8l.py
@@ -22,6 +22,7 @@ except ModuleNotFoundError:
from pydantic import BaseModel, Field
from typing_extensions import Literal
+from frigate.const import MODEL_CACHE_DIR
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import BaseDetectorConfig
@@ -57,7 +58,7 @@ class HailoDetector(DetectionApi):
self.h8l_tensor_format = detector_config.model.input_tensor
self.h8l_pixel_format = detector_config.model.input_pixel_format
self.model_url = "https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.11.0/hailo8l/ssd_mobilenet_v1.hef"
- self.cache_dir = "/config/model_cache/h8l_cache"
+ self.cache_dir = os.path.join(MODEL_CACHE_DIR, "h8l_cache")
self.expected_model_filename = "ssd_mobilenet_v1.hef"
output_type = "FLOAT32"
diff --git a/frigate/detectors/plugins/openvino.py b/frigate/detectors/plugins/openvino.py
index 51e48530..d199317b 100644
--- a/frigate/detectors/plugins/openvino.py
+++ b/frigate/detectors/plugins/openvino.py
@@ -7,6 +7,7 @@ import openvino.properties as props
from pydantic import Field
from typing_extensions import Literal
+from frigate.const import MODEL_CACHE_DIR
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum
@@ -35,8 +36,10 @@ class OvDetector(DetectionApi):
logger.error(f"OpenVino model file {detector_config.model.path} not found.")
raise FileNotFoundError
- os.makedirs("/config/model_cache/openvino", exist_ok=True)
- self.ov_core.set_property({props.cache_dir: "/config/model_cache/openvino"})
+ os.makedirs(os.path.join(MODEL_CACHE_DIR, "openvino"), exist_ok=True)
+ self.ov_core.set_property(
+ {props.cache_dir: os.path.join(MODEL_CACHE_DIR, "openvino")}
+ )
self.interpreter = self.ov_core.compile_model(
model=detector_config.model.path, device_name=detector_config.device
)
diff --git a/frigate/detectors/plugins/rknn.py b/frigate/detectors/plugins/rknn.py
index df94d7b6..bc3d9ae0 100644
--- a/frigate/detectors/plugins/rknn.py
+++ b/frigate/detectors/plugins/rknn.py
@@ -6,6 +6,7 @@ from typing import Literal
from pydantic import Field
+from frigate.const import MODEL_CACHE_DIR
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum
@@ -17,7 +18,7 @@ supported_socs = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"]
supported_models = {ModelTypeEnum.yolonas: "^deci-fp16-yolonas_[sml]$"}
-model_cache_dir = "/config/model_cache/rknn_cache/"
+model_cache_dir = os.path.join(MODEL_CACHE_DIR, "rknn_cache/")
class RknnDetectorConfig(BaseDetectorConfig):
diff --git a/frigate/detectors/plugins/rocm.py b/frigate/detectors/plugins/rocm.py
index 60118d12..7c87edb5 100644
--- a/frigate/detectors/plugins/rocm.py
+++ b/frigate/detectors/plugins/rocm.py
@@ -9,6 +9,7 @@ import numpy as np
from pydantic import Field
from typing_extensions import Literal
+from frigate.const import MODEL_CACHE_DIR
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import (
BaseDetectorConfig,
@@ -116,7 +117,7 @@ class ROCmDetector(DetectionApi):
logger.info(f"AMD/ROCm: saving parsed model into {mxr_path}")
- os.makedirs("/config/model_cache/rocm", exist_ok=True)
+ os.makedirs(os.path.join(MODEL_CACHE_DIR, "rocm"), exist_ok=True)
migraphx.save(self.model, mxr_path)
logger.info("AMD/ROCm: model loaded")
diff --git a/frigate/output/birdseye.py b/frigate/output/birdseye.py
index 00f17c8f..8331eb64 100644
--- a/frigate/output/birdseye.py
+++ b/frigate/output/birdseye.py
@@ -16,7 +16,7 @@ import numpy as np
from frigate.comms.config_updater import ConfigSubscriber
from frigate.config import BirdseyeModeEnum, FfmpegConfig, FrigateConfig
-from frigate.const import BASE_DIR, BIRDSEYE_PIPE
+from frigate.const import BASE_DIR, BIRDSEYE_PIPE, INSTALL_DIR
from frigate.util.image import (
SharedMemoryFrameManager,
copy_yuv_to_position,
@@ -297,7 +297,9 @@ class BirdsEyeFrameManager:
birdseye_logo = cv2.imread(custom_logo_files[0], cv2.IMREAD_UNCHANGED)
if birdseye_logo is None:
- logo_files = glob.glob("/opt/frigate/frigate/images/birdseye.png")
+ logo_files = glob.glob(
+ os.path.join(INSTALL_DIR, "frigate/images/birdseye.png")
+ )
if len(logo_files) > 0:
birdseye_logo = cv2.imread(logo_files[0], cv2.IMREAD_UNCHANGED)
diff --git a/frigate/test/http_api/base_http_test.py b/frigate/test/http_api/base_http_test.py
index e7a1d03e..4fa4a5b5 100644
--- a/frigate/test/http_api/base_http_test.py
+++ b/frigate/test/http_api/base_http_test.py
@@ -9,6 +9,7 @@ from playhouse.sqliteq import SqliteQueueDatabase
from frigate.api.fastapi_app import create_fastapi_app
from frigate.config import FrigateConfig
+from frigate.const import BASE_DIR, CACHE_DIR
from frigate.models import Event, Recordings, ReviewSegment
from frigate.review.types import SeverityEnum
from frigate.test.const import TEST_DB, TEST_DB_CLEANUPS
@@ -72,19 +73,19 @@ class BaseTestHttp(unittest.TestCase):
"total": 67.1,
"used": 16.6,
},
- "/media/frigate/clips": {
+ os.path.join(BASE_DIR, "clips"): {
"free": 42429.9,
"mount_type": "ext4",
"total": 244529.7,
"used": 189607.0,
},
- "/media/frigate/recordings": {
+ os.path.join(BASE_DIR, "recordings"): {
"free": 0.2,
"mount_type": "ext4",
"total": 8.0,
"used": 7.8,
},
- "/tmp/cache": {
+ CACHE_DIR: {
"free": 976.8,
"mount_type": "tmpfs",
"total": 1000.0,
diff --git a/frigate/test/test_config.py b/frigate/test/test_config.py
index e6cb1274..5a3deefd 100644
--- a/frigate/test/test_config.py
+++ b/frigate/test/test_config.py
@@ -854,9 +854,9 @@ class TestConfig(unittest.TestCase):
assert frigate_config.model.merged_labelmap[0] == "person"
def test_plus_labelmap(self):
- with open("/config/model_cache/test", "w") as f:
+ with open(os.path.join(MODEL_CACHE_DIR, "test"), "w") as f:
json.dump(self.plus_model_info, f)
- with open("/config/model_cache/test.json", "w") as f:
+ with open(os.path.join(MODEL_CACHE_DIR, "test.json"), "w") as f:
json.dump(self.plus_model_info, f)
config = {
diff --git a/frigate/test/test_http.py b/frigate/test/test_http.py
index 21379425..66f9d22a 100644
--- a/frigate/test/test_http.py
+++ b/frigate/test/test_http.py
@@ -12,6 +12,7 @@ from playhouse.sqliteq import SqliteQueueDatabase
from frigate.api.fastapi_app import create_fastapi_app
from frigate.config import FrigateConfig
+from frigate.const import BASE_DIR, CACHE_DIR
from frigate.models import Event, Recordings, Timeline
from frigate.stats.emitter import StatsEmitter
from frigate.test.const import TEST_DB, TEST_DB_CLEANUPS
@@ -76,19 +77,19 @@ class TestHttp(unittest.TestCase):
"total": 67.1,
"used": 16.6,
},
- "/media/frigate/clips": {
+ os.path.join(BASE_DIR, "clips"): {
"free": 42429.9,
"mount_type": "ext4",
"total": 244529.7,
"used": 189607.0,
},
- "/media/frigate/recordings": {
+ os.path.join(BASE_DIR, "recordings"): {
"free": 0.2,
"mount_type": "ext4",
"total": 8.0,
"used": 7.8,
},
- "/tmp/cache": {
+ CACHE_DIR: {
"free": 976.8,
"mount_type": "tmpfs",
"total": 1000.0,
diff --git a/frigate/util/config.py b/frigate/util/config.py
index d456c755..b6b270c9 100644
--- a/frigate/util/config.py
+++ b/frigate/util/config.py
@@ -14,7 +14,7 @@ from frigate.util.services import get_video_properties
logger = logging.getLogger(__name__)
CURRENT_CONFIG_VERSION = "0.15-1"
-DEFAULT_CONFIG_FILE = "/config/config.yml"
+DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, "config.yml")
def find_config_file() -> str:
diff --git a/frigate/util/model.py b/frigate/util/model.py
index ce2c9538..6e93cb38 100644
--- a/frigate/util/model.py
+++ b/frigate/util/model.py
@@ -12,6 +12,8 @@ except ImportError:
# openvino is not included
pass
+from frigate.const import MODEL_CACHE_DIR
+
logger = logging.getLogger(__name__)
@@ -46,7 +48,8 @@ def get_ort_providers(
# so it is not enabled by default
if device == "Tensorrt":
os.makedirs(
- "/config/model_cache/tensorrt/ort/trt-engines", exist_ok=True
+ os.path.join(MODEL_CACHE_DIR, "tensorrt/ort/trt-engines"),
+ exist_ok=True,
)
device_id = 0 if not device.isdigit() else int(device)
providers.append(provider)
@@ -57,19 +60,23 @@ def get_ort_providers(
and os.environ.get("USE_FP_16", "True") != "False",
"trt_timing_cache_enable": True,
"trt_engine_cache_enable": True,
- "trt_timing_cache_path": "/config/model_cache/tensorrt/ort",
- "trt_engine_cache_path": "/config/model_cache/tensorrt/ort/trt-engines",
+ "trt_timing_cache_path": os.path.join(
+ MODEL_CACHE_DIR, "tensorrt/ort"
+ ),
+ "trt_engine_cache_path": os.path.join(
+ MODEL_CACHE_DIR, "tensorrt/ort/trt-engines"
+ ),
}
)
else:
continue
elif provider == "OpenVINOExecutionProvider":
- os.makedirs("/config/model_cache/openvino/ort", exist_ok=True)
+ os.makedirs(os.path.join(MODEL_CACHE_DIR, "openvino/ort"), exist_ok=True)
providers.append(provider)
options.append(
{
"arena_extend_strategy": "kSameAsRequested",
- "cache_dir": "/config/model_cache/openvino/ort",
+ "cache_dir": os.path.join(MODEL_CACHE_DIR, "openvino/ort"),
"device_type": device,
}
)
@@ -103,7 +110,7 @@ class ONNXModelRunner:
self.type = "ov"
self.ov = ov.Core()
self.ov.set_property(
- {ov.properties.cache_dir: "/config/model_cache/openvino"}
+ {ov.properties.cache_dir: os.path.join(MODEL_CACHE_DIR, "openvino")}
)
self.interpreter = self.ov.compile_model(
model=model_path, device_name=device
+80 -52
View File
@@ -1,42 +1,42 @@
{
lib,
stdenv,
callPackage,
python312,
fetchFromGitHub,
fetchurl,
rocmPackages,
sqlite-vec,
frigate,
nixosTests,
}:
let
version = "0.14.1";
version = "0.15.0";
src = fetchFromGitHub {
name = "frigate-${version}-source";
owner = "blakeblackshear";
repo = "frigate";
tag = "v${version}";
hash = "sha256-PfUlo9ua4SVcQJTfmSVoEXHH1MUJ8A/w3kJHFpEzll8=";
hash = "sha256-qgiVE5UUjxRLya0mD2vfKdzdTdy5ThYOrHAGoFQ9PWA=";
};
frigate-web = callPackage ./web.nix {
inherit version src;
};
python = python312.override {
self = python;
packageOverrides = self: super: {
};
};
python = python312;
# Tensorflow audio model
# https://github.com/blakeblackshear/frigate/blob/v0.15.0/docker/main/Dockerfile#L125
tflite_audio_model = fetchurl {
url = "https://www.kaggle.com/api/v1/models/google/yamnet/tfLite/classification-tflite/1/download";
hash = "sha256-G5cbITJ2AnOl+49dxQToZ4OyeFO7MTXVVa4G8eHjZfM=";
};
# Tensorflow Lite models
# https://github.com/blakeblackshear/frigate/blob/v0.13.0/docker/main/Dockerfile#L96-L97
# https://github.com/blakeblackshear/frigate/blob/v0.15.0/docker/main/Dockerfile#L115-L117
tflite_cpu_model = fetchurl {
url = "https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess.tflite";
hash = "sha256-kLszpjTgQZFMwYGapd+ZgY5sOWxNLblSwP16nP/Eck8=";
@@ -46,9 +46,11 @@ let
hash = "sha256-Siviu7YU5XbVbcuRT6UnUr8PE0EVEnENNV2X+qGzVkE=";
};
# OpenVino models
# https://github.com/blakeblackshear/frigate/blob/v0.13.0/docker/main/Dockerfile#L101
openvino_model = fetchurl {
# TODO: OpenVino model
# https://github.com/blakeblackshear/frigate/blob/v0.15.0/docker/main/Dockerfile#L64-L77
# https://github.com/blakeblackshear/frigate/blob/v0.15.0/docker/main/Dockerfile#L120-L123
# Convert https://www.kaggle.com/models/tensorflow/ssdlite-mobilenet-v2 with https://github.com/blakeblackshear/frigate/blob/v0.15.0/docker/main/build_ov_model.py into OpenVino IR format
coco_91cl_bkgr = fetchurl {
url = "https://github.com/openvinotoolkit/open_model_zoo/raw/master/data/dataset_classes/coco_91cl_bkgr.txt";
hash = "sha256-5Cj2vEiWR8Z9d2xBmVoLZuNRv4UOuxHSGZQWTJorXUQ=";
};
@@ -60,84 +62,101 @@ python.pkgs.buildPythonApplication rec {
inherit src;
postPatch = ''
echo 'VERSION = "${version}"' > frigate/version.py
patches = [ ./constants.patch ];
substituteInPlace frigate/app.py \
--replace-fail "Router(migrate_db)" 'Router(migrate_db, "${placeholder "out"}/share/frigate/migrations")'
postPatch =
''
echo 'VERSION = "${version}"' > frigate/version.py
substituteInPlace frigate/const.py \
--replace-fail "/media/frigate" "/var/lib/frigate" \
--replace-fail "/tmp/cache" "/var/cache/frigate" \
--replace-fail "/config" "/var/lib/frigate" \
--replace-fail "{CONFIG_DIR}/model_cache" "/var/cache/frigate/model_cache"
substituteInPlace \
frigate/app.py \
frigate/test/test_{http,storage}.py \
frigate/test/http_api/base_http_test.py \
--replace-fail "Router(migrate_db)" 'Router(migrate_db, "${placeholder "out"}/share/frigate/migrations")'
substituteInPlace frigate/comms/{config,detections,events}_updater.py frigate/comms/inter_process.py \
--replace-fail "ipc:///tmp/cache" "ipc:///run/frigate"
substituteInPlace frigate/const.py \
--replace-fail "/opt/frigate" "${placeholder "out"}/${python.sitePackages}" \
--replace-fail "/media/frigate" "/var/lib/frigate" \
--replace-fail "/tmp/cache" "/var/cache/frigate" \
--replace-fail "/config" "/var/lib/frigate" \
--replace-fail "{CONFIG_DIR}/model_cache" "/var/cache/frigate/model_cache"
substituteInPlace frigate/detectors/detector_config.py \
--replace-fail "/labelmap.txt" "${placeholder "out"}/share/frigate/labelmap.txt"
substituteInPlace frigate/comms/{config,embeddings}_updater.py frigate/comms/{zmq_proxy,inter_process}.py \
--replace-fail "ipc:///tmp/cache" "ipc:///run/frigate"
substituteInPlace frigate/output/birdseye.py frigate/api/media.py \
--replace-fail "/opt/frigate/" "${placeholder "out"}/${python.sitePackages}/"
substituteInPlace frigate/db/sqlitevecq.py \
--replace-fail "/usr/local/lib/vec0" "${lib.getLib sqlite-vec}/lib/vec0${stdenv.hostPlatform.extensions.sharedLibrary}"
# work around onvif-zeep idiosyncrasy
substituteInPlace frigate/ptz/onvif.py \
--replace-fail dist-packages site-packages
''
+ lib.optionalString (stdenv.hostPlatform == "x86_64-linux") ''
substituteInPlace frigate/detectors/plugins/rocm.py \
--replace-fail "/opt/rocm/bin/rocminfo" "rocminfo" \
--replace-fail "/opt/rocm/lib" "${rocmPackages.clr}/lib"
# provide default paths for models and maps that are shipped with frigate
substituteInPlace frigate/config.py \
--replace-fail "/cpu_model.tflite" "${tflite_cpu_model}" \
--replace-fail "/edgetpu_model.tflite" "${tflite_edgetpu_model}"
''
+ ''
# provide default paths for models and maps that are shipped with frigate
substituteInPlace frigate/config/config.py \
--replace-fail "/cpu_model.tflite" "${tflite_cpu_model}" \
--replace-fail "/edgetpu_model.tflite" "${tflite_edgetpu_model}"
substituteInPlace frigate/events/audio.py \
--replace-fail "/cpu_audio_model.tflite" "${placeholder "out"}/share/frigate/cpu_audio_model.tflite" \
--replace-fail "/audio-labelmap.txt" "${placeholder "out"}/share/frigate/audio-labelmap.txt"
substituteInPlace frigate/detectors/detector_config.py \
--replace-fail "/labelmap.txt" "${placeholder "out"}/share/frigate/labelmap.txt"
substituteInPlace frigate/test/test_config.py \
--replace-fail "(MODEL_CACHE_DIR" "('/build/model_cache'" \
--replace-fail "/config/model_cache" "/build/model_cache"
substituteInPlace frigate/events/audio.py \
--replace-fail "/cpu_audio_model.tflite" "${placeholder "out"}/share/frigate/cpu_audio_model.tflite" \
--replace-fail "/audio-labelmap.txt" "${placeholder "out"}/share/frigate/audio-labelmap.txt"
substituteInPlace frigate/api/preview.py \
--replace-fail "/media/frigate" "/var/lib/frigate"
'';
# work around onvif-zeep idiosyncrasy
substituteInPlace frigate/ptz/onvif.py \
--replace-fail dist-packages site-packages
'';
dontBuild = true;
propagatedBuildInputs = with python.pkgs; [
dependencies = with python.pkgs; [
# docker/main/requirements.txt
scikit-build
# docker/main/requirements-wheel.txt
aiohttp
click
distutils
flask
flask-limiter
fastapi
google-generativeai
imutils
joserfc
markupsafe
matplotlib
norfair
numpy
ollama
onnxruntime
onvif-zeep
openai
opencv4
openvino
pandas
paho-mqtt
pandas
pathvalidate
peewee
peewee-migrate
psutil
py3nvml
pydantic
pytz
pyyaml
py-vapid
pywebpush
pyzmq
requests
ruamel-yaml
scipy
setproctitle
slowapi
starlette
starlette-context
tensorflow-bin
transformers
tzlocal
unidecode
uvicorn
ws4py
];
@@ -153,7 +172,7 @@ python.pkgs.buildPythonApplication rec {
tar --extract --gzip --file ${tflite_audio_model}
cp --no-preserve=mode ./1.tflite $out/share/frigate/cpu_audio_model.tflite
cp --no-preserve=mode ${openvino_model} $out/share/frigate/coco_91cl_bkgr.txt
cp --no-preserve=mode ${coco_91cl_bkgr} $out/share/frigate/coco_91cl_bkgr.txt
sed -i 's/truck/car/g' $out/share/frigate/coco_91cl_bkgr.txt
runHook postInstall
@@ -163,6 +182,16 @@ python.pkgs.buildPythonApplication rec {
pytestCheckHook
];
# interpreter crash in onnxruntime on aarch64-linux
doCheck = !(stdenv.hostPlatform.system == "aarch64-linux");
preCheck = ''
# Unavailable in the build sandbox
substituteInPlace frigate/const.py \
--replace-fail "/var/lib/frigate" "$TMPDIR/" \
--replace-fail "/var/cache/frigate" "$TMPDIR"
'';
disabledTests = [
# Test needs network access
"test_plus_labelmap"
@@ -171,8 +200,7 @@ python.pkgs.buildPythonApplication rec {
passthru = {
web = frigate-web;
inherit python;
pythonPath =
(python.pkgs.makePythonPath propagatedBuildInputs) + ":${frigate}/${python.sitePackages}";
pythonPath = (python.pkgs.makePythonPath dependencies) + ":${frigate}/${python.sitePackages}";
tests = {
inherit (nixosTests) frigate;
};
+7 -6
View File
@@ -16,20 +16,21 @@ buildNpmPackage {
--replace-fail "--base=/BASE_PATH/" ""
substituteInPlace \
src/views/system/StorageMetrics.tsx \
src/components/card/{AnimatedEvent,Export,Review}Card.tsx \
src/components/timeline/EventSegment.tsx \
src/pages/Exports.tsx \
src/components/preview/ScrubbablePreview.tsx \
src/components/card/ExportCard.tsx \
src/components/card/ReviewCard.tsx \
src/components/card/AnimatedEventCard.tsx \
src/components/player/PreviewThumbnailPlayer.tsx \
src/views/system/StorageMetrics.tsx \
src/components/timeline/EventSegment.tsx \
--replace-fail "/media/frigate" "/var/lib/frigate" \
substituteInPlace src/views/system/StorageMetrics.tsx \
--replace-fail "/tmp/cache" "/var/cache/frigate"
'';
npmDepsHash = "sha256-PLs3oCWQjK38eHgdQt2Qkj7YqkfanC8JnLMpzMjNfxU=";
env.NODE_OPTIONS = "--no-experimental-require-module";
npmDepsHash = "sha256-tPwydUJtFDJs17q0haJaUVEkxua+nHfmwQ9Z9Y24ca8=";
installPhase = ''
cp -rv dist/ $out
+5 -1
View File
@@ -18,7 +18,11 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-izMTTZrp4aizq5jS51BNtq3lv9Kr+xI7scZfYKXA/oY=";
};
pythonRelaxDeps = [ "aiofiles" ];
pythonRelaxDeps = [
"aiofiles"
"httpx"
"msgspec"
];
build-system = with python3.pkgs; [ poetry-core ];
+2 -2
View File
@@ -35,11 +35,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "haproxy";
version = "3.1.4";
version = "3.1.5";
src = fetchurl {
url = "https://www.haproxy.org/download/${lib.versions.majorMinor finalAttrs.version}/src/haproxy-${finalAttrs.version}.tar.gz";
hash = "sha256-nom9ByiyadIA3P483vO1yLIepovxStieOm92vacB5/4=";
hash = "sha256-NuKBb2l/OJIzE33H7JVZ+qdwMkM5WtEprwkbY/Twmc8=";
};
buildInputs =
+2 -2
View File
@@ -11,14 +11,14 @@ php.buildComposerProject2 (finalAttrs: {
src = fetchFromGitHub {
owner = "laravel";
repo = "installer";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-XE1KYOlWehj1peSNj3sKNr6CKchCxRNpIjXHq7slVME=";
};
nativeBuildInputs = [ makeWrapper ];
composerLock = ./composer.lock;
vendorHash = "sha256-jUg0hmkShzK1CAO3+Btqe3/5GFKVxRKDtIxmUuU3EdU=";
vendorHash = "sha256-Kid5Vp42Pme1AO9fI9e/f24Cdzi1uV8qEULFEvQDKnE=";
postInstall = ''
wrapProgram $out/bin/laravel \
+2 -2
View File
@@ -11,14 +11,14 @@
}:
stdenv.mkDerivation rec {
version = "1.7.3";
version = "1.7.4";
pname = "libgeotiff";
src = fetchFromGitHub {
owner = "OSGeo";
repo = "libgeotiff";
rev = version;
hash = "sha256-FUvWZR5BrGEMnApxCBQBwmmi9NU7Tx6Ziq3mbIxjqfc=";
hash = "sha256-oiuooLejCRI1DFTjhgYoePtKS+OAGnW6OBzgITcY500=";
};
outputs = [
-102
View File
@@ -1,102 +0,0 @@
{ lib
, stdenv
, fetchurl
, appimageTools
, unzip
, makeWrapper
# Notice: graphs will not sync without matching upstream's major electron version
# the specific electron version is set at top-level file to preserve override interface.
# whenever updating this package also sync electron version at top-level file.
, electron_27
, autoPatchelfHook
, git
, nix-update-script
}:
stdenv.mkDerivation (finalAttrs:
let
inherit (finalAttrs) pname version src;
inherit (stdenv.hostPlatform) system;
selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
suffix = selectSystem {
x86_64-linux = "linux-x64-${version}.AppImage";
x86_64-darwin = "darwin-x64-${version}.zip";
aarch64-darwin = "darwin-arm64-${version}.zip";
};
hash = selectSystem {
x86_64-linux = "sha256-XROuY2RlKnGvK1VNvzauHuLJiveXVKrIYPppoz8fCmc=";
x86_64-darwin = "sha256-0i9ozqBSeV/y8v+YEmQkbY0V6JHOv6tKub4O5Fdx2fQ=";
aarch64-darwin = "sha256-Uvv96XWxpFj14wPH0DwPT+mlf3Z2dy1g/z8iBt5Te7Q=";
};
in
{
pname = "logseq";
version = "0.10.9";
src = fetchurl {
inherit hash;
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-${suffix}";
name = lib.optionalString stdenv.hostPlatform.isLinux "logseq-${version}.AppImage";
};
nativeBuildInputs = [ makeWrapper ]
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ unzip ];
buildInputs = [ (lib.getLib stdenv.cc.cc) ];
dontUnpack = stdenv.hostPlatform.isLinux;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
'' + lib.optionalString stdenv.hostPlatform.isLinux (
let
appimageContents = appimageTools.extract { inherit pname src version; };
in
''
mkdir -p $out/bin $out/share/logseq $out/share/applications
cp -a ${appimageContents}/{locales,resources} $out/share/logseq
cp -a ${appimageContents}/Logseq.desktop $out/share/applications/logseq.desktop
# remove the `git` in `dugite` because we want the `git` in `nixpkgs`
chmod +w -R $out/share/logseq/resources/app/node_modules/dugite/git
chmod +w $out/share/logseq/resources/app/node_modules/dugite
rm -rf $out/share/logseq/resources/app/node_modules/dugite/git
chmod -w $out/share/logseq/resources/app/node_modules/dugite
mkdir -p $out/share/pixmaps
ln -s $out/share/logseq/resources/app/icons/logseq.png $out/share/pixmaps/logseq.png
substituteInPlace $out/share/applications/logseq.desktop \
--replace Exec=Logseq Exec=logseq \
--replace Icon=Logseq Icon=logseq
''
) + lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications/Logseq.app,bin}
cp -R . $out/Applications/Logseq.app
makeWrapper $out/Applications/Logseq.app/Contents/MacOS/Logseq $out/bin/logseq
'' + ''
runHook postInstall
'';
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
# set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs
makeWrapper ${electron_27}/bin/electron $out/bin/logseq \
--set "LOCAL_GIT_DIRECTORY" ${git} \
--add-flags $out/share/logseq/resources/app \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
homepage = "https://github.com/logseq/logseq";
changelog = "https://github.com/logseq/logseq/releases/tag/${version}";
license = lib.licenses.agpl3Plus;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ cheeseecake ];
platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
mainProgram = "logseq";
};
})
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "mariadb-galera";
version = "26.4.21";
version = "26.4.22";
src = fetchFromGitHub {
owner = "codership";
repo = "galera";
rev = "release_${version}";
hash = "sha256-mXnQOs2WNdXORBqcfQPgDoJjbyrpypGDOkgP09JZ9Qo=";
hash = "sha256-Vi5gLl53ytgmAGYN/dHLDAaUqNb8mHmeqB/I6Sdbn1I=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "miriway";
version = "24.11.1";
version = "25.02";
src = fetchFromGitHub {
owner = "Miriway";
repo = "Miriway";
tag = "v${finalAttrs.version}";
hash = "sha256-DphzqU0jT2NE2dSDuQf6BQIjXTwJuPiOjfxk9N9YmaQ=";
hash = "sha256-F8zmIuV0IszMZpeOhKAbvrjyA4EQH7JWH10rv2maCzk=";
};
postPatch = ''
+7 -2
View File
@@ -11,20 +11,23 @@
gnutls,
perl,
libmaxminddb,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ncdc";
version = "1.24.1";
version = "1.25";
src = fetchurl {
url = "https://dev.yorhel.nl/download/ncdc-${finalAttrs.version}.tar.gz";
hash = "sha256-Koq5rX1D8Bj8c7qLq9aJ36RKuozsU7iOR3AYXLl3ePc=";
# Hashes listed at https://dev.yorhel.nl/download
sha256 = "b9be58e7dbe677f2ac1c472f6e76fad618a65e2f8bf1c7b9d3d97bc169feb740";
};
nativeBuildInputs = [
perl
pkg-config
versionCheckHook
];
buildInputs = [
ncurses
@@ -38,6 +41,8 @@ stdenv.mkDerivation (finalAttrs: {
configureFlags = [ "--with-geoip" ];
doInstallCheck = true;
meta = {
changelog = "https://dev.yorhel.nl/ncdc/changes";
description = "Modern and lightweight direct connect client with a friendly ncurses interface";
+60
View File
@@ -0,0 +1,60 @@
{
lib,
stdenv,
# Need macOS 15+ for nested virtualization.
apple-sdk_15,
buildGoModule,
fetchFromGitLab,
nix-update-script,
versionCheckHook,
}:
buildGoModule rec {
pname = "nesting";
version = "0.3.0";
src = fetchFromGitLab {
group = "gitlab-org";
owner = "fleeting";
repo = "nesting";
tag = "v${version}";
hash = "sha256-ejoLld1TmwaqTlSyuzyEVEqLyEehu6g7yc0H0Cvkqp4=";
};
vendorHash = "sha256-CyXlK/0VWMFlwSfisoaNCRdknasp8faN/K/zdyRhAQQ=";
subPackages = [ "cmd/nesting" ];
# See https://gitlab.com/gitlab-org/fleeting/nesting/-/blob/v0.3.0/Makefile?ref_type=tags#L22-24.
#
# Needed for "nesting version" to not show "dev".
ldflags = [
"-X gitlab.com/gitlab-org/fleeting/nesting.NAME=nesting"
"-X gitlab.com/gitlab-org/fleeting/nesting.VERSION=v${version}"
"-X gitlab.com/gitlab-org/fleeting/nesting.REVISION=${src.rev}"
];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_15 ];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "version";
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Basic and opinionated daemon that sits in front of virtualization platforms";
homepage = "https://gitlab.com/gitlab-org/fleeting/nesting";
license = lib.licenses.mit;
mainProgram = "nesting";
maintainers = with lib.maintainers; [ commiterate ];
badPlatforms = [
# Only supports AArch64 for Darwin.
"x86_64-darwin"
];
};
}
+406 -466
View File
File diff suppressed because it is too large Load Diff
+12 -5
View File
@@ -2,22 +2,29 @@
php,
fetchFromGitHub,
lib,
versionCheckHook,
}:
(php.withExtensions ({ enabled, all }: enabled ++ [ all.pcov ])).buildComposerProject2
(finalAttrs: {
pname = "paratest";
version = "7.6.0";
version = "7.8.2";
src = fetchFromGitHub {
owner = "paratestphp";
repo = "paratest";
rev = "v${finalAttrs.version}";
hash = "sha256-p7m/MDHy+NOh+MnoIWy74Ipm/5hevp4x6Qwn4uPIEAM=";
tag = "v${finalAttrs.version}";
hash = "sha256-OCZOpCjFORk5ZcImM8mArQSgK9MLneTC6TxGTNPqvWk=";
};
composerLock = ./composer.lock;
vendorHash = "sha256-NQWwfSYgvAmvWnr563vAKh+IdFRDB/CJZReDUzftOvw=";
vendorHash = "sha256-c2bBhJ9NvNk7Cz5RmNfgN2Q9SUV0iZ3/IhvzuAJtlQk=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
changelog = "https://github.com/paratestphp/paratest/releases/tag/v${finalAttrs.version}";
@@ -25,6 +32,6 @@
homepage = "https://github.com/paratestphp/paratest";
license = lib.licenses.mit;
mainProgram = "paratest";
maintainers = [ ];
maintainers = lib.teams.php.members;
};
})
@@ -1,76 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
electron_29,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}:
let
electron = electron_29;
in
stdenv.mkDerivation rec {
pname = "passky-desktop";
version = "8.1.2";
src = fetchFromGitHub {
owner = "Rabbit-Company";
repo = "Passky-Desktop";
tag = "v${version}";
sha256 = "sha256-QQ0+qIkDPNCHeWmcF6FkbDrrt/r3fIkNi0dv6XlV1rc=";
};
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/passky
cp -r "." "$out/share/passky/electron"
local resolution
for icon in $out/share/passky/electron/images/icons/icon*.png; do
resolution=''${icon%".png"}
resolution=''${resolution##*/icon-}
mkdir -p "$out/share/icons/hicolor/''${resolution}/apps"
ln -s "$icon" "$out/share/icons/hicolor/''${resolution}/apps/passky.png"
done
mkdir "$out/share/applications"
makeWrapper ${electron}/bin/electron "$out/bin/passky" \
--add-flags "$out/share/passky/electron/" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "passky";
type = "Application";
desktopName = "Passky";
comment = "Simple, modern, open source and secure password manager.";
icon = "passky";
exec = "passky %U";
terminal = false;
categories = [ "Utility" ];
startupWMClass = "Passky";
})
];
meta = with lib; {
description = "Simple, modern, lightweight, open source and secure password manager";
homepage = "https://passky.org";
downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
changelog = "https://github.com/Rabbit-Company/Passky-Desktop/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ akkesm ];
mainProgram = "passky";
platforms = platforms.unix;
};
}
+343 -363
View File
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -6,18 +6,17 @@
php.buildComposerProject2 (finalAttrs: {
pname = "pest";
version = "3.3.1";
version = "3.7.4";
src = fetchFromGitHub {
owner = "pestphp";
repo = "pest";
rev = "v${finalAttrs.version}";
hash = "sha256-HLUzXL05hcTLcBhKvf/PPJoCmEYdFqNkBbiRAQfR9ik=";
tag = "v${finalAttrs.version}";
hash = "sha256-ddsdVx/Vsg7GG11fGASouBU3HAJLSjs1AQGHx52TWzA=";
};
composerLock = ./composer.lock;
vendorHash = "sha256-rd15W3aHot1MtLGZeU2QREnIE5wtNw28OSpli3Nye5Y=";
vendorHash = "sha256-rOJ6PFp4Xfe89usoH455EAT30d2Tu3zd3+C/6K/kGBw=";
meta = {
changelog = "https://github.com/pestphp/pest/releases/tag/v${finalAttrs.version}";
@@ -25,6 +24,6 @@ php.buildComposerProject2 (finalAttrs: {
homepage = "https://pestphp.com";
license = lib.licenses.mit;
mainProgram = "pest";
maintainers = [ ];
maintainers = lib.teams.php.members;
};
})
+6 -4
View File
@@ -2,6 +2,7 @@
lib,
fetchFromGitHub,
php,
versionCheckHook,
}:
php.buildComposerProject2 (finalAttrs: {
@@ -15,12 +16,13 @@ php.buildComposerProject2 (finalAttrs: {
hash = "sha256-irN1Dnov6vDiU4xGsf2nxz7/kz1YOMq0yOLYt4HY1EM=";
};
vendorHash = "sha256-jcMfGPnGoSP8E1JXPEqKr53amV0d08GvGfe8niwM8Q4=";
vendorHash = "sha256-SDLpl2gBvtVjREfcy1WDFqsGRK1fKr2wKPuBkPhApNI=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
postInstallCheck = ''
$out/bin/phel --version
'';
meta = {
changelog = "https://github.com/phel-lang/phel-lang/releases/tag/v${finalAttrs.version}";
+11 -6
View File
@@ -3,23 +3,21 @@
php,
fetchFromGitHub,
makeBinaryWrapper,
versionCheckHook,
}:
php.buildComposerProject2 (finalAttrs: {
pname = "phpdocumentor";
version = "3.6.0";
version = "3.7.1";
src = fetchFromGitHub {
owner = "phpDocumentor";
repo = "phpDocumentor";
tag = "v${finalAttrs.version}";
hash = "sha256-8TQlqXhZ3rHmOAuxsBYa+7JD+SxMQY0NZgCyElStFag=";
hash = "sha256-ylwv+tW5Lyx1rooUy7wjinsutGpbLvIvXuLDGWLv24g=";
};
vendorHash = "sha256-LESUhPjpj1KkFkB+JEOCGU9c6LuDQJB5Dtc/q5Bt3Og=";
# Needed because of the unbound version constraint on phpdocumentor/json-path
composerStrictValidation = false;
vendorHash = "sha256-oPhe4yfOdsguXS3dF62mTr0+J1pfphsVJkMKR++c8go=";
nativeBuildInputs = [ makeBinaryWrapper ];
@@ -29,6 +27,13 @@ php.buildComposerProject2 (finalAttrs: {
--set-default APP_LOG_DIR /tmp/log
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
changelog = "https://github.com/phpDocumentor/phpDocumentor/releases/tag/v${finalAttrs.version}";
description = "PHP documentation generator";
+9 -2
View File
@@ -2,6 +2,7 @@
lib,
php82,
fetchFromGitHub,
versionCheckHook,
}:
php82.buildComposerProject2 (finalAttrs: {
@@ -11,11 +12,17 @@ php82.buildComposerProject2 (finalAttrs: {
src = fetchFromGitHub {
owner = "consolidation";
repo = "robo";
rev = finalAttrs.version;
tag = finalAttrs.version;
hash = "sha256-bAT4jHvqWeYcACeyGtBwVBA2Rz+AvkZcUGLDwSf+fLg=";
};
vendorHash = "sha256-PYtZy6c/Z1GTcYyfU77uJjXCzQSfBaNkon8kqGyVq+o=";
vendorHash = "sha256-vketnTu5VEgt3HBbtnTppWl3+sSSIsCB2MpvL27bxv4=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
changelog = "https://github.com/consolidation/robo/blob/${finalAttrs.version}/CHANGELOG.md";
@@ -6,11 +6,11 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "signal-desktop";
version = "7.42.0";
version = "7.44.0";
src = fetchurl {
url = "https://updates.signal.org/desktop/signal-desktop-mac-universal-${finalAttrs.version}.dmg";
hash = "sha256-N/BgLpEvpcl29+AN0zZDBGBwkYqYqjW953jfdwm5+/4=";
hash = "sha256-SQWQDVxHPAf4tVorIcqTWfZVYRF3wgwfHWG8VhZubyA=";
};
sourceRoot = ".";
@@ -2,7 +2,7 @@
callPackage ./generic.nix { } rec {
pname = "signal-desktop";
dir = "Signal";
version = "7.42.0";
version = "7.44.0";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
hash = "sha256-LuqE2SE6RurcwU5fl3uOJNtNZTBTR+xO2W6z98Gv53A=";
hash = "sha256-x7JK2HiaEXplBqJnrbgq7XkrdVGt+gGu4tlv6lNZ1Ok=";
}
+5 -5
View File
@@ -11,7 +11,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tideways-cli";
version = "1.2.6";
version = "1.2.8";
nativeBuildInputs = [ installShellFiles ];
@@ -38,19 +38,19 @@ stdenvNoCC.mkDerivation (finalAttrs: {
sources = {
"x86_64-linux" = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/tideways/cli/${finalAttrs.version}/tideways-cli_linux_amd64-${finalAttrs.version}.tar.gz";
hash = "sha256-sKa+MgbzdudDCMYOHjzBebhQsxQ79qWDx855uWbbo3Y=";
hash = "sha256-eIgCUgyjGDJ1cPVJb3tuN45VrQGXegbcxUGYj4BRQ/k=";
};
"aarch64-linux" = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/tideways/cli/${finalAttrs.version}/tideways-cli_linux_arm64-${finalAttrs.version}.tar.gz";
hash = "sha256-BDtut3oJI9dmIL77R4BhGVnEJrMj0TVdNUNkO7kie10=";
hash = "sha256-4g7zXmz5e9PjmWV5WHc3zmDkJQyn6lYvDHqqhGsTZeg=";
};
"x86_64-darwin" = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/tideways/cli/${finalAttrs.version}/tideways-cli_macos_amd64-${finalAttrs.version}.tar.gz";
hash = "sha256-AoGlyUcL0LW5QWJYQt9keqdR14HtLEX3CODgX0sFsVw=";
hash = "sha256-++B5ut7a4kIEJS5cRlG2q7QQzNH9VQh6K1JdFWAJ6Ns=";
};
"aarch64-darwin" = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/tideways/cli/${finalAttrs.version}/tideways-cli_macos_arm64-${finalAttrs.version}.tar.gz";
hash = "sha256-3WtyT8NqJM+2gdmpxmA0ZoQcIna4Ma4bz1eyTbUSXJ0=";
hash = "sha256-ot3MQhOYHow7gh92CmEw5nw7OLuBTHMnXP/4GPAo0k4=";
};
};
+56
View File
@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "udpspeeder";
version = "20230206.0";
src = fetchFromGitHub {
owner = "wangyu-";
repo = "UDPspeeder";
tag = finalAttrs.version;
hash = "sha256-hrwkPSxY1DTEXt9vxDECDEJaoTDzBUS7rVI609uZwdU=";
};
preBuild = ''
echo "const char *gitversion = \"${finalAttrs.version}\";" > git_version.h # From Makefile
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$PWD"
'';
nativeBuildInputs = [
cmake
];
installPhase = ''
runHook preInstall
install -Dm755 ./speederv2 $out/bin/speederv2
runHook postInstall
'';
nativeCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/wangyu-/UDPspeeder";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
license = lib.licenses.mit;
changelog = "https://github.com/wangyu-/UDPspeeder/releases/tag/${finalAttrs.version}";
description = "Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)";
mainProgram = "speederv2";
};
})
@@ -1,18 +1,21 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
lib,
makeWrapper,
ncurses,
versionCheckHook,
nix-update-script,
}:
buildGoModule rec {
pname = "wtf";
pname = "wtfutil";
version = "0.43.0";
src = fetchFromGitHub {
owner = "wtfutil";
repo = pname;
repo = "wtf";
rev = "v${version}";
sha256 = "sha256-DFrA4bx+wSOxmt1CVA1oNiYVmcWeW6wpfR5F1tnhyDY=";
};
@@ -25,24 +28,37 @@ buildGoModule rec {
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
subPackages = [ "." ];
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
substituteInPlace flags/flags.go --replace-fail 'version := "dev"' 'version := "v${version}"'
'';
postInstall = ''
mv "$out/bin/wtf" "$out/bin/wtfutil"
wrapProgram "$out/bin/wtfutil" --prefix PATH : "${ncurses.dev}/bin"
'';
doInstallCheck = true;
# Darwin Error: mkdir /var/empty: file exists
nativeInstallCheckInputs = lib.optional (!stdenv.hostPlatform.isDarwin) [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Personal information dashboard for your terminal";
homepage = "https://wtfutil.com/";
changelog = "https://github.com/wtfutil/wtf/raw/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ kalbasit ];
maintainers = with maintainers; [
xiaoxiangmoe
kalbasit
];
mainProgram = "wtfutil";
platforms = platforms.linux ++ platforms.darwin;
};
+3 -5
View File
@@ -1114,15 +1114,13 @@ in
orgmode = prev.orgmode.overrideAttrs (oa: {
# Patch in tree-sitter-orgmode dependency
postPatch = ''
substituteInPlace lua/orgmode/utils/treesitter/install.lua \
substituteInPlace lua/orgmode/utils/treesitter/install.lua lua/orgmode/health.lua \
--replace-fail \
"pcall(vim.treesitter.language.add, 'org')" \
"pcall(function() vim.treesitter.language.add('org', { path = '${final.tree-sitter-orgmode}/lib/lua/${final.tree-sitter-orgmode.lua.luaversion}/parser/org.so'}) end)"
substituteInPlace lua/orgmode/health.lua \
--replace-fail \
"pcall(vim.treesitter.language.add, 'org')" \
"pcall(function() vim.treesitter.language.add('org', { path = '${final.tree-sitter-orgmode}/lib/lua/${final.tree-sitter-orgmode.lua.luaversion}/parser/org.so'}) end)"
substituteInPlace lua/orgmode/utils/treesitter/install.lua \
--replace-fail "if M.outdated() then" "if false then"
'';
});
@@ -7,18 +7,19 @@
php82.buildComposerProject2 (finalAttrs: {
pname = "box";
version = "4.6.2";
version = "4.6.6";
src = fetchFromGitHub {
owner = "box-project";
repo = "box";
tag = finalAttrs.version;
hash = "sha256-gYIAP9pTjahNkpNNXx0c8sQm+9Kaq6/IAo/xI5bNy7Y=";
hash = "sha256-giJAcH2R9hAlUTbwRi7rbmUP+WV8Nfb9XmoHHs4RcbI=";
};
vendorHash = "sha256-TAubvl+rsdQdqKz+lRg1oX/ENuRyHoJQVmL1ELz24fg=";
vendorHash = "sha256-7oZtuQ7PhB7q9vNO2TLI46kg2q9BgdLjGUduGXAHc0E=";
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
@@ -1,21 +1,21 @@
{
lib,
fetchFromGitHub,
php,
fetchFromGitHub,
}:
php.buildComposerProject2 (finalAttrs: {
pname = "deployer";
version = "7.4.0";
version = "7.5.12";
src = fetchFromGitHub {
owner = "deployphp";
repo = "deployer";
rev = "v${finalAttrs.version}^";
hash = "sha256-nSrW4o0Tb8H056AAjjMzbsAVvWY2z1pdWmPFZDpDr1k=";
rev = "7b108897baa94b8ac438c821ec1fb815d95eba77";
hash = "sha256-wtkixHexsJNKsLnnlHssh0IzxwWYMPKDcaf/D0zUNKk=";
};
vendorHash = "sha256-APzJQTeSNbWvF/RtfNL7XuXIY0Xa0VNbJdSggFicpSQ=";
vendorHash = "sha256-0uBI30n31W0eDVA9/W366O0Qo2jWZBqEL+YbJx4J7P0=";
meta = {
changelog = "https://github.com/deployphp/deployer/releases/tag/v${finalAttrs.version}";
@@ -2,6 +2,7 @@
lib,
fetchgit,
php,
versionCheckHook,
}:
(php.withExtensions ({ enabled, all }: enabled ++ (with all; [ xsl ]))).buildComposerProject2
@@ -16,7 +17,13 @@
hash = "sha256-eVDHwG8UPvQPrhD3KuO4ZONsnGGbclVs4kNVG+Ac1/E=";
};
vendorHash = "sha256-NqCzrVZRsyiOjxXtSE7DeiAq21S8sjFgFNMmP99KUSE=";
vendorHash = "sha256-os5ljzAAxpFfpfAlYNboIj0VX8/otI14JbjV8FSo0yg=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "-version" ];
doInstallCheck = true;
meta = {
description = "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant";
File diff suppressed because it is too large Load Diff
@@ -6,7 +6,7 @@
php.buildComposerProject2 (finalAttrs: {
pname = "php-cs-fixer";
version = "3.67.0";
version = "3.70.1";
src = fetchFromGitHub {
owner = "PHP-CS-Fixer";
@@ -18,7 +18,7 @@ php.buildComposerProject2 (finalAttrs: {
# Upstream doesn't provide a composer.lock.
# More info at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7590
composerLock = ./composer.lock;
vendorHash = "sha256-/Vn4hyX3XTAdnPPwiKGluuE3Cl56nZ3eVozLnhZ3RJM=";
vendorHash = "sha256-4MrmdAiBruOF68KVrsnDPTKe9hrHvUmzfvyrG6rt7L0=";
meta = {
changelog = "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v${finalAttrs.version}";
@@ -2,6 +2,7 @@
lib,
fetchFromGitHub,
php,
versionCheckHook,
}:
php.buildComposerProject2 (finalAttrs: {
@@ -11,20 +12,26 @@ php.buildComposerProject2 (finalAttrs: {
src = fetchFromGitHub {
owner = "nunomaduro";
repo = "phpinsights";
rev = "v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-XuvwO/MkGBMWo2hjDPDDYS3JmfWJH75mbNn6oKsMWps=";
};
vendorHash = "sha256-xeruE3oCrl6usg/7Wmop/w/CrIZfT+zMTQiQJXtBExw=";
composerLock = ./composer.lock;
vendorHash = "sha256-CwIfRmwJREz24Qj6J2PKQp+ix+/ZXo1oamcHc1fPUoc=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
broken = lib.versionOlder php.version "8.2";
changelog = "https://github.com/nunomaduro/phpinsights/releases/tag/v${finalAttrs.version}";
description = "Instant PHP quality checks from your console";
homepage = "https://phpinsights.com/";
license = lib.licenses.mit;
mainProgram = "phpinsights";
maintainers = [ ];
maintainers = lib.teams.php.members;
};
})
@@ -3,6 +3,7 @@
fetchurl,
lib,
php,
versionCheckHook,
}:
let
@@ -26,7 +27,6 @@ php.buildComposerProject2 (finalAttrs: {
inherit
pname
version
composerLock
src
;
@@ -45,9 +45,15 @@ php.buildComposerProject2 (finalAttrs: {
composer update --lock --no-install
'';
vendorHash = "sha256-ODUfR7PsM1YKkEIl4KEAHcY2irqlqMGlpvmEYV1M2jk=";
vendorHash = "sha256-8l5bQ+VnLOtPUspMN1f+iXo7LldPTuYqyrAeW2aVoH8=";
};
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
meta = {
changelog = "https://github.com/bobthecow/psysh/releases/tag/v${finalAttrs.version}";
description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP";
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "django-js-asset";
version = "3.1";
version = "3.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "matthiask";
repo = "django-js-asset";
tag = version;
hash = "sha256-a/aYchhfb+8Xn3Mkf0UmpSzZ7JZT9KoZu/3+FUNJ7Bo=";
hash = "sha256-OG31i8r6rwR2aDzraAorHdYrJrWt/e7SY9+iV7SJGJ8=";
};
build-system = [ hatchling ];
@@ -1,19 +1,27 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
h5py,
# build-system
hatch-vcs,
hatchling,
igraph,
# dependencies
h5py,
numpy,
pot,
pytestCheckHook,
pythonOlder,
wasserstein,
# optional-dependencies
igraph,
scikit-learn,
tensorflow,
# tests
pot,
pytestCheckHook,
tf-keras,
wasserstein,
}:
buildPythonPackage rec {
@@ -21,8 +29,6 @@ buildPythonPackage rec {
version = "1.4.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "pkomiske";
repo = "EnergyFlow";
@@ -60,21 +66,28 @@ buildPythonPackage rec {
tf-keras
] ++ lib.flatten (builtins.attrValues optional-dependencies);
disabledTests = [
# Issues with array
"test_emd_equivalence"
"test_gdim"
"test_n_jobs"
"test_periodic_phi"
];
disabledTests =
[
# Issues with array
"test_emd_equivalence"
"test_gdim"
"test_n_jobs"
"test_periodic_phi"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# RuntimeError: EMDStatus - Infeasible
"test_emd_byhand_1_1"
"test_emd_return_flow"
"test_emde"
];
pythonImportsCheck = [ "energyflow" ];
meta = with lib; {
meta = {
description = "Python package for the EnergyFlow suite of tools";
homepage = "https://energyflow.network/";
changelog = "https://github.com/thaler-lab/EnergyFlow/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ veprbl ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ veprbl ];
};
}
@@ -0,0 +1,69 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build system
hatchling,
hatch-vcs,
# dependencies
ghome-foyer-api,
gpsoauth,
grpcio,
requests,
simplejson,
zeroconf,
# test dependencies
pytestCheckHook,
faker,
}:
buildPythonPackage rec {
pname = "glocaltokens";
version = "0.7.3";
pyproject = true;
src = fetchFromGitHub {
owner = "leikoilja";
repo = "glocaltokens";
tag = "v${version}";
hash = "sha256-wX0L9sNjPbd5lXtFs5B3DG3gtZKhlZG9bnnBKV32rSE=";
};
build-system = [
hatchling
hatch-vcs
];
dependencies = [
ghome-foyer-api
gpsoauth
grpcio
requests
simplejson
zeroconf
];
nativeCheckInputs = [
pytestCheckHook
faker
];
pythonImportsCheck = [
"glocaltokens"
"glocaltokens.client"
"glocaltokens.scanner"
];
meta = {
description = "Library to extract google home devices local authentication tokens from google servers";
homepage = "https://github.com/leikoilja/glocaltokens";
changelog = "https://github.com/leikoilja/glocaltokens/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
hensoko
];
};
}
@@ -1,5 +1,6 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
@@ -7,9 +8,10 @@
setuptools,
# dependencies
distutils,
h5py,
numpy,
qtpy,
h5py,
requests,
tomli,
@@ -43,9 +45,10 @@ buildPythonPackage rec {
];
dependencies = [
distutils
h5py
numpy
qtpy
h5py
requests
tomli
];
@@ -62,6 +65,19 @@ buildPythonPackage rec {
export QT_QPA_PLATFORM=offscreen
'';
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
# Fatal Python error: Segmentation fault
# guidata/dataset/qtitemwidgets.py", line 633 in __init__
"test_all_items"
"test_loadsave_hdf5"
"test_loadsave_json"
# guidata/dataset/qtitemwidgets.py", line 581 in __init__
"test_editgroupbox"
"test_item_order"
# guidata/qthelpers.py", line 710 in exec_dialog
"test_arrayeditor"
];
pythonImportsCheck = [ "guidata" ];
passthru = {
@@ -89,7 +105,7 @@ buildPythonPackage rec {
meta = {
description = "Python library generating graphical user interfaces for easy dataset editing and display";
homepage = "https://github.com/PlotPyStack/guidata";
changelog = "https://github.com/PlotPyStack/guidata/blob/${src.rev}/CHANGELOG.md";
changelog = "https://github.com/PlotPyStack/guidata/blob/v${version}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
};
@@ -18,14 +18,14 @@
buildPythonPackage rec {
pname = "lightning-utilities";
version = "0.13.0";
version = "0.13.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Lightning-AI";
repo = "utilities";
tag = "v${version}";
hash = "sha256-LFrBr8fumGp4KY7mNtMEMrE9vX1lyNoQKf+xxRymzTE=";
hash = "sha256-uUb7epvPPzOTzO0WB7bPuzo2wngiUEo+QQweq6yoGZw=";
};
postPatch = ''
@@ -1,5 +1,6 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
@@ -45,12 +46,6 @@ buildPythonPackage rec {
cython
setuptools
];
# Both numpy versions are supported, see:
# https://github.com/PlotPyStack/PlotPy/blob/v2.6.2/pyproject.toml#L8-L9
postConfigure = ''
substituteInPlace pyproject.toml \
--replace-fail 'numpy >= 2.0.0' numpy
'';
dependencies = [
guidata
@@ -76,6 +71,13 @@ buildPythonPackage rec {
cd $out
'';
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
# Fatal Python error: Segmentation fault
# in plotpy/widgets/resizedialog.py", line 99 in __init__
"test_resize_dialog"
"test_tool"
];
pythonImportsCheck = [
"plotpy"
"plotpy.tests"
@@ -110,7 +112,7 @@ buildPythonPackage rec {
meta = {
description = "Curve and image plotting tools for Python/Qt applications";
homepage = "https://github.com/PlotPyStack/PlotPy";
changelog = "https://github.com/PlotPyStack/PlotPy/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/PlotPyStack/PlotPy/blob/v${version}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
};
@@ -0,0 +1,38 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
aiohttp,
setuptools,
}:
buildPythonPackage rec {
pname = "pylibrespot-java";
version = "0.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "uvjustin";
repo = "pylibrespot-java";
tag = "v${version}";
hash = "sha256-aPmyYsO8yBrlPEQXOGNjZvuO8QZr13SOH09gqjW4WPA=";
};
build-system = [ setuptools ];
dependencies = [ aiohttp ];
pythonImportsCheck = [
"pylibrespot_java"
];
meta = {
description = "Simple library to interface with a librespot-java server";
homepage = "https://github.com/uvjustin/pylibrespot-java";
changelog = "https://github.com/uvjustin/pylibrespot-java/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
hensoko
];
};
}
@@ -1,70 +1,4 @@
{
"24": {
"hashes": {
"aarch64-darwin": "d9093e6928b2247336b3f0811e4f66c4ae50a719ec9399c393ac9556c8e56cee",
"aarch64-linux": "599e78a3a8127828ea3fa444927e7e51035dba9811ce0d81d59ad9b0bd02b4f6",
"armv7l-linux": "8f46901667a904a62df7043991f20dc1c2a00370a42159976855458562cda8fc",
"headers": "009p1ffh2cyn98fcmprrjzq79jysp7h565v4f54wvjxjsq2nkr97",
"x86_64-darwin": "067ce05d628b44e1393369c506268915081ac9d96c0973d367262c71dcd91078",
"x86_64-linux": "61e87bbd361da101c6a8363cc9c1f8b8b51db61b076cf495d3f4424303265a96"
},
"version": "24.8.6"
},
"27": {
"hashes": {
"aarch64-darwin": "a687b199fcb9890f43af90ac8a4d19dc7b15522394de89e42abd5f5c6b735804",
"aarch64-linux": "ddbfcd5e04450178ca4e3113f776893454822af6757761adc792692f7978e0df",
"armv7l-linux": "012127a3edf79e0e4623a08e853286e1cba512438a0414b1ab19b75d929c1cf2",
"headers": "0vrjdvqllfyz09sw2y078mds1di219hnmska8bw8ni7j35wxr2br",
"x86_64-darwin": "357e70a1c8848d4ac7655346bec98dd18a7c0cee82452a7edf76142017779049",
"x86_64-linux": "e3a6f55e54e7a623bba1a15016541248408eef5a19ab82a59d19c807aab14563"
},
"version": "27.3.11"
},
"28": {
"hashes": {
"aarch64-darwin": "c310ab098d8849c4aa05f05b1c8521031241a046e023a911f964fd1db31c64c9",
"aarch64-linux": "f77107266581a6b9880757876518df1c4bf6eeff5c193bb5de0a8f6c9902bd1f",
"armv7l-linux": "384d8b43f52b5350a438031ad12980418fc244b4b0aecfa5f7dcc3d6f103ebed",
"headers": "1d407g6yb81l9p0pbsidrsmnzkrwb4f2qb221kc9k2r7qdpf64px",
"x86_64-darwin": "6bc63916b7fe52de7559e7631fef5c93315a18ee90a0d3d08168c91414b09ecf",
"x86_64-linux": "20f6be493cbd6c9924206e744b1c490af1f97f4735451b9dc19f0d305366d546"
},
"version": "28.3.3"
},
"29": {
"hashes": {
"aarch64-darwin": "077c7abc2c8f1117863141fb5662684fc1320823e0e0aab6c42ad97bcfcceace",
"aarch64-linux": "14d5b54ef561cea2ca28c55a877bc1a1a3e360ca2f9e69ab3aa719054eca8552",
"armv7l-linux": "9007e44a5cb5b7645455e7895d2039d3264cab2eb0ecf8dbb4295344d392ca74",
"headers": "0swfh30yilw6w0qi6cl6ccm3rdvdmpr5s2vaxy5bbmizc88a4jkv",
"x86_64-darwin": "9f367006b67a923903e27b0be72a1a578b97936ca36cd91856adf4a278076d67",
"x86_64-linux": "2346338e2ffa12276f5b3bc6d63ff357c39f42d260ad45f19471ef7bbf18a389"
},
"version": "29.4.6"
},
"30": {
"hashes": {
"aarch64-darwin": "d312544ea29844cf328b44b9dbde12f4fdced90cb442dfca6df36c098dbb6e7a",
"aarch64-linux": "eb31470c0d7cd6e23e7ce0d89cc93a2356c9dac8bcc997e335353b8aa995afa0",
"armv7l-linux": "224bd46983e503101c756c72d10b195f14712a7a56438718acb126017dd04edf",
"headers": "0db38ndw9rrd8ixa14761cbff6ns31b6302bzx5q4in8i4dkrrs3",
"x86_64-darwin": "faf9dcc20d525607ea205f2f6a1dfe3270f6268aa439bb0ba5646c7e4fbbd842",
"x86_64-linux": "ec4707783d39e86005f42899e30ae59e50dd5d9c7f28531ed494eb43f2361403"
},
"version": "30.5.1"
},
"31": {
"hashes": {
"aarch64-darwin": "e81b75a185376effcc7dd15aef8877ab48474633e5ac7417810a3b28e694bbfa",
"aarch64-linux": "21dd1a8c37c7816d3ad945f2fc66fa6c5c56af44b6c06b5280e023ee0a663439",
"armv7l-linux": "530f0d146f962e7dd101dc08505933e781f21c42f3234e3f0d316a113faccfbc",
"headers": "1dakbhv1f1cc8zr8rvhjgbmly43db1l1gcf0l8c7yn8h0lb17aq5",
"x86_64-darwin": "3b08668fe88c47474be23df2c24674d68be79501b5552202462d16078f629bf0",
"x86_64-linux": "00a2e8e5f52fe39c37cfc9d7bd7629e560017d28ee94c51495bf7e39c84b2d47"
},
"version": "31.7.7"
},
"32": {
"hashes": {
"aarch64-darwin": "f644ac51590a5d2e16318aca9a2ad70f9b5c45cc2edf2524b33d15dd0add4193",
@@ -1,37 +1,4 @@
{
"29": {
"hashes": {
"aarch64-darwin": "8a100f4e7a84862847ab0804446ee805fbba0a68657420b369f80db417c1c87a",
"aarch64-linux": "232c375e4789b887a7f8712a64ac5849cf41904808b9aa00f6f6fbbf6621105d",
"armv7l-linux": "2c639a32c9436f135ef69db9640dcf4489b2dea30e865a0f63a87bb92d9ccf88",
"headers": "0swfh30yilw6w0qi6cl6ccm3rdvdmpr5s2vaxy5bbmizc88a4jkv",
"x86_64-darwin": "4364c264c932099d09fe67cc0072e6071739ad67ca1fecf5bfd7e8c1fdcc8671",
"x86_64-linux": "1c2b450b99929b49269a56db2dc60920f027ec92ae01a4620fa3f64473539caa"
},
"version": "29.4.6"
},
"30": {
"hashes": {
"aarch64-darwin": "3de7da4462c7690f75680aecac8fddedc4b998d0da769136d8eff2932b36004e",
"aarch64-linux": "3722d46929fd2c7b33c17d37464a08150e60d9269053eb67195795254fb5e947",
"armv7l-linux": "a786d51f834c24b768bd415bf9a2fc5c1d9abdf9dc0b1a091bf9a8ff101becfe",
"headers": "0db38ndw9rrd8ixa14761cbff6ns31b6302bzx5q4in8i4dkrrs3",
"x86_64-darwin": "d89b89f7c2ba45cb10df7fc23722bacf6f77e13002c42648762cd18ae3fa9182",
"x86_64-linux": "688e4da8dbcb7dbfacab6f29341d96736e6d06e4c8029835b83ef30b69885b01"
},
"version": "30.5.1"
},
"31": {
"hashes": {
"aarch64-darwin": "17015acc125d2a453ff9e7a6623ce856113c0f435bfffd65b60d73e9cd81d40e",
"aarch64-linux": "7a545397292b405153b2d73b525fcd0821ea5a2200330a9bb4f48cd83010a30b",
"armv7l-linux": "ace8b955b12b196d442d315ad62911eeda1ee4957cba4423e3cfe2703ff85673",
"headers": "1dakbhv1f1cc8zr8rvhjgbmly43db1l1gcf0l8c7yn8h0lb17aq5",
"x86_64-darwin": "7c8886bed6128791b6637a54a3d76712e9b37a34252376478d3c843ed93c9ff9",
"x86_64-linux": "39b59f8dbca6cb2f7d9c2299bd6885a7041d3242d18fe3beedf89028b7e0376a"
},
"version": "31.7.7"
},
"32": {
"hashes": {
"aarch64-darwin": "50ffb73f7ac2705dc1500977dfe391f21895eefdb1eac642786ff9e3904f667e",
+17 -36
View File
@@ -22,9 +22,9 @@
withOpenSFX ? true,
withOpenMSX ? true,
withFluidSynth ? true,
audioDriver ? "alsa",
fluidsynth,
soundfont-fluid,
soundfont-name ? "FluidR3_GM2-2",
libsndfile,
flac,
libogg,
@@ -34,10 +34,7 @@
pulseaudio,
alsa-lib,
libjack2,
procps,
writeScriptBin,
makeWrapper,
runtimeShell,
}:
let
@@ -55,13 +52,6 @@ let
url = "https://cdn.openttd.org/openmsx-releases/0.4.2/openmsx-0.4.2-all.zip";
sha256 = "sha256-Cgrg2m+uTODFg39mKgX+hE8atV7v5bVyZd716vSZB8M=";
};
playmidi = writeScriptBin "playmidi" ''
#!${runtimeShell}
trap "${procps}/bin/pkill fluidsynth" EXIT
${fluidsynth}/bin/fluidsynth -a ${audioDriver} -i ${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2 $*
'';
in
stdenv.mkDerivation rec {
pname = "openttd";
@@ -119,34 +109,25 @@ stdenv.mkDerivation rec {
prefixKey = "--prefix-dir=";
configureFlags = [
"--without-liblzo2"
];
configureFlags = [ "--without-liblzo2" ];
postInstall = ''
${lib.optionalString withOpenGFX ''
cp ${opengfx}/*.tar $out/share/games/openttd/baseset
''}
mkdir -p $out/share/games/openttd/data
${lib.optionalString withOpenSFX ''
cp ${opensfx}/*.tar $out/share/games/openttd/data
''}
mkdir $out/share/games/openttd/baseset/openmsx
${lib.optionalString withOpenMSX ''
cp ${openmsx}/*.tar $out/share/games/openttd/baseset/openmsx
''}
${lib.optionalString withFluidSynth ''
wrapProgram $out/bin/openttd \
--add-flags -m \
--add-flags extmidi:cmd=${playmidi}/bin/playmidi
''}
postPatch = ''
substituteInPlace src/music/fluidsynth.cpp \
--replace-fail "/usr/share/soundfonts/default.sf2" \
"${soundfont-fluid}/share/soundfonts/${soundfont-name}.sf2"
'';
postInstall =
lib.optionalString withOpenGFX ''
cp ${opengfx}/*.tar $out/share/games/openttd/baseset
''
+ lib.optionalString withOpenSFX ''
cp ${opensfx}/*.tar $out/share/games/openttd/baseset
''
+ lib.optionalString withOpenMSX ''
tar -xf ${openmsx}/*.tar -C $out/share/games/openttd/baseset
'';
meta = with lib; {
description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"'';
mainProgram = "openttd";
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "mushroom";
version = "4.3.0";
version = "4.3.1";
src = fetchFromGitHub {
owner = "piitaya";
repo = "lovelace-mushroom";
rev = "v${version}";
hash = "sha256-O6nsIXniC4SIDdfQ71MVuGVroCltk8f+A6xSORE6HFA=";
hash = "sha256-cxbnU884COfXW8p2PxU96M4/tGbIgwXXw/dFJ/onUhs=";
};
npmDepsHash = "sha256-L430Ex9+ve7dHed6leSa92BFvlB0dQzepKGsX/lS9BM=";
npmDepsHash = "sha256-bb6ZEZxaHVzGEKDrgvJhRu0987pAEKi9tBKBmLkeAfM=";
installPhase = ''
runHook preInstall
+36 -17
View File
@@ -8,6 +8,7 @@
runCommand,
nixosTests,
npm-lockfile-fix,
nix-update-script,
brotli,
tailwindcss_3,
esbuild,
@@ -16,14 +17,14 @@
let
pname = "plausible";
version = "2.1.4";
version = "2.1.5";
mixEnv = "ce";
src = fetchFromGitHub {
owner = "plausible";
repo = "analytics";
rev = "v${version}";
hash = "sha256-wV2zzRKJM5pQ06pF8vt1ieFqv6s3HvCzNT5Hed29Owk=";
hash = "sha256-4gwK/AxzhsU0vgvKgIXrOyQLCgZMeZyKjj7PWbUmJ+8=";
postFetch = ''
${lib.getExe npm-lockfile-fix} $out/assets/package-lock.json
sed -ie '
@@ -74,7 +75,7 @@ let
src
mixEnv
;
hash = "sha256-N6cYlYwNss2FPYcljANJYbXobmLFauZ64F7Sf/+7Ctg=";
hash = "sha256-edQ8byeV0WUaYDYMnmrstC6L2jztidR/JikGZLpX3WE=";
};
mjmlNif = rustPlatform.buildRustPackage {
@@ -91,19 +92,24 @@ let
};
};
patchedMixFodDeps = runCommand mixFodDeps.name { } ''
mkdir $out
cp -r --no-preserve=mode ${mixFodDeps}/. $out
patchedMixFodDeps =
runCommand mixFodDeps.name
{
inherit (mixFodDeps) hash;
}
''
mkdir $out
cp -r --no-preserve=mode ${mixFodDeps}/. $out
mkdir -p $out/mjml/priv/native
for lib in ${mjmlNif}/lib/*
do
# normalies suffix to .so, otherswise build would fail on darwin
file=''${lib##*/}
base=''${file%.*}
ln -s "$lib" $out/mjml/priv/native/$base.so
done
'';
mkdir -p $out/mjml/priv/native
for lib in ${mjmlNif}/lib/*
do
# normalies suffix to .so, otherswise build would fail on darwin
file=''${lib##*/}
base=''${file%.*}
ln -s "$lib" $out/mjml/priv/native/$base.so
done
'';
in
beamPackages.mixRelease rec {
@@ -125,8 +131,21 @@ beamPackages.mixRelease rec {
tests = {
inherit (nixosTests) plausible;
};
updateScript = ./update.sh;
inherit assets tracker;
updateScript = nix-update-script {
extraArgs = [
"-s"
"tracker"
"-s"
"assets"
"-s"
"mjmlNif"
];
};
inherit
assets
tracker
mjmlNif
;
};
env = {
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-update jq elixir npm-lockfile-fix nixfmt-rfc-style
set -euxo pipefail
nix-update plausible
version="$(nix-instantiate -A plausible.version --eval --json | jq -r)"
source_url="$(nix-instantiate -A plausible.src.url --eval --json | jq -r)"
nix-update --url "$source_url" --version "$version" plausible.tracker
nix-update --url "$source_url" --version "$version" plausible.assets
+4
View File
@@ -899,6 +899,7 @@ mapAliases {
lobster-two = throw "'lobster-two' has been renamed to/replaced by 'google-fonts'"; # Converted to throw 2024-10-17
loc = throw "'loc' has been removed due to lack of upstream maintenance. Consider 'tokei' as an alternative."; # Added 2025-01-25
loco-cli = loco; # Added 2025-02-24
logseq = throw "logseq has been removed, due to lack of maintenance and blocking the Electron 27 removal."; # Added 2025-02-24
loop = throw "'loop' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
luna-icons = throw "luna-icons has been removed as it was removed upstream"; # Added 2024-10-29
lv_img_conv = throw "'lv_img_conv' has been removed from nixpkgs as it is broken"; # Added 2024-06-18
@@ -945,6 +946,7 @@ mapAliases {
mhwaveedit = throw "'mkwaveedit' has been removed due to lack of maintenance upstream. Consider using 'audacity' or 'tenacity' instead";
microcodeAmd = microcode-amd; # Added 2024-09-08
microcodeIntel = microcode-intel; # Added 2024-09-08
micropad = throw "micropad has been removed, since it was unmaintained and blocked the Electron 27 removal."; # Added 2025-02-24
microsoft_gsl = microsoft-gsl; # Added 2023-05-26
MIDIVisualizer = midivisualizer; # Added 2024-06-12
mikutter = throw "'mikutter' has been removed because the package was broken and had no maintainers"; # Added 2024-10-01
@@ -1141,6 +1143,7 @@ mapAliases {
pax-rs = throw "'pax-rs' has been removed because upstream has disappeared"; # Added 2025-01-25
PageEdit = pageedit; # Added 2024-01-21
passky-desktop = throw "passky-desktop has been removed, as it was unmaintained and blocking the Electron 29 removal."; # Added 2025-02-24
p2pvc = throw "p2pvc has been removed as it is unmaintained upstream and depends on OpenCV 2"; # Added 2024-08-20
packet-cli = throw "'packet-cli' has been renamed to/replaced by 'metal-cli'"; # Converted to throw 2024-10-17
inherit (perlPackages) pacup;
@@ -1608,6 +1611,7 @@ mapAliases {
wmii_hg = wmii;
wrapGAppsHook = wrapGAppsHook3; # Added 2024-03-26
write_stylus = styluslabs-write-bin; # Added 2024-10-09
wtf = lib.warnOnInstantiate "'wtf' has been renamed to 'wtfutil'." wtfutil; # Added 2025-03-01
### X ###
+1 -20
View File
@@ -1124,7 +1124,7 @@ with pkgs;
archi = callPackage ../tools/misc/archi { };
breitbandmessung = callPackage ../applications/networking/breitbandmessung {
electron = electron_29;
electron = electron_34;
};
### APPLICATIONS/VERSION-MANAGEMENT
@@ -2461,10 +2461,6 @@ with pkgs;
jdk11 = jdk11_headless;
};
micropad = callPackage ../applications/office/micropad {
electron = electron_27;
};
mkspiffs = callPackage ../tools/filesystems/mkspiffs { };
mkspiffs-presets = recurseIntoAttrs (callPackages ../tools/filesystems/mkspiffs/presets.nix { });
@@ -7479,32 +7475,17 @@ with pkgs;
electron-source = callPackage ../development/tools/electron { };
inherit (callPackages ../development/tools/electron/binary { })
electron_24-bin
electron_27-bin
electron_28-bin
electron_29-bin
electron_30-bin
electron_31-bin
electron_32-bin
electron_33-bin
electron_34-bin
;
inherit (callPackages ../development/tools/electron/chromedriver { })
electron-chromedriver_29
electron-chromedriver_30
electron-chromedriver_31
electron-chromedriver_32
electron-chromedriver_33
electron-chromedriver_34
;
electron_24 = electron_24-bin;
electron_27 = electron_27-bin;
electron_28 = electron_28-bin;
electron_29 = electron_29-bin;
electron_30 = electron_30-bin;
electron_31 = electron_31-bin;
electron_32 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_32 then electron-source.electron_32 else electron_32-bin;
electron_33 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_33 then electron-source.electron_33 else electron_33-bin;
electron_34 = electron_34-bin;
+4
View File
@@ -5410,6 +5410,8 @@ self: super: with self; {
globus-sdk = callPackage ../development/python-modules/globus-sdk { };
glocaltokens = callPackage ../development/python-modules/glocaltokens { };
glom = callPackage ../development/python-modules/glom { };
glueviz = callPackage ../development/python-modules/glueviz { };
@@ -10876,6 +10878,8 @@ self: super: with self; {
pyloadapi = callPackage ../development/python-modules/pyloadapi { };
pylibrespot-java = callPackage ../development/python-modules/pylibrespot-java { };
pylsl = callPackage ../development/python-modules/pylsl { };
pynfsclient = callPackage ../development/python-modules/pynfsclient { };