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;
name = "Kai Harries";
};
kai-tub = {
name = "Kai Norman Clasen";
github = "kai-tub";
githubId = 46302524;
};
kalbasit = {
email = "wael.nasreddine@gmail.com";
matrix = "@kalbasit:matrix.org";
@ -19400,6 +19405,12 @@
github = "sweenu";
githubId = 7051978;
};
swendel = {
name = "Sebastian Wendel";
email = "nixpkgs.aiX5ph@srx.digital";
github = "SebastianWendel";
githubId = 919570;
};
swesterfeld = {
email = "stefan@space.twc.de";
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
`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
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).
- [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.
- [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).
- [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).
- [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
[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.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.
- 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`.
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:

View File

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

View File

@ -153,11 +153,10 @@ in
'';
type = configType;
description = ''
The configuration of the Nix Packages collection. (For
details, see the Nixpkgs documentation.) It allows you to set
package configuration options.
Global configuration for Nixpkgs.
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).
Ignored when `nixpkgs.pkgs` is set.
Ignored when {option}`nixpkgs.pkgs` is set.
'';
};

View File

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

View File

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

View File

@ -6,13 +6,12 @@
{
services.xserver = {
enable = true;
displayManager.sddm.enable = true;
desktopManager.plasma5 = {
enable = true;
};
desktopManager.plasma5.enable = true;
libinput.enable = true; # for touchpad support on many laptops
};
services.displayManager.sddm.enable = true;
# Enable sound in virtualbox appliances.
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";
RootDirectory = "/run/gonic";
ReadWritePaths = "";
BindPaths = [
cfg.settings.playlists-path
];
BindReadOnlyPaths = [
# gonic can access scrobbling services
"-/etc/resolv.conf"

View File

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

View File

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

View File

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

View File

@ -31,6 +31,7 @@ let
"collectd"
"dmarc"
"dnsmasq"
"dnssec"
"domain"
"dovecot"
"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;
serviceOpts = {
serviceConfig = {
RestrictAddressFamilies = [ "AF_UNIX" ];
ExecStart = ''
${pkgs.prometheus-redis-exporter}/bin/redis_exporter \
-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.
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 = {
HOME = stateDir;
XDG_RUNTIME_DIR = "/run/${name}";

View File

@ -136,10 +136,16 @@ in
###### implementation
config = mkIf cfg.enable {
assertions = singleton
{ assertion = cfg.password == null || cfg.passwordFile == null;
message = "Cannot use both password and passwordFile for shadowsocks-libev";
};
assertions = [
{
# 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 = {
description = "shadowsocks-libev Daemon";

View File

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

View File

@ -164,7 +164,7 @@ let
${commonHttpConfig}
${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}
@ -978,6 +978,15 @@ in
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 {
type = types.bool;
default = true;
@ -1179,6 +1188,13 @@ in
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 {
inherit (cfg) group user;
cert = config.security.acme.certs.${name};

View File

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

View File

@ -22,8 +22,27 @@ let
'';
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" ];
makeGForgejoTest = type: nameValuePair type (makeTest {
makeForgejoTest = type: nameValuePair type (makeTest {
name = "forgejo-${type}";
meta.maintainers = with maintainers; [ bendlas emilylange ];
@ -36,21 +55,28 @@ let
settings.service.DISABLE_REGISTRATION = true;
settings."repository.signing".SIGNING_KEY = signingPrivateKeyId;
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;
specialisation.runner = {
inheritParentConfig = true;
configuration.services.gitea-actions-runner.instances."test" = {
enable = true;
name = "ci";
url = "http://localhost:3000";
labels = [
# don't require docker/podman
"native:host"
];
tokenFile = "/var/lib/forgejo/runner_token";
configuration.services.gitea-actions-runner = {
package = pkgs.forgejo-runner;
instances."test" = {
enable = true;
name = "ci";
url = "http://localhost:3000";
labels = [
# type ":host" does not depend on docker/podman/lxc
"native:host"
];
tokenFile = "/var/lib/forgejo/runner_token";
};
};
};
specialisation.dump = {
@ -62,11 +88,20 @@ let
};
};
};
client1 = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.git ];
};
client2 = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.git ];
client = { ... }: {
programs.git = {
enable = true;
config = {
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;
serverSystem = nodes.server.system.build.toplevel;
dumpFile = with nodes.server.specialisation.dump.configuration.services.forgejo.dump; "${backupDir}/${file}";
remoteUri = "forgejo@server:test/repo";
remoteUriCheckoutAction = "forgejo@server:test/checkout";
in
''
import json
GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no"
REPO = "forgejo@server:test/repo"
PRIVK = "${snakeOilPrivateKey}"
start_all()
client1.succeed("mkdir /tmp/repo")
client1.succeed("mkdir -p $HOME/.ssh")
client1.succeed(f"cat {PRIVK} > $HOME/.ssh/privk")
client1.succeed("chmod 0400 $HOME/.ssh/privk")
client1.succeed("git -C /tmp/repo init")
client1.succeed("echo hello world > /tmp/repo/testfile")
client1.succeed("git -C /tmp/repo add .")
client1.succeed("git config --global user.email test@localhost")
client1.succeed("git config --global user.name test")
client1.succeed("git -C /tmp/repo commit -m 'Initial import'")
client1.succeed(f"git -C /tmp/repo remote add origin {REPO}")
client.succeed("mkdir -p ~/.ssh")
client.succeed("(umask 0077; cat ${snakeOilPrivateKey} > ~/.ssh/privk)")
client.succeed("mkdir /tmp/repo")
client.succeed("git -C /tmp/repo init")
client.succeed("echo 'hello world' > /tmp/repo/testfile")
client.succeed("git -C /tmp/repo add .")
client.succeed("git -C /tmp/repo commit -m 'Initial import'")
client.succeed("git -C /tmp/repo remote add origin ${remoteUri}")
server.wait_for_unit("forgejo.service")
server.wait_for_open_port(3000)
@ -143,18 +175,14 @@ let
+ ' -d \'{"key":"${snakeOilPublicKey}","read_only":true,"title":"SSH"}\'''
)
client1.succeed(
f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git -C /tmp/repo push origin master"
)
client.succeed("git -C /tmp/repo push origin main")
client2.succeed("mkdir -p $HOME/.ssh")
client2.succeed(f"cat {PRIVK} > $HOME/.ssh/privk")
client2.succeed("chmod 0400 $HOME/.ssh/privk")
client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git clone {REPO}")
client2.succeed('test "$(cat repo/testfile | xargs echo -n)" = "hello world"')
client.succeed("git clone ${remoteUri} /tmp/repo-clone")
print(client.succeed("ls -lash /tmp/repo-clone"))
assert "hello world" == client.succeed("cat /tmp/repo-clone/testfile").strip()
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")
assert version == "2", f"git did not negotiate protocol version 2, but version {version} instead."
@ -164,7 +192,7 @@ let
timeout=10
)
with subtest("Testing runner registration"):
with subtest("Testing runner registration and action workflow"):
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"
)
@ -172,6 +200,52 @@ let
server.wait_for_unit("gitea-runner-test.service")
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"):
server.succeed("${serverSystem}/specialisation/dump/bin/switch-to-configuration test")
server.systemctl("start forgejo-dump")
@ -181,4 +255,4 @@ let
});
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";
nodes.machine = { ... }: {
systemd.tmpfiles.settings = {
"10-gonic" = {
"/tmp/music"."d" = {};
"/tmp/podcast"."d" = {};
"/tmp/playlists"."d" = {};
};
};
services.gonic = {
enable = true;
settings = {
music-path = [ "/tmp" ];
podcast-path = "/tmp";
music-path = [ "/tmp/music" ];
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
# just perform basic sanity check that the exporter is running and returns
# a failure.

View File

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

View File

@ -1,15 +1,17 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
, python3Packages , meson, ninja }:
{ lib, stdenv, fetchFromGitea, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
, python3Packages , meson, ninja, gitUpdater }:
stdenv.mkDerivation rec {
pname = "a2jmidid";
version = "9";
version = "12";
src = fetchFromGitHub {
owner = "linuxaudio";
repo = pname;
rev = version;
sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ=";
src = fetchFromGitea {
domain = "gitea.ladish.org";
owner = "LADI";
repo = "a2jmidid";
rev = "refs/tags/${version}";
fetchSubmodules = true;
hash = "sha256-PZKGhHmPMf0AucPruOLB9DniM5A3BKdghFCrd5pTzeM=";
};
nativeBuildInputs = [ pkg-config makeWrapper meson ninja ];
@ -21,9 +23,12 @@ stdenv.mkDerivation rec {
substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
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 ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
};

View File

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

View File

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

View File

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

View File

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

View File

@ -11111,6 +11111,18 @@ final: prev:
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 {
pname = "tslime.vim";
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/folke/trouble.nvim/,,
https://github.com/Pocco81/true-zen.nvim/,,
https://github.com/tesaguri/trust.vim/,HEAD,
https://github.com/jgdavey/tslime.vim/,,
https://github.com/Quramy/tsuquyomi/,,
https://github.com/folke/twilight.nvim/,,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -24,6 +24,8 @@ let
./575.patch
];
strictDeps = true;
nativeBuildInputs = [
autoconf
automake
@ -34,6 +36,7 @@ let
wrapGAppsHook
wrapPython
gobject-introspection
python
];
configureFlags = [
@ -49,7 +52,6 @@ let
buildInputs = [
gtk3
python
] ++ lib.optional withRandr libxcb
++ lib.optional withGeoclue geoclue
++ 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
common = callPackage ./common.nix { };
in
@ -14,7 +14,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [
prefetch-yarn-deps
fixup-yarn-lock
nodejs
nodejs.pkgs.yarn
];

View File

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

View File

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

View File

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

View File

@ -90,7 +90,7 @@ let
++ lib.optionals mediaSupport [ ffmpeg ]
);
version = "13.0.13";
version = "13.0.14";
sources = {
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.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 ]
);
version = "13.0.13";
version = "13.0.14";
sources = {
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.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
];
hash = "sha256-l7Ka8vjVX67ZPPzRnQixtki5/cYhP6P/J91CyGPnwfI=";
hash = "sha256-UWR2zMVXa6QMz1EIWJf43Vmj14ZIaug105esxeSd0KU=";
};
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.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";
in stdenv.mkDerivation rec {
pname = "vivaldi";
version = "6.6.3271.57";
version = "6.6.3271.61";
suffix = {
aarch64-linux = "arm64";
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
hash = {
aarch64-linux = "sha256-v/UG4eL/66i/0sSqN8JmJJIEjHzJjTTDZLRzLMJpJMA=";
x86_64-linux = "sha256-uVrEVf9mePqalU2OJRMj0Zy9d7jDXwsdMwEQhn9uUh8=";
aarch64-linux = "sha256-Rcc/pufINOQJlkQI6KkWVZtnh3KvKLS6jRWQNTxPFmU=";
x86_64-linux = "sha256-Xt4pLB23VZ/j9g/QCOQTrrhQduxs1nB4wyYkBefFPIQ=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "newsboat";
version = "2.34";
version = "2.35";
src = fetchFromGitHub {
owner = "newsboat";
repo = "newsboat";
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
postPatch = lib.optionalString stdenv.isDarwin ''

View File

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

View File

@ -6,7 +6,7 @@
, writeText
, jq
, yarn
, prefetch-yarn-deps
, fixup-yarn-lock
, nodejs
, jitsi-meet
}:
@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
sha256 = webYarnHash;
};
nativeBuildInputs = [ yarn prefetch-yarn-deps jq nodejs ];
nativeBuildInputs = [ yarn fixup-yarn-lock jq nodejs ];
buildPhase = ''
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
pinData = lib.importJSON ./pin.json;
@ -16,7 +16,7 @@ in rustPlatform.buildRustPackage rec {
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;
npm_config_nodedir = nodejs;

View File

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

View File

@ -21,6 +21,7 @@
, autoPatchelfHook
, makeShellWrapper
, wrapGAppsHook
, commandLineArgs ? ""
}:
let
@ -83,6 +84,7 @@ stdenv.mkDerivation {
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--add-flags ${lib.escapeShellArg commandLineArgs} \
"''${gappsWrapperArgs[@]}"
# Remove bundled libraries

View File

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

View File

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

View File

@ -4,7 +4,7 @@
, fetchYarnDeps
, nodejs
, yarn
, prefetch-yarn-deps
, fixup-yarn-lock
, python3
, npmHooks
, darwin
@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
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 ];
configurePhase = ''

View File

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

View File

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

View File

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

View File

@ -62,13 +62,13 @@ let
in
buildPythonApplication rec {
pname = "openwebrx";
version = "1.2.0";
version = "1.2.2";
src = fetchFromGitHub {
owner = "jketterl";
repo = pname;
rev = version;
sha256 = "sha256-7gcgwa9vQT2u8PQusuXKted2Hk0K+Zk6ornSG1K/D4c=";
hash = "sha256-i3Znp5Sxs/KtJazHh2v9/2P+3cEocWB5wIpF7E4pK9s=";
};
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 {
pname = "soundmodem";
@ -9,13 +9,26 @@ stdenv.mkDerivation rec {
sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
};
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [
pkg-config
copyDesktopItems
];
buildInputs = [ alsa-lib audiofile gtk2 libxml2 ];
patches = [ ./matFix.patch ];
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; {
description = "Audio based modem for ham radio supporting ax.25";
longDescription = ''

View File

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

View File

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

View File

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

View File

@ -10,7 +10,7 @@
}:
let
version = "5.12.194";
version = "5.12.196";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
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 ];

View File

@ -20,12 +20,12 @@
buildGoModule rec {
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
src = fetchurl {
url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
hash = "sha256-g/aDRIAKaPi8AWWJL4N8CZt2N4HBEWK7xSBvjrcPDD8=";
hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
};
vendorHash = null;

View File

@ -2,7 +2,7 @@
, ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl
, defaultGemConfig, buildRubyGem
, 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
}:
@ -94,7 +94,7 @@ let
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 = [
# 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
, yarn
, nodejs
, prefetch-yarn-deps
, fixup-yarn-lock
, glibcLocales
, libiconv
, Cocoa
@ -66,7 +66,7 @@ let
inherit version;
nativeBuildInputs = [
prefetch-yarn-deps
fixup-yarn-lock
nodejs
yarn
];

View File

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

View File

@ -9,7 +9,7 @@
{ attrPath }:
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" ''
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 {
pname = "arrow";
namespace = "script.module.arrow";
version = "1.2.3";
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=";
};

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
buildKodiAddon rec {
pname = "arteplussept";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "1.4.2";
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=";
};

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, cacert }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, cacert }:
buildKodiAddon rec {
pname = "certifi";
namespace = "script.module.certifi";
version = "2023.5.7";
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=";
};

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "chardet";
namespace = "script.module.chardet";
version = "5.1.0";
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=";
};

View File

@ -14,6 +14,8 @@ let
postPatch = ''
# remove addons already included in the base kodi package
rm -r addons/game.controller.default
rm -r addons/game.controller.keyboard
rm -r addons/game.controller.mouse
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 {
pname = "dateutil";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "2.8.2";
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=";
};

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "defusedxml";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.6.0+matrix.1";
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=";
};

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "future";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.18.3+matrix.1";
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=";
};

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "idna";
namespace = "script.module.idna";
version = "3.4.0";
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=";
};

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

View File

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

View File

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

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "inputstreamhelper";
namespace = "script.module.inputstreamhelper";
version = "0.6.1+matrix.1";
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=";
};

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 {
pname = "invidious";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.2.6";
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=";
};

View File

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

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }:
buildKodiAddon rec {
pname = "keymap";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "1.1.5";
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=";
};

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "kodi-six";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.1.3.1";
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=";
};

View File

@ -1,4 +1,4 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }:
buildKodiAddon rec {
pname = "media.ccc.de";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "0.3.0+matrix.1";
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=";
};

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "myconnpy";
namespace = "script.module.myconnpy";
version = "8.0.33";
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=";
};

View File

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

View File

@ -17,5 +17,7 @@ buildKodiAddon rec {
platforms = platforms.all;
maintainers = with maintainers; [ ];
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 {
pname = "radioparadise";
@ -6,7 +6,7 @@ buildKodiAddon rec {
version = "2.0.0";
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=";
};

View File

@ -1,11 +1,11 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
buildKodiAddon rec {
pname = "requests-cache";
namespace = "script.module.requests-cache";
version = "0.5.2+matrix.2";
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=";
};

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 {
pname = "requests";
namespace = "script.module.requests";
version = "2.31.0";
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=";
};

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