0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

Merge branch 'master' into staging-next

This commit is contained in:
K900 2024-05-01 09:37:47 +03:00
commit a9c7210d0b
245 changed files with 10758 additions and 3158 deletions

View file

@ -8,7 +8,7 @@ Programs in the GNOME universe are written in various languages but they all use
[GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`. [GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`.
On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent. On Linux, GSettings API is implemented using [dconf](https://gitlab.gnome.org/GNOME/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`. Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`.
@ -76,11 +76,11 @@ Previously, a GTK theme needed to be in `XDG_DATA_DIRS`. This is no longer neces
### GObject introspection typelibs {#ssec-gnome-typelibs} ### GObject introspection typelibs {#ssec-gnome-typelibs}
[GObject introspection](https://wiki.gnome.org/Projects/GObjectIntrospection) allows applications to use C libraries in other languages easily. It does this through `typelib` files searched in `GI_TYPELIB_PATH`. [GObject introspection](https://gitlab.gnome.org/GNOME/gobject-introspection) allows applications to use C libraries in other languages easily. It does this through `typelib` files searched in `GI_TYPELIB_PATH`.
### Various plug-ins {#ssec-gnome-plugins} ### Various plug-ins {#ssec-gnome-plugins}
If your application uses [GStreamer](https://gstreamer.freedesktop.org/) or [Grilo](https://wiki.gnome.org/Projects/Grilo), you should set `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH`, respectively. If your application uses [GStreamer](https://gstreamer.freedesktop.org/) or [Grilo](https://gitlab.gnome.org/GNOME/grilo), you should set `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH`, respectively.
## Onto `wrapGApps*` hooks {#ssec-gnome-hooks} ## Onto `wrapGApps*` hooks {#ssec-gnome-hooks}

View file

@ -9452,6 +9452,12 @@
fingerprint = "B768 6CD7 451A 650D 9C54 4204 6710 CF0C 1CBD 7762"; fingerprint = "B768 6CD7 451A 650D 9C54 4204 6710 CF0C 1CBD 7762";
}]; }];
}; };
jlbribeiro = {
email = "nix@jlbribeiro.com";
github = "jlbribeiro";
githubId = 1015816;
name = "José Ribeiro";
};
jleightcap = { jleightcap = {
email = "jack@leightcap.com"; email = "jack@leightcap.com";
github = "jleightcap"; github = "jleightcap";
@ -15091,6 +15097,13 @@
githubId = 104593071; githubId = 104593071;
name = "Oliver Schmidt"; name = "Oliver Schmidt";
}; };
osslate = {
email = "fionn@kelleher.email";
github = "osslate";
githubId = 773673;
matrix = "@osslate:fsfe.org";
name = "Fionn Kelleher";
};
ostrolucky = { ostrolucky = {
email = "gabriel.ostrolucky@gmail.com"; email = "gabriel.ostrolucky@gmail.com";
github = "ostrolucky"; github = "ostrolucky";

View file

@ -341,7 +341,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `optparse-bash` is now dropped due to upstream inactivity. Alternatives available in Nixpkgs include [`argc`](https://github.com/sigoden/argc), [`argbash`](https://github.com/matejak/argbash), [`bashly`](https://github.com/DannyBen/bashly) and [`gum`](https://github.com/charmbracelet/gum), to name a few. - `optparse-bash` is now dropped due to upstream inactivity. Alternatives available in Nixpkgs include [`argc`](https://github.com/sigoden/argc), [`argbash`](https://github.com/matejak/argbash), [`bashly`](https://github.com/DannyBen/bashly) and [`gum`](https://github.com/charmbracelet/gum), to name a few.
- `kanata` package has been updated to v1.5.0, which includes [breaking changes](https://github.com/jtroo/kanata/releases/tag/v1.5.0). - `kanata` package has been updated to v1.6.0, which includes breaking changes. Check out the changelog of [v1.5.0](https://github.com/jtroo/kanata/releases/tag/v1.5.0) and [v1.6.0](https://github.com/jtroo/kanata/releases/tag/v1.6.0) for details.
- `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8). - `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
- Files are now handled in binary mode; this could break programs with embedded UTF-8 characters. - Files are now handled in binary mode; this could break programs with embedded UTF-8 characters.

View file

@ -31,8 +31,11 @@ with lib;
cairo = super.cairo.override { x11Support = false; }; cairo = super.cairo.override { x11Support = false; };
dbus = super.dbus.override { x11Support = false; }; dbus = super.dbus.override { x11Support = false; };
fastfetch = super.fastfetch.override { vulkanSupport = false; waylandSupport = false; x11Support = false; }; fastfetch = super.fastfetch.override { vulkanSupport = false; waylandSupport = false; x11Support = false; };
ffmpeg = super.ffmpeg.override { ffmpegVariant = "headless"; };
ffmpeg_4 = super.ffmpeg_4.override { ffmpegVariant = "headless"; }; ffmpeg_4 = super.ffmpeg_4.override { ffmpegVariant = "headless"; };
ffmpeg_5 = super.ffmpeg_5.override { ffmpegVariant = "headless"; }; ffmpeg_5 = super.ffmpeg_5.override { ffmpegVariant = "headless"; };
ffmpeg_6 = super.ffmpeg_6.override { ffmpegVariant = "headless"; };
ffmpeg_7 = super.ffmpeg_7.override { ffmpegVariant = "headless"; };
# dep of graphviz, libXpm is optional for Xpm support # dep of graphviz, libXpm is optional for Xpm support
gd = super.gd.override { withXorg = false; }; gd = super.gd.override { withXorg = false; };
ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; }; ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };

View file

@ -4,6 +4,7 @@ with lib;
let let
cfg = config.services.adguardhome; cfg = config.services.adguardhome;
settingsFormat = pkgs.formats.yaml { };
args = concatStringsSep " " ([ args = concatStringsSep " " ([
"--no-check-update" "--no-check-update"
@ -12,27 +13,33 @@ let
"--config /var/lib/AdGuardHome/AdGuardHome.yaml" "--config /var/lib/AdGuardHome/AdGuardHome.yaml"
] ++ cfg.extraArgs); ] ++ cfg.extraArgs);
configFile = pkgs.writeTextFile { settings = if (cfg.settings != null) then
name = "AdGuardHome.yaml"; cfg.settings // (if cfg.settings.schema_version < 23 then {
text = builtins.toJSON cfg.settings; bind_host = cfg.host;
checkPhase = "${pkgs.adguardhome}/bin/adguardhome -c $out --check-config"; bind_port = cfg.port;
}; } else {
defaultBindPort = 3000; http.address = "${cfg.host}:${toString cfg.port}";
})
in else
{ null;
imports =
let cfgPath = [ "services" "adguardhome" ];
in
[
(mkRenamedOptionModuleWith { sinceRelease = 2211; from = cfgPath ++ [ "host" ]; to = cfgPath ++ [ "settings" "bind_host" ]; })
(mkRenamedOptionModuleWith { sinceRelease = 2211; from = cfgPath ++ [ "port" ]; to = cfgPath ++ [ "settings" "bind_port" ]; })
];
configFile =
(settingsFormat.generate "AdGuardHome.yaml" settings).overrideAttrs (_: {
checkPhase = "${cfg.package}/bin/adguardhome -c $out --check-config";
});
in {
options.services.adguardhome = with types; { options.services.adguardhome = with types; {
enable = mkEnableOption "AdGuard Home network-wide ad blocker"; enable = mkEnableOption "AdGuard Home network-wide ad blocker";
package = mkOption {
type = package;
default = pkgs.adguardhome;
defaultText = literalExpression "pkgs.adguardhome";
description = ''
The package that runs adguardhome.
'';
};
openFirewall = mkOption { openFirewall = mkOption {
default = false; default = false;
type = bool; type = bool;
@ -43,8 +50,8 @@ in
}; };
allowDHCP = mkOption { allowDHCP = mkOption {
default = cfg.settings.dhcp.enabled or false; default = settings.dhcp.enabled or false;
defaultText = literalExpression ''config.services.adguardhome.settings.dhcp.enabled or false''; defaultText = literalExpression "config.services.adguardhome.settings.dhcp.enabled or false";
type = bool; type = bool;
description = '' description = ''
Allows AdGuard Home to open raw sockets (`CAP_NET_RAW`), which is Allows AdGuard Home to open raw sockets (`CAP_NET_RAW`), which is
@ -65,32 +72,34 @@ in
''; '';
}; };
host = mkOption {
default = "0.0.0.0";
type = str;
description = ''
Host address to bind HTTP server to.
'';
};
port = mkOption {
default = 3000;
type = port;
description = ''
Port to serve HTTP pages on.
'';
};
settings = mkOption { settings = mkOption {
default = null; default = null;
type = nullOr (submodule { type = nullOr (submodule {
freeformType = (pkgs.formats.yaml { }).type; freeformType = settingsFormat.type;
options = { options = {
schema_version = mkOption { schema_version = mkOption {
default = pkgs.adguardhome.schema_version; default = cfg.package.schema_version;
defaultText = literalExpression "pkgs.adguardhome.schema_version"; defaultText = literalExpression "cfg.package.schema_version";
type = int; type = int;
description = '' description = ''
Schema version for the configuration. Schema version for the configuration.
Defaults to the `schema_version` supplied by `pkgs.adguardhome`. Defaults to the `schema_version` supplied by `cfg.package`.
'';
};
bind_host = mkOption {
default = "0.0.0.0";
type = str;
description = ''
Host address to bind HTTP server to.
'';
};
bind_port = mkOption {
default = defaultBindPort;
type = port;
description = ''
Port to serve HTTP pages on.
''; '';
}; };
}; };
@ -107,7 +116,7 @@ in
Set this to `null` (default) for a non-declarative configuration without any Set this to `null` (default) for a non-declarative configuration without any
Nix-supplied values. Nix-supplied values.
Declarative configurations are supplied with a default `schema_version`, `bind_host`, and `bind_port`. Declarative configurations are supplied with a default `schema_version`, and `http.address`.
::: :::
''; '';
}; };
@ -124,17 +133,25 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [ assertions = [
{ {
assertion = cfg.settings != null -> cfg.mutableSettings assertion = cfg.settings != null
|| (hasAttrByPath [ "dns" "bind_host" ] cfg.settings) -> !(hasAttrByPath [ "bind_host" ] cfg.settings);
|| (hasAttrByPath [ "dns" "bind_hosts" ] cfg.settings); message = "AdGuard option `settings.bind_host' has been superseded by `services.adguardhome.host'";
message =
"AdGuard setting dns.bind_host or dns.bind_hosts needs to be configured for a minimal working configuration";
} }
{ {
assertion = cfg.settings != null -> cfg.mutableSettings assertion = cfg.settings != null
|| hasAttrByPath [ "dns" "bootstrap_dns" ] cfg.settings; -> !(hasAttrByPath [ "bind_port" ] cfg.settings);
message = message = "AdGuard option `settings.bind_host' has been superseded by `services.adguardhome.port'";
"AdGuard setting dns.bootstrap_dns needs to be configured for a minimal working configuration"; }
{
assertion = settings != null -> cfg.mutableSettings
|| hasAttrByPath [ "dns" "bootstrap_dns" ] settings;
message = "AdGuard setting dns.bootstrap_dns needs to be configured for a minimal working configuration";
}
{
assertion = settings != null -> cfg.mutableSettings
|| hasAttrByPath [ "dns" "bootstrap_dns" ] settings
&& isList settings.dns.bootstrap_dns;
message = "AdGuard setting dns.bootstrap_dns needs to be a list";
} }
]; ];
@ -147,7 +164,7 @@ in
StartLimitBurst = 10; StartLimitBurst = 10;
}; };
preStart = optionalString (cfg.settings != null) '' preStart = optionalString (settings != null) ''
if [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \ if [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \
&& [ "${toString cfg.mutableSettings}" = "1" ]; then && [ "${toString cfg.mutableSettings}" = "1" ]; then
# Writing directly to AdGuardHome.yaml results in empty file # Writing directly to AdGuardHome.yaml results in empty file
@ -161,8 +178,9 @@ in
serviceConfig = { serviceConfig = {
DynamicUser = true; DynamicUser = true;
ExecStart = "${pkgs.adguardhome}/bin/adguardhome ${args}"; ExecStart = "${cfg.package}/bin/adguardhome ${args}";
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ] ++ optionals cfg.allowDHCP [ "CAP_NET_RAW" ]; AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]
++ optionals cfg.allowDHCP [ "CAP_NET_RAW" ];
Restart = "always"; Restart = "always";
RestartSec = 10; RestartSec = 10;
RuntimeDirectory = "AdGuardHome"; RuntimeDirectory = "AdGuardHome";
@ -170,6 +188,6 @@ in
}; };
}; };
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.bind_port or defaultBindPort ]; networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
}; };
} }

View file

@ -10,7 +10,9 @@ let
# We check the source code in a derivation that does not depend on the # We check the source code in a derivation that does not depend on the
# system configuration so that most users don't have to redo the check and require # system configuration so that most users don't have to redo the check and require
# the necessary dependencies. # the necessary dependencies.
checkedSource = pkgs.runCommand "systemd-boot" { } '' checkedSource = pkgs.runCommand "systemd-boot" {
preferLocalBuild = true;
} ''
install -m755 -D ${./systemd-boot-builder.py} $out install -m755 -D ${./systemd-boot-builder.py} $out
${lib.getExe pkgs.buildPackages.mypy} \ ${lib.getExe pkgs.buildPackages.mypy} \
--no-implicit-optional \ --no-implicit-optional \

View file

@ -2,41 +2,39 @@
name = "adguardhome"; name = "adguardhome";
nodes = { nodes = {
nullConf = { ... }: { services.adguardhome = { enable = true; }; }; nullConf = { services.adguardhome.enable = true; };
emptyConf = { lib, ... }: { emptyConf = {
services.adguardhome = { services.adguardhome = {
enable = true; enable = true;
settings = { };
}; };
}; };
declarativeConf = { ... }: { schemaVersionBefore23 = {
services.adguardhome = {
enable = true;
settings.schema_version = 20;
};
};
declarativeConf = {
services.adguardhome = { services.adguardhome = {
enable = true; enable = true;
mutableSettings = false; mutableSettings = false;
settings = { settings.dns.bootstrap_dns = [ "127.0.0.1" ];
schema_version = 0;
dns = {
bind_host = "0.0.0.0";
bootstrap_dns = "127.0.0.1";
};
};
}; };
}; };
mixedConf = { ... }: { mixedConf = {
services.adguardhome = { services.adguardhome = {
enable = true; enable = true;
mutableSettings = true; mutableSettings = true;
settings = { settings.dns.bootstrap_dns = [ "127.0.0.1" ];
schema_version = 0;
dns = {
bind_host = "0.0.0.0";
bootstrap_dns = "127.0.0.1";
};
};
}; };
}; };
@ -70,11 +68,7 @@
allowDHCP = true; allowDHCP = true;
mutableSettings = false; mutableSettings = false;
settings = { settings = {
schema_version = 0; dns.bootstrap_dns = [ "127.0.0.1" ];
dns = {
bind_host = "0.0.0.0";
bootstrap_dns = "127.0.0.1";
};
dhcp = { dhcp = {
# This implicitly enables CAP_NET_RAW # This implicitly enables CAP_NET_RAW
enabled = true; enabled = true;
@ -104,33 +98,38 @@
testScript = '' testScript = ''
with subtest("Minimal (settings = null) config test"): with subtest("Minimal (settings = null) config test"):
nullConf.wait_for_unit("adguardhome.service") nullConf.wait_for_unit("adguardhome.service")
nullConf.wait_for_open_port(3000)
with subtest("Default config test"): with subtest("Default config test"):
emptyConf.wait_for_unit("adguardhome.service") emptyConf.wait_for_unit("adguardhome.service")
emptyConf.wait_for_open_port(3000) emptyConf.wait_for_open_port(3000)
with subtest("Default schema_version 23 config test"):
schemaVersionBefore23.wait_for_unit("adguardhome.service")
schemaVersionBefore23.wait_for_open_port(3000)
with subtest("Declarative config test, DNS will be reachable"): with subtest("Declarative config test, DNS will be reachable"):
declarativeConf.wait_for_unit("adguardhome.service") declarativeConf.wait_for_unit("adguardhome.service")
declarativeConf.wait_for_open_port(53) declarativeConf.wait_for_open_port(53)
declarativeConf.wait_for_open_port(3000) declarativeConf.wait_for_open_port(3000)
with subtest("Mixed config test, check whether merging works"): with subtest("Mixed config test, check whether merging works"):
mixedConf.wait_for_unit("adguardhome.service") mixedConf.wait_for_unit("adguardhome.service")
mixedConf.wait_for_open_port(53) mixedConf.wait_for_open_port(53)
mixedConf.wait_for_open_port(3000) mixedConf.wait_for_open_port(3000)
# Test whether merging works properly, even if nothing is changed # Test whether merging works properly, even if nothing is changed
mixedConf.systemctl("restart adguardhome.service") mixedConf.systemctl("restart adguardhome.service")
mixedConf.wait_for_unit("adguardhome.service") mixedConf.wait_for_unit("adguardhome.service")
mixedConf.wait_for_open_port(3000) mixedConf.wait_for_open_port(3000)
with subtest("Testing successful DHCP start"): with subtest("Testing successful DHCP start"):
dhcpConf.wait_for_unit("adguardhome.service") dhcpConf.wait_for_unit("adguardhome.service")
client.systemctl("start network-online.target") client.systemctl("start network-online.target")
client.wait_for_unit("network-online.target") client.wait_for_unit("network-online.target")
# Test IP assignment via DHCP # Test IP assignment via DHCP
dhcpConf.wait_until_succeeds("ping -c 5 10.0.10.100") dhcpConf.wait_until_succeeds("ping -c 5 10.0.10.100")
# Test hostname resolution over DHCP-provided DNS # Test hostname resolution over DHCP-provided DNS
dhcpConf.wait_until_succeeds("ping -c 5 client.lan") dhcpConf.wait_until_succeeds("ping -c 5 client.lan")
''; '';
} }

View file

@ -867,6 +867,7 @@ in {
swap-partition = handleTest ./swap-partition.nix {}; swap-partition = handleTest ./swap-partition.nix {};
swap-random-encryption = handleTest ./swap-random-encryption.nix {}; swap-random-encryption = handleTest ./swap-random-encryption.nix {};
sway = handleTest ./sway.nix {}; sway = handleTest ./sway.nix {};
swayfx = handleTest ./swayfx.nix {};
switchTest = handleTest ./switch-test.nix {}; switchTest = handleTest ./switch-test.nix {};
sympa = handleTest ./sympa.nix {}; sympa = handleTest ./sympa.nix {};
syncthing = handleTest ./syncthing.nix {}; syncthing = handleTest ./syncthing.nix {};

207
nixos/tests/swayfx.nix Normal file
View file

@ -0,0 +1,207 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
{
name = "swayfx";
meta = {
maintainers = with lib.maintainers; [ eclairevoyant ];
};
# testScriptWithTypes:49: error: Cannot call function of unknown type
# (machine.succeed if succeed else machine.execute)(
# ^
# Found 1 error in 1 file (checked 1 source file)
skipTypeCheck = true;
nodes.machine =
{ config, ... }:
{
# Automatically login on tty1 as a normal user:
imports = [ ./common/user-account.nix ];
services.getty.autologinUser = "alice";
environment = {
# For glinfo and wayland-info:
systemPackages = with pkgs; [
mesa-demos
wayland-utils
alacritty
];
# Use a fixed SWAYSOCK path (for swaymsg):
variables = {
"SWAYSOCK" = "/tmp/sway-ipc.sock";
# TODO: Investigate if we can get hardware acceleration to work (via
# virtio-gpu and Virgil). We currently have to use the Pixman software
# renderer since the GLES2 renderer doesn't work inside the VM (even
# with WLR_RENDERER_ALLOW_SOFTWARE):
# "WLR_RENDERER_ALLOW_SOFTWARE" = "1";
"WLR_RENDERER" = "pixman";
};
# For convenience:
shellAliases = {
test-x11 = "glinfo | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok";
test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok";
};
# To help with OCR:
etc."xdg/foot/foot.ini".text = lib.generators.toINI { } {
main = {
font = "inconsolata:size=14";
};
colors = rec {
foreground = "000000";
background = "ffffff";
regular2 = foreground;
};
};
etc."gpg-agent.conf".text = ''
pinentry-timeout 86400
'';
};
fonts.packages = [ pkgs.inconsolata ];
# Automatically configure and start Sway when logging in on tty1:
programs.bash.loginShellInit = ''
if [ "$(tty)" = "/dev/tty1" ]; then
set -e
mkdir -p ~/.config/sway
sed s/Mod4/Mod1/ /etc/sway/config > ~/.config/sway/config
sway --validate
sway && touch /tmp/sway-exit-ok
fi
'';
programs.sway = {
enable = true;
package = pkgs.swayfx.override { isNixOS = true; };
};
# To test pinentry via gpg-agent:
programs.gnupg.agent.enable = true;
# Need to switch to a different GPU driver than the default one (-vga std) so that Sway can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
testScript =
{ nodes, ... }:
''
import shlex
import json
q = shlex.quote
NODE_GROUPS = ["nodes", "floating_nodes"]
def swaymsg(command: str = "", succeed=True, type="command"):
assert command != "" or type != "command", "Must specify command or type"
shell = q(f"swaymsg -t {q(type)} -- {q(command)}")
with machine.nested(
f"sending swaymsg {shell!r}" + " (allowed to fail)" * (not succeed)
):
ret = (machine.succeed if succeed else machine.execute)(
f"su - alice -c {shell}"
)
# execute also returns a status code, but disregard.
if not succeed:
_, ret = ret
if not succeed and not ret:
return None
parsed = json.loads(ret)
return parsed
def walk(tree):
yield tree
for group in NODE_GROUPS:
for node in tree.get(group, []):
yield from walk(node)
def wait_for_window(pattern):
def func(last_chance):
nodes = (node["name"] for node in walk(swaymsg(type="get_tree")))
if last_chance:
nodes = list(nodes)
machine.log(f"Last call! Current list of windows: {nodes}")
return any(pattern in name for name in nodes)
retry(func)
start_all()
machine.wait_for_unit("multi-user.target")
# To check the version:
print(machine.succeed("sway --version"))
# Wait for Sway to complete startup:
machine.wait_for_file("/run/user/1000/wayland-1")
machine.wait_for_file("/tmp/sway-ipc.sock")
# Test XWayland (foot does not support X):
swaymsg("exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY= alacritty")
wait_for_window("alice@machine")
machine.send_chars("test-x11\n")
machine.wait_for_file("/tmp/test-x11-exit-ok")
print(machine.succeed("cat /tmp/test-x11.out"))
machine.copy_from_vm("/tmp/test-x11.out")
machine.screenshot("alacritty_glinfo")
machine.succeed("pkill alacritty")
# Start a terminal (foot) on workspace 3:
machine.send_key("alt-3")
machine.sleep(3)
machine.send_key("alt-ret")
wait_for_window("alice@machine")
machine.send_chars("test-wayland\n")
machine.wait_for_file("/tmp/test-wayland-exit-ok")
print(machine.succeed("cat /tmp/test-wayland.out"))
machine.copy_from_vm("/tmp/test-wayland.out")
machine.screenshot("foot_wayland_info")
machine.send_key("alt-shift-q")
machine.wait_until_fails("pgrep foot")
# Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if
# $WAYLAND_DISPLAY is correctly imported into the D-Bus user env):
swaymsg("exec mkdir -p ~/.gnupg")
swaymsg("exec cp /etc/gpg-agent.conf ~/.gnupg")
swaymsg("exec DISPLAY=INVALID gpg --no-tty --yes --quick-generate-key test", succeed=False)
machine.wait_until_succeeds("pgrep --exact gpg")
wait_for_window("gpg")
machine.succeed("pgrep --exact gpg")
machine.screenshot("gpg_pinentry")
machine.send_key("alt-shift-q")
machine.wait_until_fails("pgrep --exact gpg")
# Test swaynag:
def get_height():
return [node['rect']['height'] for node in walk(swaymsg(type="get_tree")) if node['focused']][0]
before = get_height()
machine.send_key("alt-shift-e")
retry(lambda _: get_height() < before)
machine.screenshot("sway_exit")
swaymsg("exec swaylock")
machine.wait_until_succeeds("pgrep -x swaylock")
machine.sleep(3)
machine.send_chars("${nodes.machine.config.users.users.alice.password}")
machine.send_key("ret")
machine.wait_until_fails("pgrep -x swaylock")
# Exit Sway and verify process exit status 0:
swaymsg("exit", succeed=False)
machine.wait_until_fails("pgrep -x sway")
machine.wait_for_file("/tmp/sway-exit-ok")
'';
}
)

View file

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
The features can be activated and configured through the Universal Access The features can be activated and configured through the Universal Access
panel of the GNOME Control Center. panel of the GNOME Control Center.
''; '';
homepage = "https://wiki.gnome.org/Projects/Mousetweaks"; homepage = "https://gitlab.gnome.org/Archive/mousetweaks";
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.johnazoidberg ]; maintainers = [ maintainers.johnazoidberg ];

View file

@ -24,7 +24,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "squeekboard"; pname = "squeekboard";
version = "1.22.0"; version = "1.38.0";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
@ -32,23 +32,15 @@ stdenv.mkDerivation rec {
owner = "Phosh"; owner = "Phosh";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Rk6LOCZ5bhoo5ORAIIYWENrKUIVypd8bnKjyyBSbUYg="; hash = "sha256-ZVSnLH2wLPcOHkU2pO0BgIdGmULMNiacIYMRmhN+bZ8=";
}; };
cargoDeps = rustPlatform.fetchCargoTarball { cargoDeps = rustPlatform.fetchCargoTarball {
inherit src; inherit src;
cargoUpdateHook = ''
cat Cargo.toml.in Cargo.deps.newer > Cargo.toml
cp Cargo.lock.newer Cargo.lock
'';
name = "${pname}-${version}"; name = "${pname}-${version}";
hash = "sha256-DygWra4R/w8KzkFzIVm4+ePpUpjiYGaDx2NQm6o+tWQ="; hash = "sha256-tcn1tRuRlHVTYvc8T/ePfCEPNjih6B9lo/hdX+WwitQ=";
}; };
mesonFlags = [
"-Dnewer=true"
];
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja

View file

@ -8,7 +8,7 @@
, qtbase , qtbase
, qttools , qttools
, qtwayland , qtwayland
, rtaudio , rtaudio_6
, rtmidi , rtmidi
, wrapQtAppsHook , wrapQtAppsHook
}: }:
@ -43,16 +43,16 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ buildInputs = [
qtbase qtbase
rtaudio_6
rtmidi rtmidi
] ++ lib.optionals stdenv.hostPlatform.isLinux [ ] ++ lib.optionals stdenv.hostPlatform.isLinux [
qtwayland qtwayland
] ++ lib.optionals (lib.versionAtLeast qtbase.version "6.0") [ ] ++ lib.optionals (lib.versionAtLeast qtbase.version "6.0") [
qt5compat qt5compat
] ++ rtaudio.buildInputs; ];
qmakeFlags = [ qmakeFlags = [
# we don't have RtAudio 6 yet: https://github.com/NixOS/nixpkgs/pull/245075 "CONFIG+=system_rtaudio"
# "CONFIG+=system_rtaudio"
"CONFIG+=system_rtmidi" "CONFIG+=system_rtmidi"
]; ];

View file

@ -1,8 +1,10 @@
{ {
lib, lib,
stdenv,
buildNpmPackage, buildNpmPackage,
fetchFromGitHub, fetchFromGitHub,
electron_27, electron_27,
darwin,
copyDesktopItems, copyDesktopItems,
makeDesktopItem, makeDesktopItem,
... ...
@ -21,8 +23,7 @@ let
electron = electron_27; electron = electron_27;
in in
buildNpmPackage { buildNpmPackage {
pname = "feishin"; inherit pname version;
inherit version;
inherit src; inherit src;
npmDepsHash = "sha256-+pr9fWg/9kxkYMmthtqhjgF6MOomSQxVCO5V8tHHRdE="; npmDepsHash = "sha256-+pr9fWg/9kxkYMmthtqhjgF6MOomSQxVCO5V8tHHRdE=";
@ -32,17 +33,25 @@ buildNpmPackage {
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
nativeBuildInputs = [ copyDesktopItems ]; nativeBuildInputs =
lib.optionals (stdenv.isLinux) [ copyDesktopItems ]
++ lib.optionals stdenv.isDarwin [ darwin.autoSignDarwinBinariesHook ];
postPatch = '' postPatch =
# release/app dependencies are installed on preConfigure ''
substituteInPlace package.json \ # release/app dependencies are installed on preConfigure
--replace-fail "electron-builder install-app-deps &&" "" substituteInPlace package.json \
--replace-fail "electron-builder install-app-deps &&" ""
# https://github.com/electron/electron/issues/31121 # Don't check for updates.
substituteInPlace src/main/main.ts \ substituteInPlace src/main/main.ts \
--replace-fail "process.resourcesPath" "'$out/share/feishin/resources'" --replace-fail "autoUpdater.checkForUpdatesAndNotify();" ""
''; ''
+ lib.optionalString stdenv.isLinux ''
# https://github.com/electron/electron/issues/31121
substituteInPlace src/main/main.ts \
--replace-fail "process.resourcesPath" "'$out/share/feishin/resources'"
'';
preConfigure = preConfigure =
let let
@ -67,40 +76,59 @@ buildNpmPackage {
done done
''; '';
postBuild = '' postBuild =
npm exec electron-builder -- \ lib.optionalString stdenv.isDarwin ''
--dir \ # electron-builder appears to build directly on top of Electron.app, by overwriting the files in the bundle.
-c.electronDist=${electron}/libexec/electron \ cp -r ${electron}/Applications/Electron.app ./
-c.electronVersion=${electron.version} \ find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw
-c.npmRebuild=false
'';
installPhase = '' # Disable code signing during build on macOS.
runHook preInstall # https://github.com/electron-userland/electron-builder/blob/fa6fc16/docs/code-signing.md#how-to-disable-code-signing-during-the-build-process-on-macos
export CSC_IDENTITY_AUTO_DISCOVERY=false
sed -i "/afterSign/d" package.json
''
+ ''
npm exec electron-builder -- \
--dir \
-c.electronDist=${if stdenv.isDarwin then "./" else "${electron}/libexec/electron"} \
-c.electronVersion=${electron.version} \
-c.npmRebuild=false
'';
mkdir -p $out/share/feishin installPhase =
pushd release/build/*/ ''
cp -r locales resources{,.pak} $out/share/feishin runHook preInstall
popd ''
+ lib.optionalString stdenv.isDarwin ''
mkdir -p $out/{Applications,bin}
cp -r release/build/**/Feishin.app $out/Applications/
makeWrapper $out/Applications/Feishin.app/Contents/MacOS/Feishin $out/bin/feishin
''
+ lib.optionalString stdenv.isLinux ''
mkdir -p $out/share/feishin
pushd release/build/*/
cp -r locales resources{,.pak} $out/share/feishin
popd
# Code relies on checking app.isPackaged, which returns false if the executable is electron. # Code relies on checking app.isPackaged, which returns false if the executable is electron.
# Set ELECTRON_FORCE_IS_PACKAGED=1. # Set ELECTRON_FORCE_IS_PACKAGED=1.
# https://github.com/electron/electron/issues/35153#issuecomment-1202718531 # https://github.com/electron/electron/issues/35153#issuecomment-1202718531
makeWrapper ${lib.getExe electron} $out/bin/feishin \ makeWrapper ${lib.getExe electron} $out/bin/feishin \
--add-flags $out/share/feishin/resources/app.asar \ --add-flags $out/share/feishin/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--set ELECTRON_FORCE_IS_PACKAGED=1 \ --set ELECTRON_FORCE_IS_PACKAGED=1 \
--inherit-argv0 --inherit-argv0
for size in 32 64 128 256 512 1024; do for size in 32 64 128 256 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
ln -s \ ln -s \
$out/share/feishin/resources/assets/icons/"$size"x"$size".png \ $out/share/feishin/resources/assets/icons/"$size"x"$size".png \
$out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
done done
''
runHook postInstall + ''
''; runHook postInstall
'';
desktopItems = [ desktopItems = [
(makeDesktopItem { (makeDesktopItem {
@ -125,6 +153,9 @@ buildNpmPackage {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "feishin"; mainProgram = "feishin";
maintainers = with maintainers; [ onny ]; maintainers = with maintainers; [
onny
jlbribeiro
];
}; };
} }

View file

@ -14,17 +14,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "listenbrainz-mpd"; pname = "listenbrainz-mpd";
version = "2.3.4"; version = "2.3.5";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "elomatreb"; owner = "elomatreb";
repo = "listenbrainz-mpd"; repo = "listenbrainz-mpd";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-QHhSrmBNvUTffPzjns670Tn3Z3UDcDvarq605Qx9k4w="; hash = "sha256-z3SVpPCWZqCVXPKbPxZAKGtk8Z/Tf5PULn0dWsKlVrE=";
}; };
cargoHash = "sha256-vtU439Pd3zWx+qakh1xTENQhun7S+WsJMndXqPWrPWU="; cargoHash = "sha256-eCdUrxt9edJm6K3f8V8bjgYWMq3mgj/ZfUZYWE3ZBqw=";
nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ]; nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ];

View file

@ -10,11 +10,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "virtual-ans"; pname = "virtual-ans";
version = "3.0.2c"; version = "3.0.3";
src = fetchzip { src = fetchzip {
url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip"; url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n"; sha256 = "sha256-tqR7icgURUFOyLJ8+mS17JRf2gK53I2FW/2m8IJPtJE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -246,7 +246,7 @@
}; };
cmp-git = super.cmp-git.overrideAttrs { cmp-git = super.cmp-git.overrideAttrs {
dependencies = with self; [ nvim-cmp ]; dependencies = with self; [ nvim-cmp plenary-nvim ];
}; };
cmp-greek = super.cmp-greek.overrideAttrs { cmp-greek = super.cmp-greek.overrideAttrs {

View file

@ -32,11 +32,11 @@ let
gdbDefaultsTo = if gdbUseFixed then "${gdb}/bin/gdb" else "gdb"; gdbDefaultsTo = if gdbUseFixed then "${gdb}/bin/gdb" else "gdb";
supported = { supported = {
x86_64-linux = { x86_64-linux = {
hash = "sha256-4mKCBqUCOndKEfsJqTIsfwEt+0CZI8QAhBj3Y4+wKlg="; hash = "sha256-p8WFmkQKdzXF0FTWHabyeFMkwXa2RkDRM9SvvkBIOLY=";
arch = "linux-x64"; arch = "linux-x64";
}; };
aarch64-linux = { aarch64-linux = {
hash = "sha256-Kjl8mEpayA1xMHEAMJ5k3Ctk3l48KlUBU5w3dL4pGWM="; hash = "sha256-HISE8/M9IpeI8iX0mmw9owExnpgiwpesE7YG/+QFYgc=";
arch = "linux-arm64"; arch = "linux-arm64";
}; };
}; };
@ -47,7 +47,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = base // { mktplcRef = base // {
name = "cpptools"; name = "cpptools";
publisher = "ms-vscode"; publisher = "ms-vscode";
version = "1.17.3"; version = "1.20.2";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -8,6 +8,8 @@
, python3Packages , python3Packages
, qtbase , qtbase
, qtcharts , qtcharts
, makeDesktopItem
, copyDesktopItems
}: }:
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
@ -25,6 +27,7 @@ python3Packages.buildPythonPackage rec {
nativeBuildInputs = [ nativeBuildInputs = [
wrapQtAppsHook wrapQtAppsHook
python3Packages.mkdocs-material python3Packages.mkdocs-material
copyDesktopItems
]; ];
buildInputs = [ buildInputs = [
@ -32,6 +35,20 @@ python3Packages.buildPythonPackage rec {
qtcharts qtcharts
]; ];
desktopItems = [
(makeDesktopItem {
name = "hydrus-client";
exec = "hydrus-client";
desktopName = "Hydrus Client";
icon = "hydrus-client";
comment = meta.description;
terminal = false;
type = "Application";
categories = [ "FileTools" "Utility" ];
})
];
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
beautifulsoup4 beautifulsoup4
cbor2 cbor2
@ -104,6 +121,8 @@ python3Packages.buildPythonPackage rec {
outputs = [ "out" "doc" ]; outputs = [ "out" "doc" ];
installPhase = '' installPhase = ''
runHook preInstall
# Move the hydrus module and related directories # Move the hydrus module and related directories
mkdir -p $out/${python3Packages.python.sitePackages} mkdir -p $out/${python3Packages.python.sitePackages}
mv {hydrus,static,db} $out/${python3Packages.python.sitePackages} mv {hydrus,static,db} $out/${python3Packages.python.sitePackages}
@ -118,12 +137,18 @@ python3Packages.buildPythonPackage rec {
mkdir -p $out/bin mkdir -p $out/bin
install -m0755 hydrus_server.py $out/bin/hydrus-server install -m0755 hydrus_server.py $out/bin/hydrus-server
install -m0755 hydrus_client.py $out/bin/hydrus-client install -m0755 hydrus_client.py $out/bin/hydrus-client
# desktop item
mkdir -p "$out/share/icons/hicolor/scalable/apps"
ln -s "$doc/share/doc/hydrus/assets/hydrus-white.svg" "$out/share/icons/hicolor/scalable/apps/hydrus-client.svg"
'' + lib.optionalString enableSwftools '' '' + lib.optionalString enableSwftools ''
mkdir -p $out/${python3Packages.python.sitePackages}/bin mkdir -p $out/${python3Packages.python.sitePackages}/bin
# swfrender seems to have to be called sfwrender_linux # swfrender seems to have to be called sfwrender_linux
# not sure if it can be loaded through PATH, but this is simpler # not sure if it can be loaded through PATH, but this is simpler
# $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin # $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin
ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux
'' + ''
runHook postInstall
''; '';
dontWrapQtApps = true; dontWrapQtApps = true;

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "texturepacker"; pname = "texturepacker";
version = "7.2.0"; version = "7.3.0";
src = fetchurl { src = fetchurl {
url = "https://www.codeandweb.com/download/texturepacker/${finalAttrs.version}/TexturePacker-${finalAttrs.version}.deb"; url = "https://www.codeandweb.com/download/texturepacker/${finalAttrs.version}/TexturePacker-${finalAttrs.version}.deb";
hash = "sha256-64aAg8V61MwJjFLYcf/nv5Bp7W0+cQBZac2e1HzkJBw="; hash = "sha256-0i6LDrLBvTFKC5kW2PXP3Be6boUIJZ0fd1JG6FoS1kQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,14 +1,12 @@
{ lib, stdenv, fetchFromSourcehut, python3, help2man }: { lib, stdenv, fetchzip, python3, help2man }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fead"; pname = "fead";
version = "0.1.3"; version = "1.0.0";
src = fetchFromSourcehut { src = fetchzip {
owner = "~cnx"; url = "https://trong.loang.net/~cnx/fead/snapshot/fead-${version}.tar.gz";
repo = pname; hash = "sha256-cbU379Zz+mwRqEHiDUlGvWheLkkr0YidHeVs/1Leg38=";
rev = version;
sha256 = "sha256-cW0GxyvC9url2QAAWD0M2pR4gBiPA3eeAaw77TwMV/0=";
}; };
nativeBuildInputs = [ help2man ]; nativeBuildInputs = [ help2man ];
@ -29,9 +27,9 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Advert generator from web feeds"; description = "Advert generator from web feeds";
homepage = "https://git.sr.ht/~cnx/fead"; homepage = "https://trong.loang.net/~cnx/fead";
license = licenses.agpl3Plus; license = licenses.agpl3Plus;
changelog = "https://git.sr.ht/~cnx/fead/refs/${version}"; changelog = "https://trong.loang.net/~cnx/fead/tag?h=${version}";
maintainers = with maintainers; [ McSinyx ]; maintainers = with maintainers; [ McSinyx ];
mainProgram = "fead"; mainProgram = "fead";
}; };

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pdfsam-basic"; pname = "pdfsam-basic";
version = "5.2.2"; version = "5.2.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb"; url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
hash = "sha256-+Hc3f8rf0ymddIu52vLtdqNZO4ODW9JnPlyneSZt/OQ="; hash = "sha256-ai1UHMeLvCba6WV6f6dGc53CxPP7bJaPgo8Tm7ddkOM=";
}; };
unpackPhase = '' unpackPhase = ''

View file

@ -3,10 +3,10 @@
{ {
firefox = buildMozillaMach rec { firefox = buildMozillaMach rec {
pname = "firefox"; pname = "firefox";
version = "125.0.2"; version = "125.0.3";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "f6d5fff7c5c532d2e41a246d0403bdd746981cfcb7c43f9d3d8ec85a7acc3310a52043d1e18848475cef1b63c24769e81b2b06d68ae007b68016ee51436032f1"; sha512 = "18e705a3093290311ccb5f27f01e43fe243ece94c1769a9ccc4fa53d370e32a1ec6a107cdeb531e9468b9aca1a1fe668161adb7acc1ec65fd383837882c7d484";
}; };
extraPatches = [ extraPatches = [

View file

@ -11,6 +11,7 @@
, cmake , cmake
, ninja , ninja
, libxcrypt , libxcrypt
, python3
, qt6Packages , qt6Packages
, nixosTests , nixosTests
, AppKit , AppKit
@ -103,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = with qt6Packages; [ nativeBuildInputs = with qt6Packages; [
cmake cmake
ninja ninja
python3
wrapQtAppsHook wrapQtAppsHook
]; ];

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "helm-unittest"; pname = "helm-unittest";
version = "0.4.4"; version = "0.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-C1aHnKNXgzlPT1qMngRcPZ6hYUOenU1xpeYLnhrvtnc="; hash = "sha256-DGmvF4U+yqXWm/L96ph+/OrLZ7q+JG4PQQFxC7pH710=";
}; };
vendorHash = "sha256-nm1LFy2yqfQs+HmrAR1EsBjpm9w0u4einLbVFW1UitI="; vendorHash = "sha256-BRFKrrJ9PhwMrfr3ON4/sm+BQ1ufeyP5PtfJQRksrj0=";
# NOTE: Remove the install and upgrade hooks. # NOTE: Remove the install and upgrade hooks.
postPatch = '' postPatch = ''

View file

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubectl-cnpg"; pname = "kubectl-cnpg";
version = "1.23.0"; version = "1.23.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cloudnative-pg"; owner = "cloudnative-pg";
repo = "cloudnative-pg"; repo = "cloudnative-pg";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-pNyXi3IjEMwAUdNzDw8WttQzmtHja2YfTHntowLrQOo="; hash = "sha256-sh9ogECNEZ6AYhdJD87ELnr8E0iWPLhDu3Qkdpb2194=";
}; };
vendorHash = "sha256-3yh6b0dB2JC0t2EwykWiLk6glyKUhTpqmqvfFZ4RekE="; vendorHash = "sha256-3yh6b0dB2JC0t2EwykWiLk6glyKUhTpqmqvfFZ4RekE=";

View file

@ -15,14 +15,14 @@
buildGoModule rec { buildGoModule rec {
inherit pname; inherit pname;
version = "2.7.1"; version = "2.7.2";
tags = lib.optionals enableGateway [ "gateway" ]; tags = lib.optionals enableGateway [ "gateway" ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kumahq"; owner = "kumahq";
repo = "kuma"; repo = "kuma";
rev = version; rev = version;
hash = "sha256-jTKGJe498eEI0re6gEAKW81IjAJ4VmqjetoKp8A7Cz0="; hash = "sha256-Y9JejIKENIyn2EyRHXLm6CZqlP4MwvPSMRlciYl+a30=";
}; };
vendorHash = "sha256-ne62twZXac5GfQ8JcWElIMqc+Vpvn0Y9XSNgAtF62q0="; vendorHash = "sha256-ne62twZXac5GfQ8JcWElIMqc+Vpvn0Y9XSNgAtF62q0=";

View file

@ -2,7 +2,7 @@
(callPackage ./generic.nix { }) { (callPackage ./generic.nix { }) {
channel = "edge"; channel = "edge";
version = "24.4.4"; version = "24.4.5";
sha256 = "07p4cgl4myv7kv9pxvxrvsqnl3vkd9ay5hngx5g6xds2sc8va306"; sha256 = "0cxjilxsvbwahqh3wb3cw4z8fmq6lhxi531abrncs74kgasgcfam";
vendorHash = "sha256-bLTummNoDfGMYvtfSLxICgCFZEymPJcRWkQyWOSzKR8="; vendorHash = "sha256-YxavLLYppV991AgFb2WaQDbqnsr3UfrvWefvkSf+W1Q=";
} }

View file

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "nomad-pack"; pname = "nomad-pack";
version = "0.1.0"; version = "0.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hashicorp"; owner = "hashicorp";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-4v5CAJkpeIZ64w5LDcK9Jn8qDqIXrtXgVyB3K/PiZQw="; sha256 = "sha256-b7M2I+R39txtTdk/FOYvKfZxXbGEtDrzgpB64594Gqc=";
}; };
vendorHash = "sha256-kHZWciRZYk1E1NVega0F/ZljyEl1SmXUveb2E7a9j34="; vendorHash = "sha256-bhWySn5p1aPbYSCY7GqFteYmm22Jeq/Rf/a2ZTjyZQ4=";
# skip running go tests as they require network access # skip running go tests as they require network access
doCheck = false; doCheck = false;

View file

@ -10,13 +10,13 @@
buildGoModule rec { buildGoModule rec {
pname = "werf"; pname = "werf";
version = "2.0.2"; version = "2.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "werf"; owner = "werf";
repo = "werf"; repo = "werf";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-fCXQ9jVZqpyLzQsmpoKbha40KfCrKffmbt9RDj+lIUM="; hash = "sha256-CUz2LBba5elWWqMab6I/n1eGKRi8q9im/jEwZI3k7WU=";
}; };
vendorHash = "sha256-WMmL0jjzzaDtNmx+kvHFONqwhz7mjFCM4rT6YoL+XkA="; vendorHash = "sha256-WMmL0jjzzaDtNmx+kvHFONqwhz7mjFCM4rT6YoL+XkA=";

View file

@ -3,16 +3,16 @@
buildGoModule rec { buildGoModule rec {
pname = "discordo"; pname = "discordo";
version = "unstable-2024-03-12"; version = "0-unstable-2024-04-27";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ayn2op"; owner = "ayn2op";
repo = pname; repo = pname;
rev = "5805f6605efe63fc887e850bcc5d107070eb2c1a"; rev = "d76a7db668900a7fc41ead7db194e20f126071ac";
hash = "sha256-IzVDxylrR0X8HLWTelSBq2+uu2h2Jd6iaNUXh9zQ9Yk="; hash = "sha256-uEMz7n0IFTGK1fZC1/vuwJpyySGdTUIMUjunCmycnzM=";
}; };
vendorHash = "sha256-6pCQHr/O2pfR1v8YI+htwGZ8RFStEEUctIEpgblXvjY="; vendorHash = "sha256-hSrGN3NHPpp5601l4KcmNHVYOGWfLjFeWWr9g11nM3I=";
CGO_ENABLED = 0; CGO_ENABLED = 0;

View file

@ -85,6 +85,6 @@ python3.pkgs.buildPythonApplication rec {
changelog = "https://github.com/Flexget/Flexget/releases/tag/v${version}"; changelog = "https://github.com/Flexget/Flexget/releases/tag/v${version}";
description = "Multipurpose automation tool for all of your media"; description = "Multipurpose automation tool for all of your media";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ pbsds ];
}; };
} }

View file

@ -18,13 +18,13 @@ let
in in
flutter.buildFlutterApplication (rec { flutter.buildFlutterApplication (rec {
pname = "fluffychat-${targetFlutterPlatform}"; pname = "fluffychat-${targetFlutterPlatform}";
version = "1.18.0"; version = "1.20.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "krille-chan"; owner = "krille-chan";
repo = "fluffychat"; repo = "fluffychat";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-xm3+zBqg/mW2XxqFDXxeC+gIc+TgeciJmQf8w1kcW5Y="; hash = "sha256-eHwzvWKWJ9Q2OgCvgZTt+Bcph2w2pTqyOtwXFbZ4LEg=";
}; };
inherit pubspecLock; inherit pubspecLock;
@ -32,7 +32,6 @@ flutter.buildFlutterApplication (rec {
gitHashes = { gitHashes = {
flutter_shortcuts = "sha256-4nptZ7/tM2W/zylk3rfQzxXgQ6AipFH36gcIb/0RbHo="; flutter_shortcuts = "sha256-4nptZ7/tM2W/zylk3rfQzxXgQ6AipFH36gcIb/0RbHo=";
keyboard_shortcuts = "sha256-U74kRujftHPvpMOIqVT0Ph+wi1ocnxNxIFA1krft4Os="; keyboard_shortcuts = "sha256-U74kRujftHPvpMOIqVT0Ph+wi1ocnxNxIFA1krft4Os=";
wakelock_windows = "sha256-Dfwe3dSScD/6kvkP67notcbb+EgTQ3kEYcH7wpra2dI=";
}; };
inherit targetFlutterPlatform; inherit targetFlutterPlatform;

View file

@ -20,11 +20,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wavebox"; pname = "wavebox";
version = "10.120.10-2"; version = "10.124.17-2";
src = fetchurl { src = fetchurl {
url = "https://download.wavebox.app/stable/linux/tar/Wavebox_${version}.tar.gz"; url = "https://download.wavebox.app/stable/linux/tar/Wavebox_${version}.tar.gz";
sha256 = "sha256-9kA3nJUNlNHbWYkIy0iEnWCrmIYTjULdMAGGnO4JCkg="; sha256 = "sha256-RS1/zs/rFWsj29BrT8Mb2IXgy9brBsQypxfvnd7pKl0=";
}; };
# don't remove runtime deps # don't remove runtime deps

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "iroh"; pname = "iroh";
version = "0.14.0"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "n0-computer"; owner = "n0-computer";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-r4sE/1RI/Y6gDMApwlr4Gf6Jvl0zNCAahduXyRtFboE="; hash = "sha256-ho/wlg6W0/LcJrVHPRVQ6zNjpwqa0+PThUP/RGIXVTA=";
}; };
cargoHash = "sha256-N9MsYz7QTm04k5eMdwqj4wTQ36SoaJBqvsty58Pg8tU="; cargoHash = "sha256-1S6lFzoLxF6V94wXw/r5XDwbnt4/aaPOYdIIJA68Ya8=";
buildInputs = lib.optionals stdenv.isDarwin ( buildInputs = lib.optionals stdenv.isDarwin (
with darwin.apple_sdk.frameworks; [ with darwin.apple_sdk.frameworks; [

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "XD"; pname = "XD";
version = "0.4.4"; version = "0.4.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "majestrate"; owner = "majestrate";
repo = "XD"; repo = "XD";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-YUstYGIED6ivt+p+aHIK76dLCj+xjytWnZrra49cCi8="; sha256 = "sha256-u8cUcxNW2jAWxVn1hDHS2cpIpcyv4lwx1zytlzPPdv4=";
}; };
vendorHash = "sha256-wO+IICtGVHhrPa1JUwlx+PuNS32FJNKYmboLd3lFl4w="; vendorHash = "sha256-ZD7PZJcY7qWHEQOk5I9IlMup0vbYYaRvVau5Go7ocno=";
nativeCheckInputs = [ perl ]; nativeCheckInputs = [ perl ];

View file

@ -27,11 +27,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "PortfolioPerformance"; pname = "PortfolioPerformance";
version = "0.68.3"; version = "0.68.4";
src = fetchurl { src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-7EQ/gKFflElga5LDwAkjPcqNl6HNtnAzno1ZGPBybJY="; hash = "sha256-E4uVI2MJ2tD2wuAxxzCZSmNRbKTTzhi44c4ip7uEhCk=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -19,14 +19,13 @@ stdenv.mkDerivation rec {
buildInputs = [ zlib libdeflate isa-l ]; buildInputs = [ zlib libdeflate isa-l ];
makeFlags = [ "CC=cc" ]; makeFlags = [
"CC:=$(CC)"
"BINDIR=$(out)/bin"
];
installPhase = '' preInstall = ''
runHook preInstall mkdir -p "$out/bin"
install -Dm755 -t $out/bin seqtk
runHook postInstall
''; '';
meta = with lib; { meta = with lib; {

View file

@ -38,33 +38,75 @@ let
in in
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
inherit pname; inherit pname;
version = "2.5.0"; version = "3.0.0";
pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "schrodinger"; owner = "schrodinger";
repo = "pymol-open-source"; repo = "pymol-open-source";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-JdsgcVF1w1xFPZxVcyS+GcWg4a1Bd4SvxFOuSdlz9SM="; hash = "sha256-GhTHxacjGN7XklZ6gileBMRZAGq4Pp4JknNL+qGqrVE=";
}; };
postPatch = ''
substituteInPlace setup.py \
--replace-fail "self.install_libbase" '"${placeholder "out"}/${python3.sitePackages}"'
'';
build-system = [
python3Packages.setuptools
];
nativeBuildInputs = [ qt5.wrapQtAppsHook ]; nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ python3Packages.numpy python3Packages.pyqt5 glew glm libpng libxml2 freetype msgpack netcdf ]; buildInputs = [ python3Packages.numpy python3Packages.pyqt5 glew glm libpng libxml2 freetype msgpack netcdf ];
env.NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2"; env.NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
hardeningDisable = [ "format" ];
installPhase = ''
python setup.py install --home="$out"
runHook postInstall
'';
postInstall = with python3Packages; '' postInstall = with python3Packages; ''
wrapProgram $out/bin/pymol \ wrapProgram $out/bin/pymol \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ pyqt5 pyqt5.pyqt5-sip ]} --prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ pyqt5 pyqt5.pyqt5-sip ]}
mkdir -p "$out/share/icons/" mkdir -p "$out/share/icons/"
ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg" ln -s $out/${python3.sitePackages}/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg"
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
cp -r "${desktopItem}/share/applications/" "$out/share/" cp -r "${desktopItem}/share/applications/" "$out/share/"
''; '';
pythonImportsCheck = [
"pymol"
];
nativeCheckInputs = with python3Packages; [
python3Packages.msgpack
pillow
pytestCheckHook
];
# some tests hang for some reason
doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
disabledTestPaths = [
# require biopython which is broken as of 2024-04-20
"tests/api/seqalign.py"
];
disabledTests = [
# the output image does not exactly match
"test_commands"
# touch the network
"testFetch"
# requires collada2gltf which is not included in nixpkgs
"testglTF"
# require mmtf-cpp which does not support darwin
"testMMTF"
"testSave_symmetry__mmtf"
];
preCheck = ''
cd testing
'';
__darwinAllowLocalNetworking = true;
preFixup = '' preFixup = ''
wrapQtApp "$out/bin/pymol" wrapQtApp "$out/bin/pymol"
''; '';
@ -74,6 +116,6 @@ python3Packages.buildPythonApplication rec {
mainProgram = "pymol"; mainProgram = "pymol";
homepage = "https://www.pymol.org/"; homepage = "https://www.pymol.org/";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ samlich ]; maintainers = with maintainers; [ natsukium samlich ];
}; };
} }

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "2.48.0"; version = "2.49.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-8vQQzLGb1cHeNJC/aUZbROfRoUtuujEKoLWBgLZnhls="; hash = "sha256-4aT8ThZt2Dlp2RjaGBiTgw2IPantSnTJPhP5Tel755Q=";
}; };
vendorHash = "sha256-rQtRBXhG5fF+3cIIv9i5r8Kd9YeIq/aDLAw8Rqxn6ww="; vendorHash = "sha256-p+1Knx+z1M3m8VjsvBfY6D1Gs5va5Z8QFExv5397wHU=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -12,10 +12,10 @@ rustPlatform.buildRustPackage rec {
owner = "9ary"; owner = "9ary";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "00xxz7awk01981daabp8m3kwq127y733ynijiwqgs8xvn4nkg8h6"; hash = "sha256-BqI3LbG7I/0wjzJaP8bxRwTM56joLqVaQCmAydX5vQM=";
}; };
cargoSha256 = "0avs833vb6q1avjbfygm55s83iy942xgqsx6qdzksry44n35s418"; cargoHash = "sha256-KBBdhiXEZz1/w6Zr/LogyceBdCn1ebfkVgGbtcdAeis=";
postPatch = '' postPatch = ''
substituteInPlace src/main.rs \ substituteInPlace src/main.rs \
@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
description = "Simple Git prompt"; description = "Simple Git prompt";
homepage = "https://github.com/9ary/gitprompt-rs"; homepage = "https://github.com/9ary/gitprompt-rs";
license = with licenses; [ mpl20 ]; license = with licenses; [ mpl20 ];
maintainers = with maintainers; [ isabelroses ]; maintainers = with maintainers; [ isabelroses cafkafk ];
mainProgram = "gitprompt-rs"; mainProgram = "gitprompt-rs";
}; };
} }

View file

@ -9,13 +9,13 @@
buildLua rec { buildLua rec {
pname = "mpvacious"; pname = "mpvacious";
version = "0.31"; version = "0.33";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ajatt-Tools"; owner = "Ajatt-Tools";
repo = "mpvacious"; repo = "mpvacious";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-+lixe8FG5jzjEYu4t9bWRy4W/oThV9IdlzeA/ogMlWM="; sha256 = "sha256-VHMXW2AzgX88EDnNshxo9Gh8mpXzRoTAq+58HKasUdo=";
}; };
passthru.updateScript = gitUpdater { passthru.updateScript = gitUpdater {
rev-prefix = "v"; rev-prefix = "v";

View file

@ -18,10 +18,10 @@ stdenvNoCC.mkDerivation (finalAttrs: let
}; };
in { in {
pname = "affine"; pname = "affine";
version = "0.13.1"; version = "0.13.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip"; url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip";
hash = "sha256-2Du5g/I82iTr8Bwb+qkLzyfbk1OrOlXqx6FHImVoAoE="; hash = "sha256-w/5X7PFLHVILg1XCYkGefBQ4c+Ko+ME0Lu8iAtCaTFg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
copyDesktopItems copyDesktopItems

File diff suppressed because it is too large Load diff

View file

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "anchor"; pname = "anchor";
version = "0.29.0"; version = "0.30.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "coral-xyz"; owner = "coral-xyz";
repo = "anchor"; repo = "anchor";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-hOpdCVO3fXMqnAihjXXD9SjqK4AMhQQhZmISqJnDVCI="; hash = "sha256-eodmmiKLRRvAynqOeS9gMMjeTqVdZDx0TqHtZj2SJvs=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ast-grep"; pname = "ast-grep";
version = "0.21.0"; version = "0.21.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ast-grep"; owner = "ast-grep";
repo = "ast-grep"; repo = "ast-grep";
rev = version; rev = version;
hash = "sha256-GEfS5ujOYcHfMTxNqiArtookULgyJIR7oR8fULyILWY="; hash = "sha256-hR6DPkApHDlg91O040s+3FL2mEM3FH61pnyCBwwE6tw=";
}; };
cargoHash = "sha256-mTyvyyfpzaDmNrpT/nTfEhVKGtqowOUSF56ld6eqj3k="; cargoHash = "sha256-Iqq7F8PCrNhFGvrfbYQn3mdOwiokCmTKCaXjOHvD8V0=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-autoinherit"; pname = "cargo-autoinherit";
version = "0.1.4"; version = "0.1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mainmatter"; owner = "mainmatter";
repo = "cargo-autoinherit"; repo = "cargo-autoinherit";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-BuZDCd4SwSYg5eKV61L3RpPVmq5NZDAOc9zOz5QiSNI="; hash = "sha256-ai2BqBfZlCOA1DIlzZerH71sbUMi6C65FRv5VDU0DPU=";
}; };
cargoHash = "sha256-9hhrVkC1xB2E/vatkiM4PIJyXq+0GDoqlgXZXc8WehU="; cargoHash = "sha256-bPbwUqw2IFwZTi7qFm1BQgGYBAb6OG8QSU8xTdx/1zM=";
meta = with lib; { meta = with lib; {
description = "Automatically DRY up your Rust dependencies"; description = "Automatically DRY up your Rust dependencies";

View file

@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
unstableGitUpdater,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "chemacs2";
version = "0-unstable-2023-01-20";
src = fetchFromGitHub {
owner = "plexus";
repo = "chemacs2";
rev = "c2d700b784c793cc82131ef86323801b8d6e67bb";
hash = "sha256-/WtacZPr45lurS0hv+W8UGzsXY3RujkU5oGGGqjqG0Q=";
};
outputs = [ "out" "doc" ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -t $out/share/site-lisp/chemacs2/ -Dm644 init.el early-init.el chemacs.el
install -t $doc/share/doc/chemacs2/ -Dm644 README.org CHANGELOG.md
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://github.com/plexus/chemacs2";
description = "Emacs version switcher, improved";
longDescription = ''
Chemacs 2 is an Emacs profile switcher, it makes it easy to run multiple
Emacs configurations side by side.
Think of it as a bootloader for Emacs.
'';
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.all;
};
})

File diff suppressed because it is too large Load diff

View file

@ -19,12 +19,12 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cosmic-term"; pname = "cosmic-term";
version = "unstable-2024-02-28"; version = "unstable-2024-04-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pop-os"; owner = "pop-os";
repo = pname; repo = pname;
rev = "36477e06dc6d05bd01dc08b3f20e0a6e388d6c7e"; rev = "3e41d261a9d5d2284cd6ae85acde2562b8a5ccd6";
hash = "sha256-VkRVfV4sC+5+/8g1FOlBjJCeR/KGb5gP0SWy5bmFo+Y="; hash = "sha256-IVLwWG4WUGXK9jY/d0Vr8RX/Klj1mUe4Q7Huv0BkjDo=";
}; };
cargoLock = { cargoLock = {
@ -32,14 +32,15 @@ rustPlatform.buildRustPackage rec {
outputHashes = { outputHashes = {
"accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw="; "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA="; "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
"cosmic-config-0.1.0" = "sha256-Zyi95zcBAohM1WBropLzJczSIfNNNBK2odB4AmW4h5I="; "clipboard_macos-0.1.0" = "sha256-PEH+aCpjDCEIj8s39nIeWxb7qu3u9IfriGqf0pYObMk=";
"cosmic-files-0.1.0" = "sha256-64An0MPgnFgyVlWmtBGBs+IV2z+4vmEY2uRPetZM4/M="; "cosmic-config-0.1.0" = "sha256-x/xWMR5w2oEbghTSa8iCi24DA2s99+tcnga8K6jS6HQ=";
"cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug="; "cosmic-files-0.1.0" = "sha256-KzWlmeZP3F5Kavi9FFXo3o8nB/h79TtOhqWUyI1ZRB0=";
"cosmic-text-0.11.2" = "sha256-K9cZeClr1zz4LanJS0WPEpxAplQrXfCjFKrSn5n4rDA=";
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4="; "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg="; "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
"libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI="; "libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI=";
"smithay-clipboard-0.8.0" = "sha256-OZOGbdzkgRIeDFrAENXE7g62eQTs60Je6lYVr0WudlE=";
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg="; "softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
"systemicons-0.7.0" = "sha256-zzAI+6mnpQOh+3mX7/sJ+w4a7uX27RduQ99PNxLNF78=";
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI="; "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4="; "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
}; };
@ -47,7 +48,7 @@ rustPlatform.buildRustPackage rec {
# COSMIC applications now uses vergen for the About page # COSMIC applications now uses vergen for the About page
# Update the COMMIT_DATE to match when the commit was made # Update the COMMIT_DATE to match when the commit was made
env.VERGEN_GIT_COMMIT_DATE = "2024-02-28"; env.VERGEN_GIT_COMMIT_DATE = "2024-04-14";
env.VERGEN_GIT_SHA = src.rev; env.VERGEN_GIT_SHA = src.rev;
postPatch = '' postPatch = ''

View file

@ -24,7 +24,7 @@ buildGoModule rec {
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
ldflags = [ "-s" "-w" "-X cuelang.org/go/cmd/cue/cmd.version=${version}" ]; ldflags = [ "-s" "-w" ];
postInstall = '' postInstall = ''
installShellCompletion --cmd cue \ installShellCompletion --cmd cue \
@ -40,6 +40,7 @@ buildGoModule rec {
version = testers.testVersion { version = testers.testVersion {
package = cue; package = cue;
command = "cue version"; command = "cue version";
version = "v${version}";
}; };
}; };
}; };

View file

@ -6,26 +6,26 @@
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "daytona-bin"; pname = "daytona-bin";
version = "0.9.0"; version = "0.12.0";
src = src =
let let
urls = { urls = {
"x86_64-linux" = { "x86_64-linux" = {
url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-linux-amd64"; url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-linux-amd64";
hash = "sha256-vJVGFmaGP9oCCzdvhuAPsoTaxzGvdDKDupMYuepRUCA="; hash = "sha256-5nUWeIAKUSrbEAzo1SCSrebKvt2DKB/f2JZZ9c2vjxA=";
}; };
"x86_64-darwin" = { "x86_64-darwin" = {
url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-darwin-amd64"; url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-darwin-amd64";
hash = "sha256-R63AQVt5DudzJub+TYcJiHkBGVeOhjvgJZgnqvJb8t0="; hash = "sha256-JAc9EbuZnRCX2v1UXPBF8mlqz478DtrVEk6XEICW7CU=";
}; };
"aarch64-linux" = { "aarch64-linux" = {
url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-linux-arm64"; url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-linux-arm64";
hash = "sha256-98OEhJ1gakPTVO73M9WW0QuSDgR42gNjoioEkkNbf6w="; hash = "sha256-1yy3S4JRtabQBK9LzepL+CVaj+3HPuG6oJe4YdbEi6E=";
}; };
"aarch64-darwin" = { "aarch64-darwin" = {
url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-darwin-arm64"; url = "https://download.daytona.io/daytona/v${finalAttrs.version}/daytona-darwin-arm64";
hash = "sha256-YmLyioFueEfi/2Q+JwINDhkwo617/KUZrimz9CibdA8="; hash = "sha256-x5RVx5X2PD1Yu0g0umf2ywRymqa+1EFCzuXFEVSQImw=";
}; };
}; };
in in
@ -49,7 +49,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
homepage = "https://github.com/daytonaio/daytona"; homepage = "https://github.com/daytonaio/daytona";
license = lib.licenses.asl20; license = lib.licenses.asl20;
mainProgram = "daytona"; mainProgram = "daytona";
maintainers = with lib.maintainers; [ ]; maintainers = with lib.maintainers; [ osslate ];
platforms = lib.platforms.linux ++ lib.platforms.darwin; platforms = lib.platforms.linux ++ lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
}; };

View file

@ -1,22 +1,19 @@
{ lib, python3, fetchFromGitHub, gtk3, gobject-introspection, gtk-layer-shell, wrapGAppsHook3 }: { lib, python3, fetchFromGitHub, gtk3, gobject-introspection, gtk-layer-shell, wrapGAppsHook3 }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "discover-overlay"; pname = "discover-overlay";
version = "0.7.0"; version = "0.7.3";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "trigg"; owner = "trigg";
repo = "Discover"; repo = "Discover";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-//QW6N87Uhm2aH0RSuykHG3+EfzYSHOcSNLSn1y0rFw="; hash = "sha256-a9IPNy5i088rltQ9LYD+DgJ/1/wckQ2E5Bzg62t95yU=";
}; };
buildInputs = [ buildInputs = [ gtk3 gtk-layer-shell ];
gtk3
gtk-layer-shell
];
nativeBuildInputs = with python3.pkgs; [ nativeBuildInputs = [
gobject-introspection gobject-introspection
wrapGAppsHook3 wrapGAppsHook3
]; ];
@ -26,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" "--set DISPLAY ':0.0'" ]; makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" "--set DISPLAY ':0.0'" ];
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
pulsectl-asyncio
pycairo pycairo
pygobject3 pygobject3
websocket-client websocket-client

View file

@ -7,24 +7,30 @@
, librsvg , librsvg
, gtk-layer-shell , gtk-layer-shell
, stdenv , stdenv
, libdbusmenu-gtk3
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "eww"; pname = "eww";
version = "0.5.0"; version = "0.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "elkowar"; owner = "elkowar";
repo = "eww"; repo = "eww";
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-HBBz1NDtj2TnDK5ghDLRrAOwHXDZlzclvVscYnmKGck="; hash = "sha256-rzDnplFJNiHe+XbxbhZMEhPJMiJsmdVqtZxlxhzzpTk=";
}; };
cargoHash = "sha256-IirFE714NZmppLjwbWk6fxcmRXCUFzB4oxOxBvmYu5U="; cargoHash = "sha256-n9nd5E/VO+0BgkhrfQpeihlIkoVQRf6CMiPCK5opvvw=";
nativeBuildInputs = [ pkg-config wrapGAppsHook3 ]; nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
buildInputs = [ gtk3 librsvg gtk-layer-shell ]; buildInputs = [
gtk3
gtk-layer-shell
libdbusmenu-gtk3
librsvg
];
cargoBuildFlags = [ "--bin" "eww" ]; cargoBuildFlags = [ "--bin" "eww" ];
@ -33,11 +39,11 @@ rustPlatform.buildRustPackage rec {
# requires unstable rust features # requires unstable rust features
RUSTC_BOOTSTRAP = 1; RUSTC_BOOTSTRAP = 1;
meta = with lib; { meta = {
description = "ElKowars wacky widgets"; description = "ElKowars wacky widgets";
homepage = "https://github.com/elkowar/eww"; homepage = "https://github.com/elkowar/eww";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ figsoda lom coffeeispower ]; maintainers = with lib.maintainers; [ coffeeispower eclairevoyant figsoda lom w-lfchen ];
mainProgram = "eww"; mainProgram = "eww";
broken = stdenv.isDarwin; broken = stdenv.isDarwin;
}; };

View file

@ -22,13 +22,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "feather"; pname = "feather";
version = "2.6.5"; version = "2.6.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "feather-wallet"; owner = "feather-wallet";
repo = "feather"; repo = "feather";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-HvjcjiVXTK9mZOvh91iCMf/cZ9BMlPxXjgFKYWolJ74="; hash = "sha256-zXNpNhBOtDvuuxzZ8o2XDLqNSi/XK4I6eYAfWuiCgRI=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -0,0 +1,30 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "gophish";
version = "0.12.1";
src = fetchFromGitHub {
owner = "gophish";
repo = "gophish";
rev = "v${version}";
hash = "sha256-6OUhRB2d8k7h9tI3IPKy9f1KoEx1mvGbxQZF1sCngqs=";
};
vendorHash = "sha256-2seQCVALU35l+aAsfag0W19FWlSTlEsSmxTmKKi3A+0=";
meta = with lib; {
description = "Open-Source Phishing Toolkit";
longDescription = ''
Open-source phishing toolkit designed for businesses and penetration testers.
Provides the ability to quickly and easily setup and execute phishing engagements and security awareness training.
'';
homepage = "https://github.com/gophish/gophish";
license = licenses.mit;
maintainers = with maintainers; [ mib ];
mainProgram = "gophish";
};
}

View file

@ -3,25 +3,24 @@
, fetchurl , fetchurl
, appimageTools , appimageTools
, undmg , undmg
, nix-update-script
}: }:
let let
pname = "hoppscotch"; pname = "hoppscotch";
version = "23.12.5"; version = "24.3.1-2";
src = fetchurl { src = fetchurl {
aarch64-darwin = { aarch64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_aarch64.dmg"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-WUJW38vQ7o5KEmCxhVnJ03/f5tPOTYcczrEcmt6NSCY="; hash = "sha256-F4vQwdNObIE8Fx75TfwI0QxbY5n2syT4sEIhgAu2Z5c=";
}; };
x86_64-darwin = { x86_64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_x64.dmg"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg";
hash = "sha256-bQFD+9IoelinWYUndzbVvPNaRde6ACPvw9ifX9mYdno="; hash = "sha256-itC6PdNdzcw5Lv/hQkT0AsTGQ8kmTwT6cipyaAynph8=";
}; };
x86_64-linux = { x86_64-linux = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_linux_x64.AppImage"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage";
hash = "sha256-MYQ7SRm+CUPIXROZxejbbZ0/wH+U5DQO4YGbE/HQAj8="; hash = "sha256-vj9UYizRmyIK9mLNSW/qFc/QmnWNhniqJf3gG66WPb0=";
}; };
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");

View file

@ -12,13 +12,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "hyprcursor"; pname = "hyprcursor";
version = "0.1.7"; version = "0.1.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hyprwm"; owner = "hyprwm";
repo = "hyprcursor"; repo = "hyprcursor";
rev = "refs/tags/v${finalAttrs.version}"; rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-T0lV+xA07RzroRLwZsGbF9bWZNHInXS+oB0RJ6YdvWg="; hash = "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=";
}; };
patches = [ patches = [

View file

@ -1,6 +1,5 @@
{ cmake { cmake
, fetchFromGitHub , fetchFromGitHub
, glfw
, jazz2-content , jazz2-content
, lib , lib
, libopenmpt , libopenmpt
@ -10,10 +9,8 @@
, stdenv , stdenv
, testers , testers
, zlib , zlib
, graphicsLibrary ? "GLFW"
}: }:
assert lib.assertOneOf "graphicsLibrary" graphicsLibrary [ "SDL2" "GLFW" ];
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "jazz2"; pname = "jazz2";
version = "2.6.0"; version = "2.6.0";
@ -28,16 +25,12 @@ stdenv.mkDerivation (finalAttrs: {
patches = [ ./nocontent.patch ]; patches = [ ./nocontent.patch ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ libopenmpt libvorbis openal zlib ] buildInputs = [ libopenmpt libvorbis openal SDL2 zlib ];
++ lib.optionals (graphicsLibrary == "GLFW") [ glfw ]
++ lib.optionals (graphicsLibrary == "SDL2") [ SDL2 ];
cmakeFlags = [ cmakeFlags = [
"-DLIBOPENMPT_INCLUDE_DIR=${lib.getDev libopenmpt}/include/libopenmpt" "-DLIBOPENMPT_INCLUDE_DIR=${lib.getDev libopenmpt}/include/libopenmpt"
"-DNCINE_DOWNLOAD_DEPENDENCIES=OFF" "-DNCINE_DOWNLOAD_DEPENDENCIES=OFF"
"-DNCINE_OVERRIDE_CONTENT_PATH=${jazz2-content}" "-DNCINE_OVERRIDE_CONTENT_PATH=${jazz2-content}"
] ++ lib.optionals (graphicsLibrary == "GLFW") [
"-DGLFW_INCLUDE_DIR=${glfw}/include/GLFW"
]; ];
passthru.tests.version = testers.testVersion { passthru.tests.version = testers.testVersion {

View file

@ -0,0 +1,24 @@
{ stdenv, lib, fetchFromSourcehut, meson, ninja, pkg-config, wayland }:
stdenv.mkDerivation rec {
pname = "libscfg";
version = "0.1.1";
src = fetchFromSourcehut {
owner = "~emersion";
repo = "libscfg";
rev = "v${version}";
sha256 = "sha256-aTcvs7QuDOx17U/yP37LhvIGxmm2WR/6qFYRtfjRN6w=";
};
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ wayland ];
meta = with lib; {
homepage = "https://sr.ht/~emersion/libscfg";
description = "A simple configuration file format";
license = licenses.mit;
maintainers = with maintainers; [ michaeladler ];
platforms = platforms.linux;
};
}

View file

@ -78,8 +78,15 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [ makeFlags = [
"PREFIX=${placeholder "out"}" "PREFIX=${placeholder "out"}"
"C_COMPILER=$(CC)"
"CPLUSPLUS_COMPILER=$(CXX)"
"LIBRARY_LINK=$(AR) cr "
"LINK=$(CXX) -o "
]; ];
# required for whitespaces in makeFlags
__structuredAttrs = true;
enableParallelBuilding = true; enableParallelBuilding = true;
passthru.tests = { passthru.tests = {

View file

@ -6,11 +6,11 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "lunar-client"; pname = "lunar-client";
version = "3.2.4"; version = "3.2.5";
src = fetchurl { src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage"; url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
hash = "sha512-KaQvjtSzQzebzPrcFBntCqP6fRbenH9tQo4LYO1TwDoJ7pAeZ8D4kSMRaRfFV0CPZ/pDnKECYdKXAuaujOpw8g=="; hash = "sha512-flve07l13w4aRPPMhbf1Nbaxy6i1ljxx2J/9vg4WLQK4k09PVJKGn6b8nxe5d90LCYMhwEHfEvrHFB/tNFKJ9w==";
}; };
extraInstallCommands = extraInstallCommands =

View file

@ -0,0 +1,46 @@
{ lib
, stdenv
, fetchFromGitHub
, opencbm
, cc65
}:
stdenv.mkDerivation {
pname = "nibtools";
version = "0-unstable-2024-02-22";
src = fetchFromGitHub {
owner = "OpenCBM";
repo = "nibtools";
rev = "1d69f64eec55031c346a2ce115227479f9579a8a";
hash = "sha256-+hnkj0uevURkRboTH8WbSt82pZTdWL4ii2PKr6NO0Cg=";
};
NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
nativeBuildInputs = [
cc65
];
buildInputs = [
opencbm
];
preBuild = "mkdir build";
makeFlags = [ "-f" "GNU/Makefile" "linux" ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv nibread nibwrite nibscan nibconv nibrepair nibsrqtest $out/bin/
runHook postInstall
'';
meta = with lib; {
description = "disk transfer utility for imaging and converting commodore 64 disk images";
homepage = "https://github.com/OpenCBM/nibtools/";
license = licenses.gpl2;
maintainers = with maintainers; [ matthewcroughan ];
platforms = platforms.all;
};
}

View file

@ -13,15 +13,15 @@
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bluskript"; owner = "bluskript";
repo = "nix-inspect"; repo = "nix-inspect";
rev = "74007c580b8282bd336130ddf354e71502b421a6"; rev = "86f636b1e01579b3a63b2c778c21a818b00c3d1e";
hash = "sha256-JichXRSfTLfy+7fhbTvA89rQLkqsY2eHgEAeAHWbA9s="; hash = "sha256-G5Md4ghux4LBRkPE8vzLTUWxzlQ7s1xKxZ8i3ICWZU8=";
}; };
workerPackage = stdenv.mkDerivation { workerPackage = stdenv.mkDerivation {
inherit src; inherit src;
pname = "nix-inspect-worker"; pname = "nix-inspect-worker";
version = "0.1.1"; version = "0.1.2";
sourceRoot = "source/worker"; sourceRoot = "source/worker";
nativeBuildInputs = [meson ninja pkg-config]; nativeBuildInputs = [meson ninja pkg-config];
@ -38,9 +38,9 @@ in
rustPlatform.buildRustPackage { rustPlatform.buildRustPackage {
inherit src; inherit src;
pname = "nix-inspect"; pname = "nix-inspect";
version = "0.1.1"; version = "0.1.2";
cargoHash = "sha256-l+R7BLgJvK9mQ89GVAdTyQX81VMoV11h5KFlMUqAH30="; cargoHash = "sha256-/0CrHqOL4B0Rx0ZbUpW54FiisfpW6UU4uk6wctfCX5c=";
buildInputs = [workerPackage]; buildInputs = [workerPackage];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "orchard"; pname = "orchard";
version = "0.17.0"; version = "0.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cirruslabs"; owner = "cirruslabs";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-mOlAMlvWEdkPxvhqrt7PHJjmtUBRsFwsSchHRQtaACc="; hash = "sha256-rzfGECRa3IPt9LRX8Av7NabaIzaKfxzkOR85q9zl9sk=";
# populate values that require us to use git. By doing this in postFetch we # populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src. # can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true; leaveDotGit = true;
@ -19,7 +19,7 @@ buildGoModule rec {
''; '';
}; };
vendorHash = "sha256-qqq1CKZm95pJ3u7/oHKhRL3ZIGN9LCRcnESE2w/DJrQ="; vendorHash = "sha256-dVWCxEmqzJw9oN6mCwFVn81Mhq4XfBEM3iXHQn4NXko=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -10,16 +10,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "photonvision"; pname = "photonvision";
version = "2024.2.3"; version = "2024.3.1";
src = { src = {
"x86_64-linux" = fetchurl { "x86_64-linux" = fetchurl {
url = "https://github.com/PhotonVision/photonvision/releases/download/v${version}/photonvision-v${version}-linuxx64.jar"; url = "https://github.com/PhotonVision/photonvision/releases/download/v${version}/photonvision-v${version}-linuxx64.jar";
hash = "sha256-45ae9sElAmN6++F9OGAvY/nUl/9UxvHtFxhetKVKfDc="; hash = "sha256-t9drkGFA3IurZqWAkzEaONVJkp5JHMEFBBW50r+SD68=";
}; };
"aarch64-linux" = fetchurl { "aarch64-linux" = fetchurl {
url = "https://github.com/PhotonVision/photonvision/releases/download/v${version}/photonvision-v${version}-linuxarm64.jar"; url = "https://github.com/PhotonVision/photonvision/releases/download/v${version}/photonvision-v${version}-linuxarm64.jar";
hash = "sha256-i/osKO+RAg2nFUPjBdkn3q0Id+uCSTiucfKFVVlEqgs="; hash = "sha256-ninCVxse0x6lBA2NL3kwMeuHAeNzSa9rdP2dnmMNFgc=";
}; };
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "pls"; pname = "pls";
version = "0.0.1-beta.4"; version = "0.0.1-beta.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dhruvkb"; owner = "pls-rs";
repo = "pls"; repo = "pls";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-YndQx7FImtbAfcbOpIGOdHQA1V7mbQiYBbpik2I+FCE="; hash = "sha256-T+OUvupPXg9dEV9GJozEyDLKqBkeH6UFYuSxX2BTZkM=";
}; };
cargoHash = "sha256-HzkN856GHhY2sQ0jmQCCQva/yB4zzh+ccrQvibLFhxQ="; cargoHash = "sha256-bo6tySTgGYO+TedBLGwvk+HZmO0KvJEal/eHGSZlp7c=";
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.Security

View file

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "retool"; pname = "retool";
version = "2.3.6"; version = "2.3.7";
pyproject = true; pyproject = true;
disabled = python3.pkgs.pythonOlder "3.10"; disabled = python3.pkgs.pythonOlder "3.10";
@ -15,8 +15,8 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "unexpectedpanda"; owner = "unexpectedpanda";
repo = "retool"; repo = "retool";
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-6RE2sbL8e9D+czFebLagRiw2wmU78TbajIs9VdFgF0Q="; hash = "sha256-WEx/S6+8lJXu+4yKazzJ55HTGKr38GMRL242FV7KdLQ=";
}; };
nativeBuildInputs = with python3.pkgs; [ nativeBuildInputs = with python3.pkgs; [

View file

@ -0,0 +1,68 @@
{ stdenv
, lib
, config
, fetchFromGitHub
, testers
, cmake
, pkg-config
, alsaSupport ? stdenv.hostPlatform.isLinux
, alsa-lib
, pulseaudioSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux
, libpulseaudio
, jackSupport ? true
, libjack2
, coreaudioSupport ? stdenv.hostPlatform.isDarwin
, darwin
, validatePkgConfig
}:
stdenv.mkDerivation (finalAttrs: {
pname = "rtaudio";
version = "6.0.1";
src = fetchFromGitHub {
owner = "thestk";
repo = "rtaudio";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-Acsxbnl+V+Y4mKC1gD11n0m03E96HMK+oEY/YV7rlIY=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
validatePkgConfig
];
buildInputs = lib.optionals alsaSupport [
alsa-lib
] ++ lib.optionals pulseaudioSupport [
libpulseaudio
] ++ lib.optionals jackSupport [
libjack2
] ++ lib.optionals coreaudioSupport [
darwin.apple_sdk.frameworks.CoreAudio
];
cmakeFlags = [
(lib.cmakeBool "RTAUDIO_API_ALSA" alsaSupport)
(lib.cmakeBool "RTAUDIO_API_PULSE" pulseaudioSupport)
(lib.cmakeBool "RTAUDIO_API_JACK" jackSupport)
(lib.cmakeBool "RTAUDIO_API_CORE" coreaudioSupport)
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = {
description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
homepage = "https://www.music.mcgill.ca/~gary/rtaudio/";
changelog = "https://github.com/thestk/rtaudio/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ magnetophon ];
platforms = lib.platforms.unix;
pkgConfigModules = [
"rtaudio"
];
};
})

View file

@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
wlroots,
scdoc,
pkg-config,
wayland,
libdrm,
libxkbcommon,
pixman,
wayland-protocols,
libGL,
mesa,
validatePkgConfig,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scenefx";
version = "0.1";
src = fetchFromGitHub {
owner = "wlrfx";
repo = "scenefx";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-vBmunqXwGbMNiGRd372TdMU4siWhIVYn5RVYne9C7uQ=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
validatePkgConfig
];
buildInputs = [
libdrm
libGL
libxkbcommon
mesa
pixman
wayland
wayland-protocols
wlroots
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = {
description = "A drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects";
homepage = "https://github.com/wlrfx/scenefx";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ eclairevoyant ];
mainProgram = "scenefx";
pkgConfigModules = [ "scenefx" ];
platforms = lib.platforms.all;
};
})

View file

@ -9,20 +9,20 @@
let let
pname = "spacedrive"; pname = "spacedrive";
version = "0.2.4"; version = "0.2.13";
src = fetchurl { src = fetchurl {
aarch64-darwin = { aarch64-darwin = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-aarch64.dmg"; url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-aarch64.dmg";
hash = "sha256-rVRmlhsvvFFRr3ghX0cvfcJO3WlbaNNBo+r4I556YEg="; hash = "sha256-Ph9+Jve1qP1KBbKRN1I2lylHRy/SWRJAx7nOF9l3A/E=";
}; };
x86_64-darwin = { x86_64-darwin = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-x86_64.dmg"; url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-x86_64.dmg";
hash = "sha256-etRAcGC5S0GwVrBWICfB5ef83xcp/35K0/QndKmPUSE="; hash = "sha256-+FHxJre+ouOxKvhDG+uDKDp7ZSx8NWRxac4m4yFqgrE=";
}; };
x86_64-linux = { x86_64-linux = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.AppImage"; url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.AppImage";
hash = "sha256-D8etNXrDVLHa1wg+7Xu9yXUvhlAXxMVBM3GpOerFsu0="; hash = "sha256-AyR1FshOjFatkZLgT2K46IKJgeFDu4e4//CvcuNyt0E=";
}; };
}.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");

View file

@ -5,13 +5,13 @@
buildGoModule { buildGoModule {
pname = "spirit"; pname = "spirit";
version = "0-unstable-2024-03-20"; version = "0-unstable-2024-04-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cashapp"; owner = "cashapp";
repo = "spirit"; repo = "spirit";
rev = "10e4bba0a89ef3b372046dc367c2b2d12e9d0c0b"; rev = "886ee21e7338faef6612495b27d409713a202082";
hash = "sha256-tw+gHSxIHKEsHaVuknylk4zWsTRKGVNci9WimDC9y1A="; hash = "sha256-xXObprJCo9evArCX5ezqrD+lagiHMO4SwycY+pTkHPg=";
}; };
vendorHash = "sha256-r6iQs5kgOniHCN8KteQ17rPhQ/73Exuqlu6qWgKEIzs="; vendorHash = "sha256-r6iQs5kgOniHCN8KteQ17rPhQ/73Exuqlu6qWgKEIzs=";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, substituteAll, swaybg { lib, stdenv, fetchFromGitHub, substituteAll, swaybg
, meson, ninja, pkg-config, wayland-scanner, scdoc , meson, ninja, pkg-config, wayland-scanner, scdoc
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev , libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
, pango, cairo, libinput, gdk-pixbuf, librsvg , pango, cairo, libinput, gdk-pixbuf, librsvg
@ -60,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
mesonFlags = let mesonFlags = let
inherit (lib.strings) mesonEnable mesonOption;
# The "sd-bus-provider" meson option does not include a "none" option, # The "sd-bus-provider" meson option does not include a "none" option,
# but it is silently ignored iff "-Dtray=disabled". We use "basu" # but it is silently ignored iff "-Dtray=disabled". We use "basu"
# (which is not in nixpkgs) instead of "none" to alert us if this # (which is not in nixpkgs) instead of "none" to alert us if this
@ -67,15 +69,15 @@ stdenv.mkDerivation (finalAttrs: {
# assert trayEnabled -> systemdSupport && dbusSupport; # assert trayEnabled -> systemdSupport && dbusSupport;
sd-bus-provider = if systemdSupport then "libsystemd" else "basu"; sd-bus-provider = if systemdSupport then "libsystemd" else "basu";
in in [
[ "-Dsd-bus-provider=${sd-bus-provider}" ] (mesonOption "sd-bus-provider" sd-bus-provider)
++ lib.optional (!finalAttrs.enableXWayland) "-Dxwayland=disabled" (mesonEnable "xwayland" finalAttrs.enableXWayland)
++ lib.optional (!finalAttrs.trayEnabled) "-Dtray=disabled" (mesonEnable "tray" finalAttrs.trayEnabled)
; ];
passthru.tests.basic = nixosTests.sway; passthru.tests.basic = nixosTests.sway;
meta = with lib; { meta = {
description = "An i3-compatible tiling Wayland compositor"; description = "An i3-compatible tiling Wayland compositor";
longDescription = '' longDescription = ''
Sway is a tiling Wayland compositor and a drop-in replacement for the i3 Sway is a tiling Wayland compositor and a drop-in replacement for the i3
@ -88,9 +90,9 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
homepage = "https://swaywm.org"; homepage = "https://swaywm.org";
changelog = "https://github.com/swaywm/sway/releases/tag/${finalAttrs.version}"; changelog = "https://github.com/swaywm/sway/releases/tag/${finalAttrs.version}";
license = licenses.mit; license = lib.licenses.mit;
platforms = platforms.linux; platforms = lib.platforms.linux;
maintainers = with maintainers; [ primeos synthetica ]; maintainers = with lib.maintainers; [ primeos synthetica ];
mainProgram = "sway"; mainProgram = "sway";
}; };
}) })

View file

@ -13,9 +13,12 @@
assert extraSessionCommands != "" -> withBaseWrapper; assert extraSessionCommands != "" -> withBaseWrapper;
with lib;
let let
inherit (builtins) replaceStrings;
inherit (lib.lists) optional optionals;
inherit (lib.meta) getExe;
inherit (lib.strings) concatMapStrings optionalString;
sway = sway-unwrapped.overrideAttrs (oa: { inherit isNixOS enableXWayland; }); sway = sway-unwrapped.overrideAttrs (oa: { inherit isNixOS enableXWayland; });
baseWrapper = writeShellScriptBin sway.meta.mainProgram '' baseWrapper = writeShellScriptBin sway.meta.mainProgram ''
set -o errexit set -o errexit
@ -26,13 +29,13 @@ let
fi fi
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS export DBUS_SESSION_BUS_ADDRESS
exec ${lib.getExe sway} "$@" exec ${getExe sway} "$@"
else else
exec ${lib.optionalString dbusSupport "${dbus}/bin/dbus-run-session"} ${lib.getExe sway} "$@" exec ${optionalString dbusSupport "${dbus}/bin/dbus-run-session"} ${getExe sway} "$@"
fi fi
''; '';
in symlinkJoin rec { in symlinkJoin rec {
pname = lib.replaceStrings ["-unwrapped"] [""] sway.pname; pname = replaceStrings ["-unwrapped"] [""] sway.pname;
inherit (sway) version; inherit (sway) version;
name = "${pname}-${version}"; name = "${pname}-${version}";

View file

@ -0,0 +1,11 @@
--- a/sway/config.c
+++ b/sway/config.c
@@ -276,7 +276,7 @@
if (!(config->active_bar_modifiers = create_list())) goto cleanup;
- if (!(config->swaybg_command = strdup("swaybg"))) goto cleanup;
+ if (!(config->swaybg_command = strdup("@swaybg@/bin/swaybg"))) goto cleanup;
if (!(config->config_chain = create_list())) goto cleanup;
config->current_config_path = NULL;

View file

@ -0,0 +1,48 @@
From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001
From: Patrick Hilhorst <git@hilhorst.be>
Date: Wed, 31 Mar 2021 21:14:13 +0200
Subject: [PATCH] Load configs from /etc but fallback to /nix/store
This change will load all configuration files from /etc, to make it easy
to override them, but fallback to /nix/store/.../etc/sway/config to make
Sway work out-of-the-box with the default configuration on non NixOS
systems.
Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst
Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
---
meson.build | 3 ++-
sway/config.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index b7a29660..8ae8ceb3 100644
--- a/meson.build
+++ b/meson.build
@@ -164,7 +164,8 @@ if scdoc.found()
endforeach
endif
-add_project_arguments('-DSYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
+add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
+add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
version = '"@0@"'.format(meson.project_version())
git = find_program('git', native: true, required: false)
diff --git a/sway/config.c b/sway/config.c
index 76b9ec08..fb5b51aa 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -374,7 +374,8 @@ static char *get_config_path(void) {
{ .prefix = home, .config_folder = ".i3"},
{ .prefix = config_home, .config_folder = "i3"},
{ .prefix = SYSCONFDIR, .config_folder = "sway"},
- { .prefix = SYSCONFDIR, .config_folder = "i3"}
+ { .prefix = SYSCONFDIR, .config_folder = "i3"},
+ { .prefix = NIX_SYSCONFDIR, .config_folder = "sway"},
};
size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]);
--
2.30.1

View file

@ -1,10 +1,33 @@
{ {
lib, lib,
fetchFromGitHub, fetchFromGitHub,
sway-unwrapped,
stdenv, stdenv,
systemd, systemd,
wlroots_0_16, meson,
substituteAll,
swaybg,
ninja,
pkg-config,
gdk-pixbuf,
librsvg,
wayland-protocols,
libdrm,
libinput,
cairo,
pango,
wayland,
libGL,
libxkbcommon,
pcre2,
json_c,
libevdev,
scdoc,
scenefx,
wayland-scanner,
xcbutilwm,
wlroots,
testers,
nixosTests,
# Used by the NixOS module: # Used by the NixOS module:
isNixOS ? false, isNixOS ? false,
enableXWayland ? true, enableXWayland ? true,
@ -12,32 +35,112 @@
trayEnabled ? systemdSupport, trayEnabled ? systemdSupport,
}: }:
(sway-unwrapped.override { stdenv.mkDerivation (finalAttrs: {
inherit inherit
isNixOS
enableXWayland enableXWayland
isNixOS
systemdSupport systemdSupport
trayEnabled trayEnabled
; ;
wlroots = wlroots_0_16;
}).overrideAttrs (oldAttrs: rec {
pname = "swayfx-unwrapped"; pname = "swayfx-unwrapped";
version = "0.3.2"; version = "0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "WillPower3309"; owner = "WillPower3309";
repo = "swayfx"; repo = "swayfx";
rev = version; rev = "refs/tags/${finalAttrs.version}";
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0="; hash = "sha256-VT+JjQPqCIdtaLeSnRiZ3rES0KgDJR7j5Byxr+d6oRg=";
}; };
meta = with lib; { patches =
[
./load-configuration-from-etc.patch
(substituteAll {
src = ./fix-paths.patch;
inherit swaybg;
})
]
++ lib.optionals (!finalAttrs.isNixOS) [
# References to /nix/store/... will get GC'ed which causes problems when
# copying the default configuration:
./sway-config-no-nix-store-references.patch
]
++ lib.optionals finalAttrs.isNixOS [
# Use /run/current-system/sw/share and /etc instead of /nix/store
# references:
./sway-config-nixos-paths.patch
];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
wayland-scanner
];
buildInputs = [
cairo
gdk-pixbuf
json_c
libdrm
libevdev
libGL
libinput
librsvg
libxkbcommon
pango
pcre2
scenefx
wayland
wayland-protocols
(wlroots.override { inherit (finalAttrs) enableXWayland; })
] ++ lib.optionals finalAttrs.enableXWayland [ xcbutilwm ];
mesonFlags =
let
inherit (lib.strings) mesonEnable mesonOption;
# The "sd-bus-provider" meson option does not include a "none" option,
# but it is silently ignored iff "-Dtray=disabled". We use "basu"
# (which is not in nixpkgs) instead of "none" to alert us if this
# changes: https://github.com/swaywm/sway/issues/6843#issuecomment-1047288761
# assert trayEnabled -> systemdSupport && dbusSupport;
sd-bus-provider = if systemdSupport then "libsystemd" else "basu";
in
[
(mesonOption "sd-bus-provider" sd-bus-provider)
(mesonEnable "xwayland" finalAttrs.enableXWayland)
(mesonEnable "tray" finalAttrs.trayEnabled)
];
passthru = {
tests = {
basic = nixosTests.swayfx;
version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "sway --version";
version = "swayfx version ${finalAttrs.version}";
};
};
};
meta = {
description = "Sway, but with eye candy!"; description = "Sway, but with eye candy!";
homepage = "https://github.com/WillPower3309/swayfx"; homepage = "https://github.com/WillPower3309/swayfx";
license = licenses.mit; changelog = "https://github.com/WillPower3309/swayfx/releases/tag/${finalAttrs.version}";
maintainers = with maintainers; [ eclairevoyant ricarch97 ]; license = lib.licenses.mit;
platforms = platforms.linux; maintainers = with lib.maintainers; [
eclairevoyant
ricarch97
];
platforms = lib.platforms.linux;
mainProgram = "sway"; mainProgram = "sway";
longDescription = '' longDescription = ''

View file

@ -0,0 +1,21 @@
diff --git a/config.in b/config.in
index 08703bef..f3872730 100644
--- a/config.in
+++ b/config.in
@@ -22,8 +22,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec --
### Output configuration
#
-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
+output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
#
# Example configuration:
#
@@ -214,4 +214,4 @@ bar {
}
}
-include @sysconfdir@/sway/config.d/*
+include /etc/sway/config.d/*

View file

@ -0,0 +1,21 @@
diff --git a/config.in b/config.in
--- a/config.in
+++ b/config.in
@@ -21,8 +21,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec
### Output configuration
#
-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+# Default wallpaper
+#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill
#
# Example configuration:
#
@@ -213,5 +213,3 @@ bar {
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
-
-include @sysconfdir@/sway/config.d/*

View file

@ -4,16 +4,16 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "tdl"; pname = "tdl";
version = "0.16.2"; version = "0.17.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "iyear"; owner = "iyear";
repo = "tdl"; repo = "tdl";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-YbyTUmYXcltmvJVatS1TLkqZli7sba4ARi9bRkcd07M="; hash = "sha256-bIDgxCv9jSN3OxS0FydFwfJYr8BUQ+8U/0s2BkM4M70=";
}; };
vendorHash = "sha256-WFhwmV4zlYDQA2Xow51m/AQ9GwUwr26rW3WMldduLl8="; vendorHash = "sha256-uCQ5HixoChppLO9kJvMWVENhHDnQsEe/qiJnbwUjE70=";
ldflags = [ ldflags = [
"-s" "-s"

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "terraform-plugin-docs"; pname = "terraform-plugin-docs";
version = "0.19.1"; version = "0.19.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hashicorp"; owner = "hashicorp";
repo = "terraform-plugin-docs"; repo = "terraform-plugin-docs";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-EONy9eSxaeih5Zi11IHljyvW7k0BwskqM08qcSVp2xE="; sha256 = "sha256-1ZJPy/kRYKcwr/k/u8ux5Eo1LIkrNpVyXrd9ff+Na6I=";
}; };
vendorHash = "sha256-q22fk+rkK+efwzQliKeUcSwVjdB7HT2QGt9+DiPI9ik="; vendorHash = "sha256-dBDvh3aIHu8iGwFt+29SdCl1gICwO7LnxQ7Wux+2tOk=";
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tlrc"; pname = "tlrc";
version = "1.9.1"; version = "1.9.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tldr-pages"; owner = "tldr-pages";
repo = "tlrc"; repo = "tlrc";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-RzGw4rvak055V48bkeuzKAH6F/wlFMLya8Ny3mgU+H4="; hash = "sha256-JQx4vuXbsLrPAbmPlwPiPXJIpRufUzQN+R+Wqj4H8n4=";
}; };
cargoHash = "sha256-BbBt6oCO9y++EWx9/CXISGfB/FEcEPKYeXNXcejevrg="; cargoHash = "sha256-5caZTdpEog8xdCn+LOfW5UdbuWZmO8iggSstxvdjwb0=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "trickest-cli";
version = "1.7.5";
src = fetchFromGitHub {
owner = "trickest";
repo = "trickest-cli";
rev = "refs/tags/v${version}";
hash = "sha256-erPcb+cHCAmhPGwfu+g0yyAFx252+tpIOFQiUBuPUcs=";
};
vendorHash = "sha256-gk8YMMvTHBL7yoXU9n0jhtUS472fqLW5m+mSl4Lio6c=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "CLI tool to execute Trickest workflows";
homepage = "https://github.com/trickest/trickest-cli";
changelog = "https://github.com/trickest/trickest-cli/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "trickest";
};
}

View file

@ -17,14 +17,14 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-Os27uqH3MA3v9+8WzfL5KIEUewAzf8JUyRtsWSzw81o="; hash = "sha256-Os27uqH3MA3v9+8WzfL5KIEUewAzf8JUyRtsWSzw81o=";
}; };
postPatch = '' pythonRelaxDeps = [
substituteInPlace pyproject.toml \ "m3u8"
--replace-fail 'm3u8>=1.0.0,<4.0.0' 'm3u8>=1.0.0' ];
'';
nativeBuildInputs = [ nativeBuildInputs = [
python3Packages.setuptools python3Packages.setuptools
python3Packages.setuptools-scm python3Packages.setuptools-scm
python3Packages.pythonRelaxDepsHook
installShellFiles installShellFiles
scdoc scdoc
]; ];
@ -46,6 +46,16 @@ python3Packages.buildPythonApplication rec {
pythonImportsCheck = [ pythonImportsCheck = [
"twitchdl" "twitchdl"
"twitchdl.cli"
"twitchdl.download"
"twitchdl.entities"
"twitchdl.http"
"twitchdl.output"
"twitchdl.playlists"
"twitchdl.progress"
"twitchdl.twitch"
"twitchdl.utils"
"twitchdl.commands"
]; ];
postInstall = '' postInstall = ''
@ -58,7 +68,7 @@ python3Packages.buildPythonApplication rec {
homepage = "https://github.com/ihabunek/twitch-dl"; homepage = "https://github.com/ihabunek/twitch-dl";
changelog = "https://github.com/ihabunek/twitch-dl/blob/${src.rev}/CHANGELOG.md"; changelog = "https://github.com/ihabunek/twitch-dl/blob/${src.rev}/CHANGELOG.md";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ pbsds ];
mainProgram = "twitch-dl"; mainProgram = "twitch-dl";
}; };
} }

View file

@ -1,17 +1,21 @@
{ lib {
, stdenv lib,
, rustPlatform stdenv,
, fetchFromGitHub rustPlatform,
, pkg-config fetchFromGitHub,
, audioSupport ? true pkg-config,
, darwin audioSupport ? true,
, alsa-lib darwin,
alsa-lib,
# passthru.tests.run # passthru.tests.run
, runCommand runCommand,
, uiua uiua,
}: }:
let
inherit (darwin.apple_sdk.frameworks) AppKit AudioUnit CoreServices;
in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "uiua"; pname = "uiua";
version = "0.10.3"; version = "0.10.3";
@ -25,19 +29,17 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-R97KO3MYmtO9C1Hi9kU+1FDdbOCVQk+gwVXTTvbeok4="; cargoHash = "sha256-R97KO3MYmtO9C1Hi9kU+1FDdbOCVQk+gwVXTTvbeok4=";
nativeBuildInputs = lib.optionals stdenv.isDarwin [ nativeBuildInputs =
rustPlatform.bindgenHook lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ]
] ++ lib.optionals audioSupport [ ++ lib.optionals audioSupport [ pkg-config ];
pkg-config
];
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs =
darwin.apple_sdk.frameworks.CoreServices lib.optionals stdenv.isDarwin [
] ++ lib.optionals (audioSupport && stdenv.isDarwin) [ AppKit
darwin.apple_sdk.frameworks.AudioUnit CoreServices
] ++ lib.optionals (audioSupport && stdenv.isLinux) [ ]
alsa-lib ++ lib.optionals (audioSupport && stdenv.isDarwin) [ AudioUnit ]
]; ++ lib.optionals (audioSupport && stdenv.isLinux) [ alsa-lib ];
buildFeatures = lib.optional audioSupport "audio"; buildFeatures = lib.optional audioSupport "audio";
@ -59,6 +61,10 @@ rustPlatform.buildRustPackage rec {
homepage = "https://www.uiua.org/"; homepage = "https://www.uiua.org/";
license = lib.licenses.mit; license = lib.licenses.mit;
mainProgram = "uiua"; mainProgram = "uiua";
maintainers = with lib.maintainers; [ cafkafk tomasajt defelo ]; maintainers = with lib.maintainers; [
cafkafk
tomasajt
defelo
];
}; };
} }

View file

@ -5,16 +5,16 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "uplosi"; pname = "uplosi";
version = "0.2.0"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "edgelesssys"; owner = "edgelesssys";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-TrHREV/bmrjwlE4bsXZDKvIQKa68AnUSktnqCKdvOe8="; hash = "sha256-i/RVCoeQLeOaPaEtJS/l+42CVohMucA6cBBt0mdJ4uE=";
}; };
vendorHash = "sha256-0uQBhNRP3OGn3hw6Mx6tRliTqIhoBnyfRmdtdtuYwaY="; vendorHash = "sha256-f8Yz99qlN0S0Ybewifc0VQanYXKinb1togBkUwDPSvw=";
CGO_ENABLED = "0"; CGO_ENABLED = "0";
ldflags = [ "-s" "-w" "-X main.version=${version}" ]; ldflags = [ "-s" "-w" "-X main.version=${version}" ];

View file

@ -18,13 +18,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "vcpkg-tool"; pname = "vcpkg-tool";
version = "2024-03-14"; version = "2024-04-23";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "microsoft"; owner = "microsoft";
repo = "vcpkg-tool"; repo = "vcpkg-tool";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-xe5a1cK56KvO4DFFz/K1omBCebzTRUOpXDpkOGek10M="; hash = "sha256-PqmkQcpxuYJGZJs2qemv0hshvO4KTiKc1ZY0//Gq0pY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -0,0 +1,36 @@
{ lib
, python3
, fetchPypi
}:
python3.pkgs.buildPythonApplication rec {
pname = "wireviz";
version = "0.3.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-MBgX7dWOr3SorOJQjVlRGlSvL+A7Lg+gC1UoS3un9rU=";
};
nativeBuildInputs = [
python3.pkgs.setuptools
python3.pkgs.wheel
];
propagatedBuildInputs = with python3.pkgs; [
graphviz
pillow
pyyaml
];
pythonImportsCheck = [ "wireviz" ];
meta = with lib; {
description = "Easily document cables and wiring harnesses";
homepage = "https://pypi.org/project/wireviz/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ pinpox ];
mainProgram = "wireviz";
};
}

View file

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "wl-clip-persist"; pname = "wl-clip-persist";
version = "0.4.0"; version = "0.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Linus789"; owner = "Linus789";
repo = "wl-clip-persist"; repo = "wl-clip-persist";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-uu9R+/8483YyuvMeot2sRs8ihSN1AEPeDjzRxB1P8kc="; hash = "sha256-gUi4Htui7IwldeK30C7SGTNc+0VHuzDZfJdaL8FmkGs=";
}; };
cargoHash = "sha256-XpNpHi9vl89sbec6DXh50t8s328Uw4PpzFVvGp1TP6o="; cargoHash = "sha256-Kt/XTcwclZENtw4vw2BntndqxvojEizCc2Oa0w+c1D0=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -2,19 +2,19 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "xlights"; pname = "xlights";
version = "2024.09"; version = "2024.10";
src = fetchurl { src = fetchurl {
url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage"; url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage";
hash = "sha256-eXoSZUbwKu7174UVPguK9R0MgaMrV2jtRtLK/zSGvtw="; hash = "sha256-h5jChYlTzKenZl0EnScU+vA+535pICXKdUhj8zAU4wc=";
}; };
meta = with lib; { meta = {
description = "xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers."; description = "xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers";
homepage = "https://xlights.org"; homepage = "https://xlights.org";
license = licenses.gpl3; license = lib.licenses.gpl3;
maintainers = with maintainers; [ kashw2 ]; maintainers = with lib.maintainers; [ kashw2 ];
platforms = platforms.linux; platforms = lib.platforms.linux;
mainProgram = "xlights-${version}"; mainProgram = "xlights";
}; };
} }

View file

@ -1,24 +1,24 @@
{ lib, {
lib,
stdenv, stdenv,
fetchurl, fetchurl,
pkg-config, pkg-config,
libX11, libX11,
libXfixes, libXfixes,
libXrandr, libXrandr,
gitUpdater,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "xpointerbarrier"; pname = "xpointerbarrier";
version = "20.07"; version = "23.08";
src = fetchurl { src = fetchurl {
url = "https://www.uninformativ.de/git/xpointerbarrier/archives/xpointerbarrier-v${finalAttrs.version}.tar.gz"; url = "https://www.uninformativ.de/git/xpointerbarrier/archives/xpointerbarrier-v${finalAttrs.version}.tar.gz";
hash = "sha256-V1sNAQjsPVSjJ2nhCSdZqZQA78pjUE0z3IU4+I85CpI="; hash = "sha256-d0PcZ4z8JgN4ncPUGeJZwIV5vB7M0Jo7o1/L6mrJtUc=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [ pkg-config ];
pkg-config
];
buildInputs = [ buildInputs = [
libX11 libX11
@ -28,11 +28,19 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [ "prefix=$(out)" ]; makeFlags = [ "prefix=$(out)" ];
passthru.updateScript = gitUpdater {
url = "https://www.uninformativ.de/git/xpointerbarrier.git/";
rev-prefix = "v";
};
meta = with lib; { meta = with lib; {
homepage = "https://www.uninformativ.de/git/xpointerbarrier/file/README.html"; homepage = "https://www.uninformativ.de/git/xpointerbarrier/file/README.html";
description = "Create X11 pointer barriers around your working area"; description = "Create X11 pointer barriers around your working area";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres xzfc ]; maintainers = with maintainers; [
AndersonTorres
xzfc
];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "xpointerbarrier"; mainProgram = "xpointerbarrier";
}; };

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Mobile broadband service provider database"; description = "Mobile broadband service provider database";
homepage = "https://wiki.gnome.org/Projects/NetworkManager/MobileBroadband/ServiceProviders"; homepage = "https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info";
license = licenses.publicDomain; license = licenses.publicDomain;
maintainers = [ ]; maintainers = [ ];
platforms = platforms.all; platforms = platforms.all;

View file

@ -1,14 +1,14 @@
{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib }: { stdenv, pkgsBuildBuild, fetchFromGitHub, lib, nix-update-script }:
let let
generator = pkgsBuildBuild.buildGoModule rec { generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community"; pname = "v2ray-domain-list-community";
version = "20240410101316"; version = "20240426060244";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "v2fly"; owner = "v2fly";
repo = "domain-list-community"; repo = "domain-list-community";
rev = version; rev = version;
hash = "sha256-llj1z9fIzELeIIhyW6dmAl8Z/0DtZq3tkMrfwSJkZbE="; hash = "sha256-DkZcqjYwXRNlRnfwbRZL6zlkYL9kig3cZ5H6LEzakeY=";
}; };
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY="; vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
meta = with lib; { meta = with lib; {
@ -31,5 +31,8 @@ stdenv.mkDerivation {
install -Dm644 dlc.dat $out/share/v2ray/geosite.dat install -Dm644 dlc.dat $out/share/v2ray/geosite.dat
runHook postInstall runHook postInstall
''; '';
passthru.generator = generator; passthru = {
inherit generator;
updateScript = nix-update-script { };
};
} }

View file

@ -62,7 +62,7 @@ in stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "An input assistive technology intended for switch and pointer users"; description = "An input assistive technology intended for switch and pointer users";
mainProgram = "caribou-preferences"; mainProgram = "caribou-preferences";
homepage = "https://wiki.gnome.org/Projects/Caribou"; homepage = "https://gitlab.gnome.org/Archive/caribou";
license = licenses.lgpl21; license = licenses.lgpl21;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -189,7 +189,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "A program that manages graphical display servers and handles graphical user logins"; description = "A program that manages graphical display servers and handles graphical user logins";
homepage = "https://wiki.gnome.org/Projects/GDM"; homepage = "https://gitlab.gnome.org/GNOME/gdm";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications"; description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications";
homepage = "https://wiki.gnome.org/Projects/GnomeKeyring"; homepage = "https://gitlab.gnome.org/GNOME/gnome-keyring";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
}; };
meta = with lib; { meta = with lib; {
homepage = "https://wiki.gnome.org/Projects/GnomeOnlineMiners"; homepage = "https://gitlab.gnome.org/Archive/gnome-online-miners";
description = "A set of crawlers that go through your online content and index them locally in Tracker"; description = "A set of crawlers that go through your online content and index them locally in Tracker";
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;

View file

@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
}; };
meta = with lib; { meta = with lib; {
homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop"; homepage = "https://gitlab.gnome.org/GNOME/gnome-remote-desktop";
description = "GNOME Remote Desktop server"; description = "GNOME Remote Desktop server";
mainProgram = "grdctl"; mainProgram = "grdctl";
maintainers = teams.gnome.members; maintainers = teams.gnome.members;

View file

@ -127,7 +127,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "GNOME session manager"; description = "GNOME session manager";
homepage = "https://wiki.gnome.org/Projects/SessionManagement"; homepage = "https://gitlab.gnome.org/GNOME/gnome-session";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
platforms = platforms.linux; platforms = platforms.linux;

Some files were not shown because too many files have changed in this diff Show more