Merge master into haskell-updates
This commit is contained in:
commit
686828e7d4
|
@ -10207,6 +10207,11 @@
|
|||
githubId = 6544084;
|
||||
name = "Kai Harries";
|
||||
};
|
||||
kai-tub = {
|
||||
name = "Kai Norman Clasen";
|
||||
github = "kai-tub";
|
||||
githubId = 46302524;
|
||||
};
|
||||
kalbasit = {
|
||||
email = "wael.nasreddine@gmail.com";
|
||||
matrix = "@kalbasit:matrix.org";
|
||||
|
@ -19400,6 +19405,12 @@
|
|||
github = "sweenu";
|
||||
githubId = 7051978;
|
||||
};
|
||||
swendel = {
|
||||
name = "Sebastian Wendel";
|
||||
email = "nixpkgs.aiX5ph@srx.digital";
|
||||
github = "SebastianWendel";
|
||||
githubId = 919570;
|
||||
};
|
||||
swesterfeld = {
|
||||
email = "stefan@space.twc.de";
|
||||
github = "swesterfeld";
|
||||
|
|
|
@ -37,6 +37,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
|
||||
`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
|
||||
|
||||
- `teleport` has been upgraded from major version 14 to major version 15.
|
||||
Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/)
|
||||
and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124).
|
||||
|
||||
- A new option `systemd.sysusers.enable` was added. If enabled, users and
|
||||
groups are created with systemd-sysusers instead of with a custom perl script.
|
||||
|
||||
|
@ -127,12 +131,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||
|
||||
- [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
|
||||
|
||||
- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable).
|
||||
|
||||
- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
|
||||
|
||||
- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
|
||||
|
||||
- [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
|
||||
|
||||
- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
|
||||
|
||||
- [TigerBeetle](https://tigerbeetle.com/), a distributed financial accounting database designed for mission critical safety and performance. Available as [services.tigerbeetle](#opt-services.tigerbeetle.enable).
|
||||
|
||||
- [go-camo](https://github.com/cactus/go-camo), a secure image proxy server. Available as [services.go-camo](#opt-services.go-camo.enable).
|
||||
|
@ -279,6 +287,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||
release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19) and
|
||||
[v20](https://github.com/systemd/mkosi/releases/tag/v20) for a list of changes.
|
||||
|
||||
- `gonic` has been updated to v0.16.4. Config now requires `playlists-path` to be set. See the rest of the [v0.16.0 release notes](https://github.com/sentriz/gonic/releases/tag/v0.16.0) for more details.
|
||||
|
||||
- The `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
|
||||
|
||||
- The `services.vikunja.setupNginx` setting has been removed. Users now need to setup the webserver configuration on their own with a proxy pass to the vikunja service.
|
||||
|
@ -419,6 +429,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||
|
||||
- `nomad_1_4` has been removed, as it is now unsupported upstream.
|
||||
|
||||
- Dwarf Fortress has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
|
||||
dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
|
||||
See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
|
||||
|
||||
- Running an earlier version can be achieved through an override: `dwarf-fortress-packages.dwarf-fortress-full.override { dfVersion = "0.47.5"; }`
|
||||
|
||||
- Ruby plugin support has been disabled in DFHack. Many of the Ruby plugins have been converted to Lua, and support was removed upstream due to frequent crashes.
|
||||
|
||||
- The `livebook` package is now built as a `mix release` instead of an `escript`.
|
||||
This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
|
||||
This has the further implication that the `livebook` service configuration has changed:
|
||||
|
|
|
@ -42,8 +42,8 @@ in
|
|||
strings. The latter is concatenated, interspersed with colon
|
||||
characters.
|
||||
'';
|
||||
type = with types; attrsOf (oneOf [ (listOf str) str path ]);
|
||||
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else "${v}");
|
||||
type = with types; attrsOf (oneOf [ (listOf (oneOf [ float int str ])) float int str path ]);
|
||||
apply = mapAttrs (n: v: if isList v then concatMapStringsSep ":" toString v else toString v);
|
||||
};
|
||||
|
||||
environment.profiles = mkOption {
|
||||
|
|
|
@ -153,11 +153,10 @@ in
|
|||
'';
|
||||
type = configType;
|
||||
description = ''
|
||||
The configuration of the Nix Packages collection. (For
|
||||
details, see the Nixpkgs documentation.) It allows you to set
|
||||
package configuration options.
|
||||
Global configuration for Nixpkgs.
|
||||
The complete list of [Nixpkgs configuration options](https://nixos.org/manual/nixpkgs/unstable/#sec-config-options-reference) is in the [Nixpkgs manual section on global configuration](https://nixos.org/manual/nixpkgs/unstable/#chap-packageconfig).
|
||||
|
||||
Ignored when `nixpkgs.pkgs` is set.
|
||||
Ignored when {option}`nixpkgs.pkgs` is set.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -179,6 +179,7 @@
|
|||
./programs/environment.nix
|
||||
./programs/evince.nix
|
||||
./programs/extra-container.nix
|
||||
./programs/fcast-receiver.nix
|
||||
./programs/feedbackd.nix
|
||||
./programs/file-roller.nix
|
||||
./programs/firefox.nix
|
||||
|
@ -265,6 +266,7 @@
|
|||
./programs/skim.nix
|
||||
./programs/slock.nix
|
||||
./programs/sniffnet.nix
|
||||
./programs/soundmodem.nix
|
||||
./programs/spacefm.nix
|
||||
./programs/ssh.nix
|
||||
./programs/starship.nix
|
||||
|
@ -286,8 +288,8 @@
|
|||
./programs/virt-manager.nix
|
||||
./programs/wavemon.nix
|
||||
./programs/wayland/cardboard.nix
|
||||
./programs/wayland/labwc.nix
|
||||
./programs/wayland/hyprland.nix
|
||||
./programs/wayland/labwc.nix
|
||||
./programs/wayland/river.nix
|
||||
./programs/wayland/sway.nix
|
||||
./programs/wayland/waybar.nix
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
uid = 1000;
|
||||
};
|
||||
|
||||
services.xserver.displayManager = {
|
||||
services.displayManager = {
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "demo";
|
||||
|
|
|
@ -6,13 +6,12 @@
|
|||
{
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.sddm.enable = true;
|
||||
desktopManager.plasma5 = {
|
||||
enable = true;
|
||||
};
|
||||
desktopManager.plasma5.enable = true;
|
||||
libinput.enable = true; # for touchpad support on many laptops
|
||||
};
|
||||
|
||||
services.displayManager.sddm.enable = true;
|
||||
|
||||
# Enable sound in virtualbox appliances.
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
RootDirectory = "/run/gonic";
|
||||
ReadWritePaths = "";
|
||||
BindPaths = [
|
||||
cfg.settings.playlists-path
|
||||
];
|
||||
BindReadOnlyPaths = [
|
||||
# gonic can access scrobbling services
|
||||
"-/etc/resolv.conf"
|
||||
|
|
|
@ -203,6 +203,8 @@ in
|
|||
TOKEN = "${instance.token}";
|
||||
} // optionalAttrs (wantsPodman) {
|
||||
DOCKER_HOST = "unix:///run/podman/podman.sock";
|
||||
} // {
|
||||
HOME = "/var/lib/gitea-runner/${name}";
|
||||
};
|
||||
path = with pkgs; [
|
||||
coreutils
|
||||
|
|
|
@ -401,17 +401,19 @@ in
|
|||
}))
|
||||
];
|
||||
|
||||
environment.etc =
|
||||
{
|
||||
"udev/rules.d".source = udevRulesFor {
|
||||
name = "udev-rules";
|
||||
udevPackages = cfg.packages;
|
||||
systemd = config.systemd.package;
|
||||
binPackages = cfg.packages;
|
||||
inherit udevPath udev;
|
||||
};
|
||||
"udev/hwdb.bin".source = hwdbBin;
|
||||
environment.etc = {
|
||||
"udev/rules.d".source = udevRulesFor {
|
||||
name = "udev-rules";
|
||||
udevPackages = cfg.packages;
|
||||
systemd = config.systemd.package;
|
||||
binPackages = cfg.packages;
|
||||
inherit udevPath udev;
|
||||
};
|
||||
"udev/hwdb.bin".source = hwdbBin;
|
||||
} // lib.optionalAttrs config.boot.modprobeConfig.enable {
|
||||
# We don't place this into `extraModprobeConfig` so that stage-1 ramdisk doesn't bloat.
|
||||
"modprobe.d/firmware.conf".text = "options firmware_class path=${config.hardware.firmware}/lib/firmware";
|
||||
};
|
||||
|
||||
system.requiredKernelConfig = with config.lib.kernelConfig; [
|
||||
(isEnabled "UNIX")
|
||||
|
@ -419,21 +421,17 @@ in
|
|||
(isYes "NET")
|
||||
];
|
||||
|
||||
# We don't place this into `extraModprobeConfig` so that stage-1 ramdisk doesn't bloat.
|
||||
environment.etc."modprobe.d/firmware.conf".text = "options firmware_class path=${config.hardware.firmware}/lib/firmware";
|
||||
system.activationScripts.udevd = lib.mkIf config.boot.kernel.enable ''
|
||||
# The deprecated hotplug uevent helper is not used anymore
|
||||
if [ -e /proc/sys/kernel/hotplug ]; then
|
||||
echo "" > /proc/sys/kernel/hotplug
|
||||
fi
|
||||
|
||||
system.activationScripts.udevd =
|
||||
''
|
||||
# The deprecated hotplug uevent helper is not used anymore
|
||||
if [ -e /proc/sys/kernel/hotplug ]; then
|
||||
echo "" > /proc/sys/kernel/hotplug
|
||||
fi
|
||||
|
||||
# Allow the kernel to find our firmware.
|
||||
if [ -e /sys/module/firmware_class/parameters/path ]; then
|
||||
echo -n "${config.hardware.firmware}/lib/firmware" > /sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
'';
|
||||
# Allow the kernel to find our firmware.
|
||||
if [ -e /sys/module/firmware_class/parameters/path ]; then
|
||||
echo -n "${config.hardware.firmware}/lib/firmware" > /sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
'';
|
||||
|
||||
systemd.services.systemd-udevd =
|
||||
{ restartTriggers = cfg.packages;
|
||||
|
|
|
@ -85,7 +85,7 @@ in
|
|||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe ollamaPackage} serve";
|
||||
WorkingDirectory = "%S/ollama";
|
||||
WorkingDirectory = cfg.home;
|
||||
StateDirectory = [ "ollama" ];
|
||||
DynamicUser = true;
|
||||
};
|
||||
|
|
|
@ -31,6 +31,7 @@ let
|
|||
"collectd"
|
||||
"dmarc"
|
||||
"dnsmasq"
|
||||
"dnssec"
|
||||
"domain"
|
||||
"dovecot"
|
||||
"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;
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
RestrictAddressFamilies = [ "AF_UNIX" ];
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-redis-exporter}/bin/redis_exporter \
|
||||
-web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
||||
|
|
|
@ -93,6 +93,13 @@ in
|
|||
# be garbage collected. Ensure the file gets "refreshed" on every start.
|
||||
rm -f ${stateDir}/.local/share/dresden-elektronik/deCONZ/zcldb.txt
|
||||
'';
|
||||
postStart = ''
|
||||
# Delay signalling service readiness until it's actually up.
|
||||
while ! "${lib.getExe pkgs.curl}" -sSfl -o /dev/null "http://${cfg.listenAddress}:${toString cfg.httpPort}"; do
|
||||
echo "Waiting for TCP port ${toString cfg.httpPort} to be open..."
|
||||
sleep 1
|
||||
done
|
||||
'';
|
||||
environment = {
|
||||
HOME = stateDir;
|
||||
XDG_RUNTIME_DIR = "/run/${name}";
|
||||
|
|
|
@ -136,10 +136,16 @@ in
|
|||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = singleton
|
||||
{ assertion = cfg.password == null || cfg.passwordFile == null;
|
||||
message = "Cannot use both password and passwordFile for shadowsocks-libev";
|
||||
};
|
||||
assertions = [
|
||||
{
|
||||
# xor, make sure either password or passwordFile be set.
|
||||
# shadowsocks-libev not support plain/none encryption method
|
||||
# which indicated that password must set.
|
||||
assertion = let noPasswd = cfg.password == null; noPasswdFile = cfg.passwordFile == null;
|
||||
in (noPasswd && !noPasswdFile) || (!noPasswd && noPasswdFile);
|
||||
message = "Option `password` or `passwordFile` must be set and cannot be set simultaneously";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services.shadowsocks-libev = {
|
||||
description = "shadowsocks-libev Daemon";
|
||||
|
|
|
@ -268,11 +268,11 @@ in
|
|||
|
||||
script =
|
||||
let
|
||||
userScriptArgs = ''--user ${cfg.defaultUser} --password "$(cat ${cfg.passwordFile})"'';
|
||||
updateUserScript = optionalString (cfg.authType == "form") ''
|
||||
userScriptArgs = ''--user ${cfg.defaultUser} ${optionalString (cfg.authType == "form") ''--password "$(cat ${cfg.passwordFile})"''}'';
|
||||
updateUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") ''
|
||||
./cli/update-user.php ${userScriptArgs}
|
||||
'';
|
||||
createUserScript = optionalString (cfg.authType == "form") ''
|
||||
createUserScript = optionalString (cfg.authType == "form" || cfg.authType == "none") ''
|
||||
./cli/create-user.php ${userScriptArgs}
|
||||
'';
|
||||
in
|
||||
|
|
|
@ -164,7 +164,7 @@ let
|
|||
${commonHttpConfig}
|
||||
|
||||
${optionalString (cfg.resolver.addresses != []) ''
|
||||
resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"} ${optionalString (!cfg.resolver.ipv6) "ipv6=off"};
|
||||
resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"} ${optionalString (!cfg.resolver.ipv4) "ipv4=off"} ${optionalString (!cfg.resolver.ipv6) "ipv6=off"};
|
||||
''}
|
||||
${upstreamConfig}
|
||||
|
||||
|
@ -978,6 +978,15 @@ in
|
|||
An optional valid parameter allows overriding it
|
||||
'';
|
||||
};
|
||||
ipv4 = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
By default, nginx will look up both IPv4 and IPv6 addresses while resolving.
|
||||
If looking up of IPv4 addresses is not desired, the ipv4=off parameter can be
|
||||
specified.
|
||||
'';
|
||||
};
|
||||
ipv6 = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -1179,6 +1188,13 @@ in
|
|||
to answer to ACME requests.
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
assertion = cfg.resolver.ipv4 || cfg.resolver.ipv6;
|
||||
message = ''
|
||||
At least one of services.nginx.resolver.ipv4 and services.nginx.resolver.ipv6 must be true.
|
||||
'';
|
||||
}
|
||||
] ++ map (name: mkCertOwnershipAssertion {
|
||||
inherit (cfg) group user;
|
||||
cert = config.security.acme.certs.${name};
|
||||
|
|
|
@ -330,6 +330,7 @@ in {
|
|||
freshrss-sqlite = handleTest ./freshrss-sqlite.nix {};
|
||||
freshrss-pgsql = handleTest ./freshrss-pgsql.nix {};
|
||||
freshrss-http-auth = handleTest ./freshrss-http-auth.nix {};
|
||||
freshrss-none-auth = handleTest ./freshrss-none-auth.nix {};
|
||||
frigate = handleTest ./frigate.nix {};
|
||||
frp = handleTest ./frp.nix {};
|
||||
frr = handleTest ./frr.nix {};
|
||||
|
|
|
@ -22,8 +22,27 @@ let
|
|||
'';
|
||||
signingPrivateKeyId = "4D642DE8B678C79D";
|
||||
|
||||
actionsWorkflowYaml = ''
|
||||
run-name: dummy workflow
|
||||
on:
|
||||
push:
|
||||
jobs:
|
||||
cat:
|
||||
runs-on: native
|
||||
steps:
|
||||
- uses: http://localhost:3000/test/checkout@main
|
||||
- run: cat testfile
|
||||
'';
|
||||
# https://github.com/actions/checkout/releases
|
||||
checkoutActionSource = pkgs.fetchFromGitHub {
|
||||
owner = "actions";
|
||||
repo = "checkout";
|
||||
rev = "v4.1.1";
|
||||
hash = "sha256-h2/UIp8IjPo3eE4Gzx52Fb7pcgG/Ww7u31w5fdKVMos=";
|
||||
};
|
||||
|
||||
supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
|
||||
makeGForgejoTest = type: nameValuePair type (makeTest {
|
||||
makeForgejoTest = type: nameValuePair type (makeTest {
|
||||
name = "forgejo-${type}";
|
||||
meta.maintainers = with maintainers; [ bendlas emilylange ];
|
||||
|
||||
|
@ -36,21 +55,28 @@ let
|
|||
settings.service.DISABLE_REGISTRATION = true;
|
||||
settings."repository.signing".SIGNING_KEY = signingPrivateKeyId;
|
||||
settings.actions.ENABLED = true;
|
||||
settings.repository = {
|
||||
ENABLE_PUSH_CREATE_USER = true;
|
||||
DEFAULT_PUSH_CREATE_PRIVATE = false;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq pkgs.file ];
|
||||
environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq pkgs.file pkgs.htmlq ];
|
||||
services.openssh.enable = true;
|
||||
|
||||
specialisation.runner = {
|
||||
inheritParentConfig = true;
|
||||
configuration.services.gitea-actions-runner.instances."test" = {
|
||||
enable = true;
|
||||
name = "ci";
|
||||
url = "http://localhost:3000";
|
||||
labels = [
|
||||
# don't require docker/podman
|
||||
"native:host"
|
||||
];
|
||||
tokenFile = "/var/lib/forgejo/runner_token";
|
||||
configuration.services.gitea-actions-runner = {
|
||||
package = pkgs.forgejo-runner;
|
||||
instances."test" = {
|
||||
enable = true;
|
||||
name = "ci";
|
||||
url = "http://localhost:3000";
|
||||
labels = [
|
||||
# type ":host" does not depend on docker/podman/lxc
|
||||
"native:host"
|
||||
];
|
||||
tokenFile = "/var/lib/forgejo/runner_token";
|
||||
};
|
||||
};
|
||||
};
|
||||
specialisation.dump = {
|
||||
|
@ -62,11 +88,20 @@ let
|
|||
};
|
||||
};
|
||||
};
|
||||
client1 = { config, pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
};
|
||||
client2 = { config, pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
client = { ... }: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
config = {
|
||||
user.email = "test@localhost";
|
||||
user.name = "test";
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
programs.ssh.extraConfig = ''
|
||||
Host *
|
||||
StrictHostKeyChecking no
|
||||
IdentityFile ~/.ssh/privk
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -75,26 +110,23 @@ let
|
|||
inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
|
||||
serverSystem = nodes.server.system.build.toplevel;
|
||||
dumpFile = with nodes.server.specialisation.dump.configuration.services.forgejo.dump; "${backupDir}/${file}";
|
||||
remoteUri = "forgejo@server:test/repo";
|
||||
remoteUriCheckoutAction = "forgejo@server:test/checkout";
|
||||
in
|
||||
''
|
||||
import json
|
||||
GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no"
|
||||
REPO = "forgejo@server:test/repo"
|
||||
PRIVK = "${snakeOilPrivateKey}"
|
||||
|
||||
start_all()
|
||||
|
||||
client1.succeed("mkdir /tmp/repo")
|
||||
client1.succeed("mkdir -p $HOME/.ssh")
|
||||
client1.succeed(f"cat {PRIVK} > $HOME/.ssh/privk")
|
||||
client1.succeed("chmod 0400 $HOME/.ssh/privk")
|
||||
client1.succeed("git -C /tmp/repo init")
|
||||
client1.succeed("echo hello world > /tmp/repo/testfile")
|
||||
client1.succeed("git -C /tmp/repo add .")
|
||||
client1.succeed("git config --global user.email test@localhost")
|
||||
client1.succeed("git config --global user.name test")
|
||||
client1.succeed("git -C /tmp/repo commit -m 'Initial import'")
|
||||
client1.succeed(f"git -C /tmp/repo remote add origin {REPO}")
|
||||
client.succeed("mkdir -p ~/.ssh")
|
||||
client.succeed("(umask 0077; cat ${snakeOilPrivateKey} > ~/.ssh/privk)")
|
||||
|
||||
client.succeed("mkdir /tmp/repo")
|
||||
client.succeed("git -C /tmp/repo init")
|
||||
client.succeed("echo 'hello world' > /tmp/repo/testfile")
|
||||
client.succeed("git -C /tmp/repo add .")
|
||||
client.succeed("git -C /tmp/repo commit -m 'Initial import'")
|
||||
client.succeed("git -C /tmp/repo remote add origin ${remoteUri}")
|
||||
|
||||
server.wait_for_unit("forgejo.service")
|
||||
server.wait_for_open_port(3000)
|
||||
|
@ -143,18 +175,14 @@ let
|
|||
+ ' -d \'{"key":"${snakeOilPublicKey}","read_only":true,"title":"SSH"}\'''
|
||||
)
|
||||
|
||||
client1.succeed(
|
||||
f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git -C /tmp/repo push origin master"
|
||||
)
|
||||
client.succeed("git -C /tmp/repo push origin main")
|
||||
|
||||
client2.succeed("mkdir -p $HOME/.ssh")
|
||||
client2.succeed(f"cat {PRIVK} > $HOME/.ssh/privk")
|
||||
client2.succeed("chmod 0400 $HOME/.ssh/privk")
|
||||
client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' git clone {REPO}")
|
||||
client2.succeed('test "$(cat repo/testfile | xargs echo -n)" = "hello world"')
|
||||
client.succeed("git clone ${remoteUri} /tmp/repo-clone")
|
||||
print(client.succeed("ls -lash /tmp/repo-clone"))
|
||||
assert "hello world" == client.succeed("cat /tmp/repo-clone/testfile").strip()
|
||||
|
||||
with subtest("Testing git protocol version=2 over ssh"):
|
||||
git_protocol = client2.succeed(f"GIT_SSH_COMMAND='{GIT_SSH_COMMAND}' GIT_TRACE2_EVENT=true git -C repo fetch |& grep negotiated-version")
|
||||
git_protocol = client.succeed("GIT_TRACE2_EVENT=true git -C /tmp/repo-clone fetch |& grep negotiated-version")
|
||||
version = json.loads(git_protocol).get("value")
|
||||
assert version == "2", f"git did not negotiate protocol version 2, but version {version} instead."
|
||||
|
||||
|
@ -164,7 +192,7 @@ let
|
|||
timeout=10
|
||||
)
|
||||
|
||||
with subtest("Testing runner registration"):
|
||||
with subtest("Testing runner registration and action workflow"):
|
||||
server.succeed(
|
||||
"su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/forgejo/runner_token"
|
||||
)
|
||||
|
@ -172,6 +200,52 @@ let
|
|||
server.wait_for_unit("gitea-runner-test.service")
|
||||
server.succeed("journalctl -o cat -u gitea-runner-test.service | grep -q 'Runner registered successfully'")
|
||||
|
||||
# enable actions feature for this repository, defaults to disabled
|
||||
server.succeed(
|
||||
"curl --fail -X PATCH http://localhost:3000/api/v1/repos/test/repo "
|
||||
+ "-H 'Accept: application/json' -H 'Content-Type: application/json' "
|
||||
+ f"-H 'Authorization: token {api_token}'"
|
||||
+ ' -d \'{"has_actions":true}\'''
|
||||
)
|
||||
|
||||
# mirror "actions/checkout" action
|
||||
client.succeed("cp -R ${checkoutActionSource}/ /tmp/checkout")
|
||||
client.succeed("git -C /tmp/checkout init")
|
||||
client.succeed("git -C /tmp/checkout add .")
|
||||
client.succeed("git -C /tmp/checkout commit -m 'Initial import'")
|
||||
client.succeed("git -C /tmp/checkout remote add origin ${remoteUriCheckoutAction}")
|
||||
client.succeed("git -C /tmp/checkout push origin main")
|
||||
|
||||
# push workflow to initial repo
|
||||
client.succeed("mkdir -p /tmp/repo/.forgejo/workflows")
|
||||
client.succeed("cp ${pkgs.writeText "dummy-workflow.yml" actionsWorkflowYaml} /tmp/repo/.forgejo/workflows/")
|
||||
client.succeed("git -C /tmp/repo add .")
|
||||
client.succeed("git -C /tmp/repo commit -m 'Add dummy workflow'")
|
||||
client.succeed("git -C /tmp/repo push origin main")
|
||||
|
||||
def poll_workflow_action_status(_) -> bool:
|
||||
output = server.succeed(
|
||||
"curl --fail http://localhost:3000/test/repo/actions | "
|
||||
+ 'htmlq ".flex-item-leading span" --attribute "data-tooltip-content"'
|
||||
).strip()
|
||||
|
||||
# values taken from https://codeberg.org/forgejo/forgejo/src/commit/af47c583b4fb3190fa4c4c414500f9941cc02389/options/locale/locale_en-US.ini#L3649-L3661
|
||||
if output in [ "Failure", "Canceled", "Skipped", "Blocked" ]:
|
||||
raise Exception(f"Workflow status is '{output}', which we consider failed.")
|
||||
server.log(f"Command returned '{output}', which we consider failed.")
|
||||
|
||||
elif output in [ "Unknown", "Waiting", "Running", "" ]:
|
||||
server.log(f"Workflow status is '{output}'. Waiting some more...")
|
||||
return False
|
||||
|
||||
elif output in [ "Success" ]:
|
||||
return True
|
||||
|
||||
raise Exception(f"Workflow status is '{output}', which we don't know. Value mappings likely need updating.")
|
||||
|
||||
with server.nested("Waiting for the workflow run to be successful"):
|
||||
retry(poll_workflow_action_status)
|
||||
|
||||
with subtest("Testing backup service"):
|
||||
server.succeed("${serverSystem}/specialisation/dump/bin/switch-to-configuration test")
|
||||
server.systemctl("start forgejo-dump")
|
||||
|
@ -181,4 +255,4 @@ let
|
|||
});
|
||||
in
|
||||
|
||||
listToAttrs (map makeGForgejoTest supportedDbTypes)
|
||||
listToAttrs (map makeForgejoTest supportedDbTypes)
|
||||
|
|
|
@ -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";
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
systemd.tmpfiles.settings = {
|
||||
"10-gonic" = {
|
||||
"/tmp/music"."d" = {};
|
||||
"/tmp/podcast"."d" = {};
|
||||
"/tmp/playlists"."d" = {};
|
||||
};
|
||||
};
|
||||
services.gonic = {
|
||||
enable = true;
|
||||
settings = {
|
||||
music-path = [ "/tmp" ];
|
||||
podcast-path = "/tmp";
|
||||
music-path = [ "/tmp/music" ];
|
||||
podcast-path = "/tmp/podcast";
|
||||
playlists-path = "/tmp/playlists";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -227,6 +227,54 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
dnssec = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
configuration = {
|
||||
records = [
|
||||
{
|
||||
zone = "example.com";
|
||||
record = "@";
|
||||
type = "SOA";
|
||||
}
|
||||
];
|
||||
};
|
||||
resolvers = [ "127.0.0.1:53" ];
|
||||
};
|
||||
metricProvider = {
|
||||
services.knot = {
|
||||
enable = true;
|
||||
settingsFile = pkgs.writeText "knot.conf" ''
|
||||
server:
|
||||
listen: 127.0.0.1@53
|
||||
template:
|
||||
- id: default
|
||||
storage: ${pkgs.buildEnv {
|
||||
name = "zones";
|
||||
paths = [(pkgs.writeTextDir "example.com.zone" ''
|
||||
@ SOA ns1.example.com. noc.example.com. 2024032401 86400 7200 3600000 172800
|
||||
@ NS ns1
|
||||
ns1 A 192.168.0.1
|
||||
'')];
|
||||
}}
|
||||
zonefile-load: difference
|
||||
zonefile-sync: -1
|
||||
zone:
|
||||
- domain: example.com
|
||||
file: example.com.zone
|
||||
dnssec-signing: on
|
||||
'';
|
||||
};
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("knot.service")
|
||||
wait_for_open_port(53)
|
||||
wait_for_unit("prometheus-dnssec-exporter.service")
|
||||
wait_for_open_port(9204)
|
||||
succeed("curl -sSf http://localhost:9204/metrics | grep 'example.com'")
|
||||
'';
|
||||
};
|
||||
|
||||
# Access to WHOIS server is required to properly test this exporter, so
|
||||
# just perform basic sanity check that the exporter is running and returns
|
||||
# a failure.
|
||||
|
|
|
@ -9,8 +9,8 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
|
|||
let
|
||||
packages = with pkgs; {
|
||||
"default" = teleport;
|
||||
"12" = teleport_12;
|
||||
"13" = teleport_13;
|
||||
"14" = teleport_14;
|
||||
};
|
||||
|
||||
minimal = package: {
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
|
||||
, python3Packages , meson, ninja }:
|
||||
{ lib, stdenv, fetchFromGitea, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
|
||||
, python3Packages , meson, ninja, gitUpdater }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "a2jmidid";
|
||||
version = "9";
|
||||
version = "12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxaudio";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ=";
|
||||
src = fetchFromGitea {
|
||||
domain = "gitea.ladish.org";
|
||||
owner = "LADI";
|
||||
repo = "a2jmidid";
|
||||
rev = "refs/tags/${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-PZKGhHmPMf0AucPruOLB9DniM5A3BKdghFCrd5pTzeM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper meson ninja ];
|
||||
|
@ -21,9 +23,12 @@ stdenv.mkDerivation rec {
|
|||
substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
|
||||
'';
|
||||
|
||||
passthru.updateScript = gitUpdater { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://a2jmidid.ladish.org/";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
|
||||
};
|
||||
|
|
|
@ -21,14 +21,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "grandorgue";
|
||||
version = "3.14.0-1";
|
||||
version = "3.14.1-1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GrandOrgue";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-bzGfc0kWlQSjvZsFlRERPjdLtemcZmsa6DsQGgBPoFo=";
|
||||
hash = "sha256-EyMTWsaqJX7H7aCbu5ww9tQBMwJ7BzobWMWg5Y/ZgJE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, desktop-file-utils
|
||||
, fetchFromGitHub
|
||||
, fetchYarnDeps
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, gjs
|
||||
, glib-networking
|
||||
, gobject-introspection
|
||||
|
@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
|
|||
ninja
|
||||
nodejs
|
||||
pkg-config
|
||||
prefetch-yarn-deps
|
||||
fixup-yarn-lock
|
||||
wrapGAppsHook4
|
||||
yarn
|
||||
];
|
||||
|
|
|
@ -33,14 +33,14 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = if withGui then "bitcoin" else "bitcoind";
|
||||
version = "26.1";
|
||||
version = "27.0";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
|
||||
];
|
||||
# hash retrieved from signed SHA256SUMS
|
||||
sha256 = "9164ee5d717b4a20cb09f0496544d9d32f365734814fe399f5cdb4552a9b35ee";
|
||||
sha256 = "9c1ee651d3b157baccc3388be28b8cf3bfcefcd2493b943725ad6040ca6b146b";
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lite-xl";
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lite-xl";
|
||||
repo = "lite-xl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4ykUdcNwJ4r/4u9H+c8pgupY3BaPi2y69X6yaDjCjac=";
|
||||
hash = "sha256-TqrFI5TFb2hnnlHYUjLDUTDK3/Wgg1gOxIP8owLi/yo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config ];
|
||||
|
|
|
@ -11111,6 +11111,18 @@ final: prev:
|
|||
meta.homepage = "https://github.com/Pocco81/true-zen.nvim/";
|
||||
};
|
||||
|
||||
trust-vim = buildVimPlugin {
|
||||
pname = "trust.vim";
|
||||
version = "2022-04-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tesaguri";
|
||||
repo = "trust.vim";
|
||||
rev = "3e17b29ff13f862eeda269d7ce0260571dab6cb7";
|
||||
sha256 = "1zvxjgyzzhnza2gv528dvyp7m1nvsz5gjn0qp65jn0k7y4gh3nnl";
|
||||
};
|
||||
meta.homepage = "https://github.com/tesaguri/trust.vim/";
|
||||
};
|
||||
|
||||
tslime-vim = buildVimPlugin {
|
||||
pname = "tslime.vim";
|
||||
version = "2020-09-09";
|
||||
|
|
|
@ -933,6 +933,7 @@ https://github.com/tremor-rs/tremor-vim/,,
|
|||
https://github.com/cappyzawa/trim.nvim/,,
|
||||
https://github.com/folke/trouble.nvim/,,
|
||||
https://github.com/Pocco81/true-zen.nvim/,,
|
||||
https://github.com/tesaguri/trust.vim/,HEAD,
|
||||
https://github.com/jgdavey/tslime.vim/,,
|
||||
https://github.com/Quramy/tsuquyomi/,,
|
||||
https://github.com/folke/twilight.nvim/,,
|
||||
|
|
|
@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "shellcheck";
|
||||
publisher = "timonwong";
|
||||
version = "0.37.0";
|
||||
sha256 = "1d0blynn6c2hz4y9fk7b5wsa3x168gxyycr5d05zqp0rx520m5wc";
|
||||
version = "0.37.1";
|
||||
sha256 = "sha256-JSS0GY76+C5xmkQ0PNjt2Nu/uTUkfiUqmPL51r64tl0=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
jq
|
||||
|
|
|
@ -30,21 +30,21 @@ let
|
|||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "0kr83pbjbyrpkhhpr432nr0kcjnvra5vwq2zhpdv1p2g1981dbxf";
|
||||
x86_64-darwin = "0vlbd4y649r5v61322vm6fvdf3mrn2shw1vjh1q8wcbf2j84rgcl";
|
||||
aarch64-linux = "0bp3a928sqlr103884ljyahl3s4jchyvpcvk08a648wmb1f8ibxi";
|
||||
aarch64-darwin = "1dyg4f7hpvx1bpspghfpyqaj83xy47462zjql49zrdar17cq738r";
|
||||
armv7l-linux = "16ri5icgvzf3zfg170dciqyz46dcwlsx6vy4r2y4w1j2hbb7afzn";
|
||||
x86_64-linux = "14m9w7wkg1704apd4d46yi6zwdlbrx2rp3fry9ffk2nn6kkahwk2";
|
||||
x86_64-darwin = "1cp74wdkva1zib04wxjby0h8r1c56g893kq5ksdj38404i2c5hdk";
|
||||
aarch64-linux = "00yrdmi4c5m8r11gm7vw18qb5ddcwwg5mdk8s9ykzhmxhdrkcarm";
|
||||
aarch64-darwin = "1jjhw60jcvj5brayarg8k6avxwaa00mwdn4lrkcdzbzzh1q4knvv";
|
||||
armv7l-linux = "1jddc3fsv65mp95ybpprx8sz3mpnp6j2ghp4nflky8iawmzz183v";
|
||||
}.${system} or throwSystem;
|
||||
in
|
||||
callPackage ./generic.nix rec {
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.88.0";
|
||||
version = "1.88.1";
|
||||
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
||||
|
||||
# This is used for VS Code - Remote SSH test
|
||||
rev = "5c3e652f63e798a5ac2f31ffd0d863669328dc4c";
|
||||
rev = "e170252f762678dec6ca2cc69aba1570769a5d39";
|
||||
|
||||
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
||||
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
||||
|
@ -68,7 +68,7 @@ in
|
|||
src = fetchurl {
|
||||
name = "vscode-server-${rev}.tar.gz";
|
||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||
sha256 = "0vy3r9xx1gv92pkyff5wddywfwgr2i12d3qrydw53kdjhdykamsk";
|
||||
sha256 = "100nhm231gzav24lz84vxwxnqkn777kfn0fkkjmdcd30kc7g7ig9";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
, fetchYarnDeps
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, makeWrapper
|
||||
, autoSignDarwinBinariesHook
|
||||
, nodejs
|
||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
prefetch-yarn-deps
|
||||
fixup-yarn-lock
|
||||
makeWrapper
|
||||
nodejs
|
||||
yarn
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "geoipupdate";
|
||||
version = "6.1.0";
|
||||
version = "7.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxmind";
|
||||
repo = "geoipupdate";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/iLWy3yKO34nnn5ygAewR036PzgUGIqdhXNK4fx3Ym8=";
|
||||
sha256 = "sha256-OWo8puUjzMZXZ80HMpCrvRGUVdclnSxk7rHR5egOU1Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-jW5/09sOUvPZVM1wzL4xg/a14kZ0KsM8e+zEQoADsl4=";
|
||||
vendorHash = "sha256-MApZUtI9JewMBbImuV3vsNG89UvCfxcBg3TZiuk/nvg=";
|
||||
|
||||
ldflags = [ "-X main.version=${version}" ];
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@ let
|
|||
};
|
||||
in mkDerivation rec {
|
||||
pname = "golden-cheetah";
|
||||
version = "3.6";
|
||||
version = "3.7-DEV2404";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GoldenCheetah";
|
||||
repo = "GoldenCheetah";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Ntim1/ZPaTPCHQ5p8xF5LWpqq8+OgkPfaQqqysv9j/c=";
|
||||
hash = "sha256-u2igcnOulgJGZT46/Z3vSsce9mr3VsxkD3mTeQPvUOg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -24,6 +24,8 @@ let
|
|||
./575.patch
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
|
@ -34,6 +36,7 @@ let
|
|||
wrapGAppsHook
|
||||
wrapPython
|
||||
gobject-introspection
|
||||
python
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
|
@ -49,7 +52,6 @@ let
|
|||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
python
|
||||
] ++ lib.optional withRandr libxcb
|
||||
++ lib.optional withGeoclue geoclue
|
||||
++ lib.optional withDrm libdrm
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchYarnDeps, prefetch-yarn-deps, callPackage, nodejs }:
|
||||
{ stdenv, fetchYarnDeps, fixup-yarn-lock, callPackage, nodejs }:
|
||||
let
|
||||
common = callPackage ./common.nix { };
|
||||
in
|
||||
|
@ -14,7 +14,7 @@ stdenv.mkDerivation {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
prefetch-yarn-deps
|
||||
fixup-yarn-lock
|
||||
nodejs
|
||||
nodejs.pkgs.yarn
|
||||
];
|
||||
|
|
|
@ -2,13 +2,15 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tiramisu";
|
||||
version = "2.0.20211107";
|
||||
# FIXME: once a newer release in upstream is available
|
||||
version = "2.0-unstable-2023-03-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Sweets";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1n1x1ybbwbanibw7b90k7v4cadagl41li17hz2l8s2sapacvq3mw";
|
||||
repo = "tiramisu";
|
||||
# FIXME: use the current HEAD commit as upstream has no releases since 2021
|
||||
rev = "5dddd83abd695bfa15640047a97a08ff0a8d9f9b";
|
||||
hash = "sha256-owYk/YFwJbqO6/dbGKPE8SnmmH4KvH+o6uWptqQtpfI=";
|
||||
};
|
||||
|
||||
buildInputs = [ glib ];
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "waylock";
|
||||
version = "0.6.5";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
repo = "waylock";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-wvZrRPZobDh+rB3RSaRrz0xDHuYwT2eoQEu3AbYKn8Y=";
|
||||
hash = "sha256-Z5YNaR+jocJ4hS7NT8oAlrMnqNfD8KRzOyyqdVGDSl0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
{
|
||||
beta = import ./browser.nix {
|
||||
channel = "beta";
|
||||
version = "124.0.2478.19";
|
||||
version = "124.0.2478.39";
|
||||
revision = "1";
|
||||
hash = "sha256-+CanF7AadFQJj3t8OnZyoxPG2f2KO2e+EVBofKG3slg=";
|
||||
hash = "sha256-0KQU/JS6hlv2SLMB8RKyITUiodByBUstrhcwIefn3Yw=";
|
||||
};
|
||||
dev = import ./browser.nix {
|
||||
channel = "dev";
|
||||
version = "125.0.2492.1";
|
||||
version = "125.0.2518.0";
|
||||
revision = "1";
|
||||
hash = "sha256-S6DfXJfxR8FsHyRtCcvUialaVYP/1rPivjRVSm9XAtg=";
|
||||
hash = "sha256-q4TVpO0SxSSLMv/NtmJIOzClT2WqUss2qfE5vgj4O7E=";
|
||||
};
|
||||
stable = import ./browser.nix {
|
||||
channel = "stable";
|
||||
version = "123.0.2420.81";
|
||||
version = "123.0.2420.97";
|
||||
revision = "1";
|
||||
hash = "sha256-3c4DHs0p2YDW17nzCXB+O6PR9wTMb9h98EvN11imvsM=";
|
||||
hash = "sha256-q7Pcbi0JQr/wvKIrgueD9f2Z6v1DMoD2bcRJKGqDYjs=";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ let
|
|||
++ lib.optionals mediaSupport [ ffmpeg ]
|
||||
);
|
||||
|
||||
version = "13.0.13";
|
||||
version = "13.0.14";
|
||||
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
|
@ -102,7 +102,7 @@ let
|
|||
"https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
|
||||
"https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
|
||||
];
|
||||
hash = "sha256-CAJJs14U9zsl5PiyZIwXYZG4dZz+Cqn7sD9u3S+/WvA=";
|
||||
hash = "sha256-z7fZtq+jnoAi6G8RNahGtP1LXeOXU/2wYz5ha2ddAeM=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
++ lib.optionals mediaSupport [ ffmpeg ]
|
||||
);
|
||||
|
||||
version = "13.0.13";
|
||||
version = "13.0.14";
|
||||
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
|
@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
|
||||
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
|
||||
];
|
||||
hash = "sha256-l7Ka8vjVX67ZPPzRnQixtki5/cYhP6P/J91CyGPnwfI=";
|
||||
hash = "sha256-UWR2zMVXa6QMz1EIWJf43Vmj14ZIaug105esxeSd0KU=";
|
||||
};
|
||||
|
||||
i686-linux = fetchurl {
|
||||
|
@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
|
|||
"https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
|
||||
"https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
|
||||
];
|
||||
hash = "sha256-Ro9F3SZiagtj3AnDOtHmyy1G/KOi/O9M3f775qrZig4=";
|
||||
hash = "sha256-n+qj3IY4z+erOg4iUkQ4CP3rtJASTeKPg7beZRdesw4=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ let
|
|||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "6.6.3271.57";
|
||||
version = "6.6.3271.61";
|
||||
|
||||
suffix = {
|
||||
aarch64-linux = "arm64";
|
||||
|
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
|
|||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
||||
hash = {
|
||||
aarch64-linux = "sha256-v/UG4eL/66i/0sSqN8JmJJIEjHzJjTTDZLRzLMJpJMA=";
|
||||
x86_64-linux = "sha256-uVrEVf9mePqalU2OJRMj0Zy9d7jDXwsdMwEQhn9uUh8=";
|
||||
aarch64-linux = "sha256-Rcc/pufINOQJlkQI6KkWVZtnh3KvKLS6jRWQNTxPFmU=";
|
||||
x86_64-linux = "sha256-Xt4pLB23VZ/j9g/QCOQTrrhQduxs1nB4wyYkBefFPIQ=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "argocd";
|
||||
version = "2.10.6";
|
||||
version = "2.10.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo-cd";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-tKZQVI2WiqsPIMHCBGJHcZYk4gOoshiGA0WPyeoxvok=";
|
||||
hash = "sha256-0C8lVQrFxrk9ym4aCz0PhUS2iByx9rj5Id0xFIq4Efc=";
|
||||
};
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.29.3";
|
||||
version = "1.29.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mtYxFy2d892uMLrtaR6ao07gjbThuGa7bzauwvJ0WOo=";
|
||||
hash = "sha256-7Rxbcsl77iFiHkU/ovyn74aXs/i5G/m5h5Ii0y1CRho=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "kubevpn";
|
||||
version = "2.2.4";
|
||||
version = "2.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KubeNetworks";
|
||||
repo = "kubevpn";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-taeCOmjZqULxQf4dgLzSYgN43fFYH04Ev4O/SHHG+xI=";
|
||||
hash = "sha256-I4szQNRBW3M+QNwsfkJZlrZL3jJXcXmD2KnFF/E+jaE=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
@ -82,9 +82,9 @@ rec {
|
|||
|
||||
nomad_1_7 = generic {
|
||||
buildGoModule = buildGo121Module;
|
||||
version = "1.7.6";
|
||||
sha256 = "sha256-rEWXQwkW/muX3D0An3WmHCoboPACFCrSG7Tyzor2wnQ=";
|
||||
vendorHash = "sha256-95yUtNfN/50LjWHHReaB4/riUqy8J67099bP8Ua7gRw=";
|
||||
version = "1.7.7";
|
||||
sha256 = "sha256-4nuRheidR6rIoytrnDQdIP69f+sBLJ3Ias5DvqVaLFc=";
|
||||
vendorHash = "sha256-ZuaD8iDsT+/eW0QUavf485R804Jtjl76NcQWYHA8QII=";
|
||||
license = lib.licenses.bsl11;
|
||||
passthru.tests.nomad = nixosTests.nomad;
|
||||
preCheck = ''
|
||||
|
|
|
@ -167,8 +167,8 @@ rec {
|
|||
mkTerraform = attrs: pluggable (generic attrs);
|
||||
|
||||
terraform_1 = mkTerraform {
|
||||
version = "1.8.0";
|
||||
hash = "sha256-An/ElR1tXQSb9x26R5o9gcb4XKTeVxlv+72Whcrdeoc=";
|
||||
version = "1.8.1";
|
||||
hash = "sha256-q/r1KK0svdK/5Za4bqU6bGgTcWmG+YZFJUFRKqPAWSw=";
|
||||
vendorHash = "sha256-xpgGceAA+kvwUp4T0m9rnbPoZ3uJHU2KIRsrcGr8dRo=";
|
||||
patches = [ ./provider-path-0_15.patch ];
|
||||
passthru = {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, stdenvNoCC
|
||||
, version, src
|
||||
, fetchYarnDeps
|
||||
, prefetch-yarn-deps, yarn, nodejs
|
||||
, fixup-yarn-lock, yarn, nodejs
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
|
@ -10,7 +10,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
|
||||
inherit src version;
|
||||
|
||||
nativeBuildInputs = [ prefetch-yarn-deps yarn nodejs ];
|
||||
nativeBuildInputs = [ fixup-yarn-lock yarn nodejs ];
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/web/yarn.lock";
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "newsboat";
|
||||
version = "2.34";
|
||||
version = "2.35";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "newsboat";
|
||||
repo = "newsboat";
|
||||
rev = "r${version}";
|
||||
hash = "sha256-knF+N/HHL/E6C973t+ww5XTLV2thwy7lMAeqTyXspHY=";
|
||||
hash = "sha256-WbicKP46N8MVjUeerYUdcHJO5Qf7rQFyYCpxexd2wDY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-IsDym+tqF040SxCJF575OPm45IROYMFsCrxJcM1SAJ4=";
|
||||
cargoHash = "sha256-B6U+DxIRm9Sn4x+dZCfNKENNDsTUVZFT6i0Yz47gjTs=";
|
||||
|
||||
# TODO: Check if that's still needed
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, makeDesktopItem
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, yarn
|
||||
, nodejs
|
||||
, fetchYarnDeps
|
||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
|
|||
sha256 = desktopYarnHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs makeWrapper jq ]
|
||||
nativeBuildInputs = [ yarn fixup-yarn-lock nodejs makeWrapper jq ]
|
||||
++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
|
||||
|
||||
inherit seshat;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
, writeText
|
||||
, jq
|
||||
, yarn
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, nodejs
|
||||
, jitsi-meet
|
||||
}:
|
||||
|
@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
|
|||
sha256 = webYarnHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ yarn prefetch-yarn-deps jq nodejs ];
|
||||
nativeBuildInputs = [ yarn fixup-yarn-lock jq nodejs ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, prefetch-yarn-deps, CoreServices, fetchYarnDeps, removeReferencesTo }:
|
||||
{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, fixup-yarn-lock, CoreServices, fetchYarnDeps, removeReferencesTo }:
|
||||
|
||||
let
|
||||
pinData = lib.importJSON ./pin.json;
|
||||
|
@ -16,7 +16,7 @@ in rustPlatform.buildRustPackage rec {
|
|||
|
||||
sourceRoot = "${src.name}/seshat-node/native";
|
||||
|
||||
nativeBuildInputs = [ nodejs python3 yarn prefetch-yarn-deps ];
|
||||
nativeBuildInputs = [ nodejs python3 yarn fixup-yarn-lock ];
|
||||
buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices;
|
||||
|
||||
npm_config_nodedir = nodejs;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
, fetchFromGitHub
|
||||
, fetchYarnDeps
|
||||
, yarn
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, nodejs
|
||||
}:
|
||||
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-N9lUAhfYLlEAIaWSNS3Ecq+aBTz+f7Z22Sclwj9rp6w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs ];
|
||||
nativeBuildInputs = [ yarn fixup-yarn-lock nodejs ];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
, autoPatchelfHook
|
||||
, makeShellWrapper
|
||||
, wrapGAppsHook
|
||||
, commandLineArgs ? ""
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -83,6 +84,7 @@ stdenv.mkDerivation {
|
|||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
|
||||
--add-flags ${lib.escapeShellArg commandLineArgs} \
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
|
||||
# Remove bundled libraries
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
, yarn
|
||||
, nodejs
|
||||
, fetchYarnDeps
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, electron
|
||||
, libnotify
|
||||
, libpulseaudio
|
||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-jBwyIyiWeqNmOnxmVOr7c4oMWwHElEjM25sShhTMi78=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ];
|
||||
nativeBuildInputs = [ yarn fixup-yarn-lock nodejs copyDesktopItems makeWrapper ];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
|
|
@ -63,14 +63,14 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "4.16.7";
|
||||
version = "4.16.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-+BXuFHXGOgpmAX7wsGLxZxfzvNsntFLtd+Obhb339Yc=";
|
||||
hash = "sha256-M8wFhuTTEJippgvS93LNRqREV2TGF04ccps5oOmSr+0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
, fetchYarnDeps
|
||||
, nodejs
|
||||
, yarn
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, python3
|
||||
, npmHooks
|
||||
, darwin
|
||||
|
@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-MM6SgVT7Pjdu96A4eWRucEzT7uNPxBqUDgHKl8mH2C0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ nodejs yarn prefetch-yarn-deps python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools;
|
||||
nativeBuildInputs = [ nodejs yarn fixup-yarn-lock python3 npmHooks.npmInstallHook ] ++ lib.optional stdenv.isDarwin darwin.cctools;
|
||||
buildInputs = [ sqlite ];
|
||||
|
||||
configurePhase = ''
|
||||
|
|
|
@ -27,13 +27,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "planify";
|
||||
version = "4.5.12";
|
||||
version = "4.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alainm23";
|
||||
repo = "planify";
|
||||
rev = version;
|
||||
hash = "sha256-Aj2kvffLl8vEqzirAy45E+jGB9iRp2mSYq0YWJ3nrj8=";
|
||||
hash = "sha256-vyw8SjI8EM9giYpAsCNppgSydPEBNz2sbFahEKmKe6w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "cloudlog";
|
||||
version = "2.6.8";
|
||||
version = "2.6.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magicbug";
|
||||
repo = "Cloudlog";
|
||||
rev = version;
|
||||
hash = "sha256-8D8owjONUMpRpFqKvmxKERCprvHQ1DCavNfqW9VTKAE=";
|
||||
hash = "sha256-DyBo56NS15s+t9Dl8xCC7MQAqMmZ91FYUYOV4vyJ/Yo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -25,13 +25,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freedv";
|
||||
version = "1.9.8";
|
||||
version = "1.9.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drowe67";
|
||||
repo = "freedv-gui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JbLP65fC6uHrHXpSUwtgYHB+VLfheo5RU3C44lx8QlQ=";
|
||||
hash = "sha256-i0SVu3txC+JUp0P6cFlmn/66lOmii7JMGIvc43nZoOE=";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
|
|
|
@ -62,13 +62,13 @@ let
|
|||
in
|
||||
buildPythonApplication rec {
|
||||
pname = "openwebrx";
|
||||
version = "1.2.0";
|
||||
version = "1.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jketterl";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7gcgwa9vQT2u8PQusuXKted2Hk0K+Zk6ornSG1K/D4c=";
|
||||
hash = "sha256-i3Znp5Sxs/KtJazHh2v9/2P+3cEocWB5wIpF7E4pK9s=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2 }:
|
||||
{ lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2, copyDesktopItems, makeDesktopItem }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "soundmodem";
|
||||
|
@ -9,13 +9,26 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
copyDesktopItems
|
||||
];
|
||||
buildInputs = [ alsa-lib audiofile gtk2 libxml2 ];
|
||||
|
||||
patches = [ ./matFix.patch ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "SoundmodemConfig";
|
||||
exec = "soundmodemconfig";
|
||||
desktopName = "SoundModemConfig";
|
||||
comment = "Audio based modem for ham radio supporting ax.25";
|
||||
categories = [ "Audio" ];
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Audio based modem for ham radio supporting ax.25";
|
||||
longDescription = ''
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bcftools";
|
||||
version = "1.19";
|
||||
version = "1.20";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-eCtfG8aQQVGSIx6CITs0k7BH9F5jDcjvbxVNYSarPmg=";
|
||||
sha256 = "sha256-MSuDKd5RMN06N2eMcSlR5h5XcVV8cSmnCjJ6MA/ahiA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "1.17.1";
|
||||
version = "1.17.2";
|
||||
|
||||
# build stimuli file for PGO build and the script to generate it
|
||||
# independently of the foot's build, so we can cache the result
|
||||
|
@ -99,7 +99,7 @@ stdenv.mkDerivation {
|
|||
owner = "dnkl";
|
||||
repo = "foot";
|
||||
rev = version;
|
||||
hash = "sha256-B6RhzsOPwczPLJRx3gBFZZvklwx9IwqplRG2vsAPIlg=";
|
||||
hash = "sha256-p+qaWHBrUn6YpNyAmQf6XoQyO3degHP5oMN53/9gIr4=";
|
||||
};
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "2.47.0";
|
||||
version = "2.48.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vLnz0VDp8mTYBWPPidqw9SUvkn7S1jMTLN1RQyU9YnE=";
|
||||
hash = "sha256-8vQQzLGb1cHeNJC/aUZbROfRoUtuujEKoLWBgLZnhls=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5GjU6A2QLDxrTMxaBCOniSX56Undfcu+dhfC5tc16V0=";
|
||||
vendorHash = "sha256-rQtRBXhG5fF+3cIIv9i5r8Kd9YeIq/aDLAw8Rqxn6ww=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "5.12.194";
|
||||
version = "5.12.196";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "git-mit";
|
||||
|
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
|
|||
owner = "PurpleBooth";
|
||||
repo = "git-mit";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-9ITy2VPLIunSLSNx4EXbvxZ7V/Kr+DwmjzDVj/QVGHs=";
|
||||
hash = "sha256-vv60+8H6WQes+xVJRsgLppwQ/DkQbfNC6tRx2TB/4HQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6R+T0BSgT6IivugkXXsX5xJ2c3/J3FnLY3ZvcfYW53E=";
|
||||
cargoHash = "sha256-jK2GTI+T7Ie5cdQQQHh2aj6Egb/5BxsfJkFrSo+z7Pc=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gitea";
|
||||
version = "1.21.10";
|
||||
version = "1.21.11";
|
||||
|
||||
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
|
||||
src = fetchurl {
|
||||
url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
|
||||
hash = "sha256-g/aDRIAKaPi8AWWJL4N8CZt2N4HBEWK7xSBvjrcPDD8=";
|
||||
hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl
|
||||
, defaultGemConfig, buildRubyGem
|
||||
, gitlabEnterprise ? false, callPackage, yarn
|
||||
, prefetch-yarn-deps, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
|
||||
, fixup-yarn-lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
|
||||
, cargo, rustc, rustPlatform
|
||||
}:
|
||||
|
||||
|
@ -94,7 +94,7 @@ let
|
|||
sha256 = data.yarn_hash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert prefetch-yarn-deps ];
|
||||
nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert fixup-yarn-lock ];
|
||||
|
||||
patches = [
|
||||
# Since version 12.6.0, the rake tasks need the location of git,
|
||||
|
|
|
@ -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
|
||||
, yarn
|
||||
, nodejs
|
||||
, prefetch-yarn-deps
|
||||
, fixup-yarn-lock
|
||||
, glibcLocales
|
||||
, libiconv
|
||||
, Cocoa
|
||||
|
@ -66,7 +66,7 @@ let
|
|||
inherit version;
|
||||
|
||||
nativeBuildInputs = [
|
||||
prefetch-yarn-deps
|
||||
fixup-yarn-lock
|
||||
nodejs
|
||||
yarn
|
||||
];
|
||||
|
|
|
@ -11,9 +11,9 @@ in
|
|||
} { };
|
||||
|
||||
sublime-merge-dev = common {
|
||||
buildVersion = "2092";
|
||||
buildVersion = "2094";
|
||||
dev = true;
|
||||
aarch64sha256 = "3QMDynXMVB4QVtM8EPbZ8I4m+5sEjzs8XN+jEoMaktM=";
|
||||
x64sha256 = "S9E+wRvO41Eq+PLA/J+sjBIAn6yz715Wg9bKRW2Eobg=";
|
||||
aarch64sha256 = "ZJgq971EPzq+BWxTQAoX6TgUmTfpf9sI4CHPcvgPTfI=";
|
||||
x64sha256 = "6FLfszhP+BGHX5FrycMlznREmGDLyDyo6rgmqxhtCak=";
|
||||
} { };
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
{ attrPath }:
|
||||
|
||||
let
|
||||
url = "http://mirrors.kodi.tv/addons/nexus/addons.xml.gz";
|
||||
url = "http://mirrors.kodi.tv/addons/omega/addons.xml.gz";
|
||||
updateScript = writeShellScript "update.sh" ''
|
||||
set -ex
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }:
|
||||
buildKodiAddon rec {
|
||||
pname = "arrow";
|
||||
namespace = "script.module.arrow";
|
||||
version = "1.2.3";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/script.module.arrow/script.module.arrow-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.module.arrow/script.module.arrow-${version}.zip";
|
||||
sha256 = "sha256-Et+9FJT1dRE1dFOrAQ70HJJcfylyLsiyay9wPJcSOXs=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, requests, xbmcswift2 }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "arteplussept";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "1.4.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
hash = "sha256-dqxGKaOnEYOI33Aw76zbjma5z7MqOUh367dFsV87olU=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, cacert }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, cacert }:
|
||||
buildKodiAddon rec {
|
||||
pname = "certifi";
|
||||
namespace = "script.module.certifi";
|
||||
version = "2023.5.7";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-NQbjx+k9fnQMYLLMR5+N5NSuDcXEzZjlhGPA3qSmjfI=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "chardet";
|
||||
namespace = "script.module.chardet";
|
||||
version = "5.1.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-cIQIX6LVAoGf1sBRKWonXJd3XYqGOa5WIUttabV0HeU=";
|
||||
};
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@ let
|
|||
postPatch = ''
|
||||
# remove addons already included in the base kodi package
|
||||
rm -r addons/game.controller.default
|
||||
rm -r addons/game.controller.keyboard
|
||||
rm -r addons/game.controller.mouse
|
||||
rm -r addons/game.controller.snes
|
||||
'';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, six }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "dateutil";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "2.8.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-iQnyS0GjYcPbnBDUxmMrmDxHOA3K8RbTVke/HF4d5u4=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "defusedxml";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "0.6.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-jSl7lbFqR6hjZhHzxY69hDbs84LY3B5RYKzXnHou0Qg=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "future";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "0.18.3+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-jKO2Qxi54z6UiCmMkxU+2pog40K2yb8/KYbNPFYuSsQ=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "idna";
|
||||
namespace = "script.module.idna";
|
||||
version = "3.4.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-wS1d1L18v4+RGwxDh7OpKRHB2A4qYwiq6b5mAz7l8Pk=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss, gtest }:
|
||||
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, pugixml, glib, nspr, nss, gtest }:
|
||||
let
|
||||
bento4 = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "Bento4";
|
||||
rev = "1.6.0-639-7-Omega";
|
||||
sha256 = "sha256-d3znV88dLMbA4oUWsTZ7vS6WHOWzN7lIHgWPkR5Aixo=";
|
||||
rev = "1.6.0-641-${rel}";
|
||||
sha256 = "sha256-vsFMDzH8JJecYw0qWKGCxnd/m5wn62mCKE2g2HwQhwI=";
|
||||
};
|
||||
in
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-adaptive";
|
||||
namespace = "inputstream.adaptive";
|
||||
version = "20.3.18";
|
||||
version = "21.4.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.adaptive";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-cjlUKrus4Dv48dCk6AlOgY2iZYTwT39tj2u7aq1P104=";
|
||||
sha256 = "sha256-Nzlm1AW/nW9chQAourKF0o2FSQmsr1MNhJ4gEO0/9sM=";
|
||||
};
|
||||
|
||||
extraCMakeFlags = [
|
||||
|
@ -26,7 +26,7 @@ buildKodiBinaryAddon rec {
|
|||
|
||||
extraNativeBuildInputs = [ gtest ];
|
||||
|
||||
extraBuildInputs = [ expat ];
|
||||
extraBuildInputs = [ pugixml ];
|
||||
|
||||
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-ffmpegdirect";
|
||||
namespace = "inputstream.ffmpegdirect";
|
||||
version = "unstable-20.5.0";
|
||||
version = "21.3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.ffmpegdirect";
|
||||
rev = rel;
|
||||
sha256 = "sha256-+u28Wzp2TonL5jaa5WJUr9igR6KiaxizZAX9jqqBUns=";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-pPufkDPHq5EsvC6YTsRX9TjqjIczOL/6Vc5HGDIe9Gk=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-rtmp";
|
||||
namespace = "inputstream.rtmp";
|
||||
version = "20.3.0";
|
||||
version = "21.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "inputstream.rtmp";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "sha256-VF2DpQXXU+rj76e/de5YB1T7dzeOjmO0dpsPVqEnMy4=";
|
||||
sha256 = "sha256-M6LFokWQRzBZ7inzRsMxyWzkV0XsGHh4d0CPhv1NCfI=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ openssl rtmpdump zlib ];
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "inputstreamhelper";
|
||||
namespace = "script.module.inputstreamhelper";
|
||||
version = "0.6.1+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-v5fRikswmP+KVbxYibD0NbCK8leUnFbya5EtF1FmS0I=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "invidious";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "0.2.6";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/plugin.video.invidious/plugin.video.invidious-${version}+nexus.0.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/plugin.video.invidious/plugin.video.invidious-${version}+nexus.0.zip";
|
||||
sha256 = "sha256-XnlnhvtHMh4uQTupW/SSOmaEV8xZrL61/6GoRpyKR0o=";
|
||||
};
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ in
|
|||
buildKodiAddon rec {
|
||||
pname = "jellyfin";
|
||||
namespace = "plugin.video.jellyfin";
|
||||
version = "0.7.12";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jellyfin";
|
||||
repo = "jellyfin-kodi";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-m8msTBim4Ss8XaYqIn6GWXxoCio5ABbqhhgyb1T/Yhg=";
|
||||
sha256 = "sha256-i9lRPMHniUmKTeNSzgp6dF11uYOcjH3PgJEa+Jasx68=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, defusedxml, kodi-six }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "keymap";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "1.1.5";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-wSztipTEGIqw1icsz+ziNxYuRZOFt3C66T1Ifap/ta0=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "kodi-six";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "0.1.3.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-nWz5CPoE0uVsZvWjI4q6y4ZKUnraTjTXLSJ1mK4YopI=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, routing }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "media.ccc.de";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "0.3.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/plugin.video.media-ccc-de/plugin.video.media-ccc-de-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/plugin.video.media-ccc-de/plugin.video.media-ccc-de-${version}.zip";
|
||||
hash = "sha256-T8J2HtPVDfaPU0gZEa0xVBzwjNInxkRFCCSxS53QhmU=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "myconnpy";
|
||||
namespace = "script.module.myconnpy";
|
||||
version = "8.0.33";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-NlLMq9RAdWu8rVsMc0FDe1HmQiVp5T7iBXbIH7HB5bI=";
|
||||
};
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
buildKodiAddon rec {
|
||||
pname = "netflix";
|
||||
namespace = "plugin.video.netflix";
|
||||
version = "1.23.2";
|
||||
version = "1.23.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CastagnaIT";
|
||||
repo = namespace;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/wHKwFZbuxK0iwlqvZpyfi0lnRkjm/HSn221IgCN7VQ=";
|
||||
hash = "sha256-tve7E7dK60BIHETdwt9hD3/5eEdJB6c6rhw4oDoLAKM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -17,5 +17,7 @@ buildKodiAddon rec {
|
|||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.cc-by-nc-sa-30;
|
||||
|
||||
broken = true; # no release for kodi 21
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "radioparadise";
|
||||
|
@ -6,7 +6,7 @@ buildKodiAddon rec {
|
|||
version = "2.0.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/script.radioparadise/script.radioparadise-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/script.radioparadise/script.radioparadise-${version}.zip";
|
||||
sha256 = "sha256-eRCP0XMQHmyDrZ8Y6RGFfxQ1r26/bWbE/PJz4PET7D8=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
|
||||
buildKodiAddon rec {
|
||||
pname = "requests-cache";
|
||||
namespace = "script.module.requests-cache";
|
||||
version = "0.5.2+matrix.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-6M/v/ghS2TnSZhG8bREjxfEfcfLOmvA6hgsa7JUk9Dk=";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
|
||||
{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
|
||||
buildKodiAddon rec {
|
||||
pname = "requests";
|
||||
namespace = "script.module.requests";
|
||||
version = "2.31.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-05BSD5aoN2CTnjqaSKYMb93j5nIfLvpJHyeQsK++sTw=";
|
||||
};
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue