mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge remote-tracking branch 'origin/master' into haskell-updates.
This commit is contained in:
commit
db15e92dd0
341 changed files with 5173 additions and 1691 deletions
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -490,6 +490,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>
|
||||
|
||||
|
@ -642,6 +647,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";
|
||||
|
|
|
@ -32,7 +32,10 @@ in {
|
|||
|
||||
environment.systemPackages = [ pkgs.tuptime ];
|
||||
|
||||
users.users.tuptime.description = "tuptime database owner";
|
||||
users = {
|
||||
groups._tuptime.members = [ "_tuptime" ];
|
||||
users._tuptime.description = "tuptime database owner";
|
||||
};
|
||||
|
||||
systemd = {
|
||||
services = {
|
||||
|
@ -45,7 +48,7 @@ in {
|
|||
serviceConfig = {
|
||||
StateDirectory = "tuptime";
|
||||
Type = "oneshot";
|
||||
User = "tuptime";
|
||||
User = "_tuptime";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
||||
ExecStop = "${pkgs.tuptime}/bin/tuptime -xg";
|
||||
|
@ -57,7 +60,7 @@ in {
|
|||
serviceConfig = {
|
||||
StateDirectory = "tuptime";
|
||||
Type = "oneshot";
|
||||
User = "tuptime";
|
||||
User = "_tuptime";
|
||||
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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 {
|
||||
|
|
158
nixos/modules/services/networking/wasabibackend.nix
Normal file
158
nixos/modules/services/networking/wasabibackend.nix
Normal file
|
@ -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} = {};
|
||||
|
||||
};
|
||||
}
|
72
nixos/modules/services/web-apps/convos.nix
Normal file
72
nixos/modules/services/web-apps/convos.nix
Normal file
|
@ -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
|
||||
|
||||
|
|
|
@ -128,7 +128,10 @@ in
|
|||
Nice = 19;
|
||||
IOSchedulingClass = "idle";
|
||||
ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
|
||||
ExecStop = "${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}";
|
||||
# if the service is stopped before scrub end, cancel it
|
||||
ExecStop = pkgs.writeShellScript "btrfs-scrub-maybe-cancel" ''
|
||||
(${pkgs.btrfs-progs}/bin/btrfs scrub status ${fs} | ${pkgs.gnugrep}/bin/grep finished) || ${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}
|
||||
'';
|
||||
};
|
||||
};
|
||||
in listToAttrs (map scrubService cfgScrub.fileSystems);
|
||||
|
|
|
@ -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 {};
|
||||
|
|
30
nixos/tests/convos.nix
Normal file
30
nixos/tests/convos.nix
Normal file
|
@ -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}"
|
||||
|
|
33
nixos/tests/nginx-variants.nix
Normal file
33
nixos/tests/nginx-variants.nix
Normal file
|
@ -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" ]
|
||||
)
|
83
nixos/tests/sslh.nix
Normal file
83
nixos/tests/sslh.nix
Normal file
|
@ -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".
|
||||
|
|
38
nixos/tests/wasabibackend.nix
Normal file
38
nixos/tests/wasabibackend.nix
Normal file
|
@ -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 ];
|
||||
|
|
34
pkgs/applications/audio/fverb/default.nix
Normal file
34
pkgs/applications/audio/fverb/default.nix
Normal file
|
@ -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
|
||||
|
|
46
pkgs/applications/audio/tuijam/default.nix
Normal file
46
pkgs/applications/audio/tuijam/default.nix
Normal file
|
@ -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 ];
|
||||
};
|
||||
}
|
41
pkgs/applications/blockchains/bitcoin-knots.nix
Normal file
41
pkgs/applications/blockchains/bitcoin-knots.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
49
pkgs/applications/blockchains/cgminer/default.nix
Normal file
49
pkgs/applications/blockchains/cgminer/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
98
pkgs/applications/blockchains/wasabibackend/create_deps.sh
Normal file
98
pkgs/applications/blockchains/wasabibackend/create_deps.sh
Normal file
|
@ -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 $@
|
100
pkgs/applications/blockchains/wasabibackend/default.nix
Normal file
100
pkgs/applications/blockchains/wasabibackend/default.nix
Normal file
|
@ -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" ];
|
||||
};
|
||||
}
|
951
pkgs/applications/blockchains/wasabibackend/deps.nix
generated
Normal file
951
pkgs/applications/blockchains/wasabibackend/deps.nix
generated
Normal file
|
@ -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";
|
||||
})
|
||||
]
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kdev-php";
|
||||
version = "5.5.1";
|
||||
version = "5.5.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
|
||||
sha256 = "1z3mmlg5srzff0y1pjd4wfdf9k4rzk7gfdvbvzizkiy395qw1phv";
|
||||
sha256 = "0z32x0297g078jk3jhzb4vrf8jhw0qprvqzm9p097h8x0026w42l";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||
|
|
|
@ -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";
|
||||
|
|
8
pkgs/applications/editors/micro/deps.nix
generated
8
pkgs/applications/editors/micro/deps.nix
generated
|
@ -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";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = [
|
||||
|
|
59
pkgs/applications/graphics/evilpixie/default.nix
Normal file
59
pkgs/applications/graphics/evilpixie/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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 {};
|
||||
|
|
24
pkgs/applications/kde/kapptemplate.nix
Normal file
24
pkgs/applications/kde/kapptemplate.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
@ -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 = ''
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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" ];
|
||||
|
|
21
pkgs/applications/networking/browsers/av-98/default.nix
Normal file
21
pkgs/applications/networking/browsers/av-98/default.nix
Normal file
|
@ -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;
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
# This file is autogenerated from update.sh in the same directory.
|
||||
{
|
||||
beta = {
|
||||
sha256 = "0wsqxq8xxcafmjxsjkagysrcbr6qryiyqn6m3ysp256aam7z3d88";
|
||||
sha256bin64 = "03jff1sdv05hbn37cw0ij0r4rils0q11lnnhxg52igg633jzwyc1";
|
||||
version = "84.0.4147.45";
|
||||
sha256 = "1s49qxg0gfmhm1lf5big6hprral21dbzjx0f1cp3xfvag9y61i7h";
|
||||
sha256bin64 = "1sjvi3qmpwpr51442324a853k6s0k59k4809k8j5sjv7h6arw0sm";
|
||||
version = "84.0.4147.56";
|
||||
};
|
||||
dev = {
|
||||
sha256 = "16rmzyzjmxmhmr5yqbzqbwf5sq94iqcwlm04fkafiwcycd17nyhs";
|
||||
sha256bin64 = "0wjmc1wdmwiq9d1f5gk4c9jkj1p116kaz9nb0hvhjf01iv07xl2m";
|
||||
version = "85.0.4168.2";
|
||||
sha256 = "1gxa0jg7xff87z7wvllp84a3ii1ypgy4vfzgxs4k7kzg5x0412vi";
|
||||
sha256bin64 = "0swmn37rmvjvvdcrd002qg1wcvna06y14s3kx34bfr4zxhqk3lby";
|
||||
version = "85.0.4173.0";
|
||||
};
|
||||
stable = {
|
||||
sha256 = "0bvy17ymlih87n4ymnzvyn0m34ghmr1yasvy7gxv02qbw6i57lfg";
|
||||
sha256bin64 = "00hjr5y0cczs6h2pxrigpmjiv24456948v32q7mr7x5ysr5kxpn6";
|
||||
version = "83.0.4103.106";
|
||||
sha256 = "1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v";
|
||||
sha256bin64 = "1ggyv2b50sclnqph0r40lb8p9h3pq9aq4fj1wdszhwc4rb0cj746";
|
||||
version = "83.0.4103.116";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
, dbus
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gconf
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, glibc
|
||||
|
@ -27,9 +26,7 @@
|
|||
, libXinerama
|
||||
, libXrender
|
||||
, libXt
|
||||
, libcanberra-gtk2
|
||||
, libgnome
|
||||
, libgnomeui
|
||||
, libcanberra
|
||||
, libnotify
|
||||
, gnome3
|
||||
, libGLU, libGL
|
||||
|
@ -103,7 +100,6 @@ stdenv.mkDerivation {
|
|||
dbus
|
||||
fontconfig
|
||||
freetype
|
||||
gconf
|
||||
gdk-pixbuf
|
||||
glib
|
||||
glibc
|
||||
|
@ -122,9 +118,7 @@ stdenv.mkDerivation {
|
|||
libXinerama
|
||||
libXrender
|
||||
libXt
|
||||
libcanberra-gtk2
|
||||
libgnome
|
||||
libgnomeui
|
||||
libcanberra
|
||||
libnotify
|
||||
libGLU libGL
|
||||
nspr
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, src, unpackPhase ? null, patches ? []
|
||||
, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }:
|
||||
|
||||
{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip, libIDL
|
||||
{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip
|
||||
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
|
||||
, freetype, fontconfig, file, nspr, nss, libnotify
|
||||
, yasm, libGLU, libGL, sqlite, unzip, makeWrapper
|
||||
|
@ -104,7 +104,7 @@ stdenv.mkDerivation ({
|
|||
patchFlags = [ "-p1" "-l" ];
|
||||
|
||||
buildInputs = [
|
||||
gtk2 perl zip libIDL libjpeg zlib bzip2
|
||||
gtk2 perl zip libjpeg zlib bzip2
|
||||
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
|
||||
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
|
||||
libnotify xorg.pixman yasm libGLU libGL
|
||||
|
|
|
@ -18,11 +18,11 @@ let
|
|||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "3.0.1874.38-1";
|
||||
version = "3.1.1929.45-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
|
||||
sha256 = "03667f8rlk8shxq6ghjg4q9hqhsaw4gwpqnjpyili49qczd5423w";
|
||||
sha256 = "0pg16zs9fcr6b360igszpkia3i8i5xf4m0hs1b2a17lf8vkldix9";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
|
@ -10,7 +10,7 @@ buildGoModule rec {
|
|||
rev = "v${version}";
|
||||
sha256 = "1453qkd9s4z4r0xzmv8ym7qfg33szf6gizfkb5zxj590fcbsgnd7";
|
||||
};
|
||||
vendorSha256 = null;
|
||||
vendorSha256 = "0j25m56cwzjd9b75v7xlb26q81bsmln77k23h9n8v2f2gqwwpkrl";
|
||||
|
||||
subPackages = [ "cmd/helm" ];
|
||||
buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
|
||||
|
||||
{ lib, stdenv, python3, fetchFromGitHub }:
|
||||
{ lib, stdenv, python3, pkgs, fetchFromGitHub }:
|
||||
|
||||
let
|
||||
# TODO: This package requires qt5Full to launch
|
||||
defaultOverrides = commonOverrides ++ [
|
||||
(mkOverride "jsonschema" "3.2.0"
|
||||
"0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
|
||||
|
@ -27,6 +26,7 @@ in python.pkgs.buildPythonPackage rec {
|
|||
raven psutil jsonschema # tox for check
|
||||
# Runtime dependencies
|
||||
sip (pyqt5.override { withWebSockets = true; }) distro setuptools
|
||||
pkgs.qt5Full
|
||||
];
|
||||
|
||||
doCheck = false; # Failing
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
|
||||
, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
|
||||
, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
|
||||
, mesa, nspr, nss, pango, systemd
|
||||
, mesa, nspr, nss, pango, systemd, libappindicator-gtk3
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
|
|||
gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
|
||||
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
|
||||
libXtst nspr nss libxcb pango systemd libXScrnSaver
|
||||
libappindicator-gtk3
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -2,19 +2,18 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gomuks";
|
||||
version = "0.1.0";
|
||||
version = "0.1.2";
|
||||
|
||||
goPackagePath = "maunium.net/go/gomuks";
|
||||
patches = [ ./gomod.patch ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tulir";
|
||||
repo = pname;
|
||||
rev = "v" + version;
|
||||
sha256 = "1dcqkyxiqiyivzn85fwkjy8xs9yk89810x9mvkaiz0dx3ha57zhi";
|
||||
sha256 = "11bainw4w9fdrhv2jm0j9fw0f7r4cxlblyazbhckgr4j9q900383";
|
||||
};
|
||||
|
||||
vendorSha256 = "1mfi167mycnnlq8dwh1kkx6drhhi4ib58aad5fwc90ckdaq1rpb7";
|
||||
vendorSha256 = "11rk7pma6dr6fsyz8hpjyr7nc2c7ichh5m7ds07m89gzk6ar55gb";
|
||||
|
||||
buildInputs = [ olm ];
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/go.mod b/go.mod
|
||||
index a07e991..ba5ae99 100644
|
||||
--- a/go.mod
|
||||
+++ b/go.mod
|
||||
@@ -9,6 +9,7 @@ require (
|
||||
github.com/lithammer/fuzzysearch v1.1.0
|
||||
github.com/lucasb-eyer/go-colorful v1.0.3
|
||||
github.com/mattn/go-runewidth v0.0.9
|
||||
+ github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
|
||||
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/rivo/uniseg v0.1.0
|
|
@ -1,6 +1,7 @@
|
|||
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
|
||||
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
|
||||
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
|
||||
setuptools,
|
||||
|
||||
pytest, faker, pytest-aiohttp, aioresponses,
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "pantalaimon";
|
||||
version = "0.6.1";
|
||||
version = "0.6.3";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
|
@ -18,7 +19,7 @@ buildPythonApplication rec {
|
|||
owner = "matrix-org";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0hn3731jh6xwyjayzdf41skhpdx002qs7n5l7ffh4dplhnv9vbxx";
|
||||
sha256 = "1h1z701sj1qgcqlsk3pnzifnbcg9fshl7v6271h9x54hm3d6hg8a";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -32,6 +33,7 @@ buildPythonApplication rec {
|
|||
matrix-nio
|
||||
peewee
|
||||
prompt_toolkit
|
||||
setuptools
|
||||
] ++ lib.optional enableDbusUi [
|
||||
dbus-python
|
||||
notify2
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "psi-plus";
|
||||
version = "1.4.1231";
|
||||
version = "1.4.1407";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "psi-plus";
|
||||
repo = "psi-plus-snapshots";
|
||||
rev = version;
|
||||
sha256 = "0m5p8is8nk3g0cbwiq73cff9nn2y09fcnh1pzc6rlqqhmz1acg4i";
|
||||
sha256 = "0gp5rk7km2fzw109wil6s9x49x5q1qbw9mnkjs58dpzvxn74ylhw";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rambox-pro";
|
||||
version = "1.3.1";
|
||||
version = "1.3.2";
|
||||
|
||||
dontBuild = true;
|
||||
dontStrip = true;
|
||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
|
||||
sha256 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1";
|
||||
sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "riot-desktop",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.6.5",
|
||||
"version": "1.6.6",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
|
@ -48,17 +48,18 @@
|
|||
"find-npm-prefix": "^1.0.2",
|
||||
"fs-extra": "^8.1.0",
|
||||
"glob": "^7.1.6",
|
||||
"matrix-js-sdk": "6.2.2",
|
||||
"matrix-js-sdk": "7.0.0",
|
||||
"mkdirp": "^1.0.3",
|
||||
"needle": "^2.3.2",
|
||||
"node-pre-gyp": "^0.14.0",
|
||||
"needle": "^2.5.0",
|
||||
"node-pre-gyp": "^0.15.0",
|
||||
"npm": "^6.13.7",
|
||||
"rimraf": "^3.0.2",
|
||||
"semver": "^7.1.3",
|
||||
"tar": "^6.0.1"
|
||||
},
|
||||
"hakDependencies": {
|
||||
"matrix-seshat": "^1.3.3"
|
||||
"matrix-seshat": "^1.3.3",
|
||||
"keytar": "^5.6.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
|
|
|
@ -3154,11 +3154,11 @@
|
|||
};
|
||||
}
|
||||
{
|
||||
name = "matrix_js_sdk___matrix_js_sdk_6.2.2.tgz";
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "matrix_js_sdk___matrix_js_sdk_6.2.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.2.tgz";
|
||||
sha1 = "103d951f61945217b110962f55ae43996756f615";
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.0.0.tgz";
|
||||
sha1 = "da2b24e57574379c3d8f7065eb68ea6c479d9806";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
@ -3273,6 +3273,14 @@
|
|||
sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "minimist___minimist_1.2.5.tgz";
|
||||
path = fetchurl {
|
||||
name = "minimist___minimist_1.2.5.tgz";
|
||||
url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
|
||||
sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "minipass___minipass_2.9.0.tgz";
|
||||
path = fetchurl {
|
||||
|
@ -3321,6 +3329,14 @@
|
|||
sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "mkdirp___mkdirp_0.5.5.tgz";
|
||||
path = fetchurl {
|
||||
name = "mkdirp___mkdirp_0.5.5.tgz";
|
||||
url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
|
||||
sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "mkdirp___mkdirp_1.0.3.tgz";
|
||||
path = fetchurl {
|
||||
|
@ -3378,11 +3394,11 @@
|
|||
};
|
||||
}
|
||||
{
|
||||
name = "needle___needle_2.3.2.tgz";
|
||||
name = "needle___needle_2.5.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "needle___needle_2.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz";
|
||||
sha1 = "3342dea100b7160960a450dc8c22160ac712a528";
|
||||
name = "needle___needle_2.5.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz";
|
||||
sha1 = "e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
@ -3410,11 +3426,11 @@
|
|||
};
|
||||
}
|
||||
{
|
||||
name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
|
||||
name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
|
||||
sha1 = "9a0596533b877289bcad4e143982ca3d904ddc83";
|
||||
name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
|
||||
sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
let
|
||||
executableName = "riot-desktop";
|
||||
version = "1.6.5";
|
||||
version = "1.6.6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = "riot-desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "1snmfn98z63a8ahh5c7y7h00i8qsdq6wsnidmjjrkzcz3mchfq60";
|
||||
sha256 = "0yrybi6cv3lj0fq4ab4rzjm9l4flfw97hkwzlp7zzixb3z9h09h8";
|
||||
};
|
||||
electron = electron_7;
|
||||
|
||||
|
|
|
@ -12,11 +12,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "riot-web";
|
||||
version = "1.6.5";
|
||||
version = "1.6.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||
sha256 = "0mx7ql76cbivc0d9gzix51bc1rdp9yg9vjx05mbf5r9sxrwmihz5";
|
||||
sha256 = "0j88wcha5rr6qaxik4m90v9mgfcj3r9nb4gpd2dzi7m1zf7kivkw";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -19,12 +19,12 @@ with lib;
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "2.1.12";
|
||||
version = "2.1.13";
|
||||
|
||||
# Telegram-Desktop with submodules
|
||||
src = fetchurl {
|
||||
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
|
||||
sha256 = "1b9kgib9dxjcfnw2zdbqd12ikcswkl35nwy9m47x5jvy3glxg6m8";
|
||||
sha256 = "0mq3f7faxn1hfkhv5n37y5iajjnm38s2in631046m0q7c4w3lrfi";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "ipfs";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
rev = "v${version}";
|
||||
|
||||
# go-ipfs makes changes to it's source tarball that don't match the git source.
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
|
||||
sha256 = "0lpilycjbc1g9adp4d5kryfprixj18hg3235fnivakmv7fy2akkm";
|
||||
sha256 = "14bgq2j2bjjy0pspy2lsj5dm3w9rmfha0l8kyq5ig86yhc4nzn80";
|
||||
};
|
||||
|
||||
# tarball contains multiple files/directories
|
||||
|
|
71
pkgs/applications/networking/irc/convos/default.nix
Normal file
71
pkgs/applications/networking/irc/convos/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
perlPackages.buildPerlPackage rec {
|
||||
pname = "convos";
|
||||
version = "4.22";
|
||||
|
||||
src = fetchFromGitHub rec {
|
||||
owner = "Nordaaker";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0a5wq88ncbn7kwcw3z4wdl1wxmx5vq5a7crb1bvbvskgwwy8zfx8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ optional stdenv.isDarwin [ shortenPerlShebang ];
|
||||
|
||||
buildInputs = with perlPackages; [
|
||||
CryptEksblowfish FileHomeDir FileReadBackwards
|
||||
IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
|
||||
Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
|
||||
ParseIRC TextMarkdown TimePiece UnicodeUTF8
|
||||
CpanelJSONXS EV
|
||||
];
|
||||
|
||||
checkInputs = with perlPackages; [ TestDeep TestMore ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs script/convos
|
||||
'';
|
||||
|
||||
# A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
|
||||
# the sandbox, we replace the this out from a substitution expression
|
||||
#
|
||||
# Module::Install is a runtime dependency not covered by the tests, so we add
|
||||
# a test for it.
|
||||
#
|
||||
preCheck = ''
|
||||
substituteInPlace t/web-register-open-to-public.t \
|
||||
--replace '!127.0.0.1!' '!localhost!'
|
||||
|
||||
echo "use Test::More tests => 1;require_ok('Module::Install')" \
|
||||
> t/00_nixpkgs_module_install.t
|
||||
'';
|
||||
|
||||
# Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
|
||||
# which is set to $out
|
||||
#
|
||||
postInstall = ''
|
||||
AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
|
||||
mkdir -p $AUTO_SHARE_PATH
|
||||
cp -vR public assets $AUTO_SHARE_PATH/
|
||||
ln -s $AUTO_SHARE_PATH/public/asset $out/asset
|
||||
cp -vR templates $out/templates
|
||||
cp cpanfile $out/cpanfile
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
shortenPerlShebang $out/bin/convos
|
||||
'' + ''
|
||||
wrapProgram $out/bin/convos --set MOJO_HOME $out
|
||||
'';
|
||||
|
||||
passthru.tests = nixosTests.convos;
|
||||
|
||||
meta = {
|
||||
homepage = "https://convos.chat";
|
||||
description = "Convos is the simplest way to use IRC in your browser";
|
||||
license = stdenv.lib.licenses.artistic2;
|
||||
maintainers = with maintainers; [ sgo ];
|
||||
};
|
||||
}
|
49
pkgs/applications/networking/maestral-qt/default.nix
Normal file
49
pkgs/applications/networking/maestral-qt/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "maestral-qt";
|
||||
version = "1.1.0";
|
||||
disabled = python3.pkgs.pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SamSchott";
|
||||
repo = "maestral-qt";
|
||||
rev = "v${version}";
|
||||
sha256 = "0clzzwwbrynfbvawhaaa4mp2qi8smng31mmz0is166z6g67bwdl6";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
bugsnag
|
||||
click
|
||||
markdown2
|
||||
maestral
|
||||
pyqt5
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||
|
||||
makeWrapperArgs = [
|
||||
# Firstly, add all necessary QT variables
|
||||
"\${qtWrapperArgs[@]}"
|
||||
|
||||
# Add the installed directories to the python path so the daemon can find them
|
||||
"--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}"
|
||||
"--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages"
|
||||
];
|
||||
|
||||
# no tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "GUI front-end for maestral (an open-source Dropbox client) for Linux";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
platforms = platforms.linux;
|
||||
inherit (src.meta) homepage;
|
||||
};
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, withGui ? false
|
||||
, wrapQtAppsHook ? null
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "maestral${lib.optionalString withGui "-gui"}";
|
||||
version = "0.6.4";
|
||||
|
||||
disabled = python3.pkgs.pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SamSchott";
|
||||
repo = "maestral-dropbox";
|
||||
rev = "v${version}";
|
||||
sha256 = "06psbjd205qj6vx7k7ywhclz1bs5zp43xnf275hf0k80h3b064sn";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
blinker
|
||||
bugsnag
|
||||
click
|
||||
dropbox
|
||||
keyring
|
||||
keyrings-alt
|
||||
lockfile
|
||||
pathspec
|
||||
Pyro5
|
||||
requests
|
||||
u-msgpack-python
|
||||
watchdog
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
sdnotify
|
||||
systemd
|
||||
] ++ lib.optional withGui pyqt5;
|
||||
|
||||
nativeBuildInputs = lib.optional withGui wrapQtAppsHook;
|
||||
|
||||
postInstall = lib.optionalString withGui ''
|
||||
makeQtWrapper $out/bin/maestral $out/bin/maestral-gui \
|
||||
--add-flags gui
|
||||
'';
|
||||
|
||||
# no tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open-source Dropbox client for macOS and Linux";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
platforms = platforms.unix;
|
||||
inherit (src.meta) homepage;
|
||||
};
|
||||
}
|
|
@ -4,15 +4,13 @@
|
|||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "ea0df7bee433fedae5716906ea56141f92b9ce53";
|
||||
in buildGoModule rec {
|
||||
buildGoModule rec {
|
||||
pname = "aerc";
|
||||
version = "unstable-2020-02-01";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz";
|
||||
sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9";
|
||||
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
|
||||
sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
|
||||
};
|
||||
|
||||
libvterm = fetchFromGitHub {
|
||||
|
@ -22,7 +20,7 @@ in buildGoModule rec {
|
|||
sha256 = "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6";
|
||||
};
|
||||
|
||||
vendorSha256 = "0rnyjjlsxsi0y23m6ckyd52562m33qr35fvdcdzy31mbfpi8kl2k";
|
||||
vendorSha256 = "1rqn36510m0yb7k4bvq2hgirr3z8a2h5xa7cq5mb84xsmhvf0g69";
|
||||
|
||||
overrideModAttrs = (_: {
|
||||
postBuild = ''
|
||||
|
|
|
@ -27,11 +27,11 @@ with stdenv.lib;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mutt";
|
||||
version = "1.14.4";
|
||||
version = "1.14.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
|
||||
sha256 = "1hykkq3m7kqic5r7vzg45xaww7415fv5i2d03slzykqb47w5d3na";
|
||||
sha256 = "0p1xiqzmkqlzy5yi4l0dh0lacdq300zdj48zk0fir8j1pp512sri";
|
||||
};
|
||||
|
||||
patches = optional smimeSupport (fetchpatch {
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
|
||||
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
|
||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite, zlib
|
||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, elinks, mailcap, runtimeShell, sqlite, zlib
|
||||
, glibcLocales
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20200501";
|
||||
version = "20200619";
|
||||
pname = "neomutt";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = version;
|
||||
sha256 = "1xrs2bagrcg489zp7g39l3rrpgz8n1ji9cbr21wrnasfbhqcsmnx";
|
||||
sha256 = "0dhdpd0wdk5bam0q7cvjy4f451ai0mapmyrar7r7m5dnn6lcwvfv";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib
|
||||
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib elinks
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -42,12 +42,10 @@ stdenv.mkDerivation rec {
|
|||
# and use a far more comprehensive list than the one shipped with neomutt
|
||||
substituteInPlace sendlib.c \
|
||||
--replace /etc/mime.types ${mailcap}/etc/mime.types
|
||||
'';
|
||||
|
||||
# The string conversion tests all fail with the first version of neomutt
|
||||
# that has tests (20180223) as well as 20180716 so we disable them for now.
|
||||
# I don't know if that is related to the tests or our build environment.
|
||||
# Try again with a later release.
|
||||
sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c
|
||||
preBuild = ''
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
|
@ -60,6 +58,9 @@ stdenv.mkDerivation rec {
|
|||
"--sasl"
|
||||
"--with-homespool=mailbox"
|
||||
"--with-mailpath="
|
||||
# To make it not reference .dev outputs. See:
|
||||
# https://github.com/neomutt/neomutt/pull/2367
|
||||
"--disable-include-path-in-cflags"
|
||||
# Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
|
||||
"ac_cv_path_SENDMAIL=sendmail"
|
||||
"--zlib"
|
||||
|
@ -80,16 +81,15 @@ stdenv.mkDerivation rec {
|
|||
cp -r ${fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt-test-files";
|
||||
rev = "1ee274e9ae1330fb901eb7b8275b3079d7869222";
|
||||
sha256 = "0dhilz4rr7616jh8jcvh50a3rr09in43nsv72mm6f3vfklcqincp";
|
||||
rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
|
||||
sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
|
||||
}} $(pwd)/test-files
|
||||
chmod -R +w test-files
|
||||
(cd test-files && ./setup.sh)
|
||||
|
||||
export NEOMUTT_TEST_DIR=$(pwd)/test-files
|
||||
export LC_ALL="en_US.UTF-8"
|
||||
'';
|
||||
|
||||
checkInputs = [ glibcLocales ];
|
||||
checkTarget = "test";
|
||||
postCheck = "unset NEOMUTT_TEST_DIR";
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ stdenv, fetchurl, config, makeWrapper
|
||||
, gconf
|
||||
, alsaLib
|
||||
, at-spi2-atk
|
||||
, atk
|
||||
|
@ -13,8 +12,6 @@
|
|||
, gdk-pixbuf
|
||||
, glib
|
||||
, glibc
|
||||
, gst-plugins-base
|
||||
, gstreamer
|
||||
, gtk2
|
||||
, gtk3
|
||||
, kerberos
|
||||
|
@ -30,9 +27,7 @@
|
|||
, libXrender
|
||||
, libXt
|
||||
, libxcb
|
||||
, libcanberra-gtk2
|
||||
, libgnome
|
||||
, libgnomeui
|
||||
, libcanberra
|
||||
, gnome3
|
||||
, libGLU, libGL
|
||||
, nspr
|
||||
|
@ -82,7 +77,6 @@ stdenv.mkDerivation {
|
|||
|
||||
libPath = stdenv.lib.makeLibraryPath
|
||||
[ stdenv.cc.cc
|
||||
gconf
|
||||
alsaLib
|
||||
at-spi2-atk
|
||||
atk
|
||||
|
@ -96,8 +90,6 @@ stdenv.mkDerivation {
|
|||
gdk-pixbuf
|
||||
glib
|
||||
glibc
|
||||
gst-plugins-base
|
||||
gstreamer
|
||||
gtk2
|
||||
gtk3
|
||||
kerberos
|
||||
|
@ -113,9 +105,7 @@ stdenv.mkDerivation {
|
|||
libXrender
|
||||
libXt
|
||||
libxcb
|
||||
libcanberra-gtk2
|
||||
libgnome
|
||||
libgnomeui
|
||||
libcanberra
|
||||
libGLU libGL
|
||||
nspr
|
||||
nss
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
, lib
|
||||
, libGL
|
||||
, libGLU
|
||||
, libIDL
|
||||
, libevent
|
||||
, libjpeg
|
||||
, libnotify
|
||||
|
@ -113,7 +112,6 @@ stdenv.mkDerivation rec {
|
|||
jemalloc
|
||||
libGL
|
||||
libGLU
|
||||
libIDL
|
||||
libevent
|
||||
libjpeg
|
||||
libnotify
|
||||
|
|
|
@ -9,13 +9,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "resilio-sync";
|
||||
version = "2.7.0";
|
||||
version = "2.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
|
||||
sha256 = {
|
||||
x86_64-linux = "17vw4kyggmi8phm91jx1skkd7vrdhbahibv6d6zm14q87r01a56f";
|
||||
i686-linux = "0yvy3lif2g4jchcp5q1r5b8ndj8009pcq5js7r0kl20bmmcmzklg";
|
||||
x86_64-linux = "1gdjpwdg7cpig68wsl3b8w1y12391dh5ipg7g19kr30s6wr3avvm";
|
||||
i686-linux = "1b6pzckaixfzhjf38amrkg8pahh2p3jg6cgfacswdx7cjb4a0c4i";
|
||||
}.${stdenv.hostPlatform.system};
|
||||
};
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue