Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2021-11-01 00:07:53 +00:00
committed by GitHub
188 changed files with 2085 additions and 1341 deletions
+6 -1
View File
@@ -10,13 +10,18 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
# required to find all branches
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: zeebe-io/backport-action@v0.0.7
# should be kept in sync with `version`
uses: zeebe-io/backport-action@v0.0.5
with:
# Config README: https://github.com/zeebe-io/backport-action#backport-action
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}
# should be kept in sync with `uses`
version: v0.0.5
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
+1
View File
@@ -3271,6 +3271,7 @@
};
ekleog = {
email = "leo@gaspard.io";
matrix = "@leo:gaspard.ninja";
github = "ekleog";
githubId = 411447;
name = "Leo Gaspard";
+1 -1
View File
@@ -114,7 +114,7 @@ async def check_changes(package: Dict, worktree: str, update_info: str):
changes[0]['newVersion'] = json.loads((await obtain_new_version_process.stdout.read()).decode('utf-8'))
if 'files' not in changes[0]:
changed_files_process = await check_subprocess('git', 'diff', '--name-only', stdout=asyncio.subprocess.PIPE, cwd=worktree)
changed_files_process = await check_subprocess('git', 'diff', '--name-only', 'HEAD', stdout=asyncio.subprocess.PIPE, cwd=worktree)
changed_files = (await changed_files_process.stdout.read()).splitlines()
changes[0]['files'] = changed_files
@@ -556,6 +556,17 @@ Superuser created successfully.
<link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
</para>
</listitem>
<listitem>
<para>
<literal>ihatemoney</literal> has been updated to version
5.1.1
(<link xlink:href="https://github.com/spiral-project/ihatemoney/blob/5.1.1/CHANGELOG.rst">release
notes</link>). If you serve ihatemoney by HTTP rather than
HTTPS, you must set
<link xlink:href="options.html#opt-services.ihatemoney.secureCookie">services.ihatemoney.secureCookie</link>
to <literal>false</literal>.
</para>
</listitem>
<listitem>
<para>
PHP 7.3 is no longer supported due to upstream not supporting
@@ -204,6 +204,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
- `ihatemoney` has been updated to version 5.1.1 ([release notes](https://github.com/spiral-project/ihatemoney/blob/5.1.1/CHANGELOG.rst)). If you serve ihatemoney by HTTP rather than HTTPS, you must set [services.ihatemoney.secureCookie](options.html#opt-services.ihatemoney.secureCookie) to `false`.
- PHP 7.3 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 21.11 release.
- Those making use of `buildBazelPackage` will need to regenerate the fetch hashes (preferred), or set `fetchConfigured = false;`.
+12 -1
View File
@@ -218,6 +218,7 @@ rec {
build-vms = import ./build-vms.nix {
inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
{ config, ... }:
{
virtualisation.qemu.package = qemu_pkg;
@@ -230,7 +231,17 @@ rec {
# 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
@@ -13,10 +13,10 @@ let
# 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 = {
@@ -43,8 +43,8 @@ in {
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.
'';
@@ -55,7 +55,7 @@ in {
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 = {};
};
@@ -64,7 +64,7 @@ in {
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 = {};
};
@@ -73,7 +73,7 @@ in {
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 = {};
};
@@ -82,7 +82,7 @@ in {
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 = {};
};
@@ -22,12 +22,11 @@ let
# 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 = {
@@ -42,6 +42,8 @@ in
}
];
environment.systemPackages = [ package ];
services.dbus.packages = [ package ];
services.udev.packages = [ package ];
@@ -13,7 +13,7 @@ in
{
###### interface
meta.maintainers = with maintainers; [ philandstuff rawkode ];
meta.maintainers = with maintainers; [ philandstuff rawkode jwoudenberg ];
options = {
@@ -49,6 +49,12 @@ in
# yubikey-agent package
systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
path = [ pkgs.pinentry.${pinentryFlavor} ];
wantedBy = [
(if pinentryFlavor == "tty" || pinentryFlavor == "curses" then
"default.target"
else
"graphical-session.target")
];
};
environment.extraInit = ''
@@ -33,11 +33,14 @@ let
then "sqlite:////var/lib/ihatemoney/ihatemoney.sqlite"
else "postgresql:///${db}"}'
SQLALCHEMY_TRACK_MODIFICATIONS = False
MAIL_DEFAULT_SENDER = ("${cfg.defaultSender.name}", "${cfg.defaultSender.email}")
MAIL_DEFAULT_SENDER = (r"${cfg.defaultSender.name}", r"${cfg.defaultSender.email}")
ACTIVATE_DEMO_PROJECT = ${toBool cfg.enableDemoProject}
ADMIN_PASSWORD = "${toString cfg.adminHashedPassword /*toString null == ""*/}"
ADMIN_PASSWORD = r"${toString cfg.adminHashedPassword /*toString null == ""*/}"
ALLOW_PUBLIC_PROJECT_CREATION = ${toBool cfg.enablePublicProjectCreation}
ACTIVATE_ADMIN_DASHBOARD = ${toBool cfg.enableAdminDashboard}
SESSION_COOKIE_SECURE = ${toBool cfg.secureCookie}
ENABLE_CAPTCHA = ${toBool cfg.enableCaptcha}
LEGAL_LINK = r"${toString cfg.legalLink}"
${cfg.extraConfig}
'';
@@ -79,9 +82,20 @@ in
description = "The email of the sender of ihatemoney emails";
};
};
secureCookie = mkOption {
type = types.bool;
default = true;
description = "Use secure cookies. Disable this when ihatemoney is served via http instead of https";
};
enableDemoProject = mkEnableOption "access to the demo project in ihatemoney";
enablePublicProjectCreation = mkEnableOption "permission to create projects in ihatemoney by anyone";
enableAdminDashboard = mkEnableOption "ihatemoney admin dashboard";
enableCaptcha = mkEnableOption "a simplistic captcha for some forms";
legalLink = mkOption {
type = types.nullOr types.str;
default = null;
description = "The URL to a page explaining legal statements about your service, eg. GDPR-related information.";
};
extraConfig = mkOption {
type = types.str;
default = "";
@@ -586,7 +586,7 @@ in {
{ systemd.timers.nextcloud-cron = {
wantedBy = [ "timers.target" ];
timerConfig.OnBootSec = "5m";
timerConfig.OnUnitActiveSec = "15m";
timerConfig.OnUnitActiveSec = "5m";
timerConfig.Unit = "nextcloud-cron.service";
};
@@ -17,19 +17,28 @@ import glob
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}
@@ -46,26 +55,34 @@ efi /efi/memtest86/BOOTX64.efi
"""
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)
@@ -95,19 +112,17 @@ def describe_generation(generation_dir: str) -> str:
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
@@ -115,6 +130,7 @@ def write_entry(profile: Optional[str], generation: int, machine_id: str) -> Non
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,
@@ -133,7 +149,7 @@ def mkdir_p(path: str) -> None:
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",
@@ -145,10 +161,19 @@ def get_generations(profile: Optional[str] = None) -> List[Tuple[Optional[str],
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 remove_old_entries(gens: List[Tuple[Optional[str], int]]) -> None:
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[SystemIdentifier]) -> None:
rex_profile = re.compile("^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$")
rex_generation = re.compile("^@efiSysMountPoint@/loader/entries/nixos.*-generation-(.*)\.conf$")
known_paths = []
@@ -243,6 +268,8 @@ def main() -> None:
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
View File
@@ -26,13 +26,11 @@ in
agda = handleTest ./agda.nix {};
airsonic = handleTest ./airsonic.nix {};
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
ammonite = handleTest ./ammonite.nix {};
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
awscli = handleTest ./awscli.nix { };
babeld = handleTest ./babeld.nix {};
bazarr = handleTest ./bazarr.nix {};
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
@@ -191,7 +189,7 @@ in
i3wm = handleTest ./i3wm.nix {};
icingaweb2 = handleTest ./icingaweb2.nix {};
iftop = handleTest ./iftop.nix {};
ihatemoney = handleTest ./ihatemoney.nix {};
ihatemoney = handleTest ./ihatemoney {};
incron = handleTest ./incron.nix {};
influxdb = handleTest ./influxdb.nix {};
initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
@@ -369,6 +367,7 @@ in
postgresql = handleTest ./postgresql.nix {};
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
powerdns = handleTest ./powerdns.nix {};
power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
printing = handleTest ./printing.nix {};
-20
View File
@@ -1,20 +0,0 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "ammonite";
meta = with pkgs.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
amm =
{ pkgs, ... }:
{
environment.systemPackages = [ (pkgs.ammonite.override { jre = pkgs.jre8; }) ];
};
};
testScript = ''
start_all()
amm.succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42")
'';
})
-17
View File
@@ -1,17 +0,0 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "awscli";
meta = with pkgs.lib.maintainers; {
maintainers = [ nequissimus ];
};
machine = { pkgs, ... }:
{
environment.systemPackages = [ pkgs.awscli ];
};
testScript =
''
assert "${pkgs.python3Packages.botocore.version}" in machine.succeed("aws --version")
assert "${pkgs.awscli.version}" in machine.succeed("aws --version")
'';
})
-12
View File
@@ -1,12 +0,0 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "cifs-utils";
machine = { pkgs, ... }: { environment.systemPackages = [ pkgs.cifs-utils ]; };
testScript = ''
machine.succeed("smbinfo -h")
machine.succeed("smb2-quota -h")
assert "${pkgs.cifs-utils.version}" in machine.succeed("cifs.upcall -v")
assert "${pkgs.cifs-utils.version}" in machine.succeed("mount.cifs -V")
'';
})
+2 -3
View File
@@ -1,5 +1,4 @@
{ pkgs, ... }: import ./make-test-python.nix {
import ./make-test-python.nix ({ pkgs, ... }: {
nodes = {
backend = { pkgs, ... }: {
services.nginx.enable = true;
@@ -101,4 +100,4 @@
meta.maintainers = with pkgs.lib.maintainers; [
roberth
];
}
})
@@ -1,22 +1,36 @@
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
pkgs ? import ../../.. { inherit system config; }
}:
let
inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
inherit (import ../../lib/testing-python.nix { inherit system pkgs; }) makeTest;
f = backend: makeTest {
name = "ihatemoney-${backend}";
machine = { lib, ... }: {
machine = { nodes, lib, ... }: {
services.ihatemoney = {
enable = true;
enablePublicProjectCreation = true;
secureCookie = false;
inherit backend;
uwsgiConfig = {
http = ":8000";
};
};
boot.cleanTmpDir = true;
# for exchange rates
security.pki.certificateFiles = [ ./server.crt ];
networking.extraHosts = "127.0.0.1 api.exchangerate.host";
services.nginx = {
enable = true;
virtualHosts."api.exchangerate.host" = {
addSSL = true;
# openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 1000000 -nodes -subj '/CN=api.exchangerate.host'
sslCertificate = ./server.crt;
sslCertificateKey = ./server.key;
locations."/".return = "200 '${builtins.readFile ./rates.json}'";
};
};
# ihatemoney needs a local smtp server otherwise project creation just crashes
services.opensmtpd = {
enable = true;
@@ -30,11 +44,13 @@ let
testScript = ''
machine.wait_for_open_port(8000)
machine.wait_for_unit("uwsgi.service")
machine.wait_until_succeeds("curl http://localhost:8000")
machine.wait_until_succeeds("curl --fail https://api.exchangerate.host")
machine.wait_until_succeeds("curl --fail http://localhost:8000")
assert '"yay"' in machine.succeed(
"curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com'"
result = machine.succeed(
"curl --fail -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com&default_currency=XXX'"
)
assert '"yay"' in result, repr(result)
owner, timestamp = machine.succeed(
"stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key"
).split("___")
@@ -47,13 +63,13 @@ let
machine.wait_for_unit("uwsgi.service")
with subtest("check that the database is really persistent"):
machine.succeed("curl --basic -u yay:yay http://localhost:8000/api/projects/yay")
machine.succeed("curl --fail --basic -u yay:yay http://localhost:8000/api/projects/yay")
with subtest("check that the secret key is really persistent"):
timestamp2 = machine.succeed("stat --printf %Y /var/lib/ihatemoney/secret_key")
assert timestamp == timestamp2
assert "ihatemoney" in machine.succeed("curl http://localhost:8000")
assert "ihatemoney" in machine.succeed("curl --fail http://localhost:8000")
'';
};
in {
+39
View File
@@ -0,0 +1,39 @@
{
"rates": {
"CAD": 1.3420055134,
"HKD": 7.7513783598,
"ISK": 135.9407305307,
"PHP": 49.3762922123,
"DKK": 6.4126464507,
"HUF": 298.9145416954,
"CZK": 22.6292212267,
"GBP": 0.7838128877,
"RON": 4.1630771881,
"SEK": 8.8464851826,
"IDR": 14629.5658166782,
"INR": 74.8328738801,
"BRL": 5.2357856651,
"RUB": 71.8416609235,
"HRK": 6.4757064094,
"JPY": 106.2715368711,
"THB": 31.7203652653,
"CHF": 0.9243625086,
"EUR": 0.8614748449,
"MYR": 4.2644727774,
"BGN": 1.6848725017,
"TRY": 6.8483804273,
"CNY": 7.0169710544,
"NOK": 9.213731909,
"NZD": 1.5080978635,
"ZAR": 16.7427636113,
"USD": 1,
"MXN": 22.4676085458,
"SGD": 1.3855099931,
"AUD": 1.4107512061,
"ILS": 3.4150585803,
"KRW": 1203.3339076499,
"PLN": 3.794452102
},
"base": "USD",
"date": "2020-07-24"
}
+28
View File
@@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEvjCCAqYCCQDkTQrENPCZjjANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVh
cGkuZXhjaGFuZ2VyYXRlLmhvc3QwIBcNMjEwNzE0MTI1MzQ0WhgPNDc1OTA2MTEx
MjUzNDRaMCAxHjAcBgNVBAMMFWFwaS5leGNoYW5nZXJhdGUuaG9zdDCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL5zpwUYa/ySqvJ/PUnXYsl1ww5SNGJh
NujCRxC0Gw+5t5O7USSHRdz7Eb2PNFMa7JR+lliLAWdjHfqPXJWmP10X5ebvyxeQ
TJkR1HpDSY6TQQlJvwr/JNGryyoQYjXvnyeyVu4TS3U0TTI631OonDAj+HbFIs9L
gr/HfHzFmxRVLwaJ7hebanihc5RzoWTxgswiOwYQu5AivXQqcvUIxELeT7CxWwiw
be/SlalDgoezB/poqaa215FUuN2av+nTn+swH3WOi9kwePLgVKn9BnDMwyh8et13
yt27RWCSOcZagRSYsSbBaEJbClZvnuYvDqooJEy0GVbGBZpClKRKe92yd0PTf3ZJ
GupyNoCFQlGugY//WLrsPv/Q4WwP+qZ6t97sV0CdM+epKVde/LfPKn+tFMv86qIg
Q/uGHdDwUI8XH2EysAavhdlssSrovmpl4hyo9UkzTWfJgAbmOZY3Vba41wsq12FT
usDsswGLBD10MdXWltR/Hdk8OnosLmeJxfZODAv31KSfd+4b6Ntr9BYQvAQSO+1/
Mf7gEQtNhO003VKIyV5cpH4kVQieEcvoEKgq32NVBSKVf6UIPWIefu19kvrttaUu
Q2QW2Qm4Ph/4cWpxl0jcrN5rjmgaBtIMmKYjRIS0ThDWzfVkJdmJuATzExJAplLN
nYPBG3gOtQQpAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJzt/aN7wl88WrvBasVi
fSJmJjRaW2rYyBUMptQNkm9ElHN2eQQxJgLi8+9ArQxuGKhHx+D1wMGF8w2yOp0j
4atfbXDcT+cTQY55qdEeYgU8KhESHHGszGsUpv7hzU2cACZiXG0YbOmORFYcn49Z
yPyN98kW8BViLzNF9v+I/NJPuaaCeWKjXCqY2GCzddiuotrlLtz0CODXZJ506I1F
38vQgZb10yAe6+R4y0BK7sUlmfr9BBqVcDQ/z74Kph1aB32zwP8KrNitwG1Tyk6W
rxD1dStEQyX8uDPAspe2JrToMWsOMje9F5lotmuzyvwRJYfAav300EtIggBqpiHR
o0P/1xxBzmaCHxEUJegdoYg8Q27llqsjR2T78uv/BlxpX9Dv5kNex5EZThKqyz4a
Fn1VqiA3D9IsvxH4ud+8eDaP24u1yYObSTDIBsw9xDvoV8fV+NWoNNhcAL5GwC0P
Goh7/brZSHUprxGpwRB524E//8XmCsRd/+ShtXbi4gEODMH4xLdkD7fZIJC4eG1H
GOVc1MwjiYvbQlPs6MOcQ0iKQneSlaEJmyyO5Ro5OKiKj89Az/mLYX3R17AIsu0T
Q5pGcmhKVRyu0zXvkGfK352TLwoe+4vbmakDq21Pkkcy8V9M4wP+vpCfQkg1REQ1
+mr1Vg+SFya3mlCxpFTy3j8E
-----END CERTIFICATE-----
+52
View File
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC+c6cFGGv8kqry
fz1J12LJdcMOUjRiYTbowkcQtBsPubeTu1Ekh0Xc+xG9jzRTGuyUfpZYiwFnYx36
j1yVpj9dF+Xm78sXkEyZEdR6Q0mOk0EJSb8K/yTRq8sqEGI1758nslbuE0t1NE0y
Ot9TqJwwI/h2xSLPS4K/x3x8xZsUVS8Gie4Xm2p4oXOUc6Fk8YLMIjsGELuQIr10
KnL1CMRC3k+wsVsIsG3v0pWpQ4KHswf6aKmmtteRVLjdmr/p05/rMB91jovZMHjy
4FSp/QZwzMMofHrdd8rdu0VgkjnGWoEUmLEmwWhCWwpWb57mLw6qKCRMtBlWxgWa
QpSkSnvdsndD0392SRrqcjaAhUJRroGP/1i67D7/0OFsD/qmerfe7FdAnTPnqSlX
Xvy3zyp/rRTL/OqiIEP7hh3Q8FCPFx9hMrAGr4XZbLEq6L5qZeIcqPVJM01nyYAG
5jmWN1W2uNcLKtdhU7rA7LMBiwQ9dDHV1pbUfx3ZPDp6LC5nicX2TgwL99Skn3fu
G+jba/QWELwEEjvtfzH+4BELTYTtNN1SiMleXKR+JFUInhHL6BCoKt9jVQUilX+l
CD1iHn7tfZL67bWlLkNkFtkJuD4f+HFqcZdI3Kzea45oGgbSDJimI0SEtE4Q1s31
ZCXZibgE8xMSQKZSzZ2DwRt4DrUEKQIDAQABAoICAQCpwU465XTDUTvcH/vSCJB9
/2BYMH+OvRYDS7+qLM7+Kkxt+oWt6IEmIgfDDZTXCmWbSmXaEDS1IYzEG+qrXN6X
rMh4Gn7MxwrvWQwp2jYDRk+u5rPJKnh4Bwd0u9u+NZKIAJcpZ7tXgcHZJs6Os/hb
lIRP4RFQ8f5d0IKueDftXKwoyOKW2imB0m7CAHr4DajHKS+xDVMRe1Wg6IFE1YaS
D7O6S6tXyGKFZA+QKqN7LuHKmmW1Or5URM7uf5PV6JJfQKqZzu/qLCFyYvA0AFsw
SeMeAC5HnxIMp3KETHIA0gTCBgPJBpVWp+1D9AQPKhyJIHSShekcBi9SO0xgUB+s
h1UEcC2zf95Vson0KySX9zWRUZkrU8/0KYhYljN2/vdW8XxkRBC0pl3xWzq2kMgz
SscZqI/MzyeUHaQno62GRlWn+WKP2NidDfR0Td/ybge1DJX+aDIfjalfCEIbJeqm
BHn0CZ5z1RofatDlPj4p8+f2Trpcz/JCVKbGiQXi/08ZlCwkSIiOIcBVvAFErWop
GJOBDU3StS/MXhQVb8ZeCkPBz0TM24Sv1az/MuW4w8gavpQuBC4aD5zY/TOwG8ei
6S1sAZ0G2uc1A0FOngNvOyYYv+LImZKkWGXrLCRsqq6o/mh3M8bCHEY/lOZW8ZpL
FCsDOO8deVZl/OX1VtB0bQKCAQEA3qRWDlUpCAU8BKa5Z1oRUz06e5KD58t2HpG8
ndM3UO/F1XNB/6OGMWpL/XuBKOnWIB39UzsnnEtehKURTqqAsB1K3JQ5Q/FyuXRj
+o7XnNXe5lHBL5JqBIoESDchSAooQhBlQSjLSL2lg//igk0puv08wMK7UtajkV7U
35WDa6ks6jfoSeuVibfdobkTgfw5edirOBE2Q0U2KtGsnyAzsM6tRbtgI1Yhg7eX
nSIc4IYgq2hNLBKsegeiz1w4M6O4CQDVYFWKHyKpdrvj/fG7YZMr6YtTkuC+QPDK
mmQIEL/lj8E26MnPLKtnTFc06LQry2V3pLWNf4mMLPNLEupEXwKCAQEA2vyg8Npn
EZRunIr51rYScC6U6iryDjJWCwJxwr8vGU+bkqUOHTl3EqZOi5tDeYJJ+WSBqjfW
IWrPRFZzTITlAslZ02DQ5enS9PwgUUjl7LUEbHHh+fSNIgkVfDhsuNKFzcEaIM1X
Dl4lI2T8jEzmBep+k8f6gNmgKBgqlCf7XraorIM5diLFzy2G10zdOQTw5hW3TsVY
d968YpfC5j57/hCrf36ahIT7o1vxLD+L27Mm9Eiib45woWjaAR1Nc9kUjqY4yV7t
3QOw/Id9+/Sx5tZftOBvHlFyz23e1yaI3VxsiLDO9RxJwAKyA+KOvAybE2VU28hI
s5tAYOMV6BpEdwKCAQBqRIQyySERi/YOvkmGdC4KzhHJA7DkBXA2vRcLOdKQVjHW
ZPIeg728fmEQ90856QrkP4w3mueYKT1PEL7HDojoBsNBr5n5vRgmPtCtulpdqJOA
2YrdGwRxcDMFCRNgoECA7/R0enU1HhgPfiZuTUha0R6bXxcsPfjKnTn8EhAtZg1j
KhY8mi7BEjq+Q2l1RJ9mci2fUE/XIgTtwTCkrykc/jkkLICBvU234fyC6tJftIWJ
avpSzAL5KAXk9b55n25rFbPDDHEl1VSPsLTs8+GdfDKcgXz9gTouIwCBWreizwVS
bUW5LQIu7w0aGhHN9JlmtuK5glKsikmW9vVhbOH/AoIBAE//O7fgwQguBh5Psqca
CjBLBAFrQNOo1b/d27r95nHDoBx5CWfppzL75/Od+4825lkhuzB4h1Pb1e2r+yC3
54UWEydh1c43leYC+LdY/w1yrzQCgj+yc6A8W0nuvuDhnxmj8iyLdsL752s/p/aE
3P7KRAUuZ7eMSLJ86YkH9g8KgSHMKkCawVJG2lxqauI6iNo0kqtG8mOPzZfiwsMj
jl4ors27bSz9+4MYwkicyjWvA4r3wcco7MI6MHF5x+KLKbRWyqXddN1pTM1jncVe
BWNDauEDn/QeYuedxmsoW5Up/0gL9v6Zn+Nx2KAMsoHFxRzXxqEnUE+0Zlc+fbE1
b08CggEBAMiZmWtRmfueu9NMh6mgs+cmMA1ZHmbnIbtFpVjc37lrKUcjLzGF3tmp
zQl2wy8IcHpNv8F9aKhwAInxD49RUjyqvRD6Pru+EWN6gOPJIUVuZ6mvaf7BOxbn
Rve63hN5k4znQ1MOqGRiUkBxYSJ5wnFyQP0/8Y6+JM5uAuRUcKVNyoGURpfMrmB3
r+KHWltM9/5iIfiDNhwStFiuOJj1YBJVzrcAn8Zh5Q0+s1hXoOUs4doLcaPHTCTU
3hyX78yROMcZto0pVzxgQrYz31yQ5ocy9WcOYbPbQ5gdlnBEv8d7umNY1siz2wkI
NaEkKVO0D0jFtk37s/YqJpCsXg/B7yc=
-----END PRIVATE KEY-----
+1
View File
@@ -104,5 +104,6 @@ in
malcontent = callInstalledTest ./malcontent.nix {};
ostree = callInstalledTest ./ostree.nix {};
pipewire = callInstalledTest ./pipewire.nix {};
power-profiles-daemon = callInstalledTest ./power-profiles-daemon.nix {};
xdg-desktop-portal = callInstalledTest ./xdg-desktop-portal.nix {};
}
@@ -0,0 +1,9 @@
{ pkgs, lib, makeInstalledTest, ... }:
makeInstalledTest {
tested = pkgs.power-profiles-daemon;
testConfig = {
services.power-profiles-daemon.enable = true;
};
}
+1 -1
View File
@@ -27,7 +27,7 @@ let
users.users.person.isNormalUser = true;
virtualisation.writableStore = true;
virtualisation.memorySize = 1024 /*MiB*/;
virtualisation.pathsInNixDB = [
virtualisation.additionalPaths = [
pkgs.hello
pkgs.figlet
+23
View File
@@ -39,6 +39,29 @@ in
'';
};
# 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";
@@ -3,13 +3,13 @@
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";
+221 -176
View File
@@ -31,38 +31,43 @@
})
(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";
version = "1.2.6";
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";
@@ -169,15 +174,20 @@
version = "1.0.18";
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";
@@ -191,13 +201,13 @@
})
(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";
@@ -221,33 +231,33 @@
})
(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";
@@ -256,8 +266,8 @@
})
(fetchNuGet {
name = "Microsoft.Bcl.HashCode";
version = "1.1.0";
sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
version = "1.1.1";
sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
@@ -266,8 +276,13 @@
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Analyzers";
version = "3.0.0";
sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
version = "3.3.2";
sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
version = "3.11.0";
sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
@@ -275,29 +290,24 @@
sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.Common";
version = "3.6.0";
sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
name = "Microsoft.CodeAnalysis.CSharp";
version = "3.11.0";
sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
version = "3.3.0";
sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
})
(fetchNuGet {
name = "Microsoft.CodeAnalysis.CSharp";
version = "3.6.0";
sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
})
(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";
@@ -321,8 +331,8 @@
})
(fetchNuGet {
name = "Microsoft.Data.Sqlite.Core";
version = "3.1.4";
sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
version = "3.1.19";
sha256 = "0ns3rrk011gjw4g1kwr625390yj0mcadb3py49750sji72my7l7s";
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
@@ -331,53 +341,53 @@
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
version = "3.1.0";
sha256 = "1fg1zggza45pa8zlcf8llqh6v47fqi44azsia68kmsg2q9r1r4mq";
})
(fetchNuGet {
name = "Microsoft.DotNet.PlatformAbstractions";
version = "3.1.4";
sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
version = "3.1.6";
sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
version = "3.1.4";
sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
version = "3.1.18";
sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
})
(fetchNuGet {
name = "Microsoft.EntityFrameworkCore.Abstractions";
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";
@@ -386,13 +396,13 @@
})
(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";
@@ -411,8 +421,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
version = "3.1.4";
sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
version = "3.1.19";
sha256 = "19s5dpswyad55p191280510sb8cr2b6zyx9zlx79p0lq4zaxwaq6";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
@@ -426,8 +436,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
version = "3.1.4";
sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
version = "3.1.19";
sha256 = "0dw1qiyc8j7rk13x6wfm1xnc7drnlvk8xv607hja0af2m0y7a3p2";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
@@ -461,8 +471,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
version = "3.1.4";
sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
version = "3.1.19";
sha256 = "04zadl7q5vcak9d77jm5ivfzhhp2zvz5apywvfzrca4h0q38fs45";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
@@ -481,8 +491,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
version = "3.1.4";
sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
version = "3.1.19";
sha256 = "0claq9nna6p30zbvd25bn1ild9f3x50d5fxfbq9fsp464rq70b2y";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
@@ -496,8 +506,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection";
version = "3.1.4";
sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
version = "3.1.19";
sha256 = "0fsvv5jl95kmdxc4c7b15xanlq3fmfls556m8ghbqqikrgkqhz8m";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
@@ -506,18 +516,13 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
version = "3.1.0";
sha256 = "12nrdw3q9wl5zry8gb3sw003a0iyk2gvps2ij813l7lim38wy1mi";
version = "3.1.6";
sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
version = "3.1.1";
sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyModel";
version = "3.1.4";
sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
version = "5.0.0";
sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
})
(fetchNuGet {
name = "Microsoft.Extensions.FileProviders.Abstractions";
@@ -551,13 +556,13 @@
})
(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";
@@ -581,8 +586,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
version = "3.1.4";
sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
version = "3.1.19";
sha256 = "07jnqb6518xrw086rqlc28ms80d57xg0pl5x72032rk2x5x8hhnn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
@@ -601,8 +606,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging";
version = "3.1.4";
sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
version = "3.1.19";
sha256 = "0j2874x847xa1nfbppjn10cnxd486f6lwy53mxmansvlmp96h2sn";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options.ConfigurationExtensions";
@@ -621,8 +626,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
version = "3.1.4";
sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
version = "3.1.19";
sha256 = "1jm7rd2sbfscyfysvl8zcaypyzpd6d5w52ha2npa9c7q84cmn4r9";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
@@ -656,8 +661,8 @@
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
version = "3.1.4";
sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
version = "3.1.19";
sha256 = "0vcwwqqfwm5vj87psmic6mxix3prgkzw8sqbg5m1c2q662kby380";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
@@ -681,13 +686,13 @@
})
(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";
@@ -726,13 +731,13 @@
})
(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";
@@ -751,24 +756,34 @@
})
(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";
version = "6.0.3";
@@ -786,94 +801,99 @@
})
(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";
version = "1.6.1";
sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
})
(fetchNuGet {
name = "NETStandard.Library";
version = "2.0.3";
sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
})
(fetchNuGet {
name = "Newtonsoft.Json.Bson";
version = "1.0.1";
@@ -886,8 +906,8 @@
})
(fetchNuGet {
name = "Newtonsoft.Json.Schema";
version = "3.0.13";
sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
version = "3.0.14";
sha256 = "1njk1arrf8pbx0i0p3yww459i70p0fcx02vs0jnbb6znvcy4mvh6";
})
(fetchNuGet {
name = "Newtonsoft.Json";
@@ -901,13 +921,13 @@
})
(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";
@@ -941,13 +961,13 @@
})
(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";
@@ -981,8 +1001,8 @@
})
(fetchNuGet {
name = "Pomelo.EntityFrameworkCore.MySql";
version = "3.1.1";
sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
version = "3.2.7";
sha256 = "018za1ax17ibxld9rk2nc29716qpn2afh1prfrdjchf5cp56ba2p";
})
(fetchNuGet {
name = "Pomelo.JsonObject";
@@ -1101,8 +1121,8 @@
})
(fetchNuGet {
name = "Selenium.WebDriver.ChromeDriver";
version = "90.0.4430.2400";
sha256 = "18gjm92nzzvxf0hk7c0nnabs0vmh6yyzq3m4si7p21m6xa3bqiga";
version = "94.0.4606.6100";
sha256 = "04kn91qcgsx92yhcqlhpm1yy3m34m371k70szf8h93gcwfs42b9c";
})
(fetchNuGet {
name = "Selenium.WebDriver";
@@ -1219,6 +1239,11 @@
version = "1.7.1";
sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
})
(fetchNuGet {
name = "System.Collections.Immutable";
version = "5.0.0";
sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
})
(fetchNuGet {
name = "System.Collections.NonGeneric";
version = "4.3.0";
@@ -1391,8 +1416,8 @@
})
(fetchNuGet {
name = "System.IO.Pipelines";
version = "4.7.2";
sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
version = "4.7.4";
sha256 = "09gv2nz35vmmcjrfj1ppxx32v772i0mb369v7lwqr8mz14zhh86r";
})
(fetchNuGet {
name = "System.IO";
@@ -1554,6 +1579,11 @@
version = "1.6.0";
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
})
(fetchNuGet {
name = "System.Reflection.Metadata";
version = "5.0.0";
sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss";
})
(fetchNuGet {
name = "System.Reflection.Primitives";
version = "4.0.1";
@@ -1629,6 +1659,11 @@
version = "4.7.0";
sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
})
(fetchNuGet {
name = "System.Runtime.CompilerServices.Unsafe";
version = "5.0.0";
sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x";
})
(fetchNuGet {
name = "System.Runtime.Extensions";
version = "4.1.0";
@@ -1845,15 +1880,20 @@
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";
version = "4.1.0";
@@ -1884,6 +1924,11 @@
version = "4.5.3";
sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
})
(fetchNuGet {
name = "System.Threading.Tasks.Extensions";
version = "4.5.4";
sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
})
(fetchNuGet {
name = "System.Threading.Tasks";
version = "4.0.11";
@@ -2,13 +2,13 @@
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
View File
@@ -6,23 +6,23 @@
})
(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";
@@ -31,8 +31,8 @@
})
(fetchNuGet {
name = "Microsoft.CodeCoverage";
version = "16.7.1";
sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
version = "16.11.0";
sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
})
(fetchNuGet {
name = "Microsoft.CSharp";
@@ -126,8 +126,8 @@
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
version = "16.7.1";
sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
version = "16.11.0";
sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
})
(fetchNuGet {
name = "Microsoft.NETCore.Platforms";
@@ -156,13 +156,13 @@
})
(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";
@@ -181,18 +181,18 @@
})
(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";
@@ -699,6 +699,11 @@
version = "4.3.0";
sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
})
(fetchNuGet {
name = "System.Reflection.Metadata";
version = "1.6.0";
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
})
(fetchNuGet {
name = "System.Reflection.Primitives";
version = "4.0.1";
@@ -13,12 +13,12 @@ let
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
@@ -5,9 +5,9 @@ let
in
{
sublime4 = common {
buildVersion = "4113";
x64sha256 = "13679mnmigy1sgj355zs4si6gnx42rgjl4rn5d6gqgj5qq7zj3lh";
aarch64sha256 = "0hg6g3cichma1x82963m7xwazmpdvv5zmz8rpwxs337zq7j3dmb3";
buildVersion = "4121";
x64sha256 = "CE/PeUV8Mg1Z2h8OWMhaemOVa95B1k2wHsht8lVPxeY=";
aarch64sha256 = "eveEW0Aq6pim0lnQ6BfISRaBgogeofgLmOVylSVojwg=";
} {};
sublime4-dev = common {
@@ -18,13 +18,13 @@ in
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
View File
@@ -16,13 +16,13 @@
mkDerivation rec {
pname = "qimgv";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitHub {
owner = "easymodo";
repo = pname;
rev = "v${version}";
sha256 = "1wybpmqvj7vj7cl6r4gif7mkrcdr6zpb939mmz46xsil5vb4pirh";
sha256 = "sha256-YlV/ysm7bdPverpKpanrL+jPVvMtP1paoAm0PREMaww=";
};
nativeBuildInputs = [
@@ -1,9 +1,9 @@
{ lib, stdenv
, fetchurl
{ stdenv
, lib
, fetchFromGitLab
, meson
, ninja
, pkg-config
, gnome
, desktop-file-utils
, gettext
, itstool
@@ -17,17 +17,21 @@
, json-glib
, gnome-autoar
, gspell
, libcanberra }:
, libcanberra
, nix-update-script
}:
let
stdenv.mkDerivation rec {
pname = "gnome-recipes";
version = "2.0.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "2.0.4";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1yymii3yf823d9x28fbhqdqm1wa30s40j94x0am9fjj0nzyd5s8v";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "recipes";
rev = version;
fetchSubmodules = true;
sha256 = "GyFOwEYmipQdFLtTXn7+NvhDTzxBlOAghr3cZT4QpQw=";
};
nativeBuildInputs = [
@@ -53,10 +57,6 @@ in stdenv.mkDerivation rec {
libcanberra
];
# https://github.com/NixOS/nixpkgs/issues/36468
# https://gitlab.gnome.org/GNOME/recipes/issues/76
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
postPatch = ''
chmod +x src/list_to_c.py
patchShebangs src/list_to_c.py
@@ -64,8 +64,8 @@ in stdenv.mkDerivation rec {
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
updateScript = nix-update-script {
attrPath = pname;
};
};
@@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
description = "Recipe management application for GNOME";
homepage = "https://wiki.gnome.org/Apps/Recipes";
maintainers = teams.gnome.members;
license = licenses.gpl3;
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}
@@ -2,26 +2,14 @@
, stdenv
, mkDerivation
, fetchurl
, ffmpeg_3
, freetype
, gdal_2
, glib
, libGL
, libGLU
, libICE
, libSM
, libXi
, libXv
, libav_12
, libXrender
, libXrandr
, libXfixes
, libXcursor
, libXinerama
, libXext
, libX11
, libXcomposite
, libxcb
, sqlite
@@ -34,11 +22,8 @@
, dbus
, makeWrapper
, qtlocation
, qtwebkit
, qtx11extras
, qtsensors
, qtscript
, cups
, alsa-lib
, xkeyboardconfig
, autoPatchelfHook
@@ -50,49 +35,34 @@ let
in
mkDerivation rec {
pname = "googleearth-pro";
version = "7.3.3.7786";
version = "7.3.4.8248";
src = fetchurl {
url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-pro-stable/google-earth-pro-stable_${version}-r0_${arch}.deb";
sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3";
sha256 = "1pbapi267snlrjari5k93y6kbrjsqhqxgkxxqaqv4r25az00dx6d";
};
nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
propagatedBuildInputs = [ xkeyboardconfig ];
buildInputs = [
dbus
ffmpeg_3
cups
fontconfig
freetype
gdal_2
glib
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
libGL
libGLU
libICE
libSM
libX11
libXcomposite
libXcursor
libXext
libXfixes
libXi
libXinerama
libXrandr
libXrender
libXv
libav_12
libproxy
libxcb
libxml2
qtlocation
qtscript
qtsensors
qtwebkit
qtx11extras
sqlite
zlib
alsa-lib
];
doInstallCheck = true;
@@ -131,17 +101,6 @@ mkDerivation rec {
runHook postInstall
'';
postInstall = ''
find "$out/opt/google/earth/pro" -name "*.so.*" | \
egrep -v 'libssl*|libcrypto*|libicu*' | \
xargs rm
find "$out/opt/google/earth/pro" -name "*.so" | \
egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \
xargs rm
'';
autoPatchelfIgnoreMissingDeps=true;
installCheckPhase = ''
$out/bin/gpsbabel -V > /dev/null
'';
@@ -159,5 +118,6 @@ mkDerivation rec {
license = licenses.unfree;
maintainers = with maintainers; [ friedelino shamilton ];
platforms = platforms.linux;
knownVulnerabilities = [ "Includes vulnerable bundled libraries." ];
};
}
+2 -2
View File
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ssh-tools";
version = "1.6";
version = "1.7";
src = fetchFromGitHub {
owner = "vaporup";
repo = pname;
rev = "v${version}";
sha256 = "0m0x9383p9ab4hdirncmrfha130iasa0v4cbif2y5nbxnxgh101r";
sha256 = "sha256-PDoljR/e/qraPhG9RRjHx1gBIMtTJ815TZDJws8Qg6o=";
};
installPhase = ''
@@ -2,7 +2,7 @@
(callPackage ./generic.nix { }) {
channel = "stable";
version = "2.11.0";
sha256 = "172in8vmr7c5sff111rrd5127lz2pv7bbh7p399xafnk8ri0fx2i";
version = "2.11.1";
sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
vendorSha256 = "sha256-c3EyVrblqtFuoP7+YdbyPN0DdN6TcQ5DTtFQ/frKM0Q=";
}
@@ -10,11 +10,11 @@
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 = [
@@ -9,11 +9,11 @@ let
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 = [
@@ -18,13 +18,13 @@ let
in stdenv.mkDerivation rec {
pname = "freerdp";
version = "2.4.0";
version = "2.4.1";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = version;
sha256 = "sha256-o+9twuyH9keWJriCSNkR63+xZuuOmPjoWg+Jp616CsQ=";
sha256 = "sha256-0wwIuE6Gv8khhLAbWSHOBfHGrTUjR4f/C5bzYJpvWIQ=";
};
postPatch = ''
@@ -1,16 +1,32 @@
{ lib, stdenv, fetchFromGitLab, vala, python3, pkg-config, meson, ninja, gtk3
, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script
, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
{ lib
, stdenv
, fetchFromGitLab
, nix-update-script
, appstream
, desktop-file-utils
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook
, glib
, gtk3
, json-glib
, libappindicator
, libsoup
, webkitgtk
}:
stdenv.mkDerivation rec {
pname = "meteo";
version = "0.9.8";
version = "0.9.9";
src = fetchFromGitLab {
owner = "bitseater";
repo = pname;
rev = version;
sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0";
sha256 = "sha256-8v6lg66QEVFMNO8sMkh/H6ouS8359Z7gjRQQnJs+lEE=";
};
nativeBuildInputs = [
@@ -25,7 +41,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
geocode-glib
glib
gtk3
json-glib
libappindicator
@@ -44,12 +60,12 @@ stdenv.mkDerivation rec {
};
};
meta = with lib; {
description = "Know the forecast of the next hours & days";
homepage = "https://gitlab.com/bitseater/meteo";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ bobby285271 ];
platforms = platforms.linux;
mainProgram = "com.gitlab.bitseater.meteo";
};
}
@@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
version = "3.2.6";
version = "3.3.0";
pname = "hal-hardware-analyzer";
src = fetchFromGitHub {
owner = "emsec";
repo = "hal";
rev = "v${version}";
sha256 = "sha256-GRHRrAxZ10hmAXkGGSQEwNJTbnMbJ9jMyKnOUq+KoWo=";
sha256 = "sha256-uNpELHhSAVRJL/4iypvnl3nX45SqB419r37lthd2WmQ=";
};
# make sure bundled dependencies don't get in the way - install also otherwise
# copies them in full to the output, bloating the package
@@ -3,25 +3,25 @@
{
"kicad" = {
kicadVersion = {
version = "5.1.10";
version = "5.1.11";
src = {
rev = "88a1d61d58fdd62149bd1e00984e01540148ca1b";
sha256 = "10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc";
rev = "d6b7f2349bcdbc45b223e7fe0460d9f169343209";
sha256 = "03658kfd313lnvr4jihq1i72g2dfbzba8j1z2y4fxg3vrs54y7a0";
};
};
libVersion = {
version = "5.1.10";
version = "5.1.11";
libSources = {
i18n.rev = "f081afe79be4660d5c49a9d674e3cb666d76d4d0";
i18n.rev = "0b8cef6bd08818cc0360f240544733dce509da3f";
i18n.sha256 = "0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6";
symbols.rev = "6dec5004b6a2679c19d4857bda2f90c5ab3a5726";
symbols.sha256 = "0n25rq32jwyigfw26faqraillwv6zbi2ywy26dkz5zqlf5xp56ad";
templates.rev = "1ccbaf3704e8ff4030d0915f71e051af621ef7d7";
templates.sha256 = "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs";
footprints.rev = "302ac78bac21825532f970fb92714fa5973ad79b";
footprints.sha256 = "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i";
packages3d.rev = "7abe02f30fd79b8f4f66c01589861df7f8f72f04";
packages3d.sha256 = "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y";
symbols.rev = "7d4cbbddceafa1f69858449e16ac7229abef3c9a";
symbols.sha256 = "1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2";
templates.rev = "f4c74f4130c8432399089c8b2dc21319b769bbe9";
templates.sha256 = "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g";
footprints.rev = "e53d53ac4a30959b03ed3297d7659ea82244fb45";
footprints.sha256 = "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s";
packages3d.rev = "be0ba9377b4ec0f11a4b9aceda150eed93027f72";
packages3d.sha256 = "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr";
};
};
};
@@ -1,5 +1,4 @@
{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
, fetchpatch
, openssl, gmp, zlib, fetchFromGitHub, rustPlatform, libiconv }:
let
@@ -8,16 +7,16 @@ in
rustPlatform.buildRustPackage rec {
pname = "elan";
version = "1.1.0";
version = "1.2.0";
src = fetchFromGitHub {
owner = "leanprover";
repo = "elan";
rev = "v${version}";
sha256 = "0xmml81krr0i18b14dymfdq43szpzws7qj8k404qab51lkqxyxsb";
sha256 = "0q3gay0j45c6cmykbis14gmc7xm89d0gqyz7lnysl0pgr5k20j6b";
};
cargoSha256 = "sha256-xjJ39hoSDn0VUH0YcL+mQBXbzFcIvZ38dPjBxV/yVNc=";
cargoSha256 = "1cklpi40fbiwz8m9p0cknmslpj0vwpr0x8j02vam6sng9dsb50i9";
nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -41,11 +40,6 @@ rustPlatform.buildRustPackage rec {
--subst-var dynamicLinker \
--subst-var libPath
'')
# fix build, will be included in 1.1.1
(fetchpatch {
url = "https://github.com/leanprover/elan/commit/8d1dec09d67b2ac1768b111d24f1a1cabdd563fa.patch";
sha256 = "sha256-yMdnXqycu4VF9EKavZ85EuspvAqvzDSIm5894SB+3+A=";
})
];
postInstall = ''
@@ -100,6 +100,9 @@ buildPythonApplication rec {
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
'';
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
version = "2.17.2";
version = "2.17.3";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
sha256 = "sha256-JfT0jW6aUZAYESQI0tFfnITFv20Jk7DWbvz8Ipt4t1Y=";
sha256 = "sha256-ez+Egl9vvfEZbeIEx7hHmH2Lhyvl93UHRkvkHaG46RQ=";
};
# Fix 'NameError: name 'ssl' is not defined'
@@ -4,8 +4,8 @@ let
common = opts: callPackage (import ./common.nix opts);
in {
sublime-merge = common {
buildVersion = "2056";
sha256 = "08472214kazx9fdw7y8gy0bp63mqxcpa79myn2w95wdp0mrlr119";
buildVersion = "2063";
sha256 = "l6vxcOIQ3kQqNzLkf3PbuU3DpDfLh0tXCl/LnJsCt2k=";
} {};
sublime-merge-dev = common {
@@ -0,0 +1,125 @@
{ lib
, stdenv
, fetchFromGitLab
, cmake
, libxml2
, meson
, ninja
, perl
, python3
, pkgconf
, wrapGAppsHook
, at-spi2-core
, dbus
, elfutils
, epoxy
, gexiv2
, glib
, gobject-introspection
, gst-plugins-base
, gstreamer
, gtk3
, lcms2
, libdatrie
, libgphoto2
, libgudev
, libpeas
, libraw
, libselinux
, libsepol
, libthai
, libunwind
, libxkbcommon
, orc
, pcre
, udev
, util-linux
, xorg
}:
stdenv.mkDerivation rec {
pname = "entangle";
version = "3.0";
src = fetchFromGitLab {
owner = "entangle";
repo = "entangle";
rev = "v${version}";
sha256 = "hz2WSDOjriQSavFlDT+35x1X5MeInq80ZrSP1WR/td0=";
};
nativeBuildInputs = [
cmake
glib.dev
libxml2.bin # for xmllint
meson
ninja
perl # for pod2man and build scripts
python3 # for build scripts
pkgconf
wrapGAppsHook
];
buildInputs = [
at-spi2-core
dbus
epoxy
elfutils
gexiv2
glib
gobject-introspection
gst-plugins-base
gstreamer
gtk3
lcms2
libdatrie
libgphoto2
libgudev
libpeas
libraw
libselinux
libsepol
libthai
libunwind
libxkbcommon
orc
pcre
udev
util-linux
] ++ (with xorg; [
libXdmcp
libXtst
]);
dontUseCmakeConfigure = true;
# Disable building of doc/reference since it requires network connection to render XML to HTML
# Patch build script shebangs
postPatch = ''
sed -i "/subdir('reference')/d" "docs/meson.build"
patchShebangs --build build-aux meson_post_install.py
sed -i meson_post_install.py \
-e "/print('Update icon cache...')/d" \
-e "/gtk-update-icon-cache/d"
'';
postInstall = ''
substituteInPlace "$out/share/applications/org.entangle_photo.Manager.desktop" \
--replace "Exec=entangle" "Exec=$out/bin/entangle"
'';
meta = with lib; {
description = "Tethered camera control and capture";
longDescription = ''
Entangle uses GTK and libgphoto2 to provide a graphical interface
for tethered photography with digital cameras.
It includes control over camera shooting and configuration settings
and 'hands off' shooting directly from the controlling computer.
This app can also serve as a camera app for mobile devices.
'';
homepage = "https://gitlab.com/entangle/entangle";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ ShamrockLee ];
};
}
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "sub-batch";
version = "0.4.0";
version = "0.4.1";
src = fetchFromGitHub {
owner = "kl";
repo = pname;
rev = "v${version}";
sha256 = "sha256-5fDnSmnnVB1RGrNrnmp40OGFF+OAhppnhOjVgnYxXr0=";
sha256 = "sha256-WUW+lOGbZ82NJxmW+Ogxslf3COOp62aZ/08Yn26l4T0=";
};
cargoSha256 = "sha256-+ufa4Cgue8o9CTB3JDcQ38SlUq8PcRDyj+qNSAFpTas=";
cargoSha256 = "sha256-m9nBubmuuOcJyegmYGJizY/2b7oamBHKFNIaxOtikcA=";
nativeBuildInputs = [ makeWrapper ];
@@ -92,6 +92,11 @@ stdenv.mkDerivation rec {
sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2";
revert = true;
})
(fetchpatch {
name = "CVE-2021-3713.patch"; # remove with next release
url = "https://gitlab.com/qemu-project/qemu/-/commit/13b250b12ad3c59114a6a17d59caf073ce45b33a.patch";
sha256 = "0lkzfc7gdlvj4rz9wk07fskidaqysmx8911g914ds1jnczgk71mf";
})
] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch
++ lib.optionals stdenv.hostPlatform.isMusl [
(fetchpatch {
@@ -23,14 +23,14 @@ let
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
version = "6.1.26";
version = "6.1.28";
in stdenv.mkDerivation {
pname = "virtualbox";
inherit version;
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "0212602eea878d6c9fd7f4a3e0182da3e4505f31d25f5539fb8f7b1fbe366195";
sha256 = "8d34993d8e9c0cf35e7bd44dd26c8c757f17a3b7d5a64052f945d00fd798ebfe";
};
outputs = [ "out" "modsrc" ];
@@ -94,9 +94,6 @@ in stdenv.mkDerivation {
})
++ [
./qtx11extras.patch
# Temporary workaround for broken build
# https://www.virtualbox.org/pipermail/vbox-dev/2021-July/015670.html
./fix-configure-pkgconfig-qt.patch
# https://github.com/NixOS/nixpkgs/issues/123851
./fix-audio-driver-loading.patch
];
@@ -202,11 +199,6 @@ in stdenv.mkDerivation {
done
''}
# https://github.com/NixOS/nixpkgs/issues/137104
${optionalString (enableHardening || headless) ''
rm $libexec/components/VBoxREM.so
''}
cp -rv out/linux.*/${buildType}/bin/src "$modsrc"
'';
@@ -12,7 +12,7 @@ fetchurl rec {
# Manually sha256sum the extensionPack file, must be hex!
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
let value = "aaa1a1f8615d5bd2e08b158ce6f415262fbb595e169e2d415c5b1844ac258eee";
let value = "85d7858a95d802c41cb86e1b573dc501d782e5d040937e0d8505a37c29509774";
in assert (builtins.stringLength value) == 64; value;
meta = {
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "22d02ec417cd7723d7269dbdaa71c48815f580c0ca7a0606c42bd623f84873d7";
sha256 = "eab85206cfb9d7087982deb2635d19a4244a3c6783622a4817fb1a31e48e98e5";
};
KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
@@ -1,8 +1,8 @@
diff --git a/include/iprt/mangling.h b/include/iprt/mangling.h
index c1daa8f..8618371 100644
index 25b918d1..1420ff1d 100644
--- a/include/iprt/mangling.h
+++ b/include/iprt/mangling.h
@@ -1440,6 +1440,7 @@
@@ -1695,6 +1695,7 @@
# define RTPathStripSuffix RT_MANGLER(RTPathStripSuffix)
# define RTPathStripFilename RT_MANGLER(RTPathStripFilename)
# define RTPathStripTrailingSlash RT_MANGLER(RTPathStripTrailingSlash)
@@ -10,7 +10,7 @@ index c1daa8f..8618371 100644
# define RTPathTemp RT_MANGLER(RTPathTemp)
# define RTPathTraverseList RT_MANGLER(RTPathTraverseList)
# define RTPathUnlink RT_MANGLER(RTPathUnlink)
@@ -1478,6 +1479,7 @@
@@ -1734,6 +1735,7 @@
# define RTProcGetAffinityMask RT_MANGLER(RTProcGetAffinityMask)
# define RTProcGetExecutablePath RT_MANGLER(RTProcGetExecutablePath)
# define RTProcGetPriority RT_MANGLER(RTProcGetPriority)
@@ -19,13 +19,14 @@ index c1daa8f..8618371 100644
# define RTProcQueryParent RT_MANGLER(RTProcQueryParent)
# define RTProcQueryUsername RT_MANGLER(RTProcQueryUsername)
diff --git a/include/iprt/path.h b/include/iprt/path.h
index 8bd42bc..2c23d3e 100644
index 99060e35..ccfbeb76 100644
--- a/include/iprt/path.h
+++ b/include/iprt/path.h
@@ -1064,6 +1064,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst,
@@ -1221,6 +1221,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst, const char *p
*/
RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath);
/**
+/**
+ * Gets the path to the NixOS setuid wrappers directory.
+ *
+ * @returns iprt status code.
@@ -34,18 +35,18 @@ index 8bd42bc..2c23d3e 100644
+ */
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath);
+
+/**
/**
* Gets the user home directory.
*
* @returns iprt status code.
diff --git a/include/iprt/process.h b/include/iprt/process.h
index 043653e..1070280 100644
index f4f67dd4..ab882a19 100644
--- a/include/iprt/process.h
+++ b/include/iprt/process.h
@@ -327,6 +327,16 @@ RTR3DECL(const char *) RTProcShortName(void);
@@ -352,6 +352,16 @@ RTR3DECL(const char *) RTProcExecutablePath(void);
*/
RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath);
/**
+/**
+ * Gets the path to the NixOS setuid wrappers directory.
+ *
+ * @returns pszExecPath on success. NULL on buffer overflow or other errors.
@@ -55,15 +56,14 @@ index 043653e..1070280 100644
+ */
+RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath);
+
+/**
/**
* Daemonize the current process, making it a background process.
*
* The way this work is that it will spawn a detached / backgrounded /
diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
index ce0f288..6193108 100644
index 75ff8572..18a077b7 100644
--- a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
+++ b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
@@ -1502,9 +1502,9 @@ static int supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bo
@@ -1531,9 +1531,9 @@ static int supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bo
bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 2 /*bin*/ || suplibHardenedStrCmp(pszPath, "/usr/lib/iconv");
# else
NOREF(fRelaxed);
@@ -75,20 +75,46 @@ index ce0f288..6193108 100644
return supR3HardenedSetError3(VERR_SUPLIB_WRITE_NON_SYS_GROUP, pErrInfo,
"An unknown (and thus untrusted) group has write access to '", pszPath,
"' and we therefore cannot trust the directory content or that of any subdirectory");
diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
index 2991d3a7..d042a08b 100644
--- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
/* Get the path to the executable directory w/ trailing slash: */
char szPath[RTPATH_MAX];
- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
+ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
AssertRCReturn(vrc, vrc);
size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
index 2e57690a..3272c840 100644
--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
* ASSUME it is relative to the directory that holds VBoxSVC.
*/
char szExePath[RTPATH_MAX];
- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
+ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
RTPathStripFilename(szExePath);
int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
AssertLogRelRCReturn(vrc, vrc);
diff --git a/src/VBox/Main/src-server/generic/NetIf-generic.cpp b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
index 98dc91a..43a819f 100644
index af155966..3b8e793d 100644
--- a/src/VBox/Main/src-server/generic/NetIf-generic.cpp
+++ b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
@@ -47,7 +47,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
@@ -48,7 +48,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
const char *args[] = { NULL, pcszIfName, pszAddr, pszOption, pszMask, NULL };
char szAdpCtl[RTPATH_MAX];
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtl: failed to get program path, rc=%Rrc.\n", rc));
@@ -89,7 +89,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
@@ -95,7 +95,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
int NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize)
{
char szAdpCtl[RTPATH_MAX];
@@ -97,23 +123,23 @@ index 98dc91a..43a819f 100644
if (RT_FAILURE(rc))
{
LogRel(("NetIfAdpCtlOut: Failed to get program path, rc=%Rrc\n", rc));
@@ -201,7 +201,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
@@ -210,7 +210,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
progress.queryInterfaceTo(aProgress);
char szAdpCtl[RTPATH_MAX];
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
if (RT_FAILURE(rc))
- vrc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
+ vrc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
if (RT_FAILURE(vrc))
{
progress->i_notifyComplete(E_FAIL,
diff --git a/src/VBox/Runtime/r3/path.cpp b/src/VBox/Runtime/r3/path.cpp
index 944848e..744a261 100644
index 4b1a0ada..7f6dd707 100644
--- a/src/VBox/Runtime/r3/path.cpp
+++ b/src/VBox/Runtime/r3/path.cpp
@@ -81,6 +81,12 @@ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath)
}
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath)
+{
+ return RTStrCopy(pszPath, cchPath, "/run/wrappers/bin");
@@ -124,13 +150,13 @@ index 944848e..744a261 100644
{
#if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE)
diff --git a/src/VBox/Runtime/r3/process.cpp b/src/VBox/Runtime/r3/process.cpp
index 2aab645..9795f21 100644
index 5f7c7a87..59461cfa 100644
--- a/src/VBox/Runtime/r3/process.cpp
+++ b/src/VBox/Runtime/r3/process.cpp
@@ -111,6 +111,26 @@ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath)
return NULL;
@@ -117,6 +117,25 @@ RTR3DECL(const char *) RTProcExecutablePath(void)
return g_szrtProcExePath;
}
+/*
+ * Note the / at the end! This is important, because the functions using this
+ * will cut off everything after the rightmost / as this function is analogous
@@ -150,33 +176,6 @@ index 2aab645..9795f21 100644
+ AssertMsgFailed(("Buffer too small (%zu <= %zu)\n", cbExecPath, sizeof(SUIDDIR)));
+ return NULL;
+}
+
RTR3DECL(const char *) RTProcShortName(void)
{
diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
index 2e57690..3272c84 100644
--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
* ASSUME it is relative to the directory that holds VBoxSVC.
*/
char szExePath[RTPATH_MAX];
- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
+ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
RTPathStripFilename(szExePath);
int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
AssertLogRelRCReturn(vrc, vrc);
diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
index 2991d3a7..d042a08b 100644
--- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
/* Get the path to the executable directory w/ trailing slash: */
char szPath[RTPATH_MAX];
- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
+ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
AssertRCReturn(vrc, vrc);
size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "i3";
version = "4.19.2";
version = "4.20";
src = fetchurl {
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk=";
sha256 = "sha256-jPTxdPbPVU84VjOAaBq+JYaOmVWIN5HgmG7NicU6wyI=";
};
nativeBuildInputs = [
@@ -6,16 +6,16 @@ in
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;
+4 -3
View File
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "5.1.3";
version = "6.0.0";
in fetchzip {
name = "ibm-plex-${version}";
@@ -10,14 +10,15 @@ in fetchzip {
postFetch = ''
mkdir -p $out/share/fonts
unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
unzip -j $downloadedFile "OpenType/*/*.otf" -x "OpenType/IBM-Plex-Sans-JP/unhinted/*" -d $out/share/fonts/opentype
'';
sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
sha256 = "0zv9kw4hmchf374pl0iajzybmx5wklsplg56j115m46i4spij6mr";
meta = with lib; {
description = "IBM Plex Typeface";
homepage = "https://www.ibm.com/plex/";
changelog = "https://github.com/IBM/plex/raw/v${version}/CHANGELOG.md";
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ maintainers.romildo ];
+7 -6
View File
@@ -1,26 +1,27 @@
{ lib, fetchurl, libarchive }:
let
version = "0.32.9";
version = "0.34.7";
in fetchurl {
name = "sarasa-gothic-${version}";
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
sha256 = "0mwaj9dq26f36ddywjm7m0is1jml2kpmqm46b16c8avvr97c65z5";
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttf-${version}.7z";
sha256 = "094sl6gklrdv9pk4r6451dvz0fjyjmwys7i81qrz4ik1km5dfq9b";
recursiveHash = true;
downloadToTemp = true;
postFetch = ''
mkdir -p $out/share/fonts
${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts
mkdir -p $out/share/fonts/truetype
${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts/truetype
'';
meta = with lib; {
description = "SARASA GOTHIC is a Chinese & Japanese programming font based on Iosevka and Source Han Sans";
description = "A CJK programming font based on Iosevka and Source Han Sans";
homepage = "https://github.com/be5invis/Sarasa-Gothic";
license = licenses.ofl;
maintainers = [ maintainers.ChengCat ];
hydraPlatforms = [ ]; # disabled from hydra because it's so big
platforms = platforms.all;
};
}
@@ -2,7 +2,7 @@
let
pname = "source-han-code-jp";
version = "2.011R";
version = "2.012R";
in fetchzip {
name = "${pname}-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
'';
sha256 = "184vrjkymcm29k1cx00cdvjchzqr1w17925lmh85f0frx7vwljcd";
sha256 = "16y5as1k864ghy3vzp8svr3q0sw57rv53za3f48700ksvxz5pwry";
meta = {
description = "A monospaced Latin font suitable for coding";
+12 -18
View File
@@ -1,14 +1,10 @@
{ lib, fetchFromGitHub }:
{ lib, fetchzip }:
let
pname = "victor-mono";
version = "1.4.1";
in fetchFromGitHub rec {
name = "${pname}-${version}";
owner = "rubjo";
repo = pname;
rev = "v${version}";
version = "1.5.0";
in
fetchzip {
name = "victor-mono-${version}";
# Upstream prefers we download from the website,
# but we really insist on a more versioned resource.
@@ -17,23 +13,21 @@ in fetchFromGitHub rec {
# so we extract it from the tagged release.
# Both methods produce the same file, but this way
# we can safely reason about what version it is.
url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
postFetch = ''
tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
mkdir -p $out/share/fonts/{true,open}type/${pname}
unzip -j VictorMonoAll.zip \*.ttf -d $out/share/fonts/truetype/${pname}
unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
mkdir -p $out/share/fonts/
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
sha256 = "1x3dnkq8awn5zniywap78qwp5nxmf14bq8snzsywk70ah0jmbawi";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";
homepage = "https://rubjo.github.io/victor-mono";
license = with licenses; [ mit ];
license = licenses.ofl;
maintainers = with maintainers; [ jpotier dtzWill ];
platforms = platforms.all;
};
}
+2 -2
View File
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "numix-icon-theme";
version = "21.04.14";
version = "21.10.31";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
sha256 = "1ilzqh9f7skdfg5sl97zfgwrzvwa1zna22dpq0954gyyzvy7k7lg";
sha256 = "sha256-wyVvXifdbKR2aiBMrki8y/H0khH4eFD1RHVSC+jAT28=";
};
nativeBuildInputs = [ gtk3 ];
@@ -29,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "gnome-maps";
version = "41.0";
version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-G0CC22wHDp3LCFJZ6+PIpCG44eiyezKEq2BXULudjJI=";
sha256 = "sha256-XtyUpXlHDO1HztKSxUq6Z8vnBIGOF0BsCQwB1Dlb4a0=";
};
doCheck = true;
@@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "gnome-remote-desktop";
version = "41.0";
version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-apvIscaHRvSjqsH+dMRKcuJqi7S+HxynMCdwWstlK14=";
hash = "sha256-wOiJsO2BGxGAm777FzOElNj1L/USC+bj/9O65angX98=";
};
nativeBuildInputs = [
@@ -27,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "gnome-terminal";
version = "3.42.0";
version = "3.42.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "tQ6eVmQjDmyikLzziBKltl4LqsZqSG7iEIlM9nX3Lgs=";
sha256 = "wxmxQFUBuMdpPmFvSOztQWldLnhhSMpfnie8fZj0rrE=";
};
nativeBuildInputs = [
@@ -34,13 +34,13 @@
stdenv.mkDerivation rec {
pname = "nautilus";
version = "41.0";
version = "41.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "+blBrcEEcAxn6kB2YiMV8fa3fc7BVMN/PUwLKDlQoeU=";
sha256 = "PmMwmIU3EaPpaxL+kiizIBgW5VSygj8WHn2QGoiAWC8=";
};
patches = [
@@ -19,14 +19,14 @@
stdenv.mkDerivation rec {
pname = "aisleriot";
version = "3.22.17";
version = "3.22.19";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = pname;
rev = version;
sha256 = "sha256-14z/EdEz1XFDrQZlpoeHW73G187XuZX/uQXp+bAUsmI=";
sha256 = "sha256-YY0/HkafcbbW0xuE9RmjYMHN50lM0o0zugOyTefT0bE=";
};
nativeBuildInputs = [
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "gnome-chess";
version = "41.0";
version = "41.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-chess/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "8MKVFSLw5YX6aDdipBk9q2ujLtjOiSB/gIJ7VgRVaO8=";
sha256 = "62GYhlljlrQDOj8oo8LjAEtU6+Gzi0DWQiwXufLMF9A=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "tali";
version = "40.3";
version = "40.4";
src = fetchurl {
url = "mirror://gnome/sources/tali/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "neLxCreZjHprLKYvs3nBgby8HtYqp6gkG8VVHVF4/iE=";
sha256 = "AsrMdvTuQjD2eqAK2hlOnFSPidJ6DnLyANi9U67nGhc=";
};
nativeBuildInputs = [
@@ -1,7 +1,6 @@
{ stdenv
, lib
, fetchurl
, fetchpatch
, meson
, ninja
, pkg-config
@@ -15,28 +14,15 @@
stdenv.mkDerivation rec {
pname = "gnome-autoar";
version = "0.4.0";
version = "0.4.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "6oxtUkurxxKsWeHQ46yL8BN0gtrfM8lP6RE3lKG8RHQ=";
sha256 = "ZGvVDrrZLZHBvokJehU2QVYVdELKwUcd7X7LJ9mpFQ4=";
};
patches = [
# Make compatible with older Meson.
# https://gitlab.gnome.org/GNOME/gnome-autoar/-/merge_requests/26
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-autoar/-/commit/2d90da6174c03aad546802234a3d77fa0b714e6b.patch";
sha256 = "CysDpBJmVPm4gOSV2h041MY2yApfAy8+4QC7Jlka1xE=";
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-autoar/-/commit/ac21bd0c50584a1905a0da65d4bf9a6926ecd483.patch";
sha256 = "aTu6eKFSKjljk0TYkhFjPcD8eJCIk8TR0YhZYO9JE1k=";
})
];
nativeBuildInputs = [
gobject-introspection
meson
@@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "libgnome-games-support";
version = "1.8.1";
version = "1.8.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0gs1k88wwafn5cdyb5yq1cxpi9azachb0ysxgwh15sx77g6plyy3";
sha256 = "KENGBKewOHMawCMXMTiP8QT1ZbsjMMwk54zaBM/T730=";
};
nativeBuildInputs = [
@@ -17,11 +17,11 @@
mkXfceDerivation {
category = "apps";
pname = "xfdashboard";
version = "0.9.4";
version = "0.9.5";
rev-prefix = "";
odd-unstable = false;
sha256 = "sha256-ZDrBLSfRBw5/nIs/x1jJQCVgNJer85b8Hm1kkX1Dk3s=";
sha256 = "sha256-nb1zY78MUjEOJF59MYIOY1rxo3JFmzH9yTJVUGsOwOA=";
buildInputs = [
clutter
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
disallowedReferences = [ stdenv.cc.cc ];
postFixup = ''
remove-references-to -t ${stdenv.cc.cc} "$(readlink -f $out/share/perl6/runtime/dynext/libperl6_ops_moar.so)"
remove-references-to -t ${stdenv.cc.cc} "$(readlink -f $out/share/perl6/runtime/dynext/libperl6_ops_moar${stdenv.hostPlatform.extensions.sharedLibrary})"
'';
meta = with lib; {
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "dleyna-renderer";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitHub {
owner = "phako";
repo = pname;
rev = "v${version}";
sha256 = "EaTE5teMkVDHoJuTLdqcsIL7OyM+tOz85T5D9V3KDoo=";
sha256 = "sha256-bGasT3XCa7QHV3D7z59TSHoqWksNSIgaO0z9zYfHHuw=";
};
nativeBuildInputs = [
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "dleyna-server";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitHub {
owner = "phako";
repo = pname;
rev = "v${version}";
sha256 = "bScgwJGPrCaLrw67WnvSpINgq5Vv9LJ/I0MUP9BeO2E=";
sha256 = "sha256-jlF9Lr/NG+Fsy/bB7aLb7xOLqel8GueJK5luo9rsDME=";
};
nativeBuildInputs = [
+8 -2
View File
@@ -2,14 +2,14 @@
}:
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 ];
@@ -22,6 +22,12 @@ stdenv.mkDerivation rec {
"-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";
homepage = "https://google.github.io/draco/";
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "drogon";
version = "1.7.2";
version = "1.7.3";
src = fetchFromGitHub {
owner = "drogonframework";
repo = "drogon";
rev = "v${version}";
sha256 = "0g2fm8xb2gi7qaib6mxvg6k6y4g2d0a2jg4k5qvsjbd0n7j8746j";
sha256 = "0j7bnc6l5hbcf0l7pjzw82i9z1rbh57ni60wpa50q10gwbm4waxn";
fetchSubmodules = true;
};
@@ -1,8 +1,8 @@
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)')
@@ -13,7 +13,7 @@ index 66791f3a..93b5e2a9 100644
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(
@@ -22,6 +22,6 @@ index aa30a86f..1edebb2d 100644
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',
@@ -1,24 +0,0 @@
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
View File
@@ -63,7 +63,7 @@ let
self = stdenv.mkDerivation rec {
pname = "pipewire";
version = "0.3.38";
version = "0.3.39";
outputs = [
"out"
@@ -73,7 +73,6 @@ let
"dev"
"doc"
"man"
"mediaSession"
"installedTests"
];
@@ -82,7 +81,7 @@ let
owner = "pipewire";
repo = "pipewire";
rev = version;
sha256 = "sha256-QENz4MVyKuPJynA+NBdmKa6g1GrcRg9vzXLJ1/i3VJU=";
sha256 = "sha256-peTS1+NuQxZg1rrv8DrnJW5BR9yReleqooIwhZWHLjM=";
};
patches = [
@@ -90,8 +89,6 @@ let
./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
@@ -100,11 +97,11 @@ let
./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";
})
];
@@ -147,7 +144,6 @@ let
"-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"
@@ -162,7 +158,8 @@ let
"-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
@@ -171,29 +168,20 @@ let
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"
@@ -205,21 +193,14 @@ let
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"
@@ -0,0 +1,93 @@
{ 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
@@ -1,4 +1,4 @@
{ lib, runCommand, pipewire, paths-out, paths-lib, paths-out-media-session }:
{ lib, runCommand, package, paths-out, paths-lib }:
let
check-path = output: path: ''
@@ -14,9 +14,8 @@ let
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
View File
@@ -11,14 +11,27 @@ NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"
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/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/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/"
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/" -name '*.conf.json')
for c in $conf_files; do
file_name=$(basename "$c")
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/media-session/"
done
done
@@ -2,13 +2,13 @@
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 ];
@@ -8,11 +8,11 @@
buildPythonPackage rec {
pname = "aenum";
version = "3.1.0";
version = "3.1.1";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-h/Dp70+ChXirBq8w5NeUQEO/Ts0/S3vRy+N+IXPN6Uo=";
sha256 = "75b96aa148e1335eae6c12015563989a675fcbd0bcbd0ae7ce5786329278929b";
};
checkInputs = [
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "aiounifi";
version = "28";
version = "29";
disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = pname;
rev = "v${version}";
sha256 = "1r86pk80sa1la2s7c6v9svh5cpkci6jcw1xziz0h09jdvv5j5iff";
sha256 = "sha256-A2+jLxKpha7HV1m3uzy00o8tsjwx0Uuwn5x3DO9daTI=";
};
propagatedBuildInputs = [
@@ -0,0 +1,59 @@
{ lib
, angr
, buildPythonPackage
, cmd2
, coreutils
, fetchFromGitHub
, pygments
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "angrcli";
version = "1.1.1";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "fmagin";
repo = "angr-cli";
rev = "v${version}";
sha256 = "0mz3yzsw08xwpj6188rxmr7darilh4ismcnh8nhp9945wjyzl4kr";
};
propagatedBuildInputs = [
angr
cmd2
pygments
];
checkInputs = [
coreutils
pytestCheckHook
];
postPatch = ''
# Version mismatch, https://github.com/fmagin/angr-cli/pull/11
substituteInPlace setup.py \
--replace "version='1.1.0'," "version='${version}',"
substituteInPlace tests/test_derefs.py \
--replace "/bin/ls" "${coreutils}/bin/ls"
'';
disabledTests = [
"test_sims"
];
pythonImportsCheck = [
"angrcli"
];
meta = with lib; {
description = "Python modules to allow easier interactive use of angr";
homepage = "https://github.com/fmagin/angr-cli";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}
@@ -2,29 +2,32 @@
, buildPythonPackage
, fetchFromGitHub
, stdenv
, darwin
, AudioToolbox
, AudioUnit
, CoreServices
}:
buildPythonPackage rec {
pname = "audiotools";
version = "3.1.1";
buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
buildInputs = lib.optionals stdenv.isDarwin [
AudioToolbox
AudioUnit
CoreServices
]);
];
src = fetchFromGitHub {
owner = "tuffy";
repo = "python-audio-tools";
rev = "v3.1.1";
rev = "v${version}";
sha256 = "sha256-y+EiK9BktyTWowOiJvOb2YjtbPa7R62Wb5zinkyt1OM=";
};
meta = {
meta = with lib; {
description = "Utilities and Python modules for handling audio";
homepage = "http://audiotools.sourceforge.net/";
license = lib.licenses.gpl2Plus;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
};
}
@@ -9,12 +9,12 @@
buildPythonPackage rec {
pname = "base58";
version = "2.1.0";
version = "2.1.1";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-FxpUe0o8YeGuOAciSm967HXjZMQ5XnViZJ1zNXaAAaI=";
sha256 = "c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c";
};
checkInputs = [
@@ -4,11 +4,11 @@
buildPythonPackage rec {
pname = "django-storages";
version = "1.12.2";
version = "1.12.3";
src = fetchPypi {
inherit pname version;
sha256 = "0013ebe4904521e2fa28f33591a03a7210304d73363e7eadd7cdcf81c12ba003";
sha256 = "a475edb2f0f04c4f7e548919a751ecd50117270833956ed5bd585c0575d2a5e7";
};
propagatedBuildInputs = [ django ];
@@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "flask-paginate";
version = "2021.10.26";
version = "2021.10.29";
src = fetchPypi {
inherit pname version;
sha256 = "f124390664b2cfd835c54cc884d67fdaa550782a0783576f719fec2379cad193";
sha256 = "660ba1451e4cb168d3a42ed63914fe507bb5c0b30c26a6286b923077bba2362b";
};
propagatedBuildInputs = [ flask ];

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