Merge master into haskell-updates
This commit is contained in:
commit
686828e7d4
|
@ -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";
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
uid = 1000;
|
uid = 1000;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.displayManager = {
|
services.displayManager = {
|
||||||
autoLogin = {
|
autoLogin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "demo";
|
user = "demo";
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
31
nixos/modules/programs/fcast-receiver.nix
Normal file
31
nixos/modules/programs/fcast-receiver.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
34
nixos/modules/programs/soundmodem.nix
Normal file
34
nixos/modules/programs/soundmodem.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,6 +31,7 @@ let
|
||||||
"collectd"
|
"collectd"
|
||||||
"dmarc"
|
"dmarc"
|
||||||
"dnsmasq"
|
"dnsmasq"
|
||||||
|
"dnssec"
|
||||||
"domain"
|
"domain"
|
||||||
"dovecot"
|
"dovecot"
|
||||||
"fastly"
|
"fastly"
|
||||||
|
|
|
@ -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; };
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -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} \
|
||||||
|
|
|
@ -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}";
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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};
|
||||||
|
|
|
@ -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 {};
|
||||||
|
|
|
@ -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)
|
||||||
|
|
19
nixos/tests/freshrss-none-auth.nix
Normal file
19
nixos/tests/freshrss-none-auth.nix
Normal 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"
|
||||||
|
'';
|
||||||
|
})
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
|
@ -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" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -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 =
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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/,,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}" ];
|
||||||
|
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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}");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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 ''
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 ''
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -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=";
|
||||||
} { };
|
} { };
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
Loading…
Reference in New Issue
Block a user