Merge master into staging-next

Changed files
+635 -381
nixos
pkgs
applications
blockchains
btcpayserver
nbxplorer
editors
android-studio
graphics
ImageMagick
networking
terminal-emulators
kitty
window-managers
leftwm
development
libraries
python-modules
jc
pycangjie
pyspotify
upass
tools
ocaml
ocaml-top
scalafmt
spirv-tools
yarn2nix-moretea
misc
cups
drivers
kyocera-ecosys-m2x35-40-p2x35-40dnw
servers
tools
graphics
networking
getmail6
top-level
+12 -1
nixos/lib/testing-python.nix
···
build-vms = import ./build-vms.nix {
inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
+
{ config, ... }:
{
virtualisation.qemu.package = qemu_pkg;
···
# copied to the image.
virtualisation.additionalPaths =
lib.optional
-
(builtins.hasContext testScript')
+
# A testScript may evaluate nodes, which has caused
+
# infinite recursions. The demand cycle involves:
+
# testScript -->
+
# nodes -->
+
# toplevel -->
+
# additionalPaths -->
+
# hasContext testScript' -->
+
# testScript (ad infinitum)
+
# If we don't need to build an image, we can break this
+
# cycle by short-circuiting when useNixStoreImage is false.
+
(config.virtualisation.useNixStoreImage && builtins.hasContext testScript')
(pkgs.writeStringReferencesToFile testScript');
# Ensure we do not use aliases. Ideally this is only set
nixos/modules/services/desktops/pipewire/alsa-monitor.conf.json nixos/modules/services/desktops/pipewire/media-session/alsa-monitor.conf.json
nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json nixos/modules/services/desktops/pipewire/media-session/bluez-monitor.conf.json
nixos/modules/services/desktops/pipewire/client-rt.conf.json nixos/modules/services/desktops/pipewire/daemon/client-rt.conf.json
nixos/modules/services/desktops/pipewire/client.conf.json nixos/modules/services/desktops/pipewire/daemon/client.conf.json
nixos/modules/services/desktops/pipewire/jack.conf.json nixos/modules/services/desktops/pipewire/daemon/jack.conf.json
nixos/modules/services/desktops/pipewire/media-session.conf.json nixos/modules/services/desktops/pipewire/media-session/media-session.conf.json
+10 -10
nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
···
# Use upstream config files passed through spa-json-dump as the base
# Patched here as necessary for them to work with this module
defaults = {
-
alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json));
-
bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json));
-
media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json));
-
v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json));
+
alsa-monitor = (builtins.fromJSON (builtins.readFile ./media-session/alsa-monitor.conf.json));
+
bluez-monitor = (builtins.fromJSON (builtins.readFile ./media-session/bluez-monitor.conf.json));
+
media-session = (builtins.fromJSON (builtins.readFile ./media-session/media-session.conf.json));
+
v4l2-monitor = (builtins.fromJSON (builtins.readFile ./media-session/v4l2-monitor.conf.json));
};
configs = {
···
package = mkOption {
type = types.package;
-
default = pkgs.pipewire.mediaSession;
-
defaultText = literalExpression "pkgs.pipewire.mediaSession";
+
default = pkgs.pipewire-media-session;
+
defaultText = literalExpression "pkgs.pipewire-media-session";
description = ''
The pipewire-media-session derivation to use.
'';
···
type = json.type;
description = ''
Configuration for the media session core. For details see
-
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
+
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
'';
default = {};
};
···
type = json.type;
description = ''
Configuration for the alsa monitor. For details see
-
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
+
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
'';
default = {};
};
···
type = json.type;
description = ''
Configuration for the bluez5 monitor. For details see
-
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
+
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
'';
default = {};
};
···
type = json.type;
description = ''
Configuration for the V4L2 monitor. For details see
-
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
+
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
'';
default = {};
};
nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json
nixos/modules/services/desktops/pipewire/pipewire.conf.json nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
+5 -6
nixos/modules/services/desktops/pipewire/pipewire.nix
···
# Use upstream config files passed through spa-json-dump as the base
# Patched here as necessary for them to work with this module
defaults = {
-
client = builtins.fromJSON (builtins.readFile ./client.conf.json);
-
client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json);
-
jack = builtins.fromJSON (builtins.readFile ./jack.conf.json);
-
# Remove session manager invocation from the upstream generated file, it points to the wrong path
-
pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json);
-
pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json);
+
client = builtins.fromJSON (builtins.readFile ./daemon/client.conf.json);
+
client-rt = builtins.fromJSON (builtins.readFile ./daemon/client-rt.conf.json);
+
jack = builtins.fromJSON (builtins.readFile ./daemon/jack.conf.json);
+
pipewire = builtins.fromJSON (builtins.readFile ./daemon/pipewire.conf.json);
+
pipewire-pulse = builtins.fromJSON (builtins.readFile ./daemon/pipewire-pulse.conf.json);
};
configs = {
nixos/modules/services/desktops/pipewire/v4l2-monitor.conf.json nixos/modules/services/desktops/pipewire/media-session/v4l2-monitor.conf.json
+1 -1
nixos/modules/services/web-apps/nextcloud.nix
···
{ systemd.timers.nextcloud-cron = {
wantedBy = [ "timers.target" ];
timerConfig.OnBootSec = "5m";
-
timerConfig.OnUnitActiveSec = "15m";
+
timerConfig.OnUnitActiveSec = "5m";
timerConfig.Unit = "nextcloud-cron.service";
};
+50 -23
nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
···
import os.path
from typing import Tuple, List, Optional
+
SystemIdentifier = Tuple[Optional[str], int, Optional[str]]
+
def copy_if_not_exists(source: str, dest: str) -> None:
if not os.path.exists(dest):
shutil.copyfile(source, dest)
-
def system_dir(profile: Optional[str], generation: int) -> str:
+
def generation_dir(profile: Optional[str], generation: int) -> str:
if profile:
return "/nix/var/nix/profiles/system-profiles/%s-%d-link" % (profile, generation)
else:
return "/nix/var/nix/profiles/system-%d-link" % (generation)
-
BOOT_ENTRY = """title NixOS{profile}
+
def system_dir(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
+
d = generation_dir(profile, generation)
+
if specialisation:
+
return os.path.join(d, "specialisation", specialisation)
+
else:
+
return d
+
+
BOOT_ENTRY = """title NixOS{profile}{specialisation}
version Generation {generation} {description}
linux {kernel}
initrd {initrd}
···
"""
-
def write_loader_conf(profile: Optional[str], generation: int) -> None:
+
def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
+
pieces = [
+
"nixos",
+
profile or None,
+
"generation",
+
str(generation),
+
f"specialisation-{specialisation}" if specialisation else None,
+
]
+
return "-".join(p for p in pieces if p) + ".conf"
+
+
+
def write_loader_conf(profile: Optional[str], generation: int, specialisation: Optional[str]) -> None:
with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
if "@timeout@" != "":
f.write("timeout @timeout@\n")
-
if profile:
-
f.write("default nixos-%s-generation-%d.conf\n" % (profile, generation))
-
else:
-
f.write("default nixos-generation-%d.conf\n" % (generation))
+
f.write("default %s\n" % generation_conf_filename(profile, generation, specialisation))
if not @editor@:
f.write("editor 0\n");
f.write("console-mode @consoleMode@\n");
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
-
def profile_path(profile: Optional[str], generation: int, name: str) -> str:
-
return os.path.realpath("%s/%s" % (system_dir(profile, generation), name))
+
def profile_path(profile: Optional[str], generation: int, specialisation: Optional[str], name: str) -> str:
+
return os.path.realpath("%s/%s" % (system_dir(profile, generation, specialisation), name))
-
def copy_from_profile(profile: Optional[str], generation: int, name: str, dry_run: bool = False) -> str:
-
store_file_path = profile_path(profile, generation, name)
+
def copy_from_profile(profile: Optional[str], generation: int, specialisation: Optional[str], name: str, dry_run: bool = False) -> str:
+
store_file_path = profile_path(profile, generation, specialisation, name)
suffix = os.path.basename(store_file_path)
store_dir = os.path.basename(os.path.dirname(store_file_path))
efi_file_path = "/efi/nixos/%s-%s.efi" % (store_dir, suffix)
···
return description
-
def write_entry(profile: Optional[str], generation: int, machine_id: str) -> None:
-
kernel = copy_from_profile(profile, generation, "kernel")
-
initrd = copy_from_profile(profile, generation, "initrd")
+
def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str], machine_id: str) -> None:
+
kernel = copy_from_profile(profile, generation, specialisation, "kernel")
+
initrd = copy_from_profile(profile, generation, specialisation, "initrd")
try:
-
append_initrd_secrets = profile_path(profile, generation, "append-initrd-secrets")
+
append_initrd_secrets = profile_path(profile, generation, specialisation, "append-initrd-secrets")
subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)])
except FileNotFoundError:
pass
-
if profile:
-
entry_file = "@efiSysMountPoint@/loader/entries/nixos-%s-generation-%d.conf" % (profile, generation)
-
else:
-
entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation)
-
generation_dir = os.readlink(system_dir(profile, generation))
+
entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
+
generation_conf_filename(profile, generation, specialisation))
+
generation_dir = os.readlink(system_dir(profile, generation, specialisation))
tmp_path = "%s.tmp" % (entry_file)
kernel_params = "init=%s/init " % generation_dir
···
kernel_params = kernel_params + params_file.read()
with open(tmp_path, 'w') as f:
f.write(BOOT_ENTRY.format(profile=" [" + profile + "]" if profile else "",
+
specialisation=" (%s)" % specialisation if specialisation else "",
generation=generation,
kernel=kernel,
initrd=initrd,
···
raise
-
def get_generations(profile: Optional[str] = None) -> List[Tuple[Optional[str], int]]:
+
def get_generations(profile: Optional[str] = None) -> List[SystemIdentifier]:
gen_list = subprocess.check_output([
"@nix@/bin/nix-env",
"--list-generations",
···
gen_lines.pop()
configurationLimit = @configurationLimit@
-
return [ (profile, int(line.split()[0])) for line in gen_lines ][-configurationLimit:]
+
configurations: List[SystemIdentifier] = [ (profile, int(line.split()[0]), None) for line in gen_lines ]
+
return configurations[-configurationLimit:]
+
+
+
def get_specialisations(profile: Optional[str], generation: int, _: Optional[str]) -> List[SystemIdentifier]:
+
specialisations_dir = os.path.join(
+
system_dir(profile, generation, None), "specialisation")
+
if not os.path.exists(specialisations_dir):
+
return []
+
return [(profile, generation, spec) for spec in os.listdir(specialisations_dir)]
-
def remove_old_entries(gens: List[Tuple[Optional[str], int]]) -> None:
+
def remove_old_entries(gens: List[SystemIdentifier]) -> None:
rex_profile = re.compile("^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$")
rex_generation = re.compile("^@efiSysMountPoint@/loader/entries/nixos.*-generation-(.*)\.conf$")
known_paths = []
···
for gen in gens:
try:
write_entry(*gen, machine_id)
+
for specialisation in get_specialisations(*gen):
+
write_entry(*specialisation, machine_id)
if os.readlink(system_dir(*gen)) == args.default_config:
write_loader_conf(*gen)
except OSError as e:
+2 -3
nixos/tests/ghostunnel.nix
···
-
{ pkgs, ... }: import ./make-test-python.nix {
-
+
import ./make-test-python.nix ({ pkgs, ... }: {
nodes = {
backend = { pkgs, ... }: {
services.nginx.enable = true;
···
meta.maintainers = with pkgs.lib.maintainers; [
roberth
];
-
}
+
})
+1 -1
nixos/tests/nixops/default.nix
···
users.users.person.isNormalUser = true;
virtualisation.writableStore = true;
virtualisation.memorySize = 1024 /*MiB*/;
-
virtualisation.pathsInNixDB = [
+
virtualisation.additionalPaths = [
pkgs.hello
pkgs.figlet
+23
nixos/tests/systemd-boot.nix
···
'';
};
+
# Check that specialisations create corresponding boot entries.
+
specialisation = makeTest {
+
name = "systemd-boot-specialisation";
+
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ lukegb ];
+
+
machine = { pkgs, lib, ... }: {
+
imports = [ common ];
+
specialisation.something.configuration = {};
+
};
+
+
testScript = ''
+
machine.start()
+
machine.wait_for_unit("multi-user.target")
+
+
machine.succeed(
+
"test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
+
)
+
machine.succeed(
+
"grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
+
)
+
'';
+
};
+
# Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI"
fallback = makeTest {
name = "systemd-boot-fallback";
+2 -2
pkgs/applications/blockchains/btcpayserver/default.nix
···
buildDotnetModule rec {
pname = "btcpayserver";
-
version = "1.2.4";
+
version = "1.3.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-vjNJ08twsJ036TTFF6srOGshDpP7ZwWCGN0XjrtFT/g=";
+
sha256 = "sha256-gJvUW/U+O83Q0VDo6a5VkWx2RuofMNs/mPn/hnM2XiE=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";
+219 -174
pkgs/applications/blockchains/btcpayserver/deps.nix
···
})
(fetchNuGet {
name = "BTCPayServer.Lightning.All";
-
version = "1.2.12";
-
sha256 = "0sciwh9m7h6ns59bsrzpd6zyxxdkiy33bdsq0phd3r2yxakvw68n";
+
version = "1.2.13";
+
sha256 = "16nhahb6bnjwhw3wh044zfkqpb5k40kyhdazs2h6y4phjhm5hq2r";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Charge";
-
version = "1.2.7";
-
sha256 = "02x3p0am5zqp8f4fycdlrp26alicxc5vrlvgxg6d8wsa35q473xc";
+
version = "1.2.8";
+
sha256 = "0ldk7kyipgmg0mj1444ins5n014z149j1qa40h12pncr6q1fb0xf";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.CLightning";
-
version = "1.2.8";
-
sha256 = "06c6dnp72iwvnjm3pil24fnk4vp2v1f9gg84a381yn1xah9jghky";
+
version = "1.2.9";
+
sha256 = "0r855lnh6cyj6hpwhdpdhpp39332v7lmk93ri2q8gs9lsnwdyjr8";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Common";
···
sha256 = "09p2ks1qgy6jnpcfwgdnxvldyyadwnh3mwmq9z89vvzmmgs19xkk";
})
(fetchNuGet {
+
name = "BTCPayServer.Lightning.Common";
+
version = "1.2.7";
+
sha256 = "1hz4bn3aw537r253ipdpa6sydwhb6dh3r82xp1jizn9a6mnw54x6";
+
})
+
(fetchNuGet {
name = "BTCPayServer.Lightning.Eclair";
-
version = "1.2.6";
-
sha256 = "0lf55w8v997kqh808545ry5mlwxpzxzlkbz38fl4nfm85yydw0fc";
+
version = "1.2.7";
+
sha256 = "1h15gic45wps4nvmxyfmfils9nicbz3xkli705hq69g0mafy0f23";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.LND";
-
version = "1.2.8";
-
sha256 = "1g1siy3xwf3rmyl4qrcg42wpww4b2qmfs88x0rxccwxjy5inzkz6";
+
version = "1.2.9";
+
sha256 = "1zyr58kwdyb02dfgxza73fqvzcjlf59msllmf06anl9im4pqcjx6";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Ptarmigan";
-
version = "1.2.6";
-
sha256 = "10g785jh92z5x7aqh41ma3d1nw0718bk7ibb58ychhdk1v2wwmh4";
+
version = "1.2.7";
+
sha256 = "1mmj8bi32kzgda8v7qdfpm2qlpffv5223c2xnq7351h8ih4bbcvb";
})
(fetchNuGet {
name = "BuildBundlerMinifier";
···
sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
})
(fetchNuGet {
+
name = "LNURL";
+
version = "0.0.14";
+
sha256 = "0b2v87k3yi2lyka5zy3sbvxsa7yp04nn72l7dk27cm9i1d9914sq";
+
})
+
(fetchNuGet {
name = "McMaster.NETCore.Plugins.Mvc";
-
version = "1.3.1";
-
sha256 = "1dh58ijwn6q6id0jpzr4hpfl0y4ak43zq4m8rsi5j2qv8vasq1mi";
+
version = "1.4.0";
+
sha256 = "07i0p6236hyh1c3cb5v6zkayq5807rd6msc341v2jh6yd5radasy";
})
(fetchNuGet {
name = "McMaster.NETCore.Plugins";
-
version = "1.3.1";
-
sha256 = "0jrp7sshnvg7jcb52gfhwmg1jy31k9dxdf4061yggwcgpfskyg7n";
+
version = "1.4.0";
+
sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy";
})
(fetchNuGet {
name = "Microsoft.AspNet.SignalR.Client";
···
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.Internal";
-
version = "3.1.4";
-
sha256 = "0d4djj073bl9kps5jkcpydh92lcp6kpa7njhypjw3myaa987dcsh";
+
version = "3.1.19";
+
sha256 = "1b20hksk2qk2jnkwin4g0n9ap3ma7724pd518fh9qcakf7vfpkl1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
-
version = "3.1.4";
-
sha256 = "1rya2775prm8ss0rz6izsqqcz96gcf1rh0bpcvnfy1mwi04rx8bl";
+
version = "3.1.19";
+
sha256 = "1ksi2h3904932igh1g27l91fqdsfxg8zr6y82ym8pqb62m0906a4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Hosting.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
-
version = "3.1.4";
-
sha256 = "0smcpaqm7d95flr0k7i2psrsfvs48lv28kzqgnllv5229hhb670d";
+
version = "3.1.19";
+
sha256 = "0sm7cpccpygwgplbkp0j1q5ilkkiw0dx76qwy3xharv4himakrfm";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.JsonPatch";
-
version = "3.1.1";
-
sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+
version = "3.1.19";
+
sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
-
version = "3.1.1";
-
sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+
version = "3.1.19";
+
sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
-
version = "3.1.1";
-
sha256 = "1iydcr7rfzg3kqky0x70853g6lbzsl9ja9cv8ph6iwpqxnswgdkh";
+
version = "3.1.19";
+
sha256 = "1n22q10n9xlhcjxsm1apd0b7j3j97dd5jmpw6nvymwbv2bw88af4";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
-
version = "3.1.1";
-
sha256 = "1q1bblcj9l2dnz46frygsfq7w4v08l96clgryh78wyws83xjm43y";
+
version = "3.1.19";
+
sha256 = "1glmlgrwksv0h8g41wy43wv94ndllq4ihxhdaagig9szvivdh8c1";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Razor.Language";
-
version = "3.1.1";
-
sha256 = "0arqmy04dd0r4wm2fin66gxxwj2kirbgxyf3w7kq6f73lrnazhq0";
+
version = "3.1.19";
+
sha256 = "059v85f2qbj403wcnp5mspzvhkbf6d8hsjl26xvfd5s8svnaz4ax";
})
(fetchNuGet {
name = "Microsoft.Bcl.AsyncInterfaces";
···
})
(fetchNuGet {
name = "Microsoft.Bcl.HashCode";
-
version = "1.1.0";
-
sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
+
version = "1.1.1";
+
sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
···
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
-
version = "3.0.0";
-
sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+
version = "3.3.2";
+
sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
-
version = "3.3.0";
-
sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
+
version = "3.11.0";
+
sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
-
version = "3.6.0";
-
sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+
version = "3.3.0";
+
sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
-
version = "3.3.0";
-
sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
+
version = "3.11.0";
+
sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
-
version = "3.6.0";
-
sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
+
version = "3.3.0";
+
sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Razor";
-
version = "3.1.1";
-
sha256 = "03n5rli6v1kvghha82zar3dvvkbc2vb9g8zp5fjrzhvp4l74ingn";
+
version = "3.1.19";
+
sha256 = "18l0gcpl7i0bfnyzhpm7h72ng2h8bh46fr2azk7d3ns507gi3xmp";
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
-
version = "16.6.1";
-
sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+
version = "16.11.0";
+
sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
···
})
(fetchNuGet {
name = "Microsoft.Data.Sqlite.Core";
-
version = "3.1.4";
-
sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
+
version = "3.1.19";
+
sha256 = "0ns3rrk011gjw4g1kwr625390yj0mcadb3py49750sji72my7l7s";
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
···
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
-
version = "3.1.0";
-
sha256 = "1fg1zggza45pa8zlcf8llqh6v47fqi44azsia68kmsg2q9r1r4mq";
+
version = "3.1.6";
+
sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
})
(fetchNuGet {
-
name = "Microsoft.DotNet.PlatformAbstractions";
-
version = "3.1.4";
-
sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+
name = "Microsoft.EntityFrameworkCore.Abstractions";
+
version = "3.1.18";
+
sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
-
version = "3.1.4";
-
sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+
version = "3.1.19";
+
sha256 = "0na2jgxs5k2gxqh99ha4v0blya3pwh2qha49iz0qkw0r3kq0vdvv";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Analyzers";
-
version = "3.1.4";
-
sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
+
version = "3.1.19";
+
sha256 = "02xjz4c6f71mcmdwihi9klrqm28xk84x19vcqi8cgpw50q7d0rly";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Design";
-
version = "3.1.4";
-
sha256 = "10mxnbiw23ia4sln86sd3gn84yhmrb6r2kipzid4h1g15paal9gi";
+
version = "3.1.19";
+
sha256 = "128md0ijqa1wvpdicf09i7kcb2aq2b07skc6j0vddz2jhcbi0irr";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
-
version = "3.1.0";
-
sha256 = "0javqw6c27ppcysigjvcjcw3mk0gg1pv2pmwfpvvryr1pb4a9n55";
+
version = "3.1.18";
+
sha256 = "0mlq9gmxrmix68mdh0lv803cx15lzrhs5d9622vj8wwdlngg3xdx";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Relational";
-
version = "3.1.4";
-
sha256 = "1344rsavawwg69dx8xsl08hcs43lc6h7z4mn461dcx85rirlwd0v";
+
version = "3.1.19";
+
sha256 = "13rbnd441r4zb52y99zwida0n0phvvw7hmccjy2kpnk1jfrr8xi1";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
-
version = "3.1.4";
-
sha256 = "080qz0b52i7v5c1sgnqlh9px9881cfr1x06np66hdgmh0ni5c1lw";
+
version = "3.1.19";
+
sha256 = "1w8ja5daglnr3ycfwlyskrnacb66p8yz730k838v6bpmpsdybn71";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Sqlite";
-
version = "3.1.4";
-
sha256 = "009mcmakw0p7k8xrz920a8qc0rjv361awiz8jia5i5a8p5ihgkbx";
+
version = "3.1.19";
+
sha256 = "0iwwa44dr2lg9mh5hmnpnkzbhi5v3vi6xy3xlnqg4hja37ji0xyw";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore";
-
version = "3.1.4";
-
sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
+
version = "3.1.19";
+
sha256 = "0gl43zk7ashjx49h35w58cn7dfl1ap3nyq9ws8575jcjhcx3c94h";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
-
version = "3.1.4";
-
sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
+
version = "3.1.19";
+
sha256 = "1y1is16yl69ja67i9n98r44cr0z8b8f8k31d5ighi9djj4yhz4k2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Memory";
-
version = "3.1.4";
-
sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
+
version = "3.1.19";
+
sha256 = "1iysxrmchw5ripyrcfi4nv5a00b9a7agsgvbb7y9fwbfq838v3mp";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
-
version = "3.1.4";
-
sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
+
version = "3.1.19";
+
sha256 = "19s5dpswyad55p191280510sb8cr2b6zyx9zlx79p0lq4zaxwaq6";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
-
version = "3.1.4";
-
sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
+
version = "3.1.19";
+
sha256 = "0dw1qiyc8j7rk13x6wfm1xnc7drnlvk8xv607hja0af2m0y7a3p2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
-
version = "3.1.4";
-
sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
+
version = "3.1.19";
+
sha256 = "04zadl7q5vcak9d77jm5ivfzhhp2zvz5apywvfzrca4h0q38fs45";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
-
version = "3.1.4";
-
sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
+
version = "3.1.19";
+
sha256 = "0claq9nna6p30zbvd25bn1ild9f3x50d5fxfbq9fsp464rq70b2y";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection";
-
version = "3.1.4";
-
sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
+
version = "3.1.19";
+
sha256 = "0fsvv5jl95kmdxc4c7b15xanlq3fmfls556m8ghbqqikrgkqhz8m";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
-
version = "3.1.0";
-
sha256 = "12nrdw3q9wl5zry8gb3sw003a0iyk2gvps2ij813l7lim38wy1mi";
-
})
-
(fetchNuGet {
-
name = "Microsoft.Extensions.DependencyModel";
-
version = "3.1.1";
-
sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
+
version = "3.1.6";
+
sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
-
version = "3.1.4";
-
sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
+
version = "5.0.0";
+
sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
})
(fetchNuGet {
name = "Microsoft.Extensions.FileProviders.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Core";
-
version = "3.1.4";
-
sha256 = "0kyi03l9d7pnsvrcylc86fcxwnj59mhvmbz4c1d142f8djdrqfid";
+
version = "3.1.19";
+
sha256 = "14mywrm6mv7hzfappgdrmwwk97a4qpfkir5a55443awy8wl3bylr";
})
(fetchNuGet {
name = "Microsoft.Extensions.Identity.Stores";
-
version = "3.1.4";
-
sha256 = "0jb3syy0glyn4nnd7lb7aj412xnqyrwhfavh98rbc5adq9v09nbw";
+
version = "3.1.19";
+
sha256 = "0pkrhf1vffll986hh49gyvfdqn1vnjd0qnpfkag2b76d681xlvgg";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
-
version = "3.1.4";
-
sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
+
version = "3.1.19";
+
sha256 = "07jnqb6518xrw086rqlc28ms80d57xg0pl5x72032rk2x5x8hhnn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging";
-
version = "3.1.4";
-
sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
+
version = "3.1.19";
+
sha256 = "0j2874x847xa1nfbppjn10cnxd486f6lwy53mxmansvlmp96h2sn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options.ConfigurationExtensions";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
-
version = "3.1.4";
-
sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
+
version = "3.1.19";
+
sha256 = "1jm7rd2sbfscyfysvl8zcaypyzpd6d5w52ha2npa9c7q84cmn4r9";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
···
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
-
version = "3.1.4";
-
sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
+
version = "3.1.19";
+
sha256 = "0vcwwqqfwm5vj87psmic6mxix3prgkzw8sqbg5m1c2q662kby380";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
···
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
-
version = "16.6.1";
-
sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+
version = "16.11.0";
+
sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NetCore.Analyzers";
-
version = "2.9.8";
-
sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+
version = "3.3.2";
+
sha256 = "1h1bjiiw64qncs61p2idwxswv4kzq06bbl2rlghiagv6sbjk4pnq";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
···
})
(fetchNuGet {
name = "Microsoft.TestPlatform.ObjectModel";
-
version = "16.6.1";
-
sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+
version = "16.11.0";
+
sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
})
(fetchNuGet {
name = "Microsoft.TestPlatform.TestHost";
-
version = "16.6.1";
-
sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+
version = "16.11.0";
+
sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
})
(fetchNuGet {
name = "Microsoft.Win32.Primitives";
···
})
(fetchNuGet {
name = "MySqlConnector";
-
version = "0.61.0";
-
sha256 = "0b0mc41dsih4p1ky3kcmibsz4bw14w439nraq5732wjfkq2sqdxg";
+
version = "0.69.10";
+
sha256 = "159xir7czzz291cs0f2dsgmnhar41s4wglm5r5lw3kqpd50q3i9v";
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
-
version = "3.0.4";
-
sha256 = "03aia31sznw81jjr9k6dkwgvm9dc38fgp1z8y5i45vlkf5fp89pb";
+
version = "3.0.8";
+
sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
})
(fetchNuGet {
-
name = "NBitcoin";
-
version = "5.0.33";
-
sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+
name = "NBitcoin.Secp256k1";
+
version = "1.0.3";
+
sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.40";
sha256 = "1rqzn84yaww4afagwg8jg1l5qdkvqyjdfcyd5widddqwxabbsjvh";
+
})
+
(fetchNuGet {
+
name = "NBitcoin";
+
version = "5.0.54";
+
sha256 = "0mx2gr8j8bc4mf1vi1fvqj3672qalxvzvincc61if79p46cik24b";
+
})
+
(fetchNuGet {
+
name = "NBitcoin";
+
version = "6.0.15";
+
sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
})
(fetchNuGet {
name = "NBitcoin";
···
})
(fetchNuGet {
name = "NBXplorer.Client";
-
version = "4.1.0";
-
sha256 = "1al9j14k51ql7m6yd2w89xlnklj64jqjikq8wpl2vwi1zy2gxqrl";
+
version = "4.1.3";
+
sha256 = "1nh4jj7yg81825hr7cc99qlnfmdm6jibap81qqi8a968b61z4251";
})
(fetchNuGet {
name = "Nethereum.ABI";
-
version = "3.8.0";
-
sha256 = "10saq2qsqqgsf9d5cjji4lay74ydwkvkqgnns6gxikqicci8yx5c";
+
version = "4.1.0";
+
sha256 = "1mhg6mh7wkz93fq3pclkxjipcvzglnk70gr9s1cgr2ak84y3g5lr";
})
(fetchNuGet {
name = "Nethereum.Accounts";
-
version = "3.8.0";
-
sha256 = "03dq4l1gsd6r2hah5flas8d8pfys7hh5srd279kiidaaxrp8fv2m";
+
version = "4.1.0";
+
sha256 = "0wd4wa2d1dm4ni5l208bn7wi63m1whmbh4x6sfk8m4qh4dlh1bq0";
})
(fetchNuGet {
name = "Nethereum.BlockchainProcessing";
-
version = "3.8.0";
-
sha256 = "0sz6710a3rvzbj1ghx8dx9adfpsaydw8129c5nj2bqvvh6shi4ax";
+
version = "4.1.0";
+
sha256 = "1986y39mpd61s7kkkbcc9hcg7vwmp9mamhiiy9pzsnfgc2jna6c4";
})
(fetchNuGet {
name = "Nethereum.Contracts";
-
version = "3.8.0";
-
sha256 = "0989as81dqz4j0h8b5a9f5hnd4lrjdj851cfc4j5h6hd633a13f8";
+
version = "4.1.0";
+
sha256 = "07yj2fqx0p22aayhn7zjczq5xj55b2w48qar8j5q2klzl9q64iwc";
})
(fetchNuGet {
name = "Nethereum.HdWallet";
-
version = "3.8.0";
-
sha256 = "0dy1bcm0gsp137286q3bx5q9gyd8lymrdmnh1ip3sszs5j31l9k2";
+
version = "4.1.0";
+
sha256 = "052g15iqhkx94igvnv5qr8gxpvbi34c7avqn6j4i4p0yf6kwbwsi";
})
(fetchNuGet {
name = "Nethereum.Hex";
-
version = "3.8.0";
-
sha256 = "0sbi982jnfs39sp7w85wf8lb51mijpwr9mpsmws08zrm90n93kb6";
+
version = "4.1.0";
+
sha256 = "1bkmbfclbkr3336za7ii5vac7c4h2l1vd4bl3a15s54piwfgx44w";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.Client";
-
version = "3.8.0";
-
sha256 = "0gmdvsxhs398cj14f16r3dl8yv52iaxr9c9214k2ra28r14gfd1l";
+
version = "4.1.0";
+
sha256 = "1260pr9y83nrfqpgq37s91dbsxdfkvdh55x48554c33ldrqsqk4p";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.RpcClient";
-
version = "3.8.0";
-
sha256 = "05k5f0dfcx4afbkc1w7cfnz514i7840j2haxyzsxkp8818yvfg0a";
+
version = "4.1.0";
+
sha256 = "0jybgfzy4cj9jx1djjc66vpk9sg88dymy5jrcrply3y6bq85arq3";
})
(fetchNuGet {
name = "Nethereum.KeyStore";
-
version = "3.8.0";
-
sha256 = "05pj95vcfznlk4saq9dw19377gd1sqgmjcg5h92b5rzpgm9v811s";
+
version = "4.1.0";
+
sha256 = "16xffhfx7k9rfb5kr717cpbircj66gazbkbbwvf5hss3v9a6imzz";
})
(fetchNuGet {
name = "Nethereum.Model";
-
version = "3.8.0";
-
sha256 = "1qfhzqirj9bi49zb6rdcy7w5bm9jyv3a79q7crmgpq3qx4lmz5yh";
+
version = "4.1.0";
+
sha256 = "03aaizfpjvbf367mprni2ixlyfvz7ic8cn1cfmjk1n3f3q63qbqh";
})
(fetchNuGet {
name = "Nethereum.RLP";
-
version = "3.8.0";
-
sha256 = "16142ag09h95394ip0ffkci09hchxh2i5xaw2rq46qcr8xd3kiym";
+
version = "4.1.0";
+
sha256 = "19ixlvv91s0xhn3bvwn0yydd5932vcylin037dv4wzgbk2v0vdpm";
})
(fetchNuGet {
name = "Nethereum.RPC";
-
version = "3.8.0";
-
sha256 = "1m2p10dds1k0r3gci25lh6cxl9z7ciw18g6wwa4yqi1hsw7n59vb";
+
version = "4.1.0";
+
sha256 = "0ivvic38wpay9ry1hp4n88bgglnxcd8id7p5h235ilviq2gxgmmb";
})
(fetchNuGet {
name = "Nethereum.Signer";
-
version = "3.8.0";
-
sha256 = "175acfqjqacc5zwh2kmrfnwd15jm3fjpv0xlgpyqry52mqxd9khf";
+
version = "4.1.0";
+
sha256 = "1lgyb80l7xwhp4jbfbba0d47p7nxhx0lac08k23nzwnqmg95y4n6";
})
(fetchNuGet {
name = "Nethereum.StandardTokenEIP20";
-
version = "3.8.0";
-
sha256 = "0xqb32x5b9y9r380frhj52i1lxsfs92nfgcpmys3shjxz6fnwf6g";
+
version = "4.1.0";
+
sha256 = "1i08kpa6knrm3jbhxgfaa2ing5w42j3jsdx72hl6a9xcjdkjr405";
})
(fetchNuGet {
name = "Nethereum.Util";
-
version = "3.8.0";
-
sha256 = "1ig1zkzpglq2q465n4c0ckv8w9gca9cfxz1qnrdhap0f1z90jyg8";
+
version = "4.1.0";
+
sha256 = "1fp7ii6ic13d1s8n6l63f1kyb03s04fghhfm7sshvk6bhjlynfqw";
})
(fetchNuGet {
name = "Nethereum.Web3";
-
version = "3.8.0";
-
sha256 = "0n18chc9h1cxqp01kncik9lqfgiqrzl2zr8jgzbb05drlf6k0f3i";
+
version = "4.1.0";
+
sha256 = "1b8myc9wr44vf7kcl9rmhc8zimpfda3mmizhiq1x287xs44nam0b";
})
(fetchNuGet {
name = "NETStandard.Library";
···
sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
})
(fetchNuGet {
+
name = "NETStandard.Library";
+
version = "2.0.3";
+
sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+
})
+
(fetchNuGet {
name = "Newtonsoft.Json.Bson";
version = "1.0.1";
sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa";
···
})
(fetchNuGet {
name = "Newtonsoft.Json.Schema";
-
version = "3.0.13";
-
sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
+
version = "3.0.14";
+
sha256 = "1njk1arrf8pbx0i0p3yww459i70p0fcx02vs0jnbb6znvcy4mvh6";
})
(fetchNuGet {
name = "Newtonsoft.Json";
···
})
(fetchNuGet {
name = "Newtonsoft.Json";
-
version = "12.0.2";
-
sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+
version = "12.0.3";
+
sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
})
(fetchNuGet {
name = "Newtonsoft.Json";
-
version = "12.0.3";
-
sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+
version = "13.0.1";
+
sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb";
})
(fetchNuGet {
name = "Newtonsoft.Json";
···
})
(fetchNuGet {
name = "Npgsql.EntityFrameworkCore.PostgreSQL";
-
version = "3.1.4";
-
sha256 = "1ng9pbamh93g0fbnjq8ygaf40d6rs0fy4s08bjmxpa69k3s8c7a4";
+
version = "3.1.18";
+
sha256 = "0yjrp87m0kj8bzybszxnj7n1h21zag3rqpva74xzvm78gz1asc04";
})
(fetchNuGet {
name = "Npgsql";
-
version = "4.1.3.1";
-
sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
+
version = "4.1.9";
+
sha256 = "1b9qp3cjwydd4g1yy8nxxr0b0nwdbijmcmzjpkb9r13ndgdrd8nq";
})
(fetchNuGet {
name = "NSec.Cryptography";
···
})
(fetchNuGet {
name = "Pomelo.EntityFrameworkCore.MySql";
-
version = "3.1.1";
-
sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
+
version = "3.2.7";
+
sha256 = "018za1ax17ibxld9rk2nc29716qpn2afh1prfrdjchf5cp56ba2p";
})
(fetchNuGet {
name = "Pomelo.JsonObject";
···
})
(fetchNuGet {
name = "Selenium.WebDriver.ChromeDriver";
-
version = "90.0.4430.2400";
-
sha256 = "18gjm92nzzvxf0hk7c0nnabs0vmh6yyzq3m4si7p21m6xa3bqiga";
+
version = "94.0.4606.6100";
+
sha256 = "04kn91qcgsx92yhcqlhpm1yy3m34m371k70szf8h93gcwfs42b9c";
})
(fetchNuGet {
name = "Selenium.WebDriver";
···
name = "System.Collections.Immutable";
version = "1.7.1";
sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+
})
+
(fetchNuGet {
+
name = "System.Collections.Immutable";
+
version = "5.0.0";
+
sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
})
(fetchNuGet {
name = "System.Collections.NonGeneric";
···
})
(fetchNuGet {
name = "System.IO.Pipelines";
-
version = "4.7.2";
-
sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+
version = "4.7.4";
+
sha256 = "09gv2nz35vmmcjrfj1ppxx32v772i0mb369v7lwqr8mz14zhh86r";
})
(fetchNuGet {
name = "System.IO";
···
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
})
(fetchNuGet {
+
name = "System.Reflection.Metadata";
+
version = "5.0.0";
+
sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss";
+
})
+
(fetchNuGet {
name = "System.Reflection.Primitives";
version = "4.0.1";
sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
···
name = "System.Runtime.CompilerServices.Unsafe";
version = "4.7.0";
sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
+
})
+
(fetchNuGet {
+
name = "System.Runtime.CompilerServices.Unsafe";
+
version = "5.0.0";
+
sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x";
})
(fetchNuGet {
name = "System.Runtime.Extensions";
···
sha256 = "05qp3yivh6gz0vva0v3wjlj3g1b45d5jmz362f2y8ah6yb3rx088";
})
(fetchNuGet {
-
name = "System.Text.Json";
-
version = "4.7.0";
-
sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr";
+
name = "System.Text.Encodings.Web";
+
version = "5.0.0";
+
sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1";
})
(fetchNuGet {
name = "System.Text.Json";
version = "4.7.2";
sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4";
+
})
+
(fetchNuGet {
+
name = "System.Text.Json";
+
version = "5.0.0";
+
sha256 = "1gpgl18z6qrgmqrikgh99xkjwzb1didrjp77bch7nrlra21gr4ks";
})
(fetchNuGet {
name = "System.Text.RegularExpressions";
···
name = "System.Threading.Tasks.Extensions";
version = "4.5.3";
sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
+
})
+
(fetchNuGet {
+
name = "System.Threading.Tasks.Extensions";
+
version = "4.5.4";
+
sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
})
(fetchNuGet {
name = "System.Threading.Tasks";
+2 -2
pkgs/applications/blockchains/nbxplorer/default.nix
···
buildDotnetModule rec {
pname = "nbxplorer";
-
version = "2.2.11";
+
version = "2.2.16";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
-
sha256 = "sha256-ZDqzkANGMdvv3e5gWCYcacUYKLJRquXRHLr8RAzT9hY=";
+
sha256 = "sha256-6nq5oCEVADZbzQJaEizzt6Lag11bZYLKGMTl2snZob8=";
};
projectFile = "NBXplorer/NBXplorer.csproj";
+27 -22
pkgs/applications/blockchains/nbxplorer/deps.nix
···
})
(fetchNuGet {
name = "Microsoft.AspNetCore.JsonPatch";
-
version = "3.1.5";
-
sha256 = "0agcp9c8zf59bliybjfg5whby7k1i1xc4sccyyyj3qcx1snf6lfx";
+
version = "3.1.19";
+
sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
})
(fetchNuGet {
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
-
version = "3.1.5";
-
sha256 = "1n76xr3jn4bcxm9f3lk8k76zn39mhyqcj5b0dqhi2xykyvvrqjgc";
+
version = "3.1.19";
+
sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
})
(fetchNuGet {
name = "Microsoft.Azure.Amqp";
-
version = "2.4.2";
-
sha256 = "0pfgl6fnw3apwasfg1dp5pvi5h0z0vmznhn2bfsgwndn1xlfw1g9";
+
version = "2.4.9";
+
sha256 = "15kvklhfl17713kwin8p71lcxq2jx87bk1d8gsl597z3w6l4cqma";
})
(fetchNuGet {
name = "Microsoft.Azure.ServiceBus";
-
version = "4.1.3";
-
sha256 = "1mj21nal3hv8b5678rah808521c5rkb0yh6hrlqirsdgxwnl6z6g";
+
version = "4.2.1";
+
sha256 = "0akxqds078p7djd5g95i9dh4wrlfarabkq2ybn614cqdgl4z0is5";
})
(fetchNuGet {
name = "Microsoft.Azure.Services.AppAuthentication";
···
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
-
version = "16.7.1";
-
sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
+
version = "16.11.0";
+
sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
···
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
-
version = "16.7.1";
-
sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
+
version = "16.11.0";
+
sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
···
})
(fetchNuGet {
name = "Microsoft.TestPlatform.ObjectModel";
-
version = "16.7.1";
-
sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
+
version = "16.11.0";
+
sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
})
(fetchNuGet {
name = "Microsoft.TestPlatform.TestHost";
-
version = "16.7.1";
-
sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
+
version = "16.11.0";
+
sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
})
(fetchNuGet {
name = "Microsoft.Win32.Primitives";
···
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
-
version = "3.0.7";
-
sha256 = "0nrkdbsc4k9fd4588axnkfa9gmif9b59wxw8fnmpg0nf4x8scm4n";
+
version = "3.0.8";
+
sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
})
(fetchNuGet {
name = "NBitcoin.TestFramework";
-
version = "3.0.5";
-
sha256 = "09cgjzbkxvsi65qzns0ignp0x89z630vqacsgwj3b1h30dycwqdr";
+
version = "3.0.6";
+
sha256 = "0yw382238rjv0qmhz1xlb5v696s8sxbjf839c2ck6dqd947q403w";
})
(fetchNuGet {
name = "NBitcoin";
-
version = "6.0.10";
-
sha256 = "00m0j74pqyjqal1wc28j6734rfd9zd7ajqb1p3fsdpqr16kfg56s";
+
version = "6.0.15";
+
sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
})
(fetchNuGet {
name = "NETStandard.Library";
···
name = "System.Reflection.Extensions";
version = "4.3.0";
sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+
})
+
(fetchNuGet {
+
name = "System.Reflection.Metadata";
+
version = "1.6.0";
+
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
})
(fetchNuGet {
name = "System.Reflection.Primitives";
+4 -4
pkgs/applications/editors/android-studio/default.nix
···
sha256Hash = "10gpwb130bzp6a9g958cjqcb2gsm0vdgm08nm5xy45xdh54nxjfg";
};
betaVersion = {
-
version = "2021.1.1.14"; # "Android Studio Bumblebee (2021.1.1) Beta 1"
-
sha256Hash = "1j1fxl4vzq3bln2z9ycxn9imjgy55yd1nbl7ycmsi90bdp96pzj0";
+
version = "2021.1.1.15"; # "Android Studio Bumblebee (2021.1.1) Beta 2"
+
sha256Hash = "sha256-J+Jw9F8pEE0SMWka//jADOiQ+GSOeRf5GBfp0RDtwqA=";
};
latestVersion = { # canary & dev
-
version = "2021.2.1.2"; # "Android Studio Chipmunk (2021.2.1) Canary 2"
-
sha256Hash = "0xvn9zgn4cc9lhjynhiavmvx8bdzg4kcllmhg7xv18kp6wz4lh6z";
+
version = "2021.2.1.3"; # "Android Studio Chipmunk (2021.2.1) Canary 3"
+
sha256Hash = "sha256-xIVdM28NDadvJklDIw71iJ7Z5GPVJ1ZDJ+t1y+bt8cE=";
};
in {
# Attributes are named by their corresponding release channels
+2 -2
pkgs/applications/graphics/ImageMagick/7.0.nix
···
stdenv.mkDerivation rec {
pname = "imagemagick";
-
version = "7.1.0-11";
+
version = "7.1.0-13";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
-
sha256 = "sha256-z7ZpoB8NlcS5NVyoW0ngSlakCcb5qC3bh3xDVYuWS6w=";
+
sha256 = "sha256-W/XqgYOlSailHQdNBYsvf2P9go9sblWayDLrQQlekro=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
+2 -2
pkgs/applications/networking/mpop/default.nix
···
stdenv.mkDerivation rec {
pname = "mpop";
-
version = "1.4.15";
+
version = "1.4.16";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-
sha256 = "sha256-P1KytdS8WO2TzwsRRs7k903oHCwHol7gMu+mWUZaAnA=";
+
sha256 = "sha256-hw61cerm0j+5KtDITXnenDjF9iTjYUk31XS/5Jumh/k=";
};
nativeBuildInputs = [
+2 -2
pkgs/applications/networking/msmtp/default.nix
···
in stdenv.mkDerivation rec {
pname = "msmtp";
-
version = "1.8.17";
+
version = "1.8.18";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-
sha256 = "sha256-D92+dMGp3PZGG0obDbPk00JmGEUAxAPX8QetQttOxNM=";
+
sha256 = "sha256-FPxirzfr3MXtGaJFoF64N27+cBYRjwDJxZS8mZ1VYKU=";
};
patches = [
+3
pkgs/applications/terminal-emulators/kitty/default.nix
···
else "linux-package/bin";
in
''
+
# Fontconfig error: Cannot load default config file: No such file: (null)
+
export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+
env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
'';
+3 -3
pkgs/applications/window-managers/leftwm/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "leftwm";
-
version = "0.2.8";
+
version = "0.2.9";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm";
rev = version;
-
sha256 = "sha256-T4A9NGT6sUSTKmLcAWjcp3Y8QQzZFAVSXevXtGm3szY=";
+
sha256 = "sha256:0w4afhrp2cxz0nmpvalyaxz1dpywajjj2wschw8dpkvgxqs64gd5";
};
-
cargoSha256 = "sha256-2prRtdBxpYc2xI/bLZNlqs3mxESfO9GhNUSlKFF//eE=";
+
cargoSha256 = "sha256:0r0smpv50gim2naaa0qf6yhvqvsa2f40rkgiryi686y69m5ii7mv";
buildInputs = rpathLibs;
+8 -2
pkgs/development/libraries/draco/default.nix
···
}:
stdenv.mkDerivation rec {
-
version = "1.4.1";
+
version = "1.4.3";
pname = "draco";
src = fetchFromGitHub {
owner = "google";
repo = "draco";
rev = version;
-
sha256 = "14ln4la52x38pf8syr7i5v4vd65ya4zij8zj5kgihah03cih0qcd";
+
sha256 = "sha256-eSu6tkWbRHzJkWwPgljaScAuL0gRkp8PJUHWC8mUvOw=";
};
nativeBuildInputs = [ cmake ];
···
"-DBUILD_UNITY_PLUGIN=1"
];
+
+
# Upstream mistakenly installs to /nix/store/.../nix/store/.../*, work around that
+
postInstall = ''
+
mv $out/nix/store/*/* $out
+
rm -rf $out/nix
+
'';
meta = with lib; {
description = "Library for compressing and decompressing 3D geometric meshes and point clouds";
+4 -4
pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
···
diff --git a/meson_options.txt b/meson_options.txt
-
index 66791f3a..93b5e2a9 100644
+
index 71c2e35e9..a0f380c04 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-
@@ -172,6 +172,9 @@ option('udev',
+
@@ -176,6 +176,9 @@ option('udev',
option('udevrulesdir',
type : 'string',
description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
···
type : 'string',
description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)')
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-
index aa30a86f..1edebb2d 100644
+
index 5bd134537..5a3ca9ed5 100644
--- a/src/daemon/systemd/user/meson.build
+++ b/src/daemon/systemd/user/meson.build
@@ -9,7 +9,7 @@ install_data(
···
systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse')
+systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
-
systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
configure_file(input : 'pipewire.service.in',
+
output : 'pipewire.service',
-24
pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
···
-
diff --git a/meson_options.txt b/meson_options.txt
-
index 93b5e2a9..1b915ac3 100644
-
--- a/meson_options.txt
-
+++ b/meson_options.txt
-
@@ -200,3 +200,6 @@ option('media-session',
-
type: 'feature',
-
value: 'auto')
-
+option('media-session-prefix',
-
+ description: 'Install directory for pipewire-media-session and its support files',
-
+ type: 'string')
-
option('session-managers',
-
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-
index 1edebb2d..251270eb 100644
-
--- a/src/daemon/systemd/user/meson.build
-
+++ b/src/daemon/systemd/user/meson.build
-
@@ -10,7 +10,7 @@ install_data(
-
systemd_config = configuration_data()
-
systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
-
systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
-
-systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
-
+systemd_config.set('PW_MEDIA_SESSION_BINARY', get_option('media-session-prefix') / 'bin/pipewire-media-session')
-
-
configure_file(input : 'pipewire.service.in',
-
output : 'pipewire.service',
+19 -38
pkgs/development/libraries/pipewire/default.nix
···
self = stdenv.mkDerivation rec {
pname = "pipewire";
-
version = "0.3.38";
+
version = "0.3.39";
outputs = [
"out"
···
"dev"
"doc"
"man"
-
"mediaSession"
"installedTests"
];
···
owner = "pipewire";
repo = "pipewire";
rev = version;
-
sha256 = "sha256-QENz4MVyKuPJynA+NBdmKa6g1GrcRg9vzXLJ1/i3VJU=";
+
sha256 = "sha256-peTS1+NuQxZg1rrv8DrnJW5BR9yReleqooIwhZWHLjM=";
};
patches = [
···
./0040-alsa-profiles-use-libdir.patch
# Change the path of the pipewire-pulse binary in the service definition.
./0050-pipewire-pulse-path.patch
-
# Change the path of the pipewire-media-session binary in the service definition.
-
./0055-pipewire-media-session-path.patch
# Move installed tests into their own output.
./0070-installed-tests-path.patch
# Add option for changing the config install directory
···
./0090-pipewire-config-template-paths.patch
# Place SPA data files in lib output to avoid dependency cycles
./0095-spa-data-dir.patch
-
# Fix compilation on AArch64
+
# Fix compilation on some architectures
# XXX: REMOVE ON NEXT RELEASE
(fetchpatch {
-
url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f8817b439433798bd7217dc4ae72197887b0fc96.diff";
-
sha256 = "0j4xds01h20mc606xp90h5v56kf17hf7n06k0xfa9qmmmfrh7i04";
+
url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/651f0decea5f83730c271e9bed03cdd0048fcd49.diff";
+
sha256 = "1bmpi5qn750mcspaw7m57ww0503sl9781jswqby4gr0f7c5wmqvj";
})
];
···
"-Dinstalled_tests=enabled"
"-Dinstalled_test_prefix=${placeholder "installedTests"}"
"-Dpipewire_pulse_prefix=${placeholder "pulse"}"
-
"-Dmedia-session-prefix=${placeholder "mediaSession"}"
"-Dlibjack-path=${placeholder "jack"}/lib"
"-Dlibcamera=${mesonEnable libcameraSupport}"
"-Droc=disabled"
···
"-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}"
"-Dsysconfdir=/etc"
"-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire"
-
"-Dsession-managers=${mesonList (lib.optional withMediaSession "media-session")}"
+
"-Dsession-managers="
+
"-Dvulkan=enabled"
];
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
···
postUnpack = ''
patchShebangs source/doc/strip-static.sh
+
patchShebangs source/doc/input-filter.sh
+
patchShebangs source/doc/input-filter-h.sh
patchShebangs source/spa/tests/gen-cpp-test.py
'';
postInstall = ''
-
pushd $lib/share
-
mkdir -p $out/nix-support/etc/pipewire
-
for f in pipewire/*.conf; do
+
mkdir $out/nix-support
+
pushd $lib/share/pipewire
+
for f in *.conf; do
echo "Generating JSON from $f"
-
$out/bin/spa-json-dump "$f" > "$out/nix-support/etc/$f.json"
-
done
-
-
mkdir -p $mediaSession/nix-support/etc/pipewire/media-session.d
-
for f in pipewire/media-session.d/*.conf; do
-
echo "Generating JSON from $f"
-
$out/bin/spa-json-dump "$f" > "$mediaSession/nix-support/etc/$f.json"
+
$out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json"
done
popd
-
moveToOutput "share/pipewire/media-session.d/*.conf" "$mediaSession"
-
moveToOutput "share/systemd/user/pipewire-media-session.*" "$mediaSession"
-
moveToOutput "lib/systemd/user/pipewire-media-session.*" "$mediaSession"
-
moveToOutput "bin/pipewire-media-session" "$mediaSession"
-
moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
moveToOutput "bin/pipewire-pulse" "$pulse"
···
installedTests = nixosTests.installed-tests.pipewire;
# This ensures that all the paths used by the NixOS module are found.
-
test-paths = callPackage ./test-paths.nix {
+
test-paths = callPackage ./test-paths.nix { package = self; } {
paths-out = [
"share/alsa/alsa.conf.d/50-pipewire.conf"
-
"nix-support/etc/pipewire/client-rt.conf.json"
-
"nix-support/etc/pipewire/client.conf.json"
-
"nix-support/etc/pipewire/jack.conf.json"
-
"nix-support/etc/pipewire/pipewire.conf.json"
-
"nix-support/etc/pipewire/pipewire-pulse.conf.json"
-
];
-
paths-out-media-session = [
-
"nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
-
"nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
-
"nix-support/etc/pipewire/media-session.d/bluez-hardware.conf.json"
-
"nix-support/etc/pipewire/media-session.d/media-session.conf.json"
-
"nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
+
"nix-support/client-rt.conf.json"
+
"nix-support/client.conf.json"
+
"nix-support/jack.conf.json"
+
"nix-support/pipewire.conf.json"
+
"nix-support/pipewire-pulse.conf.json"
];
paths-lib = [
"lib/alsa-lib/libasound_module_pcm_pipewire.so"
+93
pkgs/development/libraries/pipewire/media-session.nix
···
+
{ stdenv
+
, lib
+
, fetchFromGitLab
+
, meson
+
, ninja
+
, pkg-config
+
, doxygen
+
, graphviz
+
, systemd
+
, pipewire
+
, glib
+
, dbus
+
, alsa-lib
+
, callPackage
+
}:
+
+
let
+
mesonEnable = b: if b then "enabled" else "disabled";
+
mesonList = l: "[" + lib.concatStringsSep "," l + "]";
+
+
self = stdenv.mkDerivation rec {
+
pname = "pipewire-media-session";
+
version = "0.4.0";
+
+
src = fetchFromGitLab {
+
domain = "gitlab.freedesktop.org";
+
owner = "pipewire";
+
repo = "media-session";
+
rev = version;
+
sha256 = "sha256-zhOvBlG7DuQkJ+ZZBhBhfKwk+bbLljpt3w4JlK3cJLk=";
+
};
+
+
nativeBuildInputs = [
+
doxygen
+
graphviz
+
meson
+
ninja
+
pkg-config
+
];
+
+
buildInputs = [
+
alsa-lib
+
dbus
+
glib
+
pipewire
+
systemd
+
];
+
+
mesonFlags = [
+
"-Ddocs=enabled"
+
# We generate these empty files from the nixos module, don't bother installing them
+
"-Dwith-module-sets=[]"
+
];
+
+
postUnpack = ''
+
patchShebangs source/doc/input-filter-h.sh
+
patchShebangs source/doc/input-filter.sh
+
'';
+
+
postInstall = ''
+
mkdir $out/nix-support
+
cd $out/share/pipewire/media-session.d
+
for f in *.conf; do
+
echo "Generating JSON from $f"
+
${pipewire}/bin/spa-json-dump "$f" > "$out/nix-support/$f.json"
+
done
+
'';
+
+
passthru = {
+
tests = {
+
test-paths = callPackage ./test-paths.nix { package = self; } {
+
paths-out = [
+
"nix-support/alsa-monitor.conf.json"
+
"nix-support/bluez-monitor.conf.json"
+
"nix-support/media-session.conf.json"
+
"nix-support/v4l2-monitor.conf.json"
+
];
+
paths-lib = [];
+
};
+
};
+
};
+
+
meta = with lib; {
+
description = "Example session manager for PipeWire";
+
homepage = "https://pipewire.org";
+
license = licenses.mit;
+
platforms = platforms.linux;
+
maintainers = with maintainers; [ jtojnar kranzes ];
+
};
+
};
+
+
in
+
self
+3 -4
pkgs/development/libraries/pipewire/test-paths.nix
···
-
{ lib, runCommand, pipewire, paths-out, paths-lib, paths-out-media-session }:
+
{ lib, runCommand, package, paths-out, paths-lib }:
let
check-path = output: path: ''
···
in runCommand "pipewire-test-paths" { } ''
touch $out
-
${check-output pipewire.mediaSession paths-out-media-session}
-
${check-output pipewire.lib paths-lib}
-
${check-output pipewire paths-out}
+
${check-output package.lib paths-lib}
+
${check-output package paths-out}
if [[ -n "$error" ]]; then
exit 1
+17 -4
pkgs/development/libraries/pipewire/update.sh
···
cd "$NIXPKGS_ROOT"
nix-update pipewire
-
outputs=$(nix-build . -A pipewire -A pipewire.mediaSession)
+
outputs=$(nix-build . -A pipewire)
+
for p in $outputs; do
+
conf_files=$(find "$p/nix-support/" -name '*.conf.json')
+
for c in $conf_files; do
+
file_name=$(basename "$c")
+
if [[ ! -e "nixos/modules/services/desktops/pipewire/daemon/$file_name" ]]; then
+
echo "New file $file_name found! Add it to the module config and passthru tests!"
+
fi
+
install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/daemon/"
+
done
+
done
+
+
nix-update pipewire-media-session
+
outputs=$(nix-build . -A pipewire-media-session)
for p in $outputs; do
-
conf_files=$(find "$p/nix-support/etc/pipewire/" -name '*.conf.json')
+
conf_files=$(find "$p/nix-support/" -name '*.conf.json')
for c in $conf_files; do
file_name=$(basename "$c")
-
if [[ ! -e "nixos/modules/services/desktops/pipewire/$file_name" ]]; then
+
if [[ ! -e "nixos/modules/services/desktops/pipewire/media-session/$file_name" ]]; then
echo "New file $file_name found! Add it to the module config and passthru tests!"
fi
-
install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/"
+
install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/media-session/"
done
done
+3 -3
pkgs/development/libraries/spirv-headers/default.nix
···
stdenv.mkDerivation rec {
pname = "spirv-headers";
-
version = "1.5.3";
+
version = "unstable-2021-08-11";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Headers";
-
rev = version;
-
sha256 = "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj";
+
rev = "e71feddb3f17c5586ff7f4cfb5ed1258b800574b";
+
sha256 = "sha256-9m0EBcgdya+KCNJHC3x+YV2sXoSNToTcgDkpeKzId6U=";
};
nativeBuildInputs = [ cmake ];
+2 -2
pkgs/development/python-modules/jc/default.nix
···
buildPythonPackage rec {
pname = "jc";
-
version = "1.17.0";
+
version = "1.17.1";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "kellyjonbrazil";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-8GTRBoZuA/fsfVxCBpvNefWHuWLvN/L/BT31OFpslxA=";
+
sha256 = "sha256-ISggj6oOF0B7TKIQAlZtauRrDAWP88OOFezLJK6edjI=";
};
propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
+2 -6
pkgs/development/python-modules/pycangjie/default.nix
···
, cython
}:
-
let
-
rev = "361bb413203fd43bab624d98edf6f7d20ce6bfd3";
-
in
buildPythonPackage {
pname = "pycangjie";
-
version = "1.3_rev_${rev}";
+
version = "unstable-2015-05-03";
format = "other";
src = fetchFromGitHub {
owner = "Cangjians";
repo = "pycangjie";
-
inherit rev;
+
rev = "361bb413203fd43bab624d98edf6f7d20ce6bfd3";
sha256 = "sha256-sS0Demzm89WtEIN4Efz0OTsUQ/c3gIX+/koekQGOca4=";
};
-
nativeBuildInputs = [ pkg-config libtool autoconf automake cython ];
buildInputs = [ libcangjie sqlite ];
+3 -5
pkgs/development/python-modules/pyspotify/default.nix
···
, buildPythonPackage
, fetchFromGitHub
, cffi
-
, pkgs
+
, libspotify
}:
buildPythonPackage rec {
···
};
propagatedBuildInputs = [ cffi ];
-
buildInputs = [ pkgs.libspotify ];
+
buildInputs = [ libspotify ];
# python zip complains about old timestamps
preConfigure = ''
···
find "$out" -name _spotify.so -exec \
install_name_tool -change \
@loader_path/../Frameworks/libspotify.framework/libspotify \
-
${pkgs.libspotify}/lib/libspotify.dylib \
+
${libspotify}/lib/libspotify.dylib \
{} \;
'';
···
description = "A Python interface to Spotify’s online music streaming service";
license = licenses.unfree;
maintainers = with maintainers; [ lovek323 ];
-
platforms = platforms.unix;
};
-
}
+18 -4
pkgs/development/python-modules/upass/default.nix
···
}:
buildPythonPackage rec {
-
version = "0.1.4";
pname = "upass";
+
version = "0.2.1";
+
format = "setuptools";
src = fetchFromGitHub {
owner = "Kwpolska";
repo = "upass";
rev = "v${version}";
-
sha256 = "sha256-1y/OE8Gbc8bShEiLWg8w4J6icAcoldYQLI10WSQuO1Y=";
+
sha256 = "0bgplq07dmlld3lp6jag1w055glqislfgwwq2k7cb2bzjgvysdnj";
};
-
propagatedBuildInputs = [ pyperclip urwid ];
+
propagatedBuildInputs = [
+
pyperclip
+
urwid
+
];
+
# Projec thas no tests
doCheck = false;
+
postInstall = ''
+
export HOME=$(mktemp -d);
+
mkdir $HOME/.config
+
'';
+
+
pythonImportsCheck = [
+
"upass"
+
];
+
meta = with lib; {
description = "Console UI for pass";
homepage = "https://github.com/Kwpolska/upass";
license = licenses.bsd3;
+
maintainers = with maintainers; [ ];
};
-
}
+1 -1
pkgs/development/tools/ocaml/ocaml-top/default.nix
···
src = fetchFromGitHub {
owner = "OCamlPro";
repo = "ocaml-top";
-
rev = "1.2.0-rc";
+
rev = version;
sha256 = "sha256-ZXnPnPvJmHshkTwYWeBojrgJYAF/R6vUo0XkvVMFSeQ=";
};
+2 -2
pkgs/development/tools/scalafmt/default.nix
···
let
baseName = "scalafmt";
-
version = "3.0.0";
+
version = "3.0.8";
deps = stdenv.mkDerivation {
name = "${baseName}-deps-${version}";
buildCommand = ''
···
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
-
outputHash = "fZVOyxswtDtCDDGmGzKbRnM5MVncKaicRKyEdPiXOr8=";
+
outputHash = "VBU6Jg6Sq3RBy0ym5YbjLjvcfx/85f6wNMmkGVV0W88=";
};
in
stdenv.mkDerivation {
+2 -2
pkgs/development/tools/spirv-tools/default.nix
···
stdenv.mkDerivation rec {
pname = "spirv-tools";
# Update spirv-headers rev in lockstep according to DEPs file
-
version = "2020.2";
+
version = "2021.3";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Tools";
rev = "v${version}";
-
sha256 = "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6";
+
sha256 = "sha256-skpsxpgl6hR5uiKfphKFQJfh+LJvhGvDW/t2u5AhXzk=";
};
nativeBuildInputs = [ cmake python3 ];
+6
pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
···
yarnFlags = defaultYarnFlags ++ ["--production=true"];
+
nativeBuildInputs = [ pkgs.makeWrapper ];
+
buildPhase = ''
source ${./nix/expectShFunctions.sh}
···
# check devDependencies are not installed
expectFileOrDirAbsent ./node_modules/.bin/eslint
expectFileOrDirAbsent ./node_modules/eslint/package.json
+
'';
+
+
postInstall = ''
+
wrapProgram $out/bin/yarn2nix --prefix PATH : "${pkgs.nix-prefetch-git}/bin"
'';
};
+1 -1
pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/fixPkgAddMissingSha1.js
···
const [url, sha1] = pkg.resolved.split('#', 2)
-
if (sha1) {
+
if (sha1 || url.startsWith('https://codeload.github.com')) {
return pkg
}
+33
pkgs/misc/cups/drivers/kyocera-ecosys-m2x35-40-p2x35-40dnw/default.nix
···
+
{ stdenv
+
, lib
+
, fetchzip
+
# can either be "EU" or "Global"; it's unclear what the difference is
+
, region ? "Global"
+
# can be either "English", "French", "German", "Italian", "Portguese" or "Spanish"
+
, language ? "English"
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "cups-kyocera-ecosys-m2x35-40-p2x35-40dnw";
+
version = "8.1606";
+
+
src = let
+
urlVersion = builtins.replaceStrings [ "." ] [ "_" ] version;
+
in fetchzip {
+
url = "https://www.kyoceradocumentsolutions.de/content/download-center/de/drivers/all/Linux_${urlVersion}_ECOSYS_M2x35_40_P2x35_40dnw_zip.download.zip";
+
sha256 = "10crxdfj62ini70vv471445zi6q0l9fmg2jsd74sp6fr0qa0kvr7";
+
};
+
+
installPhase = ''
+
mkdir -p $out/share/cups/model/Kyocera
+
cp ${region}/${language}/*.PPD $out/share/cups/model/Kyocera/
+
'';
+
+
meta = with lib; {
+
description = "PPD files for Kyocera ECOSYS M2040dn/M2135dn/M2540dn/M2540dw/M2635dn/M2635dw/M2640idw/M2735dw/P2040dn/M2040dw/P2235dn/P2235dw";
+
homepage = "https://www.kyoceradocumentsolutions.com";
+
license = licenses.unfree;
+
maintainers = with maintainers; [ hexa ];
+
platforms = platforms.linux;
+
};
+
}
+1 -1
pkgs/servers/ttyd/default.nix
···
homepage = "https://github.com/tsl0922/ttyd";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.thoughtpolice ];
-
platforms = lib.platforms.linux;
+
platforms = lib.platforms.all;
};
}
+11 -9
pkgs/tools/graphics/goverlay/default.nix
···
, fetchFromGitHub
, fpc
, lazarus-qt
-
, qt5
+
, wrapQtAppsHook
+
, libGL
+
, libGLU
+
, libqt5pas
, libX11
-
, libqt5pas
, coreutils
, git
, gnugrep
, libnotify
-
, mesa-demos
, polkit
, procps
, systemd
···
'';
in stdenv.mkDerivation rec {
pname = "goverlay";
-
version = "0.6";
+
version = "0.6.3";
src = fetchFromGitHub {
owner = "benjamimgois";
repo = pname;
rev = version;
-
hash = "sha256-E4SMUL9rpDSSdprX4fPyGCHCowdQavjhGIhV3r4jeiw=";
+
hash = "sha256-ZksQse0xWAtH+U6EjcGWT2BOG5dfSnm6XvZLLE5ynHs=";
};
outputs = [ "out" "man" ];
···
nativeBuildInputs = [
fpc
lazarus-qt
-
qt5.wrapQtAppsHook
+
wrapQtAppsHook
];
buildInputs = [
-
libX11
+
libGL
+
libGLU
libqt5pas
+
libX11
];
-
NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
NIX_LDFLAGS = "-lGLU -rpath ${lib.makeLibraryPath buildInputs}";
buildPhase = ''
runHook preBuild
···
git
gnugrep
libnotify
-
mesa-demos
polkit
procps
systemd
+5 -5
pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
···
diff --git a/overlayunit.pas b/overlayunit.pas
-
index de8725f..005f171 100644
+
index a56cea7..9a4f547 100644
--- a/overlayunit.pas
+++ b/overlayunit.pas
-
@@ -5377,7 +5377,7 @@ begin
+
@@ -4880,7 +4880,7 @@ begin
//Determine Mangohud dependency status
//locate MangoHud and store result in tmp folder
···
// Assign Text file dependency_mangohud to variable mangohudVAR
AssignFile(mangohudVAR, '/tmp/goverlay/dependency_mangohud');
-
@@ -5386,7 +5386,7 @@ begin
+
@@ -4889,7 +4889,7 @@ begin
CloseFile(mangohudVAR);
// Read String and store value on mangohuddependencyVALUE based on result
···
mangohuddependencyVALUE := 1
else
mangohuddependencyVALUE := 0;
-
@@ -5395,7 +5395,7 @@ begin
+
@@ -4898,7 +4898,7 @@ begin
//Determine vkBasalt dependency staus
//locate vkBasalt and store result in tmp folder
···
// Assign Text file dependency_mangohud to variable mangohudVAR
AssignFile(vkbasaltVAR, '/tmp/goverlay/dependency_vkbasalt');
-
@@ -5404,7 +5404,7 @@ begin
+
@@ -4907,7 +4907,7 @@ begin
CloseFile(vkbasaltVAR);
// Read String and store value on vkbasaltdependencyVALUE based on result
+3 -3
pkgs/tools/graphics/netpbm/default.nix
···
# Determine version and revision from:
# https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced
pname = "netpbm";
-
version = "10.92.0";
+
version = "10.96.2";
outputs = [ "bin" "out" "dev" ];
src = fetchsvn {
url = "https://svn.code.sf.net/p/netpbm/code/advanced";
-
rev = "3972";
-
sha256 = "09fpy4n4f867j23pr3b719wpvp8hjrr4drxp0r1csw74p8j6vfy3";
+
rev = "4158";
+
sha256 = "NK8GXCvCEnbQJWvVngB5UMOVmfsiyU4Fq0JIY9UNSjo=";
};
nativeBuildInputs = [
+2 -2
pkgs/tools/networking/getmail6/default.nix
···
python3.pkgs.buildPythonApplication rec {
pname = "getmail6";
-
version = "6.18.4";
+
version = "6.18.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
-
sha256 = "1pxrwqpg8vnrrljigzzaq8g2g6nx55x7a8q032bp4wqyhc6jhpxq";
+
sha256 = "1bckrnvjkkbrybs9ccknd4vakzvd7vpp541p2cpv4isaizyxp2ji";
};
# needs a Docker setup
+6 -1
pkgs/top-level/all-packages.nix
···
govc = callPackage ../tools/virtualization/govc { };
-
goverlay = callPackage ../tools/graphics/goverlay { };
+
goverlay = callPackage ../tools/graphics/goverlay {
+
inherit (qt5) wrapQtAppsHook;
+
};
gpart = callPackage ../tools/filesystems/gpart { };
···
pipenv = callPackage ../development/tools/pipenv {};
pipewire = callPackage ../development/libraries/pipewire {};
+
pipewire-media-session = callPackage ../development/libraries/pipewire/media-session.nix {};
pipewire_0_2 = callPackage ../development/libraries/pipewire/0.2.nix {};
pyradio = callPackage ../applications/audio/pyradio {};
···
cups-pk-helper = callPackage ../misc/cups/cups-pk-helper.nix { };
cups-kyocera = callPackage ../misc/cups/drivers/kyocera {};
+
+
cups-kyocera-ecosys-m2x35-40-p2x35-40dnw = callPackage ../misc/cups/drivers/kyocera-ecosys-m2x35-40-p2x35-40dnw {};
cups-kyocera-ecosys-m552x-p502x = callPackage ../misc/cups/drivers/kyocera-ecosys-m552x-p502x {};
+20
pkgs/top-level/perl-packages.nix
···
};
};
+
CompressRawLzma = buildPerlPackage {
+
pname = "Compress-Raw-Lzma";
+
version = "2.101";
+
src = fetchurl {
+
url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.101.tar.gz";
+
sha256 = "bb267fd31981eda11f444038f8a0fca4b94a51ae61b2db71246abf6a4d322a36";
+
};
+
preConfigure = ''
+
cat > config.in <<EOF
+
INCLUDE = ${pkgs.xz.dev}/include
+
LIB = ${pkgs.xz.out}/lib
+
EOF
+
'';
+
meta = {
+
homepage = "https://github.com/pmqs/Compress-Raw-Lzma";
+
description = "Low-Level Interface to lzma compression library";
+
license = with lib.licenses; [ artistic1 gpl1Plus ];
+
};
+
};
+
CompressRawZlib = buildPerlPackage {
pname = "Compress-Raw-Zlib";
version = "2.096";