Merge master into staging-next
This commit is contained in:
@@ -15295,6 +15295,12 @@
|
||||
githubId = 1104419;
|
||||
name = "Lucas Hoffmann";
|
||||
};
|
||||
luckshiba = {
|
||||
email = "luckshiba@protonmail.com";
|
||||
github = "luckshiba";
|
||||
githubId = 43530291;
|
||||
name = "LuckShiba";
|
||||
};
|
||||
lucperkins = {
|
||||
email = "lucperkins@gmail.com";
|
||||
github = "lucperkins";
|
||||
|
||||
@@ -1,12 +1,43 @@
|
||||
import datetime as dt
|
||||
import fcntl
|
||||
import io
|
||||
import os
|
||||
import pty
|
||||
import select
|
||||
import subprocess
|
||||
import typing
|
||||
from pathlib import Path
|
||||
|
||||
from test_driver.logger import AbstractLogger
|
||||
|
||||
|
||||
def readline_with_timeout(
|
||||
readable: typing.IO[str], timeout: dt.timedelta
|
||||
) -> typing.Generator[str]:
|
||||
"""
|
||||
Read a line from `readable` within the given `timeout`, otherwise raises `TimeoutError`.
|
||||
|
||||
Note: while the generator is running, `readable` will be in nonblocking mode.
|
||||
"""
|
||||
fd = readable.fileno()
|
||||
og_flags = fcntl.fcntl(fd, fcntl.F_GETFL)
|
||||
fcntl.fcntl(fd, fcntl.F_SETFL, og_flags | os.O_NONBLOCK)
|
||||
|
||||
try:
|
||||
while True:
|
||||
ready, _, _ = select.select([readable], [], [], timeout.total_seconds())
|
||||
if len(ready) == 0:
|
||||
raise TimeoutError()
|
||||
|
||||
# Under the hood, `readline` may read more than one line from the file descriptor,
|
||||
# so we cannot just return to the `select`, as it may block, despite there being more
|
||||
# lines buffered. So, read all the lines before returning to the select. This only
|
||||
# works if the file descriptor is in non-blocking mode!
|
||||
while line := readable.readline():
|
||||
yield line
|
||||
finally:
|
||||
fcntl.fcntl(fd, fcntl.F_SETFL, og_flags)
|
||||
|
||||
|
||||
class VLan:
|
||||
"""This class handles a VLAN that the run-vm scripts identify via its
|
||||
number handles. The network's lifetime equals the object's lifetime.
|
||||
@@ -33,33 +64,62 @@ class VLan:
|
||||
os.environ[f"QEMU_VDE_SOCKET_{self.nr}"] = str(self.socket_dir)
|
||||
|
||||
self.logger.info("start vlan")
|
||||
pty_master, pty_slave = pty.openpty()
|
||||
|
||||
# The --hub is required for the scenario determined by
|
||||
# nixos/tests/networking.nix vlan-ping.
|
||||
# VLAN Tagged traffic (802.1Q) seams to be blocked if a vde_switch is
|
||||
# used without the hub mode (flood packets to all ports).
|
||||
self.process = subprocess.Popen(
|
||||
["vde_switch", "-s", self.socket_dir, "--dirmode", "0700", "--hub"],
|
||||
stdin=pty_slave,
|
||||
[
|
||||
"vde_switch",
|
||||
"--sock",
|
||||
self.socket_dir,
|
||||
"--dirmode",
|
||||
"0700",
|
||||
# The --hub is required for the scenario determined by
|
||||
# nixos/tests/networkd-and-scripted.nix vlan-ping.
|
||||
# VLAN Tagged traffic (802.1Q) seems to be blocked if a vde_switch is
|
||||
# used without the hub mode (flood packets to all ports).
|
||||
"--hub",
|
||||
],
|
||||
bufsize=1, # Line buffered.
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
shell=False,
|
||||
stderr=None, # Do not swallow stderr.
|
||||
text=True,
|
||||
)
|
||||
self.pid = self.process.pid
|
||||
self.fd = os.fdopen(pty_master, "w")
|
||||
self.fd.write("version\n")
|
||||
|
||||
# TODO: perl version checks if this can be read from
|
||||
# an if not, dies. we could hang here forever. Fix it.
|
||||
assert self.process.stdin is not None
|
||||
self.process.stdin.write("showinfo\n")
|
||||
|
||||
# showinfo's output looks like this:
|
||||
#
|
||||
# ```
|
||||
# vde$ showinfo
|
||||
# 0000 DATA END WITH '.'
|
||||
# VDE switch V.2.3.3
|
||||
# (C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2
|
||||
#
|
||||
# pid 82406 MAC 00:ff:62:25:47:55 uptime 45
|
||||
# .
|
||||
# 1000 Success
|
||||
# ```
|
||||
#
|
||||
# We read past all the output until we get to the `1000 Success`.
|
||||
# This serves 2 purposes:
|
||||
# 1. It's a nice sanity check that `vde_switch` is actually working.
|
||||
# 2. By the time we're done, `vde_switch` will have created the
|
||||
# `ctl` socket in `socket_dir`, so we don't have to wait for it to exist.
|
||||
assert self.process.stdout is not None
|
||||
self.process.stdout.readline()
|
||||
if not (self.socket_dir / "ctl").exists():
|
||||
self.logger.error("cannot start vde_switch")
|
||||
for line in readline_with_timeout(
|
||||
self.process.stdout, timeout=dt.timedelta(seconds=5)
|
||||
):
|
||||
if "1000 Success" in line:
|
||||
break
|
||||
|
||||
assert (self.socket_dir / "ctl").exists(), "cannot start vde_switch"
|
||||
|
||||
self.logger.info(f"running vlan (pid {self.pid}; ctl {self.socket_dir})")
|
||||
|
||||
def stop(self) -> None:
|
||||
self.logger.info(f"kill vlan (pid {self.pid})")
|
||||
self.fd.close()
|
||||
assert self.process.stdin is not None
|
||||
self.process.stdin.close()
|
||||
self.process.terminate()
|
||||
|
||||
@@ -201,6 +201,7 @@
|
||||
./programs/direnv.nix
|
||||
./programs/dmrconfig.nix
|
||||
./programs/droidcam.nix
|
||||
./programs/dsearch.nix
|
||||
./programs/dublin-traceroute.nix
|
||||
./programs/ecryptfs.nix
|
||||
./programs/environment.nix
|
||||
@@ -340,6 +341,7 @@
|
||||
./programs/vivid.nix
|
||||
./programs/vscode.nix
|
||||
./programs/wavemon.nix
|
||||
./programs/wayland/dms-shell.nix
|
||||
./programs/wayland/dwl.nix
|
||||
./programs/wayland/gtklock.nix
|
||||
./programs/wayland/hyprland.nix
|
||||
@@ -605,6 +607,7 @@
|
||||
./services/development/zammad.nix
|
||||
./services/display-managers/cosmic-greeter.nix
|
||||
./services/display-managers/default.nix
|
||||
./services/display-managers/dms-greeter.nix
|
||||
./services/display-managers/gdm.nix
|
||||
./services/display-managers/greetd.nix
|
||||
./services/display-managers/lemurs.nix
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkIf
|
||||
mkPackageOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.programs.dsearch;
|
||||
in
|
||||
{
|
||||
options.programs.dsearch = {
|
||||
enable = mkEnableOption "dsearch, a fast filesystem search service with fuzzy matching";
|
||||
|
||||
package = mkPackageOption pkgs "dsearch" { };
|
||||
|
||||
systemd = {
|
||||
enable = mkEnableOption "systemd user service for dsearch" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
target = mkOption {
|
||||
type = types.str;
|
||||
default = "default.target";
|
||||
description = ''
|
||||
The systemd target that will automatically start the dsearch service.
|
||||
|
||||
By default, dsearch starts with the user session (`default.target`).
|
||||
You can change this to `graphical-session.target` if you only want
|
||||
it to run in graphical sessions.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.user.services.dsearch.wantedBy = mkIf cfg.systemd.enable [ cfg.systemd.target ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkIf
|
||||
mkPackageOption
|
||||
types
|
||||
optional
|
||||
optionals
|
||||
;
|
||||
|
||||
cfg = config.programs.dms-shell;
|
||||
|
||||
optionalPackages =
|
||||
optionals cfg.enableSystemMonitoring [ pkgs.dgop ]
|
||||
++ optionals cfg.enableClipboard [
|
||||
pkgs.cliphist
|
||||
pkgs.wl-clipboard
|
||||
]
|
||||
++ optionals cfg.enableVPN [
|
||||
pkgs.glib
|
||||
pkgs.networkmanager
|
||||
]
|
||||
++ optional cfg.enableBrightnessControl pkgs.brightnessctl
|
||||
++ optional cfg.enableColorPicker pkgs.hyprpicker
|
||||
++ optional cfg.enableDynamicTheming pkgs.matugen
|
||||
++ optional cfg.enableAudioWavelength pkgs.cava
|
||||
++ optional cfg.enableCalendarEvents pkgs.khal
|
||||
++ optional cfg.enableSystemSound pkgs.kdePackages.qtmultimedia;
|
||||
in
|
||||
{
|
||||
options.programs.dms-shell = {
|
||||
enable = mkEnableOption "DankMaterialShell, a complete desktop shell for Wayland compositors";
|
||||
|
||||
package = mkPackageOption pkgs "dms-shell" { };
|
||||
|
||||
systemd = {
|
||||
target = mkOption {
|
||||
type = types.str;
|
||||
default = "graphical-session.target";
|
||||
description = ''
|
||||
The systemd target that will automatically start the DankMaterialShell service.
|
||||
|
||||
Common targets include:
|
||||
- `graphical-session.target` for most desktop environments
|
||||
- `wayland-session.target` for Wayland-specific sessions
|
||||
'';
|
||||
};
|
||||
|
||||
restartIfChanged = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to restart the dms.service when the DankMaterialShell package or
|
||||
configuration changes. This ensures the latest version is always running
|
||||
after a system rebuild.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
enableSystemMonitoring = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for system monitoring widgets.
|
||||
This includes process list viewers and system resource monitors.
|
||||
|
||||
Requires: dgop
|
||||
'';
|
||||
};
|
||||
|
||||
enableClipboard = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for clipboard management widgets.
|
||||
This enables clipboard history and clipboard manager functionality.
|
||||
|
||||
Requires: cliphist, wl-clipboard
|
||||
'';
|
||||
};
|
||||
|
||||
enableVPN = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for VPN widgets.
|
||||
This enables VPN status monitoring and management through NetworkManager.
|
||||
|
||||
Requires: glib, networkmanager
|
||||
'';
|
||||
};
|
||||
|
||||
enableBrightnessControl = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for brightness and backlight control.
|
||||
This enables screen brightness adjustment widgets.
|
||||
|
||||
Requires: brightnessctl
|
||||
'';
|
||||
};
|
||||
|
||||
enableColorPicker = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for color picking functionality.
|
||||
This enables on-screen color picker tools.
|
||||
|
||||
Requires: hyprpicker
|
||||
'';
|
||||
};
|
||||
|
||||
enableDynamicTheming = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for dynamic theming support.
|
||||
This enables automatic theme generation based on wallpapers and other sources.
|
||||
|
||||
Requires: matugen
|
||||
'';
|
||||
};
|
||||
|
||||
enableAudioWavelength = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for audio wavelength visualization.
|
||||
This enables audio spectrum and waveform visualizer widgets.
|
||||
|
||||
Requires: cava
|
||||
'';
|
||||
};
|
||||
|
||||
enableCalendarEvents = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for calendar events support.
|
||||
This enables calendar widgets that display events and reminders via khal.
|
||||
|
||||
Requires: khal
|
||||
'';
|
||||
};
|
||||
|
||||
enableSystemSound = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for system sound support.
|
||||
This enables audio playback for system notifications and events.
|
||||
|
||||
Requires: qtmultimedia
|
||||
'';
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
package = mkPackageOption pkgs "quickshell" { };
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.etc."xdg/quickshell/dms".source = "${cfg.package}/share/quickshell/dms";
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.user.services.dms = {
|
||||
wantedBy = [ cfg.systemd.target ];
|
||||
restartTriggers = optional cfg.systemd.restartIfChanged "${cfg.package}/share/quickshell/dms";
|
||||
path = lib.mkForce [ ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
cfg.package
|
||||
cfg.quickshell.package
|
||||
pkgs.ddcutil
|
||||
pkgs.libsForQt5.qt5ct
|
||||
pkgs.kdePackages.qt6ct
|
||||
]
|
||||
++ optionalPackages;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fira-code
|
||||
inter
|
||||
material-symbols
|
||||
];
|
||||
|
||||
hardware.graphics.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
}
|
||||
@@ -23,9 +23,10 @@ in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
cfg.package
|
||||
]
|
||||
];
|
||||
|
||||
# Required for xdg-desktop-portal-gnome's FileChooser to work properly
|
||||
++ lib.optionals cfg.useNautilus [
|
||||
services.dbus.packages = lib.mkIf cfg.useNautilus [
|
||||
pkgs.nautilus
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
types
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkIf
|
||||
mkDefault
|
||||
mkPackageOption
|
||||
literalExpression
|
||||
getExe
|
||||
makeBinPath
|
||||
optionalString
|
||||
concatMapStringsSep
|
||||
;
|
||||
|
||||
cfg = config.services.displayManager.dms-greeter;
|
||||
cfgAutoLogin = config.services.displayManager.autoLogin;
|
||||
|
||||
greeterScript = pkgs.writeShellScriptBin "dms-greeter-start" ''
|
||||
export PATH=$PATH:${
|
||||
makeBinPath [
|
||||
cfg.quickshell.package
|
||||
config.programs.${cfg.compositor.name}.package
|
||||
]
|
||||
}
|
||||
exec ${cfg.package}/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \
|
||||
--command ${cfg.compositor.name} \
|
||||
-p ${cfg.package}/share/quickshell/dms \
|
||||
--cache-dir /var/lib/dms-greeter \
|
||||
${
|
||||
optionalString (
|
||||
cfg.compositor.customConfig != ""
|
||||
) "-C ${pkgs.writeText "dms-greeter-compositor-config" cfg.compositor.customConfig}"
|
||||
} \
|
||||
${optionalString cfg.logs.save ">> ${cfg.logs.path} 2>&1"}
|
||||
'';
|
||||
|
||||
configFilesFromHome =
|
||||
if cfg.configHome != null then
|
||||
[
|
||||
"${cfg.configHome}/.config/DankMaterialShell/settings.json"
|
||||
"${cfg.configHome}/.local/state/DankMaterialShell/session.json"
|
||||
"${cfg.configHome}/.cache/DankMaterialShell/dms-colors.json"
|
||||
]
|
||||
else
|
||||
[ ];
|
||||
in
|
||||
{
|
||||
options.services.displayManager.dms-greeter = {
|
||||
enable = mkEnableOption "DankMaterialShell greeter";
|
||||
|
||||
package = mkPackageOption pkgs "dms-shell" { };
|
||||
|
||||
compositor = {
|
||||
name = mkOption {
|
||||
type = types.enum [
|
||||
"niri"
|
||||
"hyprland"
|
||||
"sway"
|
||||
];
|
||||
example = "niri";
|
||||
description = ''
|
||||
The Wayland compositor to run the greeter in.
|
||||
|
||||
The specified compositor must be enabled via its corresponding
|
||||
`programs.<compositor>.enable` option.
|
||||
|
||||
Supported compositors:
|
||||
- niri: A scrollable-tiling Wayland compositor
|
||||
- hyprland: A dynamic tiling Wayland compositor
|
||||
- sway: An i3-compatible Wayland compositor
|
||||
'';
|
||||
};
|
||||
|
||||
customConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
# Niri example
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Custom compositor configuration to use for the greeter session.
|
||||
|
||||
This configuration is written to a file and passed to the compositor
|
||||
when launching the greeter. The format and available options depend
|
||||
on the selected compositor.
|
||||
|
||||
Leave empty to use the system's default compositor configuration.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
configFiles = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
example = literalExpression ''
|
||||
[
|
||||
"/home/user/.config/DankMaterialShell/settings.json"
|
||||
"/home/user/.local/state/DankMaterialShell/session.json"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
List of DankMaterialShell configuration files to copy into the greeter
|
||||
data directory at `/var/lib/dms-greeter`.
|
||||
|
||||
This is useful for preserving user preferences like wallpapers, themes,
|
||||
and other settings in the greeter screen.
|
||||
|
||||
::: {.tip}
|
||||
Use {option}`configHome` instead if your configuration files are in
|
||||
standard XDG locations.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
configHome = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/home/alice";
|
||||
description = ''
|
||||
Path to a user's home directory from which to copy DankMaterialShell
|
||||
configuration files.
|
||||
|
||||
When set, the following files will be automatically copied to the greeter:
|
||||
- `~/.config/DankMaterialShell/settings.json`
|
||||
- `~/.local/state/DankMaterialShell/session.json`
|
||||
- `~/.cache/DankMaterialShell/dms-colors.json`
|
||||
|
||||
If your configuration files are in non-standard locations, use the
|
||||
{option}`configFiles` option instead.
|
||||
'';
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
package = mkPackageOption pkgs "quickshell" { };
|
||||
};
|
||||
|
||||
logs = {
|
||||
save = mkEnableOption "saving logs from the DMS greeter to a file";
|
||||
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
default = "/tmp/dms-greeter.log";
|
||||
example = "/var/log/dms-greeter.log";
|
||||
description = ''
|
||||
File path where DMS greeter logs will be saved.
|
||||
|
||||
This is useful for debugging greeter issues. Logs will include
|
||||
output from both the greeter and the compositor.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.programs.${cfg.compositor.name}.enable or false;
|
||||
message = ''
|
||||
DankMaterialShell greeter: The compositor "${cfg.compositor.name}" is not enabled.
|
||||
|
||||
Please enable the compositor via:
|
||||
programs.${cfg.compositor.name}.enable = true;
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = "dms-greeter";
|
||||
command = getExe greeterScript;
|
||||
};
|
||||
initial_session = mkIf (cfgAutoLogin.enable && (cfgAutoLogin.user != null)) {
|
||||
inherit (cfgAutoLogin) user command;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fira-code
|
||||
inter
|
||||
material-symbols
|
||||
];
|
||||
|
||||
systemd.tmpfiles.settings."10-dms-greeter"."/var/lib/dms-greeter".d = {
|
||||
user = "dms-greeter";
|
||||
group = "dms-greeter";
|
||||
mode = "0750";
|
||||
};
|
||||
|
||||
systemd.services.greetd.preStart =
|
||||
let
|
||||
allConfigFiles = cfg.configFiles ++ configFilesFromHome;
|
||||
in
|
||||
''
|
||||
set -euo pipefail
|
||||
|
||||
cd /var/lib/dms-greeter || exit 1
|
||||
|
||||
${concatMapStringsSep "\n" (f: ''
|
||||
if [[ -f "${f}" ]]; then
|
||||
cp "${f}" . || true
|
||||
fi
|
||||
'') allConfigFiles}
|
||||
|
||||
# Handle session.json wallpaper path
|
||||
if [[ -f session.json ]]; then
|
||||
if wallpaper=$(${getExe pkgs.jq} -r '.wallpaperPath' session.json 2>/dev/null); then
|
||||
if [[ -f "$wallpaper" ]]; then
|
||||
cp "$wallpaper" wallpaper.jpg || true
|
||||
mv session.json session.orig.json
|
||||
${getExe pkgs.jq} '.wallpaperPath = "/var/lib/dms-greeter/wallpaper.jpg"' \
|
||||
session.orig.json > session.json || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Rename colors file if it exists
|
||||
[[ -f dms-colors.json ]] && mv dms-colors.json colors.json || true
|
||||
|
||||
# Fix ownership of all files
|
||||
chown -R "dms-greeter:dms-greeter" . || true
|
||||
'';
|
||||
|
||||
users.groups.dms-greeter = { };
|
||||
users.users.dms-greeter = {
|
||||
description = "DankMaterialShell greeter user";
|
||||
isSystemUser = true;
|
||||
home = "/var/lib/dms-greeter";
|
||||
homeMode = "0750";
|
||||
createHome = true;
|
||||
group = "dms-greeter";
|
||||
extraGroups = [ "video" ];
|
||||
};
|
||||
|
||||
security.pam.services.dms-greeter = { };
|
||||
|
||||
hardware.graphics.enable = mkDefault true;
|
||||
services.libinput.enable = mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
}
|
||||
@@ -76,9 +76,11 @@ in
|
||||
_, stdout = machine.execute(f"cat {log_file}")
|
||||
print(stdout.replace("\\n", "\n"))
|
||||
assert "GDAL Native Library loaded" in stdout, "gdal"
|
||||
assert "The turbo jpeg encoder is available for usage" in stdout, "libjpeg-turbo"
|
||||
assert "org.geotools.imageio.netcdf.utilities.NetCDFUtilities" in stdout, "netcdf"
|
||||
assert "Unable to load library 'netcdf'" not in stdout, "netcdf"
|
||||
|
||||
# libjpeg-turbo is disabled as of 2.28.1.
|
||||
# assert "The turbo jpeg encoder is available for usage" in stdout, "libjpeg-turbo"
|
||||
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -25,11 +25,9 @@
|
||||
start_all()
|
||||
|
||||
# it may take around a minute to compile the file and serve it
|
||||
machine.succeed("slipshow serve /etc/slipshow/bbslides.md &>/dev/null &")
|
||||
machine.succeed("slipshow serve -p 6000 /etc/slipshow/bbslides.md &>/dev/null &")
|
||||
|
||||
# slipshow serves defaultly on :8080 and unfortunately cannot
|
||||
# be changed currently
|
||||
machine.wait_for_open_port(8080)
|
||||
machine.succeed("curl -i 0.0.0.0:8080")
|
||||
machine.wait_for_open_port(6000)
|
||||
machine.succeed("curl -i 0.0.0.0:6000")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -81,14 +81,14 @@ let
|
||||
];
|
||||
in
|
||||
mkDerivation rec {
|
||||
version = "3.44.4";
|
||||
version = "3.44.5";
|
||||
pname = "qgis-unwrapped";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-G9atxBBANlUDGl39bkwTo6L04/+0o5A5ake4KvIY70E=";
|
||||
hash = "sha256-VrI3pk7Qi0A9D7ONl18YeX9cFS6NfSU2Hvrzx8JIoXo=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -33,7 +33,7 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wayfire";
|
||||
version = "0.10.0";
|
||||
version = "0.10.1";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
repo = "wayfire";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-rnrcuikfRPnIfIkmKUIRh8Sm+POwFLzaZZMAlmeBdjY=";
|
||||
hash = "sha256-yiqtnsXxvC7vk22ZQ5OFt5uX40FCRGWpfZrax9GItAg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -29,11 +29,6 @@ let
|
||||
'';
|
||||
license = lib.licenses.cc-by-30;
|
||||
homepage = "https://durian.blender.org/";
|
||||
|
||||
# Reported in https://github.com/NixOS/nixpkgs/pull/458193#issuecomment-3575753211 that these
|
||||
# tests are causing Hydra to spin for hours. They all pass locally, and we don't care too much
|
||||
# about running them on Hydra.
|
||||
hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
# Via https://webtorrent.io/free-torrents
|
||||
@@ -64,10 +59,20 @@ let
|
||||
popd
|
||||
'';
|
||||
|
||||
# Fixed output derivation hash is identical for all derivations: the empty
|
||||
# directory.
|
||||
fetchtorrentWithHash =
|
||||
args: fetchtorrent ({ hash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; } // args);
|
||||
args:
|
||||
fetchtorrent (
|
||||
{
|
||||
# Fixed output derivation hash is identical for all derivations: the empty directory.
|
||||
hash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
|
||||
|
||||
# Reported in https://github.com/NixOS/nixpkgs/pull/458193#issuecomment-3575753211
|
||||
# that these tests are causing Hydra to spin for hours on macOS.
|
||||
# They all pass locally, and we don't care too much about running them on Hydra.
|
||||
meta.hydraPlatforms = [ ];
|
||||
}
|
||||
// args
|
||||
);
|
||||
in
|
||||
# Seems almost but not quite worth using lib.mapCartesianProduct...
|
||||
builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrentWithHash v) {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.2.82";
|
||||
version = "0.2.83";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "act";
|
||||
@@ -18,7 +18,7 @@ buildGoModule {
|
||||
owner = "nektos";
|
||||
repo = "act";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-NIslUM0kvgS4szejCngb1zJ+cjlJ970XkeegDjyOYIs=";
|
||||
hash = "sha256-3z6+WcfxHyPTgsOHs2NPd4x7buMBr3jCA2zqd6kBb6k=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-EQgW+I0HjJhKioN0Moke9i+OggyJOSOHyatYnED4NX4=";
|
||||
|
||||
@@ -29,7 +29,7 @@ appimageTools.wrapType2 {
|
||||
description = "Launcher for games by Artix Entertainment";
|
||||
homepage = "https://www.artix.com/downloads/artixlauncher";
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "artix-game-launcher";
|
||||
mainProgram = "artix-games-launcher";
|
||||
maintainers = with lib.maintainers; [ jtliang24 ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
|
||||
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
|
||||
ps.pillow
|
||||
ps.setuptools
|
||||
ps.psycopg2
|
||||
ps.webrtcvad
|
||||
]))
|
||||
]
|
||||
++ runtimeProgDeps;
|
||||
|
||||
@@ -3,24 +3,24 @@
|
||||
|
||||
let
|
||||
pname = "brave";
|
||||
version = "1.84.141";
|
||||
version = "1.85.111";
|
||||
|
||||
allArchives = {
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
|
||||
hash = "sha256-hB+sy+jeI+c2EE6nty2awmKmNRCldQ98JtjNh9eXVxQ=";
|
||||
hash = "sha256-qBxlZ4xgjRb2zWrbwd+HKJXWoJxk4OICQtvutoNME00=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
hash = "sha256-Pp/jZmu6vTMJctVYGUeRZYhzWc2LS9jC4Niz9cPvkoE=";
|
||||
hash = "sha256-+Lz9Bv2Llc2twk0QzHmozxhsJzdlTKAakY/j2NaF7a0=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-arm64.zip";
|
||||
hash = "sha256-Y/r8rFog2lyqBSBgqI1dIOsHZHTF2W8YckCJPFJ5mzc=";
|
||||
hash = "sha256-39/nuKXnsslcVhy4i/YN4XEor5csMk2Ej1hsygChjXo=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-x64.zip";
|
||||
hash = "sha256-GDr1U40jT5nJscmqotluA/Wln/v9UnPVJoy2ViWAy+A=";
|
||||
hash = "sha256-us6FnZZ980SnGW+1fNSajRgAUxhBQA2dcM+iKb8TWaE=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "broot";
|
||||
version = "1.53.0";
|
||||
version = "1.54.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Canop";
|
||||
repo = "broot";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-iiKfS1r62G9cBKa/KEW/SPwhZ/Pebw0mUvHy40DFCqA=";
|
||||
hash = "sha256-c7q6VTXoToUSx8gsOLcsLUvriZYYyYwGAjO8VTF3JFk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Hp+Fx1b0bQptNJKQeThZ3W7lSGdo6YsVAHAu69/YTX4=";
|
||||
cargoHash = "sha256-jErnCexuu8PPUugsI+fRqWpqtpspDiVjnfn3it5jeK4=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
haskell,
|
||||
haskellPackages,
|
||||
}:
|
||||
let
|
||||
inherit (haskell.lib) compose;
|
||||
in
|
||||
lib.pipe haskellPackages.cachix [
|
||||
compose.justStaticExecutables
|
||||
(compose.overrideCabal { mainProgram = "cachix"; })
|
||||
lib.getBin
|
||||
]
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-insta";
|
||||
version = "1.44.2";
|
||||
version = "1.44.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mitsuhiko";
|
||||
repo = "insta";
|
||||
tag = version;
|
||||
hash = "sha256-Wi68dVKPsCCzt726N21pga73hW1WDDUtSv+o/sJMWpk=";
|
||||
hash = "sha256-xXp5XqE6teDK519IKM1FAZAAXcQHXlQF2kdRIhS7mYA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ks/icINVa7oVfK5yO8H0sUCRFWWzTwURHVALUVZ8uw0=";
|
||||
cargoHash = "sha256-XdeQ4BQb0/X3R4ST3ZrOo/XvSCzhRR1eqcp3uRWgX9g=";
|
||||
|
||||
checkFlags = [
|
||||
# Depends on `rustfmt` and does not matter for packaging.
|
||||
|
||||
+6
-14
@@ -1,16 +1,10 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonApplication,
|
||||
python3Packages,
|
||||
fetchPypi,
|
||||
autopep8,
|
||||
flake8,
|
||||
jinja2,
|
||||
pylint,
|
||||
pyyaml,
|
||||
six,
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "cmake-format";
|
||||
version = "0.6.13";
|
||||
# The source distribution does not build because of missing files.
|
||||
@@ -18,12 +12,11 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version format;
|
||||
python = "py3";
|
||||
pname = "cmakelang";
|
||||
sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = with python3Packages; [
|
||||
autopep8
|
||||
flake8
|
||||
jinja2
|
||||
@@ -34,12 +27,11 @@ buildPythonApplication rec {
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Source code formatter for cmake listfiles";
|
||||
homepage = "https://github.com/cheshirekow/cmake_format";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.tobim ];
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ tobim ];
|
||||
mainProgram = "cmake-format";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dgop";
|
||||
version = "0.1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AvengeMedia";
|
||||
repo = "dgop";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-QhzRn7pYN35IFpKjjxJAj3GPJECuC+VLhoGem3ezycc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-kO8b/eV5Vm/Fwzyzb0p8N9SkNlhkJLmEiPYmR2m5+po=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
"-X main.Version=${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/{cli,dgop}
|
||||
|
||||
installShellCompletion --cmd dgop \
|
||||
--bash <($out/bin/dgop completion bash) \
|
||||
--fish <($out/bin/dgop completion fish) \
|
||||
--zsh <($out/bin/dgop completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "API & CLI for System & Process Monitoring";
|
||||
homepage = "https://github.com/AvengeMedia/dgop";
|
||||
changelog = "https://github.com/AvengeMedia/dgop/releases/tag/v${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
mainProgram = "dgop";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
makeWrapper,
|
||||
procps,
|
||||
nix-update-script,
|
||||
bashNonInteractive,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dms-shell";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AvengeMedia";
|
||||
repo = "DankMaterialShell";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-dLbiTWsKoF0if/Wqet/+L90ILdAaBqp+REGOou8uH3k=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/core";
|
||||
|
||||
vendorHash = "sha256-nc4CvEPfJ6l16/zmhnXr1jqpi6BeSXd3g/51djbEfpQ=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
"-X main.Version=${version}"
|
||||
];
|
||||
|
||||
subPackages = [ "cmd/dms" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/quickshell
|
||||
cp -r ${src}/quickshell $out/share/quickshell/dms
|
||||
|
||||
wrapProgram $out/bin/dms --add-flags "-c $out/share/quickshell/dms"
|
||||
|
||||
install -Dm644 ${src}/quickshell/assets/systemd/dms.service \
|
||||
$out/lib/systemd/user/dms.service
|
||||
substituteInPlace $out/lib/systemd/user/dms.service \
|
||||
--replace-fail /usr/bin/dms $out/bin/dms \
|
||||
--replace-fail /usr/bin/pkill ${procps}/bin/pkill
|
||||
|
||||
substituteInPlace $out/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \
|
||||
--replace-fail /bin/bash ${bashNonInteractive}/bin/bash
|
||||
|
||||
installShellCompletion --cmd dms \
|
||||
--bash <($out/bin/dms completion bash) \
|
||||
--fish <($out/bin/dms completion fish) \
|
||||
--zsh <($out/bin/dms completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Desktop shell for wayland compositors built with Quickshell & GO";
|
||||
homepage = "https://danklinux.com";
|
||||
changelog = "https://github.com/AvengeMedia/DankMaterialShell/releases/tag/v${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
mainProgram = "dms";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dsearch";
|
||||
version = "0.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AvengeMedia";
|
||||
repo = "danksearch";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rtfymtzsxEuto1mOm8A5ubREJzXKCai6dw9Na1Fa21Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-65NFlAtix5ehyaRok3/0Z6+j6U7ccc0Kdye0KFepLLM=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
"-X main.Version=${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm744 ./assets/dsearch.service $out/lib/systemd/user/dsearch.service
|
||||
substituteInPlace $out/lib/systemd/user/dsearch.service \
|
||||
--replace-fail /usr/local/bin/dsearch $out/bin/dsearch
|
||||
|
||||
installShellCompletion --cmd dsearch \
|
||||
--bash <($out/bin/dsearch completion bash) \
|
||||
--fish <($out/bin/dsearch completion fish) \
|
||||
--zsh <($out/bin/dsearch completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Fast, configurable filesystem search with fuzzy matching";
|
||||
homepage = "https://github.com/AvengeMedia/danksearch";
|
||||
changelog = "https://github.com/AvengeMedia/danksearch/releases/tag/v${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
mainProgram = "dsearch";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,14 +9,20 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ersatztv";
|
||||
version = "25.8.0";
|
||||
version = "25.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ErsatzTV";
|
||||
repo = "ErsatzTV";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FuuX/SxhzzUn7ELJDXJuILkl3ubR3V+5hQwILvZZrFg=";
|
||||
sha256 = "sha256-+ZMDMKrJN+nX9FeSZ8RTFGRf161Mhpqd7jY9FLZWNqM=";
|
||||
};
|
||||
postPatch = ''
|
||||
# Remove config of development tools that don't end up in
|
||||
# nuget-deps.json but would be looked up at build time
|
||||
# leading to a missing package error.
|
||||
rm -r .config
|
||||
'';
|
||||
|
||||
buildInputs = [ ffmpeg ];
|
||||
|
||||
@@ -26,8 +32,8 @@ buildDotnetModule rec {
|
||||
"ErsatzTV.Scanner"
|
||||
];
|
||||
nugetDeps = ./nuget-deps.json;
|
||||
dotnet-sdk = dotnetCorePackages.sdk_9_0;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_9_0;
|
||||
dotnet-sdk = dotnetCorePackages.sdk_10_0;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_10_0;
|
||||
|
||||
# ETV uses `which` to find `ffmpeg` and `ffprobe`
|
||||
makeWrapperArgs = [
|
||||
|
||||
@@ -21,7 +21,7 @@ let
|
||||
inherit buildInputs version;
|
||||
|
||||
src = fetchzip {
|
||||
url = "mirror://sourceforge/geoserver/GeoServer/${version}/extensions/geoserver-${version}-${name}-plugin.zip";
|
||||
url = "https://sourceforge.net/projects/geoserver/files/GeoServer/${version}/extensions/geoserver-${version}-${name}-plugin.zip";
|
||||
inherit hash;
|
||||
# We expect several files.
|
||||
stripRoot = false;
|
||||
@@ -42,325 +42,334 @@ in
|
||||
{
|
||||
app-schema = mkGeoserverExtension {
|
||||
name = "app-schema";
|
||||
version = "2.27.2"; # app-schema
|
||||
hash = "sha256-XJbuRdqvkusT1hZEuFoogTEB8vHOsX9cQxA0Mzhg1+8="; # app-schema
|
||||
version = "2.28.1"; # app-schema
|
||||
hash = "sha256-PwZW9hFRiZIxgil75DXMsq0ymo7jPYX4Boj+hkXW8NI="; # app-schema
|
||||
};
|
||||
|
||||
authkey = mkGeoserverExtension {
|
||||
name = "authkey";
|
||||
version = "2.27.2"; # authkey
|
||||
hash = "sha256-e43HG4iPgj9vj7lq0c9ATmWVumqHdtM9DrAwbQJqUcg="; # authkey
|
||||
version = "2.28.1"; # authkey
|
||||
hash = "sha256-Zg3Db5QG4w+yMZ75MqtHt1Kri8peDGMZ0va5ZwI+6dw="; # authkey
|
||||
};
|
||||
|
||||
cas = mkGeoserverExtension {
|
||||
name = "cas";
|
||||
version = "2.27.2"; # cas
|
||||
hash = "sha256-kDYC8z5sRAycw6ZCKJ105XoYF5/ss4YTguqQ8pbnJls="; # cas
|
||||
version = "2.28.1"; # cas
|
||||
hash = "sha256-YMnaRVPLn98mXm2sErKSRlzmvQbnU9MGMDXuYgwm+H0="; # cas
|
||||
};
|
||||
|
||||
charts = mkGeoserverExtension {
|
||||
name = "charts";
|
||||
version = "2.27.2"; # charts
|
||||
hash = "sha256-zI+F21bQHcE4Lbh26bHeCTjTRJdswkUmmz+qAsP2t4k="; # charts
|
||||
version = "2.28.1"; # charts
|
||||
hash = "sha256-LM75iq2xvSQjVxGnngoLCz5IkSI9/YqAqOqgSUlkrUA="; # charts
|
||||
};
|
||||
|
||||
control-flow = mkGeoserverExtension {
|
||||
name = "control-flow";
|
||||
version = "2.27.2"; # control-flow
|
||||
hash = "sha256-5XW3l9MFEUeYuhOKqN4EqjwpRlMc8P8Tn46A2Z89Jks="; # control-flow
|
||||
version = "2.28.1"; # control-flow
|
||||
hash = "sha256-ZO04mls+OapOK/fi5IBy0mVJ5cF0fyQ1RgFhWt0AuEw="; # control-flow
|
||||
};
|
||||
|
||||
css = mkGeoserverExtension {
|
||||
name = "css";
|
||||
version = "2.27.2"; # css
|
||||
hash = "sha256-1fpP70Ed4iUrUyMMiMFhkykuPCzBV5+lWFicl9sUjAg="; # css
|
||||
version = "2.28.1"; # css
|
||||
hash = "sha256-2PcZhxkHXEOAs46fnt37VhupVOfRNWaRynNlLGviAho="; # css
|
||||
};
|
||||
|
||||
csw = mkGeoserverExtension {
|
||||
name = "csw";
|
||||
version = "2.27.2"; # csw
|
||||
hash = "sha256-4BYSY6tldkjd8KDlM/D+MNb9I8Ji0CVjyJcsBzRxC1Y="; # csw
|
||||
version = "2.28.1"; # csw
|
||||
hash = "sha256-6TmSWnny0OedvnLu+HnKpVxdfcicp1D//isFFOclcmk="; # csw
|
||||
};
|
||||
|
||||
csw-iso = mkGeoserverExtension {
|
||||
name = "csw-iso";
|
||||
version = "2.27.2"; # csw-iso
|
||||
hash = "sha256-/0soY61A1d4yKJolRtymoFOsKf42B/RacUSUqN/7uXo="; # csw-iso
|
||||
version = "2.28.1"; # csw-iso
|
||||
hash = "sha256-BlnIS8gpWwBuiwdIqvq3UpJrdKPULvJxR7o3XJtI5tQ="; # csw-iso
|
||||
};
|
||||
|
||||
db2 = mkGeoserverExtension {
|
||||
name = "db2";
|
||||
version = "2.27.2"; # db2
|
||||
hash = "sha256-agZZHkwAx5YTOCzDlhpiTWxBTyhAoIW1BgW3QfV/kug="; # db2
|
||||
version = "2.28.1"; # db2
|
||||
hash = "sha256-Ga4Db6G+LxRN+casjs0nYD6TFN1YrDjgOIlu46/0RgQ="; # db2
|
||||
};
|
||||
|
||||
# Needs wps extension.
|
||||
dxf = mkGeoserverExtension {
|
||||
name = "dxf";
|
||||
version = "2.27.2"; # dxf
|
||||
hash = "sha256-F93QOpe0nBQDD+8iDnenacNJ87h+jCqytJ3uz7weCcg="; # dxf
|
||||
version = "2.28.1"; # dxf
|
||||
hash = "sha256-703y8CBd9oYsryGgAftXq5Cr1lUeyws1Alx0tSwzZo8="; # dxf
|
||||
};
|
||||
|
||||
excel = mkGeoserverExtension {
|
||||
name = "excel";
|
||||
version = "2.27.2"; # excel
|
||||
hash = "sha256-CYW9JBhDOLqxNKnlxNDy03sZzmGPLn9KaK4LScGMIIg="; # excel
|
||||
version = "2.28.1"; # excel
|
||||
hash = "sha256-9ti+J7e9QieVbCFQ2xxuqX8TvQCcLPw0tPUNVqGG9+0="; # excel
|
||||
};
|
||||
|
||||
feature-pregeneralized = mkGeoserverExtension {
|
||||
name = "feature-pregeneralized";
|
||||
version = "2.27.2"; # feature-pregeneralized
|
||||
hash = "sha256-0MuzhZ8Y/yy/AJ6vTvfJxXPgnf+fTJPfB8wNTboYHOw="; # feature-pregeneralized
|
||||
version = "2.28.1"; # feature-pregeneralized
|
||||
hash = "sha256-eGayG9FUJabhP60iypib1gLcRStqz5J4PMTuSB+xL60="; # feature-pregeneralized
|
||||
};
|
||||
|
||||
# Note: The extension name ("gdal") clashes with pkgs.gdal.
|
||||
gdal = mkGeoserverExtension {
|
||||
name = "gdal";
|
||||
version = "2.27.2"; # gdal
|
||||
version = "2.28.1"; # gdal
|
||||
buildInputs = [ pkgs.gdal ];
|
||||
hash = "sha256-Krdj96ddLsrA8J6B8ap3BBBe/+flVX7/GJRLN4UnKiY="; # gdal
|
||||
hash = "sha256-sVI9o2xwbvez7Gm8gY9DAbEr5TUluVGDoC7ZweK4BUE="; # gdal
|
||||
};
|
||||
|
||||
# Throws "java.io.FileNotFoundException: URL [jar:file:/nix/store/.../WEB-INF/lib/gs-geofence-server-2.24.1.jar!/geofence-default-override.properties] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/nix/store/.../WEB-INF/lib/gs-geofence-server-2.24.1.jar!/geofence-default-override.properties" but seems to work out of the box.
|
||||
#geofence = mkGeoserverExtension {
|
||||
# name = "geofence";
|
||||
# version = "2.27.2"; # geofence
|
||||
# hash = "sha256-Rzi8oZFy+SglTuPSYBFi/Wge4pOVY5yE50c8+jRI+4Y="; # geofence
|
||||
# version = "2.28.1"; # geofence
|
||||
# hash = "sha256-POBOhg3d8HlA3qF2W41UTVhISM5vAQi74cI+y+Rj+Ic="; # geofence
|
||||
#};
|
||||
|
||||
#geofence-server = mkGeoserverExtension {
|
||||
# name = "geofence-server";
|
||||
# version = "2.27.2"; # geofence-server
|
||||
# hash = ""; # geofence-server
|
||||
#geofence-server-h2 = mkGeoserverExtension {
|
||||
# name = "geofence-server-h2";
|
||||
# version = "2.28.1"; # geofence-server
|
||||
# hash = "sha256-8lY+wrCD7PizeNvh9hDRhxdFxT7n1SVKD8TVU80iiZk="; # geofence-server-h2
|
||||
#};
|
||||
|
||||
#geofence-server-postgres = mkGeoserverExtension {
|
||||
# name = "geofence-server-postgres";
|
||||
# version = "2.28.1"; # geofence-server
|
||||
# hash = "sha256-DB3OK2dvPrDtlRRHaDUXqQW7AlOhN4zFm2t0N1+B3rk="; # geofence-server-postgres
|
||||
#};
|
||||
|
||||
#geofence-wps = mkGeoserverExtension {
|
||||
# name = "geofence-wps";
|
||||
# version = "2.27.2"; # geofence-wps
|
||||
# hash = "sha256-dry787XPCVBPi4TXKyFL85QZwX0WdWfiXqz/yriMiWc="; # geofence-wps
|
||||
# version = "2.28.1"; # geofence-wps
|
||||
# hash = "sha256-tP3hnN0kXKFIdgKrS7juyrCh1OoQD0Bx54/xq6nUzWA="; # geofence-wps
|
||||
#};
|
||||
|
||||
geopkg-output = mkGeoserverExtension {
|
||||
name = "geopkg-output";
|
||||
version = "2.27.2"; # geopkg-output
|
||||
hash = "sha256-LlYjYTa0mjOh+q2ILJORTAUlWy3mW9lEMd1vUyyhDV8="; # geopkg-output
|
||||
version = "2.28.1"; # geopkg-output
|
||||
hash = "sha256-6ARKLmhc5lhqi841Ou5ZrBuj6bdOwQDSGPwzGcBTNJw="; # geopkg-output
|
||||
};
|
||||
|
||||
grib = mkGeoserverExtension {
|
||||
name = "grib";
|
||||
version = "2.27.2"; # grib
|
||||
hash = "sha256-/OBhwToUuJfDcRnx4aJbXDb6HdGGtM8SCkjmFgfX65s="; # grib
|
||||
version = "2.28.1"; # grib
|
||||
hash = "sha256-AW/i+vRthQct3U45EGw/6uPDZNdS9z816nnKVIGCg/k="; # grib
|
||||
buildInputs = [ netcdf ];
|
||||
};
|
||||
|
||||
gwc-s3 = mkGeoserverExtension {
|
||||
name = "gwc-s3";
|
||||
version = "2.27.2"; # gwc-s3
|
||||
hash = "sha256-A0I2/+pRuvcXCVduTNn/e1nDZnNkt7cKtPNNO3Yo8Bk="; # gwc-s3
|
||||
version = "2.28.1"; # gwc-s3
|
||||
hash = "sha256-wVLW7qbKDRmf1okTI0PDREQ5eoJOVGMVLS+uusY2+cM="; # gwc-s3
|
||||
};
|
||||
|
||||
h2 = mkGeoserverExtension {
|
||||
name = "h2";
|
||||
version = "2.27.2"; # h2
|
||||
hash = "sha256-kGXqb5xH4Jn6nhN8nfhldUcHtQodBUp9y3bviPim1Ak="; # h2
|
||||
version = "2.28.1"; # h2
|
||||
hash = "sha256-zEjNN1dCmNR/5st/yNpWP1G3P6Zqf3RSFdUKOgdwff4="; # h2
|
||||
};
|
||||
|
||||
iau = mkGeoserverExtension {
|
||||
name = "iau";
|
||||
version = "2.27.2"; # iau
|
||||
hash = "sha256-KVkpQ92cvmc3nIsBygUU58vsIY8BZXEEXQrUeH/eEyM="; # iau
|
||||
version = "2.28.1"; # iau
|
||||
hash = "sha256-zn4FlC/vVvq1K6mSplOKarHHUWLNev5IW76wSiTvBuE="; # iau
|
||||
};
|
||||
|
||||
importer = mkGeoserverExtension {
|
||||
name = "importer";
|
||||
version = "2.27.2"; # importer
|
||||
hash = "sha256-Sumh9148zqwLCbpiknwLyVpxqufkoizMgszy//qC5dA="; # importer
|
||||
version = "2.28.1"; # importer
|
||||
hash = "sha256-7v5MvpvVbVKOBxUlEwem8MzPUTtBc8z+1JAEqeHUmYI="; # importer
|
||||
};
|
||||
|
||||
inspire = mkGeoserverExtension {
|
||||
name = "inspire";
|
||||
version = "2.27.2"; # inspire
|
||||
hash = "sha256-IDX93Cu7BgrkmI5QcdYu++XzVwHOeCM17eXgqhDPSRQ="; # inspire
|
||||
version = "2.28.1"; # inspire
|
||||
hash = "sha256-kgqwO3elSnT/4M9G+OgULaW+i/nDNGhvHblmWZRjTTA="; # inspire
|
||||
};
|
||||
|
||||
# Needs Kakadu plugin from
|
||||
# https://github.com/geosolutions-it/imageio-ext
|
||||
#jp2k = mkGeoserverExtension {
|
||||
# name = "jp2k";
|
||||
# version = "2.27.2"; # jp2k
|
||||
# hash = "sha256-Ar+mVXZqYfP6OGISdRzBntWRo2msL5RN44bgPeMOqQw="; # jp2k
|
||||
# version = "2.28.1"; # jp2k
|
||||
# hash = "sha256-sLUgsMXymnTuceCRLzqIAPmk4/Q3BO+A+7BLQoc3iP0="; # jp2k
|
||||
#};
|
||||
|
||||
libjpeg-turbo = mkGeoserverExtension {
|
||||
name = "libjpeg-turbo";
|
||||
version = "2.27.2"; # libjpeg-turbo
|
||||
hash = "sha256-6e9Bdy/Lh7ZXPzHVGX/f/qa53v1JWrUshlrtcziIbQs="; # libjpeg-turbo
|
||||
buildInputs = [ libjpeg.out ];
|
||||
};
|
||||
# Throws "java.lang.UnsatisfiedLinkError: 'void org.libjpegturbo.turbojpeg.TJDecompressor.init()'"
|
||||
# as of 2.28.1.
|
||||
# NOTE: When re-enabling this, RE-ENABLE THE CORRESPONDING TEST, TOO! (See tests/geoserver.nix)
|
||||
#libjpeg-turbo = mkGeoserverExtension {
|
||||
# name = "libjpeg-turbo";
|
||||
# version = "2.28.1"; # libjpeg-turbo
|
||||
# hash = "sha256-fn1ItYvLMfvRLpCE8rEpTpBmkk8zkN3QtBO/RN4RXfo="; # libjpeg-turbo
|
||||
# buildInputs = [ libjpeg.out ];
|
||||
#};
|
||||
|
||||
mapml = mkGeoserverExtension {
|
||||
name = "mapml";
|
||||
version = "2.27.2"; # mapml
|
||||
hash = "sha256-QTAoesynmxv+9bYwak6jat6J3In5ULdsy2ozjMbsoXI="; # mapml
|
||||
version = "2.28.1"; # mapml
|
||||
hash = "sha256-AonH/wBRh0oVs8psJ+XRutkSwybN3fs505SI/0qzG3o="; # mapml
|
||||
};
|
||||
|
||||
mbstyle = mkGeoserverExtension {
|
||||
name = "mbstyle";
|
||||
version = "2.27.2"; # mbstyle
|
||||
hash = "sha256-zKdX77zy72lkMB928XIjU0pYZ7zFVEI7OfbJ2ozFIHk="; # mbstyle
|
||||
version = "2.28.1"; # mbstyle
|
||||
hash = "sha256-SvgvBkp6dS6v1JjQxpa7m7tqc2c63hruWCcFcouHXaQ="; # mbstyle
|
||||
};
|
||||
|
||||
metadata = mkGeoserverExtension {
|
||||
name = "metadata";
|
||||
version = "2.27.2"; # metadata
|
||||
hash = "sha256-VLBuqh9qfcv2BRHhjF1tAc6ACCOUPQcY4Yc0Vko/2l0="; # metadata
|
||||
version = "2.28.1"; # metadata
|
||||
hash = "sha256-M3HcgrPGZBBotNm6dsw4UjrH1onIQHDMdxuwNVuqO84="; # metadata
|
||||
};
|
||||
|
||||
mongodb = mkGeoserverExtension {
|
||||
name = "mongodb";
|
||||
version = "2.27.2"; # mongodb
|
||||
hash = "sha256-xXgiOEMQhPbw6GorrkEiyV7isgmSuimzT/LK41c0bzA="; # mongodb
|
||||
version = "2.28.1"; # mongodb
|
||||
hash = "sha256-Urp8d0i6Xlk2muNKKioJTnrEvzC05tqiipLT162L7uk="; # mongodb
|
||||
};
|
||||
|
||||
monitor = mkGeoserverExtension {
|
||||
name = "monitor";
|
||||
version = "2.27.2"; # monitor
|
||||
hash = "sha256-1x+Rz8wXl3cAsX5rHgMEe1+h17QS7PDBJGDFmKf+SMY="; # monitor
|
||||
version = "2.28.1"; # monitor
|
||||
hash = "sha256-Qo9aFOjbg9s1RZVqa/z1ka+QmFrPZJgrH8qMcstCywQ="; # monitor
|
||||
};
|
||||
|
||||
mysql = mkGeoserverExtension {
|
||||
name = "mysql";
|
||||
version = "2.27.2"; # mysql
|
||||
hash = "sha256-mmquP4u3YqqbGVK2jkbNtGiqVMENCThpRTWOz6f74Pk="; # mysql
|
||||
version = "2.28.1"; # mysql
|
||||
hash = "sha256-5/xP8vPNhOYN9YXL4sZk16652ZBB7Ivm7Cq05fYi7wI="; # mysql
|
||||
};
|
||||
|
||||
netcdf = mkGeoserverExtension {
|
||||
name = "netcdf";
|
||||
version = "2.27.2"; # netcdf
|
||||
hash = "sha256-GhPde3Fw04lutbgPmDyxO/C7wkZO1ttASqqj2g6JuCM="; # netcdf
|
||||
version = "2.28.1"; # netcdf
|
||||
hash = "sha256-qKgSyFrKI7JVMNt/qjgJ5puLaTsU406P5VyUpncMHOg="; # netcdf
|
||||
buildInputs = [ netcdf ];
|
||||
};
|
||||
|
||||
netcdf-out = mkGeoserverExtension {
|
||||
name = "netcdf-out";
|
||||
version = "2.27.2"; # netcdf-out
|
||||
hash = "sha256-r4CyrlRm04tE3+vJfF+KlHAczrOy+dsTHXBG++GG0ys="; # netcdf-out
|
||||
version = "2.28.1"; # netcdf-out
|
||||
hash = "sha256-Xk3cTve45U9LDv8lWugtGpfid4yr5yDWh7H7daVlAc8="; # netcdf-out
|
||||
buildInputs = [ netcdf ];
|
||||
};
|
||||
|
||||
ogr-wfs = mkGeoserverExtension {
|
||||
name = "ogr-wfs";
|
||||
version = "2.27.2"; # ogr-wfs
|
||||
version = "2.28.1"; # ogr-wfs
|
||||
buildInputs = [ pkgs.gdal ];
|
||||
hash = "sha256-EI0FNYFwcmsLYiYauvCAvweAIn6bI7WaCVPcCtkGrys="; # ogr-wfs
|
||||
hash = "sha256-ykFfqoLXeGigAdCLnDCKiCGD++n7jiOivua8Oh2DwU8="; # ogr-wfs
|
||||
};
|
||||
|
||||
# Needs ogr-wfs extension.
|
||||
ogr-wps = mkGeoserverExtension {
|
||||
name = "ogr-wps";
|
||||
version = "2.27.2"; # ogr-wps
|
||||
version = "2.28.1"; # ogr-wps
|
||||
# buildInputs = [ pkgs.gdal ];
|
||||
hash = "sha256-CtsaQg9IZxlRW4oQwmdBA+VLWtsNP3+jS1Mj2RxAJw4="; # ogr-wps
|
||||
hash = "sha256-WxOZ5WDNxV1HAT9cfCPm9DwoU/96OobuODOjd5dGN94="; # ogr-wps
|
||||
};
|
||||
|
||||
oracle = mkGeoserverExtension {
|
||||
name = "oracle";
|
||||
version = "2.27.2"; # oracle
|
||||
hash = "sha256-8cRDvWWFJHZZGmbZEruvp1whfhXZ/c7TYha4Fa5DuzM="; # oracle
|
||||
version = "2.28.1"; # oracle
|
||||
hash = "sha256-lj53CC6f9vXatH9vxHaFZvEGDpplTZSYy56fz4d4Qs0="; # oracle
|
||||
};
|
||||
|
||||
params-extractor = mkGeoserverExtension {
|
||||
name = "params-extractor";
|
||||
version = "2.27.2"; # params-extractor
|
||||
hash = "sha256-Y7tt0F//dANcKds/mU6702S5PMJNVLcxxc+hYFNOt5M="; # params-extractor
|
||||
version = "2.28.1"; # params-extractor
|
||||
hash = "sha256-1Znwqb+PHFlsuQIs8pMqo08s4uSc7wLZRYE+hVZzoQY="; # params-extractor
|
||||
};
|
||||
|
||||
printing = mkGeoserverExtension {
|
||||
name = "printing";
|
||||
version = "2.27.2"; # printing
|
||||
hash = "sha256-I5vVlpX2kXof3wuyRs2QvhWdx0Okm7StYvY8I/AL8Ug="; # printing
|
||||
version = "2.28.1"; # printing
|
||||
hash = "sha256-OeMHkx4d7/FwNigQ8Mnz9UlqFJbMZFGmxZT8kJ3iPp8="; # printing
|
||||
};
|
||||
|
||||
pyramid = mkGeoserverExtension {
|
||||
name = "pyramid";
|
||||
version = "2.27.2"; # pyramid
|
||||
hash = "sha256-/iIwS5iw95qotmmLWGU11br36dVc+o5LmwTDXBL7zaY="; # pyramid
|
||||
version = "2.28.1"; # pyramid
|
||||
hash = "sha256-fLe2SeRSNvj6qqh6CMDu2w0gubf+xi3Ez7jO2fEbpjc="; # pyramid
|
||||
};
|
||||
|
||||
querylayer = mkGeoserverExtension {
|
||||
name = "querylayer";
|
||||
version = "2.27.2"; # querylayer
|
||||
hash = "sha256-G66AkPkytzXvEi9hbudvBphFKrvMrhUbPSVvexXRJh4="; # querylayer
|
||||
version = "2.28.1"; # querylayer
|
||||
hash = "sha256-QM5DAoTFsn6JTLubQy4p0qsA91DcfU7C74cb80jzzWM="; # querylayer
|
||||
};
|
||||
|
||||
sldservice = mkGeoserverExtension {
|
||||
name = "sldservice";
|
||||
version = "2.27.2"; # sldservice
|
||||
hash = "sha256-djERawjM06NtZK6RnNh/qIS/x5ZjSWeUMHlUSF4/5aA="; # sldservice
|
||||
version = "2.28.1"; # sldservice
|
||||
hash = "sha256-u5uzwyrwBzz5qcEtRS+ZIbmis9kVuGPt6+qo19K1HCM="; # sldservice
|
||||
};
|
||||
|
||||
sqlserver = mkGeoserverExtension {
|
||||
name = "sqlserver";
|
||||
version = "2.27.2"; # sqlserver
|
||||
hash = "sha256-Kad2wJmN/67xlLDViFfYWxvsSjmW+j3/iQEAvwEMZW4="; # sqlserver
|
||||
version = "2.28.1"; # sqlserver
|
||||
hash = "sha256-19KyMBZEYBeUKiogxux8jrc8VgNDdCnvhrEV8Q84SG0="; # sqlserver
|
||||
};
|
||||
|
||||
vectortiles = mkGeoserverExtension {
|
||||
name = "vectortiles";
|
||||
version = "2.27.2"; # vectortiles
|
||||
hash = "sha256-S5ujjj8JLXbybbjpA8qLF4sapVIECDZ8l+iqqUoVHuc="; # vectortiles
|
||||
version = "2.28.1"; # vectortiles
|
||||
hash = "sha256-tT4phUdL8yMKzobxWNivMpHJYu6KQmPiNECK9TtJgjg="; # vectortiles
|
||||
};
|
||||
|
||||
wcs2_0-eo = mkGeoserverExtension {
|
||||
name = "wcs2_0-eo";
|
||||
version = "2.27.2"; # wcs2_0-eo
|
||||
hash = "sha256-S2d3Yel0B0DJubuMUywPB2gDiWIpdkniDksZcq8j9BI="; # wcs2_0-eo
|
||||
version = "2.28.1"; # wcs2_0-eo
|
||||
hash = "sha256-HawDOyymB01x7PaFg5QKQhTSFdybeY5oAAusaG95To8="; # wcs2_0-eo
|
||||
};
|
||||
|
||||
web-resource = mkGeoserverExtension {
|
||||
name = "web-resource";
|
||||
version = "2.27.2"; # web-resource
|
||||
hash = "sha256-HJ+GPrprrCPlzh9q+PZr0QEJE/YVXaqgxhUlYHPkgho="; # web-resource
|
||||
version = "2.28.1"; # web-resource
|
||||
hash = "sha256-FkuxR3WN95jyorpcv4ShT9J6jmUi0Z9NNwLEW3OKzx0="; # web-resource
|
||||
};
|
||||
|
||||
wmts-multi-dimensional = mkGeoserverExtension {
|
||||
name = "wmts-multi-dimensional";
|
||||
version = "2.27.2"; # wmts-multi-dimensional
|
||||
hash = "sha256-de+0UEsRJyl9plnmOaWSI8xNc6RG+U7uJVEyvgwng4Q="; # wmts-multi-dimensional
|
||||
version = "2.28.1"; # wmts-multi-dimensional
|
||||
hash = "sha256-tJP9pPKKYFLGbLWZEV5gWSaQdTbml3OKiIPM1sqhekY="; # wmts-multi-dimensional
|
||||
};
|
||||
|
||||
wps = mkGeoserverExtension {
|
||||
name = "wps";
|
||||
version = "2.27.2"; # wps
|
||||
hash = "sha256-Fn0XWncwqUmMub9eBxb5GN2cc3eMdyB55NB9AUvVQpQ="; # wps
|
||||
version = "2.28.1"; # wps
|
||||
hash = "sha256-aYAN89XFpwzsW5aRBKSnixks3bxCAfOOznFDpoIvbIk="; # wps
|
||||
};
|
||||
|
||||
# Needs hazelcast (https://github.com/hazelcast/hazelcast (?)) which is not
|
||||
# available in nixpgs as of 2024/01.
|
||||
#wps-cluster-hazelcast = mkGeoserverExtension {
|
||||
# name = "wps-cluster-hazelcast";
|
||||
# version = "2.27.2"; # wps-cluster-hazelcast
|
||||
# hash = "sha256-xV6JddIC5Uq8H3RaE9tqCMK+5OA5WrXfh6O82BVw+P0="; # wps-cluster-hazelcast
|
||||
# version = "2.28.1"; # wps-cluster-hazelcast
|
||||
# hash = "sha256-hO1/7OG9J5Ot5xKhMUbTAqm7B6TlecqNGxxbIuFCpCc="; # wps-cluster-hazelcast
|
||||
#};
|
||||
|
||||
wps-download = mkGeoserverExtension {
|
||||
name = "wps-download";
|
||||
version = "2.27.2"; # wps-download
|
||||
hash = "sha256-loP1oYqie2U00RWOwlLzprECfnBTG2MeJNhPZJx8Q1o="; # wps-download
|
||||
version = "2.28.1"; # wps-download
|
||||
hash = "sha256-qB1vtczNULOsEjZaof9cA5YKPDE0Dwcz6mlUtzCanPQ="; # wps-download
|
||||
};
|
||||
|
||||
# Needs Postrgres configuration or similar.
|
||||
# See https://docs.geoserver.org/main/en/user/extensions/wps-jdbc/index.html
|
||||
wps-jdbc = mkGeoserverExtension {
|
||||
name = "wps-jdbc";
|
||||
version = "2.27.2"; # wps-jdbc
|
||||
hash = "sha256-LpxGscFx7DCeM90VGs4lAMoKNXJVDnSCptdC9VeeU/o="; # wps-jdbc
|
||||
version = "2.28.1"; # wps-jdbc
|
||||
hash = "sha256-9S6/TXK9YFzPD8u/S7SQuBcIGjUTalY69kzG4xbIU3g="; # wps-jdbc
|
||||
};
|
||||
|
||||
ysld = mkGeoserverExtension {
|
||||
name = "ysld";
|
||||
version = "2.27.2"; # ysld
|
||||
hash = "sha256-1yOaJcPyLOm/lYdOazHU5DjfahSjuN00yYvxgsE5RKM="; # ysld
|
||||
version = "2.28.1"; # ysld
|
||||
hash = "sha256-qLWnujvB32U0EW7xW12GaAx6mPHkrU5Pa3S+T8+19r8="; # ysld
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "geoserver";
|
||||
version = "2.27.2";
|
||||
version = "2.28.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/geoserver/GeoServer/${finalAttrs.version}/geoserver-${finalAttrs.version}-bin.zip";
|
||||
hash = "sha256-yzejVi+0FzTCtUirCvn3PsxLLmoIUSxS2sA1KWWo30U=";
|
||||
hash = "sha256-wll05KPMVfpZGnybBxLeGH3pan8q4eWy8F4v5y5N3Gk=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#!nix-shell -I ./. -i bash -p common-updater-scripts jq
|
||||
|
||||
set -eEuo pipefail
|
||||
test ${DEBUG:-0} -eq 1 && set -x
|
||||
test "${DEBUG:-0}" -eq 1 && set -x
|
||||
|
||||
# Current version.
|
||||
LATEST_NIXPKGS_VERSION=$(nix eval --raw .#geoserver.version 2>/dev/null)
|
||||
@@ -12,7 +12,7 @@ UPDATE_NIX_OLD_VERSION=${UPDATE_NIX_OLD_VERSION:-$LATEST_NIXPKGS_VERSION}
|
||||
LATEST_GITHUB_VERSION=$(curl -s "https://api.github.com/repos/geoserver/geoserver/releases/latest" | jq -r '.tag_name')
|
||||
UPDATE_NIX_NEW_VERSION=${UPDATE_NIX_NEW_VERSION:-$LATEST_GITHUB_VERSION}
|
||||
|
||||
SMALLEST_VERSION=$(printf "$UPDATE_NIX_OLD_VERSION\n$UPDATE_NIX_NEW_VERSION" | sort --version-sort | head -n 1)
|
||||
SMALLEST_VERSION=$(printf "%s\n%s" "$UPDATE_NIX_OLD_VERSION" "$UPDATE_NIX_NEW_VERSION" | sort --version-sort | head -n 1)
|
||||
|
||||
if [[ "$SMALLEST_VERSION" == "$UPDATE_NIX_NEW_VERSION" ]]; then
|
||||
echo "geoserver is up-to-date: $SMALLEST_VERSION"
|
||||
@@ -24,18 +24,18 @@ update-source-version geoserver "$UPDATE_NIX_NEW_VERSION"
|
||||
|
||||
cd "$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
EXT_NAMES=($(grep -o -E "hash = .*?; # .*$" ./extensions.nix | sed 's/.* # //' | sort))
|
||||
mapfile -t EXT_NAMES < <(grep -o -E "hash = .*?; # .*$" ./extensions.nix | sed 's/.* # //' | sort)
|
||||
|
||||
if [[ $# -gt 0 ]] ; then
|
||||
EXT_NAMES=(${@:1})
|
||||
if [[ $# -gt 0 ]]; then
|
||||
EXT_NAMES=("${@:1}")
|
||||
fi
|
||||
|
||||
for EXT_NAME in "${EXT_NAMES[@]}" ; do
|
||||
echo "Updating extension $EXT_NAME..."
|
||||
URL="mirror://sourceforge/geoserver/GeoServer/${UPDATE_NIX_NEW_VERSION}/extensions/geoserver-${UPDATE_NIX_NEW_VERSION}-${EXT_NAME}-plugin.zip"
|
||||
HASH=$(nix-hash --to-sri --type sha256 $(nix-prefetch-url --unpack "$URL"))
|
||||
sed -i "s@version = \".*\"; # $EXT_NAME@version = \"$UPDATE_NIX_NEW_VERSION\"; # $EXT_NAME@" ./extensions.nix
|
||||
sed -i "s@hash = \".*\"; # $EXT_NAME@hash = \"$HASH\"; # $EXT_NAME@" ./extensions.nix
|
||||
for EXT_NAME in "${EXT_NAMES[@]}"; do
|
||||
echo "Updating extension $EXT_NAME..."
|
||||
URL="https://sourceforge.net/projects/geoserver/files/GeoServer/${UPDATE_NIX_NEW_VERSION}/extensions/geoserver-${UPDATE_NIX_NEW_VERSION}-${EXT_NAME}-plugin.zip"
|
||||
HASH=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --unpack "$URL")")
|
||||
sed -i "s@version = \".*\"; # $EXT_NAME@version = \"$UPDATE_NIX_NEW_VERSION\"; # $EXT_NAME@" ./extensions.nix
|
||||
sed -i "s@hash = \".*\"; # $EXT_NAME@hash = \"$HASH\"; # $EXT_NAME@" ./extensions.nix
|
||||
done
|
||||
|
||||
cd -
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gthumb";
|
||||
version = "3.12.8.1";
|
||||
version = "3.12.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gthumb/${lib.versions.majorMinor finalAttrs.version}/gthumb-${finalAttrs.version}.tar.xz";
|
||||
sha256 = "sha256-JzYvwRylxYHzFoIjDJUCDlofzd9M/+vnVVeCjGF021s=";
|
||||
sha256 = "sha256-q8V7EQMWXdaRU1eW99vbp2hiF8fQael07Q89gA/oh5Y=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
@@ -85,7 +85,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patchShebangs data/gschemas/make-enums.py \
|
||||
gthumb/make-gthumb-h.py \
|
||||
po/make-potfiles-in.py \
|
||||
postinstall.py \
|
||||
gthumb/make-authors-tab.py
|
||||
'';
|
||||
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "inko";
|
||||
version = "0.18.1";
|
||||
version = "0.19.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "inko-lang";
|
||||
repo = "inko";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-jVfAfR02R2RaTtzFSBoLuq/wdPaaI/eochrZaRVdmHY=";
|
||||
hash = "sha256-ZHVOwYvNRL2ObZt2PvayoqvS64MumN4oXQOgeCWbEUM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-IOMhwcZHB5jVYDM65zifxCjVHWl1EBbxNA3WVmarWcs=";
|
||||
cargoHash = "sha256-BHrbqPMQnhw8pjN8e0/qW1rPe/fMhs2iUbRVPt5ATrg=";
|
||||
|
||||
buildInputs = [
|
||||
libffi
|
||||
|
||||
@@ -7,26 +7,30 @@
|
||||
|
||||
let
|
||||
source =
|
||||
# https://docs.inko-lang.org/manual/v0.19.1/getting-started/hello-concurrency/#channels
|
||||
writeText "hello.inko" # inko
|
||||
''
|
||||
import std.process (sleep)
|
||||
import std.stdio (STDOUT)
|
||||
import std.stdio (Stdout)
|
||||
import std.sync (Channel)
|
||||
import std.time (Duration)
|
||||
|
||||
class async Printer {
|
||||
fn async print(message: String, channel: Channel[Nil]) {
|
||||
let _ = STDOUT.new.print(message)
|
||||
type async Printer {
|
||||
fn async print(message: String, channel: uni Channel[Nil]) {
|
||||
let _ = Stdout.new.print(message)
|
||||
|
||||
channel.send(nil)
|
||||
}
|
||||
}
|
||||
|
||||
class async Main {
|
||||
type async Main {
|
||||
fn async main {
|
||||
let channel = Channel.new(size: 2)
|
||||
let channel = Channel.new
|
||||
|
||||
Printer().print('Hello', channel)
|
||||
Printer().print('world', channel)
|
||||
Printer().print('Hello', recover channel.clone)
|
||||
Printer().print('world', recover channel.clone)
|
||||
|
||||
sleep(Duration.from_millis(500))
|
||||
|
||||
channel.receive
|
||||
channel.receive
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
let
|
||||
pname = "jai";
|
||||
minor = "2";
|
||||
patch = "020";
|
||||
patch = "021";
|
||||
version = "0.${minor}.${patch}";
|
||||
zipName = "jai-beta-${minor}-${patch}.zip";
|
||||
jai = stdenv.mkDerivation {
|
||||
@@ -20,7 +20,7 @@ let
|
||||
nix-store --add-fixed sha256 ${zipName}
|
||||
'';
|
||||
name = zipName;
|
||||
sha256 = "sha256-4ni5psPUfoeupka8UryhWorCK9vptWZRPPDaRXAtN7M=";
|
||||
sha256 = "sha256-0hli9489cBtLzEcwN87sdh54hbkqtq3hCxqN9XxTX2U=";
|
||||
};
|
||||
nativeBuildInputs = [ unzip ];
|
||||
buildCommand = "unzip $src -d $out";
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "jsduck"
|
||||
@@ -1,23 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
dimensions (1.2.0)
|
||||
jsduck (5.3.4)
|
||||
dimensions (~> 1.2.0)
|
||||
json (~> 1.8.0)
|
||||
parallel (~> 0.7.1)
|
||||
rdiscount (~> 2.1.6)
|
||||
rkelly-remix (~> 0.0.4)
|
||||
json (1.8.6)
|
||||
parallel (0.7.1)
|
||||
rdiscount (2.1.8)
|
||||
rkelly-remix (0.0.7)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jsduck
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
@@ -1,57 +0,0 @@
|
||||
{
|
||||
dimensions = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1pqb7yzjcpbgbyi196ifqbd1wy570cn12bkzcvpcha4xilhajja0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
};
|
||||
jsduck = {
|
||||
dependencies = [
|
||||
"dimensions"
|
||||
"json"
|
||||
"parallel"
|
||||
"rdiscount"
|
||||
"rkelly-remix"
|
||||
];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0hac7g9g6gg10bigbm8dskwwbv1dfch8ca353gh2bkwf244qq2xr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.3.4";
|
||||
};
|
||||
json = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.6";
|
||||
};
|
||||
parallel = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1kzz6ydg7r23ks2b7zbpx4vz3h186n19vhgnjcwi7xwd6h2f1fsq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.1";
|
||||
};
|
||||
rdiscount = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0vcyy90r6wfg0b0y5wqp3d25bdyqjbwjhkm1xy9jkz9a7j72n70v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.8";
|
||||
};
|
||||
rkelly-remix = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1g7hjl9nx7f953y7lncmfgp0xgxfxvgfm367q6da9niik6rp1y3j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.7";
|
||||
};
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
bundlerEnv,
|
||||
makeWrapper,
|
||||
bundlerUpdateScript,
|
||||
}:
|
||||
let
|
||||
rubyEnv = bundlerEnv {
|
||||
name = "jsduck";
|
||||
gemfile = ./Gemfile;
|
||||
lockfile = ./Gemfile.lock;
|
||||
gemset = ./gemset.nix;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "jsduck";
|
||||
version = (import ./gemset.nix).jsduck.version;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ rubyEnv ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${rubyEnv}/bin/jsduck $out/bin/jsduck
|
||||
'';
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "jsduck";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple JavaScript Duckumentation generator";
|
||||
mainProgram = "jsduck";
|
||||
homepage = "https://github.com/senchalabs/jsduck";
|
||||
license = with licenses; gpl3;
|
||||
maintainers = with maintainers; [
|
||||
periklis
|
||||
nicknovitski
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
# rdiscount fails to compile with:
|
||||
# mktags.c:44:1: error: return type defaults to ‘int’ [-Wimplicit-int]
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
From df4f62ed4c4e54d528950f9204623ec3054d3ff9 Mon Sep 17 00:00:00 2001
|
||||
From: eljamm <fedi.jamoussi@protonmail.ch>
|
||||
Date: Thu, 4 Dec 2025 10:29:49 +0100
|
||||
Subject: [PATCH] Fix compatibility with qt 6.10
|
||||
|
||||
See: https://doc.qt.io/qt-6/whatsnew610.html#build-system-changes
|
||||
From: https://invent.kde.org/network/kaidan/-/commit/26942b401070
|
||||
---
|
||||
CMakeLists.txt | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 027530bc..ee57c6f6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -59,6 +59,10 @@ if (NOT ANDROID)
|
||||
find_package(KF6WindowSystem ${KF_MIN_VERSION} CONFIG REQUIRED)
|
||||
endif()
|
||||
|
||||
+if(Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0" AND NOT WIN32 AND NOT APPLE)
|
||||
+ find_package(Qt6GuiPrivate ${QT_MIN_VERSION} REQUIRED NO_MODULE)
|
||||
+endif()
|
||||
+
|
||||
find_package(KF6KirigamiAddons 1.4.0 REQUIRED)
|
||||
find_package(QXmppQt6 1.11.0 REQUIRED COMPONENTS Omemo)
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -25,6 +25,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-4+jW3fuUi1OpwbcGccxvrPro/fiW9yBOlhc2KUbUExc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-Fix-compatibility-with-qt-6.10.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libtorrent-rakshasa";
|
||||
version = "0.16.4";
|
||||
version = "0.16.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rakshasa";
|
||||
repo = "libtorrent";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-r+5rNaBXhHbDWFXbgEPriEmjWEjTyu2I5H7rl3PoF38=";
|
||||
hash = "sha256-zBMenewDtUyhOAQrIKejiShGWDeIA+7U1heyOKfAjio=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -30,13 +30,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mapserver";
|
||||
version = "8.4.1";
|
||||
version = "8.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MapServer";
|
||||
repo = "MapServer";
|
||||
rev = "rel-${lib.replaceStrings [ "." ] [ "-" ] version}";
|
||||
hash = "sha256-Q5PFOA/UGpDbzS0yROBOY6eXSgzx7nzSC+P109FrhvA=";
|
||||
hash = "sha256-KfCYYbBAsOKWkpaPIiN+xxu1IXoMkk0NWSdndk8FpTg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
}:
|
||||
let
|
||||
pname = "models-dev";
|
||||
version = "0-unstable-2025-12-02";
|
||||
version = "0-unstable-2025-12-03";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sst";
|
||||
repo = "models.dev";
|
||||
rev = "8bd2b3595f0731c4db5b6fb629655bdb7a23d78b";
|
||||
hash = "sha256-SNnqbC1XbeO9f8wSMHPIfdKkgyNbTTM6Lu4IVj9fTDQ=";
|
||||
rev = "4a0805d71eaff678cb2f81837ee7a93e15803d3f";
|
||||
hash = "sha256-mmxo2pnXOGbcE7vwoveskMQIdx1drqGwnqX9ugDX01s=";
|
||||
postFetch = lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
|
||||
# NOTE: Normalize case-sensitive directory names that cause issues on case-insensitive filesystems
|
||||
cp -r "$out/providers/poe/models/openai"/* "$out/providers/poe/models/openAi/"
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "nvidia-mig-parted";
|
||||
version = "0.13.0";
|
||||
version = "0.13.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NVIDIA";
|
||||
repo = "mig-parted";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-oSoPgap/LFjJ1tW3KLlcQ/zdym9A9h5zownktVxdQfY=";
|
||||
hash = "sha256-No8NzmjDjri77r7YzuSYsGMvHHMxsvxJaddarKcDMr0=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
}:
|
||||
let
|
||||
pname = "open-webui";
|
||||
version = "0.6.40";
|
||||
version = "0.6.41";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-webui";
|
||||
repo = "open-webui";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-whQmHSnHWeAozNsWemZZXi3quqcY27PTO6/3lpxiy+c=";
|
||||
hash = "sha256-/RpLiTz8WiI2fTJuLcksbB0pa5HOR13ci4G2LjdZu7Y=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage rec {
|
||||
@@ -32,7 +32,7 @@ let
|
||||
url = "https://github.com/pyodide/pyodide/releases/download/${pyodideVersion}/pyodide-${pyodideVersion}.tar.bz2";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-WL239S/XB+fZEOY2MQMMxbyJ5RoXfZJz94A8IOmyQ9c=";
|
||||
npmDepsHash = "sha256-n31+P5QU0XsuyNvipUU2A9f7CE3jKQa8ZAfwFuS3SXg=";
|
||||
|
||||
# See https://github.com/open-webui/open-webui/issues/15880
|
||||
npmFlags = [
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pdal";
|
||||
version = "2.9.2";
|
||||
version = "2.9.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PDAL";
|
||||
repo = "PDAL";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-W3HTgdLHzETfmp/DZ5s9pWXQeBaic4/O55ckGzDDtxs=";
|
||||
hash = "sha256-htuvNheRwzpdSKc4FbwugBWWaCNC7/20TSKwRpLr+7Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -101,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
disabledTests = [
|
||||
# Tests failing due to TileDB library implementation, disabled also
|
||||
# by upstream CI.
|
||||
# See: https://github.com/PDAL/PDAL/blob/2.9.2/.github/workflows/linux.yml#L81
|
||||
# See: https://github.com/PDAL/PDAL/blob/2.9.3/.github/workflows/linux.yml#L81
|
||||
"pdal_io_tiledb_writer_test"
|
||||
"pdal_io_tiledb_reader_test"
|
||||
"pdal_io_tiledb_time_writer_test"
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "pmtiles";
|
||||
version = "1.28.2";
|
||||
version = "1.28.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "protomaps";
|
||||
repo = "go-pmtiles";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-JGsbgBB2T+4SWKQmiSmuMqQ8gw0qhM5c5eFDF/+sndA=";
|
||||
hash = "sha256-9deO1SXhQ3/oZg2BC/IWbHb5KKQ7qAklrR956lj8IFY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-6zsX7rU+D+RUHwXfFZzLQftQ6nSYJhvKIDdsO2vow4A=";
|
||||
|
||||
@@ -9,23 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "prek";
|
||||
version = "0.2.18";
|
||||
version = "0.2.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "j178";
|
||||
repo = "prek";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-ddLtXIBf6WrjN+gxm0g3Wkmyps2resWsd1cH0F99Ii8=";
|
||||
hash = "sha256-/B7Z4d4GEJKhEDRznVzeqeB2Qrsz/dAVV3Syo8EhfvM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-E+t7bwKDnuZO/4WJEBaN+e5+P/Nbo14WWxgTLxDE7Jw=";
|
||||
|
||||
preBuild = ''
|
||||
version312_str=$(${python312}/bin/python -c 'import sys; print(sys.version_info[:3])')
|
||||
|
||||
substituteInPlace ./tests/languages/python.rs \
|
||||
--replace '(3, 12, 11)' "$version312_str"
|
||||
'';
|
||||
cargoHash = "sha256-quWyPdFEBYylhi1gugdew9KXhHldTkIAbea7GmVhH5g=";
|
||||
|
||||
nativeCheckInputs = [
|
||||
git
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "qovery-cli";
|
||||
version = "1.55.1";
|
||||
version = "1.56.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Qovery";
|
||||
repo = "qovery-cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-E/OjQkaO1ecB9o3boInBOamuY8CoXb1JAp7G9NuiQqE=";
|
||||
hash = "sha256-IeK0GcYi3J86IABYfKvE3ict8AOnpuwuecqadNYcVrY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-owsLDP2ufW0kXmWOFtAiXKx/YiKEGL0QXkRQy1uA2Uw=";
|
||||
|
||||
@@ -13,16 +13,16 @@
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "qwen-code";
|
||||
version = "0.2.3";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "QwenLM";
|
||||
repo = "qwen-code";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RMnsT+5X8LhtuGVNG5Dfgamj+oWCZNgNbyJn78HH3gI=";
|
||||
hash = "sha256-VUI7Br3k3g87tQW1AEccTTojOKNO0HA4jwA7PvYrlN8=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-qVQ6akW6OhBCnOc5f0Tej9YzvRjNfhxonovLydv9Jvc=";
|
||||
npmDepsHash = "sha256-Fv3Tca0LlVwpKOoDyG8wiojn0pip8IH79lxqxISd8O0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
jq
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qxmpp";
|
||||
version = "1.11.3";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "libraries";
|
||||
repo = "qxmpp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-93P4rKBSbs31uofl4AuVQQWVSRVOsKsykIG13p8zIkI=";
|
||||
hash = "sha256-soOu6JyS/SEdwUngOUd0suImr70naZms9Zy2pRwBn5E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
# redumper is using C++ modules, this requires latest C++20 compiler and build tools
|
||||
llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "redumper";
|
||||
version = "665";
|
||||
version = "666";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "superg";
|
||||
repo = "redumper";
|
||||
tag = "b${finalAttrs.version}";
|
||||
hash = "sha256-eKoQuQD2Z2WzcyZNf/MloEoAH8SlwbKihCPON2Sj1NY=";
|
||||
hash = "sha256-B5c7ISlQhLBsRYcoCG18uLWkeODJUDGoRAd9n8EejNA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -36,20 +36,20 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "siyuan";
|
||||
version = "3.4.1";
|
||||
version = "3.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siyuan-note";
|
||||
repo = "siyuan";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-BplxcFV8h0V+eyk2knCpwPCxUo9PdoIHp4mDXXo/HyE=";
|
||||
hash = "sha256-INwbp6gGqrmOtrM5d/8iEv1nlTUDSuo9AVN0EwNhW9Y=";
|
||||
};
|
||||
|
||||
kernel = buildGoModule {
|
||||
name = "${finalAttrs.pname}-${finalAttrs.version}-kernel";
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "${finalAttrs.src.name}/kernel";
|
||||
vendorHash = "sha256-v2I8+1K+Yz+DR2QsJ+1SaKLh3aEIBaR3aXRfwDMNvVs=";
|
||||
vendorHash = "sha256-kt5fnkF/bxpeY9d86zKr9VlShvLy1gtaICfA0PGVGKI=";
|
||||
|
||||
patches = [
|
||||
(replaceVars ./set-pandoc-path.patch {
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
ocamlPackages.buildDunePackage rec {
|
||||
pname = "slipshow";
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "panglesd";
|
||||
repo = "slipshow";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-cmBq9RYjvl355+tV+Nf7XmDzgbOqusCjVrqoC34R5CI=";
|
||||
hash = "sha256-HV4qUp/da0GjZ/KSaE4L/qxdosnOTRcC83zIRigxFSY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -40,6 +40,7 @@ ocamlPackages.buildDunePackage rec {
|
||||
lwt
|
||||
magic-mime
|
||||
ppx_blob
|
||||
ppx_deriving_yojson
|
||||
ppx_sexp_value
|
||||
sexplib
|
||||
];
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "xemu";
|
||||
version = "0.8.116";
|
||||
version = "0.8.118";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xemu-project";
|
||||
repo = "xemu";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hmDAT2LCB+kyhYhLvGkpZnEGiXxD8RsPqt29ZFfS6q4=";
|
||||
hash = "sha256-etr9YTqD3faVpjDUtmOtYDGh1ZGsl/sWVLs33nOwNKQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "ytdl-sub";
|
||||
version = "2025.11.27";
|
||||
version = "2025.11.28.post1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jmbannon";
|
||||
repo = "ytdl-sub";
|
||||
tag = version;
|
||||
hash = "sha256-HkdDcTQza4pw72FuQgss+GRiiHPtKFRSCJ87fIYPdq4=";
|
||||
hash = "sha256-DKlo8Cs7MVfkY8qrVT6NDPTQm6DhGtOHQ1pm3587Hj8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
|
||||
rec {
|
||||
pname = "mesa";
|
||||
version = "25.3.0";
|
||||
version = "25.3.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mesa";
|
||||
repo = "mesa";
|
||||
rev = "mesa-${version}";
|
||||
hash = "sha256-MviXDRAbCEXM9dIzD94/CM0bjlF4zCJUVE91Xst/uII=";
|
||||
hash = "sha256-ESaVKbAieCQcSs4WHyajSpBUWcHrldveXcb9PO63XWc=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -25,11 +25,6 @@ stdenv.mkDerivation {
|
||||
meta
|
||||
;
|
||||
|
||||
patches = [
|
||||
# Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38429
|
||||
./fix-darwin-build.patch
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
diff --git a/src/glx/apple/apple_cgl.c b/src/glx/apple/apple_cgl.c
|
||||
index 81b6730f8e29b3920216461858b98bcd3b7a870c..9bdfe555949482ddb6153ee926967ac5c04fe7c8 100644
|
||||
--- a/src/glx/apple/apple_cgl.c
|
||||
+++ b/src/glx/apple/apple_cgl.c
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
#include "apple_cgl.h"
|
||||
#include "apple_glx.h"
|
||||
+#include "util/os_misc.h"
|
||||
|
||||
#ifndef OPENGL_FRAMEWORK_PATH
|
||||
#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL"
|
||||
diff --git a/src/loader/loader.c b/src/loader/loader.c
|
||||
index d06a368c1bbff180fcc9432183db66398b75f4a3..0567beb3dee569895fbb36c7e7c3df34be8b32b7 100644
|
||||
--- a/src/loader/loader.c
|
||||
+++ b/src/loader/loader.c
|
||||
@@ -139,6 +139,9 @@ iris_predicate(int fd, const char *driver)
|
||||
bool
|
||||
nouveau_zink_predicate(int fd, const char *driver)
|
||||
{
|
||||
+#ifndef HAVE_LIBDRM
|
||||
+ return true;
|
||||
+#else
|
||||
/* Never load on nv proprietary driver */
|
||||
if (!drm_fd_is_nouveau(fd))
|
||||
return false;
|
||||
@@ -191,6 +194,7 @@ nouveau_zink_predicate(int fd, const char *driver)
|
||||
if (!use_zink && !strcmp(driver, "nouveau"))
|
||||
return true;
|
||||
return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-nest-sdm";
|
||||
version = "9.1.1";
|
||||
version = "9.1.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "allenporter";
|
||||
repo = "python-google-nest-sdm";
|
||||
tag = version;
|
||||
hash = "sha256-qbw5KryI/h+uBddFrYBCQHXxFAhXR1SHdkuIeUKxbVw=";
|
||||
hash = "sha256-yElmh+ajNVbjhsnNsUtQ3mJw9fvJtXqgS58iow+Nwi8=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lance-namespace";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lancedb";
|
||||
repo = "lance-namespace";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-OqSaDe0xA1S/KphpwJuIcyOrcT9sq+0oHhiIBtd7bcY=";
|
||||
hash = "sha256-1SCsKjFd//1y28eR5MC2/M7cIMTRa083iDyuvWxLekw=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/python/lance_namespace_urllib3_client";
|
||||
|
||||
@@ -34,14 +34,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "libretranslate";
|
||||
version = "1.8.0";
|
||||
version = "1.8.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LibreTranslate";
|
||||
repo = "LibreTranslate";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Hes5ZDzqbulUxEhuBCcwuOmNDClY8xyzeXbj1FaVvd0=";
|
||||
hash = "sha256-LzXAGiZQU6wV063bqLTr8S1IDX/j4xHjqmhuFyosCSw=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mkdocstrings-python";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mkdocstrings";
|
||||
repo = "python";
|
||||
tag = version;
|
||||
hash = "sha256-3oC3eVm+RYkn+1OqUU2f/dzV/rY8T7EePDxnE/1t6n4=";
|
||||
hash = "sha256-xaLC4zzX18lzYNpNJQrx3IXcZ22qQgktzzzgKDef8xE=";
|
||||
};
|
||||
|
||||
build-system = [ pdm-backend ];
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "spsdk-pyocd";
|
||||
version = "0.3.3";
|
||||
version = "0.3.4";
|
||||
pyproject = true;
|
||||
|
||||
# Latest tag missing on GitHub
|
||||
src = fetchPypi {
|
||||
pname = "spsdk_pyocd";
|
||||
inherit version;
|
||||
hash = "sha256-Uu5QbvDd2U9evZiY2Gg4kSPRMGpFBXpxwYVgsa5M/SI=";
|
||||
hash = "sha256-jvzXu6z9oo2oGoiDgCWWcU3yX/PuWm56MJzIcMWCgTM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -15,14 +15,14 @@ let
|
||||
variants = {
|
||||
# ./update-xanmod.sh lts
|
||||
lts = {
|
||||
version = "6.12.59";
|
||||
hash = "sha256-IvKN4osLSZmMPeQFUZ05W7YLZYS1HLsxDoAFbi7sxKQ=";
|
||||
version = "6.12.60";
|
||||
hash = "sha256-nS9vsdH76q+uUaWXEp3duikX7osVqv7hjBMFNzdtA7o=";
|
||||
isLTS = true;
|
||||
};
|
||||
# ./update-xanmod.sh main
|
||||
main = {
|
||||
version = "6.17.9";
|
||||
hash = "sha256-M0M8jEflWgGMSUqQ2oEePISaYR5UIJbGrSmphCTIKYI=";
|
||||
version = "6.17.10";
|
||||
hash = "sha256-Y6WsimtxzT6SutR040tUK+fVNnxnACtiyA3DF+iiPVM=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "lovelace-card-mod";
|
||||
version = "4.0.0";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thomasloven";
|
||||
repo = "lovelace-card-mod";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BXyNXxCSEY0/AUD+6ggTvXPyPQYnAjkEgAVFmui6FAs=";
|
||||
hash = "sha256-w2ky3jSHRbIaTzl0b0aJq4pzuCNUV8GqYsI2U/eoGfs=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-afIJbUNKKCWckL60cpj4V2SMCOX0Kn56AkVK9t923D0=";
|
||||
npmDepsHash = "sha256-7VoPQGUQLuQYaB3xAbvv0Ux7kiE/usnIxX2+jYGQXqA=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
+3
-3
@@ -6,18 +6,18 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "universal-remote-card";
|
||||
version = "4.9.0";
|
||||
version = "4.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nerwyn";
|
||||
repo = "android-tv-card";
|
||||
rev = version;
|
||||
hash = "sha256-HvTxuC+qjljFPjRkEjdf+Jy7atpTVtZRU7y05Rcvhps=";
|
||||
hash = "sha256-vAg45lELCh/oB0h8SWWTUmPGezjODPQAW+fzojIKxy8=";
|
||||
};
|
||||
|
||||
patches = [ ./dont-call-git.patch ];
|
||||
|
||||
npmDepsHash = "sha256-h3E2dJTdR6b+TwkXPdK0+hrMZ+Zj5b27oMDD413cBKM=";
|
||||
npmDepsHash = "sha256-xtVf1/K0gqgYYzU0MbPhmWzKRvaDGEMN8ipwVwAmS44=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -762,6 +762,7 @@ mapAliases {
|
||||
jing = jing-trang; # Added 2025-09-18
|
||||
joplin = joplin-cli; # Added 2025-11-03
|
||||
jscoverage = throw "jscoverage has been removed, as it was broken"; # Added 2025-08-25
|
||||
jsduck = throw "jsduck has been removed, as it was broken and and unmaintained upstream."; # Added 2025-12-02
|
||||
julia_19 = throw "Julia 1.9 has reached its end of life and 'julia_19' has been removed. Please use a supported version."; # Added 2025-10-29
|
||||
julia_19-bin = throw "Julia 1.9 has reached its end of life and 'julia_19-bin' has been removed. Please use a supported version."; # Added 2025-10-29
|
||||
k2pdfopt = throw "'k2pdfopt' has been removed from nixpkgs as it was broken"; # Added 2025-09-27
|
||||
|
||||
@@ -6324,8 +6324,6 @@ with pkgs;
|
||||
];
|
||||
};
|
||||
|
||||
cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
|
||||
|
||||
# Does not actually depend on Qt 5
|
||||
inherit (plasma5Packages) extra-cmake-modules;
|
||||
|
||||
@@ -6912,12 +6910,6 @@ with pkgs;
|
||||
c-blosc2
|
||||
;
|
||||
|
||||
cachix = (lib.getBin haskellPackages.cachix).overrideAttrs (old: {
|
||||
meta = (old.meta or { }) // {
|
||||
mainProgram = old.meta.mainProgram or "cachix";
|
||||
};
|
||||
});
|
||||
|
||||
niv = lib.getBin (haskell.lib.compose.justStaticExecutables haskellPackages.niv);
|
||||
|
||||
ormolu = lib.getBin (haskell.lib.compose.justStaticExecutables haskellPackages.ormolu);
|
||||
|
||||
Reference in New Issue
Block a user