Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-04-18 00:13:06 +00:00 committed by GitHub
commit 686828e7d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
362 changed files with 7296 additions and 9622 deletions

View File

@ -10207,6 +10207,11 @@
githubId = 6544084; githubId = 6544084;
name = "Kai Harries"; name = "Kai Harries";
}; };
kai-tub = {
name = "Kai Norman Clasen";
github = "kai-tub";
githubId = 46302524;
};
kalbasit = { kalbasit = {
email = "wael.nasreddine@gmail.com"; email = "wael.nasreddine@gmail.com";
matrix = "@kalbasit:matrix.org"; matrix = "@kalbasit:matrix.org";
@ -19400,6 +19405,12 @@
github = "sweenu"; github = "sweenu";
githubId = 7051978; githubId = 7051978;
}; };
swendel = {
name = "Sebastian Wendel";
email = "nixpkgs.aiX5ph@srx.digital";
github = "SebastianWendel";
githubId = 919570;
};
swesterfeld = { swesterfeld = {
email = "stefan@space.twc.de"; email = "stefan@space.twc.de";
github = "swesterfeld"; github = "swesterfeld";

View File

@ -37,6 +37,10 @@ In addition to numerous new and upgraded packages, this release has the followin
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
`services.pipewire.wireplumber.configPackages` for WirePlumber instead." `services.pipewire.wireplumber.configPackages` for WirePlumber instead."
- `teleport` has been upgraded from major version 14 to major version 15.
Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/)
and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124).
- A new option `systemd.sysusers.enable` was added. If enabled, users and - A new option `systemd.sysusers.enable` was added. If enabled, users and
groups are created with systemd-sysusers instead of with a custom perl script. groups are created with systemd-sysusers instead of with a custom perl script.
@ -127,12 +131,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable). - [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable).
- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush. - [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable). - [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
- [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable). - [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
- [TigerBeetle](https://tigerbeetle.com/), a distributed financial accounting database designed for mission critical safety and performance. Available as [services.tigerbeetle](#opt-services.tigerbeetle.enable). - [TigerBeetle](https://tigerbeetle.com/), a distributed financial accounting database designed for mission critical safety and performance. Available as [services.tigerbeetle](#opt-services.tigerbeetle.enable).
- [go-camo](https://github.com/cactus/go-camo), a secure image proxy server. Available as [services.go-camo](#opt-services.go-camo.enable). - [go-camo](https://github.com/cactus/go-camo), a secure image proxy server. Available as [services.go-camo](#opt-services.go-camo.enable).
@ -279,6 +287,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19) and release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19) and
[v20](https://github.com/systemd/mkosi/releases/tag/v20) for a list of changes. [v20](https://github.com/systemd/mkosi/releases/tag/v20) for a list of changes.
- `gonic` has been updated to v0.16.4. Config now requires `playlists-path` to be set. See the rest of the [v0.16.0 release notes](https://github.com/sentriz/gonic/releases/tag/v0.16.0) for more details.
- The `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed. - The `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
- The `services.vikunja.setupNginx` setting has been removed. Users now need to setup the webserver configuration on their own with a proxy pass to the vikunja service. - The `services.vikunja.setupNginx` setting has been removed. Users now need to setup the webserver configuration on their own with a proxy pass to the vikunja service.
@ -419,6 +429,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `nomad_1_4` has been removed, as it is now unsupported upstream. - `nomad_1_4` has been removed, as it is now unsupported upstream.
- Dwarf Fortress has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
- Running an earlier version can be achieved through an override: `dwarf-fortress-packages.dwarf-fortress-full.override { dfVersion = "0.47.5"; }`
- Ruby plugin support has been disabled in DFHack. Many of the Ruby plugins have been converted to Lua, and support was removed upstream due to frequent crashes.
- The `livebook` package is now built as a `mix release` instead of an `escript`. - The `livebook` package is now built as a `mix release` instead of an `escript`.
This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments. This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
This has the further implication that the `livebook` service configuration has changed: This has the further implication that the `livebook` service configuration has changed:

View File

@ -42,8 +42,8 @@ in
strings. The latter is concatenated, interspersed with colon strings. The latter is concatenated, interspersed with colon
characters. characters.
''; '';
type = with types; attrsOf (oneOf [ (listOf str) str path ]); type = with types; attrsOf (oneOf [ (listOf (oneOf [ float int str ])) float int str path ]);
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else "${v}"); apply = mapAttrs (n: v: if isList v then concatMapStringsSep ":" toString v else toString v);
}; };
environment.profiles = mkOption { environment.profiles = mkOption {

View File

@ -153,11 +153,10 @@ in
''; '';
type = configType; type = configType;
description = '' description = ''
The configuration of the Nix Packages collection. (For Global configuration for Nixpkgs.
details, see the Nixpkgs documentation.) It allows you to set The complete list of [Nixpkgs configuration options](https://nixos.org/manual/nixpkgs/unstable/#sec-config-options-reference) is in the [Nixpkgs manual section on global configuration](https://nixos.org/manual/nixpkgs/unstable/#chap-packageconfig).
package configuration options.
Ignored when `nixpkgs.pkgs` is set. Ignored when {option}`nixpkgs.pkgs` is set.
''; '';
}; };

View File

@ -179,6 +179,7 @@
./programs/environment.nix ./programs/environment.nix
./programs/evince.nix ./programs/evince.nix
./programs/extra-container.nix ./programs/extra-container.nix
./programs/fcast-receiver.nix
./programs/feedbackd.nix ./programs/feedbackd.nix
./programs/file-roller.nix ./programs/file-roller.nix
./programs/firefox.nix ./programs/firefox.nix
@ -265,6 +266,7 @@
./programs/skim.nix ./programs/skim.nix
./programs/slock.nix ./programs/slock.nix
./programs/sniffnet.nix ./programs/sniffnet.nix
./programs/soundmodem.nix
./programs/spacefm.nix ./programs/spacefm.nix
./programs/ssh.nix ./programs/ssh.nix
./programs/starship.nix ./programs/starship.nix
@ -286,8 +288,8 @@
./programs/virt-manager.nix ./programs/virt-manager.nix
./programs/wavemon.nix ./programs/wavemon.nix
./programs/wayland/cardboard.nix ./programs/wayland/cardboard.nix
./programs/wayland/labwc.nix
./programs/wayland/hyprland.nix ./programs/wayland/hyprland.nix
./programs/wayland/labwc.nix
./programs/wayland/river.nix ./programs/wayland/river.nix
./programs/wayland/sway.nix ./programs/wayland/sway.nix
./programs/wayland/waybar.nix ./programs/wayland/waybar.nix

View File

@ -11,7 +11,7 @@
uid = 1000; uid = 1000;
}; };
services.xserver.displayManager = { services.displayManager = {
autoLogin = { autoLogin = {
enable = true; enable = true;
user = "demo"; user = "demo";

View File

@ -6,13 +6,12 @@
{ {
services.xserver = { services.xserver = {
enable = true; enable = true;
displayManager.sddm.enable = true; desktopManager.plasma5.enable = true;
desktopManager.plasma5 = {
enable = true;
};
libinput.enable = true; # for touchpad support on many laptops libinput.enable = true; # for touchpad support on many laptops
}; };
services.displayManager.sddm.enable = true;
# Enable sound in virtualbox appliances. # Enable sound in virtualbox appliances.
hardware.pulseaudio.enable = true; hardware.pulseaudio.enable = true;

View File

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.fcast-receiver;
in
{
meta = {
maintainers = pkgs.fcast-receiver.meta.maintainers;
};
options.programs.fcast-receiver = {
enable = mkEnableOption (lib.mdDoc "FCast Receiver");
openFirewall = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Open ports needed for the functionality of the program.
'';
};
package = mkPackageOption pkgs "fcast-receiver" { };
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ 46899 ];
};
};
}

View File

@ -0,0 +1,34 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.soundmodem;
in
{
options = {
programs.soundmodem = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to add Soundmodem to the global environment and configure a
wrapper for 'soundmodemconfig' for users in the 'soundmodem' group.
'';
};
package = mkPackageOption pkgs "soundmodem" { };
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
users.groups.soundmodem = { };
security.wrappers.soundmodemconfig = {
source = "${cfg.package}/bin/soundmodemconfig";
owner = "root";
group = "soundmodem";
permissions = "u+rx,g+x";
};
};
}

View File

@ -55,6 +55,9 @@ in
RuntimeDirectory = "gonic"; RuntimeDirectory = "gonic";
RootDirectory = "/run/gonic"; RootDirectory = "/run/gonic";
ReadWritePaths = ""; ReadWritePaths = "";
BindPaths = [
cfg.settings.playlists-path
];
BindReadOnlyPaths = [ BindReadOnlyPaths = [
# gonic can access scrobbling services # gonic can access scrobbling services
"-/etc/resolv.conf" "-/etc/resolv.conf"

View File

@ -203,6 +203,8 @@ in
TOKEN = "${instance.token}"; TOKEN = "${instance.token}";
} // optionalAttrs (wantsPodman) { } // optionalAttrs (wantsPodman) {
DOCKER_HOST = "unix:///run/podman/podman.sock"; DOCKER_HOST = "unix:///run/podman/podman.sock";
} // {
HOME = "/var/lib/gitea-runner/${name}";
}; };
path = with pkgs; [ path = with pkgs; [
coreutils coreutils

View File

@ -401,17 +401,19 @@ in
})) }))
]; ];
environment.etc = environment.etc = {
{ "udev/rules.d".source = udevRulesFor {
"udev/rules.d".source = udevRulesFor { name = "udev-rules";
name = "udev-rules"; udevPackages = cfg.packages;
udevPackages = cfg.packages; systemd = config.systemd.package;
systemd = config.systemd.package; binPackages = cfg.packages;
binPackages = cfg.packages; inherit udevPath udev;
inherit udevPath udev;
};
"udev/hwdb.bin".source = hwdbBin;
}; };
"udev/hwdb.bin".source = hwdbBin;
} // lib.optionalAttrs config.boot.modprobeConfig.enable {
# We don't place this into `extraModprobeConfig` so that stage-1 ramdisk doesn't bloat.
"modprobe.d/firmware.conf".text = "options firmware_class path=${config.hardware.firmware}/lib/firmware";
};
system.requiredKernelConfig = with config.lib.kernelConfig; [ system.requiredKernelConfig = with config.lib.kernelConfig; [
(isEnabled "UNIX") (isEnabled "UNIX")
@ -419,21 +421,17 @@ in
(isYes "NET") (isYes "NET")
]; ];
# We don't place this into `extraModprobeConfig` so that stage-1 ramdisk doesn't bloat. system.activationScripts.udevd = lib.mkIf config.boot.kernel.enable ''
environment.etc."modprobe.d/firmware.conf".text = "options firmware_class path=${config.hardware.firmware}/lib/firmware"; # The deprecated hotplug uevent helper is not used anymore
if [ -e /proc/sys/kernel/hotplug ]; then
echo "" > /proc/sys/kernel/hotplug
fi
system.activationScripts.udevd = # Allow the kernel to find our firmware.
'' if [ -e /sys/module/firmware_class/parameters/path ]; then
# The deprecated hotplug uevent helper is not used anymore echo -n "${config.hardware.firmware}/lib/firmware" > /sys/module/firmware_class/parameters/path
if [ -e /proc/sys/kernel/hotplug ]; then fi
echo "" > /proc/sys/kernel/hotplug '';
fi
# Allow the kernel to find our firmware.
if [ -e /sys/module/firmware_class/parameters/path ]; then
echo -n "${config.hardware.firmware}/lib/firmware" > /sys/module/firmware_class/parameters/path
fi
'';
systemd.services.systemd-udevd = systemd.services.systemd-udevd =
{ restartTriggers = cfg.packages; { restartTriggers = cfg.packages;

View File

@ -85,7 +85,7 @@ in
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${lib.getExe ollamaPackage} serve"; ExecStart = "${lib.getExe ollamaPackage} serve";
WorkingDirectory = "%S/ollama"; WorkingDirectory = cfg.home;
StateDirectory = [ "ollama" ]; StateDirectory = [ "ollama" ];
DynamicUser = true; DynamicUser = true;
}; };

View File

@ -31,6 +31,7 @@ let
"collectd" "collectd"
"dmarc" "dmarc"
"dnsmasq" "dnsmasq"
"dnssec"
"domain" "domain"
"dovecot" "dovecot"
"fastly" "fastly"

View File

@ -0,0 +1,90 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.prometheus.exporters.dnssec;
configFormat = pkgs.formats.toml { };
configFile = configFormat.generate "dnssec-checks.toml" cfg.configuration;
in {
port = 9204;
extraOpts = {
configuration = lib.mkOption {
type = lib.types.nullOr lib.types.attrs;
default = null;
description = ''
dnssec exporter configuration as nix attribute set.
See <https://github.com/chrj/prometheus-dnssec-exporter/blob/master/README.md>
for the description of the configuration file format.
'';
example = lib.literalExpression ''
{
records = [
{
zone = "ietf.org";
record = "@";
type = "SOA";
}
{
zone = "verisigninc.com";
record = "@";
type = "SOA";
}
];
}
'';
};
listenAddress = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Listen address as host IP and port definition.
'';
example = ":9204";
};
resolvers = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = ''
DNSSEC capable resolver to be used for the check.
'';
example = [ "0.0.0.0:53" ];
};
timeout = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
DNS request timeout duration.
'';
example = "10s";
};
extraFlags = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = ''
Extra commandline options when launching Prometheus.
'';
};
};
serviceOpts = {
serviceConfig = let
startScript = pkgs.writeShellScriptBin "prometheus-dnssec-exporter-start"
"${lib.concatStringsSep " "
([ "${pkgs.prometheus-dnssec-exporter}/bin/prometheus-dnssec-exporter" ]
++ lib.optionals (cfg.configuration != null)
[ "-config ${configFile}" ]
++ lib.optionals (cfg.listenAddress != null)
[ "-listen-address ${lib.escapeShellArg cfg.listenAddress}" ]
++ lib.optionals (cfg.resolvers != [ ]) [
"-resolvers ${
lib.escapeShellArg (lib.concatStringsSep "," cfg.resolvers)
}"
] ++ lib.optionals (cfg.timeout != null)
[ "-timeout ${lib.escapeShellArg cfg.timeout}" ] ++ cfg.extraFlags)}";
in { ExecStart = lib.getExe startScript; };
};
}

View File

@ -9,6 +9,7 @@ in
port = 9121; port = 9121;
serviceOpts = { serviceOpts = {
serviceConfig = { serviceConfig = {
RestrictAddressFamilies = [ "AF_UNIX" ];
ExecStart = '' ExecStart = ''
${pkgs.prometheus-redis-exporter}/bin/redis_exporter \ ${pkgs.prometheus-redis-exporter}/bin/redis_exporter \
-web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \

View File

@ -93,6 +93,13 @@ in
# be garbage collected. Ensure the file gets "refreshed" on every start. # be garbage collected. Ensure the file gets "refreshed" on every start.
rm -f ${stateDir}/.local/share/dresden-elektronik/deCONZ/zcldb.txt rm -f ${stateDir}/.local/share/dresden-elektronik/deCONZ/zcldb.txt
''; '';
postStart = ''
# Delay signalling service readiness until it's actually up.
while ! "${lib.getExe pkgs.curl}" -sSfl -o /dev/null "http://${cfg.listenAddress}:${toString cfg.httpPort}"; do
echo "Waiting for TCP port ${toString cfg.httpPort} to be open..."
sleep 1
done
'';
environment = { environment = {
HOME = stateDir; HOME = stateDir;
XDG_RUNTIME_DIR = "/run/${name}"; XDG_RUNTIME_DIR = "/run/${name}";

View File

@ -136,10 +136,16 @@ in
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = singleton assertions = [
{ assertion = cfg.password == null || cfg.passwordFile == null; {
message = "Cannot use both password and passwordFile for shadowsocks-libev"; # xor, make sure either password or passwordFile be set.
}; # shadowsocks-libev not support plain/none encryption method
# which indicated that password must set.
assertion = let noPasswd = cfg.password == null; noPasswdFile = cfg.passwordFile == null;
in (noPasswd && !noPasswdFile) || (!noPasswd && noPasswdFile);
message = "Option `password` or `passwordFile` must be set and cannot be set simultaneously";
}
];
systemd.services.shadowsocks-libev = { systemd.services.shadowsocks-libev = {
description = "shadowsocks-libev Daemon"; description = "shadowsocks-libev Daemon";

View File

@ -268,11 +268,11 @@ in
script = script =
let let
userScriptArgs = ''--user ${cfg.defaultUser} --password "$(cat ${cfg.passwordFile})"''; userScriptArgs = ''--user ${cfg.defaultUser} ${optionalString (cfg.authType == "form") ''--password "$(cat ${cfg.passwordFile})"''}'';
updateUserScript = optionalString (cfg.authType == "form") '' updateUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") ''
./cli/update-user.php ${userScriptArgs} ./cli/update-user.php ${userScriptArgs}
''; '';
createUserScript = optionalString (cfg.authType == "form") '' createUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") ''
./cli/create-user.php ${userScriptArgs} ./cli/create-user.php ${userScriptArgs}
''; '';
in in

View File

@ -164,7 +164,7 @@ let
${commonHttpConfig} ${commonHttpConfig}
${optionalString (cfg.resolver.addresses != []) '' ${optionalString (cfg.resolver.addresses != []) ''
resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"} ${optionalString (!cfg.resolver.ipv6) "ipv6=off"}; resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"} ${optionalString (!cfg.resolver.ipv4) "ipv4=off"} ${optionalString (!cfg.resolver.ipv6) "ipv6=off"};
''} ''}
${upstreamConfig} ${upstreamConfig}
@ -978,6 +978,15 @@ in
An optional valid parameter allows overriding it An optional valid parameter allows overriding it
''; '';
}; };
ipv4 = mkOption {
type = types.bool;
default = true;
description = ''
By default, nginx will look up both IPv4 and IPv6 addresses while resolving.
If looking up of IPv4 addresses is not desired, the ipv4=off parameter can be
specified.
'';
};
ipv6 = mkOption { ipv6 = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -1179,6 +1188,13 @@ in
to answer to ACME requests. to answer to ACME requests.
''; '';
} }
{
assertion = cfg.resolver.ipv4 || cfg.resolver.ipv6;
message = ''
At least one of services.nginx.resolver.ipv4 and services.nginx.resolver.ipv6 must be true.
'';
}
] ++ map (name: mkCertOwnershipAssertion { ] ++ map (name: mkCertOwnershipAssertion {
inherit (cfg) group user; inherit (cfg) group user;
cert = config.security.acme.certs.${name}; cert = config.security.acme.certs.${name};

View File

@ -330,6 +330,7 @@ in {
freshrss-sqlite = handleTest ./freshrss-sqlite.nix {}; freshrss-sqlite = handleTest ./freshrss-sqlite.nix {};
freshrss-pgsql = handleTest ./freshrss-pgsql.nix {}; freshrss-pgsql = handleTest ./freshrss-pgsql.nix {};
freshrss-http-auth = handleTest ./freshrss-http-auth.nix {}; freshrss-http-auth = handleTest ./freshrss-http-auth.nix {};
freshrss-none-auth = handleTest ./freshrss-none-auth.nix {};
frigate = handleTest ./frigate.nix {}; frigate = handleTest ./frigate.nix {};
frp = handleTest ./frp.nix {}; frp = handleTest ./frp.nix {};
frr = handleTest ./frr.nix {}; frr = handleTest ./frr.nix {};

View File

@ -22,8 +22,27 @@ let
''; '';
signingPrivateKeyId = "4D642DE8B678C79D"; signingPrivateKeyId = "4D642DE8B678C79D";
actionsWorkflowYaml = ''
run-name: dummy workflow
on:
push:
jobs:
cat:
runs-on: native
steps:
- uses: http://localhost:3000/test/checkout@main
- run: cat testfile
'';
# https://github.com/actions/checkout/releases
checkoutActionSource = pkgs.fetchFromGitHub {
owner = "actions";
repo = "checkout";
rev = "v4.1.1";
hash = "sha256-h2/UIp8IjPo3eE4Gzx52Fb7pcgG/Ww7u31w5fdKVMos=";
};
supportedDbTypes = [ "mysql" "postgres" "sqlite3" ]; supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
makeGForgejoTest = type: nameValuePair type (makeTest { makeForgejoTest = type: nameValuePair type (makeTest {
name = "forgejo-${type}"; name = "forgejo-${type}";
meta.maintainers = with maintainers; [ bendlas emilylange ]; meta.maintainers = with maintainers; [ bendlas emilylange ];
@ -36,21 +55,28 @@ let
settings.service.DISABLE_REGISTRATION = true; settings.service.DISABLE_REGISTRATION = true;
settings."repository.signing".SIGNING_KEY = signingPrivateKeyId; settings."repository.signing".SIGNING_KEY = signingPrivateKeyId;
settings.actions.ENABLED = true; settings.actions.ENABLED = true;
settings.repository = {
ENABLE_PUSH_CREATE_USER = true;
DEFAULT_PUSH_CREATE_PRIVATE = false;
};
}; };
environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq pkgs.file ]; environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq pkgs.file pkgs.htmlq ];
services.openssh.enable = true; services.openssh.enable = true;
specialisation.runner = { specialisation.runner = {
inheritParentConfig = true; inheritParentConfig = true;
configuration.services.gitea-actions-runner.instances."test" = { configuration.services.gitea-actions-runner = {
enable = true; package = pkgs.forgejo-runner;
name = "ci"; instances."test" = {
url = "http://localhost:3000"; enable = true;
labels = [ name = "ci";
# don't require docker/podman url = "http://localhost:3000";
"native:host" labels = [
]; # type ":host" does not depend on docker/podman/lxc
tokenFile = "/var/lib/forgejo/runner_token"; "native:host"
];
tokenFile = "/var/lib/forgejo/runner_token";
};
}; };
}; };
specialisation.dump = { specialisation.dump = {
@ -62,11 +88,20 @@ let
}; };
}; };
}; };
client1 = { config, pkgs, ... }: { client = { ... }: {
environment.systemPackages = [ pkgs.git ]; programs.git = {
}; enable = true;
client2 = { config, pkgs, ... }: { config = {
environment.systemPackages = [ pkgs.git ]; user.email = "test@localhost";
user.name = "test";
init.defaultBranch = "main";
};
};
programs.ssh.extraConfig = ''
Host *
StrictHostKeyChecking no
IdentityFile ~/.ssh/privk
'';
}; };
}; };
@ -75,26 +110,23 @@ let
inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
serverSystem = nodes.server.system.build.toplevel; serverSystem = nodes.server.system.build.toplevel;
dumpFile = with nodes.server.specialisation.dump.configuration.services.forgejo.dump; "${backupDir}/${file}"; dumpFile = with nodes.server.specialisation.dump.configuration.services.forgejo.dump; "${backupDir}/${file}";
remoteUri = "forgejo@server:test/repo";
remoteUriCheckoutAction = "forgejo@server:test/checkout";
in in
'' ''
import json import json
GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no"
REPO = "forgejo@server:test/repo"
PRIVK = "${snakeOilPrivateKey}"
start_all() start_all()
client1.succeed("mkdir /tmp/repo") client.succeed("mkdir -p ~/.ssh")
client1.succeed("mkdir -p $HOME/.ssh") client.succeed("(umask 0077; cat ${snakeOilPrivateKey} > ~/.ssh/privk)")
client1.succeed(f"cat {PRIVK} > $HOME/.ssh/privk")
client1.succeed("chmod 0400 $HOME/.ssh/privk") client.succeed("mkdir /tmp/repo")
client1.succeed("git -C /tmp/repo init") client.succeed("git -C /tmp/repo init")
client1.succeed("echo hello world > /tmp/repo/testfile") client.succeed("echo 'hello world' > /tmp/repo/testfile")
client1.succeed("git -C /tmp/repo add .") client.succeed("git -C /tmp/repo add .")
client1.succeed("git config --global user.email test@localhost") client.succeed("git -C /tmp/repo commit -m 'Initial import'")
client1.succeed("git config --global user.name test") client.succeed("git -C /tmp/repo remote add origin ${remoteUri}")
client1.succeed("git -C /tmp/repo commit -m 'Initial import'")
client1.succeed(f"git -C /tmp/repo remote add origin {REPO}")
server.wait_for_unit("forgejo.service") server.wait_for_unit("forgejo.service")
server.wait_for_open_port(3000) server.wait_for_open_port(3000)
@ -143,18 +175,14 @@ let
+ ' -d \'{"key":"${snakeOilPublicKey}","read_only":true,"title":"SSH"}\''' + ' -d \'{"key":"${snakeOilPublicKey}","read_only":true,"title":"SSH"}\'''
) )
client1.succeed( client.succeed("git -C /tmp/repo push origin main")
f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git -C /tmp/repo push origin master"
)
client2.succeed("mkdir -p $HOME/.ssh") client.succeed("git clone ${remoteUri} /tmp/repo-clone")
client2.succeed(f"cat {PRIVK} > $HOME/.ssh/privk") print(client.succeed("ls -lash /tmp/repo-clone"))
client2.succeed("chmod 0400 $HOME/.ssh/privk") assert "hello world" == client.succeed("cat /tmp/repo-clone/testfile").strip()
client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git clone {REPO}")
client2.succeed('test "$(cat repo/testfile | xargs echo -n)" = "hello world"')
with subtest("Testing git protocol version=2 over ssh"): with subtest("Testing git protocol version=2 over ssh"):
git_protocol = client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' GIT_TRACE2_EVENT=true git -C repo fetch |& grep negotiated-version") git_protocol = client.succeed("GIT_TRACE2_EVENT=true git -C /tmp/repo-clone fetch |& grep negotiated-version")
version = json.loads(git_protocol).get("value") version = json.loads(git_protocol).get("value")
assert version == "2", f"git did not negotiate protocol version 2, but version {version} instead." assert version == "2", f"git did not negotiate protocol version 2, but version {version} instead."
@ -164,7 +192,7 @@ let
timeout=10 timeout=10
) )
with subtest("Testing runner registration"): with subtest("Testing runner registration and action workflow"):
server.succeed( server.succeed(
"su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/forgejo/runner_token" "su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/forgejo/runner_token"
) )
@ -172,6 +200,52 @@ let
server.wait_for_unit("gitea-runner-test.service") server.wait_for_unit("gitea-runner-test.service")
server.succeed("journalctl -o cat -u gitea-runner-test.service | grep -q 'Runner registered successfully'") server.succeed("journalctl -o cat -u gitea-runner-test.service | grep -q 'Runner registered successfully'")
# enable actions feature for this repository, defaults to disabled
server.succeed(
"curl --fail -X PATCH http://localhost:3000/api/v1/repos/test/repo "
+ "-H 'Accept: application/json' -H 'Content-Type: application/json' "
+ f"-H 'Authorization: token {api_token}'"
+ ' -d \'{"has_actions":true}\'''
)
# mirror "actions/checkout" action
client.succeed("cp -R ${checkoutActionSource}/ /tmp/checkout")
client.succeed("git -C /tmp/checkout init")
client.succeed("git -C /tmp/checkout add .")
client.succeed("git -C /tmp/checkout commit -m 'Initial import'")
client.succeed("git -C /tmp/checkout remote add origin ${remoteUriCheckoutAction}")
client.succeed("git -C /tmp/checkout push origin main")
# push workflow to initial repo
client.succeed("mkdir -p /tmp/repo/.forgejo/workflows")
client.succeed("cp ${pkgs.writeText "dummy-workflow.yml" actionsWorkflowYaml} /tmp/repo/.forgejo/workflows/")
client.succeed("git -C /tmp/repo add .")
client.succeed("git -C /tmp/repo commit -m 'Add dummy workflow'")
client.succeed("git -C /tmp/repo push origin main")
def poll_workflow_action_status(_) -> bool:
output = server.succeed(
"curl --fail http://localhost:3000/test/repo/actions | "
+ 'htmlq ".flex-item-leading span" --attribute "data-tooltip-content"'
).strip()
# values taken from https://codeberg.org/forgejo/forgejo/src/commit/af47c583b4fb3190fa4c4c414500f9941cc02389/options/locale/locale_en-US.ini#L3649-L3661
if output in [ "Failure", "Canceled", "Skipped", "Blocked" ]:
raise Exception(f"Workflow status is '{output}', which we consider failed.")
server.log(f"Command returned '{output}', which we consider failed.")
elif output in [ "Unknown", "Waiting", "Running", "" ]:
server.log(f"Workflow status is '{output}'. Waiting some more...")
return False
elif output in [ "Success" ]:
return True
raise Exception(f"Workflow status is '{output}', which we don't know. Value mappings likely need updating.")
with server.nested("Waiting for the workflow run to be successful"):
retry(poll_workflow_action_status)
with subtest("Testing backup service"): with subtest("Testing backup service"):
server.succeed("${serverSystem}/specialisation/dump/bin/switch-to-configuration test") server.succeed("${serverSystem}/specialisation/dump/bin/switch-to-configuration test")
server.systemctl("start forgejo-dump") server.systemctl("start forgejo-dump")
@ -181,4 +255,4 @@ let
}); });
in in
listToAttrs (map makeGForgejoTest supportedDbTypes) listToAttrs (map makeForgejoTest supportedDbTypes)

View File

@ -0,0 +1,19 @@
import ./make-test-python.nix ({ lib, pkgs, ... }: {
name = "freshrss";
meta.maintainers = with lib.maintainers; [ mattchrist ];
nodes.machine = { pkgs, ... }: {
services.freshrss = {
enable = true;
baseUrl = "http://localhost";
authType = "none";
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(80)
response = machine.succeed("curl -vvv -s http://127.0.0.1:80/i/")
assert '<title>Main stream · FreshRSS</title>' in response, "FreshRSS stream page didn't load successfully"
'';
})

View File

@ -2,11 +2,19 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "gonic"; name = "gonic";
nodes.machine = { ... }: { nodes.machine = { ... }: {
systemd.tmpfiles.settings = {
"10-gonic" = {
"/tmp/music"."d" = {};
"/tmp/podcast"."d" = {};
"/tmp/playlists"."d" = {};
};
};
services.gonic = { services.gonic = {
enable = true; enable = true;
settings = { settings = {
music-path = [ "/tmp" ]; music-path = [ "/tmp/music" ];
podcast-path = "/tmp"; podcast-path = "/tmp/podcast";
playlists-path = "/tmp/playlists";
}; };
}; };
}; };

View File

@ -227,6 +227,54 @@ let
''; '';
}; };
dnssec = {
exporterConfig = {
enable = true;
configuration = {
records = [
{
zone = "example.com";
record = "@";
type = "SOA";
}
];
};
resolvers = [ "127.0.0.1:53" ];
};
metricProvider = {
services.knot = {
enable = true;
settingsFile = pkgs.writeText "knot.conf" ''
server:
listen: 127.0.0.1@53
template:
- id: default
storage: ${pkgs.buildEnv {
name = "zones";
paths = [(pkgs.writeTextDir "example.com.zone" ''
@ SOA ns1.example.com. noc.example.com. 2024032401 86400 7200 3600000 172800
@ NS ns1
ns1 A 192.168.0.1
'')];
}}
zonefile-load: difference
zonefile-sync: -1
zone:
- domain: example.com
file: example.com.zone
dnssec-signing: on
'';
};
};
exporterTest = ''
wait_for_unit("knot.service")
wait_for_open_port(53)
wait_for_unit("prometheus-dnssec-exporter.service")
wait_for_open_port(9204)
succeed("curl -sSf http://localhost:9204/metrics | grep 'example.com'")
'';
};
# Access to WHOIS server is required to properly test this exporter, so # Access to WHOIS server is required to properly test this exporter, so
# just perform basic sanity check that the exporter is running and returns # just perform basic sanity check that the exporter is running and returns
# a failure. # a failure.

View File

@ -9,8 +9,8 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
let let
packages = with pkgs; { packages = with pkgs; {
"default" = teleport; "default" = teleport;
"12" = teleport_12;
"13" = teleport_13; "13" = teleport_13;
"14" = teleport_14;
}; };
minimal = package: { minimal = package: {

View File

@ -1,15 +1,17 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, pkg-config, alsa-lib, dbus, libjack2 { lib, stdenv, fetchFromGitea, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
, python3Packages , meson, ninja }: , python3Packages , meson, ninja, gitUpdater }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "a2jmidid"; pname = "a2jmidid";
version = "9"; version = "12";
src = fetchFromGitHub { src = fetchFromGitea {
owner = "linuxaudio"; domain = "gitea.ladish.org";
repo = pname; owner = "LADI";
rev = version; repo = "a2jmidid";
sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ="; rev = "refs/tags/${version}";
fetchSubmodules = true;
hash = "sha256-PZKGhHmPMf0AucPruOLB9DniM5A3BKdghFCrd5pTzeM=";
}; };
nativeBuildInputs = [ pkg-config makeWrapper meson ninja ]; nativeBuildInputs = [ pkg-config makeWrapper meson ninja ];
@ -21,9 +23,12 @@ stdenv.mkDerivation rec {
substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control" substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
''; '';
passthru.updateScript = gitUpdater { };
meta = with lib; { meta = with lib; {
description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system"; description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
license = licenses.gpl2; homepage = "https://a2jmidid.ladish.org/";
license = licenses.gpl2Only;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
}; };

View File

@ -21,14 +21,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "grandorgue"; pname = "grandorgue";
version = "3.14.0-1"; version = "3.14.1-1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GrandOrgue"; owner = "GrandOrgue";
repo = pname; repo = pname;
rev = version; rev = version;
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-bzGfc0kWlQSjvZsFlRERPjdLtemcZmsa6DsQGgBPoFo="; hash = "sha256-EyMTWsaqJX7H7aCbu5ww9tQBMwJ7BzobWMWg5Y/ZgJE=";
}; };
postPatch = '' postPatch = ''

View File

@ -2,7 +2,7 @@
, desktop-file-utils , desktop-file-utils
, fetchFromGitHub , fetchFromGitHub
, fetchYarnDeps , fetchYarnDeps
, prefetch-yarn-deps , fixup-yarn-lock
, gjs , gjs
, glib-networking , glib-networking
, gobject-introspection , gobject-introspection
@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
ninja ninja
nodejs nodejs
pkg-config pkg-config
prefetch-yarn-deps fixup-yarn-lock
wrapGAppsHook4 wrapGAppsHook4
yarn yarn
]; ];

View File

@ -33,14 +33,14 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = if withGui then "bitcoin" else "bitcoind"; pname = if withGui then "bitcoin" else "bitcoind";
version = "26.1"; version = "27.0";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
]; ];
# hash retrieved from signed SHA256SUMS # hash retrieved from signed SHA256SUMS
sha256 = "9164ee5d717b4a20cb09f0496544d9d32f365734814fe399f5cdb4552a9b35ee"; sha256 = "9c1ee651d3b157baccc3388be28b8cf3bfcefcd2493b943725ad6040ca6b146b";
}; };
nativeBuildInputs = nativeBuildInputs =

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lite-xl"; pname = "lite-xl";
version = "2.1.3"; version = "2.1.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lite-xl"; owner = "lite-xl";
repo = "lite-xl"; repo = "lite-xl";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4ykUdcNwJ4r/4u9H+c8pgupY3BaPi2y69X6yaDjCjac="; hash = "sha256-TqrFI5TFb2hnnlHYUjLDUTDK3/Wgg1gOxIP8owLi/yo=";
}; };
nativeBuildInputs = [ meson ninja pkg-config ]; nativeBuildInputs = [ meson ninja pkg-config ];

View File

@ -11111,6 +11111,18 @@ final: prev:
meta.homepage = "https://github.com/Pocco81/true-zen.nvim/"; meta.homepage = "https://github.com/Pocco81/true-zen.nvim/";
}; };
trust-vim = buildVimPlugin {
pname = "trust.vim";
version = "2022-04-14";
src = fetchFromGitHub {
owner = "tesaguri";
repo = "trust.vim";
rev = "3e17b29ff13f862eeda269d7ce0260571dab6cb7";
sha256 = "1zvxjgyzzhnza2gv528dvyp7m1nvsz5gjn0qp65jn0k7y4gh3nnl";
};
meta.homepage = "https://github.com/tesaguri/trust.vim/";
};
tslime-vim = buildVimPlugin { tslime-vim = buildVimPlugin {
pname = "tslime.vim"; pname = "tslime.vim";
version = "2020-09-09"; version = "2020-09-09";

View File

@ -933,6 +933,7 @@ https://github.com/tremor-rs/tremor-vim/,,
https://github.com/cappyzawa/trim.nvim/,, https://github.com/cappyzawa/trim.nvim/,,
https://github.com/folke/trouble.nvim/,, https://github.com/folke/trouble.nvim/,,
https://github.com/Pocco81/true-zen.nvim/,, https://github.com/Pocco81/true-zen.nvim/,,
https://github.com/tesaguri/trust.vim/,HEAD,
https://github.com/jgdavey/tslime.vim/,, https://github.com/jgdavey/tslime.vim/,,
https://github.com/Quramy/tsuquyomi/,, https://github.com/Quramy/tsuquyomi/,,
https://github.com/folke/twilight.nvim/,, https://github.com/folke/twilight.nvim/,,

View File

@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "shellcheck"; name = "shellcheck";
publisher = "timonwong"; publisher = "timonwong";
version = "0.37.0"; version = "0.37.1";
sha256 = "1d0blynn6c2hz4y9fk7b5wsa3x168gxyycr5d05zqp0rx520m5wc"; sha256 = "sha256-JSS0GY76+C5xmkQ0PNjt2Nu/uTUkfiUqmPL51r64tl0=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
jq jq

View File

@ -30,21 +30,21 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz"; archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = { sha256 = {
x86_64-linux = "0kr83pbjbyrpkhhpr432nr0kcjnvra5vwq2zhpdv1p2g1981dbxf"; x86_64-linux = "14m9w7wkg1704apd4d46yi6zwdlbrx2rp3fry9ffk2nn6kkahwk2";
x86_64-darwin = "0vlbd4y649r5v61322vm6fvdf3mrn2shw1vjh1q8wcbf2j84rgcl"; x86_64-darwin = "1cp74wdkva1zib04wxjby0h8r1c56g893kq5ksdj38404i2c5hdk";
aarch64-linux = "0bp3a928sqlr103884ljyahl3s4jchyvpcvk08a648wmb1f8ibxi"; aarch64-linux = "00yrdmi4c5m8r11gm7vw18qb5ddcwwg5mdk8s9ykzhmxhdrkcarm";
aarch64-darwin = "1dyg4f7hpvx1bpspghfpyqaj83xy47462zjql49zrdar17cq738r"; aarch64-darwin = "1jjhw60jcvj5brayarg8k6avxwaa00mwdn4lrkcdzbzzh1q4knvv";
armv7l-linux = "16ri5icgvzf3zfg170dciqyz46dcwlsx6vy4r2y4w1j2hbb7afzn"; armv7l-linux = "1jddc3fsv65mp95ybpprx8sz3mpnp6j2ghp4nflky8iawmzz183v";
}.${system} or throwSystem; }.${system} or throwSystem;
in in
callPackage ./generic.nix rec { callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release. # Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem. # This is important for the extension ecosystem.
version = "1.88.0"; version = "1.88.1";
pname = "vscode" + lib.optionalString isInsiders "-insiders"; pname = "vscode" + lib.optionalString isInsiders "-insiders";
# This is used for VS Code - Remote SSH test # This is used for VS Code - Remote SSH test
rev = "5c3e652f63e798a5ac2f31ffd0d863669328dc4c"; rev = "e170252f762678dec6ca2cc69aba1570769a5d39";
executableName = "code" + lib.optionalString isInsiders "-insiders"; executableName = "code" + lib.optionalString isInsiders "-insiders";
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders"; longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
@ -68,7 +68,7 @@ in
src = fetchurl { src = fetchurl {
name = "vscode-server-${rev}.tar.gz"; name = "vscode-server-${rev}.tar.gz";
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable"; url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
sha256 = "0vy3r9xx1gv92pkyff5wddywfwgr2i12d3qrydw53kdjhdykamsk"; sha256 = "100nhm231gzav24lz84vxwxnqkn777kfn0fkkjmdcd30kc7g7ig9";
}; };
}; };

View File

@ -4,7 +4,7 @@
, fetchYarnDeps , fetchYarnDeps
, makeDesktopItem , makeDesktopItem
, copyDesktopItems , copyDesktopItems
, prefetch-yarn-deps , fixup-yarn-lock
, makeWrapper , makeWrapper
, autoSignDarwinBinariesHook , autoSignDarwinBinariesHook
, nodejs , nodejs
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
prefetch-yarn-deps fixup-yarn-lock
makeWrapper makeWrapper
nodejs nodejs
yarn yarn

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "geoipupdate"; pname = "geoipupdate";
version = "6.1.0"; version = "7.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "maxmind"; owner = "maxmind";
repo = "geoipupdate"; repo = "geoipupdate";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-/iLWy3yKO34nnn5ygAewR036PzgUGIqdhXNK4fx3Ym8="; sha256 = "sha256-OWo8puUjzMZXZ80HMpCrvRGUVdclnSxk7rHR5egOU1Y=";
}; };
vendorHash = "sha256-jW5/09sOUvPZVM1wzL4xg/a14kZ0KsM8e+zEQoADsl4="; vendorHash = "sha256-MApZUtI9JewMBbImuV3vsNG89UvCfxcBg3TZiuk/nvg=";
ldflags = [ "-X main.version=${version}" ]; ldflags = [ "-X main.version=${version}" ];

View File

@ -16,13 +16,13 @@ let
}; };
in mkDerivation rec { in mkDerivation rec {
pname = "golden-cheetah"; pname = "golden-cheetah";
version = "3.6"; version = "3.7-DEV2404";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GoldenCheetah"; owner = "GoldenCheetah";
repo = "GoldenCheetah"; repo = "GoldenCheetah";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Ntim1/ZPaTPCHQ5p8xF5LWpqq8+OgkPfaQqqysv9j/c="; hash = "sha256-u2igcnOulgJGZT46/Z3vSsce9mr3VsxkD3mTeQPvUOg=";
}; };
buildInputs = [ buildInputs = [

View File

@ -24,6 +24,8 @@ let
./575.patch ./575.patch
]; ];
strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
autoconf autoconf
automake automake
@ -34,6 +36,7 @@ let
wrapGAppsHook wrapGAppsHook
wrapPython wrapPython
gobject-introspection gobject-introspection
python
]; ];
configureFlags = [ configureFlags = [
@ -49,7 +52,6 @@ let
buildInputs = [ buildInputs = [
gtk3 gtk3
python
] ++ lib.optional withRandr libxcb ] ++ lib.optional withRandr libxcb
++ lib.optional withGeoclue geoclue ++ lib.optional withGeoclue geoclue
++ lib.optional withDrm libdrm ++ lib.optional withDrm libdrm

View File

@ -1,4 +1,4 @@
{ stdenv, fetchYarnDeps, prefetch-yarn-deps, callPackage, nodejs }: { stdenv, fetchYarnDeps, fixup-yarn-lock, callPackage, nodejs }:
let let
common = callPackage ./common.nix { }; common = callPackage ./common.nix { };
in in
@ -14,7 +14,7 @@ stdenv.mkDerivation {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
prefetch-yarn-deps fixup-yarn-lock
nodejs nodejs
nodejs.pkgs.yarn nodejs.pkgs.yarn
]; ];

View File

@ -2,13 +2,15 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tiramisu"; pname = "tiramisu";
version = "2.0.20211107"; # FIXME: once a newer release in upstream is available
version = "2.0-unstable-2023-03-29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Sweets"; owner = "Sweets";
repo = pname; repo = "tiramisu";
rev = version; # FIXME: use the current HEAD commit as upstream has no releases since 2021
sha256 = "1n1x1ybbwbanibw7b90k7v4cadagl41li17hz2l8s2sapacvq3mw"; rev = "5dddd83abd695bfa15640047a97a08ff0a8d9f9b";
hash = "sha256-owYk/YFwJbqO6/dbGKPE8SnmmH4KvH+o6uWptqQtpfI=";
}; };
buildInputs = [ glib ]; buildInputs = [ glib ];

View File

@ -12,7 +12,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "waylock"; pname = "waylock";
version = "0.6.5"; version = "1.0.0";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
repo = "waylock"; repo = "waylock";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-wvZrRPZobDh+rB3RSaRrz0xDHuYwT2eoQEu3AbYKn8Y="; hash = "sha256-Z5YNaR+jocJ4hS7NT8oAlrMnqNfD8KRzOyyqdVGDSl0=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,20 +1,20 @@
{ {
beta = import ./browser.nix { beta = import ./browser.nix {
channel = "beta"; channel = "beta";
version = "124.0.2478.19"; version = "124.0.2478.39";
revision = "1"; revision = "1";
hash = "sha256-+CanF7AadFQJj3t8OnZyoxPG2f2KO2e+EVBofKG3slg="; hash = "sha256-0KQU/JS6hlv2SLMB8RKyITUiodByBUstrhcwIefn3Yw=";
}; };
dev = import ./browser.nix { dev = import ./browser.nix {
channel = "dev"; channel = "dev";
version = "125.0.2492.1"; version = "125.0.2518.0";
revision = "1"; revision = "1";
hash = "sha256-S6DfXJfxR8FsHyRtCcvUialaVYP/1rPivjRVSm9XAtg="; hash = "sha256-q4TVpO0SxSSLMv/NtmJIOzClT2WqUss2qfE5vgj4O7E=";
}; };
stable = import ./browser.nix { stable = import ./browser.nix {
channel = "stable"; channel = "stable";
version = "123.0.2420.81"; version = "123.0.2420.97";
revision = "1"; revision = "1";
hash = "sha256-3c4DHs0p2YDW17nzCXB+O6PR9wTMb9h98EvN11imvsM="; hash = "sha256-q7Pcbi0JQr/wvKIrgueD9f2Z6v1DMoD2bcRJKGqDYjs=";
}; };
} }

View File

@ -90,7 +90,7 @@ let
++ lib.optionals mediaSupport [ ffmpeg ] ++ lib.optionals mediaSupport [ ffmpeg ]
); );
version = "13.0.13"; version = "13.0.14";
sources = { sources = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
@ -102,7 +102,7 @@ let
"https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz" "https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
"https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
]; ];
hash = "sha256-CAJJs14U9zsl5PiyZIwXYZG4dZz+Cqn7sD9u3S+/WvA="; hash = "sha256-z7fZtq+jnoAi6G8RNahGtP1LXeOXU/2wYz5ha2ddAeM=";
}; };
}; };

View File

@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
++ lib.optionals mediaSupport [ ffmpeg ] ++ lib.optionals mediaSupport [ ffmpeg ]
); );
version = "13.0.13"; version = "13.0.14";
sources = { sources = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz" "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
]; ];
hash = "sha256-l7Ka8vjVX67ZPPzRnQixtki5/cYhP6P/J91CyGPnwfI="; hash = "sha256-UWR2zMVXa6QMz1EIWJf43Vmj14ZIaug105esxeSd0KU=";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz" "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz" "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
]; ];
hash = "sha256-Ro9F3SZiagtj3AnDOtHmyy1G/KOi/O9M3f775qrZig4="; hash = "sha256-n+qj3IY4z+erOg4iUkQ4CP3rtJASTeKPg7beZRdesw4=";
}; };
}; };

View File

@ -24,7 +24,7 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "vivaldi"; pname = "vivaldi";
version = "6.6.3271.57"; version = "6.6.3271.61";
suffix = { suffix = {
aarch64-linux = "arm64"; aarch64-linux = "arm64";
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb"; url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
hash = { hash = {
aarch64-linux = "sha256-v/UG4eL/66i/0sSqN8JmJJIEjHzJjTTDZLRzLMJpJMA="; aarch64-linux = "sha256-Rcc/pufINOQJlkQI6KkWVZtnh3KvKLS6jRWQNTxPFmU=";
x86_64-linux = "sha256-uVrEVf9mePqalU2OJRMj0Zy9d7jDXwsdMwEQhn9uUh8="; x86_64-linux = "sha256-Xt4pLB23VZ/j9g/QCOQTrrhQduxs1nB4wyYkBefFPIQ=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
}; };

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "2.10.6"; version = "2.10.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-tKZQVI2WiqsPIMHCBGJHcZYk4gOoshiGA0WPyeoxvok="; hash = "sha256-0C8lVQrFxrk9ym4aCz0PhUS2iByx9rj5Id0xFIq4Efc=";
}; };
proxyVendor = true; # darwin/linux hash mismatch proxyVendor = true; # darwin/linux hash mismatch

View File

@ -20,13 +20,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubernetes"; pname = "kubernetes";
version = "1.29.3"; version = "1.29.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = "kubernetes"; repo = "kubernetes";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-mtYxFy2d892uMLrtaR6ao07gjbThuGa7bzauwvJ0WOo="; hash = "sha256-7Rxbcsl77iFiHkU/ovyn74aXs/i5G/m5h5Ii0y1CRho=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubevpn"; pname = "kubevpn";
version = "2.2.4"; version = "2.2.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "KubeNetworks"; owner = "KubeNetworks";
repo = "kubevpn"; repo = "kubevpn";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-taeCOmjZqULxQf4dgLzSYgN43fFYH04Ev4O/SHHG+xI="; hash = "sha256-I4szQNRBW3M+QNwsfkJZlrZL3jJXcXmD2KnFF/E+jaE=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -82,9 +82,9 @@ rec {
nomad_1_7 = generic { nomad_1_7 = generic {
buildGoModule = buildGo121Module; buildGoModule = buildGo121Module;
version = "1.7.6"; version = "1.7.7";
sha256 = "sha256-rEWXQwkW/muX3D0An3WmHCoboPACFCrSG7Tyzor2wnQ="; sha256 = "sha256-4nuRheidR6rIoytrnDQdIP69f+sBLJ3Ias5DvqVaLFc=";
vendorHash = "sha256-95yUtNfN/50LjWHHReaB4/riUqy8J67099bP8Ua7gRw="; vendorHash = "sha256-ZuaD8iDsT+/eW0QUavf485R804Jtjl76NcQWYHA8QII=";
license = lib.licenses.bsl11; license = lib.licenses.bsl11;
passthru.tests.nomad = nixosTests.nomad; passthru.tests.nomad = nixosTests.nomad;
preCheck = '' preCheck = ''

View File

@ -167,8 +167,8 @@ rec {
mkTerraform = attrs: pluggable (generic attrs); mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform { terraform_1 = mkTerraform {
version = "1.8.0"; version = "1.8.1";
hash = "sha256-An/ElR1tXQSb9x26R5o9gcb4XKTeVxlv+72Whcrdeoc="; hash = "sha256-q/r1KK0svdK/5Za4bqU6bGgTcWmG+YZFJUFRKqPAWSw=";
vendorHash = "sha256-xpgGceAA+kvwUp4T0m9rnbPoZ3uJHU2KIRsrcGr8dRo="; vendorHash = "sha256-xpgGceAA+kvwUp4T0m9rnbPoZ3uJHU2KIRsrcGr8dRo=";
patches = [ ./provider-path-0_15.patch ]; patches = [ ./provider-path-0_15.patch ];
passthru = { passthru = {

View File

@ -2,7 +2,7 @@
, stdenvNoCC , stdenvNoCC
, version, src , version, src
, fetchYarnDeps , fetchYarnDeps
, prefetch-yarn-deps, yarn, nodejs , fixup-yarn-lock, yarn, nodejs
}: }:
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
@ -10,7 +10,7 @@ stdenvNoCC.mkDerivation rec {
inherit src version; inherit src version;
nativeBuildInputs = [ prefetch-yarn-deps yarn nodejs ]; nativeBuildInputs = [ fixup-yarn-lock yarn nodejs ];
yarnOfflineCache = fetchYarnDeps { yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/web/yarn.lock"; yarnLock = "${src}/web/yarn.lock";

View File

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "newsboat"; pname = "newsboat";
version = "2.34"; version = "2.35";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "newsboat"; owner = "newsboat";
repo = "newsboat"; repo = "newsboat";
rev = "r${version}"; rev = "r${version}";
hash = "sha256-knF+N/HHL/E6C973t+ww5XTLV2thwy7lMAeqTyXspHY="; hash = "sha256-WbicKP46N8MVjUeerYUdcHJO5Qf7rQFyYCpxexd2wDY=";
}; };
cargoHash = "sha256-IsDym+tqF040SxCJF575OPm45IROYMFsCrxJcM1SAJ4="; cargoHash = "sha256-B6U+DxIRm9Sn4x+dZCfNKENNDsTUVZFT6i0Yz47gjTs=";
# TODO: Check if that's still needed # TODO: Check if that's still needed
postPatch = lib.optionalString stdenv.isDarwin '' postPatch = lib.optionalString stdenv.isDarwin ''

View File

@ -3,7 +3,7 @@
, fetchFromGitHub , fetchFromGitHub
, makeWrapper , makeWrapper
, makeDesktopItem , makeDesktopItem
, prefetch-yarn-deps , fixup-yarn-lock
, yarn , yarn
, nodejs , nodejs
, fetchYarnDeps , fetchYarnDeps
@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
sha256 = desktopYarnHash; sha256 = desktopYarnHash;
}; };
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs makeWrapper jq ] nativeBuildInputs = [ yarn fixup-yarn-lock nodejs makeWrapper jq ]
++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ]; ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
inherit seshat; inherit seshat;

View File

@ -6,7 +6,7 @@
, writeText , writeText
, jq , jq
, yarn , yarn
, prefetch-yarn-deps , fixup-yarn-lock
, nodejs , nodejs
, jitsi-meet , jitsi-meet
}: }:
@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
sha256 = webYarnHash; sha256 = webYarnHash;
}; };
nativeBuildInputs = [ yarn prefetch-yarn-deps jq nodejs ]; nativeBuildInputs = [ yarn fixup-yarn-lock jq nodejs ];
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild

View File

@ -1,4 +1,4 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, prefetch-yarn-deps, CoreServices, fetchYarnDeps, removeReferencesTo }: { lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, fixup-yarn-lock, CoreServices, fetchYarnDeps, removeReferencesTo }:
let let
pinData = lib.importJSON ./pin.json; pinData = lib.importJSON ./pin.json;
@ -16,7 +16,7 @@ in rustPlatform.buildRustPackage rec {
sourceRoot = "${src.name}/seshat-node/native"; sourceRoot = "${src.name}/seshat-node/native";
nativeBuildInputs = [ nodejs python3 yarn prefetch-yarn-deps ]; nativeBuildInputs = [ nodejs python3 yarn fixup-yarn-lock ];
buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices; buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices;
npm_config_nodedir = nodejs; npm_config_nodedir = nodejs;

View File

@ -3,7 +3,7 @@
, fetchFromGitHub , fetchFromGitHub
, fetchYarnDeps , fetchYarnDeps
, yarn , yarn
, prefetch-yarn-deps , fixup-yarn-lock
, nodejs , nodejs
}: }:
@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-N9lUAhfYLlEAIaWSNS3Ecq+aBTz+f7Z22Sclwj9rp6w="; hash = "sha256-N9lUAhfYLlEAIaWSNS3Ecq+aBTz+f7Z22Sclwj9rp6w=";
}; };
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs ]; nativeBuildInputs = [ yarn fixup-yarn-lock nodejs ];
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure

View File

@ -21,6 +21,7 @@
, autoPatchelfHook , autoPatchelfHook
, makeShellWrapper , makeShellWrapper
, wrapGAppsHook , wrapGAppsHook
, commandLineArgs ? ""
}: }:
let let
@ -83,6 +84,7 @@ stdenv.mkDerivation {
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
--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}}" \
--add-flags ${lib.escapeShellArg commandLineArgs} \
"''${gappsWrapperArgs[@]}" "''${gappsWrapperArgs[@]}"
# Remove bundled libraries # Remove bundled libraries

View File

@ -7,7 +7,7 @@
, yarn , yarn
, nodejs , nodejs
, fetchYarnDeps , fetchYarnDeps
, prefetch-yarn-deps , fixup-yarn-lock
, electron , electron
, libnotify , libnotify
, libpulseaudio , libpulseaudio
@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-jBwyIyiWeqNmOnxmVOr7c4oMWwHElEjM25sShhTMi78="; hash = "sha256-jBwyIyiWeqNmOnxmVOr7c4oMWwHElEjM25sShhTMi78=";
}; };
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ]; nativeBuildInputs = [ yarn fixup-yarn-lock nodejs copyDesktopItems makeWrapper ];
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure

View File

@ -63,14 +63,14 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "4.16.7"; version = "4.16.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "telegramdesktop"; owner = "telegramdesktop";
repo = "tdesktop"; repo = "tdesktop";
rev = "v${version}"; rev = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-+BXuFHXGOgpmAX7wsGLxZxfzvNsntFLtd+Obhb339Yc="; hash = "sha256-M8wFhuTTEJippgvS93LNRqREV2TGF04ccps5oOmSr+0=";
}; };
patches = [ patches = [

View File

@ -4,7 +4,7 @@
, fetchYarnDeps , fetchYarnDeps
, nodejs , nodejs
, yarn , yarn
, prefetch-yarn-deps , fixup-yarn-lock
, python3 , python3
, npmHooks , npmHooks
, darwin , darwin
@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-MM6SgVT7Pjdu96A4eWRucEzT7uNPxBqUDgHKl8mH2C0="; hash = "sha256-MM6SgVT7Pjdu96A4eWRucEzT7uNPxBqUDgHKl8mH2C0=";
}; };
nativeBuildInputs = [ nodejs yarn prefetch-yarn-deps python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools; nativeBuildInputs = [ nodejs yarn fixup-yarn-lock python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools;
buildInputs = [ sqlite ]; buildInputs = [ sqlite ];
configurePhase = '' configurePhase = ''

View File

@ -27,13 +27,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "planify"; pname = "planify";
version = "4.5.12"; version = "4.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "alainm23"; owner = "alainm23";
repo = "planify"; repo = "planify";
rev = version; rev = version;
hash = "sha256-Aj2kvffLl8vEqzirAy45E+jGB9iRp2mSYq0YWJ3nrj8="; hash = "sha256-vyw8SjI8EM9giYpAsCNppgSydPEBNz2sbFahEKmKe6w=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "cloudlog"; pname = "cloudlog";
version = "2.6.8"; version = "2.6.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "magicbug"; owner = "magicbug";
repo = "Cloudlog"; repo = "Cloudlog";
rev = version; rev = version;
hash = "sha256-8D8owjONUMpRpFqKvmxKERCprvHQ1DCavNfqW9VTKAE="; hash = "sha256-DyBo56NS15s+t9Dl8xCC7MQAqMmZ91FYUYOV4vyJ/Yo=";
}; };
postPatch = '' postPatch = ''

View File

@ -25,13 +25,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "freedv"; pname = "freedv";
version = "1.9.8"; version = "1.9.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "drowe67"; owner = "drowe67";
repo = "freedv-gui"; repo = "freedv-gui";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-JbLP65fC6uHrHXpSUwtgYHB+VLfheo5RU3C44lx8QlQ="; hash = "sha256-i0SVu3txC+JUp0P6cFlmn/66lOmii7JMGIvc43nZoOE=";
}; };
postPatch = lib.optionalString stdenv.isDarwin '' postPatch = lib.optionalString stdenv.isDarwin ''

View File

@ -62,13 +62,13 @@ let
in in
buildPythonApplication rec { buildPythonApplication rec {
pname = "openwebrx"; pname = "openwebrx";
version = "1.2.0"; version = "1.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jketterl"; owner = "jketterl";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-7gcgwa9vQT2u8PQusuXKted2Hk0K+Zk6ornSG1K/D4c="; hash = "sha256-i3Znp5Sxs/KtJazHh2v9/2P+3cEocWB5wIpF7E4pK9s=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2 }: { lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2, copyDesktopItems, makeDesktopItem }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "soundmodem"; pname = "soundmodem";
@ -9,13 +9,26 @@ stdenv.mkDerivation rec {
sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z"; sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [
pkg-config
copyDesktopItems
];
buildInputs = [ alsa-lib audiofile gtk2 libxml2 ]; buildInputs = [ alsa-lib audiofile gtk2 libxml2 ];
patches = [ ./matFix.patch ]; patches = [ ./matFix.patch ];
doCheck = true; doCheck = true;
desktopItems = [
(makeDesktopItem {
name = "SoundmodemConfig";
exec = "soundmodemconfig";
desktopName = "SoundModemConfig";
comment = "Audio based modem for ham radio supporting ax.25";
categories = [ "Audio" ];
})
];
meta = with lib; { meta = with lib; {
description = "Audio based modem for ham radio supporting ax.25"; description = "Audio based modem for ham radio supporting ax.25";
longDescription = '' longDescription = ''

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bcftools"; pname = "bcftools";
version = "1.19"; version = "1.20";
src = fetchurl { src = fetchurl {
url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2"; url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-eCtfG8aQQVGSIx6CITs0k7BH9F5jDcjvbxVNYSarPmg="; sha256 = "sha256-MSuDKd5RMN06N2eMcSlR5h5XcVV8cSmnCjJ6MA/ahiA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -27,7 +27,7 @@
}: }:
let let
version = "1.17.1"; version = "1.17.2";
# build stimuli file for PGO build and the script to generate it # build stimuli file for PGO build and the script to generate it
# independently of the foot's build, so we can cache the result # independently of the foot's build, so we can cache the result
@ -99,7 +99,7 @@ stdenv.mkDerivation {
owner = "dnkl"; owner = "dnkl";
repo = "foot"; repo = "foot";
rev = version; rev = version;
hash = "sha256-B6RhzsOPwczPLJRx3gBFZZvklwx9IwqplRG2vsAPIlg="; hash = "sha256-p+qaWHBrUn6YpNyAmQf6XoQyO3degHP5oMN53/9gIr4=";
}; };
separateDebugInfo = true; separateDebugInfo = true;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "2.47.0"; version = "2.48.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-vLnz0VDp8mTYBWPPidqw9SUvkn7S1jMTLN1RQyU9YnE="; hash = "sha256-8vQQzLGb1cHeNJC/aUZbROfRoUtuujEKoLWBgLZnhls=";
}; };
vendorHash = "sha256-5GjU6A2QLDxrTMxaBCOniSX56Undfcu+dhfC5tc16V0="; vendorHash = "sha256-rQtRBXhG5fF+3cIIv9i5r8Kd9YeIq/aDLAw8Rqxn6ww=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View File

@ -10,7 +10,7 @@
}: }:
let let
version = "5.12.194"; version = "5.12.196";
in in
rustPlatform.buildRustPackage { rustPlatform.buildRustPackage {
pname = "git-mit"; pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth"; owner = "PurpleBooth";
repo = "git-mit"; repo = "git-mit";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-9ITy2VPLIunSLSNx4EXbvxZ7V/Kr+DwmjzDVj/QVGHs="; hash = "sha256-vv60+8H6WQes+xVJRsgLppwQ/DkQbfNC6tRx2TB/4HQ=";
}; };
cargoHash = "sha256-6R+T0BSgT6IivugkXXsX5xJ2c3/J3FnLY3ZvcfYW53E="; cargoHash = "sha256-jK2GTI+T7Ie5cdQQQHh2aj6Egb/5BxsfJkFrSo+z7Pc=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View File

@ -20,12 +20,12 @@
buildGoModule rec { buildGoModule rec {
pname = "gitea"; pname = "gitea";
version = "1.21.10"; version = "1.21.11";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI # not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl { src = fetchurl {
url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz"; url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
hash = "sha256-g/aDRIAKaPi8AWWJL4N8CZt2N4HBEWK7xSBvjrcPDD8="; hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -2,7 +2,7 @@
, ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl , ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl
, defaultGemConfig, buildRubyGem , defaultGemConfig, buildRubyGem
, gitlabEnterprise ? false, callPackage, yarn , gitlabEnterprise ? false, callPackage, yarn
, prefetch-yarn-deps, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config , fixup-yarn-lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
, cargo, rustc, rustPlatform , cargo, rustc, rustPlatform
}: }:
@ -94,7 +94,7 @@ let
sha256 = data.yarn_hash; sha256 = data.yarn_hash;
}; };
nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert prefetch-yarn-deps ]; nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert fixup-yarn-lock ];
patches = [ patches = [
# Since version 12.6.0, the rake tasks need the location of git, # Since version 12.6.0, the rake tasks need the location of git,

View File

@ -1,55 +0,0 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, libiconv
, openssl
, pkg-config
, xclip
, AppKit
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "gitui";
version = "0.25.2";
src = fetchFromGitHub {
owner = "extrawurst";
repo = pname;
rev = "v${version}";
hash = "sha256-1sBuyY6lpxb/Vlpy6pi7YP69HZID6D97ZkVLbPEZ4Qw=";
};
cargoHash = "sha256-S8Oy5DII05430nkRJmMgZsb4fUIks2zliDea9RycH3E=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
++ lib.optional stdenv.isLinux xclip
++ lib.optionals stdenv.isDarwin [ libiconv Security AppKit ];
# Needed to get openssl-sys to use pkg-config.
OPENSSL_NO_VENDOR = 1;
# The cargo config overrides linkers for some targets, breaking the build
# on e.g. `aarch64-linux`. These overrides are not required in the Nix
# environment: delete them.
postPatch = "rm .cargo/config";
# Getting app_config_path fails with a permission denied
checkFlags = [
"--skip=keys::key_config::tests::test_symbolic_links"
];
meta = with lib; {
description = "Blazing fast terminal-ui for Git written in Rust";
homepage = "https://github.com/extrawurst/gitui";
changelog = "https://github.com/extrawurst/gitui/blob/v${version}/CHANGELOG.md";
mainProgram = "gitui";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne yanganto mfrw ];
};
}

View File

@ -13,7 +13,7 @@
, fetchYarnDeps , fetchYarnDeps
, yarn , yarn
, nodejs , nodejs
, prefetch-yarn-deps , fixup-yarn-lock
, glibcLocales , glibcLocales
, libiconv , libiconv
, Cocoa , Cocoa
@ -66,7 +66,7 @@ let
inherit version; inherit version;
nativeBuildInputs = [ nativeBuildInputs = [
prefetch-yarn-deps fixup-yarn-lock
nodejs nodejs
yarn yarn
]; ];

View File

@ -11,9 +11,9 @@ in
} { }; } { };
sublime-merge-dev = common { sublime-merge-dev = common {
buildVersion = "2092"; buildVersion = "2094";
dev = true; dev = true;
aarch64sha256 = "3QMDynXMVB4QVtM8EPbZ8I4m+5sEjzs8XN+jEoMaktM="; aarch64sha256 = "ZJgq971EPzq+BWxTQAoX6TgUmTfpf9sI4CHPcvgPTfI=";
x64sha256 = "S9E+wRvO41Eq+PLA/J+sjBIAn6yz715Wg9bKRW2Eobg="; x64sha256 = "6FLfszhP+BGHX5FrycMlznREmGDLyDyo6rgmqxhtCak=";
} { }; } { };
} }

View File

@ -9,7 +9,7 @@
{ attrPath }: { attrPath }:
let let
url = "http://mirrors.kodi.tv/addons/nexus/addons.xml.gz"; url = "http://mirrors.kodi.tv/addons/omega/addons.xml.gz";
updateScript = writeShellScript "update.sh" '' updateScript = writeShellScript "update.sh" ''
set -ex set -ex

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "arrow"; pname = "arrow";
namespace = "script.module.arrow"; namespace = "script.module.arrow";
version = "1.2.3"; version = "1.2.3";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/script.module.arrow/script.module.arrow-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.module.arrow/script.module.arrow-${version}.zip";
sha256 = "sha256-Et+9FJT1dRE1dFOrAQ70HJJcfylyLsiyay9wPJcSOXs="; sha256 = "sha256-Et+9FJT1dRE1dFOrAQ70HJJcfylyLsiyay9wPJcSOXs=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "arteplussept"; pname = "arteplussept";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "1.4.2"; version = "1.4.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
hash = "sha256-dqxGKaOnEYOI33Aw76zbjma5z7MqOUh367dFsV87olU="; hash = "sha256-dqxGKaOnEYOI33Aw76zbjma5z7MqOUh367dFsV87olU=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, cacert }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, cacert }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "certifi"; pname = "certifi";
namespace = "script.module.certifi"; namespace = "script.module.certifi";
version = "2023.5.7"; version = "2023.5.7";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-NQbjx+k9fnQMYLLMR5+N5NSuDcXEzZjlhGPA3qSmjfI="; sha256 = "sha256-NQbjx+k9fnQMYLLMR5+N5NSuDcXEzZjlhGPA3qSmjfI=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "chardet"; pname = "chardet";
namespace = "script.module.chardet"; namespace = "script.module.chardet";
version = "5.1.0"; version = "5.1.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-cIQIX6LVAoGf1sBRKWonXJd3XYqGOa5WIUttabV0HeU="; sha256 = "sha256-cIQIX6LVAoGf1sBRKWonXJd3XYqGOa5WIUttabV0HeU=";
}; };

View File

@ -14,6 +14,8 @@ let
postPatch = '' postPatch = ''
# remove addons already included in the base kodi package # remove addons already included in the base kodi package
rm -r addons/game.controller.default rm -r addons/game.controller.default
rm -r addons/game.controller.keyboard
rm -r addons/game.controller.mouse
rm -r addons/game.controller.snes rm -r addons/game.controller.snes
''; '';

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, six }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "dateutil"; pname = "dateutil";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "2.8.2"; version = "2.8.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4="; sha256 = "sha256-iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "defusedxml"; pname = "defusedxml";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.6.0+matrix.1"; version = "0.6.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-jSl7lbFqR6hjZhHzxY69hDbs84LY3B5RYKzXnHou0Qg="; sha256 = "sha256-jSl7lbFqR6hjZhHzxY69hDbs84LY3B5RYKzXnHou0Qg=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "future"; pname = "future";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.18.3+matrix.1"; version = "0.18.3+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-jKO2Qxi54z6UiCmMkxU+2pog40K2yb8/KYbNPFYuSsQ="; sha256 = "sha256-jKO2Qxi54z6UiCmMkxU+2pog40K2yb8/KYbNPFYuSsQ=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "idna"; pname = "idna";
namespace = "script.module.idna"; namespace = "script.module.idna";
version = "3.4.0"; version = "3.4.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-wS1d1L18v4+RGwxDh7OpKRHB2A4qYwiq6b5mAz7l8Pk="; sha256 = "sha256-wS1d1L18v4+RGwxDh7OpKRHB2A4qYwiq6b5mAz7l8Pk=";
}; };

View File

@ -1,22 +1,22 @@
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss, gtest }: { stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, pugixml, glib, nspr, nss, gtest }:
let let
bento4 = fetchFromGitHub { bento4 = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "Bento4"; repo = "Bento4";
rev = "1.6.0-639-7-Omega"; rev = "1.6.0-641-${rel}";
sha256 = "sha256-d3znV88dLMbA4oUWsTZ7vS6WHOWzN7lIHgWPkR5Aixo="; sha256 = "sha256-vsFMDzH8JJecYw0qWKGCxnd/m5wn62mCKE2g2HwQhwI=";
}; };
in in
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "inputstream-adaptive"; pname = "inputstream-adaptive";
namespace = "inputstream.adaptive"; namespace = "inputstream.adaptive";
version = "20.3.18"; version = "21.4.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "inputstream.adaptive"; repo = "inputstream.adaptive";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "sha256-cjlUKrus4Dv48dCk6AlOgY2iZYTwT39tj2u7aq1P104="; sha256 = "sha256-Nzlm1AW/nW9chQAourKF0o2FSQmsr1MNhJ4gEO0/9sM=";
}; };
extraCMakeFlags = [ extraCMakeFlags = [
@ -26,7 +26,7 @@ buildKodiBinaryAddon rec {
extraNativeBuildInputs = [ gtest ]; extraNativeBuildInputs = [ gtest ];
extraBuildInputs = [ expat ]; extraBuildInputs = [ pugixml ];
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ]; extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];

View File

@ -3,13 +3,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "inputstream-ffmpegdirect"; pname = "inputstream-ffmpegdirect";
namespace = "inputstream.ffmpegdirect"; namespace = "inputstream.ffmpegdirect";
version = "unstable-20.5.0"; version = "21.3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "inputstream.ffmpegdirect"; repo = "inputstream.ffmpegdirect";
rev = rel; rev = "${version}-${rel}";
sha256 = "sha256-+u28Wzp2TonL5jaa5WJUr9igR6KiaxizZAX9jqqBUns="; sha256 = "sha256-pPufkDPHq5EsvC6YTsRX9TjqjIczOL/6Vc5HGDIe9Gk=";
}; };
extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ]; extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];

View File

@ -3,13 +3,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "inputstream-rtmp"; pname = "inputstream-rtmp";
namespace = "inputstream.rtmp"; namespace = "inputstream.rtmp";
version = "20.3.0"; version = "21.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "inputstream.rtmp"; repo = "inputstream.rtmp";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "sha256-VF2DpQXXU+rj76e/de5YB1T7dzeOjmO0dpsPVqEnMy4="; sha256 = "sha256-M6LFokWQRzBZ7inzRsMxyWzkV0XsGHh4d0CPhv1NCfI=";
}; };
extraBuildInputs = [ openssl rtmpdump zlib ]; extraBuildInputs = [ openssl rtmpdump zlib ];

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "inputstreamhelper"; pname = "inputstreamhelper";
namespace = "script.module.inputstreamhelper"; namespace = "script.module.inputstreamhelper";
version = "0.6.1+matrix.1"; version = "0.6.1+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-v5fRikswmP+KVbxYibD0NbCK8leUnFbya5EtF1FmS0I="; sha256 = "sha256-v5fRikswmP+KVbxYibD0NbCK8leUnFbya5EtF1FmS0I=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "invidious"; pname = "invidious";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.2.6"; version = "0.2.6";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/plugin.video.invidious/plugin.video.invidious-${version}+nexus.0.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/plugin.video.invidious/plugin.video.invidious-${version}+nexus.0.zip";
sha256 = "sha256-XnlnhvtHMh4uQTupW/SSOmaEV8xZrL61/6GoRpyKR0o="; sha256 = "sha256-XnlnhvtHMh4uQTupW/SSOmaEV8xZrL61/6GoRpyKR0o=";
}; };

View File

@ -5,13 +5,13 @@ in
buildKodiAddon rec { buildKodiAddon rec {
pname = "jellyfin"; pname = "jellyfin";
namespace = "plugin.video.jellyfin"; namespace = "plugin.video.jellyfin";
version = "0.7.12"; version = "1.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jellyfin"; owner = "jellyfin";
repo = "jellyfin-kodi"; repo = "jellyfin-kodi";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-m8msTBim4Ss8XaYqIn6GWXxoCio5ABbqhhgyb1T/Yhg="; sha256 = "sha256-i9lRPMHniUmKTeNSzgp6dF11uYOcjH3PgJEa+Jasx68=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "keymap"; pname = "keymap";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "1.1.5"; version = "1.1.5";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-wSztipTEGIqw1icsz+ziNxYuRZOFt3C66T1Ifap/ta0="; sha256 = "sha256-wSztipTEGIqw1icsz+ziNxYuRZOFt3C66T1Ifap/ta0=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "kodi-six"; pname = "kodi-six";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.1.3.1"; version = "0.1.3.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-nWz5CPoE0uVsZvWjI4q6y4ZKUnraTjTXLSJ1mK4YopI="; sha256 = "sha256-nWz5CPoE0uVsZvWjI4q6y4ZKUnraTjTXLSJ1mK4YopI=";
}; };

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "media.ccc.de"; pname = "media.ccc.de";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.3.0+matrix.1"; version = "0.3.0+matrix.1";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/plugin.video.media-ccc-de/plugin.video.media-ccc-de-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/plugin.video.media-ccc-de/plugin.video.media-ccc-de-${version}.zip";
hash = "sha256-T8J2HtPVDfaPU0gZEa0xVBzwjNInxkRFCCSxS53QhmU="; hash = "sha256-T8J2HtPVDfaPU0gZEa0xVBzwjNInxkRFCCSxS53QhmU=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "myconnpy"; pname = "myconnpy";
namespace = "script.module.myconnpy"; namespace = "script.module.myconnpy";
version = "8.0.33"; version = "8.0.33";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-NlLMq9RAdWu8rVsMc0FDe1HmQiVp5T7iBXbIH7HB5bI="; sha256 = "sha256-NlLMq9RAdWu8rVsMc0FDe1HmQiVp5T7iBXbIH7HB5bI=";
}; };

View File

@ -3,13 +3,13 @@
buildKodiAddon rec { buildKodiAddon rec {
pname = "netflix"; pname = "netflix";
namespace = "plugin.video.netflix"; namespace = "plugin.video.netflix";
version = "1.23.2"; version = "1.23.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CastagnaIT"; owner = "CastagnaIT";
repo = namespace; repo = namespace;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-/wHKwFZbuxK0iwlqvZpyfi0lnRkjm/HSn221IgCN7VQ="; hash = "sha256-tve7E7dK60BIHETdwt9hD3/5eEdJB6c6rhw4oDoLAKM=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -17,5 +17,7 @@ buildKodiAddon rec {
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
license = licenses.cc-by-nc-sa-30; license = licenses.cc-by-nc-sa-30;
broken = true; # no release for kodi 21
}; };
} }

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "radioparadise"; pname = "radioparadise";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "2.0.0"; version = "2.0.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/script.radioparadise/script.radioparadise-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.radioparadise/script.radioparadise-${version}.zip";
sha256 = "sha256-eRCP0XMQHmyDrZ8Y6RGFfxQ1r26/bWbE/PJz4PET7D8="; sha256 = "sha256-eRCP0XMQHmyDrZ8Y6RGFfxQ1r26/bWbE/PJz4PET7D8=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "requests-cache"; pname = "requests-cache";
namespace = "script.module.requests-cache"; namespace = "script.module.requests-cache";
version = "0.5.2+matrix.2"; version = "0.5.2+matrix.2";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-6M/v/ghS2TnSZhG8bREjxfEfcfLOmvA6hgsa7JUk9Dk="; sha256 = "sha256-6M/v/ghS2TnSZhG8bREjxfEfcfLOmvA6hgsa7JUk9Dk=";
}; };

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }: { lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
buildKodiAddon rec { buildKodiAddon rec {
pname = "requests"; pname = "requests";
namespace = "script.module.requests"; namespace = "script.module.requests";
version = "2.31.0"; version = "2.31.0";
src = fetchzip { src = fetchzip {
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip"; url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
sha256 = "sha256-05BSD5aoN2CTnjqaSKYMb93j5nIfLvpJHyeQsK++sTw="; sha256 = "sha256-05BSD5aoN2CTnjqaSKYMb93j5nIfLvpJHyeQsK++sTw=";
}; };

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