Merge staging-next into staging

Changed files
+522 -538
ci
nixos
doc
manual
release-notes
modules
hardware
misc
services
virtualisation
podman
tests
pkgs
applications
editors
vim
plugins
networking
virtualization
by-name
ac
acpica-tools
ed
ep
jw
jwtinfo
mi
n8
pf
pfetch
po
podman
re
renode-dts2repl
rm
sd
SDL_mixer
si
simdutf
te
temporal
us
ustreamer
ux
uxplay
va
vault-ssh-plus
development
libraries
misc
python-modules
bravia-tv
denonavr
flux-led
getmac
openusd
plexapi
plexauth
plexwebsocket
python-mpv-jsonipc
tools
misc
games
sgt-puzzles
servers
web-apps
top-level
+1
ci/OWNERS
···
/nixos/default.nix @infinisil
/nixos/lib/from-env.nix @infinisil
/nixos/lib/eval-config.nix @infinisil
/nixos/modules/system/activation/bootspec.nix @grahamc @cole-h @raitobezarius
/nixos/modules/system/activation/bootspec.cue @grahamc @cole-h @raitobezarius
···
/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
+2
nixos/doc/manual/release-notes/rl-2505.section.md
···
- [Bat](https://github.com/sharkdp/bat), a {manpage}`cat(1)` clone with wings. Available as [programs.bat](options.html#opt-programs.bat).
- [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).
···
- [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
nixos/modules/hardware/uinput.nix
···
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "uinput" ];
-
users.groups.uinput.gid = config.ids.gids.uinput;
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
···
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "uinput" ];
+
users.groups.uinput = { };
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
+9 -9
nixos/modules/misc/ids.nix
···
# 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.
{ lib, ... }:
···
rstudio-server = 324;
localtimed = 325;
automatic-timezoned = 326;
-
whisparr = 328;
# When adding a uid, make sure it doesn't match an existing gid.
#
···
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
···
# central list to prevent id collisions.
# IMPORTANT!
+
#
+
# 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, ... }:
···
rstudio-server = 324;
localtimed = 325;
automatic-timezoned = 326;
# When adding a uid, make sure it doesn't match an existing gid.
#
···
rstudio-server = 324;
localtimed = 325;
automatic-timezoned = 326;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal
+1
nixos/modules/module-list.nix
···
./services/video/mirakurun.nix
./services/video/photonvision.nix
./services/video/mediamtx.nix
./services/video/v4l2-relayd.nix
./services/video/wivrn.nix
./services/wayland/cage.nix
···
./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
nixos/modules/services/misc/whisparr.nix
···
whisparr = {
group = cfg.group;
home = cfg.dataDir;
-
uid = config.ids.uids.whisparr;
};
};
-
users.groups = lib.mkIf (cfg.group == "whisparr") { whisparr.gid = config.ids.gids.whisparr; };
};
}
···
whisparr = {
group = cfg.group;
home = cfg.dataDir;
+
isSystemUser = true;
};
};
+
users.groups.whisparr = lib.mkIf (cfg.group == "whisparr") { };
};
}
+110
nixos/modules/services/video/ustreamer.nix
···
···
+
{
+
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
nixos/modules/virtualisation/podman/default.nix
···
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}"
{
outputs = [ "out" "man" ];
-
inherit (podmanPackage) meta;
preferLocalBuild = true;
} ''
mkdir -p $out/bin
-
ln -s ${podmanPackage}/bin/podman $out/bin/docker
mkdir -p $man/share/man/man1
-
for f in ${podmanPackage.man}/share/man/man1/*; do
basename=$(basename $f | sed s/podman/docker/g)
ln -s $f $man/share/man/man1/$basename
done
···
};
};
-
package = lib.mkOption {
-
type = types.package;
-
default = podmanPackage;
-
internal = true;
-
description = ''
-
The final Podman package (including extra packages).
'';
};
defaultNetwork.settings = lib.mkOption {
···
inherit (lib) mkOption types;
# Provides a fake "docker" binary mapping to podman
+
dockerCompat = pkgs.runCommand "${cfg.package.pname}-docker-compat-${cfg.package.version}"
{
outputs = [ "out" "man" ];
+
inherit (cfg.package) meta;
preferLocalBuild = true;
} ''
mkdir -p $out/bin
+
ln -s ${cfg.package}/bin/podman $out/bin/docker
mkdir -p $man/share/man/man1
+
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
···
};
};
+
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
nixos/tests/ustreamer.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";
-
};
};
boot.extraModulePackages = [ config.boot.kernelPackages.akvcam ];
boot.kernelModules = [ "akvcam" ];
boot.extraModprobeConfig = ''
···
start_all()
camera.wait_for_unit("ustreamer.service")
-
camera.wait_for_open_port(8000)
client.wait_for_unit("multi-user.target")
-
client.succeed("curl http://camera:8000")
'';
}
)
···
'';
in
{
+
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 = ''
···
start_all()
camera.wait_for_unit("ustreamer.service")
+
camera.wait_for_open_port(8080)
client.wait_for_unit("multi-user.target")
+
client.succeed("curl http://camera:8080")
'';
}
)
+6 -6
pkgs/applications/editors/vim/plugins/overrides.nix
···
dependencies = [ self.vim-floaterm ];
};
-
lightline-bufferline = super.lightline-bufferline.overrideAttrs {
# Requires web-devicons but mini.icons can mock them up
-
nativeCheckInputs = [ self.nvim-web-devicons ];
-
};
lir-nvim = super.lir-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
···
];
};
-
nvim-nonicons = super.nvim-nonicons.overrideAttrs {
# Requires web-devicons but mini.icons can mock them up
-
nativeCheckInputs = [ self.nvim-web-devicons ];
-
};
nvim-nu = super.nvim-nu.overrideAttrs {
dependencies = with self; [
···
dependencies = [ self.vim-floaterm ];
};
+
lightline-bufferline = super.lightline-bufferline.overrideAttrs (oa: {
# Requires web-devicons but mini.icons can mock them up
+
nativeCheckInputs = oa.nativeCheckInputs ++ [ self.nvim-web-devicons ];
+
});
lir-nvim = super.lir-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
···
];
};
+
nvim-nonicons = super.nvim-nonicons.overrideAttrs (oa: {
# Requires web-devicons but mini.icons can mock them up
+
nativeCheckInputs = oa.nativeCheckInputs ++ [ self.nvim-web-devicons ];
+
});
nvim-nu = super.nvim-nu.overrideAttrs {
dependencies = with self; [
+9 -8
pkgs/applications/networking/gns3/default.nix
···
{
guiStable = mkGui {
channel = "stable";
-
version = "2.2.50";
-
hash = "sha256-A6aLp/fN/0u5VIOX6d0QrZ2zWuNPvhI1xfw7cKU9jRA=";
};
guiPreview = mkGui {
channel = "stable";
-
version = "2.2.50";
-
hash = "sha256-A6aLp/fN/0u5VIOX6d0QrZ2zWuNPvhI1xfw7cKU9jRA=";
};
serverStable = mkServer {
channel = "stable";
-
version = "2.2.50";
-
hash = "sha256-m5Od3IPn31JaFOtilKh79aISH4lRd+KatSLRqsF8n4Y=";
};
serverPreview = mkServer {
channel = "stable";
-
version = "2.2.50";
-
hash = "sha256-m5Od3IPn31JaFOtilKh79aISH4lRd+KatSLRqsF8n4Y=";
};
}
···
{
guiStable = mkGui {
channel = "stable";
+
version = "2.2.51";
+
hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI=";
};
guiPreview = mkGui {
channel = "stable";
+
version = "2.2.51";
+
hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI=";
};
serverStable = mkServer {
channel = "stable";
+
version = "2.2.51";
+
hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ=";
};
serverPreview = mkServer {
channel = "stable";
+
version = "2.2.51";
+
hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ=";
};
}
+
+1 -11
pkgs/applications/virtualization/qemu/default.nix
···
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: {
···
hash = "sha256-+FnwvGXh9TPQQLvoySvP7O5a8skhpmh8ZS+0TQib2JQ=";
};
-
depsBuildBuild = [ buildPlatformStdenv.cc ]
++ lib.optionals hexagonSupport [ pkg-config ];
nativeBuildInputs = [
···
let
hexagonSupport = hostCpuTargets == null || lib.elem "hexagon" hostCpuTargets;
in
stdenv.mkDerivation (finalAttrs: {
···
hash = "sha256-+FnwvGXh9TPQQLvoySvP7O5a8skhpmh8ZS+0TQib2JQ=";
};
+
depsBuildBuild = [ buildPackages.stdenv.cc ]
++ lib.optionals hexagonSupport [ pkg-config ];
nativeBuildInputs = [
+2 -2
pkgs/by-name/ac/acpica-tools/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "acpica-tools";
-
version = "R09_27_24";
src = fetchFromGitHub {
owner = "acpica";
repo = "acpica";
rev = "refs/tags/${finalAttrs.version}";
-
hash = "sha256-kjdSCGa/2mmODX0gsY9JzSx9PJqYoKjtJTn8y4uduIQ=";
};
nativeBuildInputs = [
···
stdenv.mkDerivation (finalAttrs: {
pname = "acpica-tools";
+
version = "R2024_12_12";
src = fetchFromGitHub {
owner = "acpica";
repo = "acpica";
rev = "refs/tags/${finalAttrs.version}";
+
hash = "sha256-vxiWYUAEk54F1M0WrrMTHZ4DNJxxT/GaXetd5LjE808=";
};
nativeBuildInputs = [
+37
pkgs/by-name/ep/epsonscan2/gcc14.patch
···
···
+
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 */
+
+30
pkgs/by-name/jw/jwtinfo/package.nix
···
···
+
{
+
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
pkgs/by-name/mi/mise/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "mise";
-
version = "2024.12.6";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
-
hash = "sha256-VAevON40XWME9L4dHCuatg0ngzNBnhMUy9OAXPdJJdk=";
};
-
cargoHash = "sha256-fmvQNmMk6QMsPRUwLnqSNuJikH0QMNjA088Kb7TzUZ4=";
nativeBuildInputs = [
installShellFiles
···
rustPlatform.buildRustPackage rec {
pname = "mise";
+
version = "2024.12.17";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
+
hash = "sha256-kdI7GEtUlVUJYN7ch8RjG1aWBMDkvLkdUGfyqWv4yAQ=";
};
+
cargoHash = "sha256-7ORbX2rWZ4tuf7qQo5lwTpHGFNCpo8R5ywJDdBjZcMU=";
nativeBuildInputs = [
installShellFiles
+3 -3
pkgs/by-name/n8/n8n/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "n8n";
-
version = "1.70.1";
src = fetchFromGitHub {
owner = "n8n-io";
repo = "n8n";
rev = "n8n@${finalAttrs.version}";
-
hash = "sha256-acbC6MO2wM9NsjqUqcs8jPNHfBg/P0wEYF5MxbnFhQQ=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
-
hash = "sha256-h2hIOVK9H5OlyhyyoRs113CbE4z4SIxVVPha0Ia9I4A=";
};
nativeBuildInputs = [
···
stdenv.mkDerivation (finalAttrs: {
pname = "n8n";
+
version = "1.72.1";
src = fetchFromGitHub {
owner = "n8n-io";
repo = "n8n";
rev = "n8n@${finalAttrs.version}";
+
hash = "sha256-GIA2y81nuKWe1zuZQ99oczQtQWStyT1Qh3bZ1oe8me4=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
+
hash = "sha256-riuN7o+uUXS5G7fMgE7cZhGWHZtGwSHm4CP7G46R5Cw=";
};
nativeBuildInputs = [
+26 -10
pkgs/by-name/pf/pfetch/package.nix
···
{
-
stdenvNoCC,
lib,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "pfetch";
-
version = "0.6.0";
src = fetchFromGitHub {
-
owner = "dylanaraps";
repo = "pfetch";
-
rev = version;
-
sha256 = "06z0k1naw3k052p2z7241lx92rp5m07zlr0alx8pdm6mkc3c4v8f";
};
dontBuild = true;
···
install -Dm755 -t $out/bin pfetch
'';
-
meta = with lib; {
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 ];
mainProgram = "pfetch";
};
}
···
{
lib,
+
stdenvNoCC,
fetchFromGitHub,
+
gitUpdater,
+
versionCheckHook,
}:
stdenvNoCC.mkDerivation rec {
pname = "pfetch";
+
version = "1.7.0";
src = fetchFromGitHub {
+
owner = "Un1q32";
repo = "pfetch";
+
tag = version;
+
hash = "sha256-omI1Y1UKxSkg1QUd/GHHuGBwxfNOtxqYpzPbJdG7j3A=";
};
dontBuild = true;
···
install -Dm755 -t $out/bin pfetch
'';
+
nativeInstallCheckInputs = [
+
versionCheckHook
+
];
+
versionCheckProgramArg = [ "--version" ];
+
doInstallCheck = true;
+
+
passthru = {
+
updateScript = gitUpdater { };
+
};
+
+
meta = {
description = "Pretty system information tool written in POSIX sh";
+
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
pkgs/by-name/po/podman/package.nix
···
lib,
stdenv,
fetchFromGitHub,
pkg-config,
installShellFiles,
buildGoModule,
···
# 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
];
vendorHash = null;
···
lib,
stdenv,
fetchFromGitHub,
+
fetchpatch2,
pkg-config,
installShellFiles,
buildGoModule,
···
# 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
pkgs/by-name/re/renode-dts2repl/package.nix
···
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
-
version = "0-unstable-2024-12-12";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
-
rev = "7030a464003fedd3960f3a9d7810dc9c27d8f11a";
-
hash = "sha256-saRVU7PPrceoro/vYNRDpfdmghDCWQn2CAukHT5aQcc=";
};
nativeBuildInputs = [
···
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
+
version = "0-unstable-2024-12-20";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
+
rev = "323cc41b6864e53cb1b99bf909c779b739a8fccb";
+
hash = "sha256-CYgQ5CMVkHqOEPPaG74GVNhm8pa6ZpAtt54JrrDn+2M=";
};
nativeBuildInputs = [
+3 -3
pkgs/by-name/rm/rmpc/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "rmpc";
-
version = "0.6.0";
src = fetchFromGitHub {
owner = "mierak";
repo = "rmpc";
rev = "v${version}";
-
hash = "sha256-hQhcNeGNxUxJ9hO/ukmt6V8V8zQHQLvejeu692pKTwg=";
};
-
cargoHash = "sha256-Y+NmBAcp6lu1dmMo1Gpozmm/YvNYM7mUAvU2C7iO0ew=";
nativeBuildInputs = [
installShellFiles
···
rustPlatform.buildRustPackage rec {
pname = "rmpc";
+
version = "0.7.0";
src = fetchFromGitHub {
owner = "mierak";
repo = "rmpc";
rev = "v${version}";
+
hash = "sha256-IgkYUl1ccwzFgooqZGxmpJFzACEz3wmblostPsTnzSQ=";
};
+
cargoHash = "sha256-dNmHgPjZL+33kgA04+KQj42LrSXAFVQukml1Wy/HpHQ=";
nativeBuildInputs = [
installShellFiles
+9 -2
pkgs/by-name/sd/SDL_mixer/package.nix
···
fetchpatch,
fetchurl,
fluidsynth,
-
libmikmod,
libogg,
libvorbis,
pkg-config,
···
})
];
nativeBuildInputs = [
SDL
pkg-config
···
buildInputs = [
SDL
fluidsynth
-
libmikmod
libogg
libvorbis
smpeg
···
configureFlags = [
(lib.enableFeature false "music-ogg-shared")
(lib.enableFeature false "music-mod-shared")
(lib.enableFeature enableNativeMidi "music-native-midi-gpl")
(lib.enableFeature enableSdltest "sdltest")
(lib.enableFeature enableSmpegtest "smpegtest")
···
fetchpatch,
fetchurl,
fluidsynth,
+
libopenmpt-modplug,
libogg,
libvorbis,
pkg-config,
···
})
];
+
# Fix location of modplug header
+
postPatch = ''
+
substituteInPlace music_modplug.h \
+
--replace-fail '#include "modplug.h"' '#include <libmodplug/modplug.h>'
+
'';
+
nativeBuildInputs = [
SDL
pkg-config
···
buildInputs = [
SDL
fluidsynth
+
libopenmpt-modplug
libogg
libvorbis
smpeg
···
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
pkgs/by-name/si/simdutf/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "simdutf";
-
version = "5.6.4";
src = fetchFromGitHub {
owner = "simdutf";
repo = "simdutf";
rev = "v${finalAttrs.version}";
-
hash = "sha256-5MsNKsqHc4L2hCQW/LuJxKUmye6UV/IUEEMlRRMl2b8=";
};
# Fix build on darwin
···
stdenv.mkDerivation (finalAttrs: {
pname = "simdutf";
+
version = "5.7.1";
src = fetchFromGitHub {
owner = "simdutf";
repo = "simdutf";
rev = "v${finalAttrs.version}";
+
hash = "sha256-CrWFs8fjgkvElbsvfS3jOyk1G+fBQB1lt63EvU6p11c=";
};
# Fix build on darwin
+3 -3
pkgs/by-name/te/temporal/package.nix
···
buildGoModule rec {
pname = "temporal";
-
version = "1.25.2";
src = fetchFromGitHub {
owner = "temporalio";
repo = "temporal";
rev = "v${version}";
-
hash = "sha256-+h/F2OjOD68WEblccl6SsfCkk4Ql53QvK9OIMfIS9Gg=";
};
-
vendorHash = "sha256-Xvh1dDUV8Eb/n8zugdkACGMsA+75wM8uQUwq4j1W1Zw=";
excludedPackages = [ "./build" ];
···
buildGoModule rec {
pname = "temporal";
+
version = "1.26.2";
src = fetchFromGitHub {
owner = "temporalio";
repo = "temporal";
rev = "v${version}";
+
hash = "sha256-tyMR0LpZDa1QbSe/Ba8fBhtRc8ZI+gwayfi7ZKDa8gI=";
};
+
vendorHash = "sha256-Ljx0LocoowYwqy7MIumGnOcUwxpy+EY5rdTEehIq8Yo=";
excludedPackages = [ "./build" ];
+16 -3
pkgs/by-name/us/ustreamer/package.nix
···
jansson,
libopus,
nixosTests,
withJanus ? true,
}:
stdenv.mkDerivation rec {
pname = "ustreamer";
-
version = "6.12";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
-
hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
};
buildInputs =
···
libevent
libjpeg
libdrm
]
++ lib.optionals withJanus [
janus-gateway
···
libopus
];
-
nativeBuildInputs = [ pkg-config ];
makeFlags =
[
"PREFIX=${placeholder "out"}"
"WITH_V4P=1"
]
++ lib.optionals withJanus [
"WITH_JANUS=1"
···
matthewcroughan
];
platforms = platforms.linux;
};
}
···
jansson,
libopus,
nixosTests,
+
systemdLibs,
+
which,
+
withSystemd ? true,
withJanus ? true,
}:
stdenv.mkDerivation rec {
pname = "ustreamer";
+
version = "6.18";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
+
hash = "sha256-VzhTfr0Swrv3jZUvBYYy5l0+iSokIztpeyA1CuG/roY=";
};
buildInputs =
···
libevent
libjpeg
libdrm
+
]
+
++ lib.optionals withSystemd [
+
systemdLibs
]
++ lib.optionals withJanus [
janus-gateway
···
libopus
];
+
nativeBuildInputs = [
+
pkg-config
+
which
+
];
makeFlags =
[
"PREFIX=${placeholder "out"}"
"WITH_V4P=1"
+
]
+
++ lib.optionals withSystemd [
+
"WITH_SYSTEMD=1"
]
++ lib.optionals withJanus [
"WITH_JANUS=1"
···
matthewcroughan
];
platforms = platforms.linux;
+
mainProgram = "ustreamer";
};
}
+2 -2
pkgs/by-name/ux/uxplay/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "uxplay";
-
version = "1.70";
src = fetchFromGitHub {
owner = "FDH2";
repo = "UxPlay";
rev = "v${finalAttrs.version}";
-
hash = "sha256-5nKkQxoLe7g+fw65uVG0kiJHAEBB5B562bT3Smck1iA=";
};
postPatch = ''
···
stdenv.mkDerivation (finalAttrs: {
pname = "uxplay";
+
version = "1.71.1";
src = fetchFromGitHub {
owner = "FDH2";
repo = "UxPlay";
rev = "v${finalAttrs.version}";
+
hash = "sha256-qb/oYTScbHypwyo+znhDw8Mz5u+uhM8Jn6Gff3JK+Bc=";
};
postPatch = ''
+3 -3
pkgs/by-name/va/vault-ssh-plus/package.nix
···
}:
buildGoModule rec {
pname = "vault-ssh-plus";
-
version = "0.7.6";
src = fetchFromGitHub {
owner = "isometry";
repo = pname;
rev = "v${version}";
-
hash = "sha256-bP1edeJj3BXsXZJn7/71AVMEnHvMi8jB4eNc5cpfxyE=";
};
-
vendorHash = "sha256-Xfan2UykDkmndePiyaHpQ050McAreOq0VmDxAm+2K9A=";
nativeBuildInputs = [ makeWrapper ];
···
}:
buildGoModule rec {
pname = "vault-ssh-plus";
+
version = "0.7.7";
src = fetchFromGitHub {
owner = "isometry";
repo = pname;
rev = "v${version}";
+
hash = "sha256-l2Gr4AxikPWbSGeZqmkZa1wTRXNZ0l6fTSAcjl+6P8s=";
};
+
vendorHash = "sha256-AYScvuhsK6GUzOhONBl1C89yvu85SntoW7CxCr7wWmo=";
nativeBuildInputs = [ makeWrapper ];
-22
pkgs/development/libraries/v8/darwin.patch
···
-
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
pkgs/development/libraries/v8/default.nix
···
-
{
-
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
pkgs/development/libraries/v8/update.sh
···
-
#!/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
pkgs/development/misc/juce/default.nix
···
-
{ lib
-
, stdenv
-
, fetchFromGitHub
-
, fetchpatch
-
# Native build inputs
-
, cmake
-
, pkg-config
-
, makeWrapper
-
# Dependencies
-
, alsa-lib
-
, freetype
-
, curl
-
, libglvnd
-
, webkitgtk_4_0
-
, pcre
-
, darwin
}:
stdenv.mkDerivation (finalAttrs: {
pname = "juce";
-
version = "7.0.11";
src = fetchFromGitHub {
owner = "juce-framework";
repo = "juce";
rev = finalAttrs.version;
-
hash = "sha256-XFC+MYxUE3NatM2oYykiPJtiQLy33JD64VZFfZS2Tas=";
};
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=";
-
})
];
nativeBuildInputs = [
···
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
-
];
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";
changelog = "https://github.com/juce-framework/JUCE/blob/${finalAttrs.version}/CHANGE_LIST.md";
-
license = with licenses; [ isc gpl3Plus ];
maintainers = with maintainers; [ kashw2 ];
platforms = platforms.all;
};
···
+
{
+
lib,
+
stdenv,
+
fetchFromGitHub,
+
fetchpatch,
+
# Native build inputs
+
cmake,
+
pkg-config,
+
makeWrapper,
+
# 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 = "8.0.4";
src = fetchFromGitHub {
owner = "juce-framework";
repo = "juce";
rev = finalAttrs.version;
+
hash = "sha256-iAueT+yHwUUHOzqfK5zXEZQ0GgOKJ9q9TyRrVfWdewc=";
};
patches = [
+
# 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 = [
···
makeWrapper
];
+
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 = "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; [
+
agpl3Only # Or alternatively the JUCE license, but that would not be included in nixpkgs then
+
];
maintainers = with maintainers; [ kashw2 ];
platforms = platforms.all;
};
+51
pkgs/development/misc/juce/juce-8.0.4-cmake_install.patch
···
···
+
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
+1 -1
pkgs/development/python-modules/bravia-tv/default.nix
···
homepage = "https://github.com/dcnielsen90/python-bravia-tv";
description = "Python library for Sony Bravia TV remote control";
license = licenses.mit;
-
maintainers = with maintainers; [ colemickens ];
};
}
···
homepage = "https://github.com/dcnielsen90/python-bravia-tv";
description = "Python library for Sony Bravia TV remote control";
license = licenses.mit;
+
maintainers = with maintainers; [ ];
};
}
+1 -1
pkgs/development/python-modules/denonavr/default.nix
···
homepage = "https://github.com/ol-iver/denonavr";
changelog = "https://github.com/ol-iver/denonavr/releases/tag/${version}";
license = licenses.mit;
-
maintainers = with maintainers; [ colemickens ];
};
}
···
homepage = "https://github.com/ol-iver/denonavr";
changelog = "https://github.com/ol-iver/denonavr/releases/tag/${version}";
license = licenses.mit;
+
maintainers = with maintainers; [ ];
};
}
+1 -1
pkgs/development/python-modules/flux-led/default.nix
···
homepage = "https://github.com/Danielhiversen/flux_led";
changelog = "https://github.com/Danielhiversen/flux_led/releases/tag/${version}";
license = licenses.lgpl3Plus;
-
maintainers = with maintainers; [ colemickens ];
platforms = platforms.linux;
mainProgram = "flux_led";
};
···
homepage = "https://github.com/Danielhiversen/flux_led";
changelog = "https://github.com/Danielhiversen/flux_led/releases/tag/${version}";
license = licenses.lgpl3Plus;
+
maintainers = with maintainers; [ ];
platforms = platforms.linux;
mainProgram = "flux_led";
};
+1 -1
pkgs/development/python-modules/getmac/default.nix
···
homepage = "https://github.com/GhostofGoes/getmac";
changelog = "https://github.com/GhostofGoes/getmac/blob/${version}/CHANGELOG.md";
license = licenses.mit;
-
maintainers = with maintainers; [ colemickens ];
};
}
···
homepage = "https://github.com/GhostofGoes/getmac";
changelog = "https://github.com/GhostofGoes/getmac/blob/${version}/CHANGELOG.md";
license = licenses.mit;
+
maintainers = with maintainers; [ ];
};
}
+2
pkgs/development/python-modules/openusd/default.nix
···
buildPythonPackage,
cmake,
darwin,
doxygen,
draco,
embree,
···
jinja2
numpy
pyopengl
]
++ lib.optionals (withTools || withUsdView) [
pyside-tools-uic
···
buildPythonPackage,
cmake,
darwin,
+
distutils,
doxygen,
draco,
embree,
···
jinja2
numpy
pyopengl
+
distutils
]
++ lib.optionals (withTools || withUsdView) [
pyside-tools-uic
+1 -1
pkgs/development/python-modules/plexapi/default.nix
···
homepage = "https://github.com/pkkid/python-plexapi";
changelog = "https://github.com/pkkid/python-plexapi/releases/tag/${version}";
license = licenses.bsd3;
-
maintainers = with maintainers; [ colemickens ];
};
}
···
homepage = "https://github.com/pkkid/python-plexapi";
changelog = "https://github.com/pkkid/python-plexapi/releases/tag/${version}";
license = licenses.bsd3;
+
maintainers = with maintainers; [ ];
};
}
+1 -1
pkgs/development/python-modules/plexauth/default.nix
···
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 ];
};
}
···
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; [ ];
};
}
+1 -1
pkgs/development/python-modules/plexwebsocket/default.nix
···
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 ];
};
}
···
homepage = "https://github.com/jjlawren/python-plexwebsocket/";
changelog = "https://github.com/jjlawren/python-plexwebsocket/releases/tag/v${version}";
license = licenses.mit;
+
maintainers = with maintainers; [ ];
};
}
+1 -1
pkgs/development/python-modules/python-mpv-jsonipc/default.nix
···
homepage = "https://github.com/iwalton3/python-mpv-jsonipc";
description = "Python API to MPV using JSON IPC";
license = licenses.gpl3;
-
maintainers = with maintainers; [ colemickens ];
};
}
···
homepage = "https://github.com/iwalton3/python-mpv-jsonipc";
description = "Python API to MPV using JSON IPC";
license = licenses.gpl3;
+
maintainers = with maintainers; [ ];
};
}
+29 -17
pkgs/development/tools/misc/edb/default.nix
···
{
lib,
-
mkDerivation,
fetchFromGitHub,
cmake,
pkg-config,
···
double-conversion,
graphviz,
qtxmlpatterns,
}:
-
mkDerivation rec {
pname = "edb";
-
version = "1.4.0";
src = fetchFromGitHub {
owner = "eteran";
repo = "edb-debugger";
-
rev = version;
fetchSubmodules = true;
-
hash = "sha256-1Q0eZS05L4sxzcPvEFdEaobO7JYHRu98Yf+n3ZnBi+E=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
boost.dev
capstone_4
double-conversion
···
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\"'
# 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; {
description = "Cross platform AArch32/x86/x86-64 debugger";
mainProgram = "edb";
homepage = "https://github.com/eteran/edb-debugger";
-
license = licenses.gpl2Plus;
-
maintainers = with maintainers; [
lihop
maxxk
];
platforms = [ "x86_64-linux" ];
};
-
}
···
{
lib,
+
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
···
double-conversion,
graphviz,
qtxmlpatterns,
+
qttools,
+
qtbase,
+
wrapQtAppsHook,
+
testers,
+
nix-update-script,
}:
+
stdenv.mkDerivation (finalAttrs: {
pname = "edb";
+
version = "1.5.0";
src = fetchFromGitHub {
owner = "eteran";
repo = "edb-debugger";
+
tag = finalAttrs.version;
fetchSubmodules = true;
+
hash = "sha256-ALhA/odVwUQHKuOZ1W/i/6L7da/yitdpBsx2kz2ySQE=";
};
nativeBuildInputs = [
cmake
pkg-config
+
wrapQtAppsHook
+
qttools
];
buildInputs = [
+
qtbase
boost.dev
capstone_4
double-conversion
···
qtxmlpatterns
];
+
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
+
'';
+
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 = lib.licenses.gpl2Plus;
+
maintainers = with lib.maintainers; [
lihop
maxxk
];
platforms = [ "x86_64-linux" ];
};
+
})
+2 -2
pkgs/games/sgt-puzzles/default.nix
···
stdenv.mkDerivation rec {
pname = "sgt-puzzles";
-
version = "20241123.5e74004";
src = fetchurl {
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-
hash = "sha256-r96rQWq2UJoLoIB+w1xcxIvd5kNGGYq+Wri/Vojeb0Q=";
};
sgt-puzzles-menu = fetchurl {
···
stdenv.mkDerivation rec {
pname = "sgt-puzzles";
+
version = "20241223.5eea14c";
src = fetchurl {
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
+
hash = "sha256-c9cPPxjU7O+uAp6jzCkfv8ZJeVrcLmEfD+lUK0l+X9w=";
};
sgt-puzzles-menu = fetchurl {
+12 -12
pkgs/misc/drivers/epsonscan2/build.patch pkgs/by-name/ep/epsonscan2/build.patch
···
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
--- 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());
diff --git a/src/Standalone/CMakeLists.txt b/src/Standalone/CMakeLists.txt
index eff3dd3..c2b3803 100644
--- a/src/Standalone/CMakeLists.txt
···
static const int kMaxBuf = 256;
diff --git a/src/Controller/Src/Scanner/Engine.cpp b/src/Controller/Src/Scanner/Engine.cpp
+
index 8bd842e..d011329 100755
--- a/src/Controller/Src/Scanner/Engine.cpp
+++ b/src/Controller/Src/Scanner/Engine.cpp
+
@@ -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
+19 -25
pkgs/misc/drivers/epsonscan2/default.nix pkgs/by-name/ep/epsonscan2/package.nix
···
let
pname = "epsonscan2";
description = "Epson Scan 2 scanner driver for many modern Epson scanners and multifunction printers";
-
version = "6.7.63.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=";
};
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=";
};
}
."${system}" or (throw "Unsupported system: ${system}");
···
patches = [
./build.patch
(fetchpatch {
-
url = "https://github.com/flathub/net.epson.epsonscan2/raw/master/patches/epsonscan2-crash.patch";
-
hash = "sha256-srMxlFfnZuJ3ed5veFcJIiZuW27F/3xOS0yr4ywn4FI=";
})
(fetchpatch {
-
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/master/patches/epsonscan2-oob-container.patch";
-
hash = "sha256-FhXZT0bIBYwdFow2USRJl8Q7j2eqpq98Hh0lHFQlUQY=";
})
(fetchpatch {
-
url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/master/patches/epsonscan2-xdg-open.patch";
-
hash = "sha256-4ih3vZjPwWiiAxKfpLIwbbsk1K2oXSuxGbT5PVwfUsc=";
})
];
postPatch = ''
substituteInPlace src/Controller/Src/Scanner/Engine.cpp \
-
--replace '@KILLALL@' ${killall}/bin/killall
substituteInPlace src/Controller/Src/Filter/GetOrientation.cpp \
-
--replace '@OCR_ENGINE_GETROTATE@' $out/libexec/epsonscan2-ocr/ocr-engine-getrotate
'';
nativeBuildInputs =
···
+ 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
''
+ lib.optionalString withNonFreePlugins ''
ar xf ${bundle}/plugins/epsonscan2-non-free-plugin_*.deb
···
</literal>
'';
homepage = "https://support.epson.net/linux/en/epsonscan2.php";
-
platforms = [
-
"i686-linux"
-
"x86_64-linux"
-
];
sourceProvenance =
with lib.sourceTypes;
[ fromSource ] ++ lib.optionals withNonFreePlugins [ binaryNativeCode ];
···
let
pname = "epsonscan2";
description = "Epson Scan 2 scanner driver for many modern Epson scanners and multifunction printers";
+
version = "6.7.70.0";
system = stdenv.hostPlatform.system;
src = fetchzip {
+
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 =
{
"x86_64-linux" = fetchzip {
name = "${pname}-bundle";
+
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}");
···
patches = [
./build.patch
+
./gcc14.patch
(fetchpatch {
+
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/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/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-fail '@KILLALL@' ${killall}/bin/killall
substituteInPlace src/Controller/Src/Filter/GetOrientation.cpp \
+
--replace-fail '@OCR_ENGINE_GETROTATE@' $out/libexec/epsonscan2-ocr/ocr-engine-getrotate
'';
nativeBuildInputs =
···
+ lib.optionalString withGui ''
# The icon file extension is .ico but it's actually a png!
mkdir -p $out/share/icons/hicolor/{48x48,128x128}/apps
+
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
···
</literal>
'';
homepage = "https://support.epson.net/linux/en/epsonscan2.php";
+
platforms = [ "x86_64-linux" ];
sourceProvenance =
with lib.sourceTypes;
[ fromSource ] ++ lib.optionals withNonFreePlugins [ binaryNativeCode ];
+6
pkgs/servers/web-apps/wordpress/packages/plugins.json
···
"sha256": "12r17xxwrnci5v18x71y44289z5dvvrj8xr3sfl1ipvlrvzggbfh",
"version": "3.0"
},
"wp-fastest-cache": {
"path": "wp-fastest-cache/tags/1.3.2",
"rev": "3181365",
···
"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",
+1
pkgs/servers/web-apps/wordpress/packages/wordpress-plugins.json
···
, "wordpress-seo": "gpl3Only"
, "worker": "gpl3Plus"
, "wp-change-email-sender": "gpl2Plus"
, "wp-fastest-cache": "gpl2Plus"
, "wp-gdpr-compliance": "gpl2Plus"
, "wp-import-export-lite": "gpl3Plus"
···
, "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"
pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch pkgs/by-name/ed/edgedb/0001-dynamically-patchelf-binaries.patch
+3 -3
pkgs/tools/networking/edgedb/default.nix pkgs/by-name/ed/edgedb/package.nix
···
}:
rustPlatform.buildRustPackage rec {
pname = "edgedb";
-
version = "6.0.2";
src = fetchFromGitHub {
owner = "edgedb";
repo = "edgedb-cli";
rev = "refs/tags/v${version}";
-
hash = "sha256-P55LwByDVO3pEzg4OZldXiyli8s5oHvV8MXCDwkF2+8=";
fetchSubmodules = true;
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
-
hash = "sha256-oRtgORzp0tabPcyArPgG8LGfYlSPhpaeRPT9QWF5BGs=";
};
nativeBuildInputs = [
···
}:
rustPlatform.buildRustPackage rec {
pname = "edgedb";
+
version = "6.1.0";
src = fetchFromGitHub {
owner = "edgedb";
repo = "edgedb-cli";
rev = "refs/tags/v${version}";
+
hash = "sha256-iB0ZWciEx/Xiq+pMg3nMJNHumoy5Z8dB6ev7UneHnVg=";
fetchSubmodules = true;
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
+
hash = "sha256-oiDCUJamnl2ykvfs7V20dvr29ZAtSl+kZW4fzmlc1Ao=";
};
nativeBuildInputs = [
+1
pkgs/top-level/aliases.nix
···
### V ###
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
···
### 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
pkgs/top-level/all-packages.nix
···
catch2 = catch2_3;
};
-
edgedb = callPackage ../tools/networking/edgedb { };
-
eludris = callPackage ../tools/misc/eludris { };
enochecker-test = with python3Packages; callPackage ../development/tools/enochecker-test { };
···
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 {
···
cups-pk-helper = callPackage ../misc/cups/cups-pk-helper.nix { };
-
epsonscan2 = pkgs.libsForQt5.callPackage ../misc/drivers/epsonscan2 { };
foomatic-db-ppds-withNonfreeDb = callPackage ../by-name/fo/foomatic-db-ppds/package.nix { withNonfreeDb = true; };
···
catch2 = catch2_3;
};
eludris = callPackage ../tools/misc/eludris { };
enochecker-test = with python3Packages; callPackage ../development/tools/enochecker-test { };
···
unixODBCDrivers = recurseIntoAttrs (callPackages ../development/libraries/unixODBCDrivers { });
valeStyles = recurseIntoAttrs (callPackages ../by-name/va/vale/styles.nix { });
valhalla = callPackage ../development/libraries/valhalla {
···
cups-pk-helper = callPackage ../misc/cups/cups-pk-helper.nix { };
+
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; };