Merge master into staging-next
This commit is contained in:
commit
fced6fe69b
@ -96,6 +96,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [atuin](https://github.com/ellie/atuin), a sync server for shell history. Available as [services.atuin](#opt-services.atuin.enable).
|
||||
|
||||
- [SFTPGo](https://github.com/drakkan/sftpgo), a fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support. Available as [services.sftpgo](options.html#opt-services.sftpgo.enable).
|
||||
|
||||
- [esphome](https://esphome.io), a dashboard to configure ESP8266/ESP32 devices for use with Home Automation systems. Available as [services.esphome](#opt-services.esphome.enable).
|
||||
|
||||
- [networkd-dispatcher](https://gitlab.com/craftyguy/networkd-dispatcher), a dispatcher service for systemd-networkd connection status changes. Available as [services.networkd-dispatcher](#opt-services.networkd-dispatcher.enable).
|
||||
@ -567,6 +569,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- `boot.initrd.luks.device.<name>` has a new `tryEmptyPassphrase` option, this is useful for OEM's who need to install an encrypted disk with a future settable passphrase
|
||||
|
||||
- there is a new `boot/stratisroot.nix` module that enables booting from a volume managed by the Stratis storage management daemon. Use `fileSystems.<name>.stratis.poolUuid` to configure the pool containing the fs.
|
||||
|
||||
- Lisp gained a [manual section](https://nixos.org/manual/nixpkgs/stable/#lisp), documenting a new and backwards incompatible interface. The previous interface will be removed in a future release.
|
||||
|
||||
- The `bind` module now allows the per-zone `allow-query` setting to be configured (previously it was hard-coded to `any`; it still defaults to `any` to retain compatibility).
|
||||
|
@ -335,7 +335,7 @@ sub findStableDevPath {
|
||||
|
||||
my $st = stat($dev) or return $dev;
|
||||
|
||||
foreach my $dev2 (glob("/dev/disk/by-uuid/*"), glob("/dev/mapper/*"), glob("/dev/disk/by-label/*")) {
|
||||
foreach my $dev2 (glob("/dev/stratis/*/*"), glob("/dev/disk/by-uuid/*"), glob("/dev/mapper/*"), glob("/dev/disk/by-label/*")) {
|
||||
my $st2 = stat($dev2) or next;
|
||||
return $dev2 if $st->rdev == $st2->rdev;
|
||||
}
|
||||
@ -467,6 +467,17 @@ EOF
|
||||
}
|
||||
}
|
||||
|
||||
# is this a stratis fs?
|
||||
my $stableDevPath = findStableDevPath $device;
|
||||
my $stratisPool;
|
||||
if ($stableDevPath =~ qr#/dev/stratis/(.*)/.*#) {
|
||||
my $poolName = $1;
|
||||
my ($header, @lines) = split "\n", qx/stratis pool list/;
|
||||
my $uuidIndex = index $header, 'UUID';
|
||||
my ($line) = grep /^$poolName /, @lines;
|
||||
$stratisPool = substr $line, $uuidIndex - 32, 36;
|
||||
}
|
||||
|
||||
# Don't emit tmpfs entry for /tmp, because it most likely comes from the
|
||||
# boot.tmp.useTmpfs option in configuration.nix (managed declaratively).
|
||||
next if ($mountPoint eq "/tmp" && $fsType eq "tmpfs");
|
||||
@ -474,7 +485,7 @@ EOF
|
||||
# Emit the filesystem.
|
||||
$fileSystems .= <<EOF;
|
||||
fileSystems.\"$mountPoint\" =
|
||||
{ device = \"${\(findStableDevPath $device)}\";
|
||||
{ device = \"$stableDevPath\";
|
||||
fsType = \"$fsType\";
|
||||
EOF
|
||||
|
||||
@ -484,6 +495,12 @@ EOF
|
||||
EOF
|
||||
}
|
||||
|
||||
if ($stratisPool) {
|
||||
$fileSystems .= <<EOF;
|
||||
stratis.poolUuid = "$stratisPool";
|
||||
EOF
|
||||
}
|
||||
|
||||
$fileSystems .= <<EOF;
|
||||
};
|
||||
|
||||
|
@ -1230,6 +1230,7 @@
|
||||
./services/web-apps/powerdns-admin.nix
|
||||
./services/web-apps/prosody-filer.nix
|
||||
./services/web-apps/restya-board.nix
|
||||
./services/web-apps/sftpgo.nix
|
||||
./services/web-apps/rss-bridge.nix
|
||||
./services/web-apps/selfoss.nix
|
||||
./services/web-apps/shiori.nix
|
||||
@ -1345,6 +1346,7 @@
|
||||
./system/boot/loader/raspberrypi/raspberrypi.nix
|
||||
./system/boot/loader/systemd-boot/systemd-boot.nix
|
||||
./system/boot/luksroot.nix
|
||||
./system/boot/stratisroot.nix
|
||||
./system/boot/modprobe.nix
|
||||
./system/boot/networkd.nix
|
||||
./system/boot/plymouth.nix
|
||||
|
@ -167,9 +167,11 @@ in
|
||||
<!-- create mount point if not present -->
|
||||
<mkmountpoint enable="${if cfg.createMountPoints then "1" else "0"}" remove="${if cfg.removeCreatedMountPoints then "true" else "false"}" />
|
||||
<!-- specify the binaries to be called -->
|
||||
<fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
|
||||
<!-- the comma in front of the options is necessary for empty options -->
|
||||
<fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ,${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}'</fusemount>
|
||||
<fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
|
||||
<cryptmount>${pkgs.pam_mount}/bin/mount.crypt -o ${concatStringsSep "," (cfg.cryptMountOptions ++ [ "%(OPTIONS)" ])} %(VOLUME) %(MNTPT)</cryptmount>
|
||||
<!-- the comma in front of the options is necessary for empty options -->
|
||||
<cryptmount>${pkgs.pam_mount}/bin/mount.crypt -o ,${concatStringsSep "," (cfg.cryptMountOptions ++ [ "%(OPTIONS)" ])} %(VOLUME) %(MNTPT)</cryptmount>
|
||||
<cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
|
||||
<pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
|
||||
${optionalString oflRequired "<ofl>${fake_ofl}/bin/fake_ofl %(SIGNAL) %(MNTPT)</ofl>"}
|
||||
|
@ -25,6 +25,8 @@ in
|
||||
options.services.thelounge = {
|
||||
enable = mkEnableOption (lib.mdDoc "The Lounge web IRC client");
|
||||
|
||||
package = mkPackageOptionMD pkgs "thelounge" { };
|
||||
|
||||
public = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -93,11 +95,11 @@ in
|
||||
serviceConfig = {
|
||||
User = "thelounge";
|
||||
StateDirectory = baseNameOf dataDir;
|
||||
ExecStart = "${pkgs.thelounge}/bin/thelounge start";
|
||||
ExecStart = "${getExe cfg.package} start";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.thelounge ];
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
375
nixos/modules/services/web-apps/sftpgo.nix
Normal file
375
nixos/modules/services/web-apps/sftpgo.nix
Normal file
@ -0,0 +1,375 @@
|
||||
{ options, config, lib, pkgs, utils, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.sftpgo;
|
||||
defaultUser = "sftpgo";
|
||||
settingsFormat = pkgs.formats.json {};
|
||||
configFile = settingsFormat.generate "sftpgo.json" cfg.settings;
|
||||
hasPrivilegedPorts = any (port: port > 0 && port < 1024) (
|
||||
catAttrs "port" (cfg.settings.httpd.bindings
|
||||
++ cfg.settings.ftpd.bindings
|
||||
++ cfg.settings.sftpd.bindings
|
||||
++ cfg.settings.webdavd.bindings
|
||||
)
|
||||
);
|
||||
in
|
||||
{
|
||||
options.services.sftpgo = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = mdDoc "sftpgo";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.sftpgo;
|
||||
defaultText = literalExpression "pkgs.sftpgo";
|
||||
description = mdDoc ''
|
||||
Which SFTPGo package to use.
|
||||
'';
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = mdDoc ''
|
||||
Additional command line arguments to pass to the sftpgo daemon.
|
||||
'';
|
||||
example = [ "--log-level" "info" ];
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/sftpgo";
|
||||
description = mdDoc ''
|
||||
The directory where SFTPGo stores its data files.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = defaultUser;
|
||||
description = mdDoc ''
|
||||
User account name under which SFTPGo runs.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = defaultUser;
|
||||
description = mdDoc ''
|
||||
Group name under which SFTPGo runs.
|
||||
'';
|
||||
};
|
||||
|
||||
loadDataFile = mkOption {
|
||||
default = null;
|
||||
type = with types; nullOr path;
|
||||
description = mdDoc ''
|
||||
Path to a json file containing users and folders to load (or update) on startup.
|
||||
Check the [documentation](https://github.com/drakkan/sftpgo/blob/main/docs/full-configuration.md)
|
||||
for the `--loaddata-from` command line argument for more info.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
default = {};
|
||||
description = mdDoc ''
|
||||
The primary sftpgo configuration. See the
|
||||
[configuration reference](https://github.com/drakkan/sftpgo/blob/main/docs/full-configuration.md)
|
||||
for possible values.
|
||||
'';
|
||||
type = with types; submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
httpd.bindings = mkOption {
|
||||
default = [];
|
||||
description = mdDoc ''
|
||||
Configure listen addresses and ports for httpd.
|
||||
'';
|
||||
type = types.listOf (types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = mdDoc ''
|
||||
Network listen address. Leave blank to listen on all available network interfaces.
|
||||
On *NIX you can specify an absolute path to listen on a Unix-domain socket.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
description = mdDoc ''
|
||||
The port for serving HTTP(S) requests.
|
||||
|
||||
Setting the port to `0` disables listening on this interface binding.
|
||||
'';
|
||||
};
|
||||
|
||||
enable_web_admin = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = mdDoc ''
|
||||
Enable the built-in web admin for this interface binding.
|
||||
'';
|
||||
};
|
||||
|
||||
enable_web_client = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = mdDoc ''
|
||||
Enable the built-in web client for this interface binding.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
ftpd.bindings = mkOption {
|
||||
default = [];
|
||||
description = mdDoc ''
|
||||
Configure listen addresses and ports for ftpd.
|
||||
'';
|
||||
type = types.listOf (types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = mdDoc ''
|
||||
Network listen address. Leave blank to listen on all available network interfaces.
|
||||
On *NIX you can specify an absolute path to listen on a Unix-domain socket.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 0;
|
||||
description = mdDoc ''
|
||||
The port for serving FTP requests.
|
||||
|
||||
Setting the port to `0` disables listening on this interface binding.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
sftpd.bindings = mkOption {
|
||||
default = [];
|
||||
description = mdDoc ''
|
||||
Configure listen addresses and ports for sftpd.
|
||||
'';
|
||||
type = types.listOf (types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = mdDoc ''
|
||||
Network listen address. Leave blank to listen on all available network interfaces.
|
||||
On *NIX you can specify an absolute path to listen on a Unix-domain socket.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 0;
|
||||
description = mdDoc ''
|
||||
The port for serving SFTP requests.
|
||||
|
||||
Setting the port to `0` disables listening on this interface binding.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
webdavd.bindings = mkOption {
|
||||
default = [];
|
||||
description = mdDoc ''
|
||||
Configure listen addresses and ports for webdavd.
|
||||
'';
|
||||
type = types.listOf (types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = mdDoc ''
|
||||
Network listen address. Leave blank to listen on all available network interfaces.
|
||||
On *NIX you can specify an absolute path to listen on a Unix-domain socket.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 0;
|
||||
description = mdDoc ''
|
||||
The port for serving WebDAV requests.
|
||||
|
||||
Setting the port to `0` disables listening on this interface binding.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
smtp = mkOption {
|
||||
default = {};
|
||||
description = mdDoc ''
|
||||
SMTP configuration section.
|
||||
'';
|
||||
type = types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = mdDoc ''
|
||||
Location of SMTP email server. Leave empty to disable email sending capabilities.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 465;
|
||||
description = mdDoc "Port of the SMTP Server.";
|
||||
};
|
||||
|
||||
encryption = mkOption {
|
||||
type = types.enum [ 0 1 2 ];
|
||||
default = 1;
|
||||
description = mdDoc ''
|
||||
Encryption scheme:
|
||||
- `0`: No encryption
|
||||
- `1`: TLS
|
||||
- `2`: STARTTLS
|
||||
'';
|
||||
};
|
||||
|
||||
auth_type = mkOption {
|
||||
type = types.enum [ 0 1 2 ];
|
||||
default = 0;
|
||||
description = mdDoc ''
|
||||
- `0`: Plain
|
||||
- `1`: Login
|
||||
- `2`: CRAM-MD5
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "sftpgo";
|
||||
description = mdDoc "SMTP username.";
|
||||
};
|
||||
|
||||
from = mkOption {
|
||||
type = types.str;
|
||||
default = "SFTPGo <sftpgo@example.com>";
|
||||
description = mdDoc ''
|
||||
From address.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.sftpgo.settings = (mapAttrs (name: mkDefault) {
|
||||
ftpd.bindings = [{ port = 0; }];
|
||||
httpd.bindings = [{ port = 0; }];
|
||||
sftpd.bindings = [{ port = 0; }];
|
||||
webdavd.bindings = [{ port = 0; }];
|
||||
httpd.openapi_path = "${cfg.package}/share/sftpgo/openapi";
|
||||
httpd.templates_path = "${cfg.package}/share/sftpgo/templates";
|
||||
httpd.static_files_path = "${cfg.package}/share/sftpgo/static";
|
||||
smtp.templates_path = "${cfg.package}/share/sftpgo/templates";
|
||||
});
|
||||
|
||||
users = optionalAttrs (cfg.user == defaultUser) {
|
||||
users = {
|
||||
${defaultUser} = {
|
||||
description = "SFTPGo system user";
|
||||
isSystemUser = true;
|
||||
group = defaultUser;
|
||||
home = cfg.dataDir;
|
||||
};
|
||||
};
|
||||
|
||||
groups = {
|
||||
${defaultUser} = {
|
||||
members = [ defaultUser ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.sftpgo = {
|
||||
description = "SFTPGo daemon";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment = {
|
||||
SFTPGO_CONFIG_FILE = mkDefault configFile;
|
||||
SFTPGO_LOG_FILE_PATH = mkDefault ""; # log to journal
|
||||
SFTPGO_LOADDATA_FROM = mkIf (cfg.loadDataFile != null) cfg.loadDataFile;
|
||||
};
|
||||
|
||||
serviceConfig = mkMerge [
|
||||
({
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
ReadWritePaths = [ cfg.dataDir ];
|
||||
LimitNOFILE = 8192; # taken from upstream
|
||||
KillMode = "mixed";
|
||||
ExecStart = "${cfg.package}/bin/sftpgo serve ${utils.escapeSystemdExecArgs cfg.extraArgs}";
|
||||
ExecReload = "${pkgs.util-linux}/bin/kill -s HUP $MAINPID";
|
||||
|
||||
# Service hardening
|
||||
CapabilityBoundingSet = [ (optionalString hasPrivilegedPorts "CAP_NET_BIND_SERVICE") ];
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged" ];
|
||||
UMask = "0077";
|
||||
})
|
||||
(mkIf hasPrivilegedPorts {
|
||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||
})
|
||||
(mkIf (cfg.dataDir == options.services.sftpgo.dataDir.default) {
|
||||
StateDirectory = baseNameOf cfg.dataDir;
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
64
nixos/modules/system/boot/stratisroot.nix
Normal file
64
nixos/modules/system/boot/stratisroot.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ config, lib, pkgs, utils, ... }:
|
||||
let
|
||||
requiredStratisFilesystems = lib.attrsets.filterAttrs (_: x: utils.fsNeededForBoot x && x.stratis.poolUuid != null) config.fileSystems;
|
||||
in
|
||||
{
|
||||
options = {};
|
||||
config = lib.mkIf (requiredStratisFilesystems != {}) {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.boot.initrd.systemd.enable;
|
||||
message = "stratis root fs requires systemd stage 1";
|
||||
}
|
||||
];
|
||||
boot.initrd = {
|
||||
systemd = {
|
||||
storePaths = [
|
||||
"${pkgs.stratisd}/lib/udev/stratis-base32-decode"
|
||||
"${pkgs.stratisd}/lib/udev/stratis-str-cmp"
|
||||
"${pkgs.lvm2.bin}/bin/dmsetup"
|
||||
"${pkgs.stratisd}/libexec/stratisd-min"
|
||||
"${pkgs.stratisd.initrd}/bin/stratis-rootfs-setup"
|
||||
];
|
||||
packages = [pkgs.stratisd.initrd];
|
||||
extraBin = {
|
||||
thin_check = "${pkgs."thin-provisioning-tools"}/bin/thin_check";
|
||||
thin_repair = "${pkgs."thin-provisioning-tools"}/bin/thin_repair";
|
||||
thin_metadata_size = "${pkgs."thin-provisioning-tools"}/bin/thin_metadata_size";
|
||||
stratis-min = "${pkgs.stratisd}/bin/stratis-min";
|
||||
};
|
||||
services =
|
||||
lib.attrsets.mapAttrs' (
|
||||
mountPoint: fileSystem: {
|
||||
name = "stratis-setup-${fileSystem.stratis.poolUuid}";
|
||||
value = {
|
||||
description = "setup for Stratis root filesystem";
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
conflicts = [ "shutdown.target" "initrd-switch-root.target" ];
|
||||
onFailure = [ "emergency.target" ];
|
||||
unitConfig.OnFailureJobMode = "isolate";
|
||||
wants = [ "stratisd-min.service" "plymouth-start.service" ];
|
||||
wantedBy = [ "initrd.target" ];
|
||||
after = [ "paths.target" "plymouth-start.service" "stratisd-min.service" ];
|
||||
before = [ "initrd.target" "shutdown.target" "initrd-switch-root.target" ];
|
||||
environment.STRATIS_ROOTFS_UUID = fileSystem.stratis.poolUuid;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.stratisd.initrd}/bin/stratis-rootfs-setup";
|
||||
RemainAfterExit = "yes";
|
||||
};
|
||||
};
|
||||
}
|
||||
) requiredStratisFilesystems;
|
||||
};
|
||||
availableKernelModules = [ "dm-thin-pool" "dm-crypt" ] ++ [ "aes" "aes_generic" "blowfish" "twofish"
|
||||
"serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"
|
||||
"af_alg" "algif_skcipher"
|
||||
];
|
||||
services.udev.packages = [
|
||||
pkgs.stratisd.initrd
|
||||
pkgs.lvm2
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -36,6 +36,15 @@ let
|
||||
description = lib.mdDoc "Location of the mounted file system.";
|
||||
};
|
||||
|
||||
stratis.poolUuid = lib.mkOption {
|
||||
type = types.uniq (types.nullOr types.str);
|
||||
description = lib.mdDoc ''
|
||||
UUID of the stratis pool that the fs is located in
|
||||
'';
|
||||
example = "04c68063-90a5-4235-b9dd-6180098a20d9";
|
||||
default = null;
|
||||
};
|
||||
|
||||
device = mkOption {
|
||||
default = null;
|
||||
example = "/dev/sda";
|
||||
|
@ -187,20 +187,20 @@ with lib;
|
||||
guestAgentSupport = false;
|
||||
}).overrideAttrs ( super: rec {
|
||||
|
||||
version = "7.0.0";
|
||||
version = "7.2.1";
|
||||
src = pkgs.fetchurl {
|
||||
url= "https://download.qemu.org/qemu-${version}.tar.xz";
|
||||
sha256 = "sha256-9rN1x5UfcoQCeYsLqrsthkeMpT1Eztvvq74cRr9G+Dk=";
|
||||
sha256 = "sha256-jIVpms+dekOl/immTN1WNwsMLRrQdLr3CYqCTReq1zs=";
|
||||
};
|
||||
patches = [
|
||||
# Proxmox' VMA tool is published as a particular patch upon QEMU
|
||||
(pkgs.fetchpatch {
|
||||
url =
|
||||
let
|
||||
rev = "1976ca460796f28447b41e3618e5c1e234035dd5";
|
||||
path = "debian/patches/pve/0026-PVE-Backup-add-vma-backup-format-code.patch";
|
||||
rev = "abb04bb6272c1202ca9face0827917552b9d06f6";
|
||||
path = "debian/patches/pve/0027-PVE-Backup-add-vma-backup-format-code.patch";
|
||||
in "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;hb=${rev};f=${path}";
|
||||
hash = "sha256-2Dz+ceTwrcyYYxi76RtyY3v15/2pwGcDhFuoZWlgbjc=";
|
||||
hash = "sha256-3d0HHdvaExCry6zcULnziYnWIAnn24vECkI4sjj2BMg=";
|
||||
})
|
||||
|
||||
# Proxmox' VMA tool uses O_DIRECT which fails on tmpfs
|
||||
@ -220,6 +220,7 @@ with lib;
|
||||
];
|
||||
|
||||
buildInputs = super.buildInputs ++ [ pkgs.libuuid ];
|
||||
nativeBuildInputs = super.nativeBuildInputs ++ [ pkgs.perl ];
|
||||
|
||||
});
|
||||
in
|
||||
|
@ -665,6 +665,7 @@ in {
|
||||
seafile = handleTest ./seafile.nix {};
|
||||
searx = handleTest ./searx.nix {};
|
||||
service-runner = handleTest ./service-runner.nix {};
|
||||
sftpgo = runTest ./sftpgo.nix;
|
||||
sfxr-qt = handleTest ./sfxr-qt.nix {};
|
||||
sgtpuzzles = handleTest ./sgtpuzzles.nix {};
|
||||
shadow = handleTest ./shadow.nix {};
|
||||
|
@ -27,6 +27,7 @@
|
||||
simpleUefiGrub
|
||||
simpleUefiGrubSpecialisation
|
||||
simpleUefiSystemdBoot
|
||||
stratisRoot
|
||||
# swraid
|
||||
zfsroot
|
||||
;
|
||||
|
@ -989,4 +989,39 @@ in {
|
||||
)
|
||||
'';
|
||||
};
|
||||
} // optionalAttrs systemdStage1 {
|
||||
stratisRoot = makeInstallerTest "stratisRoot" {
|
||||
createPartitions = ''
|
||||
machine.succeed(
|
||||
"sgdisk --zap-all /dev/vda",
|
||||
"sgdisk --new=1:0:+100M --typecode=0:ef00 /dev/vda", # /boot
|
||||
"sgdisk --new=2:0:+1G --typecode=0:8200 /dev/vda", # swap
|
||||
"sgdisk --new=3:0:+5G --typecode=0:8300 /dev/vda", # /
|
||||
"udevadm settle",
|
||||
|
||||
"mkfs.vfat /dev/vda1",
|
||||
"mkswap /dev/vda2 -L swap",
|
||||
"swapon -L swap",
|
||||
"stratis pool create my-pool /dev/vda3",
|
||||
"stratis filesystem create my-pool nixos",
|
||||
"udevadm settle",
|
||||
|
||||
"mount /dev/stratis/my-pool/nixos /mnt",
|
||||
"mkdir -p /mnt/boot",
|
||||
"mount /dev/vda1 /mnt/boot"
|
||||
)
|
||||
'';
|
||||
bootLoader = "systemd-boot";
|
||||
extraInstallerConfig = { modulesPath, ...}: {
|
||||
config = {
|
||||
services.stratis.enable = true;
|
||||
environment.systemPackages = [
|
||||
pkgs.stratis-cli
|
||||
pkgs.thin-provisioning-tools
|
||||
pkgs.lvm2.bin
|
||||
pkgs.stratisd.initrd
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -3,11 +3,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
# Natively running Mir has problems with capturing the first registered libinput device.
|
||||
# In our VM runners on ARM and on some hardware configs (my RPi4, distro-independent), this misses the keyboard.
|
||||
# It can be worked around by dis- and reconnecting the affected hardware, but we can't do this in these tests.
|
||||
# https://github.com/MirServer/mir/issues/2837
|
||||
broken = pkgs.stdenv.hostPlatform.isAarch;
|
||||
};
|
||||
|
||||
nodes.machine = { config, ... }: {
|
||||
|
384
nixos/tests/sftpgo.nix
Normal file
384
nixos/tests/sftpgo.nix
Normal file
@ -0,0 +1,384 @@
|
||||
# SFTPGo NixOS test
|
||||
#
|
||||
# This NixOS test sets up a basic test scenario for the SFTPGo module
|
||||
# and covers the following scenarios:
|
||||
# - uploading a file via sftp
|
||||
# - downloading the file over sftp
|
||||
# - assert that the ACLs are respected
|
||||
# - share a file between alice and bob (using sftp)
|
||||
# - assert that eve cannot acceess the shared folder between alice and bob.
|
||||
#
|
||||
# Additional test coverage for the remaining protocols (i.e. ftp, http and webdav)
|
||||
# would be a nice to have for the future.
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
|
||||
|
||||
# Returns an attributeset of users who are not system users.
|
||||
normalUsers = config:
|
||||
filterAttrs (name: user: user.isNormalUser) config.users.users;
|
||||
|
||||
# Returns true if a user is a member of the given group
|
||||
isMemberOf =
|
||||
config:
|
||||
# str
|
||||
groupName:
|
||||
# users.users attrset
|
||||
user:
|
||||
any (x: x == user.name) config.users.groups.${groupName}.members;
|
||||
|
||||
# Generates a valid SFTPGo user configuration for a given user
|
||||
# Will be converted to JSON and loaded on application startup.
|
||||
generateUserAttrSet =
|
||||
config:
|
||||
# attrset returned by config.users.users.<username>
|
||||
user: {
|
||||
# 0: user is disabled, login is not allowed
|
||||
# 1: user is enabled
|
||||
status = 1;
|
||||
|
||||
username = user.name;
|
||||
password = ""; # disables password authentication
|
||||
public_keys = user.openssh.authorizedKeys.keys;
|
||||
email = "${user.name}@example.com";
|
||||
|
||||
# User home directory on the local filesystem
|
||||
home_dir = "${config.services.sftpgo.dataDir}/users/${user.name}";
|
||||
|
||||
# Defines a mapping between virtual SFTPGo paths and filesystem paths outside the user home directory.
|
||||
#
|
||||
# Supported for local filesystem only. If one or more of the specified folders are not
|
||||
# inside the dataprovider they will be automatically created.
|
||||
# You have to create the folder on the filesystem yourself
|
||||
virtual_folders =
|
||||
optional (isMemberOf config sharedFolderName user) {
|
||||
name = sharedFolderName;
|
||||
mapped_path = "${config.services.sftpgo.dataDir}/${sharedFolderName}";
|
||||
virtual_path = "/${sharedFolderName}";
|
||||
};
|
||||
|
||||
# Defines the ACL on the virtual filesystem
|
||||
permissions =
|
||||
recursiveUpdate {
|
||||
"/" = [ "list" ]; # read-only top level directory
|
||||
"/private" = [ "*" ]; # private subdirectory, not shared with others
|
||||
} (optionalAttrs (isMemberOf config "shared" user) {
|
||||
"/shared" = [ "*" ];
|
||||
});
|
||||
|
||||
filters = {
|
||||
allowed_ip = [];
|
||||
denied_ip = [];
|
||||
web_client = [
|
||||
"password-change-disabled"
|
||||
"password-reset-disabled"
|
||||
"api-key-auth-change-disabled"
|
||||
];
|
||||
};
|
||||
|
||||
upload_bandwidth = 0; # unlimited
|
||||
download_bandwidth = 0; # unlimited
|
||||
expiration_date = 0; # means no expiration
|
||||
max_sessions = 0;
|
||||
quota_size = 0;
|
||||
quota_files = 0;
|
||||
};
|
||||
|
||||
# Generates a json file containing a static configuration
|
||||
# of users and folders to import to SFTPGo.
|
||||
loadDataJson = config: pkgs.writeText "users-and-folders.json" (builtins.toJSON {
|
||||
users =
|
||||
mapAttrsToList (name: user: generateUserAttrSet config user) (normalUsers config);
|
||||
|
||||
folders = [
|
||||
{
|
||||
name = sharedFolderName;
|
||||
description = "shared folder";
|
||||
|
||||
# 0: local filesystem
|
||||
# 1: AWS S3 compatible
|
||||
# 2: Google Cloud Storage
|
||||
filesystem.provider = 0;
|
||||
|
||||
# Mapped path on the local filesystem
|
||||
mapped_path = "${config.services.sftpgo.dataDir}/${sharedFolderName}";
|
||||
|
||||
# All users in the matching group gain access
|
||||
users = config.users.groups.${sharedFolderName}.members;
|
||||
}
|
||||
];
|
||||
});
|
||||
|
||||
# Generated Host Key for connecting to SFTPGo's sftp subsystem.
|
||||
snakeOilHostKey = pkgs.writeText "sftpgo_ed25519_host_key" ''
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||
QyNTUxOQAAACBOtQu6U135yxtrvUqPoozUymkjoNNPVK6rqjS936RLtQAAAJAXOMoSFzjK
|
||||
EgAAAAtzc2gtZWQyNTUxOQAAACBOtQu6U135yxtrvUqPoozUymkjoNNPVK6rqjS936RLtQ
|
||||
AAAEAoRLEV1VD80mg314ObySpfrCcUqtWoOSS3EtMPPhx08U61C7pTXfnLG2u9So+ijNTK
|
||||
aSOg009UrquqNL3fpEu1AAAADHNmdHBnb0BuaXhvcwE=
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
'';
|
||||
|
||||
adminUsername = "admin";
|
||||
adminPassword = "secretadminpassword";
|
||||
aliceUsername = "alice";
|
||||
alicePassword = "secretalicepassword";
|
||||
bobUsername = "bob";
|
||||
bobPassword = "secretbobpassword";
|
||||
eveUsername = "eve";
|
||||
evePassword = "secretevepassword";
|
||||
sharedFolderName = "shared";
|
||||
|
||||
# A file for testing uploading via SFTP
|
||||
testFile = pkgs.writeText "test.txt" "hello world";
|
||||
sharedFile = pkgs.writeText "shared.txt" "shared content";
|
||||
|
||||
# Define the for exposing SFTP
|
||||
sftpPort = 2022;
|
||||
|
||||
# Define the for exposing HTTP
|
||||
httpPort = 8080;
|
||||
in
|
||||
{
|
||||
name = "sftpgo";
|
||||
|
||||
meta.maintainers = with maintainers; [ yayayayaka ];
|
||||
|
||||
nodes = {
|
||||
server = { nodes, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ sftpPort httpPort ];
|
||||
|
||||
# nodes.server.configure postgresql database
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "sftpgo" ];
|
||||
ensureUsers = [{
|
||||
name = "sftpgo";
|
||||
ensurePermissions."DATABASE sftpgo" = "ALL PRIVILEGES";
|
||||
}];
|
||||
};
|
||||
|
||||
services.sftpgo = {
|
||||
enable = true;
|
||||
|
||||
loadDataFile = (loadDataJson nodes.server);
|
||||
|
||||
settings = {
|
||||
data_provider = {
|
||||
driver = "postgresql";
|
||||
name = "sftpgo";
|
||||
username = "sftpgo";
|
||||
host = "/run/postgresql";
|
||||
port = 5432;
|
||||
|
||||
# Enables the possibility to create an initial admin user on first startup.
|
||||
create_default_admin = true;
|
||||
};
|
||||
|
||||
httpd.bindings = [
|
||||
{
|
||||
address = ""; # listen on all interfaces
|
||||
port = httpPort;
|
||||
enable_https = false;
|
||||
|
||||
enable_web_client = true;
|
||||
enable_web_admin = true;
|
||||
}
|
||||
];
|
||||
|
||||
# Enable sftpd
|
||||
sftpd = {
|
||||
bindings = [{
|
||||
address = ""; # listen on all interfaces
|
||||
port = sftpPort;
|
||||
}];
|
||||
host_keys = [ snakeOilHostKey ];
|
||||
password_authentication = false;
|
||||
keyboard_interactive_authentication = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.sftpgo = {
|
||||
after = [ "postgresql.service"];
|
||||
environment = {
|
||||
# Update existing users
|
||||
SFTPGO_LOADDATA_MODE = "0";
|
||||
SFTPGO_DEFAULT_ADMIN_USERNAME = adminUsername;
|
||||
|
||||
# This will end up in cleartext in the systemd service.
|
||||
# Don't use this approach in production!
|
||||
SFTPGO_DEFAULT_ADMIN_PASSWORD = adminPassword;
|
||||
};
|
||||
};
|
||||
|
||||
# Sets up the folder hierarchy on the local filesystem
|
||||
systemd.tmpfiles.rules =
|
||||
let
|
||||
sftpgoUser = nodes.server.services.sftpgo.user;
|
||||
sftpgoGroup = nodes.server.services.sftpgo.group;
|
||||
statePath = nodes.server.services.sftpgo.dataDir;
|
||||
in [
|
||||
# Create state directory
|
||||
"d ${statePath} 0750 ${sftpgoUser} ${sftpgoGroup} -"
|
||||
"d ${statePath}/users 0750 ${sftpgoUser} ${sftpgoGroup} -"
|
||||
|
||||
# Created shared folder directories
|
||||
"d ${statePath}/${sharedFolderName} 2770 ${sftpgoUser} ${sharedFolderName} -"
|
||||
]
|
||||
++ mapAttrsToList (name: user:
|
||||
# Create private user directories
|
||||
''
|
||||
d ${statePath}/users/${user.name} 0700 ${sftpgoUser} ${sftpgoGroup} -
|
||||
d ${statePath}/users/${user.name}/private 0700 ${sftpgoUser} ${sftpgoGroup} -
|
||||
''
|
||||
) (normalUsers nodes.server);
|
||||
|
||||
users.users =
|
||||
let
|
||||
commonAttrs = {
|
||||
isNormalUser = true;
|
||||
openssh.authorizedKeys.keys = [ snakeOilPublicKey ];
|
||||
};
|
||||
in {
|
||||
# SFTPGo admin user
|
||||
admin = commonAttrs // {
|
||||
password = adminPassword;
|
||||
};
|
||||
|
||||
# Alice and bob share folders with each other
|
||||
alice = commonAttrs // {
|
||||
password = alicePassword;
|
||||
extraGroups = [ sharedFolderName ];
|
||||
};
|
||||
|
||||
bob = commonAttrs // {
|
||||
password = bobPassword;
|
||||
extraGroups = [ sharedFolderName ];
|
||||
};
|
||||
|
||||
# Eve has no shared folders
|
||||
eve = commonAttrs // {
|
||||
password = evePassword;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups.${sharedFolderName} = {};
|
||||
|
||||
specialisation = {
|
||||
# A specialisation for asserting that SFTPGo can bind to privileged ports.
|
||||
privilegedPorts.configuration = { ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 22 80 ];
|
||||
services.sftpgo = {
|
||||
settings = {
|
||||
sftpd.bindings = mkForce [{
|
||||
address = "";
|
||||
port = 22;
|
||||
}];
|
||||
|
||||
httpd.bindings = mkForce [{
|
||||
address = "";
|
||||
port = 80;
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
client = { nodes, ... }: {
|
||||
# Add the SFTPGo host key to the global known_hosts file
|
||||
programs.ssh.knownHosts =
|
||||
let
|
||||
commonAttrs = {
|
||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE61C7pTXfnLG2u9So+ijNTKaSOg009UrquqNL3fpEu1";
|
||||
};
|
||||
in {
|
||||
"server" = commonAttrs;
|
||||
"[server]:2022" = commonAttrs;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
# A function to generate test cases for wheter
|
||||
# a specified username is expected to access the shared folder.
|
||||
accessSharedFoldersSubtest =
|
||||
{ # The username to run as
|
||||
username
|
||||
# Whether the tests are expected to succeed or not
|
||||
, shouldSucceed ? true
|
||||
}: ''
|
||||
with subtest("Test whether ${username} can access shared folders"):
|
||||
client.${if shouldSucceed then "succeed" else "fail"}("sftp -P ${toString sftpPort} -b ${
|
||||
pkgs.writeText "${username}-ls-${sharedFolderName}" ''
|
||||
ls ${sharedFolderName}
|
||||
''
|
||||
} ${username}@server")
|
||||
'';
|
||||
statePath = nodes.server.services.sftpgo.dataDir;
|
||||
in ''
|
||||
start_all()
|
||||
|
||||
client.wait_for_unit("default.target")
|
||||
server.wait_for_unit("sftpgo.service")
|
||||
|
||||
with subtest("web client"):
|
||||
client.wait_until_succeeds("curl -sSf http://server:${toString httpPort}/web/client/login")
|
||||
|
||||
# Ensure sftpgo found the static folder
|
||||
client.wait_until_succeeds("curl -o /dev/null -sSf http://server:${toString httpPort}/static/favicon.ico")
|
||||
|
||||
with subtest("Setup SSH keys"):
|
||||
client.succeed("mkdir -m 700 /root/.ssh")
|
||||
client.succeed("cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa")
|
||||
client.succeed("chmod 600 /root/.ssh/id_ecdsa")
|
||||
|
||||
with subtest("Copy a file over sftp"):
|
||||
client.wait_until_succeeds("scp -P ${toString sftpPort} ${toString testFile} alice@server:/private/${testFile.name}")
|
||||
server.succeed("test -s ${statePath}/users/alice/private/${testFile.name}")
|
||||
|
||||
# The configured ACL should prevent uploading files to the root directory
|
||||
client.fail("scp -P ${toString sftpPort} ${toString testFile} alice@server:/")
|
||||
|
||||
with subtest("Attempting an interactive SSH sessions must fail"):
|
||||
client.fail("ssh -p ${toString sftpPort} alice@server")
|
||||
|
||||
${accessSharedFoldersSubtest {
|
||||
username = "alice";
|
||||
shouldSucceed = true;
|
||||
}}
|
||||
|
||||
${accessSharedFoldersSubtest {
|
||||
username = "bob";
|
||||
shouldSucceed = true;
|
||||
}}
|
||||
|
||||
${accessSharedFoldersSubtest {
|
||||
username = "eve";
|
||||
shouldSucceed = false;
|
||||
}}
|
||||
|
||||
with subtest("Test sharing files"):
|
||||
# Alice uploads a file to shared folder
|
||||
client.succeed("scp -P ${toString sftpPort} ${toString sharedFile} alice@server:/${sharedFolderName}/${sharedFile.name}")
|
||||
server.succeed("test -s ${statePath}/${sharedFolderName}/${sharedFile.name}")
|
||||
|
||||
# Bob downloads the file from shared folder
|
||||
client.succeed("scp -P ${toString sftpPort} bob@server:/shared/${sharedFile.name} ${sharedFile.name}")
|
||||
client.succeed("test -s ${sharedFile.name}")
|
||||
|
||||
# Eve should not get the file from shared folder
|
||||
client.fail("scp -P ${toString sftpPort} eve@server:/shared/${sharedFile.name}")
|
||||
|
||||
server.succeed("/run/current-system/specialisation/privilegedPorts/bin/switch-to-configuration test")
|
||||
|
||||
client.wait_until_succeeds("sftp -P 22 -b ${pkgs.writeText "get-hello-world.txt" ''
|
||||
get /private/${testFile.name}
|
||||
''} alice@server")
|
||||
'';
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3Packages;
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python3Packages }:
|
||||
{ lib, python3Packages, fetchPypi }:
|
||||
|
||||
with python3Packages;
|
||||
|
||||
|
@ -23,13 +23,13 @@
|
||||
|
||||
let
|
||||
pname = "pulsar";
|
||||
version = "1.104.0";
|
||||
version = "1.105.0";
|
||||
|
||||
sourcesPath = {
|
||||
x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
|
||||
x86_64-linux.hash = "sha256-HEMUQVNPb6qWIXX25N79HwHo7j11MyFiBRsq9otdAL8=";
|
||||
x86_64-linux.hash = "sha256-j2d83m8B6lt1eRAwOOTEq4o+CNe8I+6rkz9qyux55Qw=";
|
||||
aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
|
||||
aarch64-linux.hash = "sha256-f+s54XtLLdhTFY9caKTKngJF6zLai0F7ur9v37bwuNE=";
|
||||
aarch64-linux.hash = "sha256-iZVE1R30Tynyn/cAwNIiGrsCMTkWKFUforOkGXSzMsw=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
additionalLibs = lib.makeLibraryPath [
|
||||
@ -119,7 +119,7 @@ stdenv.mkDerivation rec {
|
||||
# But asar complains because the node_gyp unpacked dependency uses a prebuilt Python3 itself
|
||||
|
||||
rm $opt/resources/app.asar.unpacked/node_modules/tree-sitter-bash/build/node_gyp_bins/python3
|
||||
ln -s ${python3}/bin/python3 $opt/resources/app.asar.unpacked/node_modules/tree-sitter-bash/build/node_gyp_bins/python3
|
||||
ln -s ${python3.interpreter} $opt/resources/app.asar.unpacked/node_modules/tree-sitter-bash/build/node_gyp_bins/python3
|
||||
'' + ''
|
||||
# Patch the bundled node executables
|
||||
find $opt -name "*.node" -exec patchelf --set-rpath "${newLibpath}:$opt" {} \;
|
||||
|
@ -13,6 +13,17 @@ const constants = {
|
||||
targetFile: new URL("default.nix", import.meta.url).pathname,
|
||||
};
|
||||
|
||||
async function utf16ToUtf8(blob) {
|
||||
// Sometime, upstream saves the SHA256SUMS.txt file in UTF-16, which absolutely breaks node's string handling
|
||||
// So we need to convert this blob to UTF-8
|
||||
|
||||
// We need to skip the first 2 bytes, which are the BOM
|
||||
const arrayBuffer = await blob.slice(2).arrayBuffer();
|
||||
const buffer = Buffer.from(arrayBuffer);
|
||||
const utf8String = buffer.toString('utf16le');
|
||||
return utf8String;
|
||||
}
|
||||
|
||||
async function getLatestVersion() {
|
||||
const requestResult = await fetch(constants.githubUrl);
|
||||
if (!requestResult.ok) {
|
||||
@ -37,6 +48,7 @@ async function getSha256Sum(hashFileContent, targetFile) {
|
||||
|
||||
let sha256 = hashFileContent.
|
||||
split('\n').
|
||||
map(line => line.replace("\r", "")). // Side-effect of the UTF-16 conversion, if the file was created from Windows
|
||||
filter((line) => line.endsWith(targetFile))[0].
|
||||
split(' ')[0];
|
||||
|
||||
@ -47,14 +59,21 @@ async function getSha256Sums(newVersion) {
|
||||
// Upstream provides a file with the hashes of the files, but it's not in the SRI format, and it refers to the compressed tarball
|
||||
// So let's just use nix-prefetch-url to get the hashes of the decompressed tarball, and `nix hash to-sri` to convert them to SRI format
|
||||
const hashFileUrl = constants.sha256FileURL(newVersion);
|
||||
const hashFileContent = await fetch(hashFileUrl).then((response) => response.text());
|
||||
const hashFileContent = await fetch(hashFileUrl).then((response) => response.blob());
|
||||
const headerbuffer = await hashFileContent.slice(0, 2).arrayBuffer()
|
||||
const header = Buffer.from(headerbuffer).toString('hex');
|
||||
|
||||
// We must detect if it's UTF-16 or UTF-8. If it's UTF-16, we must convert it to UTF-8, otherwise just use it as-is
|
||||
const hashFileContentString = header == 'fffe' ?
|
||||
await utf16ToUtf8(hashFileContent) :
|
||||
await hashFileContent.text();
|
||||
|
||||
let x86_64;
|
||||
let aarch64;
|
||||
console.log("Getting new hashes");
|
||||
let promises = [
|
||||
getSha256Sum(hashFileContent, constants.x86_64FileName(newVersion)).then((hash) => { x86_64 = hash; }),
|
||||
getSha256Sum(hashFileContent, constants.aarch64FileName(newVersion)).then((hash) => { aarch64 = hash; }),
|
||||
getSha256Sum(hashFileContentString, constants.x86_64FileName(newVersion)).then((hash) => { x86_64 = hash; }),
|
||||
getSha256Sum(hashFileContentString, constants.aarch64FileName(newVersion)).then((hash) => { aarch64 = hash; }),
|
||||
];
|
||||
await Promise.all(promises);
|
||||
return { x86_64, aarch64 };
|
||||
|
@ -34,14 +34,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
+ lib.optionalString enableQt "-qt"
|
||||
+ lib.optionalString (!enableQt) "-sdl"
|
||||
+ lib.optionalString forceWayland "-wayland";
|
||||
version = "1.15.3";
|
||||
version = "1.15.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrydgard";
|
||||
repo = "ppsspp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-5IICMP7KEniAnuxdDPECN+8jXA0ZKgPsdIL6Og2xyX4=";
|
||||
sha256 = "sha256-D94PLJfWalLk2kbS0PEHTMDdWxZW4YXwp3VQDHNZlRU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -29,13 +29,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ryujinx";
|
||||
version = "1.1.733"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
version = "1.1.819"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ryujinx";
|
||||
repo = "Ryujinx";
|
||||
rev = "9f12e50a546b15533778ed0d8290202af91c10a2";
|
||||
sha256 = "1d1hg2sv0h56a56xnarcfp73df3rbw3iax85g258l6w2kxhkc42a";
|
||||
rev = "4ca78eded52f21089400cc28351b9353279b8171";
|
||||
sha256 = "13g5sgql14rr7qmsiavm6kkjkv9sqqq7cmwpy9iiahbfzc9w1wc1";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
@ -80,7 +80,7 @@ buildDotnetModule rec {
|
||||
];
|
||||
|
||||
projectFile = "Ryujinx.sln";
|
||||
testProjectFile = "Ryujinx.Tests/Ryujinx.Tests.csproj";
|
||||
testProjectFile = "src/Ryujinx.Tests/Ryujinx.Tests.csproj";
|
||||
doCheck = true;
|
||||
|
||||
dotnetFlags = [
|
||||
|
12
pkgs/applications/emulators/ryujinx/deps.nix
generated
12
pkgs/applications/emulators/ryujinx/deps.nix
generated
@ -20,7 +20,7 @@
|
||||
(fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
|
||||
(fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
|
||||
(fetchNuGet { pname = "DiscordRichPresence"; version = "1.1.3.18"; sha256 = "0p4bhaggjjfd4gl06yiphqgncxgcq2bws4sjkrw0n2ldf3hgrps3"; })
|
||||
(fetchNuGet { pname = "DynamicData"; version = "7.13.5"; sha256 = "088ry176ba314m4hc1vbcxisflqzs7p7vvn8vqzxy3kj1rimgfmf"; })
|
||||
(fetchNuGet { pname = "DynamicData"; version = "7.13.8"; sha256 = "10ywbzk58046kgsbd9rybpa9m1v11as45jvf1qvxnl42hyc7q654"; })
|
||||
(fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
|
||||
(fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
|
||||
(fetchNuGet { pname = "FluentAvaloniaUI"; version = "1.4.5"; sha256 = "1j5ivy83f13dgn09qrfkq44ijvh0m9rbdx8760g47di70c4lda7j"; })
|
||||
@ -50,10 +50,10 @@
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.29.0"; sha256 = "06sdjg78764ycaq3bd32daacd9pjsvkihdzrw8d1cnmk3c42kvq3"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.29.0"; sha256 = "0iydfzz4vzzpx24q8mgvc3n289s00inc19x6a0w2v378mx4jkfl0"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.29.0"; sha256 = "04vj5h638ljz2fylr2idgjbfq5lzbw79m5ixcj1ikl4ydl9jhp9p"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.29.0"; sha256 = "05crx7w79m3jxlbnfc2c8i63m5z6h28y04qv6sc84312rzi2yw8c"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.30.1"; sha256 = "1jb7za7kc41zx4vafpmyj42vzqb407b34npb9g6f42sk7127hip1"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.30.1"; sha256 = "1c1hs0nrzlrpvdrpj01yr7cdknh19gdxrahndb5fmn8p4k1vljlv"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.30.1"; sha256 = "02dkmh0qc2sfayvhzp8fgvn58b84yn8z4x3aijvjqahcwv14wfzs"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.30.1"; sha256 = "1283v1ynl7wp5llyswj2nd8l3pkj7yhcksy2slanid52iyqzzan1"; })
|
||||
(fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "2.3.2"; sha256 = "115bm7dljchr7c02hiv1r3l21r22wpml1j26fyn2amaflaihpq4l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.5.0"; sha256 = "00gz2i8kx4mlq1ywj3imvf7wc6qzh0bsnynhw06z0mgyha1a21jy"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
|
||||
@ -177,7 +177,7 @@
|
||||
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
|
||||
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.29.0"; sha256 = "09bpj7gginq25fiyq3za5i8wm482qbnx6qhm4dxb95jrl3mmb126"; })
|
||||
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.30.1"; sha256 = "1f4x5sw9wpkk485lchl0nzdzkcy83s9b119c7g187x0qvkcvdpc2"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
|
||||
|
@ -1,6 +1,5 @@
|
||||
{ lib
|
||||
, mkDerivation
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
, wrapGAppsHook
|
||||
, gst_all_1
|
||||
@ -11,6 +10,7 @@
|
||||
, mpv
|
||||
, qtmultimedia
|
||||
, qtquickcontrols2
|
||||
, yt-dlp
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
@ -36,6 +36,13 @@ mkDerivation {
|
||||
gstreamer
|
||||
]);
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix"
|
||||
"PATH"
|
||||
":"
|
||||
(lib.makeBinPath [ yt-dlp ])
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, python3
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -1,6 +1,5 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, gitUpdater
|
||||
, python3Packages
|
||||
, blueprint-compiler
|
||||
@ -29,23 +28,17 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "bottles-unwrapped";
|
||||
version = "51.5";
|
||||
version = "51.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bottlesdevs";
|
||||
repo = "bottles";
|
||||
rev = version;
|
||||
sha256 = "sha256-8VF/CD0Wu2eV6wOpj/M6peKDthFWlcg+1NzzTSIH4S8=";
|
||||
sha256 = "sha256-9oEC+ksgHz2HP4jVwTbLzjqc8WG1+S8hmVgl2dcuPB0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./vulkan_icd.patch
|
||||
|
||||
# Remove next version
|
||||
(fetchpatch {
|
||||
url = "https://github.com/bottlesdevs/Bottles/commit/7cb284f9bac0b71bf632bfc70d94f7a53bc51267.patch";
|
||||
hash = "sha256-mRF+BtQ0qM7Yvx7SONeH2wc04F87fEyNRlBuyQrzN8Y=";
|
||||
})
|
||||
];
|
||||
|
||||
# https://github.com/bottlesdevs/Bottles/wiki/Packaging
|
||||
|
@ -1,5 +1,4 @@
|
||||
{ lib
|
||||
, buildFHSEnv
|
||||
{ buildFHSEnv
|
||||
, symlinkJoin
|
||||
, bottles-unwrapped
|
||||
, gst_all_1
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python3Packages }:
|
||||
{ lib, python3Packages, fetchPypi }:
|
||||
|
||||
with python3Packages;
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index a37976e..5669366 100644
|
||||
index b7530e8f..af94a62d 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -59,16 +59,12 @@ if(NOT MINGW AND WIN32)
|
||||
@@ -59,8 +59,7 @@ if(NOT MINGW AND WIN32)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
||||
endif()
|
||||
|
||||
@ -11,15 +11,4 @@ index a37976e..5669366 100644
|
||||
+include_directories(@libirc_includes@)
|
||||
|
||||
# YAML
|
||||
-option(YAML_CPP_BUILD_TOOLS "Disable tests" OFF)
|
||||
-option(YAML_CPP_BUILD_TESTS "Enable testing" OFF)
|
||||
-option(YAML_CPP_BUILD_TOOLS "Enable parse tools" OFF)
|
||||
-option(BUILD_SHARED_LIBS "Build as shared" ON)
|
||||
-include_directories("3rd/yaml-cpp/include/")
|
||||
-add_subdirectory(3rd/yaml-cpp)
|
||||
+find_package(YAML-CPP 0.6.3 QUIET)
|
||||
+include_directories(YAML_CPP_INCLUDE_DIR)
|
||||
+
|
||||
if (HUGGLE_EXT)
|
||||
if(NOT MINGW AND WIN32)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/Release/extensions)
|
||||
find_package(YAML-CPP 0.6.3 QUIET)
|
||||
|
@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "huggle";
|
||||
version = "3.4.10";
|
||||
version = "3.4.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggle";
|
||||
repo = "huggle3-qt-lx";
|
||||
rev = version;
|
||||
sha256 = "UzoX4kdzYU50W0MUhfpo0HaSfvG3eINNC8u5t/gKuqI=";
|
||||
sha256 = "scNGmMVZ6z9FTQuZCdwRYk0WP5qKfdb/M9Co8TbiMDE=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -1,14 +1,12 @@
|
||||
{ lib
|
||||
, fetchpatch
|
||||
, python3Packages
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, wrapQtAppsHook
|
||||
, cups
|
||||
}:
|
||||
|
||||
with python3Packages;
|
||||
|
||||
buildPythonApplication rec {
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "inkcut";
|
||||
version = "2.1.5";
|
||||
|
||||
@ -48,7 +46,7 @@ buildPythonApplication rec {
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
enamlx
|
||||
twisted
|
||||
lxml
|
||||
|
3574
pkgs/applications/misc/kord/Cargo.lock
generated
Normal file
3574
pkgs/applications/misc/kord/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "kord";
|
||||
version = "0.4.2";
|
||||
version = "0.5.16";
|
||||
|
||||
# kord depends on nightly features
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
@ -16,10 +16,15 @@ rustPlatform.buildRustPackage rec {
|
||||
owner = "twitchax";
|
||||
repo = "kord";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-B/UwnbzXI3ER8IMOVtn0ErVqFrkZXKoL+l7ll1AlzDg=";
|
||||
sha256 = "sha256-gI88fweOT2t+4cj58/mLygtTnue2Ai1QSC5oZf7Xv/g=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-xhWSycTe72HW3E9meTo4wjOCHDcNq6fUPT6nqHoW9vE=";
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"bincode-2.0.0-rc.2" = "sha256-0BfKKGOi5EVIoF0HvIk0QS2fHUMG3tpsMLe2SkXeZlo=";
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, pythonPackages }:
|
||||
{ lib, pythonPackages, fetchPypi }:
|
||||
|
||||
with pythonPackages;
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, alsa-utils
|
||||
, gobject-introspection
|
||||
, libappindicator-gtk3
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchPypi
|
||||
, taskwarrior
|
||||
, glibcLocales
|
||||
}:
|
||||
|
@ -90,11 +90,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.51.114";
|
||||
version = "1.51.118";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "sha256-lykwmfGqH5VuWazEQuvTpD4ett4m+LCFmmxzjkULfmk=";
|
||||
sha256 = "sha256-/OrnB4M6oefZ2aG2rQst8H4UZ/7vAFzyqWsn9kerb9c=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -92,14 +92,13 @@ in
|
||||
pname = "hadoop";
|
||||
platformAttrs = rec {
|
||||
x86_64-linux = {
|
||||
version = "3.3.4";
|
||||
hash = "sha256-akg9GgsSNJDr2N8/cbZOs58zP3i5XwkK61jkM8vCQW0=";
|
||||
version = "3.3.5";
|
||||
hash = "sha256-RG4FypL6I6YGF6ixeUbe3kcoGvFQQEFhfLfV9i50JSo=";
|
||||
};
|
||||
x86_64-darwin = x86_64-linux;
|
||||
aarch64-linux = {
|
||||
version = "3.3.1";
|
||||
hash = "sha256-v1Om2pk0wsgKBghRD2wgTSHJoKd3jkm1wPKAeDcKlgI=";
|
||||
meta.knownVulnerabilities = [ "CVE-2021-37404" "CVE-2021-33036" ];
|
||||
version = "3.3.5";
|
||||
hash = "sha256-qcKjbE881isauWBxIv+NY0UFbYit704/Re8Kdl6x1LA=";
|
||||
};
|
||||
aarch64-darwin = aarch64-linux;
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, python3
|
||||
}:
|
||||
|
||||
|
@ -56,11 +56,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "webex";
|
||||
version = "43.2.0.25211";
|
||||
version = "43.5.0.26155";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20230214022524/Webex_ubuntu.7z";
|
||||
sha256 = "c58a0da26c8f64302cc612c60980dbd68c074d6d8a567b3d870d7d6d06b420ad";
|
||||
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20230508235734/Webex_ubuntu.7z";
|
||||
sha256 = "94ddd66be3a44eeb6f854d0e02feec2e010d494ff9fcc81663f30fca37da4774";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -12,17 +12,17 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "aerc";
|
||||
version = "0.14.0";
|
||||
version = "0.15.2";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~rjarry";
|
||||
repo = "aerc";
|
||||
rev = version;
|
||||
hash = "sha256-qC7lNqjgljUqRUp+S7vBVLPyRB3+Ie5UOxuio+Q88hg=";
|
||||
hash = "sha256-OQDA4AHDcAdDzpwNSi8rW1FKjfYaFktOwiM0FEHPd70=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-MVek3TQpE3AChGyQ4z01fLfkcGKJcckmFV21ww9zT7M=";
|
||||
vendorHash = "sha256-NWOySC0czNgNOakpxFguZLtmEI7AvjJQKXDE2vFWeZg=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@ -32,19 +32,22 @@ buildGoModule rec {
|
||||
];
|
||||
|
||||
patches = [
|
||||
./runtime-sharedir.patch
|
||||
./runtime-libexec.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteAllInPlace config/aerc.conf
|
||||
substituteAllInPlace config/config.go
|
||||
substituteAllInPlace doc/aerc-config.5.scd
|
||||
|
||||
# Prevent buildGoModule from trying to build this
|
||||
rm contrib/linters.go
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
pythonPath = [
|
||||
python3.pkgs.colorama
|
||||
python3.pkgs.vobject
|
||||
];
|
||||
|
||||
buildInputs = [ python3 notmuch gawk ];
|
||||
@ -60,11 +63,11 @@ buildGoModule rec {
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/aerc \
|
||||
--prefix PATH ":" "${lib.makeBinPath [ ncurses ]}"
|
||||
wrapProgram $out/share/aerc/filters/html \
|
||||
wrapProgram $out/libexec/aerc/filters/html \
|
||||
--prefix PATH ":" ${lib.makeBinPath [ w3m dante ]}
|
||||
wrapProgram $out/share/aerc/filters/html-unsafe \
|
||||
wrapProgram $out/libexec/aerc/filters/html-unsafe \
|
||||
--prefix PATH ":" ${lib.makeBinPath [ w3m dante ]}
|
||||
patchShebangs $out/share/aerc/filters
|
||||
patchShebangs $out/libexec/aerc/filters
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -0,0 +1,87 @@
|
||||
diff --git a/config/aerc.conf b/config/aerc.conf
|
||||
index 7d33b43..4315f0e 100644
|
||||
--- a/config/aerc.conf
|
||||
+++ b/config/aerc.conf
|
||||
@@ -202,8 +202,7 @@
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
-# /usr/local/share/aerc/stylesets
|
||||
-# /usr/share/aerc/stylesets
|
||||
+# @out@/share/aerc/stylesets
|
||||
#
|
||||
#stylesets-dirs=
|
||||
|
||||
@@ -547,8 +546,7 @@ message/rfc822=colorize
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
-# /usr/local/share/aerc/templates
|
||||
-# /usr/share/aerc/templates
|
||||
+# @out@/share/aerc/templates
|
||||
#
|
||||
#template-dirs=
|
||||
|
||||
diff --git a/config/config.go b/config/config.go
|
||||
index d70bcfe..c19e59a 100644
|
||||
--- a/config/config.go
|
||||
+++ b/config/config.go
|
||||
@@ -54,10 +54,8 @@ func buildDefaultDirs() []string {
|
||||
}
|
||||
|
||||
// Add fixed fallback locations
|
||||
- defaultDirs = append(defaultDirs, "/usr/local/libexec/aerc")
|
||||
- defaultDirs = append(defaultDirs, "/usr/local/share/aerc")
|
||||
- defaultDirs = append(defaultDirs, "/usr/libexec/aerc")
|
||||
- defaultDirs = append(defaultDirs, "/usr/share/aerc")
|
||||
+ defaultDirs = append(defaultDirs, "@out@/libexec/aerc")
|
||||
+ defaultDirs = append(defaultDirs, "@out@/share/aerc")
|
||||
|
||||
return defaultDirs
|
||||
}
|
||||
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
|
||||
index 9e1f8a3..694abbc 100644
|
||||
--- a/doc/aerc-config.5.scd
|
||||
+++ b/doc/aerc-config.5.scd
|
||||
@@ -300,8 +300,7 @@ These options are configured in the *[ui]* section of _aerc.conf_.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
- /usr/local/share/aerc/stylesets
|
||||
- /usr/share/aerc/stylesets
|
||||
+ @out@/share/aerc/stylesets
|
||||
```
|
||||
|
||||
*styleset-name* = _<string>_
|
||||
@@ -900,8 +899,7 @@ These options are configured in the *[templates]* section of _aerc.conf_.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
- /usr/local/share/aerc/templates
|
||||
- /usr/share/aerc/templates
|
||||
+ @out@/share/aerc/templates
|
||||
```
|
||||
|
||||
*new-message* = _<template_name>_
|
||||
diff --git a/doc/aerc-templates.7.scd b/doc/aerc-templates.7.scd
|
||||
index ae9bc6d..5f42b14 100644
|
||||
--- a/doc/aerc-templates.7.scd
|
||||
+++ b/doc/aerc-templates.7.scd
|
||||
@@ -319,7 +319,7 @@ aerc provides the following additional functions:
|
||||
Execute external command, provide the second argument to its stdin.
|
||||
|
||||
```
|
||||
- {{exec `/usr/libexec/aerc/filters/html` .OriginalText}}
|
||||
+ {{exec `@out@/libexec/aerc/filters/html` .OriginalText}}
|
||||
```
|
||||
|
||||
*.Local*
|
||||
@@ -425,7 +425,7 @@ aerc provides the following additional functions:
|
||||
|
||||
```
|
||||
{{if eq .OriginalMIMEType "text/html"}}
|
||||
- {{exec `/usr/libexec/aerc/filters/html` .OriginalText | wrap 72 | quote}}
|
||||
+ {{exec `@out@/libexec/aerc/filters/html` .OriginalText | wrap 72 | quote}}
|
||||
{{else}}
|
||||
{{wrap 72 .OriginalText | trimSignature | quote}}
|
||||
{{end}}
|
@ -1,84 +0,0 @@
|
||||
diff --git i/config/aerc.conf w/config/aerc.conf
|
||||
index 05ebbf4..db6877b 100644
|
||||
--- i/config/aerc.conf
|
||||
+++ w/config/aerc.conf
|
||||
@@ -152,8 +152,7 @@
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
-# /usr/local/share/aerc/stylesets
|
||||
-# /usr/share/aerc/stylesets
|
||||
+# @out@/share/aerc/stylesets
|
||||
#
|
||||
#stylesets-dirs=
|
||||
|
||||
@@ -445,8 +444,7 @@ message/rfc822=colorize
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
-# /usr/local/share/aerc/templates
|
||||
-# /usr/share/aerc/templates
|
||||
+# @out@/share/aerc/templates
|
||||
#
|
||||
#template-dirs=
|
||||
|
||||
diff --git i/config/config.go w/config/config.go
|
||||
index 09fb5ef..c73a7ee 100644
|
||||
--- i/config/config.go
|
||||
+++ w/config/config.go
|
||||
@@ -60,8 +60,7 @@ func buildDefaultDirs() []string {
|
||||
}
|
||||
|
||||
// Add fixed fallback locations
|
||||
- defaultDirs = append(defaultDirs, "/usr/local/share/aerc")
|
||||
- defaultDirs = append(defaultDirs, "/usr/share/aerc")
|
||||
+ defaultDirs = append(defaultDirs, "@out@/share/aerc")
|
||||
|
||||
return defaultDirs
|
||||
}
|
||||
diff --git i/doc/aerc-config.5.scd w/doc/aerc-config.5.scd
|
||||
index d48e38a..39784c4 100644
|
||||
--- i/doc/aerc-config.5.scd
|
||||
+++ w/doc/aerc-config.5.scd
|
||||
@@ -279,8 +279,7 @@ These options are configured in the *[ui]* section of _aerc.conf_.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
- /usr/local/share/aerc/stylesets
|
||||
- /usr/share/aerc/stylesets
|
||||
+ @out@/share/aerc/stylesets
|
||||
```
|
||||
|
||||
*styleset-name* = _<string>_
|
||||
@@ -822,8 +821,7 @@ These options are configured in the *[templates]* section of _aerc.conf_.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
- /usr/local/share/aerc/templates
|
||||
- /usr/share/aerc/templates
|
||||
+ @out@/share/aerc/templates
|
||||
```
|
||||
|
||||
*new-message* = _<template_name>_
|
||||
diff --git i/doc/aerc-templates.7.scd w/doc/aerc-templates.7.scd
|
||||
index 6c9e319..0ef97ce 100644
|
||||
--- i/doc/aerc-templates.7.scd
|
||||
+++ w/doc/aerc-templates.7.scd
|
||||
@@ -111,7 +111,7 @@ aerc provides the following additional functions:
|
||||
Execute external command, provide the second argument to its stdin.
|
||||
|
||||
```
|
||||
- {{exec `/usr/local/share/aerc/filters/html` .OriginalText}}
|
||||
+ {{exec `@out@/share/aerc/filters/html` .OriginalText}}
|
||||
```
|
||||
|
||||
*toLocal*
|
||||
@@ -142,7 +142,7 @@ aerc provides the following additional functions:
|
||||
Example: Automatic HTML parsing for text/html mime type messages
|
||||
```
|
||||
{{if eq .OriginalMIMEType "text/html"}}
|
||||
- {{exec `/usr/local/share/aerc/filters/html` .OriginalText | wrap 72 | quote}}
|
||||
+ {{exec `@out@/share/aerc/filters/html` .OriginalText | wrap 72 | quote}}
|
||||
{{else}}
|
||||
{{wrap 72 .OriginalText | quote}}
|
||||
{{end}}
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, python3
|
||||
}:
|
||||
|
||||
|
@ -94,6 +94,16 @@ python.pkgs.buildPythonApplication rec {
|
||||
--replace "/media/frigate" "/var/lib/frigate" \
|
||||
--replace "/tmp/cache" "/var/cache/frigate"
|
||||
|
||||
substituteInPlace frigate/http.py \
|
||||
--replace "/opt/frigate" "${placeholder "out"}/${python.sitePackages}" \
|
||||
--replace "/tmp/cache/" "/var/cache/frigate"
|
||||
|
||||
substituteInPlace frigate/output.py \
|
||||
--replace "/opt/frigate" "${placeholder "out"}/${python.sitePackages}"
|
||||
|
||||
substituteInPlace frigate/record.py \
|
||||
--replace "/tmp/cache" "/var/cache/frigate"
|
||||
|
||||
substituteInPlace frigate/detectors/detector_config.py \
|
||||
--replace "/labelmap.txt" "${placeholder "out"}/share/frigate/labelmap.txt"
|
||||
|
||||
|
63
pkgs/applications/video/memento/default.nix
Normal file
63
pkgs/applications/video/memento/default.nix
Normal file
@ -0,0 +1,63 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, qtbase
|
||||
, qtx11extras ? null # qt5 only
|
||||
, wrapQtAppsHook
|
||||
|
||||
# before that => zeal
|
||||
, sqlite
|
||||
, json_c
|
||||
, mecab
|
||||
, libzip
|
||||
, mpv
|
||||
, yt-dlp
|
||||
# optional
|
||||
, makeWrapper}:
|
||||
|
||||
let
|
||||
isQt5 = lib.versions.major qtbase.version == "5";
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "memento";
|
||||
version = "v1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ripose-jp";
|
||||
repo = "Memento";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-29AzQ+Z2PNs65Tvmt2Z5Ra2G3Yhm4LVBpAqvnSsnE0Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
sqlite
|
||||
json_c
|
||||
libzip
|
||||
mecab
|
||||
] ++ lib.optionals isQt5 [ qtx11extras ];
|
||||
|
||||
propagatedBuildInputs = [ mpv ];
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/memento" \
|
||||
--prefix PATH : "${yt-dlp}/bin" \
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An mpv-based video player for studying Japanese";
|
||||
homepage = "https://ripose-jp.github.io/Memento/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ teto ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
||||
|
29
pkgs/applications/video/mpv-shim-default-shaders/default.nix
Normal file
29
pkgs/applications/video/mpv-shim-default-shaders/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mpv-shim-default-shaders";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iwalton3";
|
||||
repo = "default-shader-pack";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BM2GvmUoWQUUMH464YIIqu5A1t1B+otbJxAGFbySuq8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/${pname}
|
||||
cp -r shaders *.json $out/share/${pname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/iwalton3/default-shader-pack";
|
||||
description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients.";
|
||||
license = with licenses; [
|
||||
gpl3Plus
|
||||
mit
|
||||
unlicense
|
||||
];
|
||||
maintainers = with maintainers; [ devusb ];
|
||||
};
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{ lib, buildPythonApplication, fetchFromGitHub, mpv, requests, python-mpv-jsonipc, pystray, tkinter
|
||||
, wrapGAppsHook, gobject-introspection }:
|
||||
{ lib, buildPythonApplication, fetchFromGitHub, python, mpv, requests, python-mpv-jsonipc, pystray, tkinter
|
||||
, wrapGAppsHook, gobject-introspection, mpv-shim-default-shaders }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "plex-mpv-shim";
|
||||
@ -25,12 +25,19 @@ buildPythonApplication rec {
|
||||
'';
|
||||
dontWrapGApps = true;
|
||||
|
||||
postInstall = ''
|
||||
# put link to shaders where upstream package expects them
|
||||
ln -s ${mpv-shim-default-shaders}/share/mpv-shim-default-shaders $out/${python.sitePackages}/plex_mpv_shim/default_shader_pack
|
||||
'';
|
||||
|
||||
# does not contain tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/iwalton3/plex-mpv-shim";
|
||||
description = "Allows casting of videos to MPV via the Plex mobile and web app";
|
||||
maintainers = with maintainers; [ devusb ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -17,13 +17,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "colima";
|
||||
version = "0.5.4";
|
||||
version = "0.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "abiosoft";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-oCYHQFajtZXVAVeJ8zvJABlmwmOUgisvVg9eLT7wd0M=";
|
||||
sha256 = "sha256-i+JveX9cXF+2Po5NFM8HTmwcSJJ/iSPrlwbA/7aNhc0=";
|
||||
# We need the git revision
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
@ -35,7 +35,7 @@ buildGoModule rec {
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper ]
|
||||
++ lib.optionals stdenv.isDarwin [ darwin.DarwinTools ];
|
||||
|
||||
vendorHash = "sha256-bEgC7j8WvCgrJ2Ahye4mfWVEmo6Y/OO64mDIJXvtaiE=";
|
||||
vendorHash = "sha256-lsTvzGFoC3Brnr1Q0Hl0ZqEDfcTeQ8vWGe+xylTyvts=";
|
||||
|
||||
# disable flaky Test_extractZones
|
||||
# https://hydra.nixos.org/build/212378003/log
|
||||
|
23
pkgs/build-support/kernel/make-initrd-ng/Cargo.lock
generated
23
pkgs/build-support/kernel/make-initrd-ng/Cargo.lock
generated
@ -8,6 +8,16 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "eyre"
|
||||
version = "0.6.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb"
|
||||
dependencies = [
|
||||
"indenter",
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "goblin"
|
||||
version = "0.5.3"
|
||||
@ -19,6 +29,12 @@ dependencies = [
|
||||
"scroll",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indenter"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.17"
|
||||
@ -32,9 +48,16 @@ dependencies = [
|
||||
name = "make-initrd-ng"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"eyre",
|
||||
"goblin",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.17.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
|
||||
|
||||
[[package]]
|
||||
name = "plain"
|
||||
version = "0.2.3"
|
||||
|
@ -7,4 +7,5 @@ edition = "2018"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
eyre = "0.6.8"
|
||||
goblin = "0.5.0"
|
||||
|
@ -3,12 +3,13 @@ use std::env;
|
||||
use std::ffi::{OsStr, OsString};
|
||||
use std::fs;
|
||||
use std::hash::Hash;
|
||||
use std::io::{BufRead, BufReader};
|
||||
use std::iter::FromIterator;
|
||||
use std::io::{BufRead, BufReader, Error};
|
||||
use std::os::unix;
|
||||
use std::path::{Component, Path, PathBuf};
|
||||
use std::process::Command;
|
||||
|
||||
use eyre::Context;
|
||||
use goblin::{elf::Elf, Object};
|
||||
|
||||
struct NonRepeatingQueue<T> {
|
||||
@ -87,22 +88,30 @@ fn add_dependencies<P: AsRef<Path> + AsRef<OsStr>>(
|
||||
}
|
||||
}
|
||||
|
||||
fn copy_file<P: AsRef<Path> + AsRef<OsStr>, S: AsRef<Path> + AsRef<OsStr>>(
|
||||
fn copy_file<
|
||||
P: AsRef<Path> + AsRef<OsStr> + std::fmt::Debug,
|
||||
S: AsRef<Path> + AsRef<OsStr> + std::fmt::Debug,
|
||||
>(
|
||||
source: P,
|
||||
target: S,
|
||||
queue: &mut NonRepeatingQueue<Box<Path>>,
|
||||
) -> Result<(), Error> {
|
||||
fs::copy(&source, &target)?;
|
||||
) -> eyre::Result<()> {
|
||||
fs::copy(&source, &target)
|
||||
.wrap_err_with(|| format!("failed to copy {:?} to {:?}", source, target))?;
|
||||
|
||||
let contents = fs::read(&source)?;
|
||||
let contents =
|
||||
fs::read(&source).wrap_err_with(|| format!("failed to read from {:?}", source))?;
|
||||
|
||||
if let Ok(Object::Elf(e)) = Object::parse(&contents) {
|
||||
add_dependencies(source, e, queue);
|
||||
|
||||
// Make file writable to strip it
|
||||
let mut permissions = fs::metadata(&target)?.permissions();
|
||||
let mut permissions = fs::metadata(&target)
|
||||
.wrap_err_with(|| format!("failed to get metadata for {:?}", target))?
|
||||
.permissions();
|
||||
permissions.set_readonly(false);
|
||||
fs::set_permissions(&target, permissions)?;
|
||||
fs::set_permissions(&target, permissions)
|
||||
.wrap_err_with(|| format!("failed to set readonly flag to false for {:?}", target))?;
|
||||
|
||||
// Strip further than normal
|
||||
if let Ok(strip) = env::var("STRIP") {
|
||||
@ -121,11 +130,13 @@ fn copy_file<P: AsRef<Path> + AsRef<OsStr>, S: AsRef<Path> + AsRef<OsStr>>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn queue_dir<P: AsRef<Path>>(
|
||||
fn queue_dir<P: AsRef<Path> + std::fmt::Debug>(
|
||||
source: P,
|
||||
queue: &mut NonRepeatingQueue<Box<Path>>,
|
||||
) -> Result<(), Error> {
|
||||
for entry in fs::read_dir(source)? {
|
||||
) -> eyre::Result<()> {
|
||||
for entry in
|
||||
fs::read_dir(&source).wrap_err_with(|| format!("failed to read dir {:?}", source))?
|
||||
{
|
||||
let entry = entry?;
|
||||
// No need to recurse. The queue will bring us back round here on its own.
|
||||
queue.push_back(Box::from(entry.path().as_path()));
|
||||
@ -138,7 +149,7 @@ fn handle_path(
|
||||
root: &Path,
|
||||
p: &Path,
|
||||
queue: &mut NonRepeatingQueue<Box<Path>>,
|
||||
) -> Result<(), Error> {
|
||||
) -> eyre::Result<()> {
|
||||
let mut source = PathBuf::new();
|
||||
let mut target = Path::new(root).to_path_buf();
|
||||
let mut iter = p.components().peekable();
|
||||
@ -161,15 +172,17 @@ fn handle_path(
|
||||
Component::Normal(name) => {
|
||||
target.push(name);
|
||||
source.push(name);
|
||||
let typ = fs::symlink_metadata(&source)?.file_type();
|
||||
let typ = fs::symlink_metadata(&source)
|
||||
.wrap_err_with(|| format!("failed to get symlink metadata for {:?}", source))?
|
||||
.file_type();
|
||||
if typ.is_file() && !target.exists() {
|
||||
copy_file(&source, &target, queue)?;
|
||||
|
||||
if let Some(filename) = source.file_name() {
|
||||
source.set_file_name(OsString::from_iter([
|
||||
OsStr::new("."),
|
||||
filename,
|
||||
OsStr::new("-wrapped"),
|
||||
OsStr::new("."),
|
||||
filename,
|
||||
OsStr::new("-wrapped"),
|
||||
]));
|
||||
|
||||
let wrapped_path = source.as_path();
|
||||
@ -178,11 +191,14 @@ fn handle_path(
|
||||
}
|
||||
}
|
||||
} else if typ.is_symlink() {
|
||||
let link_target = fs::read_link(&source)?;
|
||||
let link_target = fs::read_link(&source)
|
||||
.wrap_err_with(|| format!("failed to resolve symlink of {:?}", source))?;
|
||||
|
||||
// Create the link, then push its target to the queue
|
||||
if !target.exists() {
|
||||
unix::fs::symlink(&link_target, &target)?;
|
||||
unix::fs::symlink(&link_target, &target).wrap_err_with(|| {
|
||||
format!("failed to symlink {:?} to {:?}", link_target, target)
|
||||
})?;
|
||||
}
|
||||
source.pop();
|
||||
source.push(link_target);
|
||||
@ -196,12 +212,14 @@ fn handle_path(
|
||||
break;
|
||||
} else if typ.is_dir() {
|
||||
if !target.exists() {
|
||||
fs::create_dir(&target)?;
|
||||
fs::create_dir(&target)
|
||||
.wrap_err_with(|| format!("failed to create dir {:?}", target))?;
|
||||
}
|
||||
|
||||
// Only recursively copy if the directory is the target object
|
||||
if iter.peek().is_none() {
|
||||
queue_dir(&source, queue)?;
|
||||
queue_dir(&source, queue)
|
||||
.wrap_err_with(|| format!("failed to queue dir {:?}", source))?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -211,9 +229,10 @@ fn handle_path(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Error> {
|
||||
fn main() -> eyre::Result<()> {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
let input = fs::File::open(&args[1])?;
|
||||
let input =
|
||||
fs::File::open(&args[1]).wrap_err_with(|| format!("failed to open file {:?}", &args[1]))?;
|
||||
let output = &args[2];
|
||||
let out_path = Path::new(output);
|
||||
|
||||
@ -235,8 +254,10 @@ fn main() -> Result<(), Error> {
|
||||
let link_path = Path::new(&link_string);
|
||||
let mut link_parent = link_path.to_path_buf();
|
||||
link_parent.pop();
|
||||
fs::create_dir_all(link_parent)?;
|
||||
unix::fs::symlink(obj_path, link_path)?;
|
||||
fs::create_dir_all(&link_parent)
|
||||
.wrap_err_with(|| format!("failed to create directories to {:?}", link_parent))?;
|
||||
unix::fs::symlink(obj_path, link_path)
|
||||
.wrap_err_with(|| format!("failed to symlink {:?} to {:?}", obj_path, link_path))?;
|
||||
}
|
||||
}
|
||||
while let Some(obj) = queue.pop_front() {
|
||||
|
75
pkgs/data/icons/papirus-nord/default.nix
Normal file
75
pkgs/data/icons/papirus-nord/default.nix
Normal file
@ -0,0 +1,75 @@
|
||||
{ stdenvNoCC
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, gtk3
|
||||
, getent
|
||||
, papirus-icon-theme
|
||||
, accent ? "frostblue1"
|
||||
}:
|
||||
let
|
||||
validAccents = [
|
||||
"auroragreen"
|
||||
"auroragreenb"
|
||||
"auroramagenta"
|
||||
"auroramagentab"
|
||||
"auroraorange"
|
||||
"auroraorangeb"
|
||||
"aurorared"
|
||||
"auroraredb"
|
||||
"aurorayellow"
|
||||
"aurorayellowb"
|
||||
"frostblue1"
|
||||
"frostblue2"
|
||||
"frostblue3"
|
||||
"frostblue4"
|
||||
"polarnight1"
|
||||
"polarnight2"
|
||||
"polarnight3"
|
||||
"polarnight3"
|
||||
"snowstorm1"
|
||||
"snowstorm1b"
|
||||
];
|
||||
pname = "papirus-nord";
|
||||
version = "3.2.0";
|
||||
in
|
||||
lib.checkListOfEnum "${pname}: accent colors" validAccents [ accent ]
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "adapta-projects";
|
||||
repo = "papirus-nord";
|
||||
rev = version;
|
||||
sha256 = "sha256-KwwTDGJQ4zN9XH/pKFQDQ+EgyuSCFhN2PQAI35G+3YM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 getent ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./papirus-folders
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/icons
|
||||
cp -r --no-preserve=mode ${papirus-icon-theme}/share/icons/Papirus* $out/share/icons
|
||||
for size in 64x64 48x48 32x32 24x24 22x22; do
|
||||
cp -f Icons/$size/* $out/share/icons/Papirus/$size/places
|
||||
done
|
||||
for theme in $out/share/icons/*; do
|
||||
USER_HOME=$HOME DISABLE_UPDATE_ICON_CACHE=1 \
|
||||
./papirus-folders -t $theme -o -C ${accent}
|
||||
gtk-update-icon-cache --force $theme
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Nord version of Papirus Icon Theme";
|
||||
homepage = "https://github.com/Adapta-Projects/Papirus-Nord";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ aacebedo ];
|
||||
};
|
||||
}
|
@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "deepin-compressor";
|
||||
version = "5.12.14";
|
||||
version = "5.12.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxdeepin";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-0F1LdoeGtIKOVepifwdNMohbEb9fakpQLiNHg5H9Nlw=";
|
||||
sha256 = "sha256-6grnbv9hMKntOmpVcmU5IpAbHM7r0dQWb+SoQYtc5YY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -16,6 +16,7 @@
|
||||
, kcodecs
|
||||
, ffmpeg
|
||||
, libvlc
|
||||
, libpulseaudio
|
||||
, libcue
|
||||
, taglib
|
||||
, gsettings-qt
|
||||
@ -27,21 +28,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "deepin-music";
|
||||
version = "6.2.21";
|
||||
version = "6.2.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxdeepin";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-sN611COCWy1gF/BZZqZ154uYuRo9HsbJw2wXe9OJ+iQ=";
|
||||
sha256 = "sha256-0adAAQe9WG1G+JcxD4ypYyYE4MrRijfuj/VBno2WsLk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/music-player/CMakeLists.txt \
|
||||
--replace "/usr/include/vlc" "${libvlc}/include/vlc" \
|
||||
--replace "/usr/share" "$out/share"
|
||||
substituteInPlace src/libmusic-plugin/CMakeLists.txt \
|
||||
--replace "/usr/lib/deepin-aiassistant" "$out/lib/deepin-aiassistant"
|
||||
--replace "/usr/include/vlc" "${libvlc}/include/vlc"
|
||||
substituteInPlace src/music-player/data/deepin-music.desktop \
|
||||
--replace "/usr/bin/deepin-music" "$out/bin/deepin-music"
|
||||
'';
|
||||
@ -65,6 +63,7 @@ stdenv.mkDerivation rec {
|
||||
kcodecs
|
||||
ffmpeg
|
||||
libvlc
|
||||
libpulseaudio
|
||||
libcue
|
||||
taglib
|
||||
gsettings-qt
|
||||
|
@ -19,8 +19,10 @@
|
||||
, smartmontools
|
||||
, substituteAll
|
||||
, touchegg
|
||||
, util-linux
|
||||
, vte
|
||||
, wrapGAppsHook
|
||||
, xdg-utils
|
||||
, xprop
|
||||
}:
|
||||
let
|
||||
@ -94,6 +96,18 @@ super: lib.trivial.pipe super [
|
||||
'';
|
||||
}))
|
||||
|
||||
(patchExtension "gtk4-ding@smedius.gitlab.com" (old: {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
inherit gjs util-linux xdg-utils;
|
||||
util_linux = util-linux;
|
||||
xdg_utils = xdg-utils;
|
||||
src = ./extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch;
|
||||
nautilus_gsettings_path = "${glib.getSchemaPath gnome.nautilus}";
|
||||
})
|
||||
];
|
||||
}))
|
||||
|
||||
(patchExtension "pano@elhan.io" (old: {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
|
@ -0,0 +1,109 @@
|
||||
diff --git a/app/createThumbnail.js b/app/createThumbnail.js
|
||||
index ebe5213..9f67873 100755
|
||||
--- a/app/createThumbnail.js
|
||||
+++ b/app/createThumbnail.js
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/gjs
|
||||
+#!@gjs@/bin/gjs
|
||||
|
||||
/* DING: Desktop Icons New Generation for GNOME Shell
|
||||
*
|
||||
diff --git a/app/ding.js b/app/ding.js
|
||||
index b200be4..3ce05ef 100755
|
||||
--- a/app/ding.js
|
||||
+++ b/app/ding.js
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env gjs
|
||||
+#!@gjs@/bin/gjs
|
||||
|
||||
/* DING: Desktop Icons New Generation for GNOME Shell
|
||||
*
|
||||
diff --git a/app/fileItemMenu.js b/app/fileItemMenu.js
|
||||
index cadca48..9632ecc 100644
|
||||
--- a/app/fileItemMenu.js
|
||||
+++ b/app/fileItemMenu.js
|
||||
@@ -683,7 +683,7 @@ var FileItemMenu = class {
|
||||
return;
|
||||
}
|
||||
let xdgEmailCommand = [];
|
||||
- xdgEmailCommand.push('xdg-email');
|
||||
+ xdgEmailCommand.push('@xdg_utils@/bin/xdg-email');
|
||||
for (let fileItem of this._desktopManager.getCurrentSelection(false)) {
|
||||
fileItem.unsetSelected();
|
||||
xdgEmailCommand.push('--attach');
|
||||
diff --git a/app/preferences.js b/app/preferences.js
|
||||
index c89271c..29f0db8 100644
|
||||
--- a/app/preferences.js
|
||||
+++ b/app/preferences.js
|
||||
@@ -31,6 +31,7 @@ var Preferences = class {
|
||||
this._extensionPath = Data.codePath;
|
||||
this._Enums = Data.Enums;
|
||||
let schemaSource = GioSSS.get_default();
|
||||
+ const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
|
||||
this._desktopManager = null;
|
||||
|
||||
// Gtk
|
||||
@@ -38,7 +39,7 @@ var Preferences = class {
|
||||
this.gtkSettings = new Gio.Settings({ settings_schema: schemaGtk });
|
||||
|
||||
// Gnome Files
|
||||
- let schemaObj = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS, true);
|
||||
+ let schemaObj = schemaSourceNautilus.lookup(this._Enums.SCHEMA_NAUTILUS, true);
|
||||
if (!schemaObj) {
|
||||
this.nautilusSettings = null;
|
||||
this.CLICK_POLICY_SINGLE = false;
|
||||
@@ -47,7 +48,7 @@ var Preferences = class {
|
||||
}
|
||||
|
||||
// Compression
|
||||
- const compressionSchema = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS_COMPRESSION, true);
|
||||
+ const compressionSchema = schemaSourceNautilus.lookup(this._Enums.SCHEMA_NAUTILUS_COMPRESSION, true);
|
||||
if (!compressionSchema)
|
||||
this.nautilusCompression = null;
|
||||
else
|
||||
diff --git a/app/thumbnailapp.js b/app/thumbnailapp.js
|
||||
index b22bbe0..c5c7711 100755
|
||||
--- a/app/thumbnailapp.js
|
||||
+++ b/app/thumbnailapp.js
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env gjs
|
||||
+#!@gjs@/bin/gjs
|
||||
|
||||
/* DING: Desktop Icons New Generation for GNOME Shell
|
||||
*
|
||||
diff --git a/extension.js b/extension.js
|
||||
index 2e5bcaa..4eaa108 100644
|
||||
--- a/extension.js
|
||||
+++ b/extension.js
|
||||
@@ -373,7 +373,7 @@ function getDesktopGeometry() {
|
||||
async function doKillAllOldDesktopProcesses() {
|
||||
const procFolder = Gio.File.new_for_path('/proc');
|
||||
const processes = await FileUtils.enumerateDir(procFolder);
|
||||
- const thisPath = `gjs ${GLib.build_filenamev([
|
||||
+ const thisPath = `@gjs@/bin/gjs ${GLib.build_filenamev([
|
||||
ExtensionUtils.getCurrentExtension().path,
|
||||
'app',
|
||||
'ding.js',
|
||||
@@ -397,7 +397,7 @@ async function doKillAllOldDesktopProcesses() {
|
||||
}
|
||||
|
||||
if (contents.startsWith(thisPath)) {
|
||||
- let proc = new Gio.Subprocess({ argv: ['/bin/kill', filename] });
|
||||
+ let proc = new Gio.Subprocess({ argv: ['@util_linux@/bin/kill', filename] });
|
||||
proc.init(null);
|
||||
print(`Killing old DING process ${filename}`);
|
||||
await proc.wait_async_promise(null);
|
||||
diff --git a/prefs.js b/prefs.js
|
||||
index 1ad0cad..d830f11 100644
|
||||
--- a/prefs.js
|
||||
+++ b/prefs.js
|
||||
@@ -46,7 +46,8 @@ function fillPreferencesWindow(window) {
|
||||
let schemaSource = GioSSS.get_default();
|
||||
let schemaGtk = schemaSource.lookup(Enums.SCHEMA_GTK, true);
|
||||
let gtkSettings = new Gio.Settings({ settings_schema: schemaGtk });
|
||||
- let schemaNautilus = schemaSource.lookup(Enums.SCHEMA_NAUTILUS, true);
|
||||
+ const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
|
||||
+ let schemaNautilus = schemaSourceNautilus.lookup(Enums.SCHEMA_NAUTILUS, true);
|
||||
let nautilusSettings;
|
||||
if (!schemaNautilus)
|
||||
nautilusSettings = null;
|
@ -3,176 +3,176 @@
|
||||
# v8.0 (preview)
|
||||
{
|
||||
aspnetcore_8_0 = buildAspNetCore {
|
||||
version = "8.0.0-preview.3.23177.8";
|
||||
version = "8.0.0-preview.4.23260.4";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/e47f5b95-4eb2-451d-8ec5-2e37b928d91f/e386c9fb8185cd35674fe2a44dedb318/aspnetcore-runtime-8.0.0-preview.3.23177.8-linux-x64.tar.gz";
|
||||
sha512 = "f990c63e651d71ef615aa494dc555fdcf66411431d07b7ae9bef50f276e863198212471b90bdd86686426d5907d2426924d1a279262035bbf3ce64d8914e590f";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/bda9e867-46d3-416b-864f-5fb28658a8fd/c58375f59b0c0a9946a2be04617a7276/aspnetcore-runtime-8.0.0-preview.4.23260.4-linux-x64.tar.gz";
|
||||
sha512 = "fa2f95d90dafc11e083904e5795a0f9011ccd135a94e64149795a4404a900f0962d2d8cb187db2e5d32e0d8ca55387626e7201ac0c8127fba0cb499eb5a78c61";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/0d98023b-349e-4893-b717-176eab3ca4fe/ab919484bd5a5a981057f60828c8d8d8/aspnetcore-runtime-8.0.0-preview.3.23177.8-linux-arm64.tar.gz";
|
||||
sha512 = "c5826d36daa4fab2779bb3b6bb94886bd98ee018109cf82b994a189cd6675b8f14eab9b11fc2a265a7bb3b8dacbe79b75887b1a81ee65c4ca690cef8a27a400c";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/c9d4a334-d522-4439-a98a-0af0e7852621/9c3afe685d3e65a92d5c538afa211de7/aspnetcore-runtime-8.0.0-preview.4.23260.4-linux-arm64.tar.gz";
|
||||
sha512 = "1224d2ebe38122380db54b8fbf5ce95a7666b2a2062a1f5da40a769e0ec859640ced391ca6cfabe21f5c0aef4a7b1722b324f361e898c9c8c4207198b0b390b5";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/18fcf656-e2e0-4fb0-8141-ffeaf76b2785/cd4ff90bbf9b25d10cdc9fb8aacf94be/aspnetcore-runtime-8.0.0-preview.3.23177.8-osx-x64.tar.gz";
|
||||
sha512 = "b8354eccec9c8b77f6afe7b4ff08f300359dbdc6106731b3e5b9966e1060a6def949174de8edfadd4e90a65e3337f2c03dbf55a4a67e2d8dd51446600605a914";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/6011ab96-f3be-414f-b13b-792aad1e383c/e78722ebae2ad81640e05286a30eb0c8/aspnetcore-runtime-8.0.0-preview.4.23260.4-osx-x64.tar.gz";
|
||||
sha512 = "98cd0208733397e622afc725873983f8f4ee41cd5a7d1987f973e71b640aaa0210d99b4a3d2acffe3e1f016c5816998d06289d3ae509f9280078bb716962851a";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/0e9f855d-b7eb-4641-b859-218d7d61e169/c7ecfeb28526a57668f53d7da4fa0c90/aspnetcore-runtime-8.0.0-preview.3.23177.8-osx-arm64.tar.gz";
|
||||
sha512 = "9167ae736f29f49522f6263e6b2698b94fb0c4f21653a81a2ee1c8101d3c176a9b69dceed0c832ce04f2b84aa8fe0b14e7dac54dd965026e472429db739ddebe";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/5acf37f1-8232-4421-b4ae-41d635e2c8d1/3de8d329bb5d905e539f61a12d6091c9/aspnetcore-runtime-8.0.0-preview.4.23260.4-osx-arm64.tar.gz";
|
||||
sha512 = "c0c248789f312e7430850ce53400e041ed550f3ac6eb30ca16a83c344c6110fdd34e7e92bf3c06ca083a4b5b8f01ba37542ed9136458f0d3e41a6cfab22ea5b7";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
runtime_8_0 = buildNetRuntime {
|
||||
version = "8.0.0-preview.3.23174.8";
|
||||
version = "8.0.0-preview.4.23259.5";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/6c4d4118-bc92-4601-b42b-2b6e91fc28f6/7b3a642aab860b394982d48bf5681243/dotnet-runtime-8.0.0-preview.3.23174.8-linux-x64.tar.gz";
|
||||
sha512 = "d0da20d48448c654ee548668a585b2272c661eb84ec6f845b3a49c0143ba1bfa83865f69da6bb607353a571e8c84b8e63650edf816641b1c5a55fa77a59e09be";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/7267fec0-ae12-4f40-9c3d-56da5fbf83e4/f64c2758980c1f908cbe089a6233bbe7/dotnet-runtime-8.0.0-preview.4.23259.5-linux-x64.tar.gz";
|
||||
sha512 = "02544cc1109f3d7e3fc2065b42c7f1ddd4777ffd8765456c8422b6c4b815abf60cac56d69058c2bff7c7c680d47bc6bcd3e00678db818387b6d09ce9b42f64d0";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/7b272393-da0b-4386-ac78-416ee38195fe/4f0d5a3d43cd7b32ae6051b191edd5e8/dotnet-runtime-8.0.0-preview.3.23174.8-linux-arm64.tar.gz";
|
||||
sha512 = "6ec1368fde8d4ffe5eef21e227c93ebe94d44f6bae311c5686d2c710240a025b5bc3716f3ceea18a8b65ef588a811828a0ad8b76db3086512786966fd111c15b";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/8fac5d3e-dd32-4b29-a187-1887a912e185/d350aabe412cb33d9c2f2cafbf7c9bed/dotnet-runtime-8.0.0-preview.4.23259.5-linux-arm64.tar.gz";
|
||||
sha512 = "56beb8b362028eee4751081811b51a6f5a741736ca2de401a9a9178deaf0b0b8e3790e3175e953fe59140ad0b80700d0b75894d7326b996700d97ed667233394";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/962423a9-e286-4a7e-b3a8-4fdcde16d9e2/0b11e7166df8ed292c44d4a7594e482a/dotnet-runtime-8.0.0-preview.3.23174.8-osx-x64.tar.gz";
|
||||
sha512 = "53c52fec2fdf5e5cba92f006d2680fa63ae8946ab0a6ec03b4a050e6d52f2e2e94ea01e0b8be63136f0c800907fca6c49dbb180711e8948982205f6c447f9256";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/636e676d-136c-4ad3-86c8-d4e86869832e/627c24b6a6753b0dee5af4a322f79155/dotnet-runtime-8.0.0-preview.4.23259.5-osx-x64.tar.gz";
|
||||
sha512 = "117af68c68caa2fba04cdb9ef5d4df230d315e30069a7dd378ae413db4dfcb789730f91b2d9898f78e525bdaae6b2b5bf521d5255abda96be35a73ca0cab3ded";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/e29d7a01-41b9-4cdb-9c87-640871cd7b31/cfc38e882c713763339265cdfd1e4fac/dotnet-runtime-8.0.0-preview.3.23174.8-osx-arm64.tar.gz";
|
||||
sha512 = "73619816e7570bde00105aeba9bd60ddbe868df4d25f4b53679dea01a80d81403215ee7caad7adf7c0128011b687539786e7bb817d652e993064ca5716d1fc1a";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/c0d0406b-3995-403d-b25c-6ad764291eaa/7f1d366577de292f32623bdf88a5dacf/dotnet-runtime-8.0.0-preview.4.23259.5-osx-arm64.tar.gz";
|
||||
sha512 = "497dc9494c3aab67f60717598e6676650bde300170e1d78a14ffba955d76641b62852c64145b5358eca4a3c0b16dbb1dd8cf662c8b04df3202128d97e05ab8bd";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sdk_8_0 = buildNetSdk {
|
||||
version = "8.0.100-preview.3.23178.7";
|
||||
version = "8.0.100-preview.4.23260.5";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/103d5e2c-d5c4-4101-bb6e-b82bc73a7d93/284a5cdccbc995f39806a3ba2dc17b93/dotnet-sdk-8.0.100-preview.3.23178.7-linux-x64.tar.gz";
|
||||
sha512 = "3b5d72979831256b9340a01db23d3b2dca801672546eeed04385949ed5f4363d3c731f31477ec82c7200ce88502dc45e03986c8acc8f2fc611b0343af5f1c488";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/ae0534ab-1c49-4055-ba2a-b8159c4f94d2/3a5945c949d2eb141f8ce52096fca13c/dotnet-sdk-8.0.100-preview.4.23260.5-linux-x64.tar.gz";
|
||||
sha512 = "1132220710d0e2deb97b58e0f439dfd86e965fc5347a2cc9aa3326ebdd98b21361fd6c019507a884927ee3b0053aa93bc0adfb67554ee5d9526c697ae9771551";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/3b23cbd9-f068-408f-8c3c-551a5432ff08/876e15ab4041bde421e96d21e259b3b9/dotnet-sdk-8.0.100-preview.3.23178.7-linux-arm64.tar.gz";
|
||||
sha512 = "c48840b3924196a12cc66b07249af37afb2b0f3b139eb304492a2320e7ae06cfc2391abd1da31e6e58287b8b8e564386f82c55eb9a1b16108f53a4d1d59812f7";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/9de5d7d8-6062-4a61-b8bf-b1b61dd4b768/f23a336abc7548309acf01314ddc8904/dotnet-sdk-8.0.100-preview.4.23260.5-linux-arm64.tar.gz";
|
||||
sha512 = "47d9d1a67b58223b749fc1ca176c4dbd7049d7437f0717a61a6b22923b9a4c243e4d101c655bc1db817e281e0272ad452f4af6fc60c51d98493d85253e7476db";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/1d4d98db-3a0a-4b77-bd3f-5ead1fc106a9/1a3410ec0ce6b08a02947a5541a3b5a7/dotnet-sdk-8.0.100-preview.3.23178.7-osx-x64.tar.gz";
|
||||
sha512 = "53ab3f6449438ab6ee0ecdd0ae3759e5fe873b964d0b4e3ee5c8a48197a7c87ec83b956eb1b10aa90297403762eb2ddab0e99e29442db484b7ed3f9d00c8037d";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/78706993-4be4-46e0-8b14-48f295884a1b/39c2db8388ac84cdfe7e909bdde39384/dotnet-sdk-8.0.100-preview.4.23260.5-osx-x64.tar.gz";
|
||||
sha512 = "be1a7cdde31cf018d4d3b1d6c8305330bfc44b5c2e515c3213d162ab227d902edba16a8e422ab1d5441c712b2e50480d1e9240e6a26a51421c794840baafbe23";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/7fc953e8-4e3f-422b-ae45-719b38eb798e/6559f9ed96b446bbaf2e2fd2af694dd0/dotnet-sdk-8.0.100-preview.3.23178.7-osx-arm64.tar.gz";
|
||||
sha512 = "f67ad34c23dca602e08987c12f07a39b6941682e35eae3f50efb95637b252e1e885a259f4df9be5bc0f5d43a14f16ec206a39c899683e22bf7b6a94fb2db1386";
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/2c6668f9-b531-427a-b3b5-5c9dc456c5b8/ef5ef0a8db2df07d12ef138e05fa2231/dotnet-sdk-8.0.100-preview.4.23260.5-osx-arm64.tar.gz";
|
||||
sha512 = "d66f6a9008b707119b37e9d2fa746aaa126f5f87452f25aa4902f3e50d08844218e11a55ecafa731c88eaf9b5aef21d08f828064d722446719ba37e69940a813";
|
||||
};
|
||||
};
|
||||
packages = { fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "1nfzm2wl5qmjz5ym7aainpj71gxfl7f8kr1p9c1xl5bkc7437h3s"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0a7zd729dcc7fy72z4416nxd8n9srsjfb9mlzkhr7dm1kxn25smj"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1gvh8c0aylqgw6lys7yl5d6ajywmqaz173ak1icjh9x9073bcnq1"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0a28avjcqgkr7wdq0g83wf31dshn8jq05aas5y1rwka8hbplyagq"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0ywsi5qaqhfl9987fgb7kdjmzk8fyvql9ay3c2xqhxw3l0sgk9gr"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1gfms15zadmmpl39m81hmnwr537b4jlhivhp290b4zs00bv7lwq1"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "1fxzpy9sjjfzkg78c0pzyky0ahm2sy95772acnggy23h554qvfm0"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "1ali5x4k3yvmi5nwc4yq85xj0ywf0jg1b3fsfkjw18ayh9h61ksp"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0ry5405vj93fm5985z89qk3h38dd6q6iij9ada1063b275gkl36j"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.0-preview.3.23177.8"; sha256 = "04678w1fg1l6jr65vb4x0y4r76rwjz98qriazv9l6f07iskswbpb"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.0-preview.3.23177.8"; sha256 = "0awgrd1gm4bisf9qxv122iivzzsvr958lyqghip4cq0v6lrwgp8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.3.23177.8"; sha256 = "0xacfmnw3sxnwrfx1vikqc5q6hbd4mn2z5kf2gmc38zg26gnd1dm"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.3.23177.8"; sha256 = "0khvlvily96rm88y14by5svpcy0x8jxbkdnlks965lz6685yz5yf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "0w297nsnh4w3pi3w5iwnww8nlk00qys82vwzmrhxbw2mpar5mf06"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ik3lzj1b41vgs878gci8ck1dz5g1fxkb76d6il7zf95dxkivdiq"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "062x0vzb75m95knk1wql1bk5vk7s1d3sd13sm0jbh1i4mm7a0amh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "19sb0j0j43xl05wazn24x7hk96nljr9qjwahp4flyfdqrhjan72i"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1zlxqh82wxpb2xq808nmfywgziraa3ndb8v6wmh3315asw0l4j0c"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "11wr7i7sz5xd9xc7xsy7gynv1jxzyvja2q7c5pnvp9745w02lizd"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "04m5y009vj943lc0265frz16q5w8zx45zpj8a4q5bpy63fbzkyfc"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "13f3smijj3d3ifkwik8vlj01pv2bmcsqmqkzrjw3gj7w5ln3xrf1"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gy1ri66blly0k5wf8mgnfjkc8wnmrj2qf3bhwzlkfgyab85k1ap"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "1p280lr4dqajsqz91rhl0jgpii14wnbwl3878kb6l694q9vh9ly1"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1ac0jbv9qc5f2br9bgw198gq7lmpy7rj6xs2n2343v9p9wsff9sm"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0l3hb17adqqczv24r6jisk70rqlagmmjbsgqp9ndyz0wgq04sb07"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1iwdap9dldpjzvd1gg1mk84z2p24dq7s96w3i3g31rz41xh0yxdi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0hxk2p4cavnmc3azfpzjx0pmzapzh3ggfmgsapbpk0wc3zrf0ial"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1p74gc1h353can3f6104qxwfpzy89cmx43dzjh923pknyp673yhr"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0fv23nd0iq18ggyxpainkrwjnclk9lqvx221j3lhq44pa8fv2xvn"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1kj0ss21s7h00mhavm83zgjm3vbx27k8n6567liz3c8zk3xyyxvi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1r3ibli433k48q43nbhd94r3cgr4rdnkqj833n89j0xqvicrbk8p"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1lv5xx2jigpg50ywp105ghq3c3lp6x9q99k609gwhmznq0b2piaf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "1q5sbwlkw3hk1gazvzhsjw21c578a4mvvm6xcrjf81zwwqhbqdzx"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "14g4qrlvgzjixlbika0qc4zyh7rb4jx3xqm3hgjf5zdccfg3wlr1"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gsm2clshavsws0zdr1qsay6fylchrgjpxmsxhvs2afgw1p5xb43"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0x3ipigsad980is2c07f6q792am9lzmkahxkbr3f3k3nf9xxihbk"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "135anfn6rz3ysdmrvkig64fb37p9gc154ns97n6snwffc6c7xad4"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1qlyr3aax6pr21kcrfkfp3a4f5yw55dgam09lr8nzxqzqjc9qry3"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0sq6i4jpaxp8q98fxxf1y72qmrshigpk6kp19ivzk6vs655yzik0"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0z8wy3ib6abp129dwbzajrn3yvlm3gsa40n3fg01gbckhkgg1fd8"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0qzj903aw4lrij85hr18l4cxz0qvvvfgspdzx57g81l1l0dd7qaa"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1zq0zjnd3yq8a8nbj1dm3bblm1qn5gbfv26wglrb0rzsk8vc4rlh"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fhb0s8zgq8basmyzsm7h0rkzlkvz8lajkhqfnzmcwamv6i17m0s"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "05p07vmxjv6s619gcb14h1wfazb8zn47bng5m1nijalysp3sr7vb"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0kxgkx6p1aacz414j5ia2qffzsk3lkbvssaacna4573ymisxa85c"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0fpwss7dw6hg4ks5rcbx50rqazankcb8cvsnqrk23361p28myqkl"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yl27d46mx7iwg47v6di3r5v8sfagc3yksvxcfy93mvm8gpaii2z"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1v485fdlrchc7f8lxxsxwapzqv8v9q1q0msm54frxa17iivkgc9k"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pq7dx4wnl4wlywf6fhfyvxjajygfhr29hzi2z9bwac8i1nrb54f"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1y0nx36vms6024r8y5ckzscyqrqpbj0hz5dwzfz6am7iaq90iyjd"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hnhxp5wjq9xvm721f5amwk6qyncrvfn3scgmd911zn54ms3z2mq"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0m64ggyqkdbfzpkyz88xssf1qg62z7i349dij8n0sd0i74fj69fi"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pnrq3lrnc5kjhfp17mmjviy4jsrvcizszncfkc28y4hq689q27b"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "19aq4fvyg1hd4bi9l1vnfsrki4ppqkk06wx4m7v8158ss2804a1b"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0pw78b6agg0smc8k6sfhjj5m4w46dg9nvnzy59lhp1lgz6wfn3vj"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ix3arsgyxyffwk9b6vbyx58h3mv2hjwvgsc48b986zh4crjk7fq"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k7wp6s8fny06rrif74xzyd2fmflv3ckp5bs6zkcmm2ccmdrrm9z"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "198l3h1y2830g84k7j8p9h20c9j3w9yldn9rrpbfkg462y1l4dqs"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0jmgijsimrg7lnnsb5ja826h8bj1j8ww1z4zhnsgjddp3shb4v61"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wfliwrzq2k8cinv81fn45hq6s6b5977z2h5l0b716qcsk5kkdm8"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fqs4kspgvpf564qh5cly2x2l7wqnsrzysdl98j7a1nzsy7z8i9a"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wkvqsxf23nmaf4mldlc19pvzpnc7jmbinmdsbh4a12h2m8wr9hq"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0dmmp83w5hqd9jrwyjnm3n1rwjyhvdjwc07gd3m8i9hpbdglyjgc"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1fyzrhn46wg99yvmpsp3hq5yjxvgza7y5xkfpxsg1qkwlxxyj39l"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0s3fvj2bhn5iyzasn0d89lfln2j0ksm4zhkr1jz9jmadk0xdf46q"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "14mdp9hamh85vyd318qnxjj8vrnr79hflh19i02kd1l8d3k4gcwb"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "05mz3qb3833rmhwca6xic6wvzvnq7sz4pi3n4sfyz6jnjg87zp1x"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "039ljiz5lf8kc185nhy2mfz7nl34rczj8dxiq7d4j2q193blk1ws"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1dddrd8z1lq7v69nsjnpr1vlw14gkwwflcag8mggqxj1wp0jri6g"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0gv7rnl5qvnzly6fa90i5fsd3mxh2sbay35h0dicplzps8d9c436"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0x86m6gr1zb0i1wg67snin5zzlvg7xhr5gbc2hklzjgs1b8rq03w"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1424vq65cpz81fkq717ibjk608v7lac4yi8cnfi5rc9a5bzzwiw5"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1ghg3pywy83qpgq4wmf28mfsl8njvnm959irv4h2in4dfpvg6d07"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1jg1l6x0dawx5ysa9m1j11a1iqm5q1wridg4qm1dgg99fchc6mfz"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k3nkpj49w5092rjfwvjwgdks3sqdljjzrhgqlfhs99yyfl4vymd"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "0q2j765hr9dwwmamrdq6jq1pngnk82zmwpqsnqw4djf9gbphgb4v"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0k0bnangipr447dx3gbrd6wska4lkhzywcrs5vnpgnq8n6i7zs9j"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "8.0.0-preview.3.23174.8"; sha256 = "1vhsjwc7y0ax39lwj14hdrmw90bb62p369fnc8lf5pb1k88wr5ja"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1d9qf3h9p5bpik2g3qd2vnh4hcz4vaw262nns8fkphzjvyn1rapj"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0h0kfqbr23a625wq2ki363092rl8g0xmchwikh86327sfqm0i1qa"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "157z2sdmajf24w6y19k7qacqzdlchwzm97i49vzakpjf4rsrhl7l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "00rv31rpfa28lhidzlbkbpvc8ij8akrgj2xc26hh63yqrkxw707n"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.0-preview.3.23174.8"; sha256 = "027s6fbk3qm3r39w545xlan5psp1vp7nyy1id4i94krz3r23jr9b"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hg2ws6jbdjiwlnrqpqqd2crw4qn27whriqchxmzmnxprr857a2k"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1gipxwapdl6akscxws63fjr3cx2yz6pbh1pmndkaxgqal364j51a"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1n1x01wwvsdm9vb90kj4qx6wv9jra9jph6dbn8nfdk8ikv8jbyyh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "06bmyjmwfq1xrbz6b4vsw1kxf97ylfgsipavgw8hxkmrn4ic7qw8"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1sx1l642yqlfmya6671iv7dbzzg2xsd8kwxzp0ylg294zg8zca33"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "0p307ck43xc50zhk3ygxgaqilvihp0w8xfgb1g08jw7h82k4fnad"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.0-preview.3.23174.8"; sha256 = "1181xp6vygjvxm3y3ymd0vnq0r67igy77mpby7gfh3yip5ii2j18"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.0-preview.3.23174.8"; sha256 = "10n3ybn0r0gyndl4yyp60sy6j2s1vc8qpx4ky9d6wv3id80bxfay"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "04xray0vlk2szcms9f8bm66vlaf275lwzxxfdqsr50glhlksn57q"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "1y0b2p4jjdzmicmbzpszs71480sfibmjsmqc52aqclvx5bqzdsvd"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "03i5jf7g8iwp6k5aglbxixkf018ja09jmyjld83f6x8skzc8s6i7"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yif5vv4z1z7sy6gh967p9gxiab6srmm94z7y0v69xyzqb9v1ni4"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0yk0bgs1lrmxdk5fmgdm312kalszvxdv7h3cl4pldqydc7y9pcmk"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.3.23174.8"; sha256 = "0b5qavnw7n3wi9k5qylq1kvby27svdhzd1lz4vja2i76idpsr18b"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.3.23174.8"; sha256 = "1biz7yqd04hx8pk67y2n16lrf3n6wy3pxhh5mx5j1mvp5rd4zd4y"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.3.23174.8"; sha256 = "1k31qi99a26vz4hbpk3qcvgz7wgr492y55sn1lgfl6v29lnicqg1"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "0rw21m9yn52iry60aprhy6c3l656kf9q70vxy0qf1xy87vyadaq9"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "07dv8xiqkzj21b2r6jav3d4nrb4i8drwa2l0ybramdyynll01687"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "0ywg0x5k3826jpajr972b75dzcxvgbl55nwa6v12v8pbi77bnw0m"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1hag4kq25j0mfjc69v4l9vywjcmyp0ya945w34v681ww1akbgm5q"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "11swrs1zdvbkvs38xxaqbw928h92qj6hq47i8wmrjx56zcw44iwi"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1wwkhz0y2040bqbgmh8dp6wj48yvq9irmnppfwamznxkqnysc79f"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.3.23174.8"; sha256 = "1pgwp4r2g209lri7fkv94jpgkxddh900pjb39808q7j4s59pn8xk"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.0-preview.4.23260.4"; sha256 = "1d3iifh5cqdxf2gk45wna21z8amk7cml505daqkh1jgd50sp12n7"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.4.23260.4"; sha256 = "0ziz2h08d75y4s8ifws6xr4y0jh74j5ccc4hhbzw19b57xdyvlbz"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.4.23260.4"; sha256 = "15yvjnij8ij2zbnwcq9cqbxjch1rgzyadi0a295axcjn0jpgg0y9"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.4.23260.4"; sha256 = "02x4k23r6g74fzm9fiiq1cmh1vdjv0i355pfnzfmnwyya1rim3j4"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0-preview.4.23260.4"; sha256 = "1y88sr0yh8aypi34smxcy94djmvdkww0iq8cmk3sqccjxzyrfc8i"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0-preview.4.23260.4"; sha256 = "0armm7x8v8cpa778xcq3iykwfhpnwcz21qhiaqrbc186hjgq1a2l"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "8.0.0-preview.4.23260.4"; sha256 = "1wx5iq5yd8wrcnk8hsy7bknc9vi24fdnmywqj49rkmnr51ya41d0"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.0-preview.4.23260.4"; sha256 = "0z442kryiaiq191knpqgyg73ialnbm1nxi62pdsarfia7wxlgqxz"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.0-preview.4.23260.4"; sha256 = "1sshh549dsv1brv4qwbkp4g8sz4z4gq56y6dk7hysjx4qdlv159q"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.0-preview.4.23260.4"; sha256 = "0xsg8fjqply0ah5h6rwq871j3yr85ksvakyfm140pjf594cxwgxh"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.0-preview.4.23260.4"; sha256 = "08x79vw0zw3153dpfrzm3fqfv36l7m55p7xlfqbn4c817fy10y52"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.4.23260.4"; sha256 = "0n9s4q8w7glxp3dwkzf549rk010pjnxj08hqz4m0jhk81vnm7nqf"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.4.23260.4"; sha256 = "07j59nbbakcw1npi6zk06fwbhp3rpd3n73drmyx9sk0j34mqrqs4"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "1f2xy2zqa8qjfd2dwgx1mcp0gpqvgzypppqk2sg3kbq879fis9ys"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "14j6ahm3arfi78m6kjacid7vrw0shjyqh90cdxq3s02s8y6xb4vg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "0hncsby0gccfipsimgqp2n5ryzpd5940prds5rwvr8ncm2zzsikf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "19pimns32v9gpx27gi53spzkr05r2d3cjg0cr1sydrp5xashvjws"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "15wx6bdk38a75llqbc7hw4gizqhlhmyvdr2c0n4jb7vq54b8vh7f"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1dg12c904pkd5khm1lqqxzmh1w1hpvi5rb136wm2jh2gri32wmzy"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "0m08mv9jhpglgalxn37m9acwyrhxjr2kk0cavpjq1nd7imlnhday"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1jchikr4h1snzg3ai4022m5wj9bfallxc2jb9pq0p0zcyr7gy7ig"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1cc8fhh90gh5wra50ys4bqs39qzp6kb477hci8smbflg3dww4l40"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.0-preview.4.23259.5"; sha256 = "1kv5pzzxhj2cpysxz9jbliz6yz146v9bwr6n9l6vgrayavmg5k5z"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "196kph47z4k92bdnqfgki2p9l20rcgj7ls5j609ig845wc2z4az5"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "0m238kwijlpx9y68w86svks7v90kxnr5ssfsaxn58iv2gll4fq2k"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "170r6xlc3jvvzn4vs1pihkwkw25vqx9940np30padm9r99yyp9bg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1l8qsmi66b1nxdkyz93d9kb4lm3xc55648qdl66ny6sj2h32palj"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "06hs42ab2k7n7fmasg4nvxknwbv6ffslrd5c188jyfk1m23f12yx"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "13y8n0hk78l4qkh2h8rwd80knn9jid42q634bsgqalmlg1vplzy0"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "1ggfqw34pbywpvgjj6qmzv3qbi4i62l4c9xqwi4460z1nv6kxnhi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "09jf4zahypzmy95h6asxzkrr7827vwdm83dwasydlzn9cal6xd1i"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1xgwxfqhdd0m8qh642bwazgridzrhzs220af6j2qkbyjgsvav4fr"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.0-preview.4.23259.5"; sha256 = "0wvkvaxr661xwr8ch03nlaiyn0ws2ly90yrv0qxvyz60z7b4mi8l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "06wx5kk8zc2dbakwb6gfldxh57v2aiyvqnafr4clq14iw5pki4gc"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "13nlrvmjmwzfaf3r37pkdqsgvnby7hp2m7cwcx610vwsjaylyv43"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "09nnvqdhgyzp8smaz62a8c9v2awzzc0xxirjs5qiz4f87q76xnc5"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0jvm3x2687z85acv6wc9pc2lgzifhz9n3kdsqbwj6djy6vjrhdii"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "03p2khg9x35zf9ws905l61mca4d16i19j8d33bm5igmaizf8hvis"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "04r92k2k7vlds0g6yb6slhmxwricl68gnfzddf7ajrvbz0skvpk8"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1v2dlm8vw9k020lv3lm4g360wkf0nhlxdv8dfix1vl6nd1qr3njw"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0qsrx612kjfpm6xd9a2l7a7qlfw9qmwrn6dnml622zb90nr37iab"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0rlqs580jflv059w02bq2hmjdawshh376grwxr9vx1v76h38ll2n"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0dxrv5ypinjx37yazi4zzzp6a712vj4fjlgrzq3h2w6hwz1gf5ay"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "0br19vniyn8z8g0b3njga1qzpkmsxk6zwdbafdjhw9pbd4vasx3l"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "1vbdnjdab7bxm3w3dabzpga3mgvp6ck6q0iiby789d4nq75zxi8y"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "00pfba98r89ny186rh2yjbx2nx40dx2payi13j8s63js7mim31an"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1r9finqxwsgqs7f1cvgfjg3ija9lmxnc7p4whaz5sy1lgzyh7wxv"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "167m64vvl9649wcp55ggyy1y6q2rhcn2g7pa0zrarl2fg74hda15"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "177kwd8qghvibxzhm9n4jmdxs4jdpav04gkc2jvqi4jmk9kfix1z"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1zgh1fz27bkz9gx813i87xawd9cpwwgch7npfr78csiv3ssqyxf0"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0ms5r3lih96haz02n5qxv971igah6b00v9wmx6j4m7kk81y8jwsl"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1qmxwx1c57ak6b9lb3rxglxxwm1bnlx2vlldwyq9pl5k5bp4ja77"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0qvl27k2vqsxbpwswpbmx8z8r874nsjprcwkn1imcbrnlgrsw1yd"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "05ycd8gd7lacwh1v85m08zi820x144xzb9w4c5h2d46myhflx238"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "11p76kv9p9ml44y62j4lrqr4y4p75syf86cqjsghsx48b6hqavj4"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "08yhc2w6xmbx742f6n8w25iqa14a83khq80krqvr5wh6dfv0j2r3"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "1vkczbgajyyys550s62ysqvxgp1w4dl80wyxxa3x57502qrg9dh5"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1hvdpxjlf9h199xiyzp61ys8m7bnbdmyqqzf59qgidlfk7f4bzn6"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1xb2d07p00paym06scq8wmg9bvnzfkcgjqjcjqlbbx4d6y2cghpx"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "0xfg74za501byqzfsydagd59wbnknfrkj5p9l93f87vz147dpwgq"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0x3hh1k17449rbz010qn8jw9j1r9yl931wr2rk6aci5c9l9c0c89"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0vrkimk6dl096af256dm9qvhz0cawn37idmqhgyw0w5sq5vp340v"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1plbjhnh2sa2s9znwn5mkdic20ls755q81hh5zg5ma89q7c94c9n"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1jx6kx7f44zj346q6gvly2slwkw8fplfjzwfr6ryjvzb2llhs4ng"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0cqh3mfmbxnnsrlqaygrvd188nwzf7ik4a77ghv5i1s9jqlb1qyb"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0gna1y8ygdr7r9j8sknk8gpb5j1fhmwckp1cdj8d9n2g8c8r26fc"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1d8654bzzbfmi0phgikrifwpdhh8xyymx2jwwxjhfww6nb3n3n2j"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1qg9vzxw0wcn3j2m87rc5cllkfhqi089p8gxw4njic6dm5yxcr4h"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "1gz1gk2vjrz5cq65kipkv1k5y0x9q67qg4r26c6fb8s55l4f7wr5"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1czl0s1sm9wdcgscn0a9r9qb858yr0ak524vnghx81m87s4fl5l6"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "01cwnnwhhr12yqjkjz2fpqhsh9zmdvn95nxrh4x4qzylfs3brw3w"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "0n2m6j9izi668s0wa9pgjfafb7lka45sscgzspmzqc80syyr10lj"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "1s5fnq3ybvjpw1ddbk3mxx9vzq3s4l0wk9qm6373742c0bnv4k32"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1s9glkf7zbsdkc0zpvj7r0xkll2g0d6c2v8hw42qmpmb3lby9p0r"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "166jxayw2vx1iysxn8v1ql13x52fw8h4ivrnvziyw43wdk76xjdc"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "03x8cv14wsfizzj7fqmyqlbxdn1lkm49xq8jhyhfrrl936f27xd2"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "11y01apmjqf18phnzdy5pj62r43m10w1dis8b5sxkz55vsyk1znh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "8.0.0-preview.4.23259.5"; sha256 = "1k221gbx12h9pqqb8zb45zjpy9rfffa7r9q4lx72zg47273rrpkj"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "0wyyp5f9vnbkqqb0xpxk2n6vcygd271hq6nbll3qrvg5ry9kn51l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1vrcqhpjrmcl4rqpwb3mlgj6gpwwdfz615j4cv5yndwl6pcwi2c7"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "0rvwvrqiw0b7830i6vn4k6aj0x24bdbvsifg4f4bsd5gd7p8k7m9"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "12zkl0nar5jw69r8ajliv9nbqng07md168708758g39yzvrs33vb"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.0-preview.4.23259.5"; sha256 = "07p5svdm9i356m9z6qrsbmxjw57jxb5545hmyhipyhcy6yc935sw"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.0-preview.4.23259.5"; sha256 = "1qxxhpccfgvdkkxj5h8mmglh13gpaxis846gq2clx12x5wnhyc8f"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "017ypd8aa8m9zjv4irbi5p2334q6qfbnzn4wka9kq7m5r7psb3hh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "0c1zjb4i0qw7zphhnziawbyflq281jyhs16mmpcx30gi4pmdxm6r"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "08ax6gyqyj71f20yx54qk8nzwy45k2dnsq3rrnffiyzpwnxsaj0z"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.0-preview.4.23259.5"; sha256 = "14bsjrb344ryhilnkq31pl5jlswpdm1lv8xlpdz1xpdfz1d50qj3"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "0i1w14i70rmxbg16dvgr6scg7ad4sdq1cch1cxrs32r195k6mx1l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.0-preview.4.23259.5"; sha256 = "1sga9fgq97zpcws2akpkpm5qsaq0sl9xnqh77jc1fadrlvg7dkin"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.0-preview.4.23259.5"; sha256 = "1088ss3d0n3afhyi6k89w002wb0h08z3vwxx53fgkdjx1ivqh9hs"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "017nda21914ycdvp6ahzqvdiphaghj3aim8ywnjgrlbzi94x5r03"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1apdjkjm0f9cg3y9l1xqcmyvnkvqhsf3wdzl31cv7324w4p5wk9r"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1xfh9j892q54n592q9pc5171xxn3p9mqk3c9l0p56wnn50gysvny"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "0sz1b0bba36w7nwvbzdfbcpic0pqv5x283gjbdpk7pf1khz39f3v"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "0pspdq0sny7kpfhc8knjsd8711vxnv0ipmg1dy1i2a0ynp5hgn3c"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.0-preview.4.23259.5"; sha256 = "1bac4a64fn80vdnl28qfpvqdkzd8n0k35hdpviwc076r0zib2idv"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.0-preview.4.23259.5"; sha256 = "1yv9fwrfykx2n3r2fkplbh344d7ja7d1hbygn2y4mhkkj2xxbpxp"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.0-preview.4.23259.5"; sha256 = "02wg6cd2vv1ibrlsdl8lkr69nn4h5jvkhdfd429rdkq4pyykm4qb"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "1b2h8aqb5sda22cpg1547ayvndlzc84y0b7jg5yy2qd6vv7sx9if"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "0m1kyayg1r8i6i1h9n6wran1f62m911vpqgp269gzda4ljb9h2vq"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "0f5ml8b84c218fvfwqa1nmr731wvy4sh8minik6kyv0dg0z9kikr"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "08lqhmz48szasi8klzwyssbbxvifaq6bgvnnvn5qxhpffl9kxsqj"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "057zpvsd67gp8lw826ljc1iyx8gp4i9nxx89n94j5jsvhd33v8ii"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "1nlii0clbwqs2gq72lhmf7hf52pia5mn996xvj2n9hsdj7h35ayd"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.0-preview.4.23259.5"; sha256 = "0rjrjcmns4875rq7qkfgbc4ybs8vcdsfscbkwsz426cgnxpsp8jk"; })
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -150,6 +150,11 @@ stdenv.mkDerivation {
|
||||
done)> $out/lib/factor/ld.so.cache
|
||||
|
||||
make -j$NIX_BUILD_CORES linux-x86-64
|
||||
printf "First build from upstream boot image\n" >&2
|
||||
./build.sh bootstrap
|
||||
printf "Rebuild boot image\n" >&2
|
||||
./factor -script -e='"unix-x86.64" USING: system bootstrap.image memory ; make-image save 0 exit'
|
||||
printf "Second build from local boot image\n" >&2
|
||||
./build.sh bootstrap
|
||||
runHook postBuild
|
||||
'';
|
||||
@ -214,5 +219,6 @@ stdenv.mkDerivation {
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ vrthra spacefrogg ];
|
||||
platforms = lib.intersectLists platforms.x86_64 platforms.linux;
|
||||
mainProgram = "factor";
|
||||
};
|
||||
}
|
||||
|
@ -13,13 +13,13 @@
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${passthru.prettyName}-unwrapped";
|
||||
# nixpkgs-update: no auto update
|
||||
version = "unstable-2023-03-20";
|
||||
version = "unstable-2023-05-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-watcom";
|
||||
repo = "open-watcom-v2";
|
||||
rev = "d9181a345b9301a64380eb40d78c74c197a3fa1e";
|
||||
sha256 = "sha256-2kT4OZJk6m6Z/XN2q17jXJPgAG4nD2U1+J5CZl4+tAs=";
|
||||
rev = "4053c858ac1f83a186704434bd16b6a6b8f4cf88";
|
||||
sha256 = "sha256-o+cA5kqPow+ERCeWdA3UNKawF+EjuL87lPXUjFT/D1w=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -62,7 +62,6 @@ buildDotnetModule rec {
|
||||
description = ".NET C# and Visual Basic compiler";
|
||||
homepage = "https://github.com/dotnet/roslyn";
|
||||
mainProgram = "csc";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ corngood ];
|
||||
};
|
||||
|
3
pkgs/development/compilers/roslyn/deps.nix
generated
3
pkgs/development/compilers/roslyn/deps.nix
generated
@ -6,6 +6,7 @@
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.ref/3.1.10/microsoft.aspnetcore.app.ref.3.1.10.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "00ha2sl4gvqv68mbrsizd6ngqy0vv6vamngzjxr338k1w7a276dx"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.runtime.linux-arm64/3.1.32/microsoft.aspnetcore.app.runtime.linux-arm64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0ywz63q8vrdp25ix2j9b7h2jp5grc68hqfl64c6lqk26q9xwhp9r"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.runtime.linux-x64/3.1.32/microsoft.aspnetcore.app.runtime.linux-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "1crk54a1wvj76s9gnh46pi7wk8ryympm9xh2jq4s4rpp329fqgic"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.aspnetcore.app.runtime.osx-x64/3.1.32/microsoft.aspnetcore.app.runtime.osx-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.framework/16.5.0/microsoft.build.framework.16.5.0.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build.Tasks.Core"; version = "16.5.0"; sha256 = "08mpdcnjbjpsggfzb3plpmjg1jhx2j4zslm8m2p3icnrpw8swxz4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.build.tasks.core/16.5.0/microsoft.build.tasks.core.16.5.0.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.2.0-beta-22167-02"; sha256 = "1zb5vhlc9kzqbw22hg84hakhqms0aa7ghy585229hsf278rfh2sy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.build.tasks.git/1.2.0-beta-22167-02/microsoft.build.tasks.git.1.2.0-beta-22167-02.nupkg"; })
|
||||
@ -22,9 +23,11 @@
|
||||
(fetchNuGet { pname = "Microsoft.Net.Compilers.Toolset"; version = "4.2.0-1.final"; sha256 = "02zas22hj29gv2w7h74q786i0cvxffgwqai21ri0zj41nb2hwhyq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.net.compilers.toolset/4.2.0-1.final/microsoft.net.compilers.toolset.4.2.0-1.final.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "3.1.32"; sha256 = "1zygp70xrk5zggs3q4a6yc6jfdwzcsjjsapqpwn6qyx35m69b72p"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-arm64/3.1.32/microsoft.netcore.app.host.linux-arm64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.32"; sha256 = "08sar3s7j6z1q5prjmz2jrbsq5ms81mrsi1c1zbfrkplkfjpld3a"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.32/microsoft.netcore.app.host.linux-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.32"; sha256 = "186gjn8sbhp4z6pq8fw4g8nqk9dwyaplwvdz2y3fbbvg36lggsh0"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.osx-x64/3.1.32/microsoft.netcore.app.host.osx-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.ref/3.1.0/microsoft.netcore.app.ref.3.1.0.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "13pcn74z1swz73s72zjl07f118j35wacnzgk7kbjqn83nwgqdgvq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.runtime.linux-arm64/3.1.32/microsoft.netcore.app.runtime.linux-arm64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0mmc57dl8plrspdxwb7209wz29vhiwqds4nfbdfws7zg35yy70c7"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.runtime.linux-x64/3.1.32/microsoft.netcore.app.runtime.linux-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "06bk39zcv27cwshjsxfg5d6wzkkzdhfk08sipdc7mr1s8pk7ihi1"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.runtime.osx-x64/3.1.32/microsoft.netcore.app.runtime.osx-x64.3.1.32.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.0.1/microsoft.netcore.platforms.1.0.1.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.platforms/1.1.1/microsoft.netcore.platforms.1.1.1.nupkg"; })
|
||||
|
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
|
||||
|
||||
doCheck = true;
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
postFixup = ''
|
||||
moveToOutput share/doc $dev
|
||||
|
31
pkgs/development/libraries/cyrus-sasl-xoauth2/default.nix
Normal file
31
pkgs/development/libraries/cyrus-sasl-xoauth2/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoconf, libtool, automake, cyrus_sasl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cyrus-sasl-xoauth2";
|
||||
version = "0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "moriyoshi";
|
||||
repo = "cyrus-sasl-xoauth2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-lI8uKtVxrziQ8q/Ss+QTgg1xTObZUTAzjL3MYmtwyd8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf libtool automake ];
|
||||
|
||||
buildInputs = [ cyrus_sasl ];
|
||||
|
||||
preConfigure = "./autogen.sh";
|
||||
|
||||
configureFlags = [
|
||||
"--with-cyrus-sasl=${placeholder "out"}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/moriyoshi/cyrus-sasl-xoauth2";
|
||||
description = "XOAUTH2 mechanism plugin for cyrus-sasl";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.mit;
|
||||
maintainers = with lib.maintainers; [ wentasah ];
|
||||
};
|
||||
}
|
71
pkgs/development/libraries/libei/default.nix
Normal file
71
pkgs/development/libraries/libei/default.nix
Normal file
@ -0,0 +1,71 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchFromGitLab
|
||||
, attr
|
||||
, libevdev
|
||||
, libxkbcommon
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, protobuf
|
||||
, protobufc
|
||||
, python3
|
||||
, python3Packages
|
||||
, systemd
|
||||
}:
|
||||
let
|
||||
munit = fetchFromGitHub {
|
||||
owner = "nemequ";
|
||||
repo = "munit";
|
||||
rev = "fbbdf1467eb0d04a6ee465def2e529e4c87f2118";
|
||||
hash = "sha256-qm30C++rpLtxBhOABBzo+6WILSpKz2ibvUvoe8ku4ow=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libei";
|
||||
version = "0.99.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "libinput";
|
||||
repo = "libei";
|
||||
rev = version;
|
||||
hash = "sha256-r/rkN2d8P30P/IL1YaLWWRbA5s3uVq5Fc/K1vhS31tw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libevdev
|
||||
libxkbcommon
|
||||
protobuf
|
||||
protobufc
|
||||
systemd
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
attr
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
] ++
|
||||
(with python3Packages; [
|
||||
jinja2
|
||||
pytest
|
||||
python-dbusmock
|
||||
strenum
|
||||
structlog
|
||||
]);
|
||||
|
||||
postPatch = ''
|
||||
ln -s "${munit}" ./subprojects/munit
|
||||
patchShebangs ./proto/ei-scanner
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for Emulated Input";
|
||||
homepage = "https://gitlab.freedesktop.org/libinput/libei";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.pedrohlc ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
|
||||
"--enable-cider"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "The Next Generation Spice (Electronic Circuit Simulator)";
|
||||
homepage = "http://ngspice.sourceforge.net";
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,13 @@
|
||||
import ./generic.nix {
|
||||
version = "0.1.0-beta.3";
|
||||
hash = "sha256-0p+1cMn9PU+Jk2JW7G+sdzxhMaI3gEAk5w2nm05oBSU=";
|
||||
outputHashes = {
|
||||
"uniffi-0.21.0" = "sha256-blKCfCsSNtr8NtO7Let7VJ/9oGuW9Eu8j9A6/oHUcP0=";
|
||||
};
|
||||
cargoLock = ./Cargo-beta.3.lock;
|
||||
patches = [
|
||||
# This is needed because two versions of indexed_db_futures are present (which will fail to vendor, see https://github.com/rust-lang/cargo/issues/10310).
|
||||
# (matrix-sdk-crypto-nodejs doesn't use this dependency, we only need to remove it to vendor the dependencies successfully.)
|
||||
./remove-duplicate-dependency.patch
|
||||
];
|
||||
}
|
@ -1,65 +1,11 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, cargo, rustPlatform, rustc, napi-rs-cli, nodejs, libiconv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "matrix-sdk-crypto-nodejs";
|
||||
version = "0.1.0-beta.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = "matrix-rust-sdk";
|
||||
rev = "${pname}-v${version}";
|
||||
hash = "sha256-0p+1cMn9PU+Jk2JW7G+sdzxhMaI3gEAk5w2nm05oBSU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This is needed because two versions of indexed_db_futures are present (which will fail to vendor, see https://github.com/rust-lang/cargo/issues/10310).
|
||||
# (matrix-sdk-crypto-nodejs doesn't use this dependency, we only need to remove it to vendor the dependencies successfully.)
|
||||
./remove-duplicate-dependency.patch
|
||||
];
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"uniffi-0.21.0" = "sha256-blKCfCsSNtr8NtO7Let7VJ/9oGuW9Eu8j9A6/oHUcP0=";
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
rustc
|
||||
napi-rs-cli
|
||||
nodejs
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
cd bindings/${pname}
|
||||
npm run release-build --offline
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
local -r outPath="$out/lib/node_modules/@matrix-org/${pname}"
|
||||
mkdir -p "$outPath"
|
||||
cp package.json index.js index.d.ts matrix-sdk-crypto.*.node "$outPath"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A no-network-IO implementation of a state machine that handles E2EE for Matrix clients";
|
||||
homepage = "https://github.com/matrix-org/matrix-rust-sdk/tree/${src.rev}/bindings/matrix-sdk-crypto-nodejs";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ winter ];
|
||||
inherit (nodejs.meta) platforms;
|
||||
import ./generic.nix {
|
||||
version = "0.1.0-beta.6";
|
||||
hash = "sha256-0oLk7yq/XELS0GkeZj7PxY3KKXfzws0djF3KmxYisY0=";
|
||||
outputHashes = {
|
||||
"ruma-0.8.2" = "sha256-bKvcElIVugj+gZZhPFPGfCqva4fo1IqW/e9gf+q/Tfw=";
|
||||
"uniffi-0.23.0" = "sha256-4WUp3PQm3ZgqHNMvz9+PBtNAeiq6m4PBViwXpQDglLk=";
|
||||
"vodozemac-0.3.0" = "sha256-tAimsVD8SZmlVybb7HvRffwlNsfb7gLWGCplmwbLIVE=";
|
||||
};
|
||||
cargoLock = ./Cargo-beta.6.lock;
|
||||
patches = [];
|
||||
}
|
||||
|
@ -0,0 +1,60 @@
|
||||
{ version, hash, outputHashes, cargoLock, patches }:
|
||||
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, cargo, rustPlatform, rustc, napi-rs-cli, nodejs, libiconv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "matrix-sdk-crypto-nodejs";
|
||||
inherit version patches;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = "matrix-rust-sdk";
|
||||
rev = "${pname}-v${version}";
|
||||
inherit hash;
|
||||
};
|
||||
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = cargoLock;
|
||||
inherit outputHashes;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
rustc
|
||||
napi-rs-cli
|
||||
nodejs
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
cd bindings/${pname}
|
||||
npm run release-build --offline
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
local -r outPath="$out/lib/node_modules/@matrix-org/${pname}"
|
||||
mkdir -p "$outPath"
|
||||
cp package.json index.js index.d.ts matrix-sdk-crypto.*.node "$outPath"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A no-network-IO implementation of a state machine that handles E2EE for Matrix clients";
|
||||
homepage = "https://github.com/matrix-org/matrix-rust-sdk/tree/${src.rev}/bindings/matrix-sdk-crypto-nodejs";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ winter ];
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
}
|
32
pkgs/development/libraries/mustache-tcl/default.nix
Normal file
32
pkgs/development/libraries/mustache-tcl/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ lib, fetchFromGitHub, tcl, tcllib }:
|
||||
|
||||
tcl.mkTclDerivation rec {
|
||||
pname = "mustache-tcl";
|
||||
version = "1.1.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ianka";
|
||||
repo = "mustache.tcl";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-apM57LEZ0Y9hXcEPWrKYOoTVtP5QSqiaQrjTHQc3pc4=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
tcllib
|
||||
];
|
||||
|
||||
unpackPhase = ''
|
||||
mkdir -p $out/lib/mustache-tcl
|
||||
cp $src/mustache.tcl $out/lib/mustache-tcl/mustache.tcl
|
||||
cp $src/pkgIndex.tcl $out/lib/mustache-tcl/pkgIndex.tcl
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ianka/mustache.tcl";
|
||||
description = "Tcl implementation of the mustache templating language";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ nat-418 ];
|
||||
};
|
||||
}
|
||||
|
@ -31,13 +31,13 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "open62541";
|
||||
version = "1.3.5";
|
||||
version = "1.3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open62541";
|
||||
repo = "open62541";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-X0kdMKSqKAJvmrd1YcYe1mJpFONqPCALA09xwd6o7BQ=";
|
||||
hash = "sha256-cmD01D49pHEHN0QQtE5RXv0YZ/MPIWnubeUY6BH4DrU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -90,10 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
preCheck = let
|
||||
disabledTests =
|
||||
lib.optionals (withEncryption == "mbedtls") [
|
||||
"encryption_basic128rsa15"
|
||||
]
|
||||
++ lib.optionals withPubSub [
|
||||
lib.optionals withPubSub [
|
||||
# "Cannot set socket option IP_ADD_MEMBERSHIP"
|
||||
"pubsub_publish"
|
||||
"check_pubsub_get_state"
|
||||
|
@ -52,6 +52,98 @@ let
|
||||
# prevent headaches from stale qmlcache data
|
||||
./qtdeclarative-default-disable-qmlcache.patch
|
||||
];
|
||||
qtpim = [
|
||||
## Upstream patches after the Qt6 transition that apply without problems & fix bugs
|
||||
|
||||
# Fixes QList -> QSet conversion
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/f337e281e28904741a3b1ac23d15c3a83ef2bbc9.patch";
|
||||
hash = "sha256-zlxD45JnbhIgdJxMmGxGMUBcQPcgzpu3s4bLX939jL0=";
|
||||
})
|
||||
# Fixes invalid syntax from a previous bad patch in tests
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/2aefdd8bd28a4decf9ef8381f5b255f39f1ee90c.patch";
|
||||
hash = "sha256-mg93QF3hi50igw1/Ok7fEs9iCaN6co1+p2/5fQtxTmc=";
|
||||
})
|
||||
# Unit test account for QList index change
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/79b41af6a4117f5efb0298289e20c30b4d0b0b2e.patch";
|
||||
hash = "sha256-u+cLl4lu6r2+j5GAiasqbB6/OZPz5A6GpSB33vd/VBg=";
|
||||
})
|
||||
# Remove invalid method overload which confuses the QML engine
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/5679a6141c76ae7d64c3acc8a87b1adb048289e0.patch";
|
||||
hash = "sha256-z8f8kLhC9CqBOfGPL8W9KJq7MwALAAicXfRkHiQEVJ4=";
|
||||
})
|
||||
# Specify enum flag type properly in unit test
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a43cc24e57db8d3c3939fa540d67da3294dcfc5c.patch";
|
||||
hash = "sha256-SsYkxX6prxi8VRZr4az+wqawcRN8tR3UuIFswJL+3T4=";
|
||||
})
|
||||
# Update qHash methods to return size_t instead of uint
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/9c698155d82fc2b68a87c59d0443c33f9085b117.patch";
|
||||
hash = "sha256-rb8D8taaglhQikYSAPrtLvazgIw8Nga/a9+J21k8gIo=";
|
||||
})
|
||||
# Mark virtual methods with override keyword
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/f34cf2ff2b0f428d5b8a70763b29088075ebbd1c.patch";
|
||||
hash = "sha256-tNPOEVpx1eqHx5T23ueW32KxMQ/SB+TBCJ4PZ6SA3LI=";
|
||||
})
|
||||
# Fix calendardemo example
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a66590d473753bc49105d3132fb9e4150c92a14a.patch";
|
||||
hash = "sha256-RPRtGQ24NQYewnv6+IqYITpwD/XxuK68a1iKgFmKm3c=";
|
||||
})
|
||||
# Make the tests pass on big endian systems
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/7802f038ed1391078e27fa3f37d785a69314537b.patch";
|
||||
hash = "sha256-hogUXyPXjGE0q53PWOjiQbQ2YzOsvrJ7mo9djGIbjVQ=";
|
||||
})
|
||||
# Fix some deprecated QChar constructor issues in unit tests
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/114615812dcf9398c957b0833e860befe15f840f.patch";
|
||||
hash = "sha256-yZ1qs8y5DSq8FDXRPyuSPRIzjEUTWAhpVide/b+xaLQ=";
|
||||
})
|
||||
# Accessors should be const
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a2bf7cdf05c264b5dd2560f799760b5508f154e4.patch";
|
||||
hash = "sha256-+YfPrKyOKnPkqFokwW/aDsEivg4TzdJwQpDdAtM+rQE=";
|
||||
})
|
||||
# Enforce detail access constraints in contact operations by default
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/8765a35233aa21a932ee92bbbb92a5f8edd4dc68.patch";
|
||||
hash = "sha256-vp/enerVecEXz4zyxQ66DG+fVVWxI4bYnLj92qaaqNk=";
|
||||
})
|
||||
# Fixes broken file generation, which breaks reverse dependencies that try to find one of its modules
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/4b2bdce30bd0629c9dc0567af6eeaa1d038f3152.patch";
|
||||
hash = "sha256-2dXhkZyxPvY2KQq2veerAlpXkpU5/FeArWRlm1aOcEY=";
|
||||
})
|
||||
|
||||
## Patches that haven't been upstreamed
|
||||
|
||||
# Fix tst_QContactManager::compareVariant_data test
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1001_fix-qtdatetime-null-comparison.patch";
|
||||
hash = "sha256-k/rO9QjwSlRChwFTZLkxDjZWqFkua4FNbaNf1bJKLxc=";
|
||||
})
|
||||
# Avoid crash while parsing vCards from different threads
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1002_Avoid-crash-while-parsing-vcards-from-different-threads.patch";
|
||||
hash = "sha256-zhayAoWgcmKosEGVBy2k6a2e6BxyVwfGX18tBbzqEk8=";
|
||||
})
|
||||
# Adapt to JSON parser behavior change in Qt 5.15
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1003_adapt_to_json_parser_change.patch";
|
||||
hash = "sha256-qAIa48hmDd8vMH/ywqW+22vISKai76XnjgFuB+tQbIU=";
|
||||
})
|
||||
# Fix version being 0.0.0
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/2000_revert_module_version.patch";
|
||||
hash = "sha256-6wg/eVu9J83yvIO428U1FX3otz58tAy6pCvp7fqOBKU=";
|
||||
})
|
||||
];
|
||||
qtscript = [ ./qtscript.patch ];
|
||||
qtserialport = [ ./qtserialport.patch ];
|
||||
qtsystems = [
|
||||
@ -167,6 +259,7 @@ let
|
||||
inherit gstreamer gst-plugins-base;
|
||||
};
|
||||
qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
|
||||
qtpim = callPackage ../modules/qtpim.nix {};
|
||||
qtpositioning = callPackage ../modules/qtpositioning.nix {};
|
||||
qtquick1 = null;
|
||||
qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
|
||||
|
@ -22,6 +22,18 @@ let
|
||||
in
|
||||
lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
|
||||
// {
|
||||
# qtpim has no official releases
|
||||
qtpim = {
|
||||
version = "unstable-2020-11-02";
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtpim";
|
||||
# Last commit before Qt5 support was broken
|
||||
rev = "f9a8f0fc914c040d48bbd0ef52d7a68eea175a98";
|
||||
hash = "sha256-/1g+vvHjuRLB1vsm41MrHbBZ+88Udca0iEcbz0Q1BNQ=";
|
||||
};
|
||||
};
|
||||
|
||||
# Has no kde/5.15 branch
|
||||
qtpositioning = rec {
|
||||
version = "5.15.2";
|
||||
|
27
pkgs/development/libraries/qt-5/modules/qtpim.nix
Normal file
27
pkgs/development/libraries/qt-5/modules/qtpim.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ qtModule
|
||||
, lib
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtpim";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
qtInputs = [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
];
|
||||
|
||||
qmakeFlags = [
|
||||
"CONFIG+=git_build"
|
||||
];
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
};
|
||||
}
|
@ -52,6 +52,8 @@
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DODBC_LIB_DIR=${lib.getLib unixODBC}/lib"
|
||||
"-DODBC_INCLUDE_DIR=${lib.getDev unixODBC}/include"
|
||||
"-DWITH_OPENSSL=ON"
|
||||
# on darwin this defaults to ON but we want to build against unixODBC
|
||||
"-DWITH_IODBC=OFF"
|
||||
|
@ -11,7 +11,7 @@
|
||||
, setuptools
|
||||
, setuptools-scm
|
||||
, pythonOlder
|
||||
, sip_4
|
||||
, sip
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -43,7 +43,7 @@ buildPythonPackage rec {
|
||||
pegen
|
||||
ply
|
||||
qtpy
|
||||
sip_4
|
||||
sip
|
||||
];
|
||||
|
||||
# qt bindings cannot be found during tests
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ezyrb";
|
||||
version = "1.3.0.post2302";
|
||||
version = "1.3.0.post2305";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "mathLab";
|
||||
repo = "EZyRB";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ZVmQnxqLHKr275Xx0lOID3BZZFTmn/PMHpYhBFSxT7I=";
|
||||
hash = "sha256-uYwLz5NY+8lO8hZnAhqv+5PlcCSm6OOFWra47pwQhxg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -5,14 +5,14 @@
|
||||
, scipy
|
||||
, torch
|
||||
, autograd
|
||||
, nose2
|
||||
, matplotlib
|
||||
, tensorflow
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pymanopt";
|
||||
version = "2.1.1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
@ -22,25 +22,21 @@ buildPythonPackage rec {
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ numpy scipy torch ];
|
||||
nativeCheckInputs = [ nose2 autograd matplotlib tensorflow ];
|
||||
nativeCheckInputs = [ autograd matplotlib pytestCheckHook ];
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
# upstream themselves seem unsure about the robustness of these
|
||||
# tests - see https://github.com/pymanopt/pymanopt/issues/219
|
||||
grep -lr 'test_second_order_function_approximation' tests/ | while read -r fn ; do
|
||||
substituteInPlace "$fn" \
|
||||
--replace \
|
||||
'test_second_order_function_approximation' \
|
||||
'dont_test_second_order_function_approximation'
|
||||
done
|
||||
|
||||
nose2 tests -v
|
||||
|
||||
runHook postCheck
|
||||
preCheck = ''
|
||||
substituteInPlace "tests/conftest.py" \
|
||||
--replace "import tensorflow as tf" ""
|
||||
substituteInPlace "tests/conftest.py" \
|
||||
--replace "tf.random.set_seed(seed)" ""
|
||||
'';
|
||||
|
||||
disabledTestPaths = [
|
||||
"tests/test_examples.py"
|
||||
"tests/backends/test_tensorflow.py"
|
||||
"tests/test_problem.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pymanopt" ];
|
||||
|
||||
meta = {
|
||||
@ -48,5 +44,6 @@ buildPythonPackage rec {
|
||||
homepage = "https://www.pymanopt.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ yl3dy ];
|
||||
broken = lib.versionAtLeast scipy.version "1.10.0";
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, pythonPackages
|
||||
, fetchPypi
|
||||
, taskwarrior
|
||||
, writeShellScriptBin
|
||||
}:
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3Packages;
|
||||
|
@ -21,6 +21,8 @@ let
|
||||
</configuration>
|
||||
'';
|
||||
|
||||
inherit (stdenv.hostPlatform.extensions) sharedLibrary;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -78,12 +80,18 @@ stdenv.mkDerivation rec {
|
||||
mv artifacts/msbuild artifacts/mono-msbuild
|
||||
chmod +x artifacts/mono-msbuild/MSBuild.dll
|
||||
|
||||
ln -s $(find ${dotnet-sdk} -name libhostfxr.so) artifacts/mono-msbuild/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/
|
||||
# The provided libhostfxr.dylib is for x86_64-darwin, so we remove it
|
||||
rm artifacts/mono-msbuild/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/libhostfxr.dylib
|
||||
|
||||
ln -s $(find ${dotnet-sdk} -name libhostfxr${sharedLibrary}) artifacts/mono-msbuild/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/
|
||||
|
||||
# overwrite the file
|
||||
echo "#!${stdenv.shell}" > eng/common/dotnet-install.sh
|
||||
echo "#!${stdenv.shell}" > mono/build/get_sdk_files.sh
|
||||
|
||||
# Prevent msbuild from downloading a new libhostfxr
|
||||
echo "#!${stdenv.shell}" > mono/build/extract_and_copy_hostfxr.sh
|
||||
|
||||
mkdir -p mono/dotnet-overlay/msbuild-bin
|
||||
cp ${dotnet-sdk}/sdk/*/{Microsoft.NETCoreSdk.BundledVersions.props,RuntimeIdentifierGraph.json} mono/dotnet-overlay/msbuild-bin
|
||||
|
||||
@ -102,7 +110,7 @@ stdenv.mkDerivation rec {
|
||||
--set-default MONO_GC_PARAMS "nursery-size=64m" \
|
||||
--add-flags "$out/lib/mono/msbuild/15.0/bin/MSBuild.dll"
|
||||
|
||||
ln -s $(find ${dotnet-sdk} -name libhostfxr.so) $out/lib/mono/msbuild/Current/bin/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/
|
||||
ln -s $(find ${dotnet-sdk} -name libhostfxr${sharedLibrary}) $out/lib/mono/msbuild/Current/bin/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, buildGoModule, fetchFromGitLab, fetchurl, bash }:
|
||||
|
||||
let
|
||||
version = "15.11.0";
|
||||
version = "16.0.1";
|
||||
in
|
||||
buildGoModule rec {
|
||||
inherit version;
|
||||
@ -17,13 +17,13 @@ buildGoModule rec {
|
||||
# For patchShebangs
|
||||
buildInputs = [ bash ];
|
||||
|
||||
vendorHash = "sha256-4eSfNo5S/eottEN4AptGJq6pBDHkNud0Nj5GrqutADM=";
|
||||
vendorHash = "sha256-2z9mB/Dd5sLB2OgwfxUJ5Jfk6cWPc7TfS4WLaUeYDUg=";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-runner";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-S4KdEepNWv8J5+r/GT8+8kAKU5fq2iwQU+qyoCY1s0o=";
|
||||
sha256 = "sha256-IGMZKrGtDyXj6SIiuoM7NE5MHfRUeVHI4YUNGVNIXw0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python3Packages, git, mercurial }:
|
||||
{ lib, python3Packages, fetchPypi, git, mercurial }:
|
||||
|
||||
with python3Packages;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python3 }:
|
||||
{ lib, python3, fetchPypi }:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, python3
|
||||
, fetchPypi
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python }:
|
||||
{ lib, python, fetchPypi }:
|
||||
|
||||
with python.pkgs;
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
, git
|
||||
, gnupg1
|
||||
, python3Packages
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3Packages; buildPythonApplication rec {
|
||||
|
648
pkgs/development/tools/rust/cargo-edit/Cargo.lock
generated
648
pkgs/development/tools/rust/cargo-edit/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -10,19 +10,19 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-edit";
|
||||
version = "0.11.11";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "killercup";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-pxlwCeGOH0uqPdDJ7zIXFIRBuHwyByZ5r1VWzluvz10=";
|
||||
hash = "sha256-OUo007XP2B9F8ACTauiA6uls9b3KS5iq15bJDPYCONU=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"cargo-test-macro-0.1.0" = "sha256-nlFhe1q0D60dljAi6pFNaz+ssju2Ymtx/PNUl5kJmWo=";
|
||||
"cargo-test-macro-0.1.0" = "sha256-hzoQmgvAerIoz7qoT3iyY6kHnt3g1Pv4FaJoqQYU2zE=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, python3Packages
|
||||
{ lib, python3Packages, fetchPypi
|
||||
, git, breezy, subversion }:
|
||||
|
||||
with python3Packages;
|
||||
|
@ -1,7 +1,6 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cargo
|
||||
, cmake
|
||||
, ninja
|
||||
@ -35,19 +34,19 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ddnet";
|
||||
version = "16.9";
|
||||
version = "17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ddnet";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-DOP2v82346YQtL55Ix0gn9cTpvbO1ooeCIGRpgEMFpA=";
|
||||
hash = "sha256-boFXzARVG2At92j9gSavteAQ8qTjgJ91hIefVr/e6og=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
name = "${pname}-${version}";
|
||||
inherit src;
|
||||
hash = "sha256-xTB8wg4PIdg7MB3545zN83/41fUsqFE2Sk5aTXrGhps=";
|
||||
hash = "sha256-3itblnHlY1L8g/EGCi1BIWGD6INOpnvLCwJ7zL7KV4w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jazz2";
|
||||
version = "1.8.0";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deathkiller";
|
||||
repo = "jazz2-native";
|
||||
rev = version;
|
||||
sha256 = "fi1waoLAcnZB0lX+8+wQFoBYOSvVXYK3JKiu81GGF4U=";
|
||||
sha256 = "75CGpFEdk+vFrlGC20Ciniw6CHBmP43TsCQmb4r70DI=";
|
||||
};
|
||||
|
||||
patches = [ ./nocontent.patch ];
|
||||
|
@ -37,6 +37,10 @@ stdenvNoCC.mkDerivation {
|
||||
# Bluetooth firmware
|
||||
cp -rv "$NIX_BUILD_TOP/bluez-firmware/broadcom/." "$out/lib/firmware/brcm"
|
||||
|
||||
# brcmfmac43455-stdio.bin is a symlink to the non-existent path: ../cypress/cyfmac43455-stdio.bin.
|
||||
# See https://github.com/RPi-Distro/firmware-nonfree/issues/26
|
||||
ln -s "./cyfmac43455-sdio-standard.bin" "$out/lib/firmware/cypress/cyfmac43455-sdio.bin"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, pkgs
|
||||
, python3
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
@ -39,13 +39,13 @@ let common = { version, hash, jdk ? jdk11_headless, tests }:
|
||||
in
|
||||
{
|
||||
hbase_2_4 = common {
|
||||
version = "2.4.16";
|
||||
hash = "sha256-vMuTqS2bXFRcCsZ7bOaNLVGyOG38HhL8WlCq2MFmAaE=";
|
||||
version = "2.4.17";
|
||||
hash = "sha256-1JT57kpp+dqoXY5ZZig1nHDtSqvfLjEWviu73J7hKj0=";
|
||||
tests.standalone = nixosTests.hbase_2_4;
|
||||
};
|
||||
hbase_2_5 = common {
|
||||
version = "2.5.3";
|
||||
hash = "sha256-h08jnDQaakpkYFHHn9qeg4JCSBtwRjv42qKLpyOVdsI=";
|
||||
version = "2.5.4";
|
||||
hash = "sha256-/7kp0f/K8DCeFheDPzs2ZFqcnZwQtH1rrMx+UMbQ7TM=";
|
||||
tests.standalone = nixosTests.hbase2;
|
||||
};
|
||||
hbase_3_0 = common {
|
||||
|
@ -15,13 +15,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "janus-gateway";
|
||||
version = "1.1.3";
|
||||
version = "1.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "meetecho";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2UlIpxixTl16VG6lgcfk+9LXSWn0jV1IfIkCeV/SO5w=";
|
||||
sha256 = "sha256-kvaO2g4QF6LYZcxv39yXkwY9iZVenJio8oOlRLLH2Kk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config gengetopt ];
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchPypi
|
||||
, mailman
|
||||
}:
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user