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`.
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`.
@ -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](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}
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}

View File

@ -9452,6 +9452,12 @@
fingerprint = "B768 6CD7 451A 650D 9C54 4204 6710 CF0C 1CBD 7762";
}];
};
jlbribeiro = {
email = "nix@jlbribeiro.com";
github = "jlbribeiro";
githubId = 1015816;
name = "José Ribeiro";
};
jleightcap = {
email = "jack@leightcap.com";
github = "jleightcap";
@ -15091,6 +15097,13 @@
githubId = 104593071;
name = "Oliver Schmidt";
};
osslate = {
email = "fionn@kelleher.email";
github = "osslate";
githubId = 773673;
matrix = "@osslate:fsfe.org";
name = "Fionn Kelleher";
};
ostrolucky = {
email = "gabriel.ostrolucky@gmail.com";
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.
- `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).
- 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; };
dbus = super.dbus.override { 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_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
gd = super.gd.override { withXorg = false; };
ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };

View File

@ -4,6 +4,7 @@ with lib;
let
cfg = config.services.adguardhome;
settingsFormat = pkgs.formats.yaml { };
args = concatStringsSep " " ([
"--no-check-update"
@ -12,27 +13,33 @@ let
"--config /var/lib/AdGuardHome/AdGuardHome.yaml"
] ++ cfg.extraArgs);
configFile = pkgs.writeTextFile {
name = "AdGuardHome.yaml";
text = builtins.toJSON cfg.settings;
checkPhase = "${pkgs.adguardhome}/bin/adguardhome -c $out --check-config";
};
defaultBindPort = 3000;
in
{
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" ]; })
];
settings = if (cfg.settings != null) then
cfg.settings // (if cfg.settings.schema_version < 23 then {
bind_host = cfg.host;
bind_port = cfg.port;
} else {
http.address = "${cfg.host}:${toString cfg.port}";
})
else
null;
configFile =
(settingsFormat.generate "AdGuardHome.yaml" settings).overrideAttrs (_: {
checkPhase = "${cfg.package}/bin/adguardhome -c $out --check-config";
});
in {
options.services.adguardhome = with types; {
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 {
default = false;
type = bool;
@ -43,8 +50,8 @@ in
};
allowDHCP = mkOption {
default = cfg.settings.dhcp.enabled or false;
defaultText = literalExpression ''config.services.adguardhome.settings.dhcp.enabled or false'';
default = settings.dhcp.enabled or false;
defaultText = literalExpression "config.services.adguardhome.settings.dhcp.enabled or false";
type = bool;
description = ''
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 {
default = null;
type = nullOr (submodule {
freeformType = (pkgs.formats.yaml { }).type;
freeformType = settingsFormat.type;
options = {
schema_version = mkOption {
default = pkgs.adguardhome.schema_version;
defaultText = literalExpression "pkgs.adguardhome.schema_version";
default = cfg.package.schema_version;
defaultText = literalExpression "cfg.package.schema_version";
type = int;
description = ''
Schema version for the configuration.
Defaults to the `schema_version` supplied by `pkgs.adguardhome`.
'';
};
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.
Defaults to the `schema_version` supplied by `cfg.package`.
'';
};
};
@ -107,7 +116,7 @@ in
Set this to `null` (default) for a non-declarative configuration without any
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 {
assertions = [
{
assertion = cfg.settings != null -> cfg.mutableSettings
|| (hasAttrByPath [ "dns" "bind_host" ] cfg.settings)
|| (hasAttrByPath [ "dns" "bind_hosts" ] cfg.settings);
message =
"AdGuard setting dns.bind_host or dns.bind_hosts needs to be configured for a minimal working configuration";
assertion = cfg.settings != null
-> !(hasAttrByPath [ "bind_host" ] cfg.settings);
message = "AdGuard option `settings.bind_host' has been superseded by `services.adguardhome.host'";
}
{
assertion = cfg.settings != null -> cfg.mutableSettings
|| hasAttrByPath [ "dns" "bootstrap_dns" ] cfg.settings;
message =
"AdGuard setting dns.bootstrap_dns needs to be configured for a minimal working configuration";
assertion = cfg.settings != null
-> !(hasAttrByPath [ "bind_port" ] cfg.settings);
message = "AdGuard option `settings.bind_host' has been superseded by `services.adguardhome.port'";
}
{
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;
};
preStart = optionalString (cfg.settings != null) ''
preStart = optionalString (settings != null) ''
if [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \
&& [ "${toString cfg.mutableSettings}" = "1" ]; then
# Writing directly to AdGuardHome.yaml results in empty file
@ -161,8 +178,9 @@ in
serviceConfig = {
DynamicUser = true;
ExecStart = "${pkgs.adguardhome}/bin/adguardhome ${args}";
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ] ++ optionals cfg.allowDHCP [ "CAP_NET_RAW" ];
ExecStart = "${cfg.package}/bin/adguardhome ${args}";
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]
++ optionals cfg.allowDHCP [ "CAP_NET_RAW" ];
Restart = "always";
RestartSec = 10;
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
# system configuration so that most users don't have to redo the check and require
# the necessary dependencies.
checkedSource = pkgs.runCommand "systemd-boot" { } ''
checkedSource = pkgs.runCommand "systemd-boot" {
preferLocalBuild = true;
} ''
install -m755 -D ${./systemd-boot-builder.py} $out
${lib.getExe pkgs.buildPackages.mypy} \
--no-implicit-optional \

View File

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

View File

@ -867,6 +867,7 @@ in {
swap-partition = handleTest ./swap-partition.nix {};
swap-random-encryption = handleTest ./swap-random-encryption.nix {};
sway = handleTest ./sway.nix {};
swayfx = handleTest ./swayfx.nix {};
switchTest = handleTest ./switch-test.nix {};
sympa = handleTest ./sympa.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
panel of the GNOME Control Center.
'';
homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
homepage = "https://gitlab.gnome.org/Archive/mousetweaks";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.johnazoidberg ];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,6 +8,8 @@
, python3Packages
, qtbase
, qtcharts
, makeDesktopItem
, copyDesktopItems
}:
python3Packages.buildPythonPackage rec {
@ -25,6 +27,7 @@ python3Packages.buildPythonPackage rec {
nativeBuildInputs = [
wrapQtAppsHook
python3Packages.mkdocs-material
copyDesktopItems
];
buildInputs = [
@ -32,6 +35,20 @@ python3Packages.buildPythonPackage rec {
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; [
beautifulsoup4
cbor2
@ -104,6 +121,8 @@ python3Packages.buildPythonPackage rec {
outputs = [ "out" "doc" ];
installPhase = ''
runHook preInstall
# Move the hydrus module and related directories
mkdir -p $out/${python3Packages.python.sitePackages}
mv {hydrus,static,db} $out/${python3Packages.python.sitePackages}
@ -118,12 +137,18 @@ python3Packages.buildPythonPackage rec {
mkdir -p $out/bin
install -m0755 hydrus_server.py $out/bin/hydrus-server
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 ''
mkdir -p $out/${python3Packages.python.sitePackages}/bin
# swfrender seems to have to be called sfwrender_linux
# not sure if it can be loaded through PATH, but this is simpler
# $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin
ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux
'' + ''
runHook postInstall
'';
dontWrapQtApps = true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helm-unittest";
version = "0.4.4";
version = "0.5.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
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.
postPatch = ''

View File

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

View File

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

View File

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

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "nomad-pack";
version = "0.1.0";
version = "0.1.1";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
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
doCheck = false;

View File

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

View File

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

View File

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

View File

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

View File

@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "wavebox";
version = "10.120.10-2";
version = "10.124.17-2";
src = fetchurl {
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

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "iroh";
version = "0.14.0";
version = "0.15.0";
src = fetchFromGitHub {
owner = "n0-computer";
repo = pname;
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 (
with darwin.apple_sdk.frameworks; [

View File

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

View File

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.68.3";
version = "0.68.4";
src = fetchurl {
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 = [

View File

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

View File

@ -38,33 +38,75 @@ let
in
python3Packages.buildPythonApplication rec {
inherit pname;
version = "2.5.0";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "schrodinger";
repo = "pymol-open-source";
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 ];
buildInputs = [ python3Packages.numpy python3Packages.pyqt5 glew glm libpng libxml2 freetype msgpack netcdf ];
env.NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
hardeningDisable = [ "format" ];
installPhase = ''
python setup.py install --home="$out"
runHook postInstall
'';
postInstall = with python3Packages; ''
wrapProgram $out/bin/pymol \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ pyqt5 pyqt5.pyqt5-sip ]}
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/"
'';
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 = ''
wrapQtApp "$out/bin/pymol"
'';
@ -74,6 +116,6 @@ python3Packages.buildPythonApplication rec {
mainProgram = "pymol";
homepage = "https://www.pymol.org/";
license = licenses.mit;
maintainers = with maintainers; [ samlich ];
maintainers = with maintainers; [ natsukium samlich ];
};
}

View File

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

View File

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

View File

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

View File

@ -18,10 +18,10 @@ stdenvNoCC.mkDerivation (finalAttrs: let
};
in {
pname = "affine";
version = "0.13.1";
version = "0.13.3";
src = fetchurl {
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 = [
copyDesktopItems

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-autoinherit";
version = "0.1.4";
version = "0.1.5";
src = fetchFromGitHub {
owner = "mainmatter";
repo = "cargo-autoinherit";
rev = "v${version}";
hash = "sha256-BuZDCd4SwSYg5eKV61L3RpPVmq5NZDAOc9zOz5QiSNI=";
hash = "sha256-ai2BqBfZlCOA1DIlzZerH71sbUMi6C65FRv5VDU0DPU=";
};
cargoHash = "sha256-9hhrVkC1xB2E/vatkiM4PIJyXq+0GDoqlgXZXc8WehU=";
cargoHash = "sha256-bPbwUqw2IFwZTi7qFm1BQgGYBAb6OG8QSU8xTdx/1zM=";
meta = with lib; {
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 {
pname = "cosmic-term";
version = "unstable-2024-02-28";
version = "unstable-2024-04-14";
src = fetchFromGitHub {
owner = "pop-os";
repo = pname;
rev = "36477e06dc6d05bd01dc08b3f20e0a6e388d6c7e";
hash = "sha256-VkRVfV4sC+5+/8g1FOlBjJCeR/KGb5gP0SWy5bmFo+Y=";
rev = "3e41d261a9d5d2284cd6ae85acde2562b8a5ccd6";
hash = "sha256-IVLwWG4WUGXK9jY/d0Vr8RX/Klj1mUe4Q7Huv0BkjDo=";
};
cargoLock = {
@ -32,14 +32,15 @@ rustPlatform.buildRustPackage rec {
outputHashes = {
"accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
"cosmic-config-0.1.0" = "sha256-Zyi95zcBAohM1WBropLzJczSIfNNNBK2odB4AmW4h5I=";
"cosmic-files-0.1.0" = "sha256-64An0MPgnFgyVlWmtBGBs+IV2z+4vmEY2uRPetZM4/M=";
"cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
"clipboard_macos-0.1.0" = "sha256-PEH+aCpjDCEIj8s39nIeWxb7qu3u9IfriGqf0pYObMk=";
"cosmic-config-0.1.0" = "sha256-x/xWMR5w2oEbghTSa8iCi24DA2s99+tcnga8K6jS6HQ=";
"cosmic-files-0.1.0" = "sha256-KzWlmeZP3F5Kavi9FFXo3o8nB/h79TtOhqWUyI1ZRB0=";
"cosmic-text-0.11.2" = "sha256-K9cZeClr1zz4LanJS0WPEpxAplQrXfCjFKrSn5n4rDA=";
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
"libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI=";
"smithay-clipboard-0.8.0" = "sha256-OZOGbdzkgRIeDFrAENXE7g62eQTs60Je6lYVr0WudlE=";
"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=";
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
};
@ -47,7 +48,7 @@ rustPlatform.buildRustPackage rec {
# COSMIC applications now uses vergen for the About page
# 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;
postPatch = ''

View File

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

View File

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

View File

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

View File

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

View File

@ -22,13 +22,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "feather";
version = "2.6.5";
version = "2.6.7";
src = fetchFromGitHub {
owner = "feather-wallet";
repo = "feather";
rev = finalAttrs.version;
hash = "sha256-HvjcjiVXTK9mZOvh91iCMf/cZ9BMlPxXjgFKYWolJ74=";
hash = "sha256-zXNpNhBOtDvuuxzZ8o2XDLqNSi/XK4I6eYAfWuiCgRI=";
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
, appimageTools
, undmg
, nix-update-script
}:
let
pname = "hoppscotch";
version = "23.12.5";
version = "24.3.1-2";
src = fetchurl {
aarch64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-WUJW38vQ7o5KEmCxhVnJ03/f5tPOTYcczrEcmt6NSCY=";
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-F4vQwdNObIE8Fx75TfwI0QxbY5n2syT4sEIhgAu2Z5c=";
};
x86_64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_mac_x64.dmg";
hash = "sha256-bQFD+9IoelinWYUndzbVvPNaRde6ACPvw9ifX9mYdno=";
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg";
hash = "sha256-itC6PdNdzcw5Lv/hQkT0AsTGQ8kmTwT6cipyaAynph8=";
};
x86_64-linux = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}-1/Hoppscotch_linux_x64.AppImage";
hash = "sha256-MYQ7SRm+CUPIXROZxejbbZ0/wH+U5DQO4YGbE/HQAj8=";
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage";
hash = "sha256-vj9UYizRmyIK9mLNSW/qFc/QmnWNhniqJf3gG66WPb0=";
};
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");

View File

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

View File

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

View File

@ -6,11 +6,11 @@
appimageTools.wrapType2 rec {
pname = "lunar-client";
version = "3.2.4";
version = "3.2.5";
src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
hash = "sha512-KaQvjtSzQzebzPrcFBntCqP6fRbenH9tQo4LYO1TwDoJ7pAeZ8D4kSMRaRfFV0CPZ/pDnKECYdKXAuaujOpw8g==";
hash = "sha512-flve07l13w4aRPPMhbf1Nbaxy6i1ljxx2J/9vg4WLQK4k09PVJKGn6b8nxe5d90LCYMhwEHfEvrHFB/tNFKJ9w==";
};
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 {
owner = "bluskript";
repo = "nix-inspect";
rev = "74007c580b8282bd336130ddf354e71502b421a6";
hash = "sha256-JichXRSfTLfy+7fhbTvA89rQLkqsY2eHgEAeAHWbA9s=";
rev = "86f636b1e01579b3a63b2c778c21a818b00c3d1e";
hash = "sha256-G5Md4ghux4LBRkPE8vzLTUWxzlQ7s1xKxZ8i3ICWZU8=";
};
workerPackage = stdenv.mkDerivation {
inherit src;
pname = "nix-inspect-worker";
version = "0.1.1";
version = "0.1.2";
sourceRoot = "source/worker";
nativeBuildInputs = [meson ninja pkg-config];
@ -38,9 +38,9 @@ in
rustPlatform.buildRustPackage {
inherit src;
pname = "nix-inspect";
version = "0.1.1";
version = "0.1.2";
cargoHash = "sha256-l+R7BLgJvK9mQ89GVAdTyQX81VMoV11h5KFlMUqAH30=";
cargoHash = "sha256-/0CrHqOL4B0Rx0ZbUpW54FiisfpW6UU4uk6wctfCX5c=";
buildInputs = [workerPackage];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "orchard";
version = "0.17.0";
version = "0.18.0";
src = fetchFromGitHub {
owner = "cirruslabs";
repo = pname;
rev = version;
hash = "sha256-mOlAMlvWEdkPxvhqrt7PHJjmtUBRsFwsSchHRQtaACc=";
hash = "sha256-rzfGECRa3IPt9LRX8Av7NabaIzaKfxzkOR85q9zl9sk=";
# 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.
leaveDotGit = true;
@ -19,7 +19,7 @@ buildGoModule rec {
'';
};
vendorHash = "sha256-qqq1CKZm95pJ3u7/oHKhRL3ZIGN9LCRcnESE2w/DJrQ=";
vendorHash = "sha256-dVWCxEmqzJw9oN6mCwFVn81Mhq4XfBEM3iXHQn4NXko=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -10,16 +10,16 @@
stdenv.mkDerivation rec {
pname = "photonvision";
version = "2024.2.3";
version = "2024.3.1";
src = {
"x86_64-linux" = fetchurl {
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 {
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}");

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "pls";
version = "0.0.1-beta.4";
version = "0.0.1-beta.6";
src = fetchFromGitHub {
owner = "dhruvkb";
owner = "pls-rs";
repo = "pls";
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 [
darwin.apple_sdk.frameworks.Security

View File

@ -7,7 +7,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "retool";
version = "2.3.6";
version = "2.3.7";
pyproject = true;
disabled = python3.pkgs.pythonOlder "3.10";
@ -15,8 +15,8 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "unexpectedpanda";
repo = "retool";
rev = "v${version}";
hash = "sha256-6RE2sbL8e9D+czFebLagRiw2wmU78TbajIs9VdFgF0Q=";
rev = "refs/tags/v${version}";
hash = "sha256-WEx/S6+8lJXu+4yKazzJ55HTGKr38GMRL242FV7KdLQ=";
};
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
pname = "spacedrive";
version = "0.2.4";
version = "0.2.13";
src = fetchurl {
aarch64-darwin = {
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 = {
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 = {
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.");

View File

@ -5,13 +5,13 @@
buildGoModule {
pname = "spirit";
version = "0-unstable-2024-03-20";
version = "0-unstable-2024-04-18";
src = fetchFromGitHub {
owner = "cashapp";
repo = "spirit";
rev = "10e4bba0a89ef3b372046dc367c2b2d12e9d0c0b";
hash = "sha256-tw+gHSxIHKEsHaVuknylk4zWsTRKGVNci9WimDC9y1A=";
rev = "886ee21e7338faef6612495b27d409713a202082";
hash = "sha256-xXObprJCo9evArCX5ezqrD+lagiHMO4SwycY+pTkHPg=";
};
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
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
, pango, cairo, libinput, gdk-pixbuf, librsvg
@ -60,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: {
];
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
@ -67,15 +69,15 @@ stdenv.mkDerivation (finalAttrs: {
# assert trayEnabled -> systemdSupport && dbusSupport;
sd-bus-provider = if systemdSupport then "libsystemd" else "basu";
in
[ "-Dsd-bus-provider=${sd-bus-provider}" ]
++ lib.optional (!finalAttrs.enableXWayland) "-Dxwayland=disabled"
++ lib.optional (!finalAttrs.trayEnabled) "-Dtray=disabled"
;
in [
(mesonOption "sd-bus-provider" sd-bus-provider)
(mesonEnable "xwayland" finalAttrs.enableXWayland)
(mesonEnable "tray" finalAttrs.trayEnabled)
];
passthru.tests.basic = nixosTests.sway;
meta = with lib; {
meta = {
description = "An i3-compatible tiling Wayland compositor";
longDescription = ''
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";
changelog = "https://github.com/swaywm/sway/releases/tag/${finalAttrs.version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos synthetica ];
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ primeos synthetica ];
mainProgram = "sway";
};
})

View File

@ -13,9 +13,12 @@
assert extraSessionCommands != "" -> withBaseWrapper;
with lib;
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; });
baseWrapper = writeShellScriptBin sway.meta.mainProgram ''
set -o errexit
@ -26,13 +29,13 @@ let
fi
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS
exec ${lib.getExe sway} "$@"
exec ${getExe sway} "$@"
else
exec ${lib.optionalString dbusSupport "${dbus}/bin/dbus-run-session"} ${lib.getExe sway} "$@"
exec ${optionalString dbusSupport "${dbus}/bin/dbus-run-session"} ${getExe sway} "$@"
fi
'';
in symlinkJoin rec {
pname = lib.replaceStrings ["-unwrapped"] [""] sway.pname;
pname = replaceStrings ["-unwrapped"] [""] sway.pname;
inherit (sway) 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,
fetchFromGitHub,
sway-unwrapped,
stdenv,
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:
isNixOS ? false,
enableXWayland ? true,
@ -12,32 +35,112 @@
trayEnabled ? systemdSupport,
}:
(sway-unwrapped.override {
stdenv.mkDerivation (finalAttrs: {
inherit
isNixOS
enableXWayland
isNixOS
systemdSupport
trayEnabled
;
wlroots = wlroots_0_16;
}).overrideAttrs (oldAttrs: rec {
pname = "swayfx-unwrapped";
version = "0.3.2";
version = "0.4";
src = fetchFromGitHub {
owner = "WillPower3309";
repo = "swayfx";
rev = version;
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0=";
rev = "refs/tags/${finalAttrs.version}";
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!";
homepage = "https://github.com/WillPower3309/swayfx";
license = licenses.mit;
maintainers = with maintainers; [ eclairevoyant ricarch97 ];
platforms = platforms.linux;
changelog = "https://github.com/WillPower3309/swayfx/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
eclairevoyant
ricarch97
];
platforms = lib.platforms.linux;
mainProgram = "sway";
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 {
pname = "tdl";
version = "0.16.2";
version = "0.17.0";
src = fetchFromGitHub {
owner = "iyear";
repo = "tdl";
rev = "v${version}";
hash = "sha256-YbyTUmYXcltmvJVatS1TLkqZli7sba4ARi9bRkcd07M=";
hash = "sha256-bIDgxCv9jSN3OxS0FydFwfJYr8BUQ+8U/0s2BkM4M70=";
};
vendorHash = "sha256-WFhwmV4zlYDQA2Xow51m/AQ9GwUwr26rW3WMldduLl8=";
vendorHash = "sha256-uCQ5HixoChppLO9kJvMWVENhHDnQsEe/qiJnbwUjE70=";
ldflags = [
"-s"

View File

@ -10,16 +10,16 @@
buildGoModule rec {
pname = "terraform-plugin-docs";
version = "0.19.1";
version = "0.19.2";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform-plugin-docs";
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 ];

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "tlrc";
version = "1.9.1";
version = "1.9.2";
src = fetchFromGitHub {
owner = "tldr-pages";
repo = "tlrc";
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 ];

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

View File

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

View File

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

View File

@ -18,13 +18,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vcpkg-tool";
version = "2024-03-14";
version = "2024-04-23";
src = fetchFromGitHub {
owner = "microsoft";
repo = "vcpkg-tool";
rev = finalAttrs.version;
hash = "sha256-xe5a1cK56KvO4DFFz/K1omBCebzTRUOpXDpkOGek10M=";
hash = "sha256-PqmkQcpxuYJGZJs2qemv0hshvO4KTiKc1ZY0//Gq0pY=";
};
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 {
pname = "wl-clip-persist";
version = "0.4.0";
version = "0.4.1";
src = fetchFromGitHub {
owner = "Linus789";
repo = "wl-clip-persist";
rev = "v${version}";
hash = "sha256-uu9R+/8483YyuvMeot2sRs8ihSN1AEPeDjzRxB1P8kc=";
hash = "sha256-gUi4Htui7IwldeK30C7SGTNc+0VHuzDZfJdaL8FmkGs=";
};
cargoHash = "sha256-XpNpHi9vl89sbec6DXh50t8s328Uw4PpzFVvGp1TP6o=";
cargoHash = "sha256-Kt/XTcwclZENtw4vw2BntndqxvojEizCc2Oa0w+c1D0=";
nativeBuildInputs = [ pkg-config ];

View File

@ -2,19 +2,19 @@
appimageTools.wrapType2 rec {
pname = "xlights";
version = "2024.09";
version = "2024.10";
src = fetchurl {
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; {
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.";
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";
homepage = "https://xlights.org";
license = licenses.gpl3;
maintainers = with maintainers; [ kashw2 ];
platforms = platforms.linux;
mainProgram = "xlights-${version}";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ kashw2 ];
platforms = lib.platforms.linux;
mainProgram = "xlights";
};
}

View File

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

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
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;
maintainers = [ ];
platforms = platforms.all;

View File

@ -1,14 +1,14 @@
{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib }:
{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib, nix-update-script }:
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20240410101316";
version = "20240426060244";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-llj1z9fIzELeIIhyW6dmAl8Z/0DtZq3tkMrfwSJkZbE=";
hash = "sha256-DkZcqjYwXRNlRnfwbRZL6zlkYL9kig3cZ5H6LEzakeY=";
};
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
meta = with lib; {
@ -31,5 +31,8 @@ stdenv.mkDerivation {
install -Dm644 dlc.dat $out/share/v2ray/geosite.dat
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; {
description = "An input assistive technology intended for switch and pointer users";
mainProgram = "caribou-preferences";
homepage = "https://wiki.gnome.org/Projects/Caribou";
homepage = "https://gitlab.gnome.org/Archive/caribou";
license = licenses.lgpl21;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

@ -189,7 +189,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
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;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
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;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
};
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";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;

View File

@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
};
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";
mainProgram = "grdctl";
maintainers = teams.gnome.members;

View File

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

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