Merge branch 'staging' into cpan2nix-2020-06-20
This commit is contained in:
commit
d6c5614def
|
@ -193,3 +193,6 @@
|
|||
/nixos/modules/virtualisation/cri-o.nix @NixOS/podman
|
||||
/nixos/modules/virtualisation/podman.nix @NixOS/podman
|
||||
/nixos/tests/podman.nix @NixOS/podman
|
||||
|
||||
# Blockchains
|
||||
/pkgs/applications/blockchains @mmahut
|
||||
|
|
|
@ -34,6 +34,7 @@ the main ones:
|
|||
|
||||
* [Nix](https://github.com/NixOS/nix) - the purely functional package manager
|
||||
* [NixOps](https://github.com/NixOS/nixops) - the tool to remotely deploy NixOS machines
|
||||
* [nixos-hardware](https://github.com/NixOS/nixos-hardware) - NixOS profiles to optimize settings for different hardware
|
||||
* [Nix RFCs](https://github.com/NixOS/rfcs) - the formal process for making substantial changes to the community
|
||||
* [NixOS homepage](https://github.com/NixOS/nixos-homepage) - the [NixOS.org](https://nixos.org) website
|
||||
* [hydra](https://github.com/NixOS/hydra) - our continuous integration system
|
||||
|
|
|
@ -2018,6 +2018,9 @@ addEnvHooks "$hostOffset" myBashFunction
|
|||
<para>
|
||||
In certain situations you may want to run the main command (<command>autoPatchelf</command>) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the <varname>dontAutoPatchelf</varname> environment variable to a non-empty value.
|
||||
</para>
|
||||
<para>
|
||||
By default <command>autoPatchelf</command> will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the <envar>autoPatchelfIgnoreMissingDeps</envar> environment variable to a non-empty value.
|
||||
</para>
|
||||
<para>
|
||||
The <command>autoPatchelf</command> command also recognizes a <parameter class="command">--no-recurse</parameter> command line flag, which prevents it from recursing into subdirectories.
|
||||
</para>
|
||||
|
|
|
@ -139,6 +139,12 @@
|
|||
githubId = 1517066;
|
||||
name = "Aiken Cairncross";
|
||||
};
|
||||
aciceri = {
|
||||
name = "Andrea Ciceri";
|
||||
email = "andrea.ciceri@autistici.org";
|
||||
github = "aciceri";
|
||||
githubId = 2318843;
|
||||
};
|
||||
acowley = {
|
||||
email = "acowley@gmail.com";
|
||||
github = "acowley";
|
||||
|
@ -3530,6 +3536,12 @@
|
|||
githubId = 117874;
|
||||
name = "Jeroen de Haas";
|
||||
};
|
||||
jduan = {
|
||||
name = "Jingjing Duan";
|
||||
email = "duanjingjing@gmail.com";
|
||||
github = "jduan";
|
||||
githubId = 452450;
|
||||
};
|
||||
jefdaj = {
|
||||
email = "jefdaj@gmail.com";
|
||||
github = "jefdaj";
|
||||
|
@ -3692,6 +3704,12 @@
|
|||
githubId = 1102396;
|
||||
name = "Jussi Maki";
|
||||
};
|
||||
jobojeha = {
|
||||
email = "jobojeha@jeppener.de";
|
||||
github = "jobojeha";
|
||||
githubId = 60272884;
|
||||
name = "Jonathan Jeppener-Haltenhoff";
|
||||
};
|
||||
joelburget = {
|
||||
email = "joelburget@gmail.com";
|
||||
github = "joelburget";
|
||||
|
@ -7248,6 +7266,16 @@
|
|||
githubId = 2770647;
|
||||
name = "Simon Vandel Sillesen";
|
||||
};
|
||||
siriobalmelli = {
|
||||
email = "sirio@b-ad.ch";
|
||||
github = "siriobalmelli";
|
||||
githubId = 23038812;
|
||||
name = "Sirio Balmelli";
|
||||
keys = [{
|
||||
longkeyid = "ed25519/0xF72C4A887F9A24CA";
|
||||
fingerprint = "B234 EFD4 2B42 FE81 EE4D 7627 F72C 4A88 7F9A 24CA";
|
||||
}];
|
||||
};
|
||||
sivteck = {
|
||||
email = "sivaram1992@gmail.com";
|
||||
github = "sivteck";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Download patches from debian project
|
||||
# Usage $0 debian-patches.txt debian-patches.nix
|
||||
# An example input and output files can be found in applications/graphics/xara/
|
||||
# An example input and output files can be found in tools/graphics/plotutils
|
||||
|
||||
DEB_URL=https://sources.debian.org/data/main
|
||||
declare -a deb_patches
|
||||
|
|
|
@ -40,6 +40,7 @@ with lib.maintainers; {
|
|||
cstrahan
|
||||
Frostman
|
||||
kalbasit
|
||||
mdlayher
|
||||
mic92
|
||||
orivej
|
||||
rvolosatovs
|
||||
|
|
|
@ -96,6 +96,47 @@
|
|||
The options are named identically for all other display managers.
|
||||
</para>
|
||||
</simplesect>
|
||||
<simplesect xml:id="sec-x11--graphics-cards-intel">
|
||||
<title>Intel Graphics drivers</title>
|
||||
<para>
|
||||
There are two choices for Intel Graphics drivers in X.org:
|
||||
<literal>modesetting</literal> (included in the <package>xorg-server</package> itself)
|
||||
and <literal>intel</literal> (provided by the package <package>xf86-video-intel</package>).
|
||||
</para>
|
||||
<para>
|
||||
The default and recommended is <literal>modesetting</literal>.
|
||||
It is a generic driver which uses the kernel
|
||||
<link xlink:href="https://en.wikipedia.org/wiki/Mode_setting">mode setting</link>
|
||||
(KMS) mechanism. It supports Glamor (2D graphics acceleration via OpenGL)
|
||||
and is actively maintained but may perform worse in some cases (like in old chipsets).
|
||||
</para>
|
||||
<para>
|
||||
The second driver, <literal>intel</literal>, is specific to Intel GPUs,
|
||||
but not recommended by most distributions: it lacks several modern features
|
||||
(for example, it doesn't support Glamor) and the package hasn't been officially
|
||||
updated since 2015.
|
||||
</para>
|
||||
<para>
|
||||
The results vary depending on the hardware, so you may have to try both drivers.
|
||||
Use the option <xref linkend="opt-services.xserver.videoDrivers"/> to set one.
|
||||
The recommended configuration for modern systems is:
|
||||
<programlisting>
|
||||
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "modesetting" ];
|
||||
<xref linkend="opt-services.xserver.useGlamor"/> = true;
|
||||
</programlisting>
|
||||
If you experience screen tearing no matter what, this configuration was
|
||||
reported to resolve the issue:
|
||||
<programlisting>
|
||||
<xref linkend="opt-services.xserver.videoDrivers"/> = [ "intel" ];
|
||||
<xref linkend="opt-services.xserver.deviceSection"/> = ''
|
||||
Option "DRI" "2"
|
||||
Option "TearFree" "true"
|
||||
'';
|
||||
</programlisting>
|
||||
Note that this will likely downgrade the performance compared to
|
||||
<literal>modesetting</literal> or <literal>intel</literal> with DRI 3 (default).
|
||||
</para>
|
||||
</simplesect>
|
||||
<simplesect xml:id="sec-x11-graphics-cards-nvidia">
|
||||
<title>Proprietary NVIDIA drivers</title>
|
||||
<para>
|
||||
|
|
|
@ -499,6 +499,11 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
|
|||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/89205">#89205</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
In the <literal>resilio</literal> module, <xref linkend="opt-services.resilio.httpListenAddr"/> has been changed to listen to <literal>[::1]</literal> instead of <literal>0.0.0.0</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
@ -651,6 +656,16 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
|
|||
<package>netbeans</package> was upgraded to 12.0 and now defaults to OpenJDK 11. This might cause problems if your projects depend on packages that were removed in Java 11.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<package>nextcloud</package> has been updated to <link xlink:href="https://nextcloud.com/blog/nextcloud-hub-brings-productivity-to-home-office/">v19</link>.
|
||||
</para>
|
||||
<para>
|
||||
If you have an existing installation, please make sure that you're on
|
||||
<package>nextcloud18</package> before upgrading to <package>nextcloud19</package>
|
||||
since Nextcloud doesn't support upgrades across multiple major versions.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -43,7 +43,7 @@ pkgs.stdenv.mkDerivation {
|
|||
# Make a crude approximation of the size of the target image.
|
||||
# If the script starts failing, increase the fudge factors here.
|
||||
numInodes=$(find $storePaths ./files | wc -l)
|
||||
numDataBlocks=$(du -s -c -B 4096 --apparent-size $storePaths ./files | tail -1 | awk '{ print int($1 * 1.03) }')
|
||||
numDataBlocks=$(du -s -c -B 4096 --apparent-size $storePaths ./files | tail -1 | awk '{ print int($1 * 1.10) }')
|
||||
bytes=$((2 * 4096 * $numInodes + 4096 * $numDataBlocks))
|
||||
echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
|
||||
|
||||
|
|
|
@ -626,7 +626,7 @@ in {
|
|||
then
|
||||
''
|
||||
The password hash of user "${name}" may be invalid. You must set a
|
||||
valid hash or the user will be locked out of his account. Please
|
||||
valid hash or the user will be locked out of their account. Please
|
||||
check the value of option `users.users."${name}".hashedPassword`.
|
||||
''
|
||||
else null
|
||||
|
|
|
@ -22,11 +22,22 @@ in {
|
|||
example = literalExample "pkgs.device-tree_rpi";
|
||||
type = types.path;
|
||||
description = ''
|
||||
The package containing the base device-tree (.dtb) to boot. Contains
|
||||
The path containing the base device-tree (.dtb) to boot. Contains
|
||||
device trees bundled with the Linux kernel by default.
|
||||
'';
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
default = null;
|
||||
example = "some-dtb.dtb";
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
The name of an explicit dtb to be loaded, relative to the dtb base.
|
||||
Useful in extlinux scenarios if the bootloader doesn't pick the
|
||||
right .dtb file from FDTDIR.
|
||||
'';
|
||||
};
|
||||
|
||||
overlays = mkOption {
|
||||
default = [];
|
||||
example = literalExample
|
||||
|
|
|
@ -84,7 +84,7 @@ in {
|
|||
model = mkOption {
|
||||
type = types.str;
|
||||
example = literalExample ''
|
||||
gutenprint.''${lib.version.majorMinor (lib.getVersion pkgs.cups)}://brother-hl-5140/expert
|
||||
gutenprint.''${lib.versions.majorMinor (lib.getVersion pkgs.gutenprint)}://brother-hl-5140/expert
|
||||
'';
|
||||
description = ''
|
||||
Location of the ppd driver file for the printer.
|
||||
|
|
|
@ -2,12 +2,6 @@
|
|||
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-aarch64.nix -A config.system.build.sdImage
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
extlinux-conf-builder =
|
||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
||||
pkgs = pkgs.buildPackages;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../../profiles/base.nix
|
||||
|
@ -56,7 +50,7 @@ in
|
|||
'';
|
||||
populateRootCommands = ''
|
||||
mkdir -p ./files/boot
|
||||
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
|
||||
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -2,12 +2,6 @@
|
|||
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
extlinux-conf-builder =
|
||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
||||
pkgs = pkgs.buildPackages;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../../profiles/base.nix
|
||||
|
@ -53,7 +47,7 @@ in
|
|||
'';
|
||||
populateRootCommands = ''
|
||||
mkdir -p ./files/boot
|
||||
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
|
||||
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -2,12 +2,6 @@
|
|||
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix -A config.system.build.sdImage
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
extlinux-conf-builder =
|
||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
||||
pkgs = pkgs.buildPackages;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../../profiles/base.nix
|
||||
|
@ -42,7 +36,7 @@ in
|
|||
'';
|
||||
populateRootCommands = ''
|
||||
mkdir -p ./files/boot
|
||||
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
|
||||
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
sdImage = {
|
||||
firmwareSize = 128;
|
||||
firmwarePartitionName = "NIXOS_BOOT";
|
||||
# This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
|
||||
populateFirmwareCommands =
|
||||
"${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
|
||||
|
@ -25,6 +26,12 @@
|
|||
populateRootCommands = "";
|
||||
};
|
||||
|
||||
fileSystems."/boot/firmware" = {
|
||||
# This effectively "renames" the loaOf entry set in sd-image.nix
|
||||
mountPoint = "/boot";
|
||||
neededForBoot = true;
|
||||
};
|
||||
|
||||
# the installation media is also the installation target,
|
||||
# so we don't want to provide the installation configuration.nix.
|
||||
installer.cloneConfig = false;
|
||||
|
|
|
@ -63,6 +63,14 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
firmwarePartitionName = mkOption {
|
||||
type = types.str;
|
||||
default = "FIRMWARE";
|
||||
description = ''
|
||||
Name of the filesystem which holds the boot firmware.
|
||||
'';
|
||||
};
|
||||
|
||||
rootPartitionUUID = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
|
@ -91,7 +99,7 @@ in
|
|||
};
|
||||
|
||||
populateRootCommands = mkOption {
|
||||
example = literalExample "''\${extlinux-conf-builder} -t 3 -c \${config.system.build.toplevel} -d ./files/boot''";
|
||||
example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
|
||||
description = ''
|
||||
Shell commands to populate the ./files directory.
|
||||
All files in that directory are copied to the
|
||||
|
@ -114,7 +122,7 @@ in
|
|||
config = {
|
||||
fileSystems = {
|
||||
"/boot/firmware" = {
|
||||
device = "/dev/disk/by-label/FIRMWARE";
|
||||
device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
|
||||
fsType = "vfat";
|
||||
# Alternatively, this could be removed from the configuration.
|
||||
# The filesystem is not needed at runtime, it could be treated
|
||||
|
@ -178,7 +186,7 @@ in
|
|||
# Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
|
||||
eval $(partx $img -o START,SECTORS --nr 1 --pairs)
|
||||
truncate -s $((SECTORS * 512)) firmware_part.img
|
||||
faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n FIRMWARE firmware_part.img
|
||||
faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n ${config.sdImage.firmwarePartitionName} firmware_part.img
|
||||
|
||||
# Populate the files intended for /boot/firmware
|
||||
mkdir firmware
|
||||
|
|
|
@ -628,6 +628,7 @@ EOF
|
|||
write_file($fn, <<EOF);
|
||||
@configuration@
|
||||
EOF
|
||||
print STDERR "For more hardware-specific settings, see https://github.com/NixOS/nixos-hardware"
|
||||
} else {
|
||||
print STDERR "warning: not overwriting existing $fn\n";
|
||||
}
|
||||
|
|
|
@ -757,6 +757,7 @@
|
|||
./services/networking/v2ray.nix
|
||||
./services/networking/vsftpd.nix
|
||||
./services/networking/wakeonlan.nix
|
||||
./services/networking/wasabibackend.nix
|
||||
./services/networking/websockify.nix
|
||||
./services/networking/wg-quick.nix
|
||||
./services/networking/wicd.nix
|
||||
|
@ -830,6 +831,7 @@
|
|||
./services/web-apps/atlassian/crowd.nix
|
||||
./services/web-apps/atlassian/jira.nix
|
||||
./services/web-apps/codimd.nix
|
||||
./services/web-apps/convos.nix
|
||||
./services/web-apps/cryptpad.nix
|
||||
./services/web-apps/documize.nix
|
||||
./services/web-apps/dokuwiki.nix
|
||||
|
|
|
@ -21,6 +21,12 @@ let
|
|||
|
||||
${optionalString (cfg.network.listenAddress != "any") ''bind_to_address "${cfg.network.listenAddress}"''}
|
||||
${optionalString (cfg.network.port != 6600) ''port "${toString cfg.network.port}"''}
|
||||
${optionalString (cfg.fluidsynth) ''
|
||||
decoder {
|
||||
plugin "fluidsynth"
|
||||
soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"
|
||||
}
|
||||
''}
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
@ -133,6 +139,14 @@ in {
|
|||
parameter is omitted from the configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
fluidsynth = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
If set, add fluidsynth soundfont and configure the plugin.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -240,6 +240,7 @@ in {
|
|||
'');
|
||||
serviceConfig = {
|
||||
ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
User = "hass";
|
||||
Group = "hass";
|
||||
Restart = "on-failure";
|
||||
|
|
|
@ -124,7 +124,7 @@ in {
|
|||
<literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<literal>"strong"</literal>: authentication by username/password. If user is not registered his access is denied regardless of ACLs.
|
||||
<literal>"strong"</literal>: authentication by username/password. If user is not registered their access is denied regardless of ACLs.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
|
|
@ -109,8 +109,8 @@ in
|
|||
|
||||
httpListenAddr = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0";
|
||||
example = "1.2.3.4";
|
||||
default = "[::1]";
|
||||
example = "0.0.0.0";
|
||||
description = ''
|
||||
HTTP address to bind to.
|
||||
'';
|
||||
|
@ -206,16 +206,16 @@ in
|
|||
|
||||
If you would like to be able to modify the contents of this
|
||||
directories, it is recommended that you make your user a
|
||||
member of the <literal>resilio</literal> group.
|
||||
member of the <literal>rslsync</literal> group.
|
||||
|
||||
Directories in this list should be in the
|
||||
<literal>resilio</literal> group, and that group must have
|
||||
<literal>rslsync</literal> group, and that group must have
|
||||
write access to the directory. It is also recommended that
|
||||
<literal>chmod g+s</literal> is applied to the directory
|
||||
so that any sub directories created will also belong to
|
||||
the <literal>resilio</literal> group. Also,
|
||||
<literal>setfacl -d -m group:resilio:rwx</literal> and
|
||||
<literal>setfacl -m group:resilio:rwx</literal> should also
|
||||
the <literal>rslsync</literal> group. Also,
|
||||
<literal>setfacl -d -m group:rslsync:rwx</literal> and
|
||||
<literal>setfacl -m group:rslsync:rwx</literal> should also
|
||||
be applied so that the sub directories are writable by
|
||||
the group.
|
||||
'';
|
||||
|
|
|
@ -15,7 +15,11 @@ let
|
|||
|
||||
listen:
|
||||
(
|
||||
{ host: "${cfg.listenAddress}"; port: "${toString cfg.port}"; }
|
||||
${
|
||||
concatMapStringsSep ",\n"
|
||||
(addr: ''{ host: "${addr}"; port: "${toString cfg.port}"; }'')
|
||||
cfg.listenAddresses
|
||||
}
|
||||
);
|
||||
|
||||
${cfg.appendConfig}
|
||||
|
@ -33,6 +37,10 @@ let
|
|||
'';
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "sslh" "listenAddress" ] [ "services" "sslh" "listenAddresses" ])
|
||||
];
|
||||
|
||||
options = {
|
||||
services.sslh = {
|
||||
enable = mkEnableOption "sslh";
|
||||
|
@ -55,10 +63,10 @@ in
|
|||
description = "Will the services behind sslh (Apache, sshd and so on) see the external IP and ports as if the external world connected directly to them";
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0";
|
||||
description = "Listening address or hostname.";
|
||||
listenAddresses = mkOption {
|
||||
type = types.coercedTo types.str singleton (types.listOf types.str);
|
||||
default = [ "0.0.0.0" "[::]" ];
|
||||
description = "Listening addresses or hostnames.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
|
|
|
@ -0,0 +1,158 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.wasabibackend;
|
||||
|
||||
inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
|
||||
|
||||
confOptions = {
|
||||
BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
|
||||
} // optionalAttrs (cfg.network == "mainnet") {
|
||||
Network = "Main";
|
||||
MainNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
|
||||
MainNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
|
||||
} // optionalAttrs (cfg.network == "testnet") {
|
||||
Network = "TestNet";
|
||||
TestNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
|
||||
TestNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
|
||||
} // optionalAttrs (cfg.network == "regtest") {
|
||||
Network = "RegTest";
|
||||
RegTestBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
|
||||
RegTestBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
|
||||
};
|
||||
|
||||
configFile = pkgs.writeText "wasabibackend.conf" (builtins.toJSON confOptions);
|
||||
|
||||
in {
|
||||
|
||||
options = {
|
||||
|
||||
services.wasabibackend = {
|
||||
enable = mkEnableOption "Wasabi backend service";
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/wasabibackend";
|
||||
description = "The data directory for the Wasabi backend node.";
|
||||
};
|
||||
|
||||
customConfigFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Defines the path to a custom configuration file that is copied to the user's directory. Overrides any config options.";
|
||||
};
|
||||
|
||||
network = mkOption {
|
||||
type = types.enum [ "mainnet" "testnet" "regtest" ];
|
||||
default = "mainnet";
|
||||
description = "The network to use for the Wasabi backend service.";
|
||||
};
|
||||
|
||||
endpoint = {
|
||||
ip = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "IP address for P2P connection to bitcoind.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8333;
|
||||
description = "Port for P2P connection to bitcoind.";
|
||||
};
|
||||
};
|
||||
|
||||
rpc = {
|
||||
ip = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "IP address for RPC connection to bitcoind.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8332;
|
||||
description = "Port for RPC connection to bitcoind.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "bitcoin";
|
||||
description = "RPC user for the bitcoin endpoint.";
|
||||
};
|
||||
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
default = "password";
|
||||
description = "RPC password for the bitcoin endpoint. Warning: this is stored in cleartext in the Nix store! Use <literal>configFile</literal> or <literal>passwordFile</literal> if needed.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "File that contains the password of the RPC user.";
|
||||
};
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "wasabibackend";
|
||||
description = "The user as which to run the wasabibackend node.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.user;
|
||||
description = "The group as which to run the wasabibackend node.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
|
||||
];
|
||||
|
||||
systemd.services.wasabibackend = {
|
||||
description = "wasabibackend server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
environment = {
|
||||
DOTNET_PRINT_TELEMETRY_MESSAGE = "false";
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT = "true";
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir}/.walletwasabi/backend
|
||||
${if cfg.customConfigFile != null then ''
|
||||
cp -v ${cfg.customConfigFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
|
||||
'' else ''
|
||||
cp -v ${configFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
|
||||
${optionalString (cfg.rpc.passwordFile != null) ''
|
||||
CONFIGTMP=$(mktemp)
|
||||
cat ${cfg.dataDir}/.walletwasabi/backend/Config.json | ${pkgs.jq}/bin/jq --arg rpconnection "${cfg.rpc.user}:$(cat "${cfg.rpc.passwordFile}")" '. + { BitcoinRpcConnectionString: $rpconnection }' > $CONFIGTMP
|
||||
mv $CONFIGTMP ${cfg.dataDir}/.walletwasabi/backend/Config.json
|
||||
''}
|
||||
''}
|
||||
chmod ug+w ${cfg.dataDir}/.walletwasabi/backend/Config.json
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${pkgs.wasabibackend}/bin/WasabiBackend";
|
||||
ProtectSystem = "full";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.${cfg.user} = {
|
||||
name = cfg.user;
|
||||
group = cfg.group;
|
||||
description = "wasabibackend daemon user";
|
||||
home = cfg.dataDir;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
users.groups.${cfg.group} = {};
|
||||
|
||||
};
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.convos;
|
||||
in
|
||||
{
|
||||
options.services.convos = {
|
||||
enable = mkEnableOption "Convos";
|
||||
listenPort = mkOption {
|
||||
type = types.port;
|
||||
default = 3000;
|
||||
example = 8080;
|
||||
description = "Port the web interface should listen on";
|
||||
};
|
||||
listenAddress = mkOption {
|
||||
type = types.str;
|
||||
default = "*";
|
||||
example = "127.0.0.1";
|
||||
description = "Address or host the web interface should listen on";
|
||||
};
|
||||
reverseProxy = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enables reverse proxy support. This will allow Convos to automatically
|
||||
pick up the <literal>X-Forwarded-For</literal> and
|
||||
<literal>X-Request-Base</literal> HTTP headers set in your reverse proxy
|
||||
web server. Note that enabling this option without a reverse proxy in
|
||||
front will be a security issue.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.convos = {
|
||||
description = "Convos Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "networking.target" ];
|
||||
environment = {
|
||||
CONVOS_HOME = "%S/convos";
|
||||
CONVOS_REVERSE_PROXY = if cfg.reverseProxy then "1" else "0";
|
||||
MOJO_LISTEN = "http://${toString cfg.listenAddress}:${toString cfg.listenPort}";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.convos}/bin/convos daemon";
|
||||
Restart = "on-failure";
|
||||
StateDirectory = "convos";
|
||||
WorkingDirectory = "%S/convos";
|
||||
DynamicUser = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
ProtectHome = true;
|
||||
ProtectClock = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
PrivateDevices = true;
|
||||
PrivateMounts = true;
|
||||
PrivateUsers = true;
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictNamespaces = true;
|
||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6"];
|
||||
SystemCallFilter = "@system-service";
|
||||
SystemCallArchitectures = "native";
|
||||
CapabilityBoundingSet = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -17,6 +17,10 @@ let
|
|||
lib.generators.toGitINI cfg.settings
|
||||
);
|
||||
|
||||
replicationConfig = pkgs.writeText "replication.conf" (
|
||||
lib.generators.toGitINI cfg.replicationSettings
|
||||
);
|
||||
|
||||
# Wrap the gerrit java with all the java options so it can be called
|
||||
# like a normal CLI app
|
||||
gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
|
||||
|
@ -106,6 +110,15 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
replicationSettings = mkOption {
|
||||
type = gitIniType;
|
||||
default = {};
|
||||
description = ''
|
||||
Replication configuration. This will be generated to the
|
||||
<literal>etc/replication.config</literal> file.
|
||||
'';
|
||||
};
|
||||
|
||||
plugins = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [];
|
||||
|
@ -138,6 +151,13 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.replicationSettings != {} -> elem "replication" cfg.builtinPlugins;
|
||||
message = "Gerrit replicationSettings require enabling the replication plugin";
|
||||
}
|
||||
];
|
||||
|
||||
services.gerrit.settings = {
|
||||
cache.directory = "/var/cache/gerrit";
|
||||
container.heapLimit = cfg.jvmHeapLimit;
|
||||
|
@ -194,6 +214,7 @@ in
|
|||
|
||||
# copy the config, keep it mutable because Gerrit
|
||||
ln -sfv ${gerritConfig} etc/gerrit.config
|
||||
ln -sfv ${replicationConfig} etc/replication.config
|
||||
|
||||
# install the plugins
|
||||
rm -rf plugins
|
||||
|
|
|
@ -69,7 +69,7 @@ in {
|
|||
package = mkOption {
|
||||
type = types.package;
|
||||
description = "Which package to use for the Nextcloud instance.";
|
||||
relatedPackages = [ "nextcloud17" "nextcloud18" ];
|
||||
relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
|
||||
};
|
||||
|
||||
maxUploadSize = mkOption {
|
||||
|
@ -303,6 +303,14 @@ in {
|
|||
'';
|
||||
};
|
||||
};
|
||||
occ = mkOption {
|
||||
type = types.package;
|
||||
default = occ;
|
||||
internal = true;
|
||||
description = ''
|
||||
The nextcloud-occ program preconfigured to target this Nextcloud instance.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
|
@ -336,7 +344,16 @@ in {
|
|||
server, and wait until the upgrade to 17 is finished.
|
||||
|
||||
Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
|
||||
Nextcloud version 18.
|
||||
Nextcloud version 18. Please note that Nextcloud 19 is already out and it's
|
||||
recommended to upgrade to nextcloud19 after that.
|
||||
'')
|
||||
++ (optional (versionOlder cfg.package.version "19") ''
|
||||
A legacy Nextcloud install (from before NixOS 20.09/unstable) may be installed.
|
||||
|
||||
If/After nextcloud18 is installed successfully, you can safely upgrade to
|
||||
nextcloud19. If not, please upgrade to nextcloud18 first since Nextcloud doesn't
|
||||
support upgrades that skip multiple versions (i.e. an upgrade from 17 to 19 isn't
|
||||
possible, but an upgrade from 18 to 19).
|
||||
'');
|
||||
|
||||
services.nextcloud.package = with pkgs;
|
||||
|
@ -348,7 +365,8 @@ in {
|
|||
`pkgs.nextcloud`.
|
||||
''
|
||||
else if versionOlder stateVersion "20.03" then nextcloud17
|
||||
else nextcloud18
|
||||
else if versionOlder stateVersion "20.09" then nextcloud18
|
||||
else nextcloud19
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -360,6 +378,11 @@ in {
|
|||
};
|
||||
|
||||
systemd.services = {
|
||||
# When upgrading the Nextcloud package, Nextcloud can report errors such as
|
||||
# "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
|
||||
# Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
|
||||
phpfpm-nextcloud.restartTriggers = [ cfg.package ];
|
||||
|
||||
nextcloud-setup = let
|
||||
c = cfg.config;
|
||||
writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
|
||||
|
|
|
@ -161,5 +161,11 @@
|
|||
};
|
||||
}</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Ideally we should make sure that it's possible to jump two NixOS versions forward:
|
||||
i.e. the warnings and the logic in the module should guard a user to upgrade from a
|
||||
Nextcloud on e.g. 19.09 to a Nextcloud on 20.09.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
|
|
@ -4,11 +4,15 @@ with lib;
|
|||
|
||||
let
|
||||
blCfg = config.boot.loader;
|
||||
dtCfg = config.hardware.deviceTree;
|
||||
cfg = blCfg.generic-extlinux-compatible;
|
||||
|
||||
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
|
||||
|
||||
# The builder used to write during system activation
|
||||
builder = import ./extlinux-conf-builder.nix { inherit pkgs; };
|
||||
# The builder exposed in populateCmd, which runs on the build architecture
|
||||
populateBuilder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
@ -34,11 +38,28 @@ in
|
|||
Maximum number of configurations in the boot menu.
|
||||
'';
|
||||
};
|
||||
|
||||
populateCmd = mkOption {
|
||||
type = types.str;
|
||||
readOnly = true;
|
||||
description = ''
|
||||
Contains the builder command used to populate an image,
|
||||
honoring all options except the <literal>-c <path-to-default-configuration></literal>
|
||||
argument.
|
||||
Useful to have for sdImage.populateRootCommands
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
system.build.installBootLoader = "${builder} -g ${toString cfg.configurationLimit} -t ${timeoutStr} -c";
|
||||
system.boot.loader.id = "generic-extlinux-compatible";
|
||||
};
|
||||
config = let
|
||||
builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}" + lib.optionalString (dtCfg.name != null) " -n ${dtCfg.name}";
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
system.build.installBootLoader = "${builder} ${builderArgs} -c";
|
||||
system.boot.loader.id = "generic-extlinux-compatible";
|
||||
|
||||
boot.loader.generic-extlinux-compatible.populateCmd = "${populateBuilder} ${builderArgs}";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ export PATH=/empty
|
|||
for i in @path@; do PATH=$PATH:$i/bin; done
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>]" >&2
|
||||
echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>] [-n <dtbName>]" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ default= # Default configuration
|
|||
target=/boot # Target directory
|
||||
numGenerations=0 # Number of other generations to include in the menu
|
||||
|
||||
while getopts "t:c:d:g:" opt; do
|
||||
while getopts "t:c:d:g:n:" opt; do
|
||||
case "$opt" in
|
||||
t) # U-Boot interprets '0' as infinite and negative as instant boot
|
||||
if [ "$OPTARG" -lt 0 ]; then
|
||||
|
@ -29,6 +29,7 @@ while getopts "t:c:d:g:" opt; do
|
|||
c) default="$OPTARG" ;;
|
||||
d) target="$OPTARG" ;;
|
||||
g) numGenerations="$OPTARG" ;;
|
||||
n) dtbName="$OPTARG" ;;
|
||||
\?) usage ;;
|
||||
esac
|
||||
done
|
||||
|
@ -96,7 +97,17 @@ addEntry() {
|
|||
echo " LINUX ../nixos/$(basename $kernel)"
|
||||
echo " INITRD ../nixos/$(basename $initrd)"
|
||||
if [ -d "$dtbDir" ]; then
|
||||
echo " FDTDIR ../nixos/$(basename $dtbs)"
|
||||
# if a dtbName was specified explicitly, use that, else use FDTDIR
|
||||
if [ -n "$dtbName" ]; then
|
||||
echo " FDT ../nixos/$(basename $dtbs)/${dtbName}"
|
||||
else
|
||||
echo " FDTDIR ../nixos/$(basename $dtbs)"
|
||||
fi
|
||||
else
|
||||
if [ -n "$dtbName" ]; then
|
||||
echo "Explicitly requested dtbName $dtbName, but there's no FDTDIR - bailing out." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo " APPEND systemConfig=$path init=$path/init $extraParams"
|
||||
}
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#! @bash@/bin/sh -e
|
||||
#! @bash@/bin/sh
|
||||
|
||||
# This can end up being called disregarding the shebang.
|
||||
set -e
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ in
|
|||
containers-portforward = handleTest ./containers-portforward.nix {};
|
||||
containers-restart_networking = handleTest ./containers-restart_networking.nix {};
|
||||
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
||||
convos = handleTest ./convos.nix {};
|
||||
corerad = handleTest ./corerad.nix {};
|
||||
couchdb = handleTest ./couchdb.nix {};
|
||||
deluge = handleTest ./deluge.nix {};
|
||||
|
@ -236,6 +237,7 @@ in
|
|||
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
|
||||
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
|
||||
nginx-sso = handleTest ./nginx-sso.nix {};
|
||||
nginx-variants = handleTest ./nginx-variants.nix {};
|
||||
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
|
||||
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
|
||||
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
|
||||
|
@ -306,6 +308,7 @@ in
|
|||
spacecookie = handleTest ./spacecookie.nix {};
|
||||
spike = handleTest ./spike.nix {};
|
||||
sonarr = handleTest ./sonarr.nix {};
|
||||
sslh = handleTest ./sslh.nix {};
|
||||
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
||||
sudo = handleTest ./sudo.nix {};
|
||||
switchTest = handleTest ./switch-test.nix {};
|
||||
|
@ -345,6 +348,7 @@ in
|
|||
vault = handleTest ./vault.nix {};
|
||||
victoriametrics = handleTest ./victoriametrics.nix {};
|
||||
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
||||
wasabibackend = handleTest ./wasabibackend.nix {};
|
||||
wireguard = handleTest ./wireguard {};
|
||||
wordpress = handleTest ./wordpress.nix {};
|
||||
xandikos = handleTest ./xandikos.nix {};
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
port = 3333;
|
||||
in
|
||||
{
|
||||
name = "convos";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ sgo ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.convos = {
|
||||
enable = true;
|
||||
listenPort = port;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("convos")
|
||||
machine.wait_for_open_port("${toString port}")
|
||||
machine.succeed("journalctl -u convos | grep -q 'Listening at.*${toString port}'")
|
||||
machine.succeed("curl http://localhost:${toString port}/")
|
||||
'';
|
||||
})
|
|
@ -2,69 +2,53 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
|
||||
let
|
||||
configDir = "/var/lib/foobar";
|
||||
apiPassword = "some_secret";
|
||||
mqttPassword = "another_secret";
|
||||
hassCli = "hass-cli --server http://hass:8123 --password '${apiPassword}'";
|
||||
mqttPassword = "secret";
|
||||
in {
|
||||
name = "home-assistant";
|
||||
meta = with pkgs.stdenv.lib; {
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
hass =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
mosquitto home-assistant-cli
|
||||
];
|
||||
services.home-assistant = {
|
||||
inherit configDir;
|
||||
enable = true;
|
||||
package = pkgs.home-assistant.override {
|
||||
extraPackages = ps: with ps; [ hbmqtt ];
|
||||
};
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Home";
|
||||
time_zone = "UTC";
|
||||
latitude = "0.0";
|
||||
longitude = "0.0";
|
||||
elevation = 0;
|
||||
auth_providers = [
|
||||
{
|
||||
type = "legacy_api_password";
|
||||
api_password = apiPassword;
|
||||
}
|
||||
];
|
||||
};
|
||||
frontend = { };
|
||||
mqtt = { # Use hbmqtt as broker
|
||||
password = mqttPassword;
|
||||
};
|
||||
binary_sensor = [
|
||||
{
|
||||
platform = "mqtt";
|
||||
state_topic = "home-assistant/test";
|
||||
payload_on = "let_there_be_light";
|
||||
payload_off = "off";
|
||||
}
|
||||
];
|
||||
};
|
||||
lovelaceConfig = {
|
||||
title = "My Awesome Home";
|
||||
views = [ {
|
||||
title = "Example";
|
||||
cards = [ {
|
||||
type = "markdown";
|
||||
title = "Lovelace";
|
||||
content = "Welcome to your **Lovelace UI**.";
|
||||
} ];
|
||||
} ];
|
||||
};
|
||||
lovelaceConfigWritable = true;
|
||||
nodes.hass = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ mosquitto ];
|
||||
services.home-assistant = {
|
||||
inherit configDir;
|
||||
enable = true;
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Home";
|
||||
time_zone = "UTC";
|
||||
latitude = "0.0";
|
||||
longitude = "0.0";
|
||||
elevation = 0;
|
||||
};
|
||||
frontend = {};
|
||||
# uses embedded mqtt broker
|
||||
mqtt.password = mqttPassword;
|
||||
binary_sensor = [{
|
||||
platform = "mqtt";
|
||||
state_topic = "home-assistant/test";
|
||||
payload_on = "let_there_be_light";
|
||||
payload_off = "off";
|
||||
}];
|
||||
logger = {
|
||||
default = "info";
|
||||
logs."homeassistant.components.mqtt" = "debug";
|
||||
};
|
||||
};
|
||||
lovelaceConfig = {
|
||||
title = "My Awesome Home";
|
||||
views = [{
|
||||
title = "Example";
|
||||
cards = [{
|
||||
type = "markdown";
|
||||
title = "Lovelace";
|
||||
content = "Welcome to your **Lovelace UI**.";
|
||||
}];
|
||||
}];
|
||||
};
|
||||
lovelaceConfigWritable = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
|
@ -77,28 +61,13 @@ in {
|
|||
with subtest("Check that Home Assistant's web interface and API can be reached"):
|
||||
hass.wait_for_open_port(8123)
|
||||
hass.succeed("curl --fail http://localhost:8123/lovelace")
|
||||
assert "API running" in hass.succeed(
|
||||
"curl --fail -H 'x-ha-access: ${apiPassword}' http://localhost:8123/api/"
|
||||
)
|
||||
with subtest("Toggle a binary sensor using MQTT"):
|
||||
assert '"state": "off"' in hass.succeed(
|
||||
"curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
|
||||
)
|
||||
# wait for broker to become available
|
||||
hass.wait_until_succeeds(
|
||||
"mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
|
||||
)
|
||||
assert '"state": "on"' in hass.succeed(
|
||||
"curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
|
||||
)
|
||||
with subtest("Toggle a binary sensor using hass-cli"):
|
||||
assert '"state": "on"' in hass.succeed(
|
||||
"${hassCli} --output json state get binary_sensor.mqtt_binary_sensor"
|
||||
"mosquitto_sub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -W 1 -t '*'"
|
||||
)
|
||||
hass.succeed(
|
||||
"${hassCli} state edit binary_sensor.mqtt_binary_sensor --json='{\"state\": \"off\"}'"
|
||||
)
|
||||
assert '"state": "off"' in hass.succeed(
|
||||
"curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
|
||||
"mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
|
||||
)
|
||||
with subtest("Print log to ease debugging"):
|
||||
output_log = hass.succeed("cat ${configDir}/home-assistant.log")
|
||||
|
@ -107,5 +76,9 @@ in {
|
|||
|
||||
with subtest("Check that no errors were logged"):
|
||||
assert "ERROR" not in output_log
|
||||
|
||||
# example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light'
|
||||
with subtest("Check we received the mosquitto message"):
|
||||
assert "let_there_be_light" in output_log
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -26,7 +26,9 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
nextcloud = { config, pkgs, ... }: {
|
||||
nextcloud = { config, pkgs, ... }: let
|
||||
cfg = config;
|
||||
in {
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
|
||||
services.nextcloud = {
|
||||
|
@ -42,6 +44,8 @@ in {
|
|||
startAt = "20:00";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.services.nextcloud.occ ];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -67,6 +71,8 @@ in {
|
|||
in ''
|
||||
start_all()
|
||||
nextcloud.wait_for_unit("multi-user.target")
|
||||
# This is just to ensure the nextcloud-occ program is working
|
||||
nextcloud.succeed("nextcloud-occ status")
|
||||
nextcloud.succeed("curl -sSf http://nextcloud/login")
|
||||
nextcloud.succeed(
|
||||
"${withRcloneEnv} ${copySharedFile}"
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
{ system ? builtins.currentSystem,
|
||||
config ? {},
|
||||
pkgs ? import ../.. { inherit system config; }
|
||||
}:
|
||||
|
||||
with import ../lib/testing-python.nix { inherit system pkgs; };
|
||||
|
||||
builtins.listToAttrs (
|
||||
builtins.map
|
||||
(nginxName:
|
||||
{
|
||||
name = nginxName;
|
||||
value = makeTest {
|
||||
name = "nginx-variant-${nginxName}";
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts.localhost.locations."/".return = "200 'foo'";
|
||||
package = pkgs."${nginxName}";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("nginx")
|
||||
machine.wait_for_open_port(80)
|
||||
machine.succeed('test "$(curl -fvvv http://localhost/)" = foo')
|
||||
'';
|
||||
};
|
||||
}
|
||||
)
|
||||
[ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ]
|
||||
)
|
|
@ -0,0 +1,83 @@
|
|||
import ./make-test-python.nix {
|
||||
name = "sslh";
|
||||
|
||||
nodes = {
|
||||
server = { pkgs, lib, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 443 ];
|
||||
networking.interfaces.eth1.ipv6.addresses = [
|
||||
{
|
||||
address = "fe00:aa:bb:cc::2";
|
||||
prefixLength = 64;
|
||||
}
|
||||
];
|
||||
# sslh is really slow when reverse dns does not work
|
||||
networking.hosts = {
|
||||
"fe00:aa:bb:cc::2" = [ "server" ];
|
||||
"fe00:aa:bb:cc::1" = [ "client" ];
|
||||
};
|
||||
services.sslh = {
|
||||
enable = true;
|
||||
transparent = true;
|
||||
appendConfig = ''
|
||||
protocols:
|
||||
(
|
||||
{ name: "ssh"; service: "ssh"; host: "localhost"; port: "22"; probe: "builtin"; },
|
||||
{ name: "http"; host: "localhost"; port: "80"; probe: "builtin"; },
|
||||
);
|
||||
'';
|
||||
};
|
||||
services.openssh.enable = true;
|
||||
users.users.root.openssh.authorizedKeys.keyFiles = [ ./initrd-network-ssh/id_ed25519.pub ];
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts."localhost" = {
|
||||
addSSL = false;
|
||||
default = true;
|
||||
root = pkgs.runCommand "testdir" {} ''
|
||||
mkdir "$out"
|
||||
echo hello world > "$out/index.html"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
client = { ... }: {
|
||||
networking.interfaces.eth1.ipv6.addresses = [
|
||||
{
|
||||
address = "fe00:aa:bb:cc::1";
|
||||
prefixLength = 64;
|
||||
}
|
||||
];
|
||||
networking.hosts."fe00:aa:bb:cc::2" = [ "server" ];
|
||||
environment.etc.sshKey = {
|
||||
source = ./initrd-network-ssh/id_ed25519; # dont use this anywhere else
|
||||
mode = "0600";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
server.wait_for_unit("sslh.service")
|
||||
server.wait_for_unit("nginx.service")
|
||||
server.wait_for_unit("sshd.service")
|
||||
server.wait_for_open_port(80)
|
||||
server.wait_for_open_port(443)
|
||||
server.wait_for_open_port(22)
|
||||
|
||||
for arg in ["-6", "-4"]:
|
||||
client.wait_until_succeeds(f"ping {arg} -c1 server")
|
||||
|
||||
# check that ssh through sslh works
|
||||
client.succeed(
|
||||
f"ssh {arg} -p 443 -i /etc/sshKey -o StrictHostKeyChecking=accept-new server 'echo $SSH_CONNECTION > /tmp/foo{arg}'"
|
||||
)
|
||||
|
||||
# check that 1/ the above ssh command had an effect 2/ transparent proxying really works
|
||||
ip = "fe00:aa:bb:cc::1" if arg == "-6" else "192.168.1."
|
||||
server.succeed(f"grep '{ip}' /tmp/foo{arg}")
|
||||
|
||||
# check that http through sslh works
|
||||
assert client.succeed(f"curl {arg} http://server:443").strip() == "hello world"
|
||||
'';
|
||||
}
|
|
@ -74,7 +74,7 @@ in
|
|||
with subtest("test5 user should not be able to run commands under root"):
|
||||
machine.fail("sudo -u test5 sudo -n -u root true")
|
||||
|
||||
with subtest("test5 user should be able to keep his environment"):
|
||||
with subtest("test5 user should be able to keep their environment"):
|
||||
machine.succeed("sudo -u test5 sudo -n -E -u test1 true")
|
||||
|
||||
with subtest("users in group 'barfoo' should not be able to keep their environment"):
|
||||
|
|
|
@ -176,7 +176,8 @@ in {
|
|||
|
||||
sub checkClientCert ($) {
|
||||
my $user = $_[0];
|
||||
my $cmd = "gnutls-cli".
|
||||
# debug level 3 is a workaround for gnutls issue https://gitlab.com/gnutls/gnutls/-/issues/1040
|
||||
my $cmd = "gnutls-cli -d 3".
|
||||
" --x509cafile=/home/$user/.task/keys/ca.cert".
|
||||
" --x509keyfile=/home/$user/.task/keys/private.key".
|
||||
" --x509certfile=/home/$user/.task/keys/public.cert".
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "wasabibackend";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ mmahut ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
machine = { ... }: {
|
||||
services.wasabibackend = {
|
||||
enable = true;
|
||||
network = "testnet";
|
||||
rpc = {
|
||||
user = "alice";
|
||||
port = 18332;
|
||||
};
|
||||
};
|
||||
services.bitcoind = {
|
||||
enable = true;
|
||||
testnet = true;
|
||||
rpc.users = {
|
||||
alice.passwordHMAC = "e7096bc21da60b29ecdbfcdb2c3acc62$f948e61cb587c399358ed99c6ed245a41460b4bf75125d8330c9f6fcc13d7ae7";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
machine.wait_for_unit("wasabibackend.service")
|
||||
machine.wait_until_succeeds(
|
||||
"grep 'Wasabi Backend started' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
|
||||
)
|
||||
machine.sleep(5)
|
||||
machine.succeed(
|
||||
"grep 'Config is successfully initialized' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
|
||||
)
|
||||
'';
|
||||
})
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
bitwig-studio1.overrideAttrs (oldAttrs: rec {
|
||||
name = "bitwig-studio-${version}";
|
||||
version = "3.1.3";
|
||||
version = "3.2.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
||||
sha256 = "11z5flmp55ywgxyccj3pzhijhaggi42i2pvacg88kcpj0cin57vl";
|
||||
sha256 = "10zb78n75nbriyjah0m3syv3rv7qwbmj590z24hss7lifa3rs784";
|
||||
};
|
||||
|
||||
buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fverb";
|
||||
# no release yet: https://github.com/jpcima/fverb/issues/2
|
||||
version = "unstable-2020-06-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpcima";
|
||||
repo = pname;
|
||||
rev = "462020e33e24c0204a375dc95e2c28654cc917b8";
|
||||
sha256 = "12nl7qn7mnykk7v8q0j2n8kfq0xc46n0i45z6qcywspadwnncmd4";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./dpf/utils/generate-ttl.sh
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
|
||||
homepage = "https://github.com/jpcima/fverb";
|
||||
license = licenses.bsd2;
|
||||
maintainers = [ maintainers.magnetophon ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{ stdenv, mkDerivation, lib, fetchzip, cmake, pkgconfig
|
||||
, alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
|
||||
, portaudio, portmidi, qtbase, qtdeclarative, qtscript, qtsvg, qttools
|
||||
, portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
|
||||
, qtquickcontrols2, qtscript, qtsvg, qttools
|
||||
, qtwebengine, qtxmlpatterns
|
||||
}:
|
||||
|
||||
|
@ -26,7 +27,8 @@ mkDerivation rec {
|
|||
buildInputs = [
|
||||
alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
|
||||
portaudio portmidi # tesseract
|
||||
qtbase qtdeclarative qtscript qtsvg qttools qtwebengine qtxmlpatterns
|
||||
qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
|
||||
qtscript qtsvg qttools qtwebengine qtxmlpatterns
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Pulseaudio command line mixer";
|
||||
longDescription = ''
|
||||
Features:
|
||||
- Get the current volume of the default sink, the default source or a selected one by his id
|
||||
- Get the current volume of the default sink, the default source or a selected one by its id
|
||||
- Set the volume for the default sink, the default source or any other device
|
||||
- List the sinks
|
||||
- List the sources
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
|
||||
, alsaLib, asio, avahi, flac, libogg, libvorbis }:
|
||||
, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr }:
|
||||
|
||||
let
|
||||
|
||||
|
@ -33,21 +33,21 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "snapcast";
|
||||
version = "0.15.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "badaix";
|
||||
repo = "snapcast";
|
||||
rev = "v${version}";
|
||||
sha256 = "11rnpy6w3wm240qgmkp74k5w8wh5b7hzfx05qrnh6l7ng7m25ky2";
|
||||
sha256 = "152ic8hlyawcmj9pykb33xc6yx7il6yb9ilmsy6m9nlh40m8yxls";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
nativeBuildInputs = [ cmake pkgconfig boost170.dev ];
|
||||
# snapcast also supports building against tremor but as we have libogg, that's
|
||||
# not needed
|
||||
buildInputs = [
|
||||
alsaLib asio avahi flac libogg libvorbis
|
||||
aixlog popl
|
||||
aixlog popl soxr
|
||||
];
|
||||
|
||||
# Upstream systemd unit files are pretty awful, so we provide our own in a
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
{ buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, python3Packages
|
||||
, youtube-dl
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "tuijam";
|
||||
version = "unstable-2020-06-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cfangmeier";
|
||||
repo = pname;
|
||||
rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
|
||||
sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
|
||||
};
|
||||
|
||||
buildInputs = [ python3Packages.Babel ];
|
||||
|
||||
# the package has no tests
|
||||
doCheck = false;
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
gmusicapi
|
||||
google_api_python_client
|
||||
mpv
|
||||
pydbus
|
||||
pygobject3
|
||||
pyyaml
|
||||
requests
|
||||
rsa
|
||||
urwid
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fancy TUI client for Google Play Music";
|
||||
longDescription = ''
|
||||
TUIJam seeks to make a simple, attractive, terminal-based interface to
|
||||
listening to music for Google Play Music All-Access subscribers.
|
||||
'';
|
||||
homepage = "https://github.com/cfangmeier/tuijam";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ kalbasit ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, pkgconfig
|
||||
, autoreconfHook
|
||||
, db5
|
||||
, openssl
|
||||
, boost
|
||||
, zlib
|
||||
, miniupnpc
|
||||
, libevent
|
||||
, protobuf
|
||||
, utillinux
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bitcoind-knots";
|
||||
version = "0.20.0";
|
||||
versionDate = "20200614";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitcoinknots";
|
||||
repo = "bitcoin";
|
||||
rev = "v${version}.knots${versionDate}";
|
||||
sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||
buildInputs = [ openssl db5 openssl utillinux
|
||||
protobuf boost zlib miniupnpc libevent ];
|
||||
|
||||
configureFlags = [ "--with-incompatible-bdb"
|
||||
"--with-boost-libdir=${boost.out}/lib" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An enhanced Bitcoin node software";
|
||||
homepage = "https://bitcoinknots.org/";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.mmahut ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, pkgconfig
|
||||
, libtool
|
||||
, autoconf
|
||||
, automake
|
||||
, curl
|
||||
, ncurses
|
||||
, ocl-icd
|
||||
, opencl-headers
|
||||
, libusb1
|
||||
, xorg
|
||||
, jansson }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cgminer";
|
||||
version = "4.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ckolivas";
|
||||
repo = "cgminer";
|
||||
rev = "v${version}";
|
||||
sha256 = "0l1ms3nxnjzh4mpiadikvngcr9k3jnjqy3yna207za0va0c28dj5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ autoconf automake libtool curl ncurses ocl-icd opencl-headers
|
||||
xorg.libX11 xorg.libXext xorg.libXinerama jansson libusb1 ];
|
||||
|
||||
configureScript = "./autogen.sh";
|
||||
configureFlags = [ "--enable-scrypt"
|
||||
"--enable-opencl"
|
||||
"--enable-bitforce"
|
||||
"--enable-icarus"
|
||||
"--enable-modminer"
|
||||
"--enable-ztex"
|
||||
"--enable-avalon"
|
||||
"--enable-klondike"
|
||||
"--enable-keccak"
|
||||
"--enable-bflsc"];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "CPU/GPU miner in c for bitcoin";
|
||||
homepage = "https://github.com/ckolivas/cgminer";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ offline mmahut ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
|
|||
icon = "monero";
|
||||
desktopName = "Monero";
|
||||
genericName = "Wallet";
|
||||
categories = "Application;Network;Utility;";
|
||||
categories = "Network;Utility;";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p dotnet-sdk_3 nixfmt
|
||||
|
||||
# Run this script to generate deps.nix
|
||||
# ./create_deps.sh /path/to/package/source/checkout > deps.nix
|
||||
|
||||
# TODO: consolidate with other dotnet deps generation scripts by which
|
||||
# this script is inspired:
|
||||
# - pkgs/servers/nosql/eventstore/create-deps.sh
|
||||
# - pkgs/development/dotnet-modules/python-language-server/create_deps.sh
|
||||
|
||||
URLBASE="https://www.nuget.org/api/v2/package"
|
||||
|
||||
DEPS_HEADER="
|
||||
{ fetchurl }:
|
||||
let
|
||||
nugetUrlBase = \"$URLBASE\";
|
||||
fetchNuGet = { name, version, sha256 }: fetchurl {
|
||||
inherit sha256;
|
||||
url = \"\${nugetUrlBase}/\${name}/\${version}\";
|
||||
};
|
||||
in ["
|
||||
|
||||
DEPS_FOOTER="]"
|
||||
|
||||
DEPS_TEMPLATE="
|
||||
(fetchNuGet {
|
||||
name = \"%s\";
|
||||
version = \"%s\";
|
||||
sha256 = \"%s\";
|
||||
})"
|
||||
|
||||
|
||||
function generate_restore_log() {
|
||||
checkout_path=$1
|
||||
>&2 echo "generating restore log for $checkout_path..."
|
||||
cd $checkout_path
|
||||
dotnet nuget locals all --clear
|
||||
dotnet restore -v normal --no-cache WalletWasabi.Backend -r linux-x64
|
||||
cd -
|
||||
}
|
||||
|
||||
function process_restore_log() {
|
||||
restore_log=$1
|
||||
>&2 echo "processing restore log..."
|
||||
while read line; do
|
||||
if echo $line | grep -q "^[[:space:]]*Installing"; then
|
||||
l=$(echo $line | xargs)
|
||||
l=${l#Installing }
|
||||
l=${l%.}
|
||||
echo $l
|
||||
fi
|
||||
done < $restore_log
|
||||
}
|
||||
|
||||
function prefetch_deps() {
|
||||
processed_log=$1
|
||||
>&2 echo "prefetching deps..."
|
||||
while read line; do
|
||||
name=$(echo $line | cut -d' ' -f1)
|
||||
>&2 echo "prefetching '$name' version: $version"
|
||||
version=$(echo $line | cut -d' ' -f2)
|
||||
hash=$(nix-prefetch-url "$URLBASE/$name/$version" 2>/dev/null)
|
||||
echo "$name $version $hash"
|
||||
done < $processed_log
|
||||
}
|
||||
|
||||
function generate_deps_expression() {
|
||||
packages=$1
|
||||
>&2 echo "generating deps nix-expression..."
|
||||
echo $DEPS_HEADER
|
||||
while read line; do
|
||||
name=$(echo $line | cut -d' ' -f1)
|
||||
version=$(echo $line | cut -d' ' -f2)
|
||||
hash=$(echo $line | cut -d' ' -f3)
|
||||
printf "$DEPS_TEMPLATE" $name $version $hash
|
||||
done < $packages
|
||||
echo $DEPS_FOOTER
|
||||
}
|
||||
|
||||
function main() {
|
||||
checkout_path=$1
|
||||
tmpdir=$(mktemp -d)
|
||||
generate_restore_log $checkout_path > $tmpdir/restore.log
|
||||
process_restore_log $tmpdir/restore.log > $tmpdir/processed.log
|
||||
prefetch_deps $tmpdir/processed.log > $tmpdir/prefetched.log
|
||||
generate_deps_expression $tmpdir/prefetched.log > $tmpdir/deps.nix
|
||||
nixfmt $tmpdir/deps.nix
|
||||
cat $tmpdir/deps.nix
|
||||
rm -rf $tmpdir
|
||||
}
|
||||
|
||||
if [ ! -d "$1" ]; then
|
||||
>&2 echo "First argument must be a directory, the path to the package source checkout"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
main $@
|
|
@ -0,0 +1,100 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, makeWrapper
|
||||
, Nuget
|
||||
, dotnetCorePackages
|
||||
, openssl
|
||||
, zlib
|
||||
}:
|
||||
|
||||
let
|
||||
deps = import ./deps.nix { inherit fetchurl; };
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_3_1;
|
||||
dotnet-aspnetcore = dotnetCorePackages.aspnetcore_3_1;
|
||||
|
||||
nugetSource = stdenv.mkDerivation {
|
||||
pname = "${pname}-nuget-deps";
|
||||
inherit version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontInstall = true;
|
||||
|
||||
nativeBuildInputs = [ Nuget ];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
mkdir -p $out/lib
|
||||
|
||||
nuget sources Disable -Name "nuget.org"
|
||||
for package in ${toString deps}; do
|
||||
nuget add $package -Source $out/lib
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
pname = "WasabiBackend";
|
||||
version = "1.1.11.1";
|
||||
|
||||
projectName = "WalletWasabi.Backend";
|
||||
projectConfiguration = "Release";
|
||||
projectRuntime = "linux-x64";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zkSNACKs";
|
||||
repo = "WalletWasabi";
|
||||
rev = "v${version}";
|
||||
sha256 = "0kxww8ywhld00b0qsv5jh5s19jqpahnb9mvshmjnp3cb840j12a7";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
Nuget
|
||||
dotnet-sdk
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||
export DOTNET_ROOT="${dotnet-sdk}/bin"
|
||||
|
||||
nuget sources Disable -Name "nuget.org"
|
||||
|
||||
dotnet restore \
|
||||
--source ${nugetSource}/lib \
|
||||
--runtime ${projectRuntime} \
|
||||
${projectName}
|
||||
|
||||
dotnet publish \
|
||||
--no-restore \
|
||||
--runtime ${projectRuntime} \
|
||||
--configuration ${projectConfiguration} \
|
||||
${projectName}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r ${projectName}/bin/${projectConfiguration}/netcoreapp3.1/${projectRuntime}/publish $out/lib
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/lib/WalletWasabi.Backend $out/bin/${pname} \
|
||||
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl zlib ]} \
|
||||
--run "cd $out/lib"
|
||||
'';
|
||||
|
||||
# If we don't disable stripping the executable fails to start with segfault
|
||||
dontStrip = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Backend for the Wasabi Wallet";
|
||||
homepage = "https://wasabiwallet.io/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ mmahut ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,951 @@
|
|||
{ fetchurl }:
|
||||
let
|
||||
nugetUrlBase = "https://www.nuget.org/api/v2/package";
|
||||
fetchNuGet = { name, version, sha256 }:
|
||||
fetchurl {
|
||||
inherit sha256;
|
||||
url = "${nugetUrlBase}/${name}/${version}";
|
||||
};
|
||||
in [
|
||||
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XmlSerializer";
|
||||
version = "4.0.11";
|
||||
sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Overlapped";
|
||||
version = "4.0.1";
|
||||
sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Principal";
|
||||
version = "4.0.1";
|
||||
sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Dynamic.Runtime";
|
||||
version = "4.0.11";
|
||||
sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Private.DataContractSerialization";
|
||||
version = "4.1.1";
|
||||
sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Win32.Registry";
|
||||
version = "4.0.0";
|
||||
sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit.Lightweight";
|
||||
version = "4.0.1";
|
||||
sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit";
|
||||
version = "4.0.1";
|
||||
sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit.ILGeneration";
|
||||
version = "4.0.1";
|
||||
sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.DiagnosticSource";
|
||||
version = "4.0.0";
|
||||
sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Globalization.Extensions";
|
||||
version = "4.0.1";
|
||||
sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.Cng";
|
||||
version = "4.2.0";
|
||||
sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.OpenSsl";
|
||||
version = "4.0.0";
|
||||
sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.Csp";
|
||||
version = "4.0.0";
|
||||
sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.native.System.Net.Http";
|
||||
version = "4.0.1";
|
||||
sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Tasks.Extensions";
|
||||
version = "4.0.0";
|
||||
sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.native.System.IO.Compression";
|
||||
version = "4.1.0";
|
||||
sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.FileProviders.Physical";
|
||||
version = "2.0.0";
|
||||
sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
|
||||
version = "2.0.2";
|
||||
sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.App";
|
||||
version = "2.0.5";
|
||||
sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
|
||||
version = "2.0.2";
|
||||
sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "NuGet.Frameworks";
|
||||
version = "4.0.0";
|
||||
sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.native.System";
|
||||
version = "4.0.0";
|
||||
sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Buffers";
|
||||
version = "4.0.0";
|
||||
sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Build.Runtime";
|
||||
version = "15.3.409";
|
||||
sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Newtonsoft.Json";
|
||||
version = "10.0.1";
|
||||
sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.FileSystemGlobbing";
|
||||
version = "2.0.0";
|
||||
sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.native.System.Security.Cryptography";
|
||||
version = "4.0.0";
|
||||
sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.FileProviders.Abstractions";
|
||||
version = "2.0.0";
|
||||
sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Targets";
|
||||
version = "1.0.1";
|
||||
sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Platforms";
|
||||
version = "2.0.1";
|
||||
sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.DotNetHostPolicy";
|
||||
version = "2.0.5";
|
||||
sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "NETStandard.Library";
|
||||
version = "2.0.1";
|
||||
sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Globalization.Extensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Serialization.Primitives";
|
||||
version = "4.3.0";
|
||||
sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Numerics";
|
||||
version = "4.3.0";
|
||||
sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Serialization.Formatters";
|
||||
version = "4.3.0";
|
||||
sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XmlDocument";
|
||||
version = "4.3.0";
|
||||
sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections";
|
||||
version = "4.3.0";
|
||||
sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Debug";
|
||||
version = "4.3.0";
|
||||
sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Resources.ResourceManager";
|
||||
version = "4.3.0";
|
||||
sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Extensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Handles";
|
||||
version = "4.3.0";
|
||||
sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.Encoding.Extensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Globalization";
|
||||
version = "4.3.0";
|
||||
sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Linq";
|
||||
version = "4.3.0";
|
||||
sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.Encoding";
|
||||
version = "4.3.0";
|
||||
sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.ObjectModel";
|
||||
version = "4.3.0";
|
||||
sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.DotNetAppHost";
|
||||
version = "2.0.5";
|
||||
sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.CompilerServices.Unsafe";
|
||||
version = "4.4.0";
|
||||
sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading";
|
||||
version = "4.3.0";
|
||||
sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.CSharp";
|
||||
version = "4.3.0";
|
||||
sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.Pipes";
|
||||
version = "4.0.0";
|
||||
sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.RegularExpressions";
|
||||
version = "4.3.0";
|
||||
sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection";
|
||||
version = "4.3.0";
|
||||
sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO";
|
||||
version = "4.3.0";
|
||||
sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XDocument";
|
||||
version = "4.3.0";
|
||||
sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Tasks";
|
||||
version = "4.3.0";
|
||||
sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.ComponentModel.TypeConverter";
|
||||
version = "4.3.0";
|
||||
sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Extensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Dynamic.Runtime";
|
||||
version = "4.3.0";
|
||||
sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.ReaderWriter";
|
||||
version = "4.3.0";
|
||||
sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Linq.Expressions";
|
||||
version = "4.3.0";
|
||||
sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime";
|
||||
version = "4.3.0";
|
||||
sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "NETStandard.Library";
|
||||
version = "1.6.0";
|
||||
sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Build.Framework";
|
||||
version = "15.3.409";
|
||||
sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Build.Tasks.Core";
|
||||
version = "15.3.409";
|
||||
sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Build.Utilities.Core";
|
||||
version = "15.3.409";
|
||||
sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.Encoding.CodePages";
|
||||
version = "4.0.1";
|
||||
sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Build";
|
||||
version = "15.3.409";
|
||||
sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Tasks.Dataflow";
|
||||
version = "4.6.0";
|
||||
sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.Primitives";
|
||||
version = "2.0.0";
|
||||
sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.DotNetHostResolver";
|
||||
version = "2.0.5";
|
||||
sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Platforms";
|
||||
version = "1.1.0";
|
||||
sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Targets";
|
||||
version = "1.1.0";
|
||||
sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.TypeExtensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Primitives";
|
||||
version = "4.3.0";
|
||||
sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.InteropServices";
|
||||
version = "4.3.0";
|
||||
sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Tools";
|
||||
version = "4.3.0";
|
||||
sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.ComponentModel.Primitives";
|
||||
version = "4.3.0";
|
||||
sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.ComponentModel";
|
||||
version = "4.3.0";
|
||||
sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections.NonGeneric";
|
||||
version = "4.3.0";
|
||||
sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections.Specialized";
|
||||
version = "4.3.0";
|
||||
sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit.ILGeneration";
|
||||
version = "4.3.0";
|
||||
sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit";
|
||||
version = "4.3.0";
|
||||
sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.FileSystem.Primitives";
|
||||
version = "4.3.0";
|
||||
sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Tasks.Extensions";
|
||||
version = "4.3.0";
|
||||
sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.FileSystem";
|
||||
version = "4.3.0";
|
||||
sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Emit.Lightweight";
|
||||
version = "4.3.0";
|
||||
sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.AppContext";
|
||||
version = "4.1.0";
|
||||
sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.ObjectModel";
|
||||
version = "4.0.12";
|
||||
sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections.Concurrent";
|
||||
version = "4.0.12";
|
||||
sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.FileSystem.Primitives";
|
||||
version = "4.0.1";
|
||||
sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Win32.Primitives";
|
||||
version = "4.0.1";
|
||||
sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Tracing";
|
||||
version = "4.1.0";
|
||||
sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Net.Sockets";
|
||||
version = "4.1.0";
|
||||
sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Timer";
|
||||
version = "4.0.1";
|
||||
sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Platforms";
|
||||
version = "1.0.1";
|
||||
sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Globalization.Calendars";
|
||||
version = "4.0.1";
|
||||
sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.Encoding";
|
||||
version = "4.0.0";
|
||||
sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Primitives";
|
||||
version = "4.0.1";
|
||||
sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Tools";
|
||||
version = "4.0.1";
|
||||
sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Console";
|
||||
version = "4.0.0";
|
||||
sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Handles";
|
||||
version = "4.0.1";
|
||||
sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.Primitives";
|
||||
version = "4.0.0";
|
||||
sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Debug";
|
||||
version = "4.0.11";
|
||||
sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections";
|
||||
version = "4.0.11";
|
||||
sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Extensions";
|
||||
version = "4.0.1";
|
||||
sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.FileSystem";
|
||||
version = "4.0.1";
|
||||
sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Numerics";
|
||||
version = "4.0.1";
|
||||
sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.Compression.ZipFile";
|
||||
version = "4.0.1";
|
||||
sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Resources.ResourceManager";
|
||||
version = "4.0.1";
|
||||
sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.Algorithms";
|
||||
version = "4.2.0";
|
||||
sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Linq";
|
||||
version = "4.1.0";
|
||||
sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.Encoding";
|
||||
version = "4.0.11";
|
||||
sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.InteropServices.RuntimeInformation";
|
||||
version = "4.0.0";
|
||||
sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO.Compression";
|
||||
version = "4.1.0";
|
||||
sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.Encoding.Extensions";
|
||||
version = "4.0.11";
|
||||
sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Globalization";
|
||||
version = "4.0.11";
|
||||
sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Text.RegularExpressions";
|
||||
version = "4.1.0";
|
||||
sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection";
|
||||
version = "4.1.0";
|
||||
sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XDocument";
|
||||
version = "4.0.11";
|
||||
sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading";
|
||||
version = "4.0.11";
|
||||
sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Tasks";
|
||||
version = "4.0.11";
|
||||
sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Net.Primitives";
|
||||
version = "4.0.11";
|
||||
sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.IO";
|
||||
version = "4.1.0";
|
||||
sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Extensions";
|
||||
version = "4.1.0";
|
||||
sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Cryptography.X509Certificates";
|
||||
version = "4.1.0";
|
||||
sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Net.Http";
|
||||
version = "4.1.0";
|
||||
sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.ReaderWriter";
|
||||
version = "4.0.11";
|
||||
sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.InteropServices";
|
||||
version = "4.1.0";
|
||||
sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Linq.Expressions";
|
||||
version = "4.1.0";
|
||||
sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime";
|
||||
version = "4.1.0";
|
||||
sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.Thread";
|
||||
version = "4.0.0";
|
||||
sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.TraceSource";
|
||||
version = "4.0.0";
|
||||
sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.TypeExtensions";
|
||||
version = "4.1.0";
|
||||
sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Serialization.Primitives";
|
||||
version = "4.1.1";
|
||||
sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XmlDocument";
|
||||
version = "4.0.1";
|
||||
sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
|
||||
version = "3.1.2";
|
||||
sha256 = "19wfh9yg4n2khbl7pvf6ngx95m5p8lw4l9y935pv7nh4xgwk02p9";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.App.Runtime.linux-x64";
|
||||
version = "3.1.2";
|
||||
sha256 = "0a332ia5pabnz7mdfc99a5hlc7drnwzlc7cj9b5c3an6dq636p66";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections.NonGeneric";
|
||||
version = "4.0.1";
|
||||
sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Resources.Reader";
|
||||
version = "4.0.0";
|
||||
sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XPath.XmlDocument";
|
||||
version = "4.0.1";
|
||||
sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.NETCore.Platforms";
|
||||
version = "3.1.0";
|
||||
sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.CSharp";
|
||||
version = "4.7.0";
|
||||
sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Xml.XPath";
|
||||
version = "4.0.1";
|
||||
sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.Logging.Abstractions";
|
||||
version = "1.0.0";
|
||||
sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.Principal.Windows";
|
||||
version = "4.7.0";
|
||||
sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Security.AccessControl";
|
||||
version = "4.7.0";
|
||||
sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.AspNetCore.JsonPatch";
|
||||
version = "3.1.1";
|
||||
sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Newtonsoft.Json";
|
||||
version = "12.0.2";
|
||||
sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Resources.Writer";
|
||||
version = "4.0.0";
|
||||
sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Reflection.Metadata";
|
||||
version = "1.3.0";
|
||||
sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Collections.Immutable";
|
||||
version = "1.2.0";
|
||||
sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Linq.Parallel";
|
||||
version = "4.0.1";
|
||||
sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Process";
|
||||
version = "4.1.0";
|
||||
sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Serialization.Xml";
|
||||
version = "4.1.1";
|
||||
sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Threading.ThreadPool";
|
||||
version = "4.0.10";
|
||||
sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Runtime.Loader";
|
||||
version = "4.0.0";
|
||||
sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.Contracts";
|
||||
version = "4.0.1";
|
||||
sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Diagnostics.FileVersionInfo";
|
||||
version = "4.0.0";
|
||||
sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "NBitcoin.Secp256k1";
|
||||
version = "1.0.1";
|
||||
sha256 = "0j3a8iamqh06b7am6k8gh6d41zvrnmsif3525bw742jw5byjypdl";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
|
||||
version = "3.1.1";
|
||||
sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Newtonsoft.Json.Bson";
|
||||
version = "1.0.2";
|
||||
sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Win32.Registry";
|
||||
version = "4.7.0";
|
||||
sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.OpenApi";
|
||||
version = "1.1.4";
|
||||
sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "NBitcoin";
|
||||
version = "5.0.29";
|
||||
sha256 = "0a6jvdvnf5h9j6c3ii3pdnkq79shmcm1hf6anaqcwvi3gq19chak";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Swashbuckle.AspNetCore.SwaggerUI";
|
||||
version = "5.0.0";
|
||||
sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Swashbuckle.AspNetCore";
|
||||
version = "5.0.0";
|
||||
sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Swashbuckle.AspNetCore.SwaggerGen";
|
||||
version = "5.0.0";
|
||||
sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Microsoft.Extensions.ApiDescription.Server";
|
||||
version = "3.0.0";
|
||||
sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "Swashbuckle.AspNetCore.Swagger";
|
||||
version = "5.0.0";
|
||||
sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.unix.System.Private.Uri";
|
||||
version = "4.0.1";
|
||||
sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Text.Encoding";
|
||||
version = "4.0.11";
|
||||
sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Threading.Tasks";
|
||||
version = "4.0.11";
|
||||
sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "System.Private.Uri";
|
||||
version = "4.0.1";
|
||||
sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Diagnostics.Tracing";
|
||||
version = "4.1.0";
|
||||
sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.IO";
|
||||
version = "4.1.0";
|
||||
sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Runtime.Handles";
|
||||
version = "4.0.1";
|
||||
sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Reflection.Primitives";
|
||||
version = "4.0.1";
|
||||
sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Runtime";
|
||||
version = "4.1.0";
|
||||
sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Resources.ResourceManager";
|
||||
version = "4.0.1";
|
||||
sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Globalization";
|
||||
version = "4.0.11";
|
||||
sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Collections";
|
||||
version = "4.0.11";
|
||||
sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.unix.System.Diagnostics.Debug";
|
||||
version = "4.0.11";
|
||||
sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.unix.System.Runtime.Extensions";
|
||||
version = "4.1.0";
|
||||
sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Reflection";
|
||||
version = "4.1.0";
|
||||
sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
|
||||
})
|
||||
(fetchNuGet {
|
||||
name = "runtime.any.System.Runtime.InteropServices";
|
||||
version = "4.1.0";
|
||||
sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
|
||||
})
|
||||
]
|
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
|||
desktopName = "Wasabi";
|
||||
genericName = "Bitcoin wallet";
|
||||
comment = meta.description;
|
||||
categories = "Application;Network;Utility;";
|
||||
categories = "Network;Utility;";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||
comment = "Integrated Development Environment";
|
||||
desktopName = "Eclipse IDE";
|
||||
genericName = "Integrated Development Environment";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -1,25 +1,35 @@
|
|||
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||
{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
|
||||
|
||||
buildGoPackage rec {
|
||||
buildGoPackage rec {
|
||||
pname = "micro";
|
||||
version = "2.0.3";
|
||||
version = "2.0.5";
|
||||
|
||||
goPackagePath = "github.com/zyedidia/micro";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zyedidia";
|
||||
repo = "micro";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z";
|
||||
sha256 = "12fyyax1mr0n82s5yhmk90iyyzbh32rppkkpj37c25pal73czdhc";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
subPackages = [ "cmd/micro" ];
|
||||
|
||||
buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ];
|
||||
buildFlagsArray = let t = "${goPackagePath}/internal/util"; in ''
|
||||
-ldflags=
|
||||
-X ${t}.Version=${version}
|
||||
-X ${t}.CommitHash=${src.rev}
|
||||
'';
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
postInstall = ''
|
||||
installManPage $src/assets/packaging/micro.1
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://micro-editor.github.io";
|
||||
description = "Modern and intuitive terminal-based text editor";
|
||||
|
|
|
@ -203,8 +203,8 @@
|
|||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/zyedidia/clipboard";
|
||||
rev = "241f98e9b197";
|
||||
sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi";
|
||||
rev = "7c45b8673834";
|
||||
sha256 = "0ag36wd3830d4s6fvpj05v6f662c5rymgdydsj2gq8aaqplfb0v4";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
@ -257,8 +257,8 @@
|
|||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/zyedidia/tcell";
|
||||
rev = "v1.4.4";
|
||||
sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi";
|
||||
rev = "v1.4.7";
|
||||
sha256 = "1ddaznp0haz35mxfjjh2fmamdrlk1igqg65fz22l5r6vvhcdsfxa";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
|
@ -10,7 +10,7 @@ let
|
|||
comment = "Integrated Development Environment";
|
||||
desktopName = "Apache NetBeans IDE";
|
||||
genericName = "Integrated Development Environment";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
icon = "netbeans";
|
||||
};
|
||||
in
|
||||
|
|
|
@ -104,6 +104,8 @@ in stdenv.mkDerivation rec {
|
|||
++ stdenv.lib.optionals luaSupport [
|
||||
"--with-lua-prefix=${lua}"
|
||||
"--enable-luainterp"
|
||||
] ++ stdenv.lib.optional lua.pkgs.isLuaJIT [
|
||||
"--with-luajit"
|
||||
]
|
||||
++ stdenv.lib.optionals pythonSupport [
|
||||
"--enable-python${if isPython3 then "3" else ""}interp=yes"
|
||||
|
|
|
@ -10,7 +10,7 @@ let
|
|||
[ qscintilla-qt5 gdal jinja2 numpy psycopg2
|
||||
chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
|
||||
in mkDerivation rec {
|
||||
version = "3.10.4";
|
||||
version = "3.10.7";
|
||||
pname = "qgis";
|
||||
name = "${pname}-unwrapped-${version}";
|
||||
|
||||
|
@ -18,7 +18,7 @@ in mkDerivation rec {
|
|||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings ["."] ["_"] version}";
|
||||
sha256 = "0d1rsgjgnnq6jgms5bgppz8lkh4518nf90fk0qvxajdfi9j4jn12";
|
||||
sha256 = "0z593n5g3zwhlzhs0z7nlpblz6z2rl3y7y3j1wf1rdx76i8p3qgf";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
|
|
@ -1,25 +1,22 @@
|
|||
{ stdenv, rustPlatform , fetchFromGitHub, Security }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "whitebox_tools";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jblindsay";
|
||||
repo = "whitebox-tools";
|
||||
rev = "v${version}";
|
||||
sha256 = "0zi32d0wrbl2763dcllv2g0liwacsfiza5lkx52620prjjbhby8i";
|
||||
sha256 = "0c9jmfjz6ys65y65zlllv9xvaaavr9jpqc1dc217iywhj07j8k2v";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
||||
|
||||
cargoSha256 = "13k21akyfqgamywj39bw73sldby1s02vyvxfglxbaqq1x96xcy4i";
|
||||
|
||||
# failures: structures::polyline::test::test_polyline_split
|
||||
doCheck = false;
|
||||
cargoSha256 = "05w2jimmygg7dc93i8bpjpjc5yj5xfpfkjnbbgw2sq4kh06r5ii4";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An advanced geospatial data analysis platform";
|
||||
homepage = "http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html";
|
||||
homepage = "https://jblindsay.github.io/ghrg/WhiteboxTools/index.html";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.mpickering ];
|
||||
platforms = platforms.all;
|
||||
|
|
|
@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
|
|||
icon = "avocode";
|
||||
desktopName = "Avocode";
|
||||
genericName = "Design Inspector";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
comment = "The bridge between designers and developers";
|
||||
};
|
||||
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "drawio";
|
||||
version = "13.2.2";
|
||||
version = "13.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
|
||||
sha256 = "0npqw4ih047d9s1yyllcvcih2r61fgji4rvzsw88r02mj5q5rgdn";
|
||||
sha256 = "0zvxmqqbgfxad1n9pa4h99l8hys486wziw5yyndxbv1v80p55p0p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
{ mkDerivation
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, makeDesktopItem
|
||||
, qmake
|
||||
, qtbase
|
||||
, libpng
|
||||
, giflib
|
||||
, impy
|
||||
}:
|
||||
|
||||
let
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "EvilPixie";
|
||||
desktopName = "EvilPixie";
|
||||
exec = "evilpixie %F";
|
||||
icon = "evilpixie";
|
||||
genericName = "Image Editor";
|
||||
categories = "Graphics;2DGraphics;RasterGraphics;";
|
||||
mimeType = "image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/x-pcx;image/x-targa;image/x-tga;";
|
||||
};
|
||||
|
||||
in mkDerivation rec {
|
||||
pname = "evilpixie";
|
||||
version = "0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bcampbell";
|
||||
repo = "evilpixie";
|
||||
rev = "v${version}";
|
||||
sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
qmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
libpng
|
||||
giflib
|
||||
impy
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
ln -s ${desktopItem}/share/applications $out/share
|
||||
install -Dm 444 icon_128x128.png $out/share/icons/hicolor/128x128/apps/evilpixie.png
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Pixel-oriented paint program, modelled on Deluxe Paint";
|
||||
homepage = "http://evilpixie.scumways.com/";
|
||||
downloadPage = "https://github.com/bcampbell/evilpixie/releases";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ fgaz ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||
desktopName = "SwingSane";
|
||||
genericName = "Scan from local or remote SANE servers";
|
||||
comment = meta.description;
|
||||
categories = "Office;Application;";
|
||||
categories = "Office;";
|
||||
};
|
||||
|
||||
in ''
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
# Generated by debian-patches.sh from debian-patches.txt
|
||||
let
|
||||
prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
|
||||
in
|
||||
[
|
||||
{
|
||||
url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
|
||||
sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
|
||||
}
|
||||
{
|
||||
url = "${prefix}/40_algorithm_include";
|
||||
sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
|
||||
}
|
||||
{
|
||||
url = "${prefix}/50_update_imagemagick_version_parser";
|
||||
sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
|
||||
}
|
||||
{
|
||||
url = "${prefix}/remove-icon-suffix";
|
||||
sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
|
||||
}
|
||||
{
|
||||
url = "${prefix}/45_fix_gcc4";
|
||||
sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
|
||||
}
|
||||
{
|
||||
url = "${prefix}/55_fix_contstuctor_call";
|
||||
sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
|
||||
}
|
||||
]
|
|
@ -1,7 +0,0 @@
|
|||
xaralx/0.7r1785-5
|
||||
30_gtk_wxwidgets_symbol_clash
|
||||
40_algorithm_include
|
||||
50_update_imagemagick_version_parser
|
||||
remove-icon-suffix
|
||||
45_fix_gcc4
|
||||
55_fix_contstuctor_call
|
|
@ -1,22 +0,0 @@
|
|||
{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
|
||||
, wxGTK, gtk2, perl, zip}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "xaralx-0.7r1785";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2";
|
||||
sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
|
||||
buildInputs = [ wxGTK gtk2 libxml2 freetype pango ];
|
||||
|
||||
configureFlags = [ "--disable-svnversion" ];
|
||||
|
||||
patches = map fetchurl (import ./debian-patches.nix);
|
||||
|
||||
prePatch = "patchShebangs Scripts";
|
||||
|
||||
meta.broken = true;
|
||||
}
|
|
@ -89,6 +89,7 @@ let
|
|||
kaddressbook = callPackage ./kaddressbook.nix {};
|
||||
kalarm = callPackage ./kalarm.nix {};
|
||||
kalarmcal = callPackage ./kalarmcal.nix {};
|
||||
kapptemplate = callPackage ./kapptemplate.nix { };
|
||||
kate = callPackage ./kate.nix {};
|
||||
kbreakout = callPackage ./kbreakout.nix {};
|
||||
kcachegrind = callPackage ./kcachegrind.nix {};
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
, fetchurl
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
, qtbase
|
||||
, kactivities
|
||||
}:
|
||||
mkDerivation {
|
||||
|
||||
name = "kapptemplate";
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules cmake ];
|
||||
|
||||
buildInputs = [ kactivities qtbase ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "KDE App Code Template Generator";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
|
||||
maintainers = [ maintainers.shamilton ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
|
|||
desktopName = "Airtame";
|
||||
icon = name;
|
||||
genericName = comment;
|
||||
categories = "Application;Network;";
|
||||
categories = "Network;";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -90,8 +90,6 @@ rustPlatform.buildRustPackage rec {
|
|||
--replace xdg-open ${xdg_utils}/bin/xdg-open
|
||||
'';
|
||||
|
||||
postBuild = lib.optionalString stdenv.isDarwin "make app";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -100,7 +98,8 @@ rustPlatform.buildRustPackage rec {
|
|||
'' + (
|
||||
if stdenv.isDarwin then ''
|
||||
mkdir $out/Applications
|
||||
cp -r $releaseDir/osx/Alacritty.app $out/Applications/Alacritty.app
|
||||
cp -r extra/osx/Alacritty.app $out/Applications
|
||||
ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS
|
||||
'' else ''
|
||||
install -D extra/linux/Alacritty.desktop -t $out/share/applications/
|
||||
install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ stdenv, python3, fetchFromGitHub }:
|
||||
|
||||
with python3.pkgs; buildPythonApplication rec {
|
||||
version = "4.3";
|
||||
version = "4.4";
|
||||
pname = "buku";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jarun";
|
||||
repo = "buku";
|
||||
rev = "v${version}";
|
||||
sha256 = "1cq508ymak3g5fhi1n4bdiiqkc86s2l3k4dvzw842vv2x0441cac";
|
||||
sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
@ -38,6 +38,7 @@ with python3.pkgs; buildPythonApplication rec {
|
|||
click
|
||||
html5lib
|
||||
vcrpy
|
||||
toml
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake
|
||||
, curl, ncurses, ocl-icd, opencl-headers, xorg, jansson }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
version = "3.7.2";
|
||||
pname = "cgminer";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/ckolivas/cgminer.git";
|
||||
rev = "refs/tags/v3.7.2";
|
||||
sha256 = "1xfzx91dpwjj1vmhas3v9ybs0p2i74lrhinijmpav15acfggm9fq";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [
|
||||
autoconf automake libtool curl ncurses ocl-icd opencl-headers
|
||||
xorg.libX11 xorg.libXext xorg.libXinerama jansson
|
||||
];
|
||||
configureScript = "./autogen.sh";
|
||||
configureFlags = [ "--enable-scrypt" "--enable-opencl" ];
|
||||
NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
|
||||
|
||||
postBuild = ''
|
||||
gcc api-example.c -o cgminer-api
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
cp cgminer-api $out/bin/
|
||||
chmod 444 $out/bin/*.cl
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "CPU/GPU miner in c for bitcoin";
|
||||
longDescription= ''
|
||||
This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
|
||||
monitoring, (over)clocking and fanspeed support for bitcoin and derivative
|
||||
coins. Do not use on multiple block chains at the same time!
|
||||
'';
|
||||
homepage = "https://github.com/ckolivas/cgminer";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.offline ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
hydraPlatforms = [];
|
||||
};
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dbeaver-ce";
|
||||
version = "7.1.0";
|
||||
version = "7.1.1";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "dbeaver";
|
||||
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
|||
desktopName = "dbeaver";
|
||||
comment = "SQL Integrated Development Environment";
|
||||
genericName = "SQL Integrated Development Environment";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
||||
sha256 = "1q3f5bghm3jw5c7c62ivf32fldjqhmj1a0qlwgqjxyhmfcig0rnb";
|
||||
sha256 = "11c9jvpjg72xkwnni4clwg3inig77s7jz3ik52gk52m6f09brxhs";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
|||
desktopName = "GanttProject";
|
||||
genericName = "Shedule and manage projects";
|
||||
comment = meta.description;
|
||||
categories = "Office;Application;";
|
||||
categories = "Office;";
|
||||
};
|
||||
|
||||
javaOptions = [
|
||||
|
|
|
@ -12,7 +12,7 @@ let
|
|||
desktopName = "GoldenCheetah";
|
||||
genericName = "GoldenCheetah";
|
||||
comment = "Performance software for cyclists, runners and triathletes";
|
||||
categories = "Application;Utility;";
|
||||
categories = "Utility;";
|
||||
};
|
||||
in mkDerivation rec {
|
||||
pname = "golden-cheetah";
|
||||
|
|
|
@ -15,15 +15,7 @@ stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [ readline ncurses gettext ];
|
||||
|
||||
configurePhase = ''
|
||||
autoreconf -fvi
|
||||
./configure
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin/
|
||||
mv src/hstr $out/bin/
|
||||
'';
|
||||
configureFlags = [ "--prefix=$(out)" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/dvorka/hstr";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "hugo";
|
||||
version = "0.72.0";
|
||||
version = "0.73.0";
|
||||
|
||||
buildInputs = [ libsass ];
|
||||
|
||||
|
@ -10,7 +10,7 @@ buildGoModule rec {
|
|||
owner = "gohugoio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "05parzx0wm51z4qkvh4k096ykgiyr9i5xy55c0g99j4y96drcybb";
|
||||
sha256 = "0qhv8kdv5k1xfk6106lxvsz7f92k7w6wk05ngz7qxbkb6zkcnshw";
|
||||
};
|
||||
|
||||
golibsass = fetchFromGitHub {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.3.1)
|
||||
activesupport (6.0.3.2)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
|
@ -15,16 +15,16 @@ GEM
|
|||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.12.2)
|
||||
ffi (1.13.1)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
html-pipeline (2.12.3)
|
||||
html-pipeline (2.13.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.2)
|
||||
i18n (1.8.3)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.1.0)
|
||||
jekyll (4.1.1)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
|
@ -76,9 +76,9 @@ GEM
|
|||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.4)
|
||||
rouge (3.19.0)
|
||||
rouge (3.20.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.3.0)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1l29n9n38c9lpy5smh26r7fy7jp2bpjqlzhxgsr79cv7xpwlrbhs";
|
||||
sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.3.1";
|
||||
version = "6.0.3.2";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
|
@ -67,10 +67,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
|
||||
sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.2";
|
||||
version = "1.13.1";
|
||||
};
|
||||
forwardable-extended = {
|
||||
groups = ["default"];
|
||||
|
@ -98,10 +98,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
|
||||
sha256 = "01snn9z3c2p17d9wfczkdkml6mdffah6fpyzgs9mdskb14m68rq6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.12.3";
|
||||
version = "2.13.0";
|
||||
};
|
||||
"http_parser.rb" = {
|
||||
groups = ["default"];
|
||||
|
@ -119,10 +119,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
|
||||
sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
};
|
||||
jekyll = {
|
||||
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
|
||||
|
@ -130,10 +130,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0v01g9cwn4v7rnpsl9yvscjzvah3p4xwh03zp37zxkvw5kv004n8";
|
||||
sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.0";
|
||||
version = "4.1.1";
|
||||
};
|
||||
jekyll-avatar = {
|
||||
dependencies = ["jekyll"];
|
||||
|
@ -353,10 +353,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
|
||||
sha256 = "1r5npy9a95qh5v74lw7ir3nhaq4xrzyhfdixd7c5xy295i92nnic";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.19.0";
|
||||
version = "3.20.0";
|
||||
};
|
||||
safe_yaml = {
|
||||
groups = ["default"];
|
||||
|
@ -374,10 +374,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
|
||||
sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
};
|
||||
terminal-table = {
|
||||
dependencies = ["unicode-display_width"];
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.3.1)
|
||||
activesupport (6.0.3.2)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
|
@ -11,7 +11,7 @@ GEM
|
|||
public_suffix (>= 2.0.2, < 5.0)
|
||||
classifier-reborn (2.2.0)
|
||||
fast-stemmer (~> 1.0)
|
||||
coderay (1.1.2)
|
||||
coderay (1.1.3)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
|
@ -26,16 +26,16 @@ GEM
|
|||
faraday (1.0.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
fast-stemmer (1.0.2)
|
||||
ffi (1.12.2)
|
||||
ffi (1.13.1)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
html-pipeline (2.12.3)
|
||||
html-pipeline (2.13.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.2)
|
||||
i18n (1.8.3)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.1.0)
|
||||
jekyll (4.1.1)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
|
@ -55,7 +55,7 @@ GEM
|
|||
jekyll-coffeescript (2.0.0)
|
||||
coffee-script (~> 2.2)
|
||||
coffee-script-source (~> 1.12)
|
||||
jekyll-feed (0.13.0)
|
||||
jekyll-feed (0.14.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-gist (1.5.0)
|
||||
octokit (~> 4.2)
|
||||
|
@ -110,9 +110,9 @@ GEM
|
|||
ffi (~> 1.0)
|
||||
rdoc (6.2.1)
|
||||
rexml (3.2.4)
|
||||
rouge (3.19.0)
|
||||
rouge (3.20.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.3.0)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1l29n9n38c9lpy5smh26r7fy7jp2bpjqlzhxgsr79cv7xpwlrbhs";
|
||||
sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.3.1";
|
||||
version = "6.0.3.2";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
|
@ -49,10 +49,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
|
||||
sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.2";
|
||||
version = "1.1.3";
|
||||
};
|
||||
coffee-script = {
|
||||
dependencies = ["coffee-script-source" "execjs"];
|
||||
|
@ -164,10 +164,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
|
||||
sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.2";
|
||||
version = "1.13.1";
|
||||
};
|
||||
forwardable-extended = {
|
||||
groups = ["default"];
|
||||
|
@ -195,10 +195,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
|
||||
sha256 = "01snn9z3c2p17d9wfczkdkml6mdffah6fpyzgs9mdskb14m68rq6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.12.3";
|
||||
version = "2.13.0";
|
||||
};
|
||||
"http_parser.rb" = {
|
||||
groups = ["default"];
|
||||
|
@ -216,10 +216,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
|
||||
sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
};
|
||||
jekyll = {
|
||||
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
|
||||
|
@ -227,10 +227,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0v01g9cwn4v7rnpsl9yvscjzvah3p4xwh03zp37zxkvw5kv004n8";
|
||||
sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.0";
|
||||
version = "4.1.1";
|
||||
};
|
||||
jekyll-avatar = {
|
||||
dependencies = ["jekyll"];
|
||||
|
@ -260,10 +260,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1lx8nvkhd8l1wm3b6s506rycwbmpbzbsbjl65p21asjz6vbwf1ir";
|
||||
sha256 = "0fhbz5wc8cf60dwsbqcr49wygyk5qarpc7g77p6dlwq2r21nil5c";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.0";
|
||||
version = "0.14.0";
|
||||
};
|
||||
jekyll-gist = {
|
||||
dependencies = ["octokit"];
|
||||
|
@ -602,10 +602,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
|
||||
sha256 = "1r5npy9a95qh5v74lw7ir3nhaq4xrzyhfdixd7c5xy295i92nnic";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.19.0";
|
||||
version = "3.20.0";
|
||||
};
|
||||
safe_yaml = {
|
||||
groups = ["default"];
|
||||
|
@ -623,10 +623,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
|
||||
sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
};
|
||||
sawyer = {
|
||||
dependencies = ["addressable" "faraday"];
|
||||
|
|
|
@ -68,7 +68,7 @@ with builtins; buildDotnetPackage rec {
|
|||
icon = "keepass";
|
||||
desktopName = "Keepass";
|
||||
genericName = "Password manager";
|
||||
categories = "Application;Utility;";
|
||||
categories = "Utility;";
|
||||
mimeType = stdenv.lib.concatStringsSep ";" [
|
||||
"application/x-keepass2"
|
||||
""
|
||||
|
|
|
@ -22,6 +22,11 @@ python3.pkgs.buildPythonApplication rec {
|
|||
install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# see https://github.com/scheibler/khard/issues/263
|
||||
export COLUMNS=80
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/scheibler/khard";
|
||||
description = "Console carddav client";
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
|
||||
libxkbcommon, libXi, libXext, wayland-protocols, wayland,
|
||||
installShellFiles,
|
||||
which, dbus,
|
||||
dbus,
|
||||
Cocoa,
|
||||
CoreGraphics,
|
||||
Foundation,
|
||||
|
@ -20,14 +20,14 @@
|
|||
with python3Packages;
|
||||
buildPythonApplication rec {
|
||||
pname = "kitty";
|
||||
version = "0.17.4";
|
||||
version = "0.18.1";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kovidgoyal";
|
||||
repo = "kitty";
|
||||
rev = "v${version}";
|
||||
sha256 = "1rbyj84y8r6h7qd6w7cw58v2abspippignj458ihv2m26i4als2x";
|
||||
sha256 = "1g4mfgygyl143k0k6d3cb8b2l05ahiamlcqs1iqi66pc73cax4z6";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -50,7 +50,7 @@ buildPythonApplication rec {
|
|||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig which sphinx ncurses
|
||||
pkgconfig sphinx ncurses
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
imagemagick
|
||||
libicns # For the png2icns tool.
|
||||
|
@ -63,13 +63,6 @@ buildPythonApplication rec {
|
|||
|
||||
patches = [
|
||||
./fix-paths.patch
|
||||
] ++ stdenv.lib.optionals stdenv.isLinux [
|
||||
(substituteAll {
|
||||
src = ./library-paths.patch;
|
||||
libstartup_notification = "${libstartup_notification}/lib/libstartup-notification-1.so";
|
||||
libcanberra = "${libcanberra}/lib/libcanberra.so";
|
||||
libEGL = "${stdenv.lib.getLib libGL}/lib/libEGL.so.1";
|
||||
})
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
./no-lto.patch
|
||||
];
|
||||
|
@ -77,11 +70,23 @@ buildPythonApplication rec {
|
|||
# Causes build failure due to warning
|
||||
hardeningDisable = stdenv.lib.optional stdenv.isDarwin "strictoverflow";
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
buildPhase = if stdenv.isDarwin then ''
|
||||
${python.interpreter} setup.py kitty.app --update-check-interval=0
|
||||
make man
|
||||
'' else ''
|
||||
${python.interpreter} setup.py linux-package --update-check-interval=0
|
||||
${python.interpreter} setup.py linux-package \
|
||||
--update-check-interval=0 \
|
||||
--egl-library='${stdenv.lib.getLib libGL}/lib/libEGL.so.1' \
|
||||
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
|
||||
--canberra-library='${libcanberra}/lib/libcanberra.so'
|
||||
'';
|
||||
|
||||
checkInputs = [ pillow ];
|
||||
|
||||
checkPhase = ''
|
||||
${python.interpreter} test.py
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
@ -100,8 +105,6 @@ buildPythonApplication rec {
|
|||
wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
|
||||
runHook postInstall
|
||||
|
||||
# ZSH completions need to be invoked with `source`:
|
||||
# https://github.com/kovidgoyal/kitty/blob/8ceb941051b89b7c50850778634f0b6137aa5e6e/docs/index.rst#zsh
|
||||
mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
|
||||
"$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish"
|
||||
"$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash"
|
||||
|
@ -125,6 +128,7 @@ buildPythonApplication rec {
|
|||
homepage = "https://github.com/kovidgoyal/kitty";
|
||||
description = "A modern, hackable, featureful, OpenGL based terminal emulator";
|
||||
license = licenses.gpl3;
|
||||
changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
|
||||
platforms = platforms.darwin ++ platforms.linux;
|
||||
maintainers = with maintainers; [ tex rvolosatovs ma27 Luflosi ];
|
||||
};
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
--- a/glfw/egl_context.c
|
||||
+++ b/glfw/egl_context.c
|
||||
@@ -314,7 +314,7 @@ bool _glfwInitEGL(void)
|
||||
#elif defined(__CYGWIN__)
|
||||
"libEGL-1.so",
|
||||
#else
|
||||
- "libEGL.so.1",
|
||||
+ "@libEGL@",
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
--- a/kitty/desktop.c
|
||||
+++ b/kitty/desktop.c
|
||||
@@ -34,10 +34,7 @@ init_x11_startup_notification(PyObject UNUSED *self, PyObject *args) {
|
||||
done = true;
|
||||
|
||||
const char* libnames[] = {
|
||||
- "libstartup-notification-1.so",
|
||||
- // some installs are missing the .so symlink, so try the full name
|
||||
- "libstartup-notification-1.so.0",
|
||||
- "libstartup-notification-1.so.0.0.0",
|
||||
+ "@libstartup_notification@",
|
||||
NULL
|
||||
};
|
||||
for (int i = 0; libnames[i]; i++) {
|
||||
@@ -113,10 +110,7 @@ load_libcanberra(void) {
|
||||
if (done) return;
|
||||
done = true;
|
||||
const char* libnames[] = {
|
||||
- "libcanberra.so",
|
||||
- // some installs are missing the .so symlink, so try the full name
|
||||
- "libcanberra.so.0",
|
||||
- "libcanberra.so.0.2.5",
|
||||
+ "@libcanberra@",
|
||||
NULL
|
||||
};
|
||||
for (int i = 0; libnames[i]; i++) {
|
|
@ -1,6 +1,6 @@
|
|||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -277,10 +277,6 @@ def init_env(
|
||||
@@ -287,10 +287,6 @@ def init_env(
|
||||
cppflags += shlex.split(os.environ.get('CPPFLAGS', ''))
|
||||
cflags += shlex.split(os.environ.get('CFLAGS', ''))
|
||||
ldflags += shlex.split(os.environ.get('LDFLAGS', ''))
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "moolticute";
|
||||
version = "0.43.16";
|
||||
version = "0.43.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mooltipass";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1gx1hbxiilggwfw0jspyk2cw92r6qs9a8yqa8x1d2ndf493mjx9y";
|
||||
sha256 = "1rpkiyhy7z5zq0rmn0kj2kva57bnhkhvaplrlhfczv99h1kwsixg";
|
||||
};
|
||||
|
||||
outputs = [ "out" "udev" ];
|
||||
|
|
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||
desktopName = "PDFsam Basic";
|
||||
genericName = "PDF Split and Merge";
|
||||
mimeType = "application/pdf;";
|
||||
categories = "Office;Application;";
|
||||
categories = "Office;";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -46,4 +46,4 @@ stdenv.mkDerivation rec {
|
|||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ maintainers."1000101" ];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
|
|||
exec = "pgadmin3";
|
||||
icon = "pgAdmin3";
|
||||
type = "Application";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
mimeType = "text/html";
|
||||
};
|
||||
in ''
|
||||
|
|
|
@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
|
|||
comment = "G-code generator for 3D printers";
|
||||
desktopName = "PrusaSlicer";
|
||||
genericName = "3D printer tool";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
comment = "G-code generator for 3D printers";
|
||||
desktopName = "Slic3r";
|
||||
genericName = "3D printer tool";
|
||||
categories = "Application;Development;";
|
||||
categories = "Development;";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
|
|
|
@ -4,11 +4,12 @@
|
|||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "st-0.8.3";
|
||||
pname = "st";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.suckless.org/st/${name}.tar.gz";
|
||||
sha256 = "0ll5wbw1szs70wdf8zy1y2ig5mfbqw2w4ls8d64r8z3y4gdf76lk";
|
||||
url = "https://dl.suckless.org/st/${pname}-${version}.tar.gz";
|
||||
sha256 = "19j66fhckihbg30ypngvqc9bcva47mp379ch5vinasjdxgn3qbfl";
|
||||
};
|
||||
|
||||
inherit patches;
|
||||
|
|
|
@ -24,7 +24,7 @@ let
|
|||
icon = pname;
|
||||
comment = description;
|
||||
genericName = "Computer Aided (Interior) Design";
|
||||
categories = "Application;Graphics;2DGraphics;3DGraphics;";
|
||||
categories = "Graphics;2DGraphics;3DGraphics;";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
|
|
@ -20,7 +20,7 @@ let
|
|||
name = pname;
|
||||
comment = description;
|
||||
genericName = "Computer Aided (Interior) Design";
|
||||
categories = "Application;Graphics;2DGraphics;3DGraphics;";
|
||||
categories = "Graphics;2DGraphics;3DGraphics;";
|
||||
};
|
||||
|
||||
buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,28 @@
|
|||
{ stdenv, rustPlatform, fetchurl, pkgconfig, ncurses, openssl, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "asuka";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
|
||||
sha256 = "10hmsdwf2nrsmpycqa08vd31c6vhx7w5fhvv5a9f92sqp0lcavf0";
|
||||
};
|
||||
|
||||
cargoPatches = [ ./cargo-lock.patch ];
|
||||
|
||||
cargoSha256 = "0csj63x77nkdh543pzl9cbaip6xp8anw0942hc6j19y7yicd29ns";
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
||||
buildInputs = [ ncurses openssl ]
|
||||
++ stdenv.lib.optional stdenv.isDarwin Security;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gemini Project client written in Rust with NCurses";
|
||||
homepage = "https://git.sr.ht/~julienxx/asuka";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, python3Packages, fetchgit }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "av-98";
|
||||
version = "1.0.2dev";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://tildegit.org/solderpunk/AV-98.git";
|
||||
rev = "96cf8e13fe5714c8cdc754f51eef9f0293b8ca1f";
|
||||
sha256 = "09iskh33hl5aaif763j1fmbz7yvf0yqsxycfd41scj7vbwdsbxl0";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ ansiwrap cryptography ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://tildegit.org/solderpunk/AV-98";
|
||||
description = "Experimental console client for the Gemini protocol";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ ehmry ];
|
||||
};
|
||||
}
|
|
@ -86,11 +86,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.8.95";
|
||||
version = "1.10.97";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "1mlffg2v31b42gj354w5yv0yzlqc2f4f3cmdnddzkplw10jgw6f1";
|
||||
sha256 = "1qwk75k8km2sy7l3m4k5m383sl75dph4dyrp8hd65x5hnpip67yi";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue