Merge remote-tracking branch 'origin/master' into haskell-updates.
This commit is contained in:
commit
db15e92dd0
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@ -193,3 +193,6 @@
|
|||||||
/nixos/modules/virtualisation/cri-o.nix @NixOS/podman
|
/nixos/modules/virtualisation/cri-o.nix @NixOS/podman
|
||||||
/nixos/modules/virtualisation/podman.nix @NixOS/podman
|
/nixos/modules/virtualisation/podman.nix @NixOS/podman
|
||||||
/nixos/tests/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
|
* [Nix](https://github.com/NixOS/nix) - the purely functional package manager
|
||||||
* [NixOps](https://github.com/NixOS/nixops) - the tool to remotely deploy NixOS machines
|
* [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
|
* [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
|
* [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
|
* [hydra](https://github.com/NixOS/hydra) - our continuous integration system
|
||||||
|
@ -139,6 +139,12 @@
|
|||||||
githubId = 1517066;
|
githubId = 1517066;
|
||||||
name = "Aiken Cairncross";
|
name = "Aiken Cairncross";
|
||||||
};
|
};
|
||||||
|
aciceri = {
|
||||||
|
name = "Andrea Ciceri";
|
||||||
|
email = "andrea.ciceri@autistici.org";
|
||||||
|
github = "aciceri";
|
||||||
|
githubId = 2318843;
|
||||||
|
};
|
||||||
acowley = {
|
acowley = {
|
||||||
email = "acowley@gmail.com";
|
email = "acowley@gmail.com";
|
||||||
github = "acowley";
|
github = "acowley";
|
||||||
@ -3530,6 +3536,12 @@
|
|||||||
githubId = 117874;
|
githubId = 117874;
|
||||||
name = "Jeroen de Haas";
|
name = "Jeroen de Haas";
|
||||||
};
|
};
|
||||||
|
jduan = {
|
||||||
|
name = "Jingjing Duan";
|
||||||
|
email = "duanjingjing@gmail.com";
|
||||||
|
github = "jduan";
|
||||||
|
githubId = 452450;
|
||||||
|
};
|
||||||
jefdaj = {
|
jefdaj = {
|
||||||
email = "jefdaj@gmail.com";
|
email = "jefdaj@gmail.com";
|
||||||
github = "jefdaj";
|
github = "jefdaj";
|
||||||
@ -3692,6 +3704,12 @@
|
|||||||
githubId = 1102396;
|
githubId = 1102396;
|
||||||
name = "Jussi Maki";
|
name = "Jussi Maki";
|
||||||
};
|
};
|
||||||
|
jobojeha = {
|
||||||
|
email = "jobojeha@jeppener.de";
|
||||||
|
github = "jobojeha";
|
||||||
|
githubId = 60272884;
|
||||||
|
name = "Jonathan Jeppener-Haltenhoff";
|
||||||
|
};
|
||||||
joelburget = {
|
joelburget = {
|
||||||
email = "joelburget@gmail.com";
|
email = "joelburget@gmail.com";
|
||||||
github = "joelburget";
|
github = "joelburget";
|
||||||
@ -7248,6 +7266,16 @@
|
|||||||
githubId = 2770647;
|
githubId = 2770647;
|
||||||
name = "Simon Vandel Sillesen";
|
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 = {
|
sivteck = {
|
||||||
email = "sivaram1992@gmail.com";
|
email = "sivaram1992@gmail.com";
|
||||||
github = "sivteck";
|
github = "sivteck";
|
||||||
|
@ -96,6 +96,47 @@
|
|||||||
The options are named identically for all other display managers.
|
The options are named identically for all other display managers.
|
||||||
</para>
|
</para>
|
||||||
</simplesect>
|
</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">
|
<simplesect xml:id="sec-x11-graphics-cards-nvidia">
|
||||||
<title>Proprietary NVIDIA drivers</title>
|
<title>Proprietary NVIDIA drivers</title>
|
||||||
<para>
|
<para>
|
||||||
|
@ -490,6 +490,11 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
|
|||||||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/89205">#89205</link>.
|
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/89205">#89205</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
</section>
|
</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.
|
<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>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
@ -43,7 +43,7 @@ pkgs.stdenv.mkDerivation {
|
|||||||
# Make a crude approximation of the size of the target image.
|
# Make a crude approximation of the size of the target image.
|
||||||
# If the script starts failing, increase the fudge factors here.
|
# If the script starts failing, increase the fudge factors here.
|
||||||
numInodes=$(find $storePaths ./files | wc -l)
|
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))
|
bytes=$((2 * 4096 * $numInodes + 4096 * $numDataBlocks))
|
||||||
echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
|
echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
|
||||||
|
|
||||||
|
@ -626,7 +626,7 @@ in {
|
|||||||
then
|
then
|
||||||
''
|
''
|
||||||
The password hash of user "${name}" may be invalid. You must set a
|
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`.
|
check the value of option `users.users."${name}".hashedPassword`.
|
||||||
''
|
''
|
||||||
else null
|
else null
|
||||||
|
@ -22,11 +22,22 @@ in {
|
|||||||
example = literalExample "pkgs.device-tree_rpi";
|
example = literalExample "pkgs.device-tree_rpi";
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
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.
|
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 {
|
overlays = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
example = literalExample
|
example = literalExample
|
||||||
|
@ -84,7 +84,7 @@ in {
|
|||||||
model = mkOption {
|
model = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = literalExample ''
|
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 = ''
|
description = ''
|
||||||
Location of the ppd driver file for the printer.
|
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
|
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-aarch64.nix -A config.system.build.sdImage
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
extlinux-conf-builder =
|
|
||||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
|
||||||
pkgs = pkgs.buildPackages;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../profiles/base.nix
|
../../profiles/base.nix
|
||||||
@ -56,7 +50,7 @@ in
|
|||||||
'';
|
'';
|
||||||
populateRootCommands = ''
|
populateRootCommands = ''
|
||||||
mkdir -p ./files/boot
|
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
|
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
extlinux-conf-builder =
|
|
||||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
|
||||||
pkgs = pkgs.buildPackages;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../profiles/base.nix
|
../../profiles/base.nix
|
||||||
@ -53,7 +47,7 @@ in
|
|||||||
'';
|
'';
|
||||||
populateRootCommands = ''
|
populateRootCommands = ''
|
||||||
mkdir -p ./files/boot
|
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
|
# nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix -A config.system.build.sdImage
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
extlinux-conf-builder =
|
|
||||||
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
|
|
||||||
pkgs = pkgs.buildPackages;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../profiles/base.nix
|
../../profiles/base.nix
|
||||||
@ -42,7 +36,7 @@ in
|
|||||||
'';
|
'';
|
||||||
populateRootCommands = ''
|
populateRootCommands = ''
|
||||||
mkdir -p ./files/boot
|
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 = {
|
sdImage = {
|
||||||
firmwareSize = 128;
|
firmwareSize = 128;
|
||||||
|
firmwarePartitionName = "NIXOS_BOOT";
|
||||||
# This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
|
# This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
|
||||||
populateFirmwareCommands =
|
populateFirmwareCommands =
|
||||||
"${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
|
"${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
|
||||||
@ -25,6 +26,12 @@
|
|||||||
populateRootCommands = "";
|
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,
|
# the installation media is also the installation target,
|
||||||
# so we don't want to provide the installation configuration.nix.
|
# so we don't want to provide the installation configuration.nix.
|
||||||
installer.cloneConfig = false;
|
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 {
|
rootPartitionUUID = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
@ -91,7 +99,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
populateRootCommands = mkOption {
|
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 = ''
|
description = ''
|
||||||
Shell commands to populate the ./files directory.
|
Shell commands to populate the ./files directory.
|
||||||
All files in that directory are copied to the
|
All files in that directory are copied to the
|
||||||
@ -114,7 +122,7 @@ in
|
|||||||
config = {
|
config = {
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/boot/firmware" = {
|
"/boot/firmware" = {
|
||||||
device = "/dev/disk/by-label/FIRMWARE";
|
device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
# Alternatively, this could be removed from the configuration.
|
# Alternatively, this could be removed from the configuration.
|
||||||
# The filesystem is not needed at runtime, it could be treated
|
# 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
|
# Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
|
||||||
eval $(partx $img -o START,SECTORS --nr 1 --pairs)
|
eval $(partx $img -o START,SECTORS --nr 1 --pairs)
|
||||||
truncate -s $((SECTORS * 512)) firmware_part.img
|
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
|
# Populate the files intended for /boot/firmware
|
||||||
mkdir firmware
|
mkdir firmware
|
||||||
|
@ -628,6 +628,7 @@ EOF
|
|||||||
write_file($fn, <<EOF);
|
write_file($fn, <<EOF);
|
||||||
@configuration@
|
@configuration@
|
||||||
EOF
|
EOF
|
||||||
|
print STDERR "For more hardware-specific settings, see https://github.com/NixOS/nixos-hardware"
|
||||||
} else {
|
} else {
|
||||||
print STDERR "warning: not overwriting existing $fn\n";
|
print STDERR "warning: not overwriting existing $fn\n";
|
||||||
}
|
}
|
||||||
|
@ -757,6 +757,7 @@
|
|||||||
./services/networking/v2ray.nix
|
./services/networking/v2ray.nix
|
||||||
./services/networking/vsftpd.nix
|
./services/networking/vsftpd.nix
|
||||||
./services/networking/wakeonlan.nix
|
./services/networking/wakeonlan.nix
|
||||||
|
./services/networking/wasabibackend.nix
|
||||||
./services/networking/websockify.nix
|
./services/networking/websockify.nix
|
||||||
./services/networking/wg-quick.nix
|
./services/networking/wg-quick.nix
|
||||||
./services/networking/wicd.nix
|
./services/networking/wicd.nix
|
||||||
@ -830,6 +831,7 @@
|
|||||||
./services/web-apps/atlassian/crowd.nix
|
./services/web-apps/atlassian/crowd.nix
|
||||||
./services/web-apps/atlassian/jira.nix
|
./services/web-apps/atlassian/jira.nix
|
||||||
./services/web-apps/codimd.nix
|
./services/web-apps/codimd.nix
|
||||||
|
./services/web-apps/convos.nix
|
||||||
./services/web-apps/cryptpad.nix
|
./services/web-apps/cryptpad.nix
|
||||||
./services/web-apps/documize.nix
|
./services/web-apps/documize.nix
|
||||||
./services/web-apps/dokuwiki.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.listenAddress != "any") ''bind_to_address "${cfg.network.listenAddress}"''}
|
||||||
${optionalString (cfg.network.port != 6600) ''port "${toString cfg.network.port}"''}
|
${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}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
@ -133,6 +139,14 @@ in {
|
|||||||
parameter is omitted from the configuration.
|
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 = {
|
serviceConfig = {
|
||||||
ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
|
ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
|
||||||
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
User = "hass";
|
User = "hass";
|
||||||
Group = "hass";
|
Group = "hass";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
|
@ -32,7 +32,10 @@ in {
|
|||||||
|
|
||||||
environment.systemPackages = [ pkgs.tuptime ];
|
environment.systemPackages = [ pkgs.tuptime ];
|
||||||
|
|
||||||
users.users.tuptime.description = "tuptime database owner";
|
users = {
|
||||||
|
groups._tuptime.members = [ "_tuptime" ];
|
||||||
|
users._tuptime.description = "tuptime database owner";
|
||||||
|
};
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
services = {
|
services = {
|
||||||
@ -45,7 +48,7 @@ in {
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
StateDirectory = "tuptime";
|
StateDirectory = "tuptime";
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "tuptime";
|
User = "_tuptime";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
||||||
ExecStop = "${pkgs.tuptime}/bin/tuptime -xg";
|
ExecStop = "${pkgs.tuptime}/bin/tuptime -xg";
|
||||||
@ -57,7 +60,7 @@ in {
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
StateDirectory = "tuptime";
|
StateDirectory = "tuptime";
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "tuptime";
|
User = "_tuptime";
|
||||||
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -124,7 +124,7 @@ in {
|
|||||||
<literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.
|
<literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<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>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
@ -109,8 +109,8 @@ in
|
|||||||
|
|
||||||
httpListenAddr = mkOption {
|
httpListenAddr = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0.0.0.0";
|
default = "[::1]";
|
||||||
example = "1.2.3.4";
|
example = "0.0.0.0";
|
||||||
description = ''
|
description = ''
|
||||||
HTTP address to bind to.
|
HTTP address to bind to.
|
||||||
'';
|
'';
|
||||||
@ -206,16 +206,16 @@ in
|
|||||||
|
|
||||||
If you would like to be able to modify the contents of this
|
If you would like to be able to modify the contents of this
|
||||||
directories, it is recommended that you make your user a
|
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
|
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
|
write access to the directory. It is also recommended that
|
||||||
<literal>chmod g+s</literal> is applied to the directory
|
<literal>chmod g+s</literal> is applied to the directory
|
||||||
so that any sub directories created will also belong to
|
so that any sub directories created will also belong to
|
||||||
the <literal>resilio</literal> group. Also,
|
the <literal>rslsync</literal> group. Also,
|
||||||
<literal>setfacl -d -m group:resilio:rwx</literal> and
|
<literal>setfacl -d -m group:rslsync:rwx</literal> and
|
||||||
<literal>setfacl -m group:resilio:rwx</literal> should also
|
<literal>setfacl -m group:rslsync:rwx</literal> should also
|
||||||
be applied so that the sub directories are writable by
|
be applied so that the sub directories are writable by
|
||||||
the group.
|
the group.
|
||||||
'';
|
'';
|
||||||
|
@ -15,7 +15,11 @@ let
|
|||||||
|
|
||||||
listen:
|
listen:
|
||||||
(
|
(
|
||||||
{ host: "${cfg.listenAddress}"; port: "${toString cfg.port}"; }
|
${
|
||||||
|
concatMapStringsSep ",\n"
|
||||||
|
(addr: ''{ host: "${addr}"; port: "${toString cfg.port}"; }'')
|
||||||
|
cfg.listenAddresses
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
${cfg.appendConfig}
|
${cfg.appendConfig}
|
||||||
@ -33,6 +37,10 @@ let
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(mkRenamedOptionModule [ "services" "sslh" "listenAddress" ] [ "services" "sslh" "listenAddresses" ])
|
||||||
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
services.sslh = {
|
services.sslh = {
|
||||||
enable = mkEnableOption "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";
|
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 {
|
listenAddresses = mkOption {
|
||||||
type = types.str;
|
type = types.coercedTo types.str singleton (types.listOf types.str);
|
||||||
default = "0.0.0.0";
|
default = [ "0.0.0.0" "[::]" ];
|
||||||
description = "Listening address or hostname.";
|
description = "Listening addresses or hostnames.";
|
||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
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
|
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
|
# Wrap the gerrit java with all the java options so it can be called
|
||||||
# like a normal CLI app
|
# like a normal CLI app
|
||||||
gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
|
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 {
|
plugins = mkOption {
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
default = [];
|
default = [];
|
||||||
@ -138,6 +151,13 @@ in
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = cfg.replicationSettings != {} -> elem "replication" cfg.builtinPlugins;
|
||||||
|
message = "Gerrit replicationSettings require enabling the replication plugin";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
services.gerrit.settings = {
|
services.gerrit.settings = {
|
||||||
cache.directory = "/var/cache/gerrit";
|
cache.directory = "/var/cache/gerrit";
|
||||||
container.heapLimit = cfg.jvmHeapLimit;
|
container.heapLimit = cfg.jvmHeapLimit;
|
||||||
@ -194,6 +214,7 @@ in
|
|||||||
|
|
||||||
# copy the config, keep it mutable because Gerrit
|
# copy the config, keep it mutable because Gerrit
|
||||||
ln -sfv ${gerritConfig} etc/gerrit.config
|
ln -sfv ${gerritConfig} etc/gerrit.config
|
||||||
|
ln -sfv ${replicationConfig} etc/replication.config
|
||||||
|
|
||||||
# install the plugins
|
# install the plugins
|
||||||
rm -rf plugins
|
rm -rf plugins
|
||||||
|
@ -69,7 +69,7 @@ in {
|
|||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
description = "Which package to use for the Nextcloud instance.";
|
description = "Which package to use for the Nextcloud instance.";
|
||||||
relatedPackages = [ "nextcloud17" "nextcloud18" ];
|
relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
maxUploadSize = mkOption {
|
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 [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
@ -336,7 +344,16 @@ in {
|
|||||||
server, and wait until the upgrade to 17 is finished.
|
server, and wait until the upgrade to 17 is finished.
|
||||||
|
|
||||||
Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
|
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;
|
services.nextcloud.package = with pkgs;
|
||||||
@ -348,7 +365,8 @@ in {
|
|||||||
`pkgs.nextcloud`.
|
`pkgs.nextcloud`.
|
||||||
''
|
''
|
||||||
else if versionOlder stateVersion "20.03" then nextcloud17
|
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 = {
|
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
|
nextcloud-setup = let
|
||||||
c = cfg.config;
|
c = cfg.config;
|
||||||
writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
|
writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
|
||||||
|
@ -161,5 +161,11 @@
|
|||||||
};
|
};
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</para>
|
</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>
|
</section>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
@ -4,11 +4,15 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
blCfg = config.boot.loader;
|
blCfg = config.boot.loader;
|
||||||
|
dtCfg = config.hardware.deviceTree;
|
||||||
cfg = blCfg.generic-extlinux-compatible;
|
cfg = blCfg.generic-extlinux-compatible;
|
||||||
|
|
||||||
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
|
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; };
|
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
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@ -34,11 +38,28 @@ in
|
|||||||
Maximum number of configurations in the boot menu.
|
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 {
|
config = let
|
||||||
system.build.installBootLoader = "${builder} -g ${toString cfg.configurationLimit} -t ${timeoutStr} -c";
|
builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}" + lib.optionalString (dtCfg.name != null) " -n ${dtCfg.name}";
|
||||||
system.boot.loader.id = "generic-extlinux-compatible";
|
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
|
for i in @path@; do PATH=$PATH:$i/bin; done
|
||||||
|
|
||||||
usage() {
|
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
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ default= # Default configuration
|
|||||||
target=/boot # Target directory
|
target=/boot # Target directory
|
||||||
numGenerations=0 # Number of other generations to include in the menu
|
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
|
case "$opt" in
|
||||||
t) # U-Boot interprets '0' as infinite and negative as instant boot
|
t) # U-Boot interprets '0' as infinite and negative as instant boot
|
||||||
if [ "$OPTARG" -lt 0 ]; then
|
if [ "$OPTARG" -lt 0 ]; then
|
||||||
@ -29,6 +29,7 @@ while getopts "t:c:d:g:" opt; do
|
|||||||
c) default="$OPTARG" ;;
|
c) default="$OPTARG" ;;
|
||||||
d) target="$OPTARG" ;;
|
d) target="$OPTARG" ;;
|
||||||
g) numGenerations="$OPTARG" ;;
|
g) numGenerations="$OPTARG" ;;
|
||||||
|
n) dtbName="$OPTARG" ;;
|
||||||
\?) usage ;;
|
\?) usage ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@ -96,7 +97,17 @@ addEntry() {
|
|||||||
echo " LINUX ../nixos/$(basename $kernel)"
|
echo " LINUX ../nixos/$(basename $kernel)"
|
||||||
echo " INITRD ../nixos/$(basename $initrd)"
|
echo " INITRD ../nixos/$(basename $initrd)"
|
||||||
if [ -d "$dtbDir" ]; then
|
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
|
fi
|
||||||
echo " APPEND systemConfig=$path init=$path/init $extraParams"
|
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
|
shopt -s nullglob
|
||||||
|
|
||||||
|
@ -128,7 +128,10 @@ in
|
|||||||
Nice = 19;
|
Nice = 19;
|
||||||
IOSchedulingClass = "idle";
|
IOSchedulingClass = "idle";
|
||||||
ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
|
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);
|
in listToAttrs (map scrubService cfgScrub.fileSystems);
|
||||||
|
@ -65,6 +65,7 @@ in
|
|||||||
containers-portforward = handleTest ./containers-portforward.nix {};
|
containers-portforward = handleTest ./containers-portforward.nix {};
|
||||||
containers-restart_networking = handleTest ./containers-restart_networking.nix {};
|
containers-restart_networking = handleTest ./containers-restart_networking.nix {};
|
||||||
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
||||||
|
convos = handleTest ./convos.nix {};
|
||||||
corerad = handleTest ./corerad.nix {};
|
corerad = handleTest ./corerad.nix {};
|
||||||
couchdb = handleTest ./couchdb.nix {};
|
couchdb = handleTest ./couchdb.nix {};
|
||||||
deluge = handleTest ./deluge.nix {};
|
deluge = handleTest ./deluge.nix {};
|
||||||
@ -236,6 +237,7 @@ in
|
|||||||
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
|
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
|
||||||
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
|
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
|
||||||
nginx-sso = handleTest ./nginx-sso.nix {};
|
nginx-sso = handleTest ./nginx-sso.nix {};
|
||||||
|
nginx-variants = handleTest ./nginx-variants.nix {};
|
||||||
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
|
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
|
||||||
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
|
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
|
||||||
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
|
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
|
||||||
@ -306,6 +308,7 @@ in
|
|||||||
spacecookie = handleTest ./spacecookie.nix {};
|
spacecookie = handleTest ./spacecookie.nix {};
|
||||||
spike = handleTest ./spike.nix {};
|
spike = handleTest ./spike.nix {};
|
||||||
sonarr = handleTest ./sonarr.nix {};
|
sonarr = handleTest ./sonarr.nix {};
|
||||||
|
sslh = handleTest ./sslh.nix {};
|
||||||
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
||||||
sudo = handleTest ./sudo.nix {};
|
sudo = handleTest ./sudo.nix {};
|
||||||
switchTest = handleTest ./switch-test.nix {};
|
switchTest = handleTest ./switch-test.nix {};
|
||||||
@ -345,6 +348,7 @@ in
|
|||||||
vault = handleTest ./vault.nix {};
|
vault = handleTest ./vault.nix {};
|
||||||
victoriametrics = handleTest ./victoriametrics.nix {};
|
victoriametrics = handleTest ./victoriametrics.nix {};
|
||||||
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
||||||
|
wasabibackend = handleTest ./wasabibackend.nix {};
|
||||||
wireguard = handleTest ./wireguard {};
|
wireguard = handleTest ./wireguard {};
|
||||||
wordpress = handleTest ./wordpress.nix {};
|
wordpress = handleTest ./wordpress.nix {};
|
||||||
xandikos = handleTest ./xandikos.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
|
let
|
||||||
configDir = "/var/lib/foobar";
|
configDir = "/var/lib/foobar";
|
||||||
apiPassword = "some_secret";
|
mqttPassword = "secret";
|
||||||
mqttPassword = "another_secret";
|
|
||||||
hassCli = "hass-cli --server http://hass:8123 --password '${apiPassword}'";
|
|
||||||
in {
|
in {
|
||||||
name = "home-assistant";
|
name = "home-assistant";
|
||||||
meta = with pkgs.stdenv.lib; {
|
meta = with pkgs.stdenv.lib; {
|
||||||
maintainers = with maintainers; [ dotlambda ];
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes = {
|
nodes.hass = { pkgs, ... }: {
|
||||||
hass =
|
environment.systemPackages = with pkgs; [ mosquitto ];
|
||||||
{ pkgs, ... }:
|
services.home-assistant = {
|
||||||
{
|
inherit configDir;
|
||||||
environment.systemPackages = with pkgs; [
|
enable = true;
|
||||||
mosquitto home-assistant-cli
|
config = {
|
||||||
];
|
homeassistant = {
|
||||||
services.home-assistant = {
|
name = "Home";
|
||||||
inherit configDir;
|
time_zone = "UTC";
|
||||||
enable = true;
|
latitude = "0.0";
|
||||||
package = pkgs.home-assistant.override {
|
longitude = "0.0";
|
||||||
extraPackages = ps: with ps; [ hbmqtt ];
|
elevation = 0;
|
||||||
};
|
};
|
||||||
config = {
|
frontend = {};
|
||||||
homeassistant = {
|
# uses embedded mqtt broker
|
||||||
name = "Home";
|
mqtt.password = mqttPassword;
|
||||||
time_zone = "UTC";
|
binary_sensor = [{
|
||||||
latitude = "0.0";
|
platform = "mqtt";
|
||||||
longitude = "0.0";
|
state_topic = "home-assistant/test";
|
||||||
elevation = 0;
|
payload_on = "let_there_be_light";
|
||||||
auth_providers = [
|
payload_off = "off";
|
||||||
{
|
}];
|
||||||
type = "legacy_api_password";
|
logger = {
|
||||||
api_password = apiPassword;
|
default = "info";
|
||||||
}
|
logs."homeassistant.components.mqtt" = "debug";
|
||||||
];
|
|
||||||
};
|
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
lovelaceConfig = {
|
||||||
|
title = "My Awesome Home";
|
||||||
|
views = [{
|
||||||
|
title = "Example";
|
||||||
|
cards = [{
|
||||||
|
type = "markdown";
|
||||||
|
title = "Lovelace";
|
||||||
|
content = "Welcome to your **Lovelace UI**.";
|
||||||
|
}];
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
lovelaceConfigWritable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
@ -77,28 +61,13 @@ in {
|
|||||||
with subtest("Check that Home Assistant's web interface and API can be reached"):
|
with subtest("Check that Home Assistant's web interface and API can be reached"):
|
||||||
hass.wait_for_open_port(8123)
|
hass.wait_for_open_port(8123)
|
||||||
hass.succeed("curl --fail http://localhost:8123/lovelace")
|
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"):
|
with subtest("Toggle a binary sensor using MQTT"):
|
||||||
assert '"state": "off"' in hass.succeed(
|
# wait for broker to become available
|
||||||
"curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
|
|
||||||
)
|
|
||||||
hass.wait_until_succeeds(
|
hass.wait_until_succeeds(
|
||||||
"mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
|
"mosquitto_sub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -W 1 -t '*'"
|
||||||
)
|
|
||||||
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"
|
|
||||||
)
|
)
|
||||||
hass.succeed(
|
hass.succeed(
|
||||||
"${hassCli} state edit binary_sensor.mqtt_binary_sensor --json='{\"state\": \"off\"}'"
|
"mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
|
||||||
)
|
|
||||||
assert '"state": "off"' in hass.succeed(
|
|
||||||
"curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
|
|
||||||
)
|
)
|
||||||
with subtest("Print log to ease debugging"):
|
with subtest("Print log to ease debugging"):
|
||||||
output_log = hass.succeed("cat ${configDir}/home-assistant.log")
|
output_log = hass.succeed("cat ${configDir}/home-assistant.log")
|
||||||
@ -107,5 +76,9 @@ in {
|
|||||||
|
|
||||||
with subtest("Check that no errors were logged"):
|
with subtest("Check that no errors were logged"):
|
||||||
assert "ERROR" not in output_log
|
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 ];
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
@ -42,6 +44,8 @@ in {
|
|||||||
startAt = "20:00";
|
startAt = "20:00";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [ cfg.services.nextcloud.occ ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -67,6 +71,8 @@ in {
|
|||||||
in ''
|
in ''
|
||||||
start_all()
|
start_all()
|
||||||
nextcloud.wait_for_unit("multi-user.target")
|
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("curl -sSf http://nextcloud/login")
|
||||||
nextcloud.succeed(
|
nextcloud.succeed(
|
||||||
"${withRcloneEnv} ${copySharedFile}"
|
"${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"):
|
with subtest("test5 user should not be able to run commands under root"):
|
||||||
machine.fail("sudo -u test5 sudo -n -u root true")
|
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")
|
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"):
|
with subtest("users in group 'barfoo' should not be able to keep their environment"):
|
||||||
|
@ -176,7 +176,8 @@ in {
|
|||||||
|
|
||||||
sub checkClientCert ($) {
|
sub checkClientCert ($) {
|
||||||
my $user = $_[0];
|
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".
|
" --x509cafile=/home/$user/.task/keys/ca.cert".
|
||||||
" --x509keyfile=/home/$user/.task/keys/private.key".
|
" --x509keyfile=/home/$user/.task/keys/private.key".
|
||||||
" --x509certfile=/home/$user/.task/keys/public.cert".
|
" --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 {
|
bitwig-studio1.overrideAttrs (oldAttrs: rec {
|
||||||
name = "bitwig-studio-${version}";
|
name = "bitwig-studio-${version}";
|
||||||
version = "3.1.3";
|
version = "3.2.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
||||||
sha256 = "11z5flmp55ywgxyccj3pzhijhaggi42i2pvacg88kcpj0cin57vl";
|
sha256 = "10zb78n75nbriyjah0m3syv3rv7qwbmj590z24hss7lifa3rs784";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
|
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
|
{ stdenv, mkDerivation, lib, fetchzip, cmake, pkgconfig
|
||||||
, alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
|
, 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
|
, qtwebengine, qtxmlpatterns
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -26,7 +27,8 @@ mkDerivation rec {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
|
alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
|
||||||
portaudio portmidi # tesseract
|
portaudio portmidi # tesseract
|
||||||
qtbase qtdeclarative qtscript qtsvg qttools qtwebengine qtxmlpatterns
|
qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
|
||||||
|
qtscript qtsvg qttools qtwebengine qtxmlpatterns
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Pulseaudio command line mixer";
|
description = "Pulseaudio command line mixer";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Features:
|
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
|
- Set the volume for the default sink, the default source or any other device
|
||||||
- List the sinks
|
- List the sinks
|
||||||
- List the sources
|
- List the sources
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
|
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
|
||||||
, alsaLib, asio, avahi, flac, libogg, libvorbis }:
|
, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
@ -33,21 +33,21 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "snapcast";
|
pname = "snapcast";
|
||||||
version = "0.15.0";
|
version = "0.20.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "badaix";
|
owner = "badaix";
|
||||||
repo = "snapcast";
|
repo = "snapcast";
|
||||||
rev = "v${version}";
|
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
|
# snapcast also supports building against tremor but as we have libogg, that's
|
||||||
# not needed
|
# not needed
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
alsaLib asio avahi flac libogg libvorbis
|
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
|
# 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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "kdev-php";
|
pname = "kdev-php";
|
||||||
version = "5.5.1";
|
version = "5.5.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
|
url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
|
||||||
sha256 = "1z3mmlg5srzff0y1pjd4wfdf9k4rzk7gfdvbvzizkiy395qw1phv";
|
sha256 = "0z32x0297g078jk3jhzb4vrf8jhw0qprvqzm9p097h8x0026w42l";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||||
|
@ -1,25 +1,35 @@
|
|||||||
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "micro";
|
pname = "micro";
|
||||||
version = "2.0.3";
|
version = "2.0.5";
|
||||||
|
|
||||||
goPackagePath = "github.com/zyedidia/micro";
|
goPackagePath = "github.com/zyedidia/micro";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zyedidia";
|
owner = "zyedidia";
|
||||||
repo = "micro";
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z";
|
sha256 = "12fyyax1mr0n82s5yhmk90iyyzbh32rppkkpj37c25pal73czdhc";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
|
||||||
subPackages = [ "cmd/micro" ];
|
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;
|
goDeps = ./deps.nix;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
installManPage $src/assets/packaging/micro.1
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://micro-editor.github.io";
|
homepage = "https://micro-editor.github.io";
|
||||||
description = "Modern and intuitive terminal-based text editor";
|
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 = {
|
fetch = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://github.com/zyedidia/clipboard";
|
url = "https://github.com/zyedidia/clipboard";
|
||||||
rev = "241f98e9b197";
|
rev = "7c45b8673834";
|
||||||
sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi";
|
sha256 = "0ag36wd3830d4s6fvpj05v6f662c5rymgdydsj2gq8aaqplfb0v4";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -257,8 +257,8 @@
|
|||||||
fetch = {
|
fetch = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://github.com/zyedidia/tcell";
|
url = "https://github.com/zyedidia/tcell";
|
||||||
rev = "v1.4.4";
|
rev = "v1.4.7";
|
||||||
sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi";
|
sha256 = "1ddaznp0haz35mxfjjh2fmamdrlk1igqg65fz22l5r6vvhcdsfxa";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -104,6 +104,8 @@ in stdenv.mkDerivation rec {
|
|||||||
++ stdenv.lib.optionals luaSupport [
|
++ stdenv.lib.optionals luaSupport [
|
||||||
"--with-lua-prefix=${lua}"
|
"--with-lua-prefix=${lua}"
|
||||||
"--enable-luainterp"
|
"--enable-luainterp"
|
||||||
|
] ++ stdenv.lib.optional lua.pkgs.isLuaJIT [
|
||||||
|
"--with-luajit"
|
||||||
]
|
]
|
||||||
++ stdenv.lib.optionals pythonSupport [
|
++ stdenv.lib.optionals pythonSupport [
|
||||||
"--enable-python${if isPython3 then "3" else ""}interp=yes"
|
"--enable-python${if isPython3 then "3" else ""}interp=yes"
|
||||||
|
@ -10,7 +10,7 @@ let
|
|||||||
[ qscintilla-qt5 gdal jinja2 numpy psycopg2
|
[ qscintilla-qt5 gdal jinja2 numpy psycopg2
|
||||||
chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
|
chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
version = "3.10.4";
|
version = "3.10.7";
|
||||||
pname = "qgis";
|
pname = "qgis";
|
||||||
name = "${pname}-unwrapped-${version}";
|
name = "${pname}-unwrapped-${version}";
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ in mkDerivation rec {
|
|||||||
owner = "qgis";
|
owner = "qgis";
|
||||||
repo = "QGIS";
|
repo = "QGIS";
|
||||||
rev = "final-${lib.replaceStrings ["."] ["_"] version}";
|
rev = "final-${lib.replaceStrings ["."] ["_"] version}";
|
||||||
sha256 = "0d1rsgjgnnq6jgms5bgppz8lkh4518nf90fk0qvxajdfi9j4jn12";
|
sha256 = "0z593n5g3zwhlzhs0z7nlpblz6z2rl3y7y3j1wf1rdx76i8p3qgf";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -1,25 +1,22 @@
|
|||||||
{ stdenv, rustPlatform , fetchFromGitHub, Security }:
|
{ stdenv, rustPlatform , fetchFromGitHub, Security }:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "whitebox_tools";
|
pname = "whitebox_tools";
|
||||||
version = "1.2.0";
|
version = "1.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jblindsay";
|
owner = "jblindsay";
|
||||||
repo = "whitebox-tools";
|
repo = "whitebox-tools";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0zi32d0wrbl2763dcllv2g0liwacsfiza5lkx52620prjjbhby8i";
|
sha256 = "0c9jmfjz6ys65y65zlllv9xvaaavr9jpqc1dc217iywhj07j8k2v";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
||||||
|
|
||||||
cargoSha256 = "13k21akyfqgamywj39bw73sldby1s02vyvxfglxbaqq1x96xcy4i";
|
cargoSha256 = "05w2jimmygg7dc93i8bpjpjc5yj5xfpfkjnbbgw2sq4kh06r5ii4";
|
||||||
|
|
||||||
# failures: structures::polyline::test::test_polyline_split
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "An advanced geospatial data analysis platform";
|
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;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.mpickering ];
|
maintainers = [ maintainers.mpickering ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
@ -11,11 +11,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "drawio";
|
pname = "drawio";
|
||||||
version = "13.2.2";
|
version = "13.3.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
|
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
|
||||||
sha256 = "0npqw4ih047d9s1yyllcvcih2r61fgji4rvzsw88r02mj5q5rgdn";
|
sha256 = "0zvxmqqbgfxad1n9pa4h99l8hys486wziw5yyndxbv1v80p55p0p";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
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 {};
|
kaddressbook = callPackage ./kaddressbook.nix {};
|
||||||
kalarm = callPackage ./kalarm.nix {};
|
kalarm = callPackage ./kalarm.nix {};
|
||||||
kalarmcal = callPackage ./kalarmcal.nix {};
|
kalarmcal = callPackage ./kalarmcal.nix {};
|
||||||
|
kapptemplate = callPackage ./kapptemplate.nix { };
|
||||||
kate = callPackage ./kate.nix {};
|
kate = callPackage ./kate.nix {};
|
||||||
kbreakout = callPackage ./kbreakout.nix {};
|
kbreakout = callPackage ./kbreakout.nix {};
|
||||||
kcachegrind = callPackage ./kcachegrind.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
|
--replace xdg-open ${xdg_utils}/bin/xdg-open
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postBuild = lib.optionalString stdenv.isDarwin "make app";
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
@ -100,7 +98,8 @@ rustPlatform.buildRustPackage rec {
|
|||||||
'' + (
|
'' + (
|
||||||
if stdenv.isDarwin then ''
|
if stdenv.isDarwin then ''
|
||||||
mkdir $out/Applications
|
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 ''
|
'' else ''
|
||||||
install -D extra/linux/Alacritty.desktop -t $out/share/applications/
|
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
|
install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{ stdenv, python3, fetchFromGitHub }:
|
{ stdenv, python3, fetchFromGitHub }:
|
||||||
|
|
||||||
with python3.pkgs; buildPythonApplication rec {
|
with python3.pkgs; buildPythonApplication rec {
|
||||||
version = "4.3";
|
version = "4.4";
|
||||||
pname = "buku";
|
pname = "buku";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jarun";
|
owner = "jarun";
|
||||||
repo = "buku";
|
repo = "buku";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1cq508ymak3g5fhi1n4bdiiqkc86s2l3k4dvzw842vv2x0441cac";
|
sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
|
||||||
};
|
};
|
||||||
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
@ -38,6 +38,7 @@ with python3.pkgs; buildPythonApplication rec {
|
|||||||
click
|
click
|
||||||
html5lib
|
html5lib
|
||||||
vcrpy
|
vcrpy
|
||||||
|
toml
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dbeaver-ce";
|
pname = "dbeaver-ce";
|
||||||
version = "7.1.0";
|
version = "7.1.1";
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
name = "dbeaver";
|
name = "dbeaver";
|
||||||
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
||||||
sha256 = "1q3f5bghm3jw5c7c62ivf32fldjqhmj1a0qlwgqjxyhmfcig0rnb";
|
sha256 = "11c9jvpjg72xkwnni4clwg3inig77s7jz3ik52gk52m6f09brxhs";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -15,15 +15,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
buildInputs = [ readline ncurses gettext ];
|
buildInputs = [ readline ncurses gettext ];
|
||||||
|
|
||||||
configurePhase = ''
|
configureFlags = [ "--prefix=$(out)" ];
|
||||||
autoreconf -fvi
|
|
||||||
./configure
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin/
|
|
||||||
mv src/hstr $out/bin/
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/dvorka/hstr";
|
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
|
install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
# see https://github.com/scheibler/khard/issues/263
|
||||||
|
export COLUMNS=80
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/scheibler/khard";
|
homepage = "https://github.com/scheibler/khard";
|
||||||
description = "Console carddav client";
|
description = "Console carddav client";
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
|
libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
|
||||||
libxkbcommon, libXi, libXext, wayland-protocols, wayland,
|
libxkbcommon, libXi, libXext, wayland-protocols, wayland,
|
||||||
installShellFiles,
|
installShellFiles,
|
||||||
which, dbus,
|
dbus,
|
||||||
Cocoa,
|
Cocoa,
|
||||||
CoreGraphics,
|
CoreGraphics,
|
||||||
Foundation,
|
Foundation,
|
||||||
@ -20,14 +20,14 @@
|
|||||||
with python3Packages;
|
with python3Packages;
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "kitty";
|
pname = "kitty";
|
||||||
version = "0.17.4";
|
version = "0.18.1";
|
||||||
format = "other";
|
format = "other";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kovidgoyal";
|
owner = "kovidgoyal";
|
||||||
repo = "kitty";
|
repo = "kitty";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1rbyj84y8r6h7qd6w7cw58v2abspippignj458ihv2m26i4als2x";
|
sha256 = "1g4mfgygyl143k0k6d3cb8b2l05ahiamlcqs1iqi66pc73cax4z6";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -50,7 +50,7 @@ buildPythonApplication rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkgconfig which sphinx ncurses
|
pkgconfig sphinx ncurses
|
||||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||||
imagemagick
|
imagemagick
|
||||||
libicns # For the png2icns tool.
|
libicns # For the png2icns tool.
|
||||||
@ -63,13 +63,6 @@ buildPythonApplication rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./fix-paths.patch
|
./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 [
|
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||||
./no-lto.patch
|
./no-lto.patch
|
||||||
];
|
];
|
||||||
@ -77,11 +70,23 @@ buildPythonApplication rec {
|
|||||||
# Causes build failure due to warning
|
# Causes build failure due to warning
|
||||||
hardeningDisable = stdenv.lib.optional stdenv.isDarwin "strictoverflow";
|
hardeningDisable = stdenv.lib.optional stdenv.isDarwin "strictoverflow";
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
buildPhase = if stdenv.isDarwin then ''
|
buildPhase = if stdenv.isDarwin then ''
|
||||||
${python.interpreter} setup.py kitty.app --update-check-interval=0
|
${python.interpreter} setup.py kitty.app --update-check-interval=0
|
||||||
make man
|
make man
|
||||||
'' else ''
|
'' 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 = ''
|
installPhase = ''
|
||||||
@ -100,8 +105,6 @@ buildPythonApplication rec {
|
|||||||
wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
|
wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
|
||||||
runHook postInstall
|
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}
|
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 fish > "$out/share/fish/vendor_completions.d/kitty.fish"
|
||||||
"$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash"
|
"$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";
|
homepage = "https://github.com/kovidgoyal/kitty";
|
||||||
description = "A modern, hackable, featureful, OpenGL based terminal emulator";
|
description = "A modern, hackable, featureful, OpenGL based terminal emulator";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
|
changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
|
||||||
platforms = platforms.darwin ++ platforms.linux;
|
platforms = platforms.darwin ++ platforms.linux;
|
||||||
maintainers = with maintainers; [ tex rvolosatovs ma27 Luflosi ];
|
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
|
--- a/setup.py
|
||||||
+++ b/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', ''))
|
cppflags += shlex.split(os.environ.get('CPPFLAGS', ''))
|
||||||
cflags += shlex.split(os.environ.get('CFLAGS', ''))
|
cflags += shlex.split(os.environ.get('CFLAGS', ''))
|
||||||
ldflags += shlex.split(os.environ.get('LDFLAGS', ''))
|
ldflags += shlex.split(os.environ.get('LDFLAGS', ''))
|
||||||
|
@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "moolticute";
|
pname = "moolticute";
|
||||||
version = "0.43.16";
|
version = "0.43.19";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mooltipass";
|
owner = "mooltipass";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1gx1hbxiilggwfw0jspyk2cw92r6qs9a8yqa8x1d2ndf493mjx9y";
|
sha256 = "1rpkiyhy7z5zq0rmn0kj2kva57bnhkhvaplrlhfczv99h1kwsixg";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "udev" ];
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "brave";
|
pname = "brave";
|
||||||
version = "1.8.95";
|
version = "1.10.97";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||||
sha256 = "1mlffg2v31b42gj354w5yv0yzlqc2f4f3cmdnddzkplw10jgw6f1";
|
sha256 = "1qwk75k8km2sy7l3m4k5m383sl75dph4dyrp8hd65x5hnpip67yi";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
# This file is autogenerated from update.sh in the same directory.
|
# This file is autogenerated from update.sh in the same directory.
|
||||||
{
|
{
|
||||||
beta = {
|
beta = {
|
||||||
sha256 = "0wsqxq8xxcafmjxsjkagysrcbr6qryiyqn6m3ysp256aam7z3d88";
|
sha256 = "1s49qxg0gfmhm1lf5big6hprral21dbzjx0f1cp3xfvag9y61i7h";
|
||||||
sha256bin64 = "03jff1sdv05hbn37cw0ij0r4rils0q11lnnhxg52igg633jzwyc1";
|
sha256bin64 = "1sjvi3qmpwpr51442324a853k6s0k59k4809k8j5sjv7h6arw0sm";
|
||||||
version = "84.0.4147.45";
|
version = "84.0.4147.56";
|
||||||
};
|
};
|
||||||
dev = {
|
dev = {
|
||||||
sha256 = "16rmzyzjmxmhmr5yqbzqbwf5sq94iqcwlm04fkafiwcycd17nyhs";
|
sha256 = "1gxa0jg7xff87z7wvllp84a3ii1ypgy4vfzgxs4k7kzg5x0412vi";
|
||||||
sha256bin64 = "0wjmc1wdmwiq9d1f5gk4c9jkj1p116kaz9nb0hvhjf01iv07xl2m";
|
sha256bin64 = "0swmn37rmvjvvdcrd002qg1wcvna06y14s3kx34bfr4zxhqk3lby";
|
||||||
version = "85.0.4168.2";
|
version = "85.0.4173.0";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
sha256 = "0bvy17ymlih87n4ymnzvyn0m34ghmr1yasvy7gxv02qbw6i57lfg";
|
sha256 = "1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v";
|
||||||
sha256bin64 = "00hjr5y0cczs6h2pxrigpmjiv24456948v32q7mr7x5ysr5kxpn6";
|
sha256bin64 = "1ggyv2b50sclnqph0r40lb8p9h3pq9aq4fj1wdszhwc4rb0cj746";
|
||||||
version = "83.0.4103.106";
|
version = "83.0.4103.116";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
, dbus
|
, dbus
|
||||||
, fontconfig
|
, fontconfig
|
||||||
, freetype
|
, freetype
|
||||||
, gconf
|
|
||||||
, gdk-pixbuf
|
, gdk-pixbuf
|
||||||
, glib
|
, glib
|
||||||
, glibc
|
, glibc
|
||||||
@ -27,9 +26,7 @@
|
|||||||
, libXinerama
|
, libXinerama
|
||||||
, libXrender
|
, libXrender
|
||||||
, libXt
|
, libXt
|
||||||
, libcanberra-gtk2
|
, libcanberra
|
||||||
, libgnome
|
|
||||||
, libgnomeui
|
|
||||||
, libnotify
|
, libnotify
|
||||||
, gnome3
|
, gnome3
|
||||||
, libGLU, libGL
|
, libGLU, libGL
|
||||||
@ -103,7 +100,6 @@ stdenv.mkDerivation {
|
|||||||
dbus
|
dbus
|
||||||
fontconfig
|
fontconfig
|
||||||
freetype
|
freetype
|
||||||
gconf
|
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
glib
|
glib
|
||||||
glibc
|
glibc
|
||||||
@ -122,9 +118,7 @@ stdenv.mkDerivation {
|
|||||||
libXinerama
|
libXinerama
|
||||||
libXrender
|
libXrender
|
||||||
libXt
|
libXt
|
||||||
libcanberra-gtk2
|
libcanberra
|
||||||
libgnome
|
|
||||||
libgnomeui
|
|
||||||
libnotify
|
libnotify
|
||||||
libGLU libGL
|
libGLU libGL
|
||||||
nspr
|
nspr
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
, src, unpackPhase ? null, patches ? []
|
, src, unpackPhase ? null, patches ? []
|
||||||
, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }:
|
, 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
|
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
|
||||||
, freetype, fontconfig, file, nspr, nss, libnotify
|
, freetype, fontconfig, file, nspr, nss, libnotify
|
||||||
, yasm, libGLU, libGL, sqlite, unzip, makeWrapper
|
, yasm, libGLU, libGL, sqlite, unzip, makeWrapper
|
||||||
@ -104,7 +104,7 @@ stdenv.mkDerivation ({
|
|||||||
patchFlags = [ "-p1" "-l" ];
|
patchFlags = [ "-p1" "-l" ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gtk2 perl zip libIDL libjpeg zlib bzip2
|
gtk2 perl zip libjpeg zlib bzip2
|
||||||
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
|
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
|
||||||
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
|
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
|
||||||
libnotify xorg.pixman yasm libGLU libGL
|
libnotify xorg.pixman yasm libGLU libGL
|
||||||
|
@ -18,11 +18,11 @@ let
|
|||||||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "vivaldi";
|
pname = "vivaldi";
|
||||||
version = "3.0.1874.38-1";
|
version = "3.1.1929.45-1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
|
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
|
||||||
sha256 = "03667f8rlk8shxq6ghjg4q9hqhsaw4gwpqnjpyili49qczd5423w";
|
sha256 = "0pg16zs9fcr6b360igszpkia3i8i5xf4m0hs1b2a17lf8vkldix9";
|
||||||
};
|
};
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
|
@ -10,7 +10,7 @@ buildGoModule rec {
|
|||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1453qkd9s4z4r0xzmv8ym7qfg33szf6gizfkb5zxj590fcbsgnd7";
|
sha256 = "1453qkd9s4z4r0xzmv8ym7qfg33szf6gizfkb5zxj590fcbsgnd7";
|
||||||
};
|
};
|
||||||
vendorSha256 = null;
|
vendorSha256 = "0j25m56cwzjd9b75v7xlb26q81bsmln77k23h9n8v2f2gqwwpkrl";
|
||||||
|
|
||||||
subPackages = [ "cmd/helm" ];
|
subPackages = [ "cmd/helm" ];
|
||||||
buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
|
buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
|
{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
|
||||||
|
|
||||||
{ lib, stdenv, python3, fetchFromGitHub }:
|
{ lib, stdenv, python3, pkgs, fetchFromGitHub }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# TODO: This package requires qt5Full to launch
|
|
||||||
defaultOverrides = commonOverrides ++ [
|
defaultOverrides = commonOverrides ++ [
|
||||||
(mkOverride "jsonschema" "3.2.0"
|
(mkOverride "jsonschema" "3.2.0"
|
||||||
"0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
|
"0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
|
||||||
@ -27,6 +26,7 @@ in python.pkgs.buildPythonPackage rec {
|
|||||||
raven psutil jsonschema # tox for check
|
raven psutil jsonschema # tox for check
|
||||||
# Runtime dependencies
|
# Runtime dependencies
|
||||||
sip (pyqt5.override { withWebSockets = true; }) distro setuptools
|
sip (pyqt5.override { withWebSockets = true; }) distro setuptools
|
||||||
|
pkgs.qt5Full
|
||||||
];
|
];
|
||||||
|
|
||||||
doCheck = false; # Failing
|
doCheck = false; # Failing
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
|
, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
|
||||||
, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
|
, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
|
||||||
, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
|
, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
|
||||||
, mesa, nspr, nss, pango, systemd
|
, mesa, nspr, nss, pango, systemd, libappindicator-gtk3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
|
|||||||
gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
|
gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
|
||||||
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
|
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
|
||||||
libXtst nspr nss libxcb pango systemd libXScrnSaver
|
libXtst nspr nss libxcb pango systemd libXScrnSaver
|
||||||
|
libappindicator-gtk3
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -2,19 +2,18 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "gomuks";
|
pname = "gomuks";
|
||||||
version = "0.1.0";
|
version = "0.1.2";
|
||||||
|
|
||||||
goPackagePath = "maunium.net/go/gomuks";
|
goPackagePath = "maunium.net/go/gomuks";
|
||||||
patches = [ ./gomod.patch ];
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tulir";
|
owner = "tulir";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v" + version;
|
rev = "v" + version;
|
||||||
sha256 = "1dcqkyxiqiyivzn85fwkjy8xs9yk89810x9mvkaiz0dx3ha57zhi";
|
sha256 = "11bainw4w9fdrhv2jm0j9fw0f7r4cxlblyazbhckgr4j9q900383";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "1mfi167mycnnlq8dwh1kkx6drhhi4ib58aad5fwc90ckdaq1rpb7";
|
vendorSha256 = "11rk7pma6dr6fsyz8hpjyr7nc2c7ichh5m7ds07m89gzk6ar55gb";
|
||||||
|
|
||||||
buildInputs = [ olm ];
|
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,
|
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
|
||||||
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
|
attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
|
||||||
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
|
prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
|
||||||
|
setuptools,
|
||||||
|
|
||||||
pytest, faker, pytest-aiohttp, aioresponses,
|
pytest, faker, pytest-aiohttp, aioresponses,
|
||||||
|
|
||||||
@ -9,7 +10,7 @@
|
|||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "pantalaimon";
|
pname = "pantalaimon";
|
||||||
version = "0.6.1";
|
version = "0.6.3";
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
@ -18,7 +19,7 @@ buildPythonApplication rec {
|
|||||||
owner = "matrix-org";
|
owner = "matrix-org";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0hn3731jh6xwyjayzdf41skhpdx002qs7n5l7ffh4dplhnv9vbxx";
|
sha256 = "1h1z701sj1qgcqlsk3pnzifnbcg9fshl7v6271h9x54hm3d6hg8a";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
@ -32,6 +33,7 @@ buildPythonApplication rec {
|
|||||||
matrix-nio
|
matrix-nio
|
||||||
peewee
|
peewee
|
||||||
prompt_toolkit
|
prompt_toolkit
|
||||||
|
setuptools
|
||||||
] ++ lib.optional enableDbusUi [
|
] ++ lib.optional enableDbusUi [
|
||||||
dbus-python
|
dbus-python
|
||||||
notify2
|
notify2
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "psi-plus";
|
pname = "psi-plus";
|
||||||
version = "1.4.1231";
|
version = "1.4.1407";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "psi-plus";
|
owner = "psi-plus";
|
||||||
repo = "psi-plus-snapshots";
|
repo = "psi-plus-snapshots";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0m5p8is8nk3g0cbwiq73cff9nn2y09fcnh1pzc6rlqqhmz1acg4i";
|
sha256 = "0gp5rk7km2fzw109wil6s9x49x5q1qbw9mnkjs58dpzvxn74ylhw";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "rambox-pro";
|
pname = "rambox-pro";
|
||||||
version = "1.3.1";
|
version = "1.3.2";
|
||||||
|
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
|
url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
|
||||||
sha256 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1";
|
sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "riot-desktop",
|
"name": "riot-desktop",
|
||||||
"productName": "Riot",
|
"productName": "Riot",
|
||||||
"main": "src/electron-main.js",
|
"main": "src/electron-main.js",
|
||||||
"version": "1.6.5",
|
"version": "1.6.6",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "New Vector Ltd.",
|
"author": "New Vector Ltd.",
|
||||||
"repository": {
|
"repository": {
|
||||||
@ -48,17 +48,18 @@
|
|||||||
"find-npm-prefix": "^1.0.2",
|
"find-npm-prefix": "^1.0.2",
|
||||||
"fs-extra": "^8.1.0",
|
"fs-extra": "^8.1.0",
|
||||||
"glob": "^7.1.6",
|
"glob": "^7.1.6",
|
||||||
"matrix-js-sdk": "6.2.2",
|
"matrix-js-sdk": "7.0.0",
|
||||||
"mkdirp": "^1.0.3",
|
"mkdirp": "^1.0.3",
|
||||||
"needle": "^2.3.2",
|
"needle": "^2.5.0",
|
||||||
"node-pre-gyp": "^0.14.0",
|
"node-pre-gyp": "^0.15.0",
|
||||||
"npm": "^6.13.7",
|
"npm": "^6.13.7",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"semver": "^7.1.3",
|
"semver": "^7.1.3",
|
||||||
"tar": "^6.0.1"
|
"tar": "^6.0.1"
|
||||||
},
|
},
|
||||||
"hakDependencies": {
|
"hakDependencies": {
|
||||||
"matrix-seshat": "^1.3.3"
|
"matrix-seshat": "^1.3.3",
|
||||||
|
"keytar": "^5.6.0"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "im.riot.app",
|
"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 {
|
path = fetchurl {
|
||||||
name = "matrix_js_sdk___matrix_js_sdk_6.2.2.tgz";
|
name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
|
||||||
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.2.tgz";
|
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.0.0.tgz";
|
||||||
sha1 = "103d951f61945217b110962f55ae43996756f615";
|
sha1 = "da2b24e57574379c3d8f7065eb68ea6c479d9806";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -3273,6 +3273,14 @@
|
|||||||
sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f";
|
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";
|
name = "minipass___minipass_2.9.0.tgz";
|
||||||
path = fetchurl {
|
path = fetchurl {
|
||||||
@ -3321,6 +3329,14 @@
|
|||||||
sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
|
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";
|
name = "mkdirp___mkdirp_1.0.3.tgz";
|
||||||
path = fetchurl {
|
path = fetchurl {
|
||||||
@ -3378,11 +3394,11 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "needle___needle_2.3.2.tgz";
|
name = "needle___needle_2.5.0.tgz";
|
||||||
path = fetchurl {
|
path = fetchurl {
|
||||||
name = "needle___needle_2.3.2.tgz";
|
name = "needle___needle_2.5.0.tgz";
|
||||||
url = "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz";
|
url = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz";
|
||||||
sha1 = "3342dea100b7160960a450dc8c22160ac712a528";
|
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 {
|
path = fetchurl {
|
||||||
name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
|
name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
|
||||||
url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
|
url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
|
||||||
sha1 = "9a0596533b877289bcad4e143982ca3d904ddc83";
|
sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
executableName = "riot-desktop";
|
executableName = "riot-desktop";
|
||||||
version = "1.6.5";
|
version = "1.6.6";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vector-im";
|
owner = "vector-im";
|
||||||
repo = "riot-desktop";
|
repo = "riot-desktop";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1snmfn98z63a8ahh5c7y7h00i8qsdq6wsnidmjjrkzcz3mchfq60";
|
sha256 = "0yrybi6cv3lj0fq4ab4rzjm9l4flfw97hkwzlp7zzixb3z9h09h8";
|
||||||
};
|
};
|
||||||
electron = electron_7;
|
electron = electron_7;
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "riot-web";
|
pname = "riot-web";
|
||||||
version = "1.6.5";
|
version = "1.6.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||||
sha256 = "0mx7ql76cbivc0d9gzix51bc1rdp9yg9vjx05mbf5r9sxrwmihz5";
|
sha256 = "0j88wcha5rr6qaxik4m90v9mgfcj3r9nb4gpd2dzi7m1zf7kivkw";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -19,12 +19,12 @@ with lib;
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "telegram-desktop";
|
pname = "telegram-desktop";
|
||||||
version = "2.1.12";
|
version = "2.1.13";
|
||||||
|
|
||||||
# Telegram-Desktop with submodules
|
# Telegram-Desktop with submodules
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
|
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
|
||||||
sha256 = "1b9kgib9dxjcfnw2zdbqd12ikcswkl35nwy9m47x5jvy3glxg6m8";
|
sha256 = "0mq3f7faxn1hfkhv5n37y5iajjnm38s2in631046m0q7c4w3lrfi";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "ipfs";
|
pname = "ipfs";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
|
|
||||||
# go-ipfs makes changes to it's source tarball that don't match the git source.
|
# go-ipfs makes changes to it's source tarball that don't match the git source.
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
|
url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
|
||||||
sha256 = "0lpilycjbc1g9adp4d5kryfprixj18hg3235fnivakmv7fy2akkm";
|
sha256 = "14bgq2j2bjjy0pspy2lsj5dm3w9rmfha0l8kyq5ig86yhc4nzn80";
|
||||||
};
|
};
|
||||||
|
|
||||||
# tarball contains multiple files/directories
|
# 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
|
, fetchFromGitHub
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
buildGoModule rec {
|
||||||
rev = "ea0df7bee433fedae5716906ea56141f92b9ce53";
|
|
||||||
in buildGoModule rec {
|
|
||||||
pname = "aerc";
|
pname = "aerc";
|
||||||
version = "unstable-2020-02-01";
|
version = "0.4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz";
|
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
|
||||||
sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9";
|
sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
|
||||||
};
|
};
|
||||||
|
|
||||||
libvterm = fetchFromGitHub {
|
libvterm = fetchFromGitHub {
|
||||||
@ -22,7 +20,7 @@ in buildGoModule rec {
|
|||||||
sha256 = "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6";
|
sha256 = "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "0rnyjjlsxsi0y23m6ckyd52562m33qr35fvdcdzy31mbfpi8kl2k";
|
vendorSha256 = "1rqn36510m0yb7k4bvq2hgirr3z8a2h5xa7cq5mb84xsmhvf0g69";
|
||||||
|
|
||||||
overrideModAttrs = (_: {
|
overrideModAttrs = (_: {
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
|
@ -27,11 +27,11 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "mutt";
|
pname = "mutt";
|
||||||
version = "1.14.4";
|
version = "1.14.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
|
url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
|
||||||
sha256 = "1hykkq3m7kqic5r7vzg45xaww7415fv5i2d03slzykqb47w5d3na";
|
sha256 = "0p1xiqzmkqlzy5yi4l0dh0lacdq300zdj48zk0fir8j1pp512sri";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = optional smimeSupport (fetchpatch {
|
patches = optional smimeSupport (fetchpatch {
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
|
{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
|
||||||
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
|
, 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
|
, glibcLocales
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "20200501";
|
version = "20200619";
|
||||||
pname = "neomutt";
|
pname = "neomutt";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "neomutt";
|
owner = "neomutt";
|
||||||
repo = "neomutt";
|
repo = "neomutt";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1xrs2bagrcg489zp7g39l3rrpgz8n1ji9cbr21wrnasfbhqcsmnx";
|
sha256 = "0dhdpd0wdk5bam0q7cvjy4f451ai0mapmyrar7r7m5dnn6lcwvfv";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
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;
|
enableParallelBuilding = true;
|
||||||
@ -42,12 +42,10 @@ stdenv.mkDerivation rec {
|
|||||||
# and use a far more comprehensive list than the one shipped with neomutt
|
# and use a far more comprehensive list than the one shipped with neomutt
|
||||||
substituteInPlace sendlib.c \
|
substituteInPlace sendlib.c \
|
||||||
--replace /etc/mime.types ${mailcap}/etc/mime.types
|
--replace /etc/mime.types ${mailcap}/etc/mime.types
|
||||||
|
'';
|
||||||
|
|
||||||
# The string conversion tests all fail with the first version of neomutt
|
preBuild = ''
|
||||||
# that has tests (20180223) as well as 20180716 so we disable them for now.
|
export HOME=$(mktemp -d)
|
||||||
# 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
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
@ -60,6 +58,9 @@ stdenv.mkDerivation rec {
|
|||||||
"--sasl"
|
"--sasl"
|
||||||
"--with-homespool=mailbox"
|
"--with-homespool=mailbox"
|
||||||
"--with-mailpath="
|
"--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
|
# Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
|
||||||
"ac_cv_path_SENDMAIL=sendmail"
|
"ac_cv_path_SENDMAIL=sendmail"
|
||||||
"--zlib"
|
"--zlib"
|
||||||
@ -80,16 +81,15 @@ stdenv.mkDerivation rec {
|
|||||||
cp -r ${fetchFromGitHub {
|
cp -r ${fetchFromGitHub {
|
||||||
owner = "neomutt";
|
owner = "neomutt";
|
||||||
repo = "neomutt-test-files";
|
repo = "neomutt-test-files";
|
||||||
rev = "1ee274e9ae1330fb901eb7b8275b3079d7869222";
|
rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
|
||||||
sha256 = "0dhilz4rr7616jh8jcvh50a3rr09in43nsv72mm6f3vfklcqincp";
|
sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
|
||||||
}} $(pwd)/test-files
|
}} $(pwd)/test-files
|
||||||
|
chmod -R +w test-files
|
||||||
(cd test-files && ./setup.sh)
|
(cd test-files && ./setup.sh)
|
||||||
|
|
||||||
export NEOMUTT_TEST_DIR=$(pwd)/test-files
|
export NEOMUTT_TEST_DIR=$(pwd)/test-files
|
||||||
export LC_ALL="en_US.UTF-8"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
checkInputs = [ glibcLocales ];
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
postCheck = "unset NEOMUTT_TEST_DIR";
|
postCheck = "unset NEOMUTT_TEST_DIR";
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{ stdenv, fetchurl, config, makeWrapper
|
{ stdenv, fetchurl, config, makeWrapper
|
||||||
, gconf
|
|
||||||
, alsaLib
|
, alsaLib
|
||||||
, at-spi2-atk
|
, at-spi2-atk
|
||||||
, atk
|
, atk
|
||||||
@ -13,8 +12,6 @@
|
|||||||
, gdk-pixbuf
|
, gdk-pixbuf
|
||||||
, glib
|
, glib
|
||||||
, glibc
|
, glibc
|
||||||
, gst-plugins-base
|
|
||||||
, gstreamer
|
|
||||||
, gtk2
|
, gtk2
|
||||||
, gtk3
|
, gtk3
|
||||||
, kerberos
|
, kerberos
|
||||||
@ -30,9 +27,7 @@
|
|||||||
, libXrender
|
, libXrender
|
||||||
, libXt
|
, libXt
|
||||||
, libxcb
|
, libxcb
|
||||||
, libcanberra-gtk2
|
, libcanberra
|
||||||
, libgnome
|
|
||||||
, libgnomeui
|
|
||||||
, gnome3
|
, gnome3
|
||||||
, libGLU, libGL
|
, libGLU, libGL
|
||||||
, nspr
|
, nspr
|
||||||
@ -82,7 +77,6 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath
|
libPath = stdenv.lib.makeLibraryPath
|
||||||
[ stdenv.cc.cc
|
[ stdenv.cc.cc
|
||||||
gconf
|
|
||||||
alsaLib
|
alsaLib
|
||||||
at-spi2-atk
|
at-spi2-atk
|
||||||
atk
|
atk
|
||||||
@ -96,8 +90,6 @@ stdenv.mkDerivation {
|
|||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
glib
|
glib
|
||||||
glibc
|
glibc
|
||||||
gst-plugins-base
|
|
||||||
gstreamer
|
|
||||||
gtk2
|
gtk2
|
||||||
gtk3
|
gtk3
|
||||||
kerberos
|
kerberos
|
||||||
@ -113,9 +105,7 @@ stdenv.mkDerivation {
|
|||||||
libXrender
|
libXrender
|
||||||
libXt
|
libXt
|
||||||
libxcb
|
libxcb
|
||||||
libcanberra-gtk2
|
libcanberra
|
||||||
libgnome
|
|
||||||
libgnomeui
|
|
||||||
libGLU libGL
|
libGLU libGL
|
||||||
nspr
|
nspr
|
||||||
nss
|
nss
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
, lib
|
, lib
|
||||||
, libGL
|
, libGL
|
||||||
, libGLU
|
, libGLU
|
||||||
, libIDL
|
|
||||||
, libevent
|
, libevent
|
||||||
, libjpeg
|
, libjpeg
|
||||||
, libnotify
|
, libnotify
|
||||||
@ -113,7 +112,6 @@ stdenv.mkDerivation rec {
|
|||||||
jemalloc
|
jemalloc
|
||||||
libGL
|
libGL
|
||||||
libGLU
|
libGLU
|
||||||
libIDL
|
|
||||||
libevent
|
libevent
|
||||||
libjpeg
|
libjpeg
|
||||||
libnotify
|
libnotify
|
||||||
|
@ -9,13 +9,13 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "resilio-sync";
|
pname = "resilio-sync";
|
||||||
version = "2.7.0";
|
version = "2.7.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
|
url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
|
||||||
sha256 = {
|
sha256 = {
|
||||||
x86_64-linux = "17vw4kyggmi8phm91jx1skkd7vrdhbahibv6d6zm14q87r01a56f";
|
x86_64-linux = "1gdjpwdg7cpig68wsl3b8w1y12391dh5ipg7g19kr30s6wr3avvm";
|
||||||
i686-linux = "0yvy3lif2g4jchcp5q1r5b8ndj8009pcq5js7r0kl20bmmcmzklg";
|
i686-linux = "1b6pzckaixfzhjf38amrkg8pahh2p3jg6cgfacswdx7cjb4a0c4i";
|
||||||
}.${stdenv.hostPlatform.system};
|
}.${stdenv.hostPlatform.system};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user