Merge branch 'staging-next' into staging

Conflicts:
- pkgs/development/libraries/qt-6/default.nix
  Merge a5b92645f1 and 0597d865ef
This commit is contained in:
Jan Tojnar 2023-08-16 19:37:11 +02:00
commit 86797b2008
249 changed files with 3252 additions and 5574 deletions

View File

@ -116,7 +116,7 @@ let
inherit (self.derivations) lazyDerivation;
inherit (self.meta) addMetaAttrs dontDistribute setName updateName
appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
hiPrioSet getLicenseFromSpdxId getExe;
hiPrioSet getLicenseFromSpdxId getExe getExe';
inherit (self.filesystem) pathType pathIsDirectory pathIsRegularFile;
inherit (self.sources) cleanSourceFilter
cleanSource sourceByRegex sourceFilesBySuffices

View File

@ -143,9 +143,24 @@ rec {
=> "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
*/
getExe = x:
"${lib.getBin x}/bin/${x.meta.mainProgram or (
# This could be turned into an error when 23.05 is at end of life
lib.warn "getExe: Package ${lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name} does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, specify the full path to the program, such as \"\${lib.getBin foo}/bin/bar\"."
lib.getName x
)}";
let
y = x.meta.mainProgram or (
# This could be turned into an error when 23.05 is at end of life
lib.warn "getExe: Package ${lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name} does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, use getExe' to specify the name to the program, such as lib.getExe' foo \"bar\"."
lib.getName
x
);
in
getExe' x y;
/* Get the path of a program of a derivation.
Type: getExe' :: derivation -> string -> string
Example:
getExe' pkgs.hello "hello"
=> "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello"
getExe' pkgs.imagemagick "convert"
=> "/nix/store/5rs48jamq7k6sal98ymj9l4k2bnwq515-imagemagick-7.1.1-15/bin/convert"
*/
getExe' = x: y: "${lib.getBin x}/bin/${y}";
}

View File

@ -629,10 +629,10 @@ rec {
This behavior is deprecated and will throw an error in the future.''
(let
preLen = stringLength prefix;
sLen = stringLength str;
in
if substring 0 preLen str == prefix then
substring preLen (sLen - preLen) str
# -1 will take the string until the end
substring preLen (-1) str
else
str);

View File

@ -349,6 +349,27 @@ runTests {
expected = true;
};
testRemovePrefixExample1 = {
expr = removePrefix "foo." "foo.bar.baz";
expected = "bar.baz";
};
testRemovePrefixExample2 = {
expr = removePrefix "xxx" "foo.bar.baz";
expected = "foo.bar.baz";
};
testRemovePrefixEmptyPrefix = {
expr = removePrefix "" "foo";
expected = "foo";
};
testRemovePrefixEmptyString = {
expr = removePrefix "foo" "";
expected = "";
};
testRemovePrefixEmptyBoth = {
expr = removePrefix "" "";
expected = "";
};
testNormalizePath = {
expr = strings.normalizePath "//a/b//c////d/";
expected = "/a/b/c/d/";

View File

@ -8724,6 +8724,11 @@
githubId = 1927188;
name = "karolchmist";
};
katexochen = {
github = "katexochen";
githubId = 49727155;
name = "Paul Meyer";
};
kayhide = {
email = "kayhide@gmail.com";
github = "kayhide";
@ -15081,6 +15086,13 @@
fingerprint = "30BB FF3F AB0B BB3E 0435 F83C 8E8F F66E 2AE8 D970";
}];
};
scm2342 = {
name = "Sven Mattsen";
email = "nix@sven.cc";
matrix = "@scm:matrix.sven.cc";
github = "scm2342";
githubId = 154108;
};
scode = {
email = "peter.schuller@infidyne.com";
github = "scode";
@ -17787,6 +17799,12 @@
fingerprint = "5814 50EB 6E17 E715 7C63 E7F1 9879 8C3C 4D68 8D6D";
}];
};
viluon = {
email = "nix@viluon.me";
github = "viluon";
githubId = 7235381;
name = "Ondřej Kvapil";
};
vincentbernat = {
email = "vincent@bernat.ch";
github = "vincentbernat";

View File

@ -118,3 +118,33 @@ the symlink, and this path is in `/nix/store/.../lib/systemd/user/`.
Hence [garbage collection](#sec-nix-gc) will remove that file and you
will wind up with a broken symlink in your systemd configuration, which
in turn will not make the service / timer start on login.
## Template units {#sect-nixos-systemd-template-units}
systemd supports templated units where a base unit can be started multiple
times with a different parameter. The syntax to accomplish this is
`service-name@instance-name.service`. Units get the instance name passed to
them (see `systemd.unit(5)`). NixOS has support for these kinds of units and
for template-specific overrides. A service needs to be defined twice, once
for the base unit and once for the instance. All instances must include
`overrideStrategy = "asDropin"` for the change detection to work. This
example illustrates this:
```nix
{
systemd.services = {
"base-unit@".serviceConfig = {
ExecStart = "...";
User = "...";
};
"base-unit@instance-a" = {
overrideStrategy = "asDropin"; # needed for templates to work
wantedBy = [ "multi-user.target" ]; # causes NixOS to manage the instance
};
"base-unit@instance-b" = {
overrideStrategy = "asDropin"; # needed for templates to work
wantedBy = [ "multi-user.target" ]; # causes NixOS to manage the instance
serviceConfig.User = "root"; # also override something for this specific instance
};
};
}
```

View File

@ -17,14 +17,9 @@ with lib;
options = {
services.haproxy = {
enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable HAProxy, the reliable, high performance TCP/HTTP
load balancer.
'';
};
enable = mkEnableOption (lib.mdDoc "HAProxy, the reliable, high performance TCP/HTTP load balancer.");
package = mkPackageOptionMD pkgs "haproxy" { };
user = mkOption {
type = types.str;
@ -70,15 +65,15 @@ with lib;
ExecStartPre = [
# when the master process receives USR2, it reloads itself using exec(argv[0]),
# so we create a symlink there and update it before reloading
"${pkgs.coreutils}/bin/ln -sf ${pkgs.haproxy}/sbin/haproxy /run/haproxy/haproxy"
"${pkgs.coreutils}/bin/ln -sf ${lib.getExe cfg.package} /run/haproxy/haproxy"
# when running the config test, don't be quiet so we can see what goes wrong
"/run/haproxy/haproxy -c -f ${haproxyCfg}"
];
ExecStart = "/run/haproxy/haproxy -Ws -f /etc/haproxy.cfg -p /run/haproxy/haproxy.pid";
# support reloading
ExecReload = [
"${pkgs.haproxy}/sbin/haproxy -c -f ${haproxyCfg}"
"${pkgs.coreutils}/bin/ln -sf ${pkgs.haproxy}/sbin/haproxy /run/haproxy/haproxy"
"${lib.getExe cfg.package} -c -f ${haproxyCfg}"
"${pkgs.coreutils}/bin/ln -sf ${lib.getExe cfg.package} /run/haproxy/haproxy"
"${pkgs.coreutils}/bin/kill -USR2 $MAINPID"
];
KillMode = "mixed";

View File

@ -69,6 +69,8 @@ in
enableServer = lib.mkEnableOption (lib.mdDoc "the Kanidm server");
enablePam = lib.mkEnableOption (lib.mdDoc "the Kanidm PAM and NSS integration");
package = lib.mkPackageOptionMD pkgs "kanidm" {};
serverSettings = lib.mkOption {
type = lib.types.submodule {
freeformType = settingsFormat.type;
@ -222,7 +224,7 @@ in
}
];
environment.systemPackages = lib.mkIf cfg.enableClient [ pkgs.kanidm ];
environment.systemPackages = lib.mkIf cfg.enableClient [ cfg.package ];
systemd.services.kanidm = lib.mkIf cfg.enableServer {
description = "kanidm identity management daemon";
@ -237,7 +239,7 @@ in
StateDirectory = "kanidm";
StateDirectoryMode = "0700";
RuntimeDirectory = "kanidmd";
ExecStart = "${pkgs.kanidm}/bin/kanidmd server -c ${serverConfigFile}";
ExecStart = "${cfg.package}/bin/kanidmd server -c ${serverConfigFile}";
User = "kanidm";
Group = "kanidm";
@ -270,7 +272,7 @@ in
CacheDirectory = "kanidm-unixd";
CacheDirectoryMode = "0700";
RuntimeDirectory = "kanidm-unixd";
ExecStart = "${pkgs.kanidm}/bin/kanidm_unixd";
ExecStart = "${cfg.package}/bin/kanidm_unixd";
User = "kanidm-unixd";
Group = "kanidm-unixd";
@ -302,7 +304,7 @@ in
partOf = [ "kanidm-unixd.service" ];
restartTriggers = [ unixConfigFile clientConfigFile ];
serviceConfig = {
ExecStart = "${pkgs.kanidm}/bin/kanidm_unixd_tasks";
ExecStart = "${cfg.package}/bin/kanidm_unixd_tasks";
BindReadOnlyPaths = [
"/nix/store"
@ -346,7 +348,7 @@ in
})
];
system.nssModules = lib.mkIf cfg.enablePam [ pkgs.kanidm ];
system.nssModules = lib.mkIf cfg.enablePam [ cfg.package ];
system.nssDatabases.group = lib.optional cfg.enablePam "kanidm";
system.nssDatabases.passwd = lib.optional cfg.enablePam "kanidm";
@ -365,7 +367,7 @@ in
description = "Kanidm server";
isSystemUser = true;
group = "kanidm";
packages = with pkgs; [ kanidm ];
packages = [ cfg.package ];
};
})
(lib.mkIf cfg.enablePam {

View File

@ -1,79 +1,66 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mediamtx;
package = pkgs.mediamtx;
format = pkgs.formats.yaml {};
in
{
meta.maintainers = with lib.maintainers; [ fpletz ];
options = {
services.mediamtx = {
enable = mkEnableOption (lib.mdDoc "MediaMTX");
enable = lib.mkEnableOption (lib.mdDoc "MediaMTX");
settings = mkOption {
package = lib.mkPackageOptionMD pkgs "mediamtx" { };
settings = lib.mkOption {
description = lib.mdDoc ''
Settings for MediaMTX.
Read more at <https://github.com/aler9/mediamtx/blob/main/mediamtx.yml>
Settings for MediaMTX. Refer to the defaults at
<https://github.com/bluenviron/mediamtx/blob/main/mediamtx.yml>.
'';
type = format.type;
default = {
logLevel = "info";
logDestinations = [
"stdout"
];
# we set this so when the user uses it, it just works (see LogsDirectory below). but it's not used by default.
logFile = "/var/log/mediamtx/mediamtx.log";
};
default = {};
example = {
paths = {
cam = {
runOnInit = "ffmpeg -f v4l2 -i /dev/video0 -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH";
runOnInit = "\${lib.getExe pkgs.ffmpeg} -f v4l2 -i /dev/video0 -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH";
runOnInitRestart = true;
};
};
};
};
env = mkOption {
type = with types; attrsOf anything;
env = lib.mkOption {
type = with lib.types; attrsOf anything;
description = lib.mdDoc "Extra environment variables for MediaMTX";
default = {};
example = {
MTX_CONFKEY = "mykey";
};
};
allowVideoAccess = lib.mkEnableOption (lib.mdDoc ''
Enable access to video devices like cameras on the system.
'');
};
};
config = mkIf (cfg.enable) {
config = lib.mkIf cfg.enable {
# NOTE: mediamtx watches this file and automatically reloads if it changes
environment.etc."mediamtx.yaml".source = format.generate "mediamtx.yaml" cfg.settings;
systemd.services.mediamtx = {
environment = cfg.env;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [
ffmpeg
];
environment = cfg.env;
serviceConfig = {
DynamicUser = true;
User = "mediamtx";
Group = "mediamtx";
LogsDirectory = "mediamtx";
# user likely may want to stream cameras, can't hurt to add video group
SupplementaryGroups = "video";
ExecStart = "${package}/bin/mediamtx /etc/mediamtx.yaml";
SupplementaryGroups = lib.mkIf cfg.allowVideoAccess "video";
ExecStart = "${cfg.package}/bin/mediamtx /etc/mediamtx.yaml";
};
};
};

View File

@ -7,6 +7,9 @@ let
settingsFile = settingsFormat.generate "invidious-settings" cfg.settings;
generatedHmacKeyFile = "/var/lib/invidious/hmac_key";
generateHmac = cfg.hmacKeyFile == null;
serviceConfig = {
systemd.services.invidious = {
description = "Invidious (An alternative YouTube front-end)";
@ -14,22 +17,47 @@ let
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
script =
let
jqFilter = "."
+ lib.optionalString (cfg.database.host != null) "[0].db.password = \"'\"'\"$(cat ${lib.escapeShellArg cfg.database.passwordFile})\"'\"'\""
+ " | .[0]"
+ lib.optionalString (cfg.extraSettingsFile != null) " * .[1]";
jqFiles = [ settingsFile ] ++ lib.optional (cfg.extraSettingsFile != null) cfg.extraSettingsFile;
in
''
export INVIDIOUS_CONFIG="$(${pkgs.jq}/bin/jq -s "${jqFilter}" ${lib.escapeShellArgs jqFiles})"
exec ${cfg.package}/bin/invidious
'';
preStart = lib.optionalString generateHmac ''
if [[ ! -e "${generatedHmacKeyFile}" ]]; then
${pkgs.pwgen}/bin/pwgen 20 1 > "${generatedHmacKeyFile}"
chmod 0600 "${generatedHmacKeyFile}"
fi
'';
script = ''
configParts=()
''
# autogenerated hmac_key
+ lib.optionalString generateHmac ''
configParts+=("$(${pkgs.jq}/bin/jq -R '{"hmac_key":.}' <"${generatedHmacKeyFile}")")
''
# generated settings file
+ ''
configParts+=("$(< ${lib.escapeShellArg settingsFile})")
''
# optional database password file
+ lib.optionalString (cfg.database.host != null) ''
configParts+=("$(${pkgs.jq}/bin/jq -R '{"db":{"password":.}}' ${lib.escapeShellArg cfg.database.passwordFile})")
''
# optional extra settings file
+ lib.optionalString (cfg.extraSettingsFile != null) ''
configParts+=("$(< ${lib.escapeShellArg cfg.extraSettingsFile})")
''
# explicitly specified hmac key file
+ lib.optionalString (cfg.hmacKeyFile != null) ''
configParts+=("$(< ${lib.escapeShellArg cfg.hmacKeyFile})")
''
# merge all parts into a single configuration with later elements overriding previous elements
+ ''
export INVIDIOUS_CONFIG="$(${pkgs.jq}/bin/jq -s 'reduce .[] as $item ({}; . * $item)' <<<"''${configParts[*]}")"
exec ${cfg.package}/bin/invidious
'';
serviceConfig = {
RestartSec = "2s";
DynamicUser = true;
StateDirectory = "invidious";
StateDirectoryMode = "0750";
CapabilityBoundingSet = "";
PrivateDevices = true;
@ -171,6 +199,18 @@ in
'';
};
hmacKeyFile = lib.mkOption {
type = types.nullOr types.path;
default = null;
description = lib.mdDoc ''
A path to a file containing the `hmac_key`. If `null`, a key will be generated automatically on first
start.
If non-`null`, this option overrides any `hmac_key` specified in {option}`services.invidious.settings` or
via {option}`services.invidious.extraSettingsFile`.
'';
};
extraSettingsFile = lib.mkOption {
type = types.nullOr types.str;
default = null;

View File

@ -61,6 +61,8 @@ in {
'';
};
package = mkPackageOptionMD pkgs "picom" { };
fade = mkOption {
type = types.bool;
default = false;
@ -301,13 +303,13 @@ in {
};
serviceConfig = {
ExecStart = "${pkgs.picom}/bin/picom --config ${configFile}";
ExecStart = "${getExe cfg.package} --config ${configFile}";
RestartSec = 3;
Restart = "always";
};
};
environment.systemPackages = [ pkgs.picom ];
environment.systemPackages = [ cfg.package ];
};
meta.maintainers = with lib.maintainers; [ rnhmjoj ];

View File

@ -253,16 +253,24 @@ sub parse_systemd_ini {
# If a directory with the same basename ending in .d exists next to the unit file, it will be
# assumed to contain override files which will be parsed as well and handled properly.
sub parse_unit {
my ($unit_path) = @_;
my ($unit_path, $base_unit_path) = @_;
# Parse the main unit and all overrides
my %unit_data;
# Replace \ with \\ so glob() still works with units that have a \ in them
# Valid characters in unit names are ASCII letters, digits, ":", "-", "_", ".", and "\"
$base_unit_path =~ s/\\/\\\\/gmsx;
$unit_path =~ s/\\/\\\\/gmsx;
foreach (glob("${unit_path}{,.d/*.conf}")) {
foreach (glob("${base_unit_path}{,.d/*.conf}")) {
parse_systemd_ini(\%unit_data, "$_")
}
# Handle drop-in template-unit instance overrides
if ($unit_path ne $base_unit_path) {
foreach (glob("${unit_path}.d/*.conf")) {
parse_systemd_ini(\%unit_data, "$_")
}
}
return %unit_data;
}
@ -423,7 +431,7 @@ sub compare_units { ## no critic(Subroutines::ProhibitExcessComplexity)
# Called when a unit exists in both the old systemd and the new system and the units
# differ. This figures out of what units are to be stopped, restarted, reloaded, started, and skipped.
sub handle_modified_unit { ## no critic(Subroutines::ProhibitManyArgs, Subroutines::ProhibitExcessComplexity)
my ($unit, $base_name, $new_unit_file, $new_unit_info, $active_cur, $units_to_stop, $units_to_start, $units_to_reload, $units_to_restart, $units_to_skip) = @_;
my ($unit, $base_name, $new_unit_file, $new_base_unit_file, $new_unit_info, $active_cur, $units_to_stop, $units_to_start, $units_to_reload, $units_to_restart, $units_to_skip) = @_;
if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target" || $unit =~ /\.path$/msx || $unit =~ /\.slice$/msx) {
# Do nothing. These cannot be restarted directly.
@ -442,7 +450,7 @@ sub handle_modified_unit { ## no critic(Subroutines::ProhibitManyArgs, Subroutin
# Revert of the attempt: https://github.com/NixOS/nixpkgs/pull/147609
# More details: https://github.com/NixOS/nixpkgs/issues/74899#issuecomment-981142430
} else {
my %new_unit_info = $new_unit_info ? %{$new_unit_info} : parse_unit($new_unit_file);
my %new_unit_info = $new_unit_info ? %{$new_unit_info} : parse_unit($new_unit_file, $new_base_unit_file);
if (parse_systemd_bool(\%new_unit_info, "Service", "X-ReloadIfChanged", 0) and not $units_to_restart->{$unit} and not $units_to_stop->{$unit}) {
$units_to_reload->{$unit} = 1;
record_unit($reload_list_file, $unit);
@ -538,31 +546,33 @@ my %units_to_filter; # units not shown
my $active_cur = get_active_units();
while (my ($unit, $state) = each(%{$active_cur})) {
my $base_unit = $unit;
my $cur_unit_file = "/etc/systemd/system/$unit";
my $new_unit_file = "$toplevel/etc/systemd/system/$unit";
my $cur_unit_file = "/etc/systemd/system/$base_unit";
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
my $base_unit = $unit;
my $cur_base_unit_file = $cur_unit_file;
my $new_base_unit_file = $new_unit_file;
# Detect template instances.
if (!-e $cur_unit_file && !-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
$cur_unit_file = "/etc/systemd/system/$base_unit";
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
$cur_base_unit_file = "/etc/systemd/system/$base_unit";
$new_base_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
$base_name =~ s/\.[[:lower:]]*$//msx;
if (-e $cur_unit_file && ($state->{state} eq "active" || $state->{state} eq "activating")) {
if (! -e $new_unit_file || abs_path($new_unit_file) eq "/dev/null") {
my %cur_unit_info = parse_unit($cur_unit_file);
if (-e $cur_base_unit_file && ($state->{state} eq "active" || $state->{state} eq "activating")) {
if (! -e $new_base_unit_file || abs_path($new_base_unit_file) eq "/dev/null") {
my %cur_unit_info = parse_unit($cur_unit_file, $cur_base_unit_file);
if (parse_systemd_bool(\%cur_unit_info, "Unit", "X-StopOnRemoval", 1)) {
$units_to_stop{$unit} = 1;
}
}
elsif ($unit =~ /\.target$/msx) {
my %new_unit_info = parse_unit($new_unit_file);
my %new_unit_info = parse_unit($new_unit_file, $new_base_unit_file);
# Cause all active target units to be restarted below.
# This should start most changed units we stop here as
@ -596,11 +606,11 @@ while (my ($unit, $state) = each(%{$active_cur})) {
}
else {
my %cur_unit_info = parse_unit($cur_unit_file);
my %new_unit_info = parse_unit($new_unit_file);
my %cur_unit_info = parse_unit($cur_unit_file, $cur_base_unit_file);
my %new_unit_info = parse_unit($new_unit_file, $new_base_unit_file);
my $diff = compare_units(\%cur_unit_info, \%new_unit_info);
if ($diff == 1) {
handle_modified_unit($unit, $base_name, $new_unit_file, \%new_unit_info, $active_cur, \%units_to_stop, \%units_to_start, \%units_to_reload, \%units_to_restart, \%units_to_skip);
handle_modified_unit($unit, $base_name, $new_unit_file, $new_base_unit_file, \%new_unit_info, $active_cur, \%units_to_stop, \%units_to_start, \%units_to_reload, \%units_to_restart, \%units_to_skip);
} elsif ($diff == 2 and not $units_to_restart{$unit}) {
$units_to_reload{$unit} = 1;
record_unit($reload_list_file, $unit);
@ -710,13 +720,14 @@ if ($action eq "dry-activate") {
# Handle the activation script requesting the restart or reload of a unit.
foreach (split(/\n/msx, read_file($dry_restart_by_activation_file, err_mode => "quiet") // "")) {
my $unit = $_;
my $new_unit_file = "$toplevel/etc/systemd/system/$unit";
my $base_unit = $unit;
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
my $new_base_unit_file = $new_unit_file;
# Detect template instances.
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
$new_base_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
@ -728,7 +739,7 @@ if ($action eq "dry-activate") {
next;
}
handle_modified_unit($unit, $base_name, $new_unit_file, undef, $active_cur, \%units_to_restart, \%units_to_restart, \%units_to_reload, \%units_to_restart, \%units_to_skip);
handle_modified_unit($unit, $base_name, $new_unit_file, $new_base_unit_file, undef, $active_cur, \%units_to_restart, \%units_to_restart, \%units_to_reload, \%units_to_restart, \%units_to_skip);
}
unlink($dry_restart_by_activation_file);
@ -782,13 +793,14 @@ system("$out/activate", "$out") == 0 or $res = 2;
# Handle the activation script requesting the restart or reload of a unit.
foreach (split(/\n/msx, read_file($restart_by_activation_file, err_mode => "quiet") // "")) {
my $unit = $_;
my $new_unit_file = "$toplevel/etc/systemd/system/$unit";
my $base_unit = $unit;
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
my $new_base_unit_file = $new_unit_file;
# Detect template instances.
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
$new_base_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
@ -801,7 +813,7 @@ foreach (split(/\n/msx, read_file($restart_by_activation_file, err_mode => "quie
next;
}
handle_modified_unit($unit, $base_name, $new_unit_file, undef, $active_cur, \%units_to_restart, \%units_to_restart, \%units_to_reload, \%units_to_restart, \%units_to_skip);
handle_modified_unit($unit, $base_name, $new_unit_file, $new_base_unit_file, undef, $active_cur, \%units_to_restart, \%units_to_restart, \%units_to_reload, \%units_to_restart, \%units_to_skip);
}
# We can remove the file now because it has been propagated to the other restart/reload files
unlink($restart_by_activation_file);
@ -859,7 +871,7 @@ if (scalar(keys(%units_to_reload)) > 0) {
for my $unit (keys(%units_to_reload)) {
if (!unit_is_active($unit)) {
# Figure out if we need to start the unit
my %unit_info = parse_unit("$toplevel/etc/systemd/system/$unit");
my %unit_info = parse_unit("$toplevel/etc/systemd/system/$unit", "$toplevel/etc/systemd/system/$unit");
if (!(parse_systemd_bool(\%unit_info, "Unit", "RefuseManualStart", 0) || parse_systemd_bool(\%unit_info, "Unit", "X-OnlyManualStart", 0))) {
$units_to_start{$unit} = 1;
record_unit($start_list_file, $unit);

View File

@ -463,6 +463,7 @@ in {
matrix-conduit = handleTest ./matrix/conduit.nix {};
matrix-synapse = handleTest ./matrix/synapse.nix {};
mattermost = handleTest ./mattermost.nix {};
mediamtx = handleTest ./mediamtx.nix {};
mediatomb = handleTest ./mediatomb.nix {};
mediawiki = handleTest ./mediawiki.nix {};
meilisearch = handleTest ./meilisearch.nix {};

57
nixos/tests/mediamtx.nix Normal file
View File

@ -0,0 +1,57 @@
import ./make-test-python.nix ({ pkgs, lib, ...} :
{
name = "mediamtx";
meta.maintainers = with lib.maintainers; [ fpletz ];
nodes = {
machine = { config, ... }: {
services.mediamtx = {
enable = true;
settings = {
metrics = true;
paths.all.source = "publisher";
};
};
systemd.services.rtmp-publish = {
description = "Publish an RTMP stream to mediamtx";
after = [ "mediamtx.service" ];
bindsTo = [ "mediamtx.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
Restart = "on-failure";
RestartSec = "1s";
TimeoutStartSec = "10s";
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -re -f lavfi -i smptebars=size=800x600:rate=10 -c libx264 -f flv rtmp://localhost:1935/test";
};
};
systemd.services.rtmp-receive = {
description = "Receive an RTMP stream from mediamtx";
after = [ "rtmp-publish.service" ];
bindsTo = [ "rtmp-publish.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
Restart = "on-failure";
RestartSec = "1s";
TimeoutStartSec = "10s";
ExecStart = "${lib.getBin pkgs.ffmpeg-headless}/bin/ffmpeg -y -re -i rtmp://localhost:1935/test -f flv /dev/null";
};
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("mediamtx.service")
machine.wait_for_unit("rtmp-publish.service")
machine.wait_for_unit("rtmp-receive.service")
machine.wait_for_open_port(9998)
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"publish\".*1$'")
machine.succeed("curl http://localhost:9998/metrics | grep '^rtmp_conns.*state=\"read\".*1$'")
'';
})

View File

@ -1200,7 +1200,7 @@ let
};
exporterTest = ''
wait_until_succeeds(
'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "Device unavailable"'
'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "Unable to detect device type"'
)
'';
};

View File

@ -1,6 +1,6 @@
# Test configuration switching.
import ./make-test-python.nix ({ pkgs, ...} : let
import ./make-test-python.nix ({ lib, pkgs, ...} : let
# Simple service that can either be socket-activated or that will
# listen on port 1234 if not socket-activated.
@ -279,6 +279,28 @@ in {
systemd.services.test-service.unitConfig.RefuseManualStart = true;
};
unitWithTemplate.configuration = {
systemd.services."instantiated@".serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "${pkgs.coreutils}/bin/true";
ExecReload = "${pkgs.coreutils}/bin/true";
};
systemd.services."instantiated@one" = {
wantedBy = [ "multi-user.target" ];
overrideStrategy = "asDropin";
};
systemd.services."instantiated@two" = {
wantedBy = [ "multi-user.target" ];
overrideStrategy = "asDropin";
};
};
unitWithTemplateModified.configuration = {
imports = [ unitWithTemplate.configuration ];
systemd.services."instantiated@".serviceConfig.X-Test = "test";
};
restart-and-reload-by-activation-script.configuration = {
systemd.services = rec {
simple-service = {
@ -290,29 +312,50 @@ in {
ExecReload = "${pkgs.coreutils}/bin/true";
};
};
"templated-simple-service@" = simple-service;
"templated-simple-service@instance".overrideStrategy = "asDropin";
simple-restart-service = simple-service // {
stopIfChanged = false;
};
"templated-simple-restart-service@" = simple-restart-service;
"templated-simple-restart-service@instance".overrideStrategy = "asDropin";
simple-reload-service = simple-service // {
reloadIfChanged = true;
};
"templated-simple-reload-service@" = simple-reload-service;
"templated-simple-reload-service@instance".overrideStrategy = "asDropin";
no-restart-service = simple-service // {
restartIfChanged = false;
};
"templated-no-restart-service@" = no-restart-service;
"templated-no-restart-service@instance".overrideStrategy = "asDropin";
reload-triggers = simple-service // {
wantedBy = [ "multi-user.target" ];
};
"templated-reload-triggers@" = simple-service;
"templated-reload-triggers@instance" = {
overrideStrategy = "asDropin";
wantedBy = [ "multi-user.target" ];
};
reload-triggers-and-restart-by-as = simple-service;
"templated-reload-triggers-and-restart-by-as@" = reload-triggers-and-restart-by-as;
"templated-reload-triggers-and-restart-by-as@instance".overrideStrategy = "asDropin";
reload-triggers-and-restart = simple-service // {
stopIfChanged = false; # easier to check for this
wantedBy = [ "multi-user.target" ];
};
"templated-reload-triggers-and-restart@" = simple-service;
"templated-reload-triggers-and-restart@instance" = {
overrideStrategy = "asDropin";
stopIfChanged = false; # easier to check for this
wantedBy = [ "multi-user.target" ];
};
};
system.activationScripts.restart-and-reload-test = {
@ -332,12 +375,20 @@ in {
simple-reload-service.service
no-restart-service.service
reload-triggers-and-restart-by-as.service
templated-simple-service@instance.service
templated-simple-restart-service@instance.service
templated-simple-reload-service@instance.service
templated-no-restart-service@instance.service
templated-reload-triggers-and-restart-by-as@instance.service
EOF
cat <<EOF >> "$g"
reload-triggers.service
reload-triggers-and-restart-by-as.service
reload-triggers-and-restart.service
templated-reload-triggers@instance.service
templated-reload-triggers-and-restart-by-as@instance.service
templated-reload-triggers-and-restart@instance.service
EOF
'';
};
@ -346,6 +397,10 @@ in {
restart-and-reload-by-activation-script-modified.configuration = {
imports = [ restart-and-reload-by-activation-script.configuration ];
systemd.services.reload-triggers-and-restart.serviceConfig.X-Modified = "test";
systemd.services."templated-reload-triggers-and-restart@instance" = {
overrideStrategy = "asDropin";
serviceConfig.X-Modified = "test";
};
};
simple-socket.configuration = {
@ -507,6 +562,10 @@ in {
set -o pipefail
exec env -i "$@" | tee /dev/stderr
'';
# Returns a comma separated representation of the given list in sorted
# order, that matches the output format of switch-to-configuration.pl
sortedUnits = xs: lib.concatStringsSep ", " (builtins.sort builtins.lessThan xs);
in /* python */ ''
def switch_to_specialisation(system, name, action="test", fail=False):
if name == "":
@ -733,6 +792,16 @@ in {
assert_contains(out, "\nstarting the following units: required-service.service\n")
assert_lacks(out, "the following new units were started:")
# Ensure templated units are restarted when the base unit changes
switch_to_specialisation("${machine}", "unitWithTemplate")
out = switch_to_specialisation("${machine}", "unitWithTemplateModified")
assert_contains(out, "stopping the following units: instantiated@one.service, instantiated@two.service\n")
assert_lacks(out, "NOT restarting the following changed units:")
assert_lacks(out, "reloading the following units:")
assert_lacks(out, "\nrestarting the following units:")
assert_contains(out, "\nstarting the following units: instantiated@one.service, instantiated@two.service\n")
assert_lacks(out, "the following new units were started:")
with subtest("failing units"):
# Let the simple service fail
switch_to_specialisation("${machine}", "simpleServiceModified")
@ -896,15 +965,62 @@ in {
assert_lacks(out, "NOT restarting the following changed units:")
assert_lacks(out, "reloading the following units:")
assert_lacks(out, "restarting the following units:")
assert_contains(out, "\nstarting the following units: no-restart-service.service, reload-triggers-and-restart-by-as.service, simple-reload-service.service, simple-restart-service.service, simple-service.service\n")
assert_contains(out, "the following new units were started: no-restart-service.service, reload-triggers-and-restart-by-as.service, reload-triggers-and-restart.service, reload-triggers.service, simple-reload-service.service, simple-restart-service.service, simple-service.service\n")
assert_contains(out, "\nstarting the following units: ${sortedUnits [
"no-restart-service.service"
"reload-triggers-and-restart-by-as.service"
"simple-reload-service.service"
"simple-restart-service.service"
"simple-service.service"
"templated-no-restart-service@instance.service"
"templated-reload-triggers-and-restart-by-as@instance.service"
"templated-simple-reload-service@instance.service"
"templated-simple-restart-service@instance.service"
"templated-simple-service@instance.service"
]}\n")
assert_contains(out, "the following new units were started: ${sortedUnits [
"no-restart-service.service"
"reload-triggers-and-restart-by-as.service"
"reload-triggers-and-restart.service"
"reload-triggers.service"
"simple-reload-service.service"
"simple-restart-service.service"
"simple-service.service"
"system-templated\\\\x2dno\\\\x2drestart\\\\x2dservice.slice"
"system-templated\\\\x2dreload\\\\x2dtriggers.slice"
"system-templated\\\\x2dreload\\\\x2dtriggers\\\\x2dand\\\\x2drestart.slice"
"system-templated\\\\x2dreload\\\\x2dtriggers\\\\x2dand\\\\x2drestart\\\\x2dby\\\\x2das.slice"
"system-templated\\\\x2dsimple\\\\x2dreload\\\\x2dservice.slice"
"system-templated\\\\x2dsimple\\\\x2drestart\\\\x2dservice.slice"
"system-templated\\\\x2dsimple\\\\x2dservice.slice"
"templated-no-restart-service@instance.service"
"templated-reload-triggers-and-restart-by-as@instance.service"
"templated-reload-triggers-and-restart@instance.service"
"templated-reload-triggers@instance.service"
"templated-simple-reload-service@instance.service"
"templated-simple-restart-service@instance.service"
"templated-simple-service@instance.service"
]}\n")
# Switch to the same system where the example services get restarted
# and reloaded by the activation script
out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: reload-triggers-and-restart.service, reload-triggers.service, simple-reload-service.service\n")
assert_contains(out, "restarting the following units: reload-triggers-and-restart-by-as.service, simple-restart-service.service, simple-service.service\n")
assert_contains(out, "reloading the following units: ${sortedUnits [
"reload-triggers-and-restart.service"
"reload-triggers.service"
"simple-reload-service.service"
"templated-reload-triggers-and-restart@instance.service"
"templated-reload-triggers@instance.service"
"templated-simple-reload-service@instance.service"
]}\n")
assert_contains(out, "restarting the following units: ${sortedUnits [
"reload-triggers-and-restart-by-as.service"
"simple-restart-service.service"
"simple-service.service"
"templated-reload-triggers-and-restart-by-as@instance.service"
"templated-simple-restart-service@instance.service"
"templated-simple-service@instance.service"
]}\n")
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
# Switch to the same system and see if the service gets restarted when it's modified
@ -912,16 +1028,44 @@ in {
out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script-modified")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_contains(out, "reloading the following units: reload-triggers.service, simple-reload-service.service\n")
assert_contains(out, "restarting the following units: reload-triggers-and-restart-by-as.service, reload-triggers-and-restart.service, simple-restart-service.service, simple-service.service\n")
assert_contains(out, "reloading the following units: ${sortedUnits [
"reload-triggers.service"
"simple-reload-service.service"
"templated-reload-triggers@instance.service"
"templated-simple-reload-service@instance.service"
]}\n")
assert_contains(out, "restarting the following units: ${sortedUnits [
"reload-triggers-and-restart-by-as.service"
"reload-triggers-and-restart.service"
"simple-restart-service.service"
"simple-service.service"
"templated-reload-triggers-and-restart-by-as@instance.service"
"templated-reload-triggers-and-restart@instance.service"
"templated-simple-restart-service@instance.service"
"templated-simple-service@instance.service"
]}\n")
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
# The same, but in dry mode
out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script", action="dry-activate")
assert_lacks(out, "would stop the following units:")
assert_lacks(out, "would NOT stop the following changed units:")
assert_contains(out, "would reload the following units: reload-triggers.service, simple-reload-service.service\n")
assert_contains(out, "would restart the following units: reload-triggers-and-restart-by-as.service, reload-triggers-and-restart.service, simple-restart-service.service, simple-service.service\n")
assert_contains(out, "would reload the following units: ${sortedUnits [
"reload-triggers.service"
"simple-reload-service.service"
"templated-reload-triggers@instance.service"
"templated-simple-reload-service@instance.service"
]}\n")
assert_contains(out, "would restart the following units: ${sortedUnits [
"reload-triggers-and-restart-by-as.service"
"reload-triggers-and-restart.service"
"simple-restart-service.service"
"simple-service.service"
"templated-reload-triggers-and-restart-by-as@instance.service"
"templated-reload-triggers-and-restart@instance.service"
"templated-simple-restart-service@instance.service"
"templated-simple-service@instance.service"
]}\n")
assert_lacks(out, "\nwould start the following units:")
with subtest("socket-activated services"):

View File

@ -20,7 +20,7 @@
geminiserver.wait_for_open_port(1965)
with subtest("check is serving over gemini"):
response = geminiserver.succeed("${pkgs.gmni}/bin/gmni -j once -i -N gemini://localhost:1965")
response = geminiserver.succeed("${pkgs.gemget}/bin/gemget --header -o - gemini://localhost:1965")
print(response)
assert "Hello NixOS!" in response
'';

View File

@ -10,11 +10,11 @@
}:
stdenv.mkDerivation rec {
version = "2.9.7";
version = "3.0.1";
pname = "asunder";
src = fetchurl {
url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2";
sha256 = "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1";
sha256 = "sha256-iGji4bl7ZofIAOf2EiYqMWu4V+3TmIN2jOYottJTN2s=";
};
nativeBuildInputs = [ intltool makeWrapper pkg-config ];

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
pname = "cava";
version = "0.8.3";
version = "0.9.0";
buildInputs = [
alsa-lib
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
owner = "karlstav";
repo = "cava";
rev = version;
sha256 = "sha256-6xiWhWynIbUWFIieiYIg24PgwnKuNSIEpkY+P6gyFGw=";
sha256 = "sha256-mIgkvgVcbRdE29lSLojIzIsnwZgnQ+B2sgScDWrLyd8=";
};
nativeBuildInputs = [ autoreconfHook ];

View File

@ -0,0 +1,53 @@
{ lib
, stdenv
, fetchFromGitLab
, desktop-file-utils
, gobject-introspection
, gst_all_1
, gtk4
, libadwaita
, meson
, ninja
, pkg-config
, vala
, wrapGAppsHook4
}:
stdenv.mkDerivation (finalAttrs: {
pname = "g4music";
version = "3.2";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "neithern";
repo = "g4music";
rev = "v${finalAttrs.version}";
hash = "sha256-BlHOYD4sOmJPNMzM5QA97Ah1N9tIat0Y6qxN6c5pmsw=";
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gtk4
libadwaita
] ++ (with gst_all_1; [
gst-plugins-base
gst-plugins-good
gstreamer
]);
meta = with lib; {
description = "A beautiful, fast, fluent, light weight music player written in GTK4";
homepage = "https://gitlab.gnome.org/neithern/g4music";
license = licenses.gpl3Only;
maintainers = with maintainers; [ magnouvean ];
platforms = platforms.linux;
};
})

View File

@ -1,34 +1,34 @@
{ stdenv
, lib
{ copyDesktopItems
, fetchFromGitHub
, pipewire
, pulseaudio
, gst_all_1
, glibmm
, gst_all_1
, lib
, libarchive
, makeDesktopItem
, pipewire
, pkg-config
, pulseaudio
, qmake
, qtbase
, qtsvg
, wrapQtAppsHook
, makeDesktopItem
, pkg-config
, libarchive
, copyDesktopItems
, stdenv
, usePipewire ? true
, usePulseaudio ? false
, wrapQtAppsHook
}:
assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable one and only one of pulseaudio or pipewire support";
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "jamesdsp";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub rec {
src = fetchFromGitHub {
owner = "Audio4Linux";
repo = "JDSP4Linux";
fetchSubmodules = true;
rev = version;
hash = "sha256-pogBpmGlqQnkXMdp5HbMYISjwMJalSPvEV9MDHj8aec=";
rev = finalAttrs.version;
hash = "sha256-XYJl94/PstWG5qaBQ2rXc/nG9bDeP3Q62zDYHmZvPaw=";
};
nativeBuildInputs = [
@ -43,15 +43,16 @@ stdenv.mkDerivation rec {
libarchive
qtbase
qtsvg
] ++ lib.optional usePipewire pipewire
++ lib.optionals usePulseaudio [
] ++ lib.optionals usePipewire [
pipewire
] ++ lib.optionals usePulseaudio [
pulseaudio
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
];
preFixup = lib.optionals usePulseaudio ''
preFixup = lib.optionalString usePulseaudio ''
qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
'';
@ -76,12 +77,12 @@ stdenv.mkDerivation rec {
install -D resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/jamesdsp.svg
'';
meta = with lib;{
meta = {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "An audio effect processor for PipeWire clients";
homepage = "https://github.com/Audio4Linux/JDSP4Linux";
license = licenses.gpl3Only;
maintainers = with maintainers; [ pasqui23 rewine ];
platforms = platforms.linux;
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ pasqui23 rewine ];
platforms = lib.platforms.linux;
};
}
})

View File

@ -64,6 +64,18 @@ in stdenv'.mkDerivation rec {
url = "https://github.com/doronbehar/MuseScore/commit/f48448a3ede46f5a7ef470940072fbfb6742487c.patch";
hash = "sha256-UEc7auscnW0KMfWkLKQtm+UstuTNsuFeoNJYIidIlwM=";
})
# Upstream removed the option to use system freetype library in v4.1.0,
# causing the app to crash on systems when the outdated bundled freetype
# tries to load the Noto Sans font. For more info on the crash itself,
# see #244409 and https://github.com/musescore/MuseScore/issues/18795.
# For now, re-add the option ourselves. The fix has been merged upstream,
# so we can remove this patch with the next version. In the future, we
# may replace the other bundled thirdparty libs with system libs, see
# https://github.com/musescore/MuseScore/issues/11572.
(fetchpatch {
url = "https://github.com/musescore/MuseScore/commit/9ab6b32b1c3b990cfa7bb172ee8112521dc2269c.patch";
hash = "sha256-5GA29Z+o3I/uDTTDbkauZ8/xSdCE6yY93phMSY0ea7s=";
})
];
cmakeFlags = [
@ -73,7 +85,7 @@ in stdenv'.mkDerivation rec {
# https://github.com/musescore/MuseScore/issues/15571
"-DMUE_BUILD_CRASHPAD_CLIENT=OFF"
# Use our freetype
"-DUSE_SYSTEM_FREETYPE=ON"
"-DMUE_COMPILE_USE_SYSTEM_FREETYPE=ON"
# From some reason, in $src/build/cmake/SetupBuildEnvironment.cmake,
# upstream defaults to compiling to x86_64 only, unless this cmake flag is
# set
@ -141,6 +153,9 @@ in stdenv'.mkDerivation rec {
ln -s $out/Applications/mscore.app/Contents/MacOS/mscore $out/bin/mscore.
'';
# Don't run bundled upstreams tests, as they require a running X window system.
doCheck = false;
passthru.tests = nixosTests.musescore;
meta = with lib; {

View File

@ -5,14 +5,14 @@
mkDerivation rec {
pname = "qpwgraph";
version = "0.5.1";
version = "0.5.2";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "rncbc";
repo = "qpwgraph";
rev = "v${version}";
sha256 = "sha256-HVeuqgqYf/gO1KdteXV4dWd13Q58GqHUz8CAYpruc18=";
sha256 = "sha256-qcd19YI2RDoh+vjeelxNajWsUwVokLu0kh35a4oezKA=";
};
nativeBuildInputs = [ cmake pkg-config ];

View File

@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
version = "1.11.1";
version = "1.11.2";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-fKw1RKylpbejzSTO3Ti2toJiSwqtmNC1e2XDAYa9L/0=";
sha256 = "sha256-22JQ8GqMRNfBT2ynyGhJBeGgnyAVYVBa5tUGZsleDP0=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";

View File

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.196.0";
version = "1.197.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
hash = "sha256-O037+Pm/aq/9ZPMYpWlNPa9tEilatN8OJ3oBAuk4UTs=";
hash = "sha256-960Ucp2iNDqK2n/sJSIyMWxgCCs0LVyafn8SRRhli4c=";
};
postPatch = ''

View File

@ -6,18 +6,18 @@
},
"ATBinHex-Lazarus": {
"owner": "Alexey-T",
"rev": "2022.06.14",
"hash": "sha256-3QhARraYURW5uCf2f4MZfUbxdbsg9h7BlXUxKcz4jwA="
"rev": "2023.08.12",
"hash": "sha256-dEwz052aYcJtKpRcP8t7gE2RHuHPQ4T0zHFMv6zVZ6g="
},
"ATFlatControls": {
"owner": "Alexey-T",
"rev": "2023.05.31",
"hash": "sha256-/CN6wa5XN5ERdFnqOXxxtT08ObtlToqe3YsLpiog40w="
"rev": "2023.08.12",
"hash": "sha256-YBIuwiHE83mxxtl9PNrQN3LrEBFHvYY74zhV+UtAbZ4="
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2023.07.05",
"hash": "sha256-+FZjmrB8t7WM3XALqT+jvTSbBYIVLav4zSSCvMr5r+U="
"rev": "2023.08.12",
"hash": "sha256-hFDWb7gMQiTkItFC5KfSrpAW3FSkmAhxcc5GOdov3EE="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@ -31,8 +31,8 @@
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
"rev": "2023.07.05",
"hash": "sha256-dvo4lariMl/FMSp6VJEAk/Zhaz2fdBxe7aKw229DxKw="
"rev": "2023.08.12",
"hash": "sha256-cEu8qkmcsNwrLR5t3bfMHI9fd3wmAq/dI/iRM4I4wmQ="
},
"Python-for-Lazarus": {
"owner": "Alexey-T",
@ -41,8 +41,8 @@
},
"Emmet-Pascal": {
"owner": "Alexey-T",
"rev": "2022.09.18",
"hash": "sha256-Kutl4Jh/+KptGbqakzPJnIYlFtytXVlzKWulKt4Z+/g="
"rev": "2023.08.12",
"hash": "sha256-s9ZKrL+XIWIwejnLz+uuyDbbDuOZLJhiuiMChKB4Reg="
},
"CudaText-lexers": {
"owner": "Alexey-T",
@ -51,7 +51,7 @@
},
"bgrabitmap": {
"owner": "bgrabitmap",
"rev": "v11.5.4",
"hash": "sha256-Js7MQ1JYAl2cpnjgDOXeLcWBCrjjCnDORayRpSFoFhM="
"rev": "v11.5.5",
"hash": "sha256-M4ql+9zk5AJfmmHb9EG0PsJZGWcMm9/Y0lrPQqnKqcU="
}
}

View File

@ -17,6 +17,8 @@ in
cask = callPackage ./manual-packages/cask { };
consult-gh = callPackage ./manual-packages/consult-gh { };
control-lock = callPackage ./manual-packages/control-lock { };
ebuild-mode = callPackage ./manual-packages/ebuild-mode { };
@ -65,8 +67,6 @@ in
pod-mode = callPackage ./manual-packages/pod-mode { };
power-mode = callPackage ./manual-packages/power-mode { };
prisma-mode = callPackage ./manual-packages/prisma-mode { };
structured-haskell-mode = self.shm;

View File

@ -0,0 +1,52 @@
{ lib
, melpaBuild
, fetchFromGitHub
, consult
, embark
, forge
, gh
, markdown-mode
, writeText
, unstableGitUpdater
}:
let
commit = "1fe876d9552b6ec6af257a4299a34eca99b40539";
in
melpaBuild {
pname = "consult-gh";
version = "20230706.438";
inherit commit;
src = fetchFromGitHub {
owner = "armindarvish";
repo = "consult-gh";
rev = commit;
hash = "sha256-bi+qlNvNMXbS4cXbXt01txwD2NAyAqJGNKeOtdtj7tg=";
};
packageRequires = [
consult
embark
forge
gh
markdown-mode
];
recipe = writeText "recipe" ''
(consult-gh
:repo "armindarvish/consult-gh"
:fetcher github
:files ("consult-gh-embark.el" "consult-gh-forge.el" "consult-gh.el"))
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://github.com/armindarvish/consult-gh";
description = "A GitHub CLI client inside GNU Emacs using Consult";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ AndersonTorres ];
};
}

View File

@ -1,22 +0,0 @@
{ trivialBuild
, fetchFromGitHub
, emacs
}:
trivialBuild rec {
pname = "power-mode";
version = "0.pre+unstable=2021-06-06";
src = fetchFromGitHub {
owner = "elizagamedev";
repo = "power-mode.el";
rev = "940e0aa36220f863e8f43840b4ed634b464fbdbb";
hash = "sha256-Wy8o9QTWqvH9cP7xsTpF5QSd4mWNIPXJTadoADKeHWY=";
};
meta = {
homepage = "https://github.com/elizagamedev/power-mode.el";
description = "Imbue Emacs with power!";
inherit (emacs.meta) platforms;
};
}

View File

@ -1,4 +1,4 @@
{ fetchzip, lib, rustPlatform, git, installShellFiles, makeWrapper }:
{ fetchpatch, fetchzip, lib, rustPlatform, git, installShellFiles, makeWrapper }:
rustPlatform.buildRustPackage rec {
pname = "helix";
@ -14,6 +14,13 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-/LCtfyDAA2JuioBD/CDMv6OOxM0B9A3PpuVP/YY5oF0=";
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/helix-editor/helix/pull/7227.patch";
hash = "sha256-dObMKHNJfc5TODUjZ28TVxuTen02rl8HzcXpFWnhB1k=";
})
];
nativeBuildInputs = [ git installShellFiles makeWrapper ];
postInstall = ''

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "texstudio";
version = "4.6.2";
version = "4.6.3";
src = fetchFromGitHub {
owner = "texstudio-org";
repo = "texstudio";
rev = finalAttrs.version;
hash = "sha256-2bvKB/8HcZoTk2J6FQXXJREqGp6EZ95C2Aqcx9o/eho=";
hash = "sha256-L8N7T7FFfjT801HxbQiiC0ewW7vde4S0RVmNT2CWiWY=";
};
nativeBuildInputs = [

View File

@ -3,24 +3,24 @@
}:
let
version = "1.1.1";
rev = "af12e2e4da586275ba931eae8f40a2201251bf59";
version = "unstable-2023-07-08";
rev = "989cfe52a0458b991e0a7d87edec81d3fef472ac";
baseUrl = "https://emux.cc/versions/${lib.substring 0 8 rev}/CCEmuX";
jar =
if useCCTweaked
then fetchurl {
url = "${baseUrl}-cct.jar";
sha256 = "0d9gzi1h5vz32fp4lfn7dam189jcm7bwbqwmlpj0c47p8l0d4lsv";
hash = "sha256-B9Zan6wpYnUtaNbUIrXvkchPiEquMs9R2Kiqg85/VdY=";
}
else fetchurl {
url = "${baseUrl}-cc.jar";
sha256 = "0ky5vxh8m1v98zllifxif8xxd25j2xdp19hjnj4xlkck71lbnb34";
hash = "sha256-2Z38O6z7OrHKe8GdLnexin749uJzQaCZglS+SwVD5YE=";
};
desktopIcon = fetchurl {
url = "https://github.com/CCEmuX/CCEmuX/raw/${rev}/src/main/resources/img/icon.png";
sha256 = "1vmb6rg9k2y99j8xqfgbsvfgfi3g985rmqwrd7w3y54ffr2r99c2";
hash = "sha256-gqWURXaOFD/4aZnjmgtKb0T33NbrOdyRTMmLmV42q+4=";
};
desktopItem = makeDesktopItem {
name = "CCEmuX";
@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/CCEmuX/CCEmuX";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.mit;
maintainers = with maintainers; [ CrazedProgrammer ];
maintainers = with maintainers; [ CrazedProgrammer viluon ];
};
}

View File

@ -28,13 +28,13 @@
buildDotnetModule rec {
pname = "ryujinx";
version = "1.1.974"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
version = "1.1.986"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub {
owner = "Ryujinx";
repo = "Ryujinx";
rev = "5a0aa074b661753d8f0202a73d9f6f3ac6e2ab11";
sha256 = "0f1wivwf7hnsqi7sgqjrikxvakrk8dmywpmyd36a3s5lbk878wp3";
rev = "33f544fd9248361440afd6013e0ef9d69971d6da";
sha256 = "1cnz3j8qndfrm1iifbzswyf4vcii939naj29bvr2mp6bdwrbqi49";
};
dotnet-sdk = dotnetCorePackages.sdk_7_0;

View File

@ -2,49 +2,54 @@
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "Avalonia"; version = "0.10.21"; sha256 = "1x6z0wvlg5ww6n7idj2pwc6mxd7k9xsb7vh3v0z4in3rck0vwz95"; })
(fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
(fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.16"; sha256 = "11v3a4kda04jacznl7j8fc9zw16ysajwc3ljmdribbqz1rrr823v"; })
(fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.21"; sha256 = "0rx9qni3m1zhv6n73kskgj7vd6fxsalg84i2202gz53m11li7yvj"; })
(fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.21"; sha256 = "0jjx8lfbzqznqv7xpkfi8xvygqcqfk8wzkj9ambq30cn4h1ids05"; })
(fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.21"; sha256 = "10fl0nb8lhpvms1apb3mmswrpirc2j8vr78jvb63cni0885vxhab"; })
(fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.21"; sha256 = "038i1vim97niyh9qf5b1lbrakc8r7m03nk1yqn3iv563q8zbwfq7"; })
(fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.21"; sha256 = "0p0jz3za6y708fp0wpbjyqivfp6979ldwx8r95nmdmh10fm9q4yi"; })
(fetchNuGet { pname = "Avalonia.Native"; version = "0.10.21"; sha256 = "08f17zb0dq7p7naz96il15lhbrzan4897wghkl8rrd80dw0bhbb2"; })
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.21"; sha256 = "03ca99awvp178jsndy5zlsc17rlx29iz0x2jvj85fh6qdvds2dhj"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.18"; sha256 = "1vi83d9q6m2zd7b5snyzjxsj3vdp5bmi5vqhfslzghslpbhj2zwv"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.21"; sha256 = "0fja6rv0gw5kjiz0vpnyv5lv8xz5gzd71wz0052x9mrgq3jz00p8"; })
(fetchNuGet { pname = "Avalonia.Svg"; version = "0.10.18"; sha256 = "06h7yh2lkm4rqfchn7nxqjbqx4afh42w61z9sby7b5gj56h5a84q"; })
(fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "0.10.18"; sha256 = "0s25aq3xz0km55jwdxp59z8cc0d1zqaag1hiwnxdzd30id2ahn66"; })
(fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.21"; sha256 = "0ichldyigbsd82jrryq340bqlh7jw9zr850fyni2g3h0bbcx5327"; })
(fetchNuGet { pname = "Avalonia.X11"; version = "0.10.21"; sha256 = "08vbdiv2k9vp8gp59rk0z63jyn8hlv8a4956jczy05ail5qfl94v"; })
(fetchNuGet { pname = "Avalonia"; version = "11.0.3"; sha256 = "1ig635386glxgfv9l894dqp98l93ymsylml649xm42lc9a9f1khc"; })
(fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
(fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; })
(fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.0"; sha256 = "06wgzhxkivlaxkn8p61wainsprml2g1q4jmvy9fpn64qnfywjdn7"; })
(fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.3"; sha256 = "0xcxwc588lc2ify2d3m53pmwjgf7p9lwz5q11hn8p5c9zh01iai9"; })
(fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.3"; sha256 = "1kls0v2rjimcv7k0dvqd3l694xdg9nf8wdzcz1cadi4qvj0bx7l4"; })
(fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.0"; sha256 = "1qxw096av0n4ks0jixh7xxrzgsn9fshp1ypy3vvij7r0a1sk7y1q"; })
(fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.0-rc2.1"; sha256 = "0pmc0fi2abn9qaqwx9lvqnd1a5a8lzp8zin72d3k3xjsh1w1g0n8"; })
(fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.3"; sha256 = "0g8hzvkf2rrfnpmm56m2miwpdw14l04rr0q8xz03j220fy9xk5fm"; })
(fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.3"; sha256 = "1rificg9ikf8m2550ylrqavkkvihf8xb22agmdrbz07v7s93v731"; })
(fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.3"; sha256 = "0w8qc45phfz4mnnx1mfxi042qmq31shmjmz5inb4maw9xha0yr3c"; })
(fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.3"; sha256 = "09g4flx6sg2b2mkwbqrwl51q87xzy0d43j2xjxvnwc8vwhr1h8gs"; })
(fetchNuGet { pname = "Avalonia.Native"; version = "11.0.3"; sha256 = "1gi3y2cdfcjkwjldavahyx09a1n91jpvx8szwrfgr3kk4ycc5lyn"; })
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.0"; sha256 = "1b5031k8slwiz7bncih67fjl6ny234yd4skqxk611l9zp5snjic2"; })
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.3"; sha256 = "0syh20a6892pip4qz32kgc5w77ig40yjgwbcknivhjr8arc3126r"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.3"; sha256 = "0089z8ml8pblq6hispj1nf7lvf6zplrrlix22jcd87pm13232pg2"; })
(fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0"; sha256 = "1xmgaj2wnjdl16x4y6rmfp3q9faca5na90zlb8j62rxcwf1v3lkr"; })
(fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0"; sha256 = "0cd8w9pm7lpifdzjmsnmjlzdqgq3qw653mcj3adczb5ycqqbd8p3"; })
(fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.3"; sha256 = "0zkm0asxcbsybswxs0p6ybsiq6j1l1j02h0xfxzsmhcimm3y92kk"; })
(fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.3"; sha256 = "14pj98057fmfgafq0pni7pw79ls0lsf3jaydfjmdjyw5x2b2x51q"; })
(fetchNuGet { pname = "Avalonia.X11"; version = "11.0.3"; sha256 = "0pb41fpiwndcf34r53apxf92qgqxavc4zfl1xy847pz3kj1vsclp"; })
(fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
(fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
(fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
(fetchNuGet { pname = "DynamicData"; version = "7.14.2"; sha256 = "07k79w4702masq71rk865mi3h1kaxamyp7dgl08ny4n22gg8482k"; })
(fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
(fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
(fetchNuGet { pname = "FluentAvaloniaUI"; version = "1.4.5"; sha256 = "1j5ivy83f13dgn09qrfkq44ijvh0m9rbdx8760g47di70c4lda7j"; })
(fetchNuGet { pname = "FluentAvaloniaUI"; version = "2.0.1"; sha256 = "12w6rk3qgn6i2zk06appf98pgdf89pw10865qcwn5xpjwm7487k2"; })
(fetchNuGet { pname = "FSharp.Core"; version = "7.0.200"; sha256 = "1ji816r8idwjmxk8bzyq1z32ybz7xdg3nb0a7pnvqr8vys11bkgb"; })
(fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.1-preview.108"; sha256 = "0xs4px4fy5b6glc77rqswzpi5ddhxvbar1md6q9wla7hckabnq0z"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.1-preview.108"; sha256 = "16wvgvyra2g1b38rxxgkk85wbz89hspixs54zfcm4racgmj1mrj4"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.1-preview.108"; sha256 = "16v7lrwwif2f5zfkx08n6y6w3m56mh4hy757biv0w9yffaf200js"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.1-preview.108"; sha256 = "15kqb353snwpavz3jja63mq8xjqsrw1f902scm8wxmsqrm5q6x55"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.1-preview.108"; sha256 = "0n6ymn9jqms3mk5hg0ar4y9jmh96myl6q0jimn7ahb1a8viq55k1"; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "10.3.0"; sha256 = "1grdx28ga9fp4hwwpwv354rizm8anfq4lp045q4ss41gvhggr3z8"; })
(fetchNuGet { pname = "jp2masa.Avalonia.Flexbox"; version = "0.2.0"; sha256 = "1abck2gad29mgf9gwqgc6wr8iwl64v50n0sbxcj1bcxgkgndraiq"; })
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
(fetchNuGet { pname = "jp2masa.Avalonia.Flexbox"; version = "0.3.0-beta.4"; sha256 = "17847ssn15l755zmspvb69wsfbj9ayvy9xl8zgjx6wvvwp6x89cp"; })
(fetchNuGet { pname = "LibHac"; version = "0.18.0"; sha256 = "19d5fqdcws0730580jlda6pdddprxcrhw7b3ybiiglabsr7bmgdv"; })
(fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.10.4"; sha256 = "1bdgy6g15d1mln1xpvs6sy0l2zvfs4hxw6nc3qm16qb8hdgvb73y"; })
(fetchNuGet { pname = "MicroCom.Runtime"; version = "0.10.4"; sha256 = "0ccbzp0d01dcahm7ban7xyh1rk7k2pkml3l5i7s85cqk5lnczpw2"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.9.6"; sha256 = "18mr1f0wpq0fir8vjnq0a8pz50zpnblr7sabff0yqx37c975934a"; })
(fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.11.0"; sha256 = "0ynvaq3faqh4pirl0l8l6xq2ikk3f27xw05i8vm3vwamgy4p7k2f"; })
(fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.4"; sha256 = "0wd6v57p53ahz5z9zg4iyzmy3src7rlsncyqpcag02jjj1yx6g58"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.4.0"; sha256 = "12rn6gl4viycwk3pz5hp5df63g66zvba4hnkwr3f0876jj5ivmsw"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.6.0"; sha256 = "0qvkwkbqz4dhkxsisanax1lwm3nzyyb4kgb40qczxbl8g251cjp2"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.4.0"; sha256 = "0rhylcwa95bxawcgixk64knv7p7xrykdjcabmx3gknk8hvj1ai9y"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.6.0"; sha256 = "1yfvwygx795c9lswpiv8q19zydifarzljdmvv67vjmi559cm8b1q"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.4.0"; sha256 = "1h2f0z9xnw987x8bydka1sd42ijqjx973md6v1gvpy1qc6ad244g"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.4.0"; sha256 = "195gqnpwqkg2wlvk8x6yzm7byrxfq9bki20xmhf6lzfsdw3z4mf2"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.6.3"; sha256 = "1xxzd2yxlbq2h4k6flp7lvffmmwrjlyha2z1yvrxxymiyyggk2zg"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
@ -136,7 +141,7 @@
(fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.28.1-build28"; sha256 = "0kn7f6cgvb2rsybiif6g7xkw1srmfr306zpv029lvi264dv6aj6l"; })
(fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
(fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
(fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.18"; sha256 = "1i97f2zbsm8vhcbcfj6g4ml6g261gijdh7s3rmvwvxgfha6qyvkg"; })
(fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0"; sha256 = "0gdsrzh8q8mxlm7sxvai7zshaz93a3dm1ha4cgs4845lfhpn8nhc"; })
(fetchNuGet { pname = "Silk.NET.Core"; version = "2.16.0"; sha256 = "1mkqc2aicvknmpyfry2v7jjxh3apaxa6dmk1vfbwxnkysl417x0k"; })
(fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.16.0"; sha256 = "0sg5mxv7ga5pq6wc0lz52j07fxrcfmb0an30r4cxsxk66298z2wy"; })
(fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.EXT"; version = "2.16.0"; sha256 = "05918f6fl8byla2m7qjp7dvxww2rbpj2sqd4xq26rl885fmddfvf"; })
@ -144,16 +149,16 @@
(fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
(fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
(fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.1-preview.108"; sha256 = "01sm36hdgmcgkai9m09xn2qfz8v7xhh803n8fng8rlxwnw60rgg6"; })
(fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.1-preview.108"; sha256 = "1hjscqn2kfgvn367drxzwssj5f5arn919x6clywbbf2dhggcdnn5"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.1-preview.108"; sha256 = "19jf2jcq2spwbpx3cfdi2a95jf4y8205rh56lmkh8zsxd2k7fjyp"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.1-preview.108"; sha256 = "1vcpqd7slh2b9gsacpd7mk1266r1xfnkm6230k8chl3ng19qlf15"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.108"; sha256 = "0a89gqjw8k97arr0kyd0fm3f46k1qamksbnyns9xdlgydjg557dd"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.108"; sha256 = "05g9blprq5msw3wshrgsk19y0fvhjlqiybs1vdyhfmww330jlypn"; })
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; })
(fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.3"; sha256 = "0axz2zfyg0h3zis7rr86ikrm2jbxxy0gqb3bbawpgynf1k0fsi6a"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.3"; sha256 = "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; })
(fetchNuGet { pname = "SPB"; version = "0.0.4-build28"; sha256 = "1ran6qwzlkv6xpvnp7n0nkva0zfrzwlcxj7zfzz9v8mpicqs297x"; })
(fetchNuGet { pname = "Svg.Custom"; version = "0.5.18"; sha256 = "0x68cs525k7c2dvj3vhjhx7bcls600xlsjkhfi7xvj0621masxa4"; })
(fetchNuGet { pname = "Svg.Model"; version = "0.5.18"; sha256 = "1pqqaphdsjv4w9qlzb2i0kf0aas8778nlb4nysyiy5rdvpp7zzng"; })
(fetchNuGet { pname = "Svg.Skia"; version = "0.5.18"; sha256 = "0j1n096d49gd53j6zzngf5v81dnrdzaa4rx7fpmk8zp1xz2wjb2j"; })
(fetchNuGet { pname = "Svg.Custom"; version = "1.0.0"; sha256 = "0bmvgaqy4iaxw9x88ifx3a2zz0vw3p9w6pj4bk3xfnf5p9vjx1mr"; })
(fetchNuGet { pname = "Svg.Model"; version = "1.0.0"; sha256 = "0yrjcqcrlgqpdm3bi59nc3fppcqgrfc7jddjwxjj2q423gimip97"; })
(fetchNuGet { pname = "Svg.Skia"; version = "1.0.0"; sha256 = "1bs2l9fjiqpip4qh0aw7x8f8m0ja0xlcj5vwd329knkww2jx1d3c"; })
(fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
@ -163,7 +168,7 @@
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
(fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
(fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
@ -186,12 +191,12 @@
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
(fetchNuGet { pname = "System.IO.Hashing"; version = "7.0.0"; sha256 = "0vilmb817wnw8w13kkps831p05zzc41dldigpbr3wqi0hsrf8ad9"; })
(fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
(fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
(fetchNuGet { pname = "System.Management"; version = "7.0.2"; sha256 = "0mjdkzl459hnz0qg4m0xp2kwizsqgdc9vc3xk7y7cv0znhhbb7bc"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
(fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
@ -204,13 +209,11 @@
(fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
(fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
(fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
(fetchNuGet { pname = "System.Reactive"; version = "6.0.0"; sha256 = "1mkvx1fwychpczksy6svfmniqhbm3xqblxqik6178l12xgq7aw45"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
@ -218,6 +221,7 @@
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "7.0.0"; sha256 = "1wilasn2qmj870h2bhw348lspamm7pbinpb4m89icg113510l00v"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
@ -227,9 +231,8 @@
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
@ -253,7 +256,6 @@
(fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
@ -269,14 +271,12 @@
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
(fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
(fetchNuGet { pname = "Tmds.DBus"; version = "0.9.0"; sha256 = "0vvx6sg8lxm23g5jvm5wh2gfs95mv85vd52lkq7d1b89bdczczf3"; })
(fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; })
(fetchNuGet { pname = "UnicornEngine.Unicorn"; version = "2.0.2-rc1-fb78016"; sha256 = "1r43b5fd5q8xq8b5nk11jsz2gnm96dh7sxc0rrv2p605ivz7icin"; })
(fetchNuGet { pname = "XamlNameReferenceGenerator"; version = "1.6.1"; sha256 = "0348gj9g5rl0pj2frx4vscj6602gfyn9ba3i1rmfcrxh9jwwa09m"; })
]

View File

@ -31,11 +31,11 @@
stdenv.mkDerivation rec {
pname = "saga";
version = "9.0.2";
version = "9.1.1";
src = fetchurl {
url = "mirror://sourceforge/saga-gis/saga-${version}.tar.gz";
sha256 = "sha256-dyqunuROQlF1Lo/XsNj9QlN7WbimksfT1s8TrqB9PXE=";
sha256 = "sha256-VXupgjoiexZZ1kLXAbbQMW7XQ7FWjd1ejZPeeTffUhM=";
};
sourceRoot = "saga-${version}/saga-gis";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gpsprune";
version = "22.2";
version = "23.1";
src = fetchurl {
url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
sha256 = "sha256-7T7UmS650VvYN29vQxemzsaxF5wPFF+yCNCTyXY7nmY=";
sha256 = "sha256-0Lf/GuqlovVbnk3jSJHFGF688GXABcSVLr1hATaIomk=";
};
dontUnpack = true;

View File

@ -30,14 +30,14 @@ https://github.com/NixOS/nixpkgs/issues/199596#issuecomment-1310136382 */
}:
mkDerivation rec {
version = "1.4.4";
version = "1.4.5";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${version}";
sha256 = "sha256-i13Mt4xASneE4sBIt9fbdoFV1KnoVfaGRwQXX+1NgI4=";
sha256 = "sha256-EizKDw5Fv2qXxmiCx4NAvwxBZ+qhTIx4NMZedZ9OuyA=";
};
buildInputs = [

View File

@ -38,30 +38,30 @@
let
# Derived from subprojects/cava.wrap
libcava = rec {
version = "0.8.4";
version = "0.8.5";
src = fetchFromGitHub {
owner = "LukashonakV";
repo = "cava";
rev = version;
hash = "sha256-66uc0CEriV9XOjSjFTt+bxghEXY1OGrpjd+7d6piJUI=";
hash = "sha256-b/XfqLh8PnW018sGVKRRlFvBpo2Ru1R2lUeTR7pugBo=";
};
};
in
stdenv.mkDerivation rec {
pname = "waybar";
version = "0.9.20";
version = "0.9.21";
src = fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
rev = version;
hash = "sha256-xLcoysnCPB9+jI5cZokWWIvXM5wo3eXOe/hXfuChBR4=";
hash = "sha256-VvQTRo2MuJ475lKrExVhzi74fb1wAw0gHD1v4rcWIDk=";
};
postUnpack = lib.optional cavaSupport ''
(
cd "$sourceRoot"
cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.8.4
cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.8.5
patchShebangs .
)
'';

View File

@ -15,7 +15,7 @@
stdenv.mkDerivation rec {
pname = "wmenu";
version = "0.1.2";
version = "0.1.4";
strictDeps = true;
@ -23,17 +23,9 @@ stdenv.mkDerivation rec {
owner = "~adnano";
repo = "wmenu";
rev = version;
hash = "sha256-mS4qgf2sjgswasZXsmnbIWlqVv+Murvx1/ob0G3xsws=";
hash = "sha256-aB23wi8kLBKAvQv2UPsfqVMCjakdsM6AzH8LgGv3HPs=";
};
# Patch needed to remove build warning, gets merged in next release
patches = [
(fetchpatch {
url = "https://git.sr.ht/~adnano/wmenu/commit/ba10072cdec9b0d4b51bcf305ff27dcf3003ae42.patch";
hash = "sha256-XF7xmEnsKlExMJQ5iS7wQG9Ja6ocrR0YvQuWFfByKVA=";
})
];
nativeBuildInputs = [ pkg-config meson ninja ];
buildInputs = [ cairo pango wayland libxkbcommon wayland-protocols scdoc ];

View File

@ -86,11 +86,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
version = "6.2.0";
version = "6.2.1";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${lib.versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
sha256 = "sha256-qs4hrhQGPMYfhz95y8lNECcDGbsvypVN5DPSKsHhiFs=";
sha256 = "sha256-TjwVUBSBYo67lJyTXeee1bSaCnYLGE/MKSt+YEV+/Hw=";
};
# just patch interpreter

View File

@ -3,10 +3,10 @@
{
firefox = buildMozillaMach rec {
pname = "firefox";
version = "116.0.1";
version = "116.0.2";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "2f67a129ec3bcb47d66cbf29ab23c1c29bfbe752a4703cb0d95f4f3e5a48044901bb79fea94e35f8a9d4dfbfa71aa6721b2988770c1dc33b4412b993bb88da09";
sha512 = "2c0ae18672fe22c75002744831130e13da764f83726951e5b58cfe74f7f473e22634ce08ebc11a98bac5baec0a4ac099a3a350a8b756af9c5bea6d5f4432da6d";
};
meta = {

View File

@ -1,9 +1,9 @@
{
stable = import ./browser.nix {
channel = "stable";
version = "114.0.1823.79";
version = "115.0.1901.188";
revision = "1";
sha256 = "sha256-FyEsIGwGDzX22scKd8L67uw5ipqN1e9CrC+qACRBZRg=";
sha256 = "sha256-mRM3zakYwCptfKWYbiaDnPqv9Vt5WnDA7xIK1rlownU=";
};
beta = import ./browser.nix {
channel = "beta";

View File

@ -1,19 +1,22 @@
{ darwin, fetchFromGitHub, rustPlatform, lib, stdenv }:
{ darwin, fetchFromGitHub, rustPlatform, lib, stdenv, pkg-config, openssl }:
rustPlatform.buildRustPackage rec {
pname = "click";
version = "0.4.2";
version = "0.6.2";
src = fetchFromGitHub {
rev = "v${version}";
owner = "databricks";
repo = "click";
sha256 = "18mpzvvww2g6y2d3m8wcfajzdshagihn59k03xvcknd5d8zxagl3";
rev = "v${version}";
hash = "sha256-rwS08miRpc+Q9DRuspr21NMYpEYmmscvzarDnjyVe5c=";
};
cargoSha256 = "16r5rwdbqyb5xrjc55i30xb20crpyjc75zn10xxjkicmvrpwydp6";
cargoHash = "sha256-WNITVYTS7JWrBBwxlQuVTmLddWLbDJACizEsRiustGg=";
buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
buildInputs = lib.optionals stdenv.isLinux [ openssl ]
++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
meta = with lib; {
description = ''The "Command Line Interactive Controller for Kubernetes"'';
@ -21,5 +24,6 @@ rustPlatform.buildRustPackage rec {
license = [ licenses.asl20 ];
maintainers = [ maintainers.mbode ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
mainProgram = "click";
};
}

View File

@ -0,0 +1,23 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "kubectl-klock";
version = "0.3.1";
src = fetchFromGitHub {
owner = "jillejr";
repo = pname;
rev = "v${version}";
sha256 = "sha256-zOdi2QUVvRPPiI22bm7Z5OeShslysjcnvkhroOjbZrU=";
};
vendorSha256 = "sha256-r4oAmD/7CXYiWEWR/FC/Ab0LNxehWv6oCWjQ/fGU2rU=";
meta = with lib; {
description = "A kubectl plugin to render watch output in a more readable fashion";
homepage = "https://github.com/jillejr/kubectl-klock";
changelog = "https://github.com/jillejr/kubectl-klock/releases/tag/v${version}";
license = licenses.gpl3Plus;
maintainers = [ maintainers.scm2342 ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubergrunt";
version = "0.12.0";
version = "0.12.1";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = "kubergrunt";
rev = "v${version}";
sha256 = "sha256-C3anYYyhRT+/0jO01uEBX1LLQadovO+Z9JA6nHTNXOo=";
sha256 = "sha256-qd+7tYvRpRMg8Y83L/K8g8fWrfO4rAQj72EpunqfSsc=";
};
vendorHash = "sha256-AUw1wJNWjpNVsjw/Hr1ZCePYWQkf1SqRVnQgi8tOFG0=";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kyverno";
version = "1.10.2";
version = "1.10.3";
src = fetchFromGitHub {
owner = "kyverno";
repo = "kyverno";
rev = "v${version}";
sha256 = "sha256-kk+NgupFLzbkh/jrbJj9E6H0v3QighKa7DQJoh/fZi8=";
sha256 = "sha256-SRDabFN0ITXwHzvE5m3pIAk42kQa2yINpT64x+k3r3g=";
};
ldflags = [

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "pachyderm";
version = "2.6.8";
version = "2.7.0";
src = fetchFromGitHub {
owner = "pachyderm";
repo = "pachyderm";
rev = "v${version}";
hash = "sha256-2AD/JGdcJV8qYH/k3gR9YgLsMcyKtWJmqQN29NUsE4Y=";
hash = "sha256-OA6NY8hI/Aw6vdtDfN1cRXdsLLfxW5ECg5tobPZB66Y=";
};
vendorHash = "sha256-3EG9d4ERaWuHaKFt0KFCOKIgTdrL7HZTO+GSi2RROKY=";
vendorHash = "sha256-q8Cx+J5BjMvO5wuvH5Tc5Oa9rjW7vXvS4DhSVv/E3E4=";
subPackages = [ "src/server/cmd/pachctl" ];

View File

@ -182,13 +182,13 @@
"vendorHash": "sha256-/dOiXO2aPkuZaFiwv/6AXJdIADgx8T7eOwvJfBBoqg8="
},
"buildkite": {
"hash": "sha256-GRFthxNKWcdOdFL6gnI7Y3ehSzqt8ijzBe4eyRy0KcM=",
"hash": "sha256-rcklWodBh5iJjxIjGhEH0l3S9bXUWfBG52V/23o8JDM=",
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
"owner": "buildkite",
"repo": "terraform-provider-buildkite",
"rev": "v0.23.0",
"rev": "v0.24.0",
"spdx": "MIT",
"vendorHash": "sha256-oVXrSI+DU6NgmVIPcS4He4mHVrkA2tMxFUpxMnv0bu4="
"vendorHash": "sha256-3BtXtXhFyTNQD0J/5hNi0JsPcaIDWUQNEgf6r0VIfMM="
},
"checkly": {
"hash": "sha256-tOTrAi6hd4HFbHAj0p/LTYdxQl1R1WuQ9L4hzqmDVqI=",
@ -227,13 +227,13 @@
"vendorHash": "sha256-VTSbi2pDllzyKDhWs5EpWSXO5oKl+khVqLg/Ro3x8ys="
},
"cloudfoundry": {
"hash": "sha256-hoX2KNUzC7G+bFxReTN/6IG8/P4rczHAYn2QQ2iOioc=",
"hash": "sha256-yEqsdgTSlwppt6ILRZQ6Epyh5WVN6Il3xsBOa/NfIdo=",
"homepage": "https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry",
"owner": "cloudfoundry-community",
"repo": "terraform-provider-cloudfoundry",
"rev": "v0.51.2",
"rev": "v0.51.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-FR0HnLLVv8H5jC3gRv8jk2VLsavlHNQny+UqZ00InTY="
"vendorHash": "sha256-0hq4dR1KqnE2IXMwif2/NVKQKRO/QplW/A6sB4pJ+FM="
},
"cloudinit": {
"hash": "sha256-fdtUKD8XC1Y72IzrsCfTZYVYZwLqY3gV2sajiw4Krzw=",
@ -291,13 +291,13 @@
"vendorHash": "sha256-foS7GyRUdhF/M8uTPf2I4WQo7qEg4Z/3FXjagoeSRkU="
},
"dexidp": {
"hash": "sha256-+Nt4bX6+4VB+mtJbsP166RObFbXaNyFrF+80x2/pRco=",
"hash": "sha256-69r3m3lIKftZQ8NXBD5KEHbsNUwCGpFgn/CYO+921M4=",
"homepage": "https://registry.terraform.io/providers/marcofranssen/dexidp",
"owner": "marcofranssen",
"repo": "terraform-provider-dexidp",
"rev": "v0.2.1",
"rev": "v0.3.0",
"spdx": "MIT",
"vendorHash": "sha256-L8baV03p0V/xKi1O3YQxvoJXgP21qNhzznyvwrauVqI="
"vendorHash": "sha256-EWEc7tILolAIzT7ZOLXlrlrt3hsgJxFD89y/USLeE40="
},
"dhall": {
"hash": "sha256-K0j90YAzYqdyJD4aofyxAJF9QBYNMbhSVm/s1GvWuJ4=",
@ -454,24 +454,24 @@
"vendorHash": "sha256-AVTWTS16d8QsPLLAJeAfgcVDzUBMp+b2oAphaCBqhS0="
},
"google": {
"hash": "sha256-vhWtIJ5hKe/8a7N5Qxs8CQuSNlZEF3gdRzSqZiFqhVg=",
"hash": "sha256-11iT/zjoSScSdLGWFPxEURiIBvcz5jK8QZAHdqRwHD0=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
"owner": "hashicorp",
"proxyVendor": true,
"repo": "terraform-provider-google",
"rev": "v4.77.0",
"rev": "v4.78.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-rlNYh42Cw2wMF/9aI8QM0x8t2jdz+V9u4uJvS6A4zx8="
"vendorHash": "sha256-lyOupw64LQvdTJZjJ1RvAn1JLDHAZ4qAaagASXHcEXA="
},
"google-beta": {
"hash": "sha256-nfgoGYBAW5VdgMm2gkI2Ff5NlY2CAwuFjckN7xgGtcI=",
"hash": "sha256-dKB9rdMZP+Ln3M9bL7MC6RGlDXZ/IydD4g5Jp1jjEh4=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
"owner": "hashicorp",
"proxyVendor": true,
"repo": "terraform-provider-google-beta",
"rev": "v4.77.0",
"rev": "v4.78.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-rlNYh42Cw2wMF/9aI8QM0x8t2jdz+V9u4uJvS6A4zx8="
"vendorHash": "sha256-lyOupw64LQvdTJZjJ1RvAn1JLDHAZ4qAaagASXHcEXA="
},
"googleworkspace": {
"hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
@ -501,13 +501,13 @@
"vendorHash": null
},
"hcloud": {
"hash": "sha256-TbEbqTgzp7pUXrhjxvs5hrFI5u//xIIniOvusZsseiE=",
"hash": "sha256-kuC4tm8ob9bg7iLcUaGEHMYh6XaZp4rQiVlnbo1Xzek=",
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
"owner": "hetznercloud",
"repo": "terraform-provider-hcloud",
"rev": "v1.42.0",
"rev": "v1.42.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-wrgGxCNa5xLdBEy6RNNCz8ZVracyVsHzHtaQse6Ph+E="
"vendorHash": "sha256-r8njRjQGYESeHuD8pF6rRUe1j2VVMwoDITFi2StC5bk="
},
"helm": {
"hash": "sha256-mGrQ5YKNsv1+Vkan5ohMXnTYofhCQPuTFjemXF/g+tA=",
@ -519,11 +519,11 @@
"vendorHash": "sha256-a80+gjjoFOKI96pUMvTMyM90F5oCb1Ime8hPQcFedFE="
},
"heroku": {
"hash": "sha256-tdaj6ZbVCvQTYblgpRC5GFoW8fbzTSHf0j6BM1tOlik=",
"hash": "sha256-PexzolGXe0dy+6vGXVDTqtHGjF66DTtt4/GUyx78RMQ=",
"homepage": "https://registry.terraform.io/providers/heroku/heroku",
"owner": "heroku",
"repo": "terraform-provider-heroku",
"rev": "v5.2.5",
"rev": "v5.2.6",
"spdx": null,
"vendorHash": null
},
@ -556,11 +556,11 @@
"vendorHash": "sha256-hxT9mpKifb63wlCUeUzgVo4UB2TnYZy9lXF4fmGYpc4="
},
"huaweicloud": {
"hash": "sha256-Uon1nXtoILFOQp9DsOubi31v6WJqWBa3zDZKHJdboHY=",
"hash": "sha256-zfYIhROmNEXUmO52zs1u6X4WXFtE+duuiS6wlSBLygw=",
"homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
"owner": "huaweicloud",
"repo": "terraform-provider-huaweicloud",
"rev": "v1.53.0",
"rev": "v1.54.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -781,11 +781,11 @@
"vendorHash": null
},
"newrelic": {
"hash": "sha256-6dQ0oJeYBmMhpldt8SyPL0VY4IM4n3Dpg62SYvCjigI=",
"hash": "sha256-tbXRo7VNwjidyg/KcnwqmrxbnplMsUkCQAAsQb0WxSE=",
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
"owner": "newrelic",
"repo": "terraform-provider-newrelic",
"rev": "v3.26.0",
"rev": "v3.26.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-BWCL84bDsfrcM9Bkc3G6r0RQ1YnonH1D9bDSywTcigw="
},
@ -836,13 +836,13 @@
"vendorHash": null
},
"okta": {
"hash": "sha256-cNVHEZPUkpruM7EDrriKeefzsHhwC+vyadTztRyGCFA=",
"hash": "sha256-yoO8LDSB80GfEjPR3sf8JcciX+3gM1qtFBv/rFAzb6g=",
"homepage": "https://registry.terraform.io/providers/okta/okta",
"owner": "okta",
"repo": "terraform-provider-okta",
"rev": "v4.1.0",
"rev": "v4.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-0KB2L7L6EWN2VMsTKXtWElzBRfmny+JjarhhzZtWxtA="
"vendorHash": "sha256-tXVV8lcB8A66WtsWb2wDcJEERjzbHm/eqHyzIOrVk7E="
},
"oktaasa": {
"hash": "sha256-2LhxgowqKvDDDOwdznusL52p2DKP+UiXALHcs9ZQd0U=",
@ -899,11 +899,11 @@
"vendorHash": null
},
"pagerduty": {
"hash": "sha256-vMMxSmfNz9FZtFyOMo6e5OHX6GWNVAP/X/ewJ0sUHb0=",
"hash": "sha256-pMim8Bjjtuysdd4LgsV4+JPjEMw+3bF8vOKIBJVSScY=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v2.15.2",
"rev": "v2.15.3",
"spdx": "MPL-2.0",
"vendorHash": null
},

View File

@ -13,10 +13,11 @@ buildGoModule rec {
owner = "dineshba";
repo = "tf-summarize";
rev = "v${version}";
sha256 = "0c6fcz0n22mq8bqr82h9lfxx4n1bk9gjlc7d131lpf14yiacih3p";
hash = "sha256-d8DIVPQkuEvDCO0wKl+aK1jSu6MJCpTxQrgKYcFnzjA=";
};
vendorSha256 = "cnybdZth7qlP2BHK8uvLCoqJtggMIkvaL2+YugiUZRE=";
vendorHash = "sha256-cnybdZth7qlP2BHK8uvLCoqJtggMIkvaL2+YugiUZRE=";
ldflags = [
"-s"
"-w"

View File

@ -8,13 +8,13 @@ buildGoModule rec {
/* Do not use "dev" as a version. If you do, Tilt will consider itself
running in development environment and try to serve assets from the
source tree, which is not there once build completes. */
version = "0.33.3";
version = "0.33.4";
src = fetchFromGitHub {
owner = "tilt-dev";
repo = "tilt";
rev = "v${version}";
hash = "sha256-TNZE335tH50E96yJzD26U+JbVxjU746Wa/8YDGHFeto=";
hash = "sha256-rQ5g5QyGyuJAHmE8zGFzqtpqW2xEju5JV386y9Cn+cs=";
};
vendorHash = null;

View File

@ -6,7 +6,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "flexget";
version = "3.8.6";
version = "3.8.7";
format = "pyproject";
# Fetch from GitHub in order to use `requirements.in`
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "Flexget";
repo = "Flexget";
rev = "refs/tags/v${version}";
hash = "sha256-KF5d9SjKUkkHoYWmNWNBMe567w2StgEFsZprS+SFw7Y=";
hash = "sha256-WfOLDTwmHPfg4UkrPC7gvDNJtAorrateQ4W59NmhdHc=";
};
postPatch = ''

View File

@ -33,16 +33,16 @@ let
in
buildNpmPackage rec {
pname = "deltachat-desktop";
version = "1.38.1";
version = "1.40.0";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-desktop";
rev = "v${version}";
hash = "sha256-nXYXjq6bLGvH4m8ECwxfkcUjOsUUj07bt3NFb3oD0Gw=";
hash = "sha256-QvSBM2zR/LcQ2wtkh6mtlU8iqYmZfv6U5bRyMYjLZhE=";
};
npmDepsHash = "sha256-fQKFSWljHHPp1A8lcxVxrMVESuTiB3GkSWDb98yCZz4=";
npmDepsHash = "sha256-lxyXfPNu5U+0cge+cwcXHIJv+gVXCSzc5t/2c4IQxNM=";
nativeBuildInputs = [
makeWrapper

View File

@ -17,25 +17,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "teams-for-linux";
version = "1.2.8";
version = "1.3.2";
src = fetchFromGitHub {
owner = "IsmaelMartinez";
repo = "teams-for-linux";
rev = "v${finalAttrs.version}";
hash = "sha256-5OocTsQjmNZCnzAY1RfrxD6Ad/kZTIkFl/3OmeJl1oI=";
hash = "sha256-2WoTbkRGH9l6cQrveyxGvO/Dy+0NV4UTDaooYn8k06s=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-XUASMWrH8wWeYsr6gCdQGgV/7E6hLDWkJ0BXHZCepKQ=";
hash = "sha256-j5N6d270myUylDVDFQTScbsGp1wlpt5sISDJBRCV/GU=";
};
patches = [
# Can be removed once Electron upstream resolves https://github.com/electron/electron/issues/36660
./screensharing-wayland-hack-fix.patch
];
nativeBuildInputs = [ yarn fixup_yarn_lock nodejs copyDesktopItems makeWrapper ];
configurePhase = ''

View File

@ -1,28 +0,0 @@
diff --git a/app/index.js b/app/index.js
index ea89608..98f4a90 100644
--- a/app/index.js
+++ b/app/index.js
@@ -1,4 +1,4 @@
-const { app, ipcMain, desktopCapturer, systemPreferences, powerMonitor } = require('electron');
+const { app, ipcMain, desktopCapturer, nativeImage, systemPreferences, powerMonitor } = require('electron');
const path = require('path');
const fs = require('fs');
const { LucidLog } = require('lucid-log');
@@ -97,7 +97,16 @@ if (!gotTheLock) {
ipcMain.handle('getSystemIdleState', handleGetSystemIdleState);
ipcMain.handle('getZoomLevel', handleGetZoomLevel);
ipcMain.handle('saveZoomLevel', handleSaveZoomLevel);
- ipcMain.handle('desktopCapturerGetSources', (event, opts) => desktopCapturer.getSources(opts));
+ ipcMain.handle('desktopCapturerGetSources', (event, opts) => process.env.XDG_SESSION_TYPE == 'wayland' ?
+ // Port wayland electron 22+ screenshare "fix" from webcord
+ Promise.resolve([{
+ id: "screen:1:0",
+ appIcon: nativeImage.createEmpty(),
+ display_id: "",
+ name: "Entire Screen",
+ thumbnail: nativeImage.createEmpty()
+ }])
+ : desktopCapturer.getSources(opts));
ipcMain.handle('getCustomBGList', handleGetCustomBGList);
ipcMain.on('play-notification-sound', playNotificationSound);
ipcMain.on('user-status-changed', userStatusChangedHandler);

View File

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.65.0";
version = "0.65.1";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-a1LL8RCxItrtsyQrJSbMEBPUwxKK6t8FXdFEhxGdvxw=";
hash = "sha256-VfYuqrz9YDHwY0atKXYkzHJW/lXlVWGgo5QjMTMeB+g=";
};
nativeBuildInputs = [

View File

@ -9,14 +9,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "todoman";
version = "4.1.0";
format = "setuptools";
version = "4.3.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "pimutils";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-MItFZ+4Q7UKeIWHl8KFiWOLNgFcfb0h1YWjPd+g48Wg=";
hash = "sha256-pa1zzu0ITJObzhSmohjgiGTCoautXrY+SQQ3hxEtQcE=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@ -48,15 +48,11 @@ python3.pkgs.buildPythonApplication rec {
hypothesis
pytestCheckHook
glibcLocales
pytest-cov
];
LC_ALL = "en_US.UTF-8";
postPatch = ''
substituteInPlace setup.cfg \
--replace " --cov=todoman --cov-report=term-missing" ""
'';
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${jq}/bin/jq "
@ -67,7 +63,6 @@ python3.pkgs.buildPythonApplication rec {
# Testing of the CLI part and output
"test_color_due_dates"
"test_color_flag"
"test_datetime_serialization" # Will be fixed in versions after 4.1.0
"test_default_command"
"test_main"
"test_missing_cache_dir"
@ -98,5 +93,6 @@ python3.pkgs.buildPythonApplication rec {
changelog = "https://github.com/pimutils/todoman/raw/v${version}/CHANGELOG.rst";
license = licenses.isc;
maintainers = with maintainers; [ leenaars ];
mainProgram = "todo";
};
}

View File

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "openhantek6022";
version = "3.3.2.2";
version = "3.3.3";
src = fetchFromGitHub {
owner = "OpenHantek";
repo = "OpenHantek6022";
rev = version;
sha256 = "sha256-0k9Q60+T28m1hPYf5viSdpt0s4d828lfjVo3GjLDm7c=";
sha256 = "sha256-y2pNLAa0P/r0YEdKjQ3iP66cqtTWERG8lTOZDR64WTk=";
};
nativeBuildInputs = [ cmake makeWrapper ];

View File

@ -9,6 +9,7 @@
, pantheon
, python3
, curl
, flatpak
, gettext
, glib
, gtk3
@ -27,13 +28,13 @@
stdenv.mkDerivation rec {
pname = "monitor";
version = "0.16.1";
version = "0.17.0";
src = fetchFromGitHub {
owner = "stsdc";
repo = "monitor";
rev = version;
sha256 = "sha256-ZTsb1xcJ7eeCEPebZW0anmG1SUPAzZakw4WzJql9VTQ=";
sha256 = "sha256-GUNMA4CRO4cKBjNr7i8yRflstbT8g2ciDHppjUUbAOc=";
fetchSubmodules = true;
};
@ -49,6 +50,7 @@ stdenv.mkDerivation rec {
buildInputs = [
curl
flatpak
glib
gtk3
json-glib
@ -85,7 +87,8 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gitUpdater {
ignoredVersions = "ci.*";
# Upstream frequently tags these to fix CI, which are mostly irrelevant to us.
ignoredVersions = "-";
};
};

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "git-codereview";
version = "1.4.0";
version = "1.5.0";
src = fetchFromGitHub {
owner = "golang";
repo = "review";
rev = "v${version}";
hash = "sha256-N6L+TlPU/lStMPTFYKFH2GiwyGkEJJuKtkH7wKLuM00=";
hash = "sha256-Dy7gHT6WmZ1TjA5s+VmOUkaRvrA9v7mWQSLPscgBHgY=";
};
vendorHash = null;

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "git-vanity-hash";
version = "2020-02-26-unstable";
version = "1.0.0";
src = fetchFromGitHub {
owner = "prasmussen";
repo = "git-vanity-hash";
rev = "000004122124005af8d118a3f379bfc6ecc1e7c7";
sha256 = "1wf342zawbphlzvji0yba0qg4f6v67h81nhxqcsir132jv397ma7";
rev = "v${version}";
hash = "sha256-jD8cSFXf9UNBZ9d8JTnuwhs6nPHY/xGd5RyqF+mQOlo=";
};
cargoSha256 = "1frdw9bs7y6ch5rrbsgvhrs0wxw4hbwm2n3crslp12w55m7k39fc";
cargoHash = "sha256-8oW6gRtdQdmSmdwKlcU2EhHsyhk9hFhKl7RtsYwC7Ps=";
postInstall = ''
mkdir -p $out/share/doc/git-vanity-hash

View File

@ -20,12 +20,12 @@
buildGoModule rec {
pname = "gitea";
version = "1.20.1";
version = "1.20.2";
# 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-LYOCNZJiGuMM1ly1Sp+0F8Us8LtAXzH5NzJf2CLcHck=";
hash = "sha256-a88ltflOcZQVWcEjC3r6rbPSk6LRtATcEQecYt/wg04=";
};
vendorHash = null;

View File

@ -46,13 +46,13 @@ let
in
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
version = "77.0";
version = "78.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
sha256 = "t+kfFS5c8w+c9wxNh59nceFesfdMy8qvHlUqDbZAxkk=";
sha256 = "sha256-iImcpuGZsRlwBTPyPUsfHAOkOIhc8eYs6rinl8O78oU=";
};
nativeBuildInputs = [

View File

@ -62,13 +62,13 @@ let
in
buildGoModule rec {
pname = "podman";
version = "4.6.0";
version = "4.6.1";
src = fetchFromGitHub {
owner = "containers";
repo = "podman";
rev = "v${version}";
hash = "sha256-8cfEZBYhR5CWkHEpIZ0j011gyV6lnY7z4KgJPJr0MfQ=";
hash = "sha256-bGhLjf4GZpuWX1xOC4Hm9SkYvUJ45ZipcKAIEJF0tDQ=";
};
patches = [

View File

@ -39,13 +39,13 @@ assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been renam
assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
stdenv.mkDerivation (finalAttrs: {
pname = "hyprland" + lib.optionalString debug "-debug";
version = "unstable-2023-08-08";
version = "unstable-2023-08-15";
src = fetchFromGitHub {
owner = "hyprwm";
repo = finalAttrs.pname;
rev = "8e04a80e60983f5def26bdcaea701040fea9a7ae";
hash = "sha256-5/vEdU3SzAdeIyPykjks/Zxkvh9luPTIei6oa77OY2Q=";
rev = "91e28bbe9df85e2e94fbcc0137106362aea14ab5";
hash = "sha256-1vLms49ZgDOC9y1uTjfph3WrUpatKRLnKAvFmSNre20=";
};
patches = [

View File

@ -14,18 +14,19 @@
, wrapQtAppsHook
, minizip
, libzip
, libuuid
, libarchive
}:
stdenv.mkDerivation rec {
pname = "deepin-compressor";
version = "5.12.15";
version = "5.12.17";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
sha256 = "sha256-6grnbv9hMKntOmpVcmU5IpAbHM7r0dQWb+SoQYtc5YY=";
hash = "sha256-eg9JcuBTKoaEuoph0rvy0VRH28sFOdYWN9sGbduUwcM=";
};
postPatch = ''
@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
karchive
minizip
libzip
libuuid
libarchive
];

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "clojure";
version = "1.11.1.1356";
version = "1.11.1.1386";
src = fetchurl {
# https://clojure.org/releases/tools
url = "https://download.clojure.org/install/clojure-tools-${finalAttrs.version}.tar.gz";
hash = "sha256-Gshzo0ill96R+15DuFEdHo2bx3ePuRIuYXJfNF9jkIM=";
# https://github.com/clojure/brew-install/releases
url = "https://github.com/clojure/brew-install/releases/download/${finalAttrs.version}/clojure-tools-${finalAttrs.version}.tar.gz";
hash = "sha256-e5RLnsydCZKRv6P/yC8FxK5AgK0Gj6YJw7E41neGYsM=";
};
nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zef";
version = "0.18.2";
version = "0.18.3";
src = fetchFromGitHub {
owner = "ugexe";
repo = "zef";
rev = "v${version}";
sha256 = "sha256-0EWajziWoxWLGaj54FfvEMNPPTc2Wb6O050o2qWGJ9c=";
sha256 = "sha256-/H8wHDMl2lJElsjNcNmTrijIeL1ohOkDzrO7LuOPhi4=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -0,0 +1,18 @@
diff --git a/cmake_modules/FindProtobufAlt.cmake b/cmake_modules/FindProtobufAlt.cmake
index d29f757ae..61c6e16e1 100644
--- a/cmake_modules/FindProtobufAlt.cmake
+++ b/cmake_modules/FindProtobufAlt.cmake
@@ -22,11 +22,8 @@ else()
endif()
set(find_package_args)
-if(ProtobufAlt_FIND_VERSION)
- list(APPEND find_package_args ${ProtobufAlt_FIND_VERSION})
-endif()
if(ProtobufAlt_FIND_QUIETLY)
list(APPEND find_package_args QUIET)
endif()
-find_package(Protobuf ${find_package_args})
-set(ProtobufAlt_FOUND ${Protobuf_FOUND})
+find_package(protobuf ${find_package_args})
+set(ProtobufAlt_FOUND ${protobuf_FOUND})

View File

@ -122,6 +122,7 @@ stdenv.mkDerivation rec {
patches = [
# patch to fix python-test
./darwin.patch
./cmake-find-protobuf.patch
];
nativeBuildInputs = [
@ -169,6 +170,7 @@ stdenv.mkDerivation rec {
'';
cmakeFlags = [
"-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
"-DARROW_BUILD_SHARED=${if enableShared then "ON" else "OFF"}"
"-DARROW_BUILD_STATIC=${if enableShared then "OFF" else "ON"}"
"-DARROW_BUILD_TESTS=ON"

View File

@ -3,6 +3,18 @@
, callPackage
, fetchFromGitHub
, useMinimalFeatures ? false
, useTiledb ? (!useMinimalFeatures) && !(stdenv.isDarwin && stdenv.isx86_64)
, useLibHEIF ? (!useMinimalFeatures)
, useLibJXL ? (!useMinimalFeatures)
, useMysql ? (!useMinimalFeatures)
, usePostgres ? (!useMinimalFeatures)
, usePoppler ? (!useMinimalFeatures)
, useArrow ? (!useMinimalFeatures)
, useHDF ? (!useMinimalFeatures)
, useNetCDF ? (!useMinimalFeatures)
, useArmadillo ? (!useMinimalFeatures)
, bison
, cmake
, gtest
@ -55,7 +67,6 @@
, libspatialite
, sqlite
, libtiff
, useTiledb ? !(stdenv.isDarwin && stdenv.isx86_64)
, tiledb
, libwebp
, xercesc
@ -101,63 +112,83 @@ stdenv.mkDerivation (finalAttrs: {
"-DGDAL_USE_TILEDB=OFF"
];
buildInputs = [
armadillo
c-blosc
brunsli
cfitsio
crunch
curl
cryptopp
libdeflate
expat
libgeotiff
geos
giflib
libheif
dav1d # required by libheif
libaom # required by libheif
libde265 # required by libheif
rav1e # required by libheif
x265 # required by libheif
hdf4
hdf5-cpp
libjpeg
json_c
libjxl
libhwy # required by libjxl
lerc
xz
libxml2
lz4
libmysqlclient
netcdf
openjpeg
openssl
pcre2
libpng
poppler
postgresql
proj
qhull
libspatialite
sqlite
libtiff
gtest
] ++ lib.optionals useTiledb [
tiledb
] ++ [
libwebp
zlib
zstd
python3
python3.pkgs.numpy
] ++ lib.optionals (!stdenv.isDarwin) [
# tests for formats enabled by these packages fail on macos
arrow-cpp
openexr
xercesc
] ++ lib.optional stdenv.isDarwin libiconv;
buildInputs =
let
tileDbDeps = lib.optionals useTiledb [ tiledb ];
libHeifDeps = lib.optionals useLibHEIF [
libheif
dav1d
libaom
libde265
rav1e
x265
];
libJxlDeps = lib.optionals useLibJXL [
libjxl
libhwy
];
mysqlDeps = lib.optionals useMysql [ libmysqlclient ];
postgresDeps = lib.optionals usePostgres [ postgresql ];
popplerDeps = lib.optionals usePoppler [ poppler ];
arrowDeps = lib.optionals useArrow [ arrow-cpp ];
hdfDeps = lib.optionals useHDF [
hdf4
hdf5-cpp
];
netCdfDeps = lib.optionals useNetCDF [ netcdf ];
armadilloDeps = lib.optionals useArmadillo [ armadillo ];
darwinDeps = lib.optionals stdenv.isDarwin [ libiconv ];
nonDarwinDeps = lib.optionals (!stdenv.isDarwin) ([
# tests for formats enabled by these packages fail on macos
openexr
xercesc
] ++ arrowDeps);
in [
c-blosc
brunsli
cfitsio
crunch
curl
cryptopp
libdeflate
expat
libgeotiff
geos
giflib
libjpeg
json_c
lerc
xz
libxml2
lz4
openjpeg
openssl
pcre2
libpng
proj
qhull
libspatialite
sqlite
libtiff
gtest
libwebp
zlib
zstd
python3
python3.pkgs.numpy
] ++ tileDbDeps
++ libHeifDeps
++ libJxlDeps
++ mysqlDeps
++ postgresDeps
++ popplerDeps
++ arrowDeps
++ hdfDeps
++ netCdfDeps
++ armadilloDeps
++ darwinDeps
++ nonDarwinDeps;
postInstall = ''
wrapPythonPrograms
@ -210,6 +241,8 @@ stdenv.mkDerivation (finalAttrs: {
"test_rda_download_queue"
] ++ lib.optionals (lib.versionOlder proj.version "8") [
"test_ogr_parquet_write_crs_without_id_in_datum_ensemble_members"
] ++ lib.optionals (!usePoppler) [
"test_pdf_jpx_compression"
];
postCheck = ''
popd # autotest

View File

@ -21,10 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
description = "C++ port of the Java Topology Suite (JTS)";
homepage = "https://trac.osgeo.org/geos";
description = "C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software";
homepage = "https://libgeos.org";
license = licenses.lgpl21Only;
maintainers = teams.geospatial.members;
pkgConfigModules = [ "geos" ];
mainProgram = "geosop";
};
})

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "level-zero";
version = "1.13.1";
version = "1.13.5";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "level-zero";
rev = "refs/tags/v${version}";
hash = "sha256-qV2OM41+DkuT3lDCTHOyNkHixD/HITfCiItBQX6Ewio=";
hash = "sha256-XpLbbcB8M63q+0Vj7NrERSXVIjy5KQrVZMvYijUbJhw=";
};
nativeBuildInputs = [ cmake addOpenGLRunpath ];

View File

@ -1123,7 +1123,7 @@ dependencies = [
[[package]]
name = "deltachat"
version = "1.118.0"
version = "1.119.1"
dependencies = [
"ansi_term",
"anyhow",
@ -1199,7 +1199,7 @@ dependencies = [
[[package]]
name = "deltachat-jsonrpc"
version = "1.118.0"
version = "1.119.1"
dependencies = [
"anyhow",
"async-channel",
@ -1223,7 +1223,7 @@ dependencies = [
[[package]]
name = "deltachat-repl"
version = "1.118.0"
version = "1.119.1"
dependencies = [
"ansi_term",
"anyhow",
@ -1238,7 +1238,7 @@ dependencies = [
[[package]]
name = "deltachat-rpc-server"
version = "1.118.0"
version = "1.119.1"
dependencies = [
"anyhow",
"deltachat",
@ -1263,7 +1263,7 @@ dependencies = [
[[package]]
name = "deltachat_ffi"
version = "1.118.0"
version = "1.119.1"
dependencies = [
"anyhow",
"deltachat",
@ -4958,14 +4958,14 @@ dependencies = [
[[package]]
name = "tokio-tar"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a50188549787c32c1c3d9c8c71ad7e003ccf2f102489c5a96e385c84760477f4"
checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75"
dependencies = [
"filetime",
"futures-core",
"libc",
"redox_syscall 0.2.16",
"redox_syscall 0.3.5",
"tokio",
"tokio-stream",
"xattr",
@ -5778,9 +5778,9 @@ dependencies = [
[[package]]
name = "xattr"
version = "0.2.3"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
dependencies = [
"libc",
]

View File

@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.118.0";
version = "1.119.1";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = "v${version}";
hash = "sha256-1vkmz7LFG420zYETYIf3ayOQEPp+hz7Dr7gULz1nJOs=";
hash = "sha256-LP5h99qldf9QoRDmo581H+sUx1QsD6nOGt1ES3Fr/6E=";
};
patches = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "nix-plugins";
version = "11.0.0";
version = "12.0.0";
src = fetchFromGitHub {
owner = "shlevy";
repo = "nix-plugins";
rev = version;
hash = "sha256-sJL8g+UVFvJTqujS9F6gy8tairYUztHCSILkQlwDADU";
hash = "sha256-VJqLfOT7y32Jupl57YXxqeDPy0tOWi46tRLN1QUDIow=";
};
nativeBuildInputs = [ cmake pkg-config ];

View File

@ -47,13 +47,13 @@ let
in
stdenv.mkDerivation (finalAttrs: rec {
pname = "poppler-${suffix}";
version = "23.07.0"; # beware: updates often break cups-filters build, check texlive and scribus too!
version = "23.08.0"; # beware: updates often break cups-filters build, check texlive and scribus too!
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://poppler.freedesktop.org/poppler-${version}.tar.xz";
hash = "sha256-8ptLS/R1cmERdkVMjyFQbXHSfspQEaOapEA4swuVfbA=";
hash = "sha256-Skv3/JA7nxoqt9BLfF2CINubxiYcxz/bmoJtwnL0mqg=";
};
nativeBuildInputs = [

View File

@ -49,6 +49,9 @@ let
./patches/0006-qtbase-qt-cmake-always-use-cmake-from-path.patch
./patches/0007-qtbase-find-qt-tools-in-QTTOOLSPATH.patch
./patches/0008-qtbase-allow-translations-outside-prefix.patch
./patches/0008-qtbase-find-qmlimportscanner-in-macdeployqt-via-environment.patch
./patches/0009-qtbase-check-in-the-QML-folder-of-this-library-does-actuall.patch
./patches/0010-qtbase-pass-to-qmlimportscanner-the-QML2_IMPORT_PATH.patch
];
};
env = callPackage ./qt-env.nix { };

View File

@ -0,0 +1,35 @@
From 505391a31aa353b8f1cc5d3feb9861582554d9f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pedro=20Bol=C3=ADvar=20Puente?= <raskolnikov@gnu.org>
Date: Wed, 9 Aug 2023 16:16:21 +0200
Subject: [PATCH 1/3] Find qmlimportscanner in macdeployqt via environment
The qmlimportscanner tool is provided by qtdeclarative. Because of the
modularized installation in Nix, it can not be found via the usual
mechanisms. Also, hard-coding it like we do for Qt5 would also not
work, as it would require making qtbase depend on qtdeclarative.
Here we add an option to provide its location via the environment.
While this means macdeployqt does not work out of the box, it provides
a workaround for users.
---
src/tools/macdeployqt/shared/shared.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/tools/macdeployqt/shared/shared.cpp b/src/tools/macdeployqt/shared/shared.cpp
index 643fe5390a..b8fcc9c9bd 100644
--- a/src/tools/macdeployqt/shared/shared.cpp
+++ b/src/tools/macdeployqt/shared/shared.cpp
@@ -1270,6 +1270,10 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
if (!QFile::exists(qmlImportScannerPath))
qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+ // Fallback: Pass qml import scanner via environment variable
+ if (!QFile::exists(qmlImportScannerPath))
+ qmlImportScannerPath = ::qgetenv("NIX_QMLIMPORTSCANNER");
+
// Verify that we found a qmlimportscanner binary
if (!QFile::exists(qmlImportScannerPath)) {
LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;
--
2.26.2

View File

@ -0,0 +1,35 @@
From 32df59bea18bebc18d6d308750e88be325522d2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pedro=20Bol=C3=ADvar=20Puente?= <raskolnikov@gnu.org>
Date: Thu, 10 Aug 2023 14:15:34 +0200
Subject: [PATCH 2/3] Check in the QML folder of this library does actually
exist
In a modularized installation, this folder will be the location where
`qtbase` itself is installed, but `qtbase` does not have any QML
code, and `qmlimportscanner` will complain that it does not exist.
---
src/tools/macdeployqt/shared/shared.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/tools/macdeployqt/shared/shared.cpp b/src/tools/macdeployqt/shared/shared.cpp
index b8fcc9c9bd..676d34d545 100644
--- a/src/tools/macdeployqt/shared/shared.cpp
+++ b/src/tools/macdeployqt/shared/shared.cpp
@@ -1290,9 +1290,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
}
for (const QString &importPath : qmlImportPaths)
argumentList << "-importPath" << importPath;
+
QString qmlImportsPath = QLibraryInfo::path(QLibraryInfo::QmlImportsPath);
- argumentList.append( "-importPath");
- argumentList.append(qmlImportsPath);
+ if (QFile::exists(qmlImportsPath)) {
+ argumentList.append( "-importPath");
+ argumentList.append(qmlImportsPath);
+ }
// run qmlimportscanner
QProcess qmlImportScanner;
--
2.26.2

View File

@ -0,0 +1,30 @@
From 39eb99dcd66f8ffb632fed6308a49896fe5ad2d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pedro=20Bol=C3=ADvar=20Puente?= <raskolnikov@gnu.org>
Date: Thu, 10 Aug 2023 14:17:03 +0200
Subject: [PATCH 3/3] Pass to qmlimportscanner the QML2_IMPORT_PATH
---
src/tools/macdeployqt/shared/shared.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/tools/macdeployqt/shared/shared.cpp b/src/tools/macdeployqt/shared/shared.cpp
index 676d34d545..7908b07b3c 100644
--- a/src/tools/macdeployqt/shared/shared.cpp
+++ b/src/tools/macdeployqt/shared/shared.cpp
@@ -1297,6 +1297,13 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
argumentList.append(qmlImportsPath);
}
+ // In a modularized installation of qt as we have in Nix, instead, we will
+ // read the paths from the environment, as they are spread in multiple
+ // locations and normally set in the environment like this
+ auto envQmlImportPaths = ::qgetenv("QML2_IMPORT_PATH").split(':');
+ for (const QString &importPath : envQmlImportPaths)
+ argumentList << "-importPath" << importPath;
+
// run qmlimportscanner
QProcess qmlImportScanner;
qmlImportScanner.start(qmlImportScannerPath, argumentList);
--
2.26.2

View File

@ -16,7 +16,10 @@ rec {
sha256 = "sha256-51k+Eo3buzby9cWtbl+/0wbAxa2QSS+Oq0aEao0VBCM=";
};
propagatedBuildInputs = [ yojson logs lsp ppx_yojson_conv_lib ];
lsp_v = lsp.override {
version = "1.14.2";
};
propagatedBuildInputs = [ yojson logs lsp_v ppx_yojson_conv_lib ];
meta = with lib; {
description = "LSP server library";

View File

@ -1,4 +1,16 @@
{ lib, buildDunePackage, lsp, xdg, re, fiber, makeWrapper, dot-merlin-reader, spawn, ocamlc-loc }:
{ lib
, buildDunePackage
, lsp
, xdg
, re
, fiber
, makeWrapper
, dot-merlin-reader
, spawn
, ocamlc-loc
, odoc-parser
, merlin-lib
}:
buildDunePackage rec {
pname = "ocaml-lsp-server";
@ -8,7 +20,8 @@ buildDunePackage rec {
buildInputs = lsp.buildInputs ++ [ lsp re ]
++ lib.optional (lib.versionAtLeast version "1.9") spawn
++ lib.optionals (lib.versionAtLeast version "1.10") [ fiber xdg ]
++ lib.optional (lib.versionAtLeast version "1.14.2") ocamlc-loc;
++ lib.optional (lib.versionAtLeast version "1.14.2") ocamlc-loc
++ lib.optional (lib.versionAtLeast version "1.16.2") [ odoc-parser merlin-lib ];
nativeBuildInputs = [ makeWrapper ];

View File

@ -7,41 +7,55 @@
, fetchurl
, lib
, ocaml
, version ?
if lib.versionAtLeast ocaml.version "4.14" then
"1.16.2"
else if lib.versionAtLeast ocaml.version "4.13" then
"1.10.5"
else if lib.versionAtLeast ocaml.version "4.12" then
"1.9.0"
else
"1.4.1"
}:
let params =
if lib.versionAtLeast ocaml.version "4.14"
then {
let params = {
"1.16.2" = {
name = "lsp";
version = "1.14.2";
minimalOCamlVersion = "4.14";
sha256 = "sha256-FIfVpOLy1PAjNBBYVRvbi6hsIzZ7fFtP3aOqfcAqrsQ=";
};
"1.14.2" = {
name = "lsp";
minimalOCamlVersion = "4.14";
sha256 = "sha256-1R+HYaGbPLGDs5DMN3jmnrZFMhMmPUHgF+s+yNzIVJQ=";
} else if lib.versionAtLeast ocaml.version "4.13"
then {
};
"1.10.5" = {
name = "jsonrpc";
version = "1.10.5";
minimalOCamlVersion = "4.13";
sha256 = "sha256-TeJS6t1ruWhWPvWNatrnSUWI6T17XKiosHLYizBDDcw=";
} else if lib.versionAtLeast ocaml.version "4.12"
then {
};
"1.9.0" = {
name = "jsonrpc";
version = "1.9.0";
minimalOCamlVersion = "4.12";
sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh";
} else {
};
"1.4.1" = {
name = "jsonrpc";
version = "1.4.1";
minimalOCamlVersion = "4.06";
sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f";
}
; in
};
}."${version}"; in
buildDunePackage rec {
pname = "jsonrpc";
inherit (params) version;
inherit version;
src = fetchurl {
url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/${params.name}-${version}.tbz";
inherit (params) sha256;
};
duneVersion = "3";
minimalOCamlVersion = "4.06";
inherit (params) minimalOCamlVersion;
buildInputs =
if lib.versionAtLeast version "1.7.0" then

View File

@ -21,11 +21,24 @@
, cmdliner
, ordering
, ocamlformat-rpc-lib
, ocaml
, version ?
if lib.versionAtLeast ocaml.version "4.14" then
"1.16.2"
else if lib.versionAtLeast ocaml.version "4.13" then
"1.10.5"
else if lib.versionAtLeast ocaml.version "4.12" then
"1.9.0"
else
"1.4.1"
}:
let jsonrpc_v = jsonrpc.override {
inherit version;
}; in
buildDunePackage rec {
pname = "lsp";
inherit (jsonrpc) version src;
inherit (jsonrpc_v) version src;
duneVersion = "3";
minimalOCamlVersion =
if lib.versionAtLeast version "1.7.0" then

View File

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "ailment";
version = "9.2.63";
version = "9.2.64";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "angr";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-Hg8KSReRHOmdoN8CZiX8i8Xdrn5/Gnqmx1QE6elV6qA=";
hash = "sha256-KUJpcP7bf8BjmB/QojTQHSwkmzW0bN4nJaD8GcNbcyE=";
};
nativeBuildInputs = [

View File

@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "aiohomekit";
version = "2.6.15";
version = "2.6.16";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "Jc2k";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-PX2OIgfVOlCEudObJrz/WRQXW7c6Gq9PQqD52D3lmmo=";
hash = "sha256-2QnM5WJ0UyuRyL6NiXz22SLUMvyNfbdNIutJSNjS+G8=";
};
nativeBuildInputs = [

View File

@ -11,9 +11,10 @@
, typing-extensions
, pandas
, jinja2
, importlib-metadata
, packaging
# Build, dev and test dependencies
, anywidget
, ipython
, pytestCheckHook
, vega_datasets
@ -22,15 +23,17 @@
buildPythonPackage rec {
pname = "altair";
version = "5.0.1";
# current version, 5.0.1, is broken with jsonschema>=4.18
# we use unstable version instead of patch due to many changes
version = "unstable-2023-08-12";
format = "pyproject";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "altair-viz";
repo = "altair";
rev = "refs/tags/v${version}";
hash = "sha256-7bTrfryu4oaodVGNFNlVk9vXmDA5/9ahvCmvUGzZ5OQ=";
rev = "56b3b66daae7160c8d82777d2646131afcc3dab4";
hash = "sha256-uVE3Bth1D1mIhaULB4IxEtOzhQd51Pscqyfdys65F6A=";
};
nativeBuildInputs = [
@ -41,12 +44,13 @@ buildPythonPackage rec {
jinja2
jsonschema
numpy
packaging
pandas
toolz
] ++ lib.optional (pythonOlder "3.8") importlib-metadata
++ lib.optional (pythonOlder "3.11") typing-extensions;
] ++ lib.optional (pythonOlder "3.11") typing-extensions;
nativeCheckInputs = [
anywidget
ipython
sphinx
vega_datasets
@ -62,6 +66,8 @@ buildPythonPackage rec {
"tests/vegalite/v5/test_api.py"
# avoid updating files and dependency on black
"tests/test_toplevel.py"
# require vl-convert package
"tests/utils/test_compiler.py"
];
meta = with lib; {

View File

@ -32,7 +32,7 @@
buildPythonPackage rec {
pname = "angr";
version = "9.2.63";
version = "9.2.64";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -41,7 +41,7 @@ buildPythonPackage rec {
owner = pname;
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-vrcziVoH+P0cqnzalwZOyu7awidQ0Lv6vT6Uq9Pu4I0=";
hash = "sha256-NQopPg7ZAKkbq6T/1U8VYT/9oRz9ssg5yqTBpInNHNk=";
};
propagatedBuildInputs = [

View File

@ -0,0 +1,54 @@
{ lib
, buildPythonPackage
, fetchPypi
, pytestCheckHook
, pythonOlder
, hatch-jupyter-builder
, hatchling
, importlib-metadata
, ipywidgets
, jupyterlab
, psygnal
, typing-extensions
, watchfiles
}:
buildPythonPackage rec {
pname = "anywidget";
version = "0.6.3";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-OUKxmYceEKURJeQTVI7oLT4SdZM90V7BoZf0UykkEV4=";
};
nativeBuildInputs = [
hatch-jupyter-builder
hatchling
jupyterlab
];
propagatedBuildInputs = [
ipywidgets
psygnal
typing-extensions
] ++ lib.optional (pythonOlder "3.8") importlib-metadata;
nativeCheckInputs = [
pytestCheckHook
watchfiles
];
pythonImportsCheck = [ "anywidget" ];
meta = with lib; {
description = "Custom jupyter widgets made easy";
homepage = "https://github.com/manzt/anywidget";
changelog = "https://github.com/manzt/anywidget/releases/tag/anywidget%40${version}";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
};
}

View File

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "archinfo";
version = "9.2.63";
version = "9.2.64";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "angr";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-10ocfA1JFHyZA8Uv5b209rOjY5OeBtKITnoiRaw/w7k=";
hash = "sha256-/3dc0p6xDFvv8VwFi5hxiXveiWYr9w3s0PwMv3uV2yw=";
};
nativeBuildInputs = [

View File

@ -5,7 +5,7 @@
, poetry-core
, jsonschema
, peewee
, appdirs
, platformdirs
, iso8601
, rfc3339-validator
, strict-rfc3339
@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "aw-core";
version = "0.5.14";
version = "0.5.15";
format = "pyproject";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "ActivityWatch";
repo = "aw-core";
rev = "v${version}";
sha256 = "sha256-+XmFh4/wPUpuoRVi8OdzFs/3dwoI1Mjx1hnTiGj+12I=";
sha256 = "sha256-3cz79gSkmbGtCKnLGA4HGG5dLu7QB4ZtMnNGrSYB17U=";
};
disabled = pythonOlder "3.8";
@ -39,7 +39,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
jsonschema
peewee
appdirs
platformdirs
iso8601
rfc3339-validator
strict-rfc3339

View File

@ -16,7 +16,7 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "ludeeus";
repo = pname;
rev = version;
rev = "refs/tags/${version}";
hash = "sha256-3bHE3U4MM/fQM9zBYfoLpAObay82vchjX9FpJukMGNg=";
};
@ -41,6 +41,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python module to deal with versions";
homepage = "https://github.com/ludeeus/awesomeversion";
changelog = "https://github.com/ludeeus/awesomeversion/releases/tag/${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};

View File

@ -19,14 +19,14 @@
buildPythonPackage rec {
pname = "ax";
version = "0.3.2";
version = "0.3.4";
format = "pyproject";
src = fetchFromGitHub {
owner = "facebook";
repo = pname;
rev = version;
hash = "sha256-1KLLjeUktXvIDOlTQzMmpbL/On8PTxZQ44Qi4BT3nPk=";
hash = "sha256-Yc6alEKXbtQ0hitIdPhkJWhZQg150b0NJJRLZ+f1hdY=";
};
nativeBuildInputs = [
@ -66,6 +66,10 @@ buildPythonPackage rec {
"--ignore=ax/service/tests/test_with_db_settings_base.py"
"--ignore=ax/storage"
];
disabledTests = [
# exact comparison of floating points
"test_optimize_l0_homotopy"
];
pythonImportsCheck = [ "ax" ];
meta = with lib; {

View File

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "azure-eventhub";
version = "5.11.3";
version = "5.11.4";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -17,7 +17,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
extension = "zip";
hash = "sha256-mXXMvKHk+U+VtBG5zPbKJcXrRMDssnU/18wGXT5xSK8=";
hash = "sha256-aLiaNRUEDxF2+bSWxMdtOBwQd3mu13V8u7mj2r4wqCM=";
};
propagatedBuildInputs = [

View File

@ -1,29 +1,39 @@
{ lib, buildPythonPackage, fetchPypi
{ lib
, buildPythonPackage
, fetchPypi
, azure-common
, azure-core
, azure-mgmt-core
, msrest
, pythonOlder
}:
buildPythonPackage rec {
pname = "azure-synapse-artifacts";
version = "0.16.0";
version = "0.17.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
extension = "zip";
hash = "sha256-J96cBqCCajK34M7v+2h6t2ptm7QwmfQt25674Q4Nr94=";
hash = "sha256-58k8F/aUBBNJwGBiPZojkSzEXZ3Kd6uEwr0cZbFaM9k=";
};
propagatedBuildInputs = [
azure-common
azure-core
azure-mgmt-core
msrest
];
# zero tests run
doCheck = false;
pythonImportsCheck = [ "azure.synapse.artifacts" ];
pythonImportsCheck = [
"azure.synapse.artifacts"
];
meta = with lib; {
description = "Microsoft Azure Synapse Artifacts Client Library for Python";

View File

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, pythonOlder
, setuptools
, setuptools-scm
, wheel
}:
buildPythonPackage rec {
pname = "backports-strenum";
version = "1.2.4";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "clbarnes";
repo = "backports.strenum";
rev = "refs/tags/v${version}";
hash = "sha256-AhAMVawnBMJ45a3mpthUZvqTeqeCB1Uco4MSusLyA4E=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools
setuptools-scm
wheel
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"backports.strenum"
];
meta = with lib; {
description = "Base class for creating enumerated constants that are also subclasses of str";
homepage = "https://github.com/clbarnes/backports.strenum";
license = with licenses; [ psfl ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "bimmer-connected";
version = "0.13.9";
version = "0.13.10";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "bimmerconnected";
repo = "bimmer_connected";
rev = "refs/tags/${version}";
hash = "sha256-iAfP8idJXhAsCnhlGUyMHK723kEER5bCYJNLsvaCrTA=";
hash = "sha256-IylA73N3bZOs5HjQGbT6xqokb73iO3bdg5M2KCTX3p4=";
};
nativeBuildInputs = [

View File

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "boschshcpy";
version = "0.2.57";
version = "0.2.60";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "tschamm";
repo = pname;
rev = version;
hash = "sha256-/TD5zvvtOkoVG+EJzNNSMbOKXm78Di9tDrBIxpN4wbg=";
hash = "sha256-RCHOkTBnJcqGc3Y0cQhkgkizuqNl98MU8lxpVoHVLcc=";
};
propagatedBuildInputs = [

View File

@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "botorch";
version = "0.8.5";
version = "0.9.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "pytorch";
repo = pname;
rev = "v${version}";
hash = "sha256-VcNHgfk8OfLJseQxHksycWuCPCudCtOdcRV0XnxHSfU=";
hash = "sha256-8obS+qMQwepKUxPkMbufR/SaacYekl6FA6t6XW6llA4=";
};
nativeBuildInputs = [

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