Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-12-04 12:07:34 +00:00
committed by GitHub
67 changed files with 1493 additions and 1351 deletions
+6
View File
@@ -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";
+78 -18
View File
@@ -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()
+3
View File
@@ -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
+53
View File
@@ -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 ];
}
+3 -2
View File
@@ -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 ];
}
+3 -1
View File
@@ -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"
'';
}
+3 -5
View File
@@ -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")
'';
}
+2 -2
View File
@@ -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 = ''
+13 -8
View File
@@ -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) {
+2 -2
View File
@@ -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" ];
};
+1
View File
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
ps.pillow
ps.setuptools
ps.psycopg2
ps.webrtcvad
]))
]
++ runtimeProgDeps;
+5 -5
View File
@@ -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=";
};
};
+3 -3
View File
@@ -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
+13
View File
@@ -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
]
+3 -3
View File
@@ -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.
@@ -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;
};
}
+52
View File
@@ -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;
};
}
+74
View File
@@ -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;
};
}
+54
View File
@@ -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
+10 -4
View File
@@ -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 = [
+118 -109
View File
@@ -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
};
}
+2 -2
View File
@@ -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 = ".";
+11 -11
View File
@@ -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 -
+2 -3
View File
@@ -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
'';
+3 -3
View File
@@ -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
+12 -8
View File
@@ -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
+2 -2
View File
@@ -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";
-3
View File
@@ -1,3 +0,0 @@
source "https://rubygems.org"
gem "jsduck"
-23
View File
@@ -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
-57
View File
@@ -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";
};
}
-46
View File
@@ -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
+4
View File
@@ -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 = [
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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;
+3 -3
View File
@@ -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 = [
+3 -3
View File
@@ -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"
+2 -2
View File
@@ -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=";
+3 -10
View File
@@ -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
+2 -2
View File
@@ -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=";
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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 = [
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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 {
+3 -2
View File
@@ -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
];
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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 = ''
+2 -2
View File
@@ -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
@@ -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
+1
View File
@@ -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
-8
View File
@@ -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);