Merge staging-next into staging
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
@@ -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
+1031
-413
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
|
||||
|
||||
@@ -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; };
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
Generated
+406
-466
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
};
|
||||
}
|
||||
Generated
+343
-363
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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}";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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=";
|
||||
}
|
||||
|
||||
@@ -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=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
@@ -48,11 +48,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "go";
|
||||
version = "1.23.6";
|
||||
version = "1.23.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
|
||||
hash = "sha256-A5xbBOZSedrO7opvcecL0Fz1uAF4K293xuGeLtBREiI=";
|
||||
hash = "sha256-fPq9Rrc+tMJrGdaVFd0EPXGDplWazM1c/bJetrJmpFg=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -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";
|
||||
|
||||
+465
-279
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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ###
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user