Merge master into staging-next

This commit is contained in:
github-actions[bot]
2024-12-24 12:05:56 +00:00
committed by GitHub
51 changed files with 522 additions and 538 deletions
+1
View File
@@ -102,6 +102,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
/nixos/default.nix @infinisil
/nixos/lib/from-env.nix @infinisil
/nixos/lib/eval-config.nix @infinisil
/nixos/modules/misc/ids.nix @R-VdP
/nixos/modules/system/activation/bootspec.nix @grahamc @cole-h @raitobezarius
/nixos/modules/system/activation/bootspec.cue @grahamc @cole-h @raitobezarius
@@ -55,6 +55,8 @@
- [Bat](https://github.com/sharkdp/bat), a {manpage}`cat(1)` clone with wings. Available as [programs.bat](options.html#opt-programs.bat).
- [µStreamer](https://github.com/pikvm/ustreamer), a lightweight MJPEG-HTTP streamer. Available as [services.ustreamer](options.html#opt-services.ustreamer).
- [Whoogle Search](https://github.com/benbusby/whoogle-search), a self-hosted, ad-free, privacy-respecting metasearch engine. Available as [services.whoogle-search](options.html#opt-services.whoogle-search.enable).
- [agorakit](https://github.com/agorakit/agorakit), an organization tool for citizens' collectives. Available with [services.agorakit](options.html#opt-services.agorakit.enable).
+1 -1
View File
@@ -11,7 +11,7 @@ in
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "uinput" ];
users.groups.uinput.gid = config.ids.gids.uinput;
users.groups.uinput = { };
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
+9 -9
View File
@@ -2,12 +2,15 @@
# central list to prevent id collisions.
# IMPORTANT!
# We only add static uids and gids for services where it is not feasible
# to change uids/gids on service start, for example a service with a lot of
# files. Please also check if the service is applicable for systemd's
# DynamicUser option and does not need a uid/gid allocation at all.
# Systemd can also change ownership of service directories using the
# RuntimeDirectory/StateDirectory options.
#
# https://github.com/NixOS/rfcs/blob/master/rfcs/0052-dynamic-ids.md
#
# Use of static ids is deprecated within NixOS. Dynamic allocation is
# required, barring special circumstacnes. Please check if the service
# is applicable for systemd's DynamicUser option and does not need a
# uid/gid allocation at all. Systemd can also change ownership of
# service directories using the RuntimeDirectory/StateDirectory
# options.
{ lib, ... }:
@@ -355,7 +358,6 @@ in
rstudio-server = 324;
localtimed = 325;
automatic-timezoned = 326;
whisparr = 328;
# When adding a uid, make sure it doesn't match an existing gid.
#
@@ -683,8 +685,6 @@ in
rstudio-server = 324;
localtimed = 325;
automatic-timezoned = 326;
uinput = 327;
whisparr = 328;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal
+1
View File
@@ -1417,6 +1417,7 @@
./services/video/mirakurun.nix
./services/video/photonvision.nix
./services/video/mediamtx.nix
./services/video/ustreamer.nix
./services/video/v4l2-relayd.nix
./services/video/wivrn.nix
./services/wayland/cage.nix
+2 -2
View File
@@ -64,10 +64,10 @@ in
whisparr = {
group = cfg.group;
home = cfg.dataDir;
uid = config.ids.uids.whisparr;
isSystemUser = true;
};
};
users.groups = lib.mkIf (cfg.group == "whisparr") { whisparr.gid = config.ids.gids.whisparr; };
users.groups.whisparr = lib.mkIf (cfg.group == "whisparr") { };
};
}
+110
View File
@@ -0,0 +1,110 @@
{
config,
lib,
pkgs,
utils,
...
}:
let
inherit (lib)
getExe
mkEnableOption
mkIf
mkOption
mkPackageOption
optionals
types
;
cfg = config.services.ustreamer;
in
{
options.services.ustreamer = {
enable = mkEnableOption "µStreamer, a lightweight MJPEG-HTTP streamer";
package = mkPackageOption pkgs "ustreamer" { };
autoStart = mkOption {
description = ''
Wether to start µStreamer on boot. Disabling this will use socket
activation. The service will stop gracefully after some inactivity.
Disabling this will set `--exit-on-no-clients=300`
'';
type = types.bool;
default = true;
example = false;
};
listenAddress = mkOption {
description = ''
Address to expose the HTTP server. This accepts values for
ListenStream= defined in {manpage}`systemd.socket(5)`
'';
type = types.str;
default = "0.0.0.0:8080";
example = "/run/ustreamer.sock";
};
device = mkOption {
description = ''
The v4l2 device to stream.
'';
type = types.path;
default = "/dev/video0";
example = "/dev/v4l/by-id/usb-0000_Dummy_abcdef-video-index0";
};
extraArgs = mkOption {
description = ''
Extra arguments to pass to `ustreamer`. See {manpage}`ustreamer(1)`
'';
type = with types; listOf str;
default = [ ];
example = [ "--resolution=1920x1080" ];
};
};
config = mkIf cfg.enable {
services.ustreamer.extraArgs =
[
"--device=${cfg.device}"
]
++ optionals (!cfg.autoStart) [
"--exit-on-no-clients=300"
];
systemd.services."ustreamer" = {
description = "µStreamer, a lightweight MJPEG-HTTP streamer";
after = [ "network.target" ];
requires = [ "ustreamer.socket" ];
wantedBy = mkIf cfg.autoStart [ "multi-user.target" ];
serviceConfig = {
ExecStart = utils.escapeSystemdExecArgs (
[
(getExe cfg.package)
"--systemd"
]
++ cfg.extraArgs
);
Restart = if cfg.autoStart then "always" else "on-failure";
DynamicUser = true;
SupplementaryGroups = [ "video" ];
NoNewPrivileges = true;
ProcSubset = "pid";
ProtectProc = "noaccess";
ProtectClock = "yes";
DeviceAllow = [ cfg.device ];
};
};
systemd.sockets."ustreamer" = {
wantedBy = [ "sockets.target" ];
partOf = [ "ustreamer.service" ];
socketConfig = {
ListenStream = cfg.listenAddress;
};
};
};
}
+18 -21
View File
@@ -5,29 +5,18 @@ let
inherit (lib) mkOption types;
podmanPackage = pkgs.podman.override {
extraPackages = cfg.extraPackages ++ [
"/run/wrappers" # setuid shadow
config.systemd.package # To allow systemd-based container healthchecks
] ++ lib.optional (config.boot.supportedFilesystems.zfs or false) config.boot.zfs.package;
extraRuntimes = [ pkgs.runc ]
++ lib.optionals (config.virtualisation.containers.containersConf.settings.network.default_rootless_network_cmd or "" == "slirp4netns") (with pkgs; [
slirp4netns
]);
};
# Provides a fake "docker" binary mapping to podman
dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}"
dockerCompat = pkgs.runCommand "${cfg.package.pname}-docker-compat-${cfg.package.version}"
{
outputs = [ "out" "man" ];
inherit (podmanPackage) meta;
inherit (cfg.package) meta;
preferLocalBuild = true;
} ''
mkdir -p $out/bin
ln -s ${podmanPackage}/bin/podman $out/bin/docker
ln -s ${cfg.package}/bin/podman $out/bin/docker
mkdir -p $man/share/man/man1
for f in ${podmanPackage.man}/share/man/man1/*; do
for f in ${cfg.package.man}/share/man/man1/*; do
basename=$(basename $f | sed s/podman/docker/g)
ln -s $f $man/share/man/man1/$basename
done
@@ -137,13 +126,21 @@ in
};
};
package = lib.mkOption {
type = types.package;
default = podmanPackage;
internal = true;
description = ''
The final Podman package (including extra packages).
package = (lib.mkPackageOption pkgs "podman" {
extraDescription = ''
This package will automatically include extra packages and runtimes.
'';
}) // {
apply = pkg: pkg.override {
extraPackages = cfg.extraPackages ++ [
"/run/wrappers" # setuid shadow
config.systemd.package # To allow systemd-based container healthchecks
] ++ lib.optional (config.boot.supportedFilesystems.zfs or false) config.boot.zfs.package;
extraRuntimes = [ pkgs.runc ]
++ lib.optionals (config.virtualisation.containers.containersConf.settings.network.default_rootless_network_cmd or "" == "slirp4netns") (with pkgs; [
slirp4netns
]);
};
};
defaultNetwork.settings = lib.mkOption {
+8 -17
View File
@@ -46,22 +46,13 @@ import ./make-test-python.nix (
'';
in
{
environment.systemPackages = [ pkgs.ustreamer ];
networking.firewall.enable = false;
systemd.services.ustreamer = {
description = "ustreamer service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
ExecStart = "${pkgs.ustreamer}/bin/ustreamer --host=0.0.0.0 --port 8000 --device /dev/video9 --device-timeout=8";
PrivateTmp = true;
BindReadOnlyPaths = "/dev/video9";
SupplementaryGroups = [
"video"
];
Restart = "always";
};
services.ustreamer = {
enable = true;
device = "/dev/video9";
extraArgs = [ "--device-timeout=8" ];
};
networking.firewall.allowedTCPPorts = [ 8080 ];
boot.extraModulePackages = [ config.boot.kernelPackages.akvcam ];
boot.kernelModules = [ "akvcam" ];
boot.extraModprobeConfig = ''
@@ -74,10 +65,10 @@ import ./make-test-python.nix (
start_all()
camera.wait_for_unit("ustreamer.service")
camera.wait_for_open_port(8000)
camera.wait_for_open_port(8080)
client.wait_for_unit("multi-user.target")
client.succeed("curl http://camera:8000")
client.succeed("curl http://camera:8080")
'';
}
)
@@ -1381,10 +1381,10 @@ in
dependencies = [ self.vim-floaterm ];
};
lightline-bufferline = super.lightline-bufferline.overrideAttrs {
lightline-bufferline = super.lightline-bufferline.overrideAttrs (oa: {
# Requires web-devicons but mini.icons can mock them up
nativeCheckInputs = [ self.nvim-web-devicons ];
};
nativeCheckInputs = oa.nativeCheckInputs ++ [ self.nvim-web-devicons ];
});
lir-nvim = super.lir-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
@@ -2118,10 +2118,10 @@ in
];
};
nvim-nonicons = super.nvim-nonicons.overrideAttrs {
nvim-nonicons = super.nvim-nonicons.overrideAttrs (oa: {
# Requires web-devicons but mini.icons can mock them up
nativeCheckInputs = [ self.nvim-web-devicons ];
};
nativeCheckInputs = oa.nativeCheckInputs ++ [ self.nvim-web-devicons ];
});
nvim-nu = super.nvim-nu.overrideAttrs {
dependencies = with self; [
@@ -12,25 +12,26 @@ in
{
guiStable = mkGui {
channel = "stable";
version = "2.2.50";
hash = "sha256-A6aLp/fN/0u5VIOX6d0QrZ2zWuNPvhI1xfw7cKU9jRA=";
version = "2.2.51";
hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI=";
};
guiPreview = mkGui {
channel = "stable";
version = "2.2.50";
hash = "sha256-A6aLp/fN/0u5VIOX6d0QrZ2zWuNPvhI1xfw7cKU9jRA=";
version = "2.2.51";
hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI=";
};
serverStable = mkServer {
channel = "stable";
version = "2.2.50";
hash = "sha256-m5Od3IPn31JaFOtilKh79aISH4lRd+KatSLRqsF8n4Y=";
version = "2.2.51";
hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ=";
};
serverPreview = mkServer {
channel = "stable";
version = "2.2.50";
hash = "sha256-m5Od3IPn31JaFOtilKh79aISH4lRd+KatSLRqsF8n4Y=";
version = "2.2.51";
hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ=";
};
}
@@ -56,16 +56,6 @@ assert lib.assertMsg (xenSupport -> hostCpuTargets == [ "i386-softmmu" ]) "Xen s
let
hexagonSupport = hostCpuTargets == null || lib.elem "hexagon" hostCpuTargets;
buildPlatformStdenv =
if stdenv.buildPlatform.isDarwin then
overrideSDK buildPackages.stdenv {
# Keep these values in sync with `all-packages.nix`.
darwinSdkVersion = "12.3";
darwinMinVersion = "12.0";
}
else
buildPackages.stdenv;
in
stdenv.mkDerivation (finalAttrs: {
@@ -82,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-+FnwvGXh9TPQQLvoySvP7O5a8skhpmh8ZS+0TQib2JQ=";
};
depsBuildBuild = [ buildPlatformStdenv.cc ]
depsBuildBuild = [ buildPackages.stdenv.cc ]
++ lib.optionals hexagonSupport [ pkg-config ];
nativeBuildInputs = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "acpica-tools";
version = "R09_27_24";
version = "R2024_12_12";
src = fetchFromGitHub {
owner = "acpica";
repo = "acpica";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-kjdSCGa/2mmODX0gsY9JzSx9PJqYoKjtJTn8y4uduIQ=";
hash = "sha256-vxiWYUAEk54F1M0WrrMTHZ4DNJxxT/GaXetd5LjE808=";
};
nativeBuildInputs = [
@@ -16,19 +16,19 @@
}:
rustPlatform.buildRustPackage rec {
pname = "edgedb";
version = "6.0.2";
version = "6.1.0";
src = fetchFromGitHub {
owner = "edgedb";
repo = "edgedb-cli";
rev = "refs/tags/v${version}";
hash = "sha256-P55LwByDVO3pEzg4OZldXiyli8s5oHvV8MXCDwkF2+8=";
hash = "sha256-iB0ZWciEx/Xiq+pMg3nMJNHumoy5Z8dB6ev7UneHnVg=";
fetchSubmodules = true;
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-oRtgORzp0tabPcyArPgG8LGfYlSPhpaeRPT9QWF5BGs=";
hash = "sha256-oiDCUJamnl2ykvfs7V20dvr29ZAtSl+kZW4fzmlc1Ao=";
};
nativeBuildInputs = [
@@ -64,20 +64,20 @@ index 387561e..15448ad 100644
static const int kMaxBuf = 256;
diff --git a/src/Controller/Src/Scanner/Engine.cpp b/src/Controller/Src/Scanner/Engine.cpp
index 9489d4b..670bad9 100644
index 8bd842e..d011329 100755
--- a/src/Controller/Src/Scanner/Engine.cpp
+++ b/src/Controller/Src/Scanner/Engine.cpp
@@ -263,8 +263,8 @@ SDIError Engine::Open()
//kill es2netif
//kill es2intif
- system("killall -9 -q es2netif > /dev/null");
- system("killall -9 -q es2intif > /dev/null");
+ system("@KILLALL@ -9 -q es2netif > /dev/null");
+ system("@KILLALL@ -9 -q es2intif > /dev/null");
if (engine_) {
return ExchangeError(engine_->Open());
@@ -210,8 +210,8 @@ bool Engine::InitWithDeviceInfoDict(const char *deviceInfo) {
SDIError Engine::Open()
{
SDI_TRACE_LOG("Enter");
- system("killall -9 -q es2netif > /dev/null");
- system("killall -9 -q es2intif > /dev/null");
+ system("@KILLALL@ -9 -q es2netif > /dev/null");
+ system("@KILLALL@ -9 -q es2intif > /dev/null");
if (engine_) {
return ExchangeError(engine_->Open());
}
diff --git a/src/Standalone/CMakeLists.txt b/src/Standalone/CMakeLists.txt
index eff3dd3..c2b3803 100644
--- a/src/Standalone/CMakeLists.txt
+37
View File
@@ -0,0 +1,37 @@
diff --git a/thirdparty/zlib/gzlib.c b/thirdparty/zlib/gzlib.c
index 4105e6a..eae3a38 100644
--- a/thirdparty/zlib/gzlib.c
+++ b/thirdparty/zlib/gzlib.c
@@ -3,6 +3,7 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
+#include <unistd.h>
#include "gzguts.h"
#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__)
diff --git a/thirdparty/zlib/gzread.c b/thirdparty/zlib/gzread.c
index 956b91e..66089b6 100644
--- a/thirdparty/zlib/gzread.c
+++ b/thirdparty/zlib/gzread.c
@@ -3,6 +3,7 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
+#include <unistd.h>
#include "gzguts.h"
/* Local functions */
diff --git a/thirdparty/zlib/gzwrite.c b/thirdparty/zlib/gzwrite.c
index c7b5651..e685f3e 100644
--- a/thirdparty/zlib/gzwrite.c
+++ b/thirdparty/zlib/gzwrite.c
@@ -3,6 +3,7 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
+#include <unistd.h>
#include "gzguts.h"
/* Local functions */
@@ -25,26 +25,20 @@
let
pname = "epsonscan2";
description = "Epson Scan 2 scanner driver for many modern Epson scanners and multifunction printers";
version = "6.7.63.0";
version = "6.7.70.0";
system = stdenv.hostPlatform.system;
src = fetchzip {
url = "https://download3.ebz.epson.net/dsc/f/03/00/15/17/69/0ef02802c476a6564f13cac929859c394f40326a/epsonscan2-6.7.63.0-1.src.tar.gz";
hash = "sha256-ZLnbIk0I7g6ext5anPD+/lD4qNlk6f2fL0xdIWLcfbY=";
url = "https://download3.ebz.epson.net/dsc/f/03/00/16/14/37/7577ee65efdad48ee2d2f38d9eda75418e490552/epsonscan2-6.7.70.0-1.src.tar.gz";
hash = "sha256-y7XGxrOpVou/ZSfUffV3qv+SsFFpTiU7pWvtfsiLZWc=";
};
bundle =
{
"i686-linux" = fetchzip {
name = "${pname}-bundle";
url = "https://download3.ebz.epson.net/dsc/f/03/00/15/17/67/ceae6a02aaa81cb61012899987fbb5ab891b6ab2/epsonscan2-bundle-6.7.63.0.i686.deb.tar.gz";
hash = "sha256-h9beAzNdjOhTlZqW0rJbSQXGOpvFRGvTcWw0ZtOqiYY=";
};
"x86_64-linux" = fetchzip {
name = "${pname}-bundle";
url = "https://download3.ebz.epson.net/dsc/f/03/00/15/17/68/050e5a55ed90f4efb4ca3bdd34e5797b149443ca/epsonscan2-bundle-6.7.63.0.x86_64.deb.tar.gz";
hash = "sha256-+S17FfS2h4zZCvE6W+yZvdJb6+OWYTt0ZWCA+pe1NZc=";
url = "https://download3.ebz.epson.net/dsc/f/03/00/16/14/38/7b1780ace96e2c6033bbb667c7f3ed281e4e9f38/epsonscan2-bundle-6.7.70.0.x86_64.deb.tar.gz";
hash = "sha256-fPNNFgW/VU/YG+jjmSvPZ0WsHibsXY1TNp164GxLHKw=";
};
}
."${system}" or (throw "Unsupported system: ${system}");
@@ -55,26 +49,29 @@ stdenv.mkDerivation {
patches = [
./build.patch
./gcc14.patch
(fetchpatch {
url = "https://github.com/flathub/net.epson.epsonscan2/raw/master/patches/epsonscan2-crash.patch";
hash = "sha256-srMxlFfnZuJ3ed5veFcJIiZuW27F/3xOS0yr4ywn4FI=";
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0002-Fix-crash.patch";
hash = "sha256-rNsFnHq//CJcIZl0M6RLRkIY3YhnJZbikO8SeeC2ktg=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/master/patches/epsonscan2-oob-container.patch";
hash = "sha256-FhXZT0bIBYwdFow2USRJl8Q7j2eqpq98Hh0lHFQlUQY=";
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0004-Fix-a-crash-on-an-OOB-container-access.patch";
hash = "sha256-WmA8pmPSJ1xUdeBbE8Jzi6w9p96aIOm0erF3T4EQ6VA=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/master/patches/epsonscan2-xdg-open.patch";
hash = "sha256-4ih3vZjPwWiiAxKfpLIwbbsk1K2oXSuxGbT5PVwfUsc=";
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0003-Use-XDG-open-to-open-the-directory.patch";
hash = "sha256-H3lle1SXkkpbBkozYEwiX0z9oTUubTpB+l91utxH03M=";
})
];
postPatch = ''
rm CMakeCache.txt
substituteInPlace src/Controller/Src/Scanner/Engine.cpp \
--replace '@KILLALL@' ${killall}/bin/killall
--replace-fail '@KILLALL@' ${killall}/bin/killall
substituteInPlace src/Controller/Src/Filter/GetOrientation.cpp \
--replace '@OCR_ENGINE_GETROTATE@' $out/libexec/epsonscan2-ocr/ocr-engine-getrotate
--replace-fail '@OCR_ENGINE_GETROTATE@' $out/libexec/epsonscan2-ocr/ocr-engine-getrotate
'';
nativeBuildInputs =
@@ -127,8 +124,8 @@ stdenv.mkDerivation {
+ lib.optionalString withGui ''
# The icon file extension is .ico but it's actually a png!
mkdir -p $out/share/icons/hicolor/{48x48,128x128}/apps
convert $src/Resources/Icons/escan2_app.ico -resize 48x48 $out/share/icons/hicolor/48x48/apps/epsonscan2.png
convert $src/Resources/Icons/escan2_app.ico -resize 128x128 $out/share/icons/hicolor/128x128/apps/epsonscan2.png
magick $src/Resources/Icons/escan2_app.ico -resize 48x48 -delete 1,2,3 $out/share/icons/hicolor/48x48/apps/epsonscan2.png
magick $src/Resources/Icons/escan2_app.ico -resize 128x128 -delete 1,2,3 $out/share/icons/hicolor/128x128/apps/epsonscan2.png
''
+ lib.optionalString withNonFreePlugins ''
ar xf ${bundle}/plugins/epsonscan2-non-free-plugin_*.deb
@@ -170,10 +167,7 @@ stdenv.mkDerivation {
</literal>
'';
homepage = "https://support.epson.net/linux/en/epsonscan2.php";
platforms = [
"i686-linux"
"x86_64-linux"
];
platforms = [ "x86_64-linux" ];
sourceProvenance =
with lib.sourceTypes;
[ fromSource ] ++ lib.optionals withNonFreePlugins [ binaryNativeCode ];
+30
View File
@@ -0,0 +1,30 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
let
pname = "jwtinfo";
version = "0.4.4";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "lmammino";
repo = "jwtinfo";
rev = "v${version}";
hash = "sha256-FDN9K7KnMro2BluHB7I0HTDdT9YXxi8UcOoBhKx/5dA=";
};
cargoHash = "sha256-iGvwuLiF8yGb4IxBxGH0M79SlNqZ5lpsXTNiVT7VGrU=";
meta = {
description = "Command-line tool to get information about JWTs";
homepage = "https://github.com/lmammino/jwtinfo";
changelog = "https://github.com/lmammino/jwtinfo/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
mainProgram = "jwtinfo";
};
}
+3 -3
View File
@@ -20,16 +20,16 @@
rustPlatform.buildRustPackage rec {
pname = "mise";
version = "2024.12.6";
version = "2024.12.17";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
hash = "sha256-VAevON40XWME9L4dHCuatg0ngzNBnhMUy9OAXPdJJdk=";
hash = "sha256-kdI7GEtUlVUJYN7ch8RjG1aWBMDkvLkdUGfyqWv4yAQ=";
};
cargoHash = "sha256-fmvQNmMk6QMsPRUwLnqSNuJikH0QMNjA088Kb7TzUZ4=";
cargoHash = "sha256-7ORbX2rWZ4tuf7qQo5lwTpHGFNCpo8R5ywJDdBjZcMU=";
nativeBuildInputs = [
installShellFiles
+3 -3
View File
@@ -18,18 +18,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "n8n";
version = "1.70.1";
version = "1.72.1";
src = fetchFromGitHub {
owner = "n8n-io";
repo = "n8n";
rev = "n8n@${finalAttrs.version}";
hash = "sha256-acbC6MO2wM9NsjqUqcs8jPNHfBg/P0wEYF5MxbnFhQQ=";
hash = "sha256-GIA2y81nuKWe1zuZQ99oczQtQWStyT1Qh3bZ1oe8me4=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-h2hIOVK9H5OlyhyyoRs113CbE4z4SIxVVPha0Ia9I4A=";
hash = "sha256-riuN7o+uUXS5G7fMgE7cZhGWHZtGwSHm4CP7G46R5Cw=";
};
nativeBuildInputs = [
+26 -10
View File
@@ -1,18 +1,20 @@
{
stdenvNoCC,
lib,
stdenvNoCC,
fetchFromGitHub,
gitUpdater,
versionCheckHook,
}:
stdenvNoCC.mkDerivation rec {
pname = "pfetch";
version = "0.6.0";
version = "1.7.0";
src = fetchFromGitHub {
owner = "dylanaraps";
owner = "Un1q32";
repo = "pfetch";
rev = version;
sha256 = "06z0k1naw3k052p2z7241lx92rp5m07zlr0alx8pdm6mkc3c4v8f";
tag = version;
hash = "sha256-omI1Y1UKxSkg1QUd/GHHuGBwxfNOtxqYpzPbJdG7j3A=";
};
dontBuild = true;
@@ -21,12 +23,26 @@ stdenvNoCC.mkDerivation rec {
install -Dm755 -t $out/bin pfetch
'';
meta = with lib; {
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
updateScript = gitUpdater { };
};
meta = {
description = "Pretty system information tool written in POSIX sh";
homepage = "https://github.com/dylanaraps/pfetch";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ equirosa ];
homepage = "https://github.com/Un1q32/pfetch";
changelog = "https://github.com/Un1q32/pfetch/releases/tag/${version}";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
equirosa
phanirithvij
];
mainProgram = "pfetch";
};
}
+10
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
pkg-config,
installShellFiles,
buildGoModule,
@@ -91,6 +92,15 @@ buildGoModule rec {
# we intentionally don't build and install the helper so we shouldn't display messages to users about it
./rm-podman-mac-helper-msg.patch
# backport of fix for https://github.com/containers/storage/issues/2184
# https://github.com/containers/storage/pull/2185
(fetchpatch2 {
url = "https://github.com/containers/storage/commit/99b0d2d423c8093807d8a1464437152cd04d7d95.diff?full_index=1";
hash = "sha256-aahYXnDf3qCOlb6MfVDqFKCcQG257r5sbh5qnL0T40I=";
stripLen = 1;
extraPrefix = "vendor/github.com/containers/storage/";
})
];
vendorHash = null;
+3 -3
View File
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
version = "0-unstable-2024-12-12";
version = "0-unstable-2024-12-20";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
rev = "7030a464003fedd3960f3a9d7810dc9c27d8f11a";
hash = "sha256-saRVU7PPrceoro/vYNRDpfdmghDCWQn2CAukHT5aQcc=";
rev = "323cc41b6864e53cb1b99bf909c779b739a8fccb";
hash = "sha256-CYgQ5CMVkHqOEPPaG74GVNhm8pa6ZpAtt54JrrDn+2M=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "rmpc";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "mierak";
repo = "rmpc";
rev = "v${version}";
hash = "sha256-hQhcNeGNxUxJ9hO/ukmt6V8V8zQHQLvejeu692pKTwg=";
hash = "sha256-IgkYUl1ccwzFgooqZGxmpJFzACEz3wmblostPsTnzSQ=";
};
cargoHash = "sha256-Y+NmBAcp6lu1dmMo1Gpozmm/YvNYM7mUAvU2C7iO0ew=";
cargoHash = "sha256-dNmHgPjZL+33kgA04+KQj42LrSXAFVQukml1Wy/HpHQ=";
nativeBuildInputs = [
installShellFiles
+9 -2
View File
@@ -4,7 +4,7 @@
fetchpatch,
fetchurl,
fluidsynth,
libmikmod,
libopenmpt-modplug,
libogg,
libvorbis,
pkg-config,
@@ -63,6 +63,12 @@ stdenv.mkDerivation (finalAttrs: {
})
];
# Fix location of modplug header
postPatch = ''
substituteInPlace music_modplug.h \
--replace-fail '#include "modplug.h"' '#include <libmodplug/modplug.h>'
'';
nativeBuildInputs = [
SDL
pkg-config
@@ -72,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
SDL
fluidsynth
libmikmod
libopenmpt-modplug
libogg
libvorbis
smpeg
@@ -81,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
configureFlags = [
(lib.enableFeature false "music-ogg-shared")
(lib.enableFeature false "music-mod-shared")
(lib.enableFeature true "music-mod-modplug")
(lib.enableFeature enableNativeMidi "music-native-midi-gpl")
(lib.enableFeature enableSdltest "sdltest")
(lib.enableFeature enableSmpegtest "smpegtest")
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "simdutf";
version = "5.6.4";
version = "5.7.1";
src = fetchFromGitHub {
owner = "simdutf";
repo = "simdutf";
rev = "v${finalAttrs.version}";
hash = "sha256-5MsNKsqHc4L2hCQW/LuJxKUmye6UV/IUEEMlRRMl2b8=";
hash = "sha256-CrWFs8fjgkvElbsvfS3jOyk1G+fBQB1lt63EvU6p11c=";
};
# Fix build on darwin
+3 -3
View File
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "temporal";
version = "1.25.2";
version = "1.26.2";
src = fetchFromGitHub {
owner = "temporalio";
repo = "temporal";
rev = "v${version}";
hash = "sha256-+h/F2OjOD68WEblccl6SsfCkk4Ql53QvK9OIMfIS9Gg=";
hash = "sha256-tyMR0LpZDa1QbSe/Ba8fBhtRc8ZI+gwayfi7ZKDa8gI=";
};
vendorHash = "sha256-Xvh1dDUV8Eb/n8zugdkACGMsA+75wM8uQUwq4j1W1Zw=";
vendorHash = "sha256-Ljx0LocoowYwqy7MIumGnOcUwxpy+EY5rdTEehIq8Yo=";
excludedPackages = [ "./build" ];
+16 -3
View File
@@ -14,17 +14,20 @@
jansson,
libopus,
nixosTests,
systemdLibs,
which,
withSystemd ? true,
withJanus ? true,
}:
stdenv.mkDerivation rec {
pname = "ustreamer";
version = "6.12";
version = "6.18";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
hash = "sha256-VzhTfr0Swrv3jZUvBYYy5l0+iSokIztpeyA1CuG/roY=";
};
buildInputs =
@@ -34,6 +37,9 @@ stdenv.mkDerivation rec {
libjpeg
libdrm
]
++ lib.optionals withSystemd [
systemdLibs
]
++ lib.optionals withJanus [
janus-gateway
glib
@@ -43,13 +49,19 @@ stdenv.mkDerivation rec {
libopus
];
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [
pkg-config
which
];
makeFlags =
[
"PREFIX=${placeholder "out"}"
"WITH_V4P=1"
]
++ lib.optionals withSystemd [
"WITH_SYSTEMD=1"
]
++ lib.optionals withJanus [
"WITH_JANUS=1"
# Workaround issues with Janus C Headers
@@ -77,5 +89,6 @@ stdenv.mkDerivation rec {
matthewcroughan
];
platforms = platforms.linux;
mainProgram = "ustreamer";
};
}
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "uxplay";
version = "1.70";
version = "1.71.1";
src = fetchFromGitHub {
owner = "FDH2";
repo = "UxPlay";
rev = "v${finalAttrs.version}";
hash = "sha256-5nKkQxoLe7g+fw65uVG0kiJHAEBB5B562bT3Smck1iA=";
hash = "sha256-qb/oYTScbHypwyo+znhDw8Mz5u+uhM8Jn6Gff3JK+Bc=";
};
postPatch = ''
+3 -3
View File
@@ -9,16 +9,16 @@
}:
buildGoModule rec {
pname = "vault-ssh-plus";
version = "0.7.6";
version = "0.7.7";
src = fetchFromGitHub {
owner = "isometry";
repo = pname;
rev = "v${version}";
hash = "sha256-bP1edeJj3BXsXZJn7/71AVMEnHvMi8jB4eNc5cpfxyE=";
hash = "sha256-l2Gr4AxikPWbSGeZqmkZa1wTRXNZ0l6fTSAcjl+6P8s=";
};
vendorHash = "sha256-Xfan2UykDkmndePiyaHpQ050McAreOq0VmDxAm+2K9A=";
vendorHash = "sha256-AYScvuhsK6GUzOhONBl1C89yvu85SntoW7CxCr7wWmo=";
nativeBuildInputs = [ makeWrapper ];
@@ -1,22 +0,0 @@
diff --git a/toolchain/gcc_toolchain.gni b/toolchain/gcc_toolchain.gni
index 80e2a362a..df138c87b 100644
--- a/build/toolchain/gcc_toolchain.gni
+++ b/build/toolchain/gcc_toolchain.gni
@@ -355,6 +355,8 @@ template("gcc_toolchain") {
# AIX does not support either -D (deterministic output) or response
# files.
command = "$ar -X64 {{arflags}} -r -c -s {{output}} {{inputs}}"
+ } else if (current_os == "mac") {
+ command = "$ar {{arflags}} -r -c -s {{output}} {{inputs}}"
} else {
rspfile = "{{output}}.rsp"
rspfile_content = "{{inputs}}"
@@ -546,7 +548,7 @@ template("gcc_toolchain") {
start_group_flag = ""
end_group_flag = ""
- if (current_os != "aix") {
+ if (current_os != "aix" && current_os != "mac") {
# the "--start-group .. --end-group" feature isn't available on the aix ld.
start_group_flag = "-Wl,--start-group"
end_group_flag = "-Wl,--end-group "
-226
View File
@@ -1,226 +0,0 @@
{
stdenv,
lib,
fetchgit,
gn,
ninja,
python3,
glib,
pkg-config,
icu,
xcbuild,
fetchpatch,
llvmPackages,
symlinkJoin,
}:
# Use update.sh to update all checksums.
let
version = "9.7.106.18";
v8Src = fetchgit {
url = "https://chromium.googlesource.com/v8/v8";
rev = version;
sha256 = "0cb3w733w1xn6zq9dsr43nx6llcg9hrmb2dkxairarj9c0igpzyh";
};
git_url = "https://chromium.googlesource.com";
# This data is from the DEPS file in the root of a V8 checkout.
deps = {
"base/trace_event/common" = fetchgit {
url = "${git_url}/chromium/src/base/trace_event/common.git";
rev = "7f36dbc19d31e2aad895c60261ca8f726442bfbb";
sha256 = "01b2fhbxznqbakxv42ivrzg6w8l7i9yrd9nf72d6p5xx9dm993j4";
};
"build" = fetchgit {
url = "${git_url}/chromium/src/build.git";
rev = "cf325916d58a194a935c26a56fcf6b525d1e2bf4";
sha256 = "1ix4h1cpx9bvgln8590xh7lllhsd9w1hd5k9l1gx5yxxrmywd3s4";
};
"third_party/googletest/src" = fetchgit {
url = "${git_url}/external/github.com/google/googletest.git";
rev = "16f637fbf4ffc3f7a01fa4eceb7906634565242f";
sha256 = "11012k3c3mxzdwcw2iparr9lrckafpyhqzclsj26hmfbgbdi0rrh";
};
"third_party/icu" = fetchgit {
url = "${git_url}/chromium/deps/icu.git";
rev = "eedbaf76e49d28465d9119b10c30b82906e606ff";
sha256 = "0mppvx7wf9zlqjsfaa1cf06brh1fjb6nmiib0lhbb9hd55mqjdjj";
};
"third_party/zlib" = fetchgit {
url = "${git_url}/chromium/src/third_party/zlib.git";
rev = "6da1d53b97c89b07e47714d88cab61f1ce003c68";
sha256 = "0v7ylmbwfwv6w6wp29qdf77kjjnfr2xzin08n0v1yvbhs01h5ppy";
};
"third_party/jinja2" = fetchgit {
url = "${git_url}/chromium/src/third_party/jinja2.git";
rev = "ee69aa00ee8536f61db6a451f3858745cf587de6";
sha256 = "1fsnd5h0gisfp8bdsfd81kk5v4mkqf8z368c7qlm1qcwc4ri4x7a";
};
"third_party/markupsafe" = fetchgit {
url = "${git_url}/chromium/src/third_party/markupsafe.git";
rev = "1b882ef6372b58bfd55a3285f37ed801be9137cd";
sha256 = "1jnjidbh03lhfaawimkjxbprmsgz4snr0jl06630dyd41zkdw5kr";
};
};
# See `gn_version` in DEPS.
gnSrc = fetchgit {
url = "https://gn.googlesource.com/gn";
rev = "8926696a4186279489cc2b8d768533e61bba73d7";
sha256 = "1084lnyb0a1khbgjvak05fcx6jy973wqvsf77n0alxjys18sg2yk";
};
myGn = gn.overrideAttrs (oldAttrs: {
version = "for-v8";
src = gnSrc;
});
in
stdenv.mkDerivation rec {
pname = "v8";
inherit version;
doCheck = true;
patches = [
./darwin.patch
# gcc-13 build fix for mixxign <cstdint> includes
(fetchpatch {
name = "gcc-13.patch";
url = "https://chromium.googlesource.com/v8/v8/+/c2792e58035fcbaa16d0cb70998852fbeb5df4cc^!?format=TEXT";
decode = "base64 -d";
hash = "sha256-hoPAkSaCmzXflPFXaKUwVPLECMpt6N6/8m8mBSTAHbU=";
})
];
src = v8Src;
postUnpack = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
cp -r ${v}/* $sourceRoot/${n}
'') deps
)}
chmod u+w -R .
'';
postPatch = ''
${lib.optionalString stdenv.hostPlatform.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
''}
${lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace build/config/compiler/compiler.gni \
--replace 'strip_absolute_paths_from_debug_symbols = true' \
'strip_absolute_paths_from_debug_symbols = false'
substituteInPlace build/config/compiler/BUILD.gn \
--replace 'current_toolchain == host_toolchain || !use_xcode_clang' \
'false'
''}
${lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace build/config/compiler/BUILD.gn \
--replace "-Wl,-fatal_warnings" ""
''}
touch build/config/gclient_args.gni
sed '1i#include <utility>' -i src/heap/cppgc/prefinalizer-handler.h # gcc12
'';
llvmCcAndBintools = symlinkJoin {
name = "llvmCcAndBintools";
paths = [
stdenv.cc
llvmPackages.llvm
];
};
gnFlags =
[
"use_custom_libcxx=false"
"is_clang=${lib.boolToString stdenv.cc.isClang}"
"use_sysroot=false"
# "use_system_icu=true"
"clang_use_chrome_plugins=false"
"is_component_build=false"
"v8_use_external_startup_data=false"
"v8_monolithic=true"
"is_debug=true"
"is_official_build=false"
"treat_warnings_as_errors=false"
"v8_enable_i18n_support=true"
"use_gold=false"
# ''custom_toolchain="//build/toolchain/linux/unbundle:default"''
''host_toolchain="//build/toolchain/linux/unbundle:default"''
''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
]
++ lib.optional stdenv.cc.isClang ''clang_base_path="${llvmCcAndBintools}"''
++ lib.optional stdenv.hostPlatform.isDarwin ''use_lld=false'';
env.NIX_CFLAGS_COMPILE = toString (
[
"-O2"
]
++ lib.optionals stdenv.cc.isClang [
"-Wno-error=enum-constexpr-conversion"
]
);
FORCE_MAC_SDK_MIN = stdenv.hostPlatform.sdkVer or "10.12";
nativeBuildInputs =
[
myGn
ninja
pkg-config
python3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
llvmPackages.llvm
python3.pkgs.setuptools
];
buildInputs = [
glib
icu
];
ninjaFlags = [
":d8"
"v8_monolith"
];
enableParallelBuilding = true;
installPhase = ''
install -D d8 $out/bin/d8
install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
ln -s libv8.a $out/lib/libv8_monolith.a
cp -r ../../include $out
mkdir -p $out/lib/pkgconfig
cat > $out/lib/pkgconfig/v8.pc << EOF
Name: v8
Description: V8 JavaScript Engine
Version: ${version}
Libs: -L$out/lib -lv8 -pthread
Cflags: -I$out/include
EOF
'';
meta = with lib; {
homepage = "https://v8.dev/";
description = "Google's open source JavaScript engine";
mainProgram = "d8";
maintainers = with maintainers; [
proglodyte
matthewbauer
];
platforms = platforms.unix;
license = licenses.bsd3;
knownVulnerabilities = [ "Severely outdated with multiple publicly known vulnerabilities" ];
};
}
-62
View File
@@ -1,62 +0,0 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p curl -p nix-prefetch-git -p jq
VERSION_OVERVIEW=https://omahaproxy.appspot.com/all?os=linux
TARGET_CHANNEL=stable
set -eo pipefail
if [ -n "$1" ]; then
v8_version="$1"
shift
else
v8_version=$(curl -s "$VERSION_OVERVIEW" | awk -F "," "\$2 ~ /${TARGET_CHANNEL}/ { print \$11 }")
fi
if [ -n "$1" ]; then
file_path="$1"
else
file_path=default.nix
fi
echo "Using V8 version --> $v8_version"
prefetched=$(nix-prefetch-git --no-deepClone https://chromium.googlesource.com/v8/v8 "refs/tags/${v8_version}")
path=$(echo "$prefetched" | jq -r .path)
sha256=$(echo "$prefetched" | jq -r .sha256)
sed -e "s#\\(version = \\)\"[0-9\.]*\"#\1\"$v8_version\"#" -i ${file_path}
sed -e "/v8Src = fetchgit/ { n; n; n; s/\".*\"/\"${sha256}\"/ }" -i ${file_path}
deps="$path/DEPS"
echo "$deps"
echo "Processing gn"
gn_rev=$(sed -ne "s/.*'gn_version': 'git_revision:\([^']*\).*/\1/p" < "$deps")
gn_sha256=$(nix-prefetch-git --no-deepClone https://gn.googlesource.com/gn "$gn_rev" 2>/dev/null | jq -r .sha256)
sed -e "/gnSrc = fetchgit/ { n; n; s/\".*\"/\"${gn_rev}\"/; n; s/\".*\"/\"${gn_sha256}\"/ }" -i ${file_path}
sed -ne '/" = fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${file_path} | while read dep; do
echo "Processing dependency --> $dep"
escaped_dep=$(echo "$dep" | sed -e 's#/#\\/#g')
dep_rev=$(sed -ne "/'${escaped_dep}':/ { n; s#.*+ '##; s#'.*##; p }" "$deps")
if [ "$dep_rev" = "" ]; then
echo "Failed to resolve dependency $dep, not listed in DEPS file"
rm -f "$deps"
exit 2
fi
repo_url=$(sed -ne "/\"${escaped_dep}\" = fetchgit/ { n; s/.*\"\(.*\)\".*/\1/; s#\${git_url}#https://chromium.googlesource.com#; p }" ${file_path})
sha256=$(nix-prefetch-git --no-deepClone "$repo_url" "$dep_rev" 2>/dev/null | jq -r .sha256)
if [ "$sha256" = "" ]; then
echo "Failed to get sha256 via nix-prefetch-git $repo_url $dep_rev"
rm -f "$deps"
exit 2
fi
sed -e "/\"${escaped_dep}\" = fetchgit/ { n; n; s/\".*\"/\"${dep_rev}\"/; n; s/\".*\"/\"${sha256}\"/ }" -i ${file_path}
done
echo done.
+65 -40
View File
@@ -1,40 +1,51 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
# Native build inputs
, cmake
, pkg-config
, makeWrapper
# Native build inputs
cmake,
pkg-config,
makeWrapper,
# Dependencies
, alsa-lib
, freetype
, curl
, libglvnd
, webkitgtk_4_0
, pcre
, darwin
# Dependencies
alsa-lib,
freetype,
curl,
libglvnd,
webkitgtk_4_0,
pcre2,
libsysprof-capture,
util-linuxMinimal,
libselinux,
libsepol,
libthai,
libdatrie,
libXdmcp,
lerc,
libxkbcommon,
libepoxy,
libXtst,
sqlite,
fontconfig,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "juce";
version = "7.0.11";
version = "8.0.4";
src = fetchFromGitHub {
owner = "juce-framework";
repo = "juce";
rev = finalAttrs.version;
hash = "sha256-XFC+MYxUE3NatM2oYykiPJtiQLy33JD64VZFfZS2Tas=";
hash = "sha256-iAueT+yHwUUHOzqfK5zXEZQ0GgOKJ9q9TyRrVfWdewc=";
};
patches = [
(fetchpatch {
name = "juce-6.1.2-cmake_install.patch";
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/juce/-/raw/4e6d34034b102af3cd762a983cff5dfc09e44e91/juce-6.1.2-cmake_install.patch";
hash = "sha256-fr2K/dH0Zam5QKS63zos7eq9QLwdr+bvQL5ZxScagVU=";
})
# Adapted from https://gitlab.archlinux.org/archlinux/packaging/packages/juce/-/raw/4e6d34034b102af3cd762a983cff5dfc09e44e91/juce-6.1.2-cmake_install.patch
# for Juce 8.0.4.
./juce-8.0.4-cmake_install.patch
];
nativeBuildInputs = [
@@ -43,28 +54,42 @@ stdenv.mkDerivation (finalAttrs: {
makeWrapper
];
buildInputs = [
freetype # libfreetype.so
curl # libcurl.so
(lib.getLib stdenv.cc.cc) # libstdc++.so libgcc_s.so
pcre # libpcre2.pc
] ++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib # libasound.so
libglvnd # libGL.so
webkitgtk_4_0 # webkit2gtk-4.0
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Cocoa
darwin.apple_sdk.frameworks.MetalKit
darwin.apple_sdk.frameworks.WebKit
];
buildInputs =
[
freetype # libfreetype.so
curl # libcurl.so
(lib.getLib stdenv.cc.cc) # libstdc++.so libgcc_s.so
pcre2 # libpcre2.pc
libsysprof-capture
libthai
libdatrie
lerc
libepoxy
sqlite
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib # libasound.so
libglvnd # libGL.so
webkitgtk_4_0 # webkit2gtk-4.0
util-linuxMinimal
libselinux
libsepol
libXdmcp
libxkbcommon
libXtst
];
propagatedBuildInputs = [ fontconfig ];
meta = with lib; {
description = "Cross-platform C++ application framework";
mainProgram = "juceaide";
longDescription = "JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins";
homepage = "https://github.com/juce-framework/JUCE";
longDescription = "Open-source cross-platform C++ application framework for creating desktop and mobile applications, including VST, VST3, AU, AUv3, AAX and LV2 audio plug-ins";
homepage = "https://juce.com/";
changelog = "https://github.com/juce-framework/JUCE/blob/${finalAttrs.version}/CHANGE_LIST.md";
license = with licenses; [ isc gpl3Plus ];
license = with licenses; [
agpl3Only # Or alternatively the JUCE license, but that would not be included in nixpkgs then
];
maintainers = with maintainers; [ kashw2 ];
platforms = platforms.all;
};
@@ -0,0 +1,51 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 019aa86c51..ceb7b2a8e5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,10 +137,10 @@
VERSION ${JUCE_VERSION}
COMPATIBILITY ExactVersion)
-set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING
+set(JUCE_INSTALL_DESTINATION "lib/cmake/juce" CACHE STRING
"The location, relative to the install prefix, where the JUCE config file will be installed")
-set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules")
+set(JUCE_MODULE_PATH "share/juce/modules")
set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}")
set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}")
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@@ -148,7 +148,6 @@
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
-set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake")
get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION)
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
diff --git a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt
index 7ef20eddf1..3dfb1f1802 100644
--- a/extras/Build/juceaide/CMakeLists.txt
+++ b/extras/Build/juceaide/CMakeLists.txt
@@ -153,7 +153,7 @@
add_executable(juce::juceaide ALIAS juceaide)
- set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING
+ set(JUCE_TOOL_INSTALL_DIR "bin" CACHE STRING
"The location, relative to the install prefix, where juceaide will be installed")
install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}")
diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt
index 27c987abe2..5b8de75bde 100644
--- a/modules/CMakeLists.txt
+++ b/modules/CMakeLists.txt
@@ -31,7 +31,7 @@
# ==============================================================================
juce_add_modules(
- INSTALL_PATH "include/JUCE-${JUCE_VERSION}/modules"
+ INSTALL_PATH "share/juce/modules"
ALIAS_NAMESPACE juce
juce_analytics
juce_animation
@@ -30,6 +30,6 @@ buildPythonPackage rec {
homepage = "https://github.com/dcnielsen90/python-bravia-tv";
description = "Python library for Sony Bravia TV remote control";
license = licenses.mit;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -58,6 +58,6 @@ buildPythonPackage rec {
homepage = "https://github.com/ol-iver/denonavr";
changelog = "https://github.com/ol-iver/denonavr/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -57,7 +57,7 @@ buildPythonPackage rec {
homepage = "https://github.com/Danielhiversen/flux_led";
changelog = "https://github.com/Danielhiversen/flux_led/releases/tag/${version}";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
mainProgram = "flux_led";
};
@@ -50,6 +50,6 @@ buildPythonPackage rec {
homepage = "https://github.com/GhostofGoes/getmac";
changelog = "https://github.com/GhostofGoes/getmac/blob/${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -5,6 +5,7 @@
buildPythonPackage,
cmake,
darwin,
distutils,
doxygen,
draco,
embree,
@@ -144,6 +145,7 @@ buildPythonPackage rec {
jinja2
numpy
pyopengl
distutils
]
++ lib.optionals (withTools || withUsdView) [
pyside-tools-uic
@@ -41,6 +41,6 @@ buildPythonPackage rec {
homepage = "https://github.com/pkkid/python-plexapi";
changelog = "https://github.com/pkkid/python-plexapi/releases/tag/${version}";
license = licenses.bsd3;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -31,6 +31,6 @@ buildPythonPackage rec {
homepage = "https://github.com/jjlawren/python-plexauth/";
description = "Handles the authorization flow to obtain tokens from Plex.tv via external redirection";
license = licenses.mit;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -32,6 +32,6 @@ buildPythonPackage rec {
homepage = "https://github.com/jjlawren/python-plexwebsocket/";
changelog = "https://github.com/jjlawren/python-plexwebsocket/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
@@ -36,6 +36,6 @@ buildPythonPackage rec {
homepage = "https://github.com/iwalton3/python-mpv-jsonipc";
description = "Python API to MPV using JSON IPC";
license = licenses.gpl3;
maintainers = with maintainers; [ colemickens ];
maintainers = with maintainers; [ ];
};
}
+29 -17
View File
@@ -1,6 +1,6 @@
{
lib,
mkDerivation,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
@@ -9,26 +9,34 @@
double-conversion,
graphviz,
qtxmlpatterns,
qttools,
qtbase,
wrapQtAppsHook,
testers,
nix-update-script,
}:
mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "edb";
version = "1.4.0";
version = "1.5.0";
src = fetchFromGitHub {
owner = "eteran";
repo = "edb-debugger";
rev = version;
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-1Q0eZS05L4sxzcPvEFdEaobO7JYHRu98Yf+n3ZnBi+E=";
hash = "sha256-ALhA/odVwUQHKuOZ1W/i/6L7da/yitdpBsx2kz2ySQE=";
};
nativeBuildInputs = [
cmake
pkg-config
wrapQtAppsHook
qttools
];
buildInputs = [
qtbase
boost.dev
capstone_4
double-conversion
@@ -36,30 +44,34 @@ mkDerivation rec {
qtxmlpatterns
];
postPatch = ''
# Remove CMAKE_INSTALL_PREFIX from DEFAULT_PLUGIN_PATH otherwise the nix store path will appear twice.
substituteInPlace ./src/CMakeLists.txt --replace \
'-DDEFAULT_PLUGIN_PATH=\"''${CMAKE_INSTALL_PREFIX}/''${CMAKE_INSTALL_LIBDIR}/edb\"' \
'-DDEFAULT_PLUGIN_PATH=\"''${CMAKE_INSTALL_LIBDIR}/edb\"'
cmakeFlags = [
(lib.cmakeFeature "DEFAULT_PLUGIN_DIR" "${placeholder "out"}/lib/edb")
];
postPatch = ''
# The build script checks for the presence of .git to determine whether
# submodules were fetched and will throw an error if it's not there.
# Avoid using leaveDotGit in the fetchFromGitHub options as it is non-deterministic.
mkdir -p src/qhexview/.git lib/gdtoa-desktop/.git
# Change default optional terminal program path to one that is more likely to work on NixOS.
substituteInPlace ./src/Configuration.cpp --replace "/usr/bin/xterm" "xterm";
'';
meta = with lib; {
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "env QT_QPA_PLATFORM=minimal ${lib.getExe finalAttrs.finalPackage} --version";
};
updateScript = nix-update-script { };
};
meta = {
description = "Cross platform AArch32/x86/x86-64 debugger";
mainProgram = "edb";
homepage = "https://github.com/eteran/edb-debugger";
license = licenses.gpl2Plus;
maintainers = with maintainers; [
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
lihop
maxxk
];
platforms = [ "x86_64-linux" ];
};
}
})
+2 -2
View File
@@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "sgt-puzzles";
version = "20241123.5e74004";
version = "20241223.5eea14c";
src = fetchurl {
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
hash = "sha256-r96rQWq2UJoLoIB+w1xcxIvd5kNGGYq+Wri/Vojeb0Q=";
hash = "sha256-c9cPPxjU7O+uAp6jzCkfv8ZJeVrcLmEfD+lUK0l+X9w=";
};
sgt-puzzles-menu = fetchurl {
@@ -191,6 +191,12 @@
"sha256": "12r17xxwrnci5v18x71y44289z5dvvrj8xr3sfl1ipvlrvzggbfh",
"version": "3.0"
},
"wp-fail2ban": {
"path": "wp-fail2ban/tags/5.3.2",
"rev": "3131194",
"sha256": "1svp2a3xr6ajfhabz2n4rqcf9bzfr9dilc2n27ral9akc86lj1ii",
"version": "5.3.2"
},
"wp-fastest-cache": {
"path": "wp-fastest-cache/tags/1.3.2",
"rev": "3181365",
@@ -31,6 +31,7 @@
, "wordpress-seo": "gpl3Only"
, "worker": "gpl3Plus"
, "wp-change-email-sender": "gpl2Plus"
, "wp-fail2ban": "gpl3Plus"
, "wp-fastest-cache": "gpl2Plus"
, "wp-gdpr-compliance": "gpl2Plus"
, "wp-import-export-lite": "gpl3Plus"
+1
View File
@@ -1364,6 +1364,7 @@ mapAliases {
### V ###
v8 = throw "`v8` has been removed as it's unmaintained for several years and has vulnerabilites. Please migrate to `nodejs.libv8`"; # Added 2024-12-21
validphys2 = throw "validphys2 has been removed, since it has a broken dependency that was removed"; # Added 2024-08-21
vamp = { vampSDK = vamp-plugin-sdk; }; # Added 2020-03-26
vaapiIntel = intel-vaapi-driver; # Added 2023-05-31
+3 -7
View File
@@ -331,8 +331,6 @@ with pkgs;
catch2 = catch2_3;
};
edgedb = callPackage ../tools/networking/edgedb { };
eludris = callPackage ../tools/misc/eludris { };
enochecker-test = with python3Packages; callPackage ../development/tools/enochecker-test { };
@@ -10894,10 +10892,6 @@ with pkgs;
unixODBCDrivers = recurseIntoAttrs (callPackages ../development/libraries/unixODBCDrivers { });
v8 = callPackage ../development/libraries/v8 {
stdenv = if stdenv.hostPlatform.isDarwin then overrideSDK stdenv "11.0" else stdenv;
};
valeStyles = recurseIntoAttrs (callPackages ../by-name/va/vale/styles.nix { });
valhalla = callPackage ../development/libraries/valhalla {
@@ -17848,7 +17842,9 @@ with pkgs;
cups-pk-helper = callPackage ../misc/cups/cups-pk-helper.nix { };
epsonscan2 = pkgs.libsForQt5.callPackage ../misc/drivers/epsonscan2 { };
epsonscan2 = callPackage ../by-name/ep/epsonscan2/package.nix {
inherit (qt5) wrapQtAppsHook qtbase;
};
foomatic-db-ppds-withNonfreeDb = callPackage ../by-name/fo/foomatic-db-ppds/package.nix { withNonfreeDb = true; };