Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2018-12-18 09:22:17 +01:00
commit 826ab7026e
638 changed files with 16450 additions and 12592 deletions

View File

@ -2500,17 +2500,17 @@ addEnvHooks "$hostOffset" myBashFunction
<listitem>
<para>
This hook will make a build pause instead of stopping when a failure
happen. It prevents nix to cleanup the build environment immediatly and
happens. It prevents nix from cleaning up the build environment immediately and
allows the user to attach to a build environment using the
<command>cntr</command> command. On build error it will print the
instruction that are neccessary for <command>cntr</command>. Installing
<command>cntr</command> command. Upon build error it will print
instructions on how to use <command>cntr</command>. Installing
cntr and running the command will provide shell access to the build
sandbox of failed build. At <filename>/var/lib/cntr</filename> the
sandbox filesystem is mounted. All commands and files of the system are
sandboxed filesystem is mounted. All commands and files of the system are
still accessible within the shell. To execute commands from the sandbox
use the cntr exec subcommand. Note that <command>cntr</command> also
needs to be executed on the machine that is doing the build, which might
be not the case when remote builders are enabled.
not be the case when remote builders are enabled.
<command>cntr</command> is only supported on Linux-based platforms. To
use it first add <literal>cntr</literal> to your
<literal>environment.systemPackages</literal> on NixOS or alternatively to

View File

@ -94,6 +94,15 @@ rec {
attrValues = builtins.attrValues or (attrs: attrVals (attrNames attrs) attrs);
/* Given a set of attribute names, return the set of the corresponding
attributes from the given set.
Example:
getAttrs [ "a" "b" ] { a = 1; b = 2; c = 3; }
=> { a = 1; b = 2; }
*/
getAttrs = names: attrs: genAttrs names (name: attrs.${name});
/* Collect each attribute named `attr' from a list of attribute
sets. Sets that don't contain the named attribute are ignored.

View File

@ -61,10 +61,10 @@ let
boolToString mergeAttrs flip mapNullable inNixShell min max
importJSON warn info nixpkgsVersion version mod compare
splitByAndCompare functionArgs setFunctionArgs isFunction;
inherit (fixedPoints) fix fix' extends composeExtensions
inherit (fixedPoints) fix fix' converge extends composeExtensions
makeExtensible makeExtensibleWithCustomName;
inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
getAttrFromPath attrVals attrValues catAttrs filterAttrs
getAttrFromPath attrVals attrValues getAttrs catAttrs filterAttrs
filterAttrsRecursive foldAttrs collect nameValuePair mapAttrs
mapAttrs' mapAttrsToList mapAttrsRecursive mapAttrsRecursiveCond
genAttrs isDerivation toDerivation optionalAttrs

View File

@ -24,6 +24,16 @@ rec {
# for a concrete example.
fix' = f: let x = f x // { __unfix__ = f; }; in x;
# Return the fixpoint that `f` converges to when called recursively, starting
# with the input `x`.
#
# nix-repl> converge (x: x / 2) 16
# 0
converge = f: x:
if (f x) == x
then x
else converge f (f x);
# Modify the contents of an explicitly recursive attribute set in a way that
# honors `self`-references. This is accomplished with a function
#

View File

@ -505,6 +505,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
free = false;
};
nasa13 = spdx {
spdxId = "NASA-1.3";
fullName = "NASA Open Source Agreement 1.3";
free = false;
};
ncsa = spdx {
spdxId = "NCSA";
fullName = "University of Illinois/NCSA Open Source License";

View File

@ -401,6 +401,11 @@
github = "aszlig";
name = "aszlig";
};
atnnn = {
email = "etienne@atnnn.com";
github = "atnnn";
name = "Etienne Laurin";
};
auntie = {
email = "auntieNeo@gmail.com";
github = "auntie";
@ -1889,6 +1894,11 @@
github = "ironpinguin";
name = "Michele Catalano";
};
ivan = {
email = "ivan@ludios.org";
github = "ivan";
name = "Ivan Kozik";
};
ivan-tkatchev = {
email = "tkatchev@gmail.com";
name = "Ivan Tkatchev";
@ -1918,6 +1928,11 @@
github = "jagajaga";
name = "Arseniy Seroka";
};
jakelogemann = {
email = "jake.logemann@gmail.com";
github = "jakelogemann";
name = "Jake Logemann";
};
jammerful = {
email = "jammerful@gmail.com";
github = "jammerful";
@ -3414,6 +3429,11 @@
github = "pkmx";
name = "Chih-Mao Chen";
};
plchldr = {
email = "mail@oddco.de";
github = "plchldr";
name = "Jonas Beyer";
};
plcplc = {
email = "plcplc@gmail.com";
github = "plcplc";
@ -4278,6 +4298,11 @@
github = "talyz";
name = "Kim Lindberger";
};
taneb = {
email = "nvd1234@gmail.com";
github = "Taneb";
name = "Nathan van Doorn";
};
tari = {
email = "peter@taricorp.net";
github = "tari";

View File

@ -245,6 +245,65 @@
options.
</para>
</listitem>
<listitem>
<para>
The <literal>nscd</literal> service now disables all caching of
<literal>passwd</literal> and <literal>group</literal> databases by
default. This was interferring with the correct functioning of the
<literal>libnss_systemd.so</literal> module which is used by
<literal>systemd</literal> to manage uids and usernames in the presence of
<literal>DynamicUser=</literal> in systemd services. This was already the
default behaviour in presence of <literal>services.sssd.enable =
true</literal> because nscd caching would interfere with
<literal>sssd</literal> in unpredictable ways as well. Because we're
using nscd not for caching, but for convincing glibc to find NSS modules
in the nix store instead of an absolute path, we have decided to disable
caching globally now, as it's usually not the behaviour the user wants and
can lead to surprising behaviour. Furthermore, negative caching of host
lookups is also disabled now by default. This should fix the issue of dns
lookups failing in the presence of an unreliable network.
</para>
<para>
If the old behaviour is desired, this can be restored by setting
the <literal>services.nscd.config</literal> option
with the desired caching parameters.
<programlisting>
services.nscd.config =
''
server-user nscd
threads 1
paranoia no
debug-level 0
enable-cache passwd yes
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd no
shared passwd yes
enable-cache group yes
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
check-files group yes
persistent group no
shared group yes
enable-cache hosts yes
positive-time-to-live hosts 600
negative-time-to-live hosts 5
suggested-size hosts 211
check-files hosts yes
persistent hosts no
shared hosts yes
'';
</programlisting>
See <link xlink:href="https://github.com/NixOS/nixpkgs/pull/50316">#50316</link>
for details.
</para>
</listitem>
<listitem>
<para>
GitLab Shell previously used the nix store paths for the
@ -299,6 +358,18 @@
<option>services.kubernetes.addons.dns.replicas</option>.
</para>
</listitem>
<listitem>
<para>
The quassel-webserver package and module was removed from nixpkgs due to the lack
of maintainers.
</para>
</listitem>
<listitem>
<para>
The owncloud server packages and httpd subservice module were removed
from nixpkgs due to the lack of maintainers.
</para>
</listitem>
</itemizedlist>
</section>
</section>

View File

@ -47,7 +47,8 @@ if test -n "$bootable"; then
isoBootFlags="-eltorito-boot ${bootImage}
-eltorito-catalog .boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table"
-no-emul-boot -boot-load-size 4 -boot-info-table
--sort-weight 1 /isolinux" # Make sure isolinux is near the beginning of the ISO
fi
if test -n "$usbBootable"; then
@ -112,7 +113,7 @@ xorriso="xorriso
-r
-path-list pathlist
--sort-weight 0 /
--sort-weight 1 /isolinux" # Make sure isolinux is near the beginning of the ISO
"
$xorriso -output $out/iso/$isoName

View File

@ -156,9 +156,23 @@ in rec {
test = passMeta (runTests driver);
report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
in (if makeCoverageReport then report else test) // {
inherit nodes driver test;
};
nodeNames = builtins.attrNames nodes;
invalidNodeNames = lib.filter
(node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames;
in
if lib.length invalidNodeNames > 0 then
throw ''
Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
All machines are references as perl variables in the testing framework which will break the
script when special characters are allowed.
Please stick to alphanumeric chars and underscores as separation.
''
else
(if makeCoverageReport then report else test) // {
inherit nodes driver test;
};
runInMachine =
{ drv

View File

@ -0,0 +1,25 @@
{ config, lib, ... }:
with lib;
{
options = {
appstream.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to install files to support the
<link xlink:href="https://www.freedesktop.org/software/appstream/docs/index.html">AppStream metadata specification</link>.
'';
};
};
config = mkIf config.appstream.enable {
environment.pathsToLink = [
# per component metadata
"/share/metainfo"
# legacy path for above
"/share/appdata"
];
};
}

View File

@ -0,0 +1,22 @@
{ config, lib, ... }:
with lib;
{
options = {
xdg.sounds.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to install files to support the
<link xlink:href="https://www.freedesktop.org/wiki/Specifications/sound-theme-spec/">XDG Sound Theme specification</link>.
'';
};
};
config = mkIf config.xdg.sounds.enable {
environment.pathsToLink = [
"/share/sounds"
];
};
}

View File

@ -101,8 +101,8 @@ in
config = mkIf enabled {
assertions = [
{
assertion = config.services.xserver.displayManager.gdm.wayland;
message = "NVIDIA drivers don't support wayland";
assertion = with config.services.xserver.displayManager; gdm.enable -> !gdm.wayland;
message = "NVIDIA drivers don't support wayland, set services.xserver.displayManager.gdm.wayland=false";
}
{
assertion = !optimusCfg.enable ||

View File

@ -50,7 +50,7 @@ let
finalCfg = {
name = "NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}";
params = "init=${config.system.build.toplevel}/init ${additional} ${toString config.boot.kernelParams}";
image = "/boot/bzImage";
image = "/boot/${config.system.boot.loader.kernelFile}";
initrd = "/boot/initrd";
};
in
@ -163,7 +163,7 @@ let
cp -v ${pkgs.refind}/share/refind/refind_x64.efi $out/EFI/boot/
''
else
"# No refind for ia32"
"# No refind for ${targetArch}"
;
grubMenuCfg = ''
@ -222,18 +222,34 @@ let
efiDir = pkgs.runCommand "efi-directory" {} ''
mkdir -p $out/EFI/boot/
# ALWAYS required modules.
MODULES="fat iso9660 part_gpt part_msdos \
normal boot linux configfile loopback chain halt \
efifwsetup efi_gop efi_uga \
efifwsetup efi_gop \
ls search search_label search_fs_uuid search_fs_file \
gfxmenu gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf \
videoinfo png \
echo serial \
"
echo "Building GRUB with modules:"
for mod in $MODULES; do
echo " - $mod"
done
# Modules that may or may not be available per-platform.
echo "Adding additional modules:"
for mod in efi_uga; do
if [ -f ${pkgs.grub2_efi}/lib/grub/${pkgs.grub2_efi.grubTarget}/$mod.mod ]; then
echo " - $mod"
MODULES+=" $mod"
fi
done
# Make our own efi program, we can't rely on "grub-install" since it seems to
# probe for devices, even with --skip-fs-probe.
${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/${if targetArch == "x64" then "bootx64" else "bootia32"}.efi -p /EFI/boot -O ${if targetArch == "x64" then "x86_64" else "i386"}-efi \
${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${pkgs.grub2_efi.grubTarget} \
$MODULES
cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
@ -344,12 +360,19 @@ let
${pkgs.dosfstools}/sbin/fsck.vfat -vn "$out"
''; # */
targetArch = if pkgs.stdenv.isi686 then
"ia32"
else if pkgs.stdenv.isx86_64 then
"x64"
else
throw "Unsupported architecture";
# Name used by UEFI for architectures.
targetArch =
if pkgs.stdenv.isi686 then
"ia32"
else if pkgs.stdenv.isx86_64 then
"x64"
else if pkgs.stdenv.isAarch64 then
"aa64"
else
throw "Unsupported architecture";
# Syslinux (and isolinux) only supports x86-based architectures.
canx86BiosBoot = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
in
@ -483,9 +506,9 @@ in
# here and it causes a cyclic dependency.
boot.loader.grub.enable = false;
# !!! Hack - attributes expected by other modules.
system.boot.loader.kernelFile = "bzImage";
environment.systemPackages = [ pkgs.grub2 pkgs.grub2_efi pkgs.syslinux ];
environment.systemPackages = [ pkgs.grub2 pkgs.grub2_efi ]
++ optional canx86BiosBoot pkgs.syslinux
;
# In stage 1 of the boot, mount the CD as the root FS by label so
# that we don't need to know its device. We pass the label of the
@ -556,13 +579,7 @@ in
# Individual files to be included on the CD, outside of the Nix
# store on the CD.
isoImage.contents =
[ { source = pkgs.substituteAll {
name = "isolinux.cfg";
src = pkgs.writeText "isolinux.cfg-in" isolinuxCfg;
bootRoot = "/boot";
};
target = "/isolinux/isolinux.cfg";
}
[
{ source = config.boot.kernelPackages.kernel + "/" + config.system.boot.loader.kernelFile;
target = "/boot/" + config.system.boot.loader.kernelFile;
}
@ -572,9 +589,6 @@ in
{ source = config.system.build.squashfsStore;
target = "/nix-store.squashfs";
}
{ source = "${pkgs.syslinux}/share/syslinux";
target = "/isolinux";
}
{ source = config.isoImage.efiSplashImage;
target = "/EFI/boot/efi-background.png";
}
@ -584,6 +598,17 @@ in
{ source = pkgs.writeText "version" config.system.nixos.label;
target = "/version.txt";
}
] ++ optionals canx86BiosBoot [
{ source = pkgs.substituteAll {
name = "isolinux.cfg";
src = pkgs.writeText "isolinux.cfg-in" isolinuxCfg;
bootRoot = "/boot";
};
target = "/isolinux/isolinux.cfg";
}
{ source = "${pkgs.syslinux}/share/syslinux";
target = "/isolinux";
}
] ++ optionals config.isoImage.makeEfiBootable [
{ source = efiImg;
target = "/boot/efi.img";
@ -591,7 +616,7 @@ in
{ source = "${efiDir}/EFI";
target = "/EFI";
}
] ++ optionals config.boot.loader.grub.memtest86.enable [
] ++ optionals (config.boot.loader.grub.memtest86.enable && canx86BiosBoot) [
{ source = "${pkgs.memtest86plus}/memtest.bin";
target = "/boot/memtest.bin";
}
@ -606,9 +631,10 @@ in
# Create the ISO image.
system.build.isoImage = pkgs.callPackage ../../../lib/make-iso9660-image.nix ({
inherit (config.isoImage) isoName compressImage volumeID contents;
bootable = true;
bootable = canx86BiosBoot;
bootImage = "/isolinux/isolinux.bin";
} // optionalAttrs config.isoImage.makeUsbBootable {
syslinux = if canx86BiosBoot then pkgs.syslinux else null;
} // optionalAttrs (config.isoImage.makeUsbBootable && canx86BiosBoot) {
usbBootable = true;
isohybridMbrImage = "${pkgs.syslinux}/share/syslinux/isohdpfx.bin";
} // optionalAttrs config.isoImage.makeEfiBootable {

View File

@ -11,6 +11,8 @@
./config/xdg/icons.nix
./config/xdg/menus.nix
./config/xdg/mime.nix
./config/appstream.nix
./config/xdg/sounds.nix
./config/gtk/gtk-icon-cache.nix
./config/gnu.nix
./config/i18n.nix
@ -715,7 +717,6 @@
./services/web-apps/restya-board.nix
./services/web-apps/tt-rss.nix
./services/web-apps/selfoss.nix
./services/web-apps/quassel-webserver.nix
./services/web-apps/virtlyst.nix
./services/web-apps/youtrack.nix
./services/web-servers/apache-httpd/default.nix

View File

@ -98,7 +98,7 @@ in
if [ "$TERM" != "dumb" -o -n "$INSIDE_EMACS" ]; then
PROMPT_COLOR="1;31m"
let $UID && PROMPT_COLOR="1;32m"
PS1="\n\[\033[$PROMPT_COLOR\][\u@\h:\w]\\$\[\033[0m\] "
PS1="\n\[\033[$PROMPT_COLOR\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] "
if test "$TERM" = "xterm"; then
PS1="\[\033]2;\h:\u:\w\007\]$PS1"
fi

View File

@ -18,13 +18,13 @@ in
};
strategy = mkOption {
type = types.enum [ "default" "match_prev_cmd" ];
default = "default";
type = types.enum [ "history" "match_prev_cmd" ];
default = "history";
description = ''
Set ZSH_AUTOSUGGEST_STRATEGY to choose the strategy for generating suggestions.
There are currently two to choose from:
* default: Chooses the most recent match.
* history: Chooses the most recent match.
* match_prev_cmd: Chooses the most recent match whose preceding history item matches
the most recently executed command (more info). Note that this strategy won't work as
expected with ZSH options that don't preserve the history order such as
@ -51,7 +51,7 @@ in
source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="${cfg.highlightStyle}"
export ZSH_AUTOSUGGEST_STRATEGY="${cfg.strategy}"
export ZSH_AUTOSUGGEST_STRATEGY=("${cfg.strategy}")
${concatStringsSep "\n" (mapAttrsToList (key: value: ''export ${key}="${value}"'') cfg.extraConfig)}
'';

View File

@ -46,7 +46,7 @@ let
# in the same directory as slurm.conf
etcSlurm = pkgs.symlinkJoin {
name = "etc-slurm";
paths = [ configFile cgroupConfig plugStackConfig ];
paths = [ configFile cgroupConfig plugStackConfig ] ++ cfg.extraConfigPaths;
};
in
@ -239,6 +239,17 @@ in
'';
};
extraConfigPaths = mkOption {
type = with types; listOf path;
default = [];
description = ''
Slurm expects config files for plugins in the same path
as <literal>slurm.conf</literal>. Add extra nix store
paths that should be merged into same directory as
<literal>slurm.conf</literal>.
'';
};
};
@ -303,6 +314,7 @@ in
serviceConfig = {
Type = "forking";
KillMode = "process";
ExecStart = "${wrappedSlurm}/bin/slurmd";
PIDFile = "/run/slurmd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";

View File

@ -54,6 +54,13 @@ in
description = "The database directory.";
};
logLevel = mkOption {
type = types.str;
default = "0";
example = "acl trace";
description = "The log level selector of slapd.";
};
configDir = mkOption {
type = types.nullOr types.path;
default = null;
@ -139,7 +146,7 @@ in
chown -R "${cfg.user}:${cfg.group}" "${cfg.dataDir}"
'';
serviceConfig.ExecStart =
"${openldap.out}/libexec/slapd -d 0 " +
"${openldap.out}/libexec/slapd -d ${cfg.logLevel} " +
"-u '${cfg.user}' -g '${cfg.group}' " +
"-h '${concatStringsSep " " cfg.urlList}' " +
"${configOpts}";

View File

@ -25,9 +25,14 @@ in {
type = types.package;
default = pkgs.bluez;
defaultText = "pkgs.bluez";
example = "pkgs.bluez.override { enableMidi = true; }";
example = "pkgs.bluezFull";
description = ''
Which BlueZ package to use.
<note><para>
Use the <literal>pkgs.bluezFull</literal> package to enable all
bluez plugins.
</para></note>
'';
};

View File

@ -49,6 +49,7 @@ in {
description = "LIRC daemon socket";
wantedBy = [ "sockets.target" ];
socketConfig = {
# default search path
ListenStream = "/run/lirc/lircd";
SocketUser = "lirc";
SocketMode = "0660";
@ -66,9 +67,19 @@ in {
serviceConfig = {
RuntimeDirectory = "lirc";
# socket lives in runtime directory; we have to keep is available
# Service runtime directory and socket share same folder.
# Following hacks are necessary to get everything right:
# 1. prevent socket deletion during stop and restart
RuntimeDirectoryPreserve = true;
# 2. fix runtime folder owner-ship, happens when socket activation
# creates the folder
PermissionsStartOnly = true;
ExecStartPre = [
"${pkgs.coreutils}/bin/chown lirc /run/lirc/"
];
ExecStart = ''
${pkgs.lirc}/bin/lircd --nodaemon \
${escapeShellArgs cfg.extraArguments} \

View File

@ -1,36 +0,0 @@
server-user nscd
threads 1
paranoia no
debug-level 0
enable-cache passwd yes
positive-time-to-live passwd 0
negative-time-to-live passwd 0
suggested-size passwd 211
check-files passwd yes
persistent passwd no
shared passwd yes
enable-cache group yes
positive-time-to-live group 0
negative-time-to-live group 0
suggested-size group 211
check-files group yes
persistent group no
shared group yes
enable-cache hosts yes
positive-time-to-live hosts 600
negative-time-to-live hosts 5
suggested-size hosts 211
check-files hosts yes
persistent hosts no
shared hosts yes
enable-cache services yes
positive-time-to-live services 0
negative-time-to-live services 0
suggested-size services 211
check-files services yes
persistent services no
shared services yes

View File

@ -75,7 +75,6 @@ in {
};
system.nssModules = optional cfg.enable pkgs.sssd;
services.nscd.config = builtins.readFile ./nscd-sssd.conf;
services.dbus.packages = [ pkgs.sssd ];
})

View File

@ -169,8 +169,9 @@ in {
Sets the maximum amount of time (in seconds) a connection may be reused.
For MySQL this setting should be shorter than the `wait_timeout' variable.
'';
default = 14400;
type = types.int;
default = "unlimited";
example = 14400;
type = types.either types.int (types.enum [ "unlimited" ]);
};
};

View File

@ -488,7 +488,7 @@ in {
'') cfg.dynamicHosts.hostsDirs);
serviceConfig = {
Type = "oneshot";
RemainAfterExist = true;
RemainAfterExit = true;
};
};

View File

@ -228,6 +228,7 @@ let
createSSLOptsStr = o: ''
ssl = {
cafile = "/etc/ssl/certs/ca-bundle.crt";
key = "${o.key}";
certificate = "${o.cert}";
${concatStringsSep "\n" (mapAttrsToList (name: value: "${name} = ${toLua value};") o.extraOptions)}

View File

@ -1,28 +1,52 @@
# We basically use nscd as a proxy for forwarding nss requests to appropriate
# nss modules, as we run nscd with LD_LIBRARY_PATH set to the directory
# containing all such modules
# Note that we can not use `enable-cache no` As this will actually cause nscd
# to just reject the nss requests it receives, which then causes glibc to
# fallback to trying to handle the request by itself. Which won't work as glibc
# is not aware of the path in which the nss modules live. As a workaround, we
# have `enable-cache yes` with an explicit ttl of 0
server-user nscd
threads 1
paranoia no
debug-level 0
enable-cache passwd yes
positive-time-to-live passwd 600
negative-time-to-live passwd 20
positive-time-to-live passwd 0
negative-time-to-live passwd 0
suggested-size passwd 211
check-files passwd yes
persistent passwd no
shared passwd yes
enable-cache group yes
positive-time-to-live group 3600
negative-time-to-live group 60
positive-time-to-live group 0
negative-time-to-live group 0
suggested-size group 211
check-files group yes
persistent group no
shared group yes
enable-cache netgroup yes
positive-time-to-live netgroup 0
negative-time-to-live netgroup 0
suggested-size netgroup 211
check-files netgroup yes
persistent netgroup no
shared netgroup yes
enable-cache hosts yes
positive-time-to-live hosts 600
negative-time-to-live hosts 5
negative-time-to-live hosts 0
suggested-size hosts 211
check-files hosts yes
persistent hosts no
shared hosts yes
enable-cache services yes
positive-time-to-live services 0
negative-time-to-live services 0
suggested-size services 211
check-files services yes
persistent services no
shared services yes

View File

@ -484,4 +484,6 @@ in {
};
})
]);
meta.doc = ./nextcloud.xml;
}

View File

@ -0,0 +1,99 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="module-services-nextcloud">
<title>Nextcloud</title>
<para>
<link xlink:href="https://nextcloud.com/">Nextcloud</link> is an open-source, self-hostable cloud
platform. The server setup can be automated using
<link linkend="opt-services.nextcloud.enable">services.nextcloud</link>. A desktop client is packaged
at <literal>pkgs.nextcloud-client</literal>.
</para>
<section xml:id="module-services-nextcloud-basic-usage">
<title>Basic usage</title>
<para>
Nextcloud is a PHP-based application which requires an HTTP server
(<literal><link linkend="opt-services.nextcloud.enable">services.nextcloud</link></literal> optionally supports
<literal><link linkend="opt-services.nginx.enable">services.nginx</link></literal>) and a database
(it's recommended to use <literal><link linkend="opt-services.postgresql.enable">services.postgresql</link></literal>).
</para>
<para>
A very basic configuration may look like this:
<programlisting>{ pkgs, ... }:
{
services.nextcloud = {
<link linkend="opt-services.nextcloud.enable">enable</link> = true;
<link linkend="opt-services.nextcloud.hostName">hostName</link> = "nextcloud.tld";
<link linkend="opt-services.nextcloud.nginx.enable">nginx.enable</link> = true;
config = {
<link linkend="opt-services.nextcloud.config.dbtype">dbtype</link> = "pgsql";
<link linkend="opt-services.nextcloud.config.dbuser">dbuser</link> = "nextcloud";
<link linkend="opt-services.nextcloud.config.dbhost">dbhost</link> = "/tmp"; # nextcloud will add /.s.PGSQL.5432 by itself
<link linkend="opt-services.nextcloud.config.dbname">dbname</link> = "nextcloud";
<link linkend="opt-services.nextcloud.config.adminpassFile">adminpassFile</link> = "/path/to/admin-pass-file";
<link linkend="opt-services.nextcloud.config.adminuser">adminuser</link> = "root";
};
};
services.postgresql = {
<link linkend="opt-services.postgresql.enable">enable</link> = true;
<link linkend="opt-services.postgresql.initialScript">initialScript</link> = pkgs.writeText "psql-init" ''
CREATE ROLE nextcloud WITH LOGIN;
CREATE DATABASE nextcloud WITH OWNER nextcloud;
'';
};
# ensure that postgres is running *before* running the setup
systemd.services."nextcloud-setup" = {
requires = ["postgresql.service"];
after = ["postgresql.service"];
};
<link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 80 443 ];
}</programlisting>
</para>
<para>
The options <literal>hostName</literal> and <literal>nginx.enable</literal> are used internally to configure an
HTTP server using <literal><link xlink:href="https://php-fpm.org/">PHP-FPM</link></literal> and <literal>nginx</literal>.
The <literal>config</literal> attribute set is used for the <literal>config.php</literal> which is used
for the application's configuration.
<emphasis>Beware: this isn't entirely pure since the config is modified by the application's runtime!</emphasis>
</para>
<para>
In case the application serves multiple hosts (those are checked with
<literal><link xlink:href="http://php.net/manual/en/reserved.variables.server.php">$_SERVER['HTTP_HOST']</link></literal>)
those can be added using
<literal><link linkend="opt-services.nextcloud.config.extraTrustedDomains">services.nextcloud.config.extraTrustedDomains</link></literal>.
</para>
</section>
<section xml:id="module-services-nextcloud-pitfalls-during-upgrade">
<title>Pitfalls</title>
<para>
Unfortunately Nextcloud appears to be very stateful when it comes to managing its own configuration. The
config file lives in the home directory of the <literal>nextcloud</literal> user (by default
<literal>/var/lib/nextcloud/config/config.php</literal>) and is also used to track several
states of the application (e.g. whether installed or not).
</para>
<para>
Right now changes to the <literal>services.nextcloud.config</literal> attribute set won't take effect
after the first install
(except <literal><link linkend="opt-services.nextcloud.config.extraTrustedDomains">services.nextcloud.config.extraTrustedDomains</link></literal>) since the actual configuration
file is generated by the NextCloud installer which also sets up critical parts such as the database
structure.
</para>
<para>
<emphasis>Warning: don't delete <literal>config.php</literal>! This file tracks the application's state and a deletion can cause unwanted side-effects!</emphasis>
</para>
<para>
<emphasis>Warning: don't rerun <literal>nextcloud-occ maintenance:install</literal>! This command tries to install the application and can cause unwanted side-effects!</emphasis>
</para>
<para>
The issues are known and reported in <link xlink:href="https://github.com/NixOS/nixpkgs/issues/49783">#49783</link>, for now it's unfortunately necessary to manually work around these issues.
</para>
</section>
</chapter>

View File

@ -1,101 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.quassel-webserver;
quassel-webserver = cfg.pkg;
settings = ''
module.exports = {
default: {
host: '${cfg.quasselCoreHost}', // quasselcore host
port: ${toString cfg.quasselCorePort}, // quasselcore port
initialBacklogLimit: ${toString cfg.initialBacklogLimit}, // Amount of backlogs to fetch per buffer on connection
backlogLimit: ${toString cfg.backlogLimit}, // Amount of backlogs to fetch per buffer after first retrieval
securecore: ${boolToString cfg.secureCore}, // Connect to the core using SSL
theme: '${cfg.theme}' // Default UI theme
},
themes: ['default', 'darksolarized'], // Available themes
forcedefault: ${boolToString cfg.forceHostAndPort}, // Will force default host and port to be used, and will hide the corresponding fields in the UI
prefixpath: '${cfg.prefixPath}' // Configure this if you use a reverse proxy
};
'';
settingsFile = pkgs.writeText "settings-user.js" settings;
in {
options = {
services.quassel-webserver = {
enable = mkOption {
default = false;
type = types.bool;
description = "Whether to enable the quassel webclient service";
};
pkg = mkOption {
default = pkgs.quassel-webserver;
defaultText = "pkgs.quassel-webserver";
type = types.package;
description = "The quassel-webserver package";
};
quasselCoreHost = mkOption {
default = "";
type = types.str;
description = "The default host of the quassel core";
};
quasselCorePort = mkOption {
default = 4242;
type = types.int;
description = "The default quassel core port";
};
initialBacklogLimit = mkOption {
default = 20;
type = types.int;
description = "Amount of backlogs to fetch per buffer on connection";
};
backlogLimit = mkOption {
default = 100;
type = types.int;
description = "Amount of backlogs to fetch per buffer after first retrieval";
};
secureCore = mkOption {
default = true;
type = types.bool;
description = "Connect to the core using SSL";
};
theme = mkOption {
default = "default";
type = types.str;
description = "default or darksolarized";
};
prefixPath = mkOption {
default = "";
type = types.str;
description = "Configure this if you use a reverse proxy. Must start with a '/'";
example = "/quassel";
};
port = mkOption {
default = 60443;
type = types.int;
description = "The port the quassel webserver should listen on";
};
useHttps = mkOption {
default = true;
type = types.bool;
description = "Whether the quassel webserver connection should be a https connection";
};
forceHostAndPort = mkOption {
default = false;
type = types.bool;
description = "Force the users to use the quasselCoreHost and quasselCorePort defaults";
};
};
};
config = mkIf cfg.enable {
systemd.services.quassel-webserver = {
description = "A web server/client for Quassel";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${quassel-webserver}/lib/node_modules/quassel-webserver/bin/www -p ${toString cfg.port} -m ${if cfg.useHttps == true then "https" else "http"} -c ${settingsFile}";
};
};
};
}

View File

@ -85,7 +85,7 @@ in rec {
id = mkOption {
default = "main";
description = ''
A unique identifier necessary to keep multiple owncloud server
A unique identifier necessary to keep multiple Limesurvey server
instances on the same machine apart. This is used to
disambiguate the administrative scripts, which get names like
mediawiki-$id-change-password.

View File

@ -1,608 +0,0 @@
{ config, lib, pkgs, serverInfo, php, ... }:
with lib;
let
owncloudConfig = pkgs.writeText "config.php"
''
<?php
/* Only enable this for local development and not in productive environments */
/* This will disable the minifier and outputs some additional debug informations */
define("DEBUG", false);
$CONFIG = array(
/* Flag to indicate ownCloud is successfully installed (true = installed) */
"installed" => true,
/* Type of database, can be sqlite, mysql or pgsql */
"dbtype" => "${config.dbType}",
/* Name of the ownCloud database */
"dbname" => "${config.dbName}",
/* User to access the ownCloud database */
"dbuser" => "${config.dbUser}",
/* Password to access the ownCloud database */
"dbpassword" => "${config.dbPassword}",
/* Host running the ownCloud database. To specify a port use "HOSTNAME:####"; to specify a unix sockets use "localhost:/path/to/socket". */
"dbhost" => "${config.dbServer}",
/* Prefix for the ownCloud tables in the database */
"dbtableprefix" => "",
/* Force use of HTTPS connection (true = use HTTPS) */
"forcessl" => ${config.forceSSL},
/* Blacklist a specific file and disallow the upload of files with this name - WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */
"blacklisted_files" => array('.htaccess'),
/* The automatic hostname detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. You can also add a port. For example "www.example.com:88" */
"overwritehost" => "${config.overwriteHost}",
/* The automatic protocol detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the protocol detection. For example "https" */
"overwriteprotocol" => "${config.overwriteProtocol}",
/* The automatic webroot detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. For example "/domain.tld/ownCloud". The value "/" can be used to remove the root. */
"overwritewebroot" => "${config.overwriteWebRoot}",
/* The automatic detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to define a manually override condition as regular expression for the remote ip address. For example "^10\.0\.0\.[1-3]$" */
"overwritecondaddr" => "",
/* A proxy to use to connect to the internet. For example "myproxy.org:88" */
"proxy" => "",
/* The optional authentication for the proxy to use to connect to the internet. The format is: [username]:[password] */
"proxyuserpwd" => "",
/* List of trusted domains, to prevent host header poisoning ownCloud is only using these Host headers */
${if config.trustedDomain != "" then "'trusted_domains' => array('${config.trustedDomain}')," else ""}
/* Theme to use for ownCloud */
"theme" => "",
/* Optional ownCloud default language - overrides automatic language detection on public pages like login or shared items. This has no effect on the user's language preference configured under "personal -> language" once they have logged in */
"default_language" => "${config.defaultLang}",
/* Path to the parent directory of the 3rdparty directory */
"3rdpartyroot" => "",
/* URL to the parent directory of the 3rdparty directory, as seen by the browser */
"3rdpartyurl" => "",
/* Default app to open on login.
* This can be a comma-separated list of app ids.
* If the first app is not enabled for the current user,
* it will try with the second one and so on. If no enabled app could be found,
* the "files" app will be displayed instead. */
"defaultapp" => "${config.defaultApp}",
/* Enable the help menu item in the settings */
"knowledgebaseenabled" => true,
/* Enable installing apps from the appstore */
"appstoreenabled" => ${config.appStoreEnable},
/* URL of the appstore to use, server should understand OCS */
"appstoreurl" => "https://api.owncloud.com/v1",
/* Domain name used by ownCloud for the sender mail address, e.g. no-reply@example.com */
"mail_domain" => "${config.mailFromDomain}",
/* FROM address used by ownCloud for the sender mail address, e.g. owncloud@example.com
This setting overwrites the built in 'sharing-noreply' and 'lostpassword-noreply'
FROM addresses, that ownCloud uses
*/
"mail_from_address" => "${config.mailFrom}",
/* Enable SMTP class debugging */
"mail_smtpdebug" => false,
/* Mode to use for sending mail, can be sendmail, smtp, qmail or php, see PHPMailer docs */
"mail_smtpmode" => "${config.SMTPMode}",
/* Host to use for sending mail, depends on mail_smtpmode if this is used */
"mail_smtphost" => "${config.SMTPHost}",
/* Port to use for sending mail, depends on mail_smtpmode if this is used */
"mail_smtpport" => ${config.SMTPPort},
/* SMTP server timeout in seconds for sending mail, depends on mail_smtpmode if this is used */
"mail_smtptimeout" => ${config.SMTPTimeout},
/* SMTP connection prefix or sending mail, depends on mail_smtpmode if this is used.
Can be "", ssl or tls */
"mail_smtpsecure" => "${config.SMTPSecure}",
/* authentication needed to send mail, depends on mail_smtpmode if this is used
* (false = disable authentication)
*/
"mail_smtpauth" => ${config.SMTPAuth},
/* authentication type needed to send mail, depends on mail_smtpmode if this is used
* Can be LOGIN (default), PLAIN or NTLM */
"mail_smtpauthtype" => "${config.SMTPAuthType}",
/* Username to use for sendmail mail, depends on mail_smtpauth if this is used */
"mail_smtpname" => "${config.SMTPUser}",
/* Password to use for sendmail mail, depends on mail_smtpauth if this is used */
"mail_smtppassword" => "${config.SMTPPass}",
/* memcached servers (Only used when xCache, APC and APCu are absent.) */
"memcached_servers" => array(
// hostname, port and optional weight. Also see:
// http://www.php.net/manual/en/memcached.addservers.php
// http://www.php.net/manual/en/memcached.addserver.php
//array('localhost', 11211),
//array('other.host.local', 11211),
),
/* How long should ownCloud keep deleted files in the trash bin, default value: 30 days */
'trashbin_retention_obligation' => 30,
/* Disable/Enable auto expire for the trash bin, by default auto expire is enabled */
'trashbin_auto_expire' => true,
/* allow user to change his display name, if it is supported by the back-end */
'allow_user_to_change_display_name' => true,
/* Check 3rdparty apps for malicious code fragments */
"appcodechecker" => true,
/* Check if ownCloud is up to date */
"updatechecker" => true,
/* Are we connected to the internet or are we running in a closed network? */
"has_internet_connection" => true,
/* Check if the ownCloud WebDAV server is working correctly. Can be disabled if not needed in special situations*/
"check_for_working_webdav" => true,
/* Check if .htaccess protection of data is working correctly. Can be disabled if not needed in special situations*/
"check_for_working_htaccess" => true,
/* Place to log to, can be owncloud and syslog (owncloud is log menu item in admin menu) */
"log_type" => "owncloud",
/* File for the owncloud logger to log to, (default is ownloud.log in the data dir) */
"logfile" => "${config.dataDir}/owncloud.log",
/* Loglevel to start logging at. 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR (default is WARN) */
"loglevel" => "2",
/* date format to be used while writing to the owncloud logfile */
'logdateformat' => 'F d, Y H:i:s',
${tzSetting}
/* Append all database queries and parameters to the log file.
(watch out, this option can increase the size of your log file)*/
"log_query" => false,
/* Whether ownCloud should log the last successfull cron exec */
"cron_log" => true,
/*
* Configure the size in bytes log rotation should happen, 0 or false disables the rotation.
* This rotates the current owncloud logfile to a new name, this way the total log usage
* will stay limited and older entries are available for a while longer. The
* total disk usage is twice the configured size.
* WARNING: When you use this, the log entries will eventually be lost.
*/
'log_rotate_size' => "104857600", // 104857600, // 100 MiB
/* Lifetime of the remember login cookie, default is 15 days */
"remember_login_cookie_lifetime" => 1296000,
/* Life time of a session after inactivity */
"session_lifetime" => 86400,
/*
* Enable/disable session keep alive when a user is logged in in the Web UI.
* This is achieved by sending a "heartbeat" to the server to prevent
* the session timing out.
*/
"session_keepalive" => true,
/* Custom CSP policy, changing this will overwrite the standard policy */
"custom_csp_policy" => "default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src *; img-src *; font-src 'self' data:; media-src *",
/* Enable/disable X-Frame-Restriction */
/* HIGH SECURITY RISK IF DISABLED*/
"xframe_restriction" => true,
/* The directory where the user data is stored, default to data in the owncloud
* directory. The sqlite database is also stored here, when sqlite is used.
*/
"datadirectory" => "${config.dataDir}/storage",
/* The directory where the skeleton files are located. These files will be copied to the data
* directory of new users. Leave empty to not copy any skeleton files.
*/
// "skeletondirectory" => "",
/* Enable maintenance mode to disable ownCloud
If you want to prevent users to login to ownCloud before you start doing some maintenance work,
you need to set the value of the maintenance parameter to true.
Please keep in mind that users who are already logged-in are kicked out of ownCloud instantly.
*/
"maintenance" => false,
"apps_paths" => array(
/* Set an array of path for your apps directories
key 'path' is for the fs path and the key 'url' is for the http path to your
applications paths. 'writable' indicates whether the user can install apps in this folder.
You must have at least 1 app folder writable or you must set the parameter 'appstoreenabled' to false
*/
array(
'path'=> '${config.dataDir}/apps',
'url' => '/apps',
'writable' => true,
),
),
'user_backends'=>array(
/*
array(
'class'=>'OC_User_IMAP',
'arguments'=>array('{imap.gmail.com:993/imap/ssl}INBOX')
)
*/
),
//links to custom clients
'customclient_desktop' => ''', //http://owncloud.org/sync-clients/
'customclient_android' => ''', //https://play.google.com/store/apps/details?id=com.owncloud.android
'customclient_ios' => ''', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8
// PREVIEW
'enable_previews' => true,
/* the max width of a generated preview, if value is null, there is no limit */
'preview_max_x' => null,
/* the max height of a generated preview, if value is null, there is no limit */
'preview_max_y' => null,
/* the max factor to scale a preview, default is set to 10 */
'preview_max_scale_factor' => 10,
/* custom path for libreoffice / openoffice binary */
'preview_libreoffice_path' => '${config.libreofficePath}',
/* cl parameters for libreoffice / openoffice */
'preview_office_cl_parameters' => ''',
/* whether avatars should be enabled */
'enable_avatars' => true,
// Extra SSL options to be used for configuration
'openssl' => array(
'config' => '/etc/ssl/openssl.cnf',
),
// default cipher used for file encryption, currently we support AES-128-CFB and AES-256-CFB
'cipher' => 'AES-256-CFB',
/* whether usage of the instance should be restricted to admin users only */
'singleuser' => false,
/* all css and js files will be served by the web server statically in one js file and ons css file*/
'asset-pipeline.enabled' => false,
/* where mount.json file should be stored, defaults to data/mount.json */
'mount_file' => ''',
/*
* Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user.
*
* When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured
* cache directory and "$user" is the user.
*
*/
'cache_path' => ''',
/* EXPERIMENTAL: option whether to include external storage in quota calculation, defaults to false */
'quota_include_external_storage' => false,
/*
* specifies how often the filesystem is checked for changes made outside owncloud
* 0 -> never check the filesystem for outside changes, provides a performance increase when it's certain that no changes are made directly to the filesystem
* 1 -> check each file or folder at most once per request, recomended for general use if outside changes might happen
* 2 -> check every time the filesystem is used, causes a performance hit when using external storages, not recomended for regular use
*/
'filesystem_check_changes' => 1,
/* If true, prevent owncloud from changing the cache due to changes in the filesystem for all storage */
'filesystem_cache_readonly' => false,
/**
* define default folder for shared files and folders
*/
'share_folder' => '/',
'version' => '${config.package.version}',
'openssl' => '${pkgs.openssl.bin}/bin/openssl'
);
'';
tzSetting = let tz = serverInfo.fullConfig.time.timeZone; in optionalString (!isNull tz) ''
/* timezone used while writing to the owncloud logfile (default: UTC) */
'logtimezone' => '${tz}',
'';
postgresql = serverInfo.fullConfig.services.postgresql.package;
setupDb = pkgs.writeScript "setup-owncloud-db" ''
#!${pkgs.runtimeShell}
PATH="${postgresql}/bin"
createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
createdb "${config.dbName}" -O "${config.dbUser}" || true
psql -U postgres -d postgres -c "alter user ${config.dbUser} with password '${config.dbPassword}';" || true
QUERY="CREATE TABLE appconfig
( appid VARCHAR( 255 ) NOT NULL
, configkey VARCHAR( 255 ) NOT NULL
, configvalue VARCHAR( 255 ) NOT NULL
);
GRANT ALL ON appconfig TO ${config.dbUser};
ALTER TABLE appconfig OWNER TO ${config.dbUser};"
psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
'';
in
rec {
extraConfig =
''
${if config.urlPrefix != "" then "Alias ${config.urlPrefix} ${config.package}" else ''
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
''}
<Directory ${config.package}>
Include ${config.package}/.htaccess
</Directory>
'';
globalEnvVars = [
{ name = "OC_CONFIG_PATH"; value = "${config.dataDir}/config/"; }
];
documentRoot = if config.urlPrefix == "" then config.package else null;
enablePHP = true;
options = {
package = mkOption {
type = types.package;
default = pkgs.owncloud70;
defaultText = "pkgs.owncloud70";
example = literalExample "pkgs.owncloud70";
description = ''
ownCloud package to use.
'';
};
urlPrefix = mkOption {
default = "";
example = "/owncloud";
description = ''
The URL prefix under which the owncloud service appears.
'';
};
id = mkOption {
default = "main";
description = ''
A unique identifier necessary to keep multiple owncloud server
instances on the same machine apart. This is used to
disambiguate the administrative scripts, which get names like
mediawiki-$id-change-password.
'';
};
adminUser = mkOption {
default = "owncloud";
description = "The admin user name for accessing owncloud.";
};
adminPassword = mkOption {
description = "The admin password for accessing owncloud.";
};
dbType = mkOption {
default = "pgsql";
description = "Type of database, in NixOS, for now, only pgsql.";
};
dbName = mkOption {
default = "owncloud";
description = "Name of the database that holds the owncloud data.";
};
dbServer = mkOption {
default = "localhost:5432";
description = ''
The location of the database server.
'';
};
dbUser = mkOption {
default = "owncloud";
description = "The user name for accessing the database.";
};
dbPassword = mkOption {
example = "foobar";
description = ''
The password of the database user. Warning: this is stored in
cleartext in the Nix store!
'';
};
forceSSL = mkOption {
default = "false";
description = "Force use of HTTPS connection.";
};
adminAddr = mkOption {
default = serverInfo.serverConfig.adminAddr;
example = "admin@example.com";
description = ''
Emergency contact e-mail address. Defaults to the Apache
admin address.
'';
};
siteName = mkOption {
default = "owncloud";
example = "Foobar owncloud";
description = "Name of the owncloud";
};
trustedDomain = mkOption {
default = "";
description = "Trusted domain";
};
defaultLang = mkOption {
default = "";
description = "Default language";
};
defaultApp = mkOption {
default = "";
description = "Default application";
};
appStoreEnable = mkOption {
default = "true";
description = "Enable app store";
};
mailFrom = mkOption {
default = "no-reply";
description = "Mail from";
};
mailFromDomain = mkOption {
default = "example.xyz";
description = "Mail from domain";
};
SMTPMode = mkOption {
default = "smtp";
description = "Which mode to use for sending mail: sendmail, smtp, qmail or php.";
};
SMTPHost = mkOption {
default = "";
description = "SMTP host";
};
SMTPPort = mkOption {
default = "25";
description = "SMTP port";
};
SMTPTimeout = mkOption {
default = "10";
description = "SMTP mode";
};
SMTPSecure = mkOption {
default = "ssl";
description = "SMTP secure";
};
SMTPAuth = mkOption {
default = "true";
description = "SMTP auth";
};
SMTPAuthType = mkOption {
default = "LOGIN";
description = "SMTP auth type";
};
SMTPUser = mkOption {
default = "";
description = "SMTP user";
};
SMTPPass = mkOption {
default = "";
description = "SMTP pass";
};
dataDir = mkOption {
default = "/var/lib/owncloud";
description = "Data dir";
};
libreofficePath = mkOption {
default = "/usr/bin/libreoffice";
description = "Path for LibreOffice/OpenOffice binary.";
};
overwriteHost = mkOption {
default = "";
description = "The automatic hostname detection of ownCloud can fail in
certain reverse proxy and CLI/cron situations. This option allows to
manually override the automatic detection. You can also add a port.";
};
overwriteProtocol = mkOption {
default = "";
description = "The automatic protocol detection of ownCloud can fail in
certain reverse proxy and CLI/cron situations. This option allows to
manually override the protocol detection.";
};
overwriteWebRoot = mkOption {
default = "";
description = "The automatic webroot detection of ownCloud can fail in
certain reverse proxy and CLI/cron situations. This option allows to
manually override the automatic detection.";
};
};
startupScript = pkgs.writeScript "owncloud_startup.sh" ''
if [ ! -d ${config.dataDir}/config ]; then
mkdir -p ${config.dataDir}/config
cp ${owncloudConfig} ${config.dataDir}/config/config.php
mkdir -p ${config.dataDir}/storage
mkdir -p ${config.dataDir}/apps
cp -r ${config.package}/apps/* ${config.dataDir}/apps/
chmod -R ug+rw ${config.dataDir}
chmod -R o-rwx ${config.dataDir}
chown -R wwwrun:wwwrun ${config.dataDir}
${pkgs.sudo}/bin/sudo -u postgres ${setupDb}
fi
if [ -e ${config.package}/config/ca-bundle.crt ]; then
cp -f ${config.package}/config/ca-bundle.crt ${config.dataDir}/config/
fi
${php}/bin/php ${config.package}/occ upgrade >> ${config.dataDir}/upgrade.log || true
chown wwwrun:wwwrun ${config.dataDir}/owncloud.log || true
QUERY="INSERT INTO groups (gid) values('admin');
INSERT INTO users (uid,password)
values('${config.adminUser}','${builtins.hashString "sha1" config.adminPassword}');
INSERT INTO group_user (gid,uid)
values('admin','${config.adminUser}');"
${pkgs.sudo}/bin/sudo -u postgres ${postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
'';
}

View File

@ -69,7 +69,7 @@ with lib;
acmeRoot = mkOption {
type = types.str;
default = "/var/lib/acme/acme-challenge";
description = "Directory to store certificates and keys managed by the ACME service.";
description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here";
};
acmeFallbackHost = mkOption {

View File

@ -136,19 +136,17 @@ in {
services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ];
services.xserver.displayManager.sessionCommands = ''
if test "$XDG_CURRENT_DESKTOP" = "GNOME"; then
${concatMapStrings (p: ''
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
fi
environment.extraInit = ''
${concatMapStrings (p: ''
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
fi
if [ -d "${p}/lib/girepository-1.0" ]; then
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
fi
'') cfg.sessionPath}
fi
if [ -d "${p}/lib/girepository-1.0" ]; then
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
fi
'') cfg.sessionPath}
'';
environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";

View File

@ -78,8 +78,7 @@ let
# This is required by user units using the session bus.
${config.systemd.package}/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
# Load X defaults.
# FIXME: Check XDG_SESSION_TYPE against x11
# Load X defaults. This should probably be safe on wayland too.
${xorg.xrdb}/bin/xrdb -merge ${xresourcesXft}
if test -e ~/.Xresources; then
${xorg.xrdb}/bin/xrdb -merge ~/.Xresources
@ -194,6 +193,11 @@ let
${concatMapStrings (pkg: ''
${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
'') cfg.displayManager.extraSessionFilePackages}
mkdir -p "$out/share/wayland-sessions"
${concatMapStrings (pkg: ''
${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
'') cfg.displayManager.extraSessionFilePackages}
'';
in
@ -240,7 +244,10 @@ in
''
xmessage "Hello World!" &
'';
description = "Shell commands executed just before the window or desktop manager is started.";
description = ''
Shell commands executed just before the window or desktop manager is
started. These commands are not currently sourced for Wayland sessions.
'';
};
hiddenUsers = mkOption {

View File

@ -196,7 +196,7 @@ in
{ assertion = cfg.autoLogin.enable -> dmDefault != "none" || wmDefault != "none";
message = ''
LightDM auto-login requires that services.xserver.desktopManager.default and
services.xserver.windowMananger.default are set to valid values. The current
services.xserver.windowManager.default are set to valid values. The current
default session: ${defaultSessionName} is not valid.
'';
}

View File

@ -59,6 +59,7 @@ let
[Wayland]
EnableHidpi=${if cfg.enableHidpi then "true" else "false"}
SessionDir=${dmcfg.session.desktops}/share/wayland-sessions
${optionalString cfg.autoLogin.enable ''
[Autologin]
@ -202,7 +203,7 @@ in
{ assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names;
message = ''
SDDM auto-login requires that services.xserver.desktopManager.default and
services.xserver.windowMananger.default are set to valid values. The current
services.xserver.windowManager.default are set to valid values. The current
default session: ${defaultSessionName} is not valid.
'';
}

View File

@ -10,8 +10,13 @@ let
checkExec = checkUnitConfig "Exec" [
(assertOnlyFields [
"Boot" "ProcessTwo" "Parameters" "Environment" "User" "WorkingDirectory"
"Capability" "DropCapability" "KillSignal" "Personality" "MachineId"
"PrivateUsers" "NotifyReady"
"PivotRoot" "Capability" "DropCapability" "NoNewPrivileges" "KillSignal"
"Personality" "MachineId" "PrivateUsers" "NotifyReady" "SystemCallFilter"
"LimitCPU" "LimitFSIZE" "LimitDATA" "LimitSTACK" "LimitCORE" "LimitRSS"
"LimitNOFILE" "LimitAS" "LimitNPROC" "LimitMEMLOCK" "LimitLOCKS"
"LimitSIGPENDING" "LimitMSGQUEUE" "LimitNICE" "LimitRTPRIO" "LimitRTTIME"
"OOMScoreAdjust" "CPUAffinity" "Hostname" "ResolvConf" "Timezone"
"LinkJournal"
])
(assertValueOneOf "Boot" boolValues)
(assertValueOneOf "ProcessTwo" boolValues)
@ -20,8 +25,8 @@ let
checkFiles = checkUnitConfig "Files" [
(assertOnlyFields [
"ReadOnly" "Volatile" "Bind" "BindReadOnly" "TemporaryFileSystems"
"PrivateUsersChown"
"ReadOnly" "Volatile" "Bind" "BindReadOnly" "TemporaryFileSystem"
"Overlay" "OverlayReadOnly" "PrivateUsersChown"
])
(assertValueOneOf "ReadOnly" boolValues)
(assertValueOneOf "Volatile" (boolValues ++ [ "state" ]))

View File

@ -601,8 +601,27 @@ in
type = types.lines;
example = "IdleAction=lock";
description = ''
Extra config options for systemd-logind. See man logind.conf for
available options.
Extra config options for systemd-logind. See
<link xlink:href="https://www.freedesktop.org/software/systemd/man/logind.conf.html">
logind.conf(5)</link> for available options.
'';
};
services.logind.killUserProcesses = mkOption {
default = false;
type = types.bool;
description = ''
Specifies whether the processes of a user should be killed
when the user logs out. If true, the scope unit corresponding
to the session and all processes inside that scope will be
terminated. If false, the scope is "abandoned" (see
<link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.scope.html#">
systemd.scope(5)</link>), and processes are not killed.
</para>
<para>
See <link xlink:href="https://www.freedesktop.org/software/systemd/man/logind.conf.html#KillUserProcesses=">logind.conf(5)</link>
for more details.
'';
};
@ -771,7 +790,7 @@ in
"systemd/logind.conf".text = ''
[Login]
KillUserProcesses=no
KillUserProcesses=${if config.services.logind.killUserProcesses then "yes" else "no"}
HandleLidSwitch=${config.services.logind.lidSwitch}
HandleLidSwitchDocked=${config.services.logind.lidSwitchDocked}
${config.services.logind.extraConfig}

View File

@ -106,7 +106,7 @@ in
installer = handleTest ./installer.nix {};
ipv6 = handleTest ./ipv6.nix {};
jenkins = handleTest ./jenkins.nix {};
kafka = handleTest ./kafka.nix {};
#kafka = handleTest ./kafka.nix {}; # broken since openjdk: 8u181 -> 8u192
kernel-latest = handleTest ./kernel-latest.nix {};
kernel-lts = handleTest ./kernel-lts.nix {};
keymap = handleTest ./keymap.nix {};
@ -156,7 +156,6 @@ in
openssh = handleTest ./openssh.nix {};
osquery = handleTest ./osquery.nix {};
ostree = handleTest ./ostree.nix {};
owncloud = handleTest ./owncloud.nix {};
pam-oath-login = handleTest ./pam-oath-login.nix {};
peerflix = handleTest ./peerflix.nix {};
pgjwt = handleTest ./pgjwt.nix {};

View File

@ -130,6 +130,9 @@ in {
# Make sure keepFile has the correct content
$client->succeed("$borg extract '${localRepo}::${archiveName}'");
$client->succeed('c=$(cat ${dataDir}/${keepFile}) && [[ "$c" == "${keepFileData}" ]]');
# Make sure the same is true when using `borg mount`
$client->succeed("mkdir -p /mnt/borg && $borg mount '${localRepo}::${archiveName}' /mnt/borg");
$client->succeed('c=$(cat /mnt/borg/${dataDir}/${keepFile}) && [[ "$c" == "${keepFileData}" ]]');
};
subtest "remote", sub {

View File

@ -8,7 +8,7 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
nodes = {
gitlab = { ... }: {
virtualisation.memorySize = 2047;
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
systemd.services.gitaly.serviceConfig.Restart = mkForce "no";

View File

@ -23,11 +23,21 @@ import ./make-test.nix ({ pkgs, ...} : {
virtualisation.memorySize = 1024;
};
testScript =
''
# wait for gdm to start and bring up X
testScript = let
# Keep line widths somewhat managable
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus";
gdbus = "${bus} gdbus";
# Call javascript in gnome shell, returns a tuple (success, output), where
# `success` is true if the dbus call was successful and output is what the
# javascript evaluates to.
eval = "call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval";
# False when startup is done
startingUp = "${gdbus} ${eval} Main.layoutManager._startingUp";
# Hopefully gnome-terminal's wm class
wmClass = "${gdbus} ${eval} global.display.focus_window.wm_class";
in ''
# wait for gdm to start
$machine->waitForUnit("display-manager.service");
$machine->waitForX;
# wait for alice to be logged in
$machine->waitForUnit("default.target","alice");
@ -35,10 +45,16 @@ import ./make-test.nix ({ pkgs, ...} : {
# Check that logging in has given the user ownership of devices.
$machine->succeed("getfacl /dev/snd/timer | grep -q alice");
# open a terminal and check it's there
$machine->succeed("su - alice -c 'DISPLAY=:0.0 XAUTHORITY=/run/user/\$UID/gdm/Xauthority gnome-terminal'");
$machine->succeed("xauth merge /run/user/1000/gdm/Xauthority");
$machine->waitForWindow(qr/Terminal/);
# Wait for the wayland server
$machine->waitForFile("/run/user/1000/wayland-0");
# Wait for gnome shell, correct output should be "(true, 'false')"
$machine->waitUntilSucceeds("su - alice -c '${startingUp} | grep -q true,..false'");
# open a terminal
$machine->succeed("su - alice -c '${bus} gnome-terminal'");
# and check it's there
$machine->waitUntilSucceeds("su - alice -c '${wmClass} | grep -q gnome-terminal-server'");
# wait to get a nice screenshot
$machine->sleep(20);

View File

@ -16,7 +16,7 @@ import ./make-test.nix ({ pkgs, ...} : {
services.xserver.displayManager.lightdm.autoLogin.enable = true;
services.xserver.displayManager.lightdm.autoLogin.user = "alice";
services.xserver.desktopManager.gnome3.enable = true;
services.xserver.desktopManager.default = "gnome";
services.xserver.desktopManager.default = "gnome-xorg";
virtualisation.memorySize = 1024;
};
@ -33,7 +33,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
$machine->succeed("xauth merge ~alice/.Xauthority");
$machine->waitForWindow(qr/Terminal/);
$machine->waitForWindow(qr/alice.*machine/);
$machine->succeed("timeout 900 bash -c 'while read msg; do if [[ \$msg =~ \"GNOME Shell started\" ]]; then break; fi; done < <(journalctl -f)'");
$machine->sleep(10);
$machine->screenshot("screen");

View File

@ -28,7 +28,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitForFile("/home/alice/.config/i3/config");
$machine->sleep(2);
$machine->sendKeys("alt-ret");
$machine->waitForWindow(qr/machine.*alice/);
$machine->waitForWindow(qr/alice.*machine/);
$machine->sleep(2);
$machine->screenshot("terminal");
'';

View File

@ -1,6 +1,6 @@
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
pkgs ? import ../../.. { inherit system config; }
}:
with import ../../lib/testing.nix { inherit system pkgs; };

View File

@ -3,7 +3,6 @@ with pkgs.lib;
let
base = {
inherit roles;
featureGates = ["AllAlpha"];
flannel.enable = true;
addons.dashboard.enable = true;

View File

@ -1,39 +0,0 @@
import ./make-test.nix ({ ... }:
{
name = "owncloud";
nodes =
{ web =
{ ... }:
{
services.postgresql.enable = true;
services.httpd = {
enable = true;
logPerVirtualHost = true;
adminAddr = "example@example.com";
virtualHosts = [
{
hostName = "owncloud";
extraSubservices =
[
{
serviceType = "owncloud";
adminPassword = "secret";
dbPassword = "secret";
}
];
}
];
};
};
};
testScript = ''
startAll;
$web->waitForUnit("postgresql");
$web->waitForUnit("httpd");
$web->succeed("curl -L 127.0.0.1:80");
'';
})

View File

@ -63,6 +63,12 @@ in {
ensurePermissions = { "slurm_acct_db.*" = "ALL PRIVILEGES"; };
name = "slurm";
}];
extraOptions = ''
# recommendations from: https://slurm.schedmd.com/accounting.html#mysql-configuration
innodb_buffer_pool_size=1024M
innodb_log_file_size=64M
innodb_lock_wait_timeout=900
'';
};
};
@ -95,6 +101,7 @@ in {
subtest "can_start_slurmdbd", sub {
$dbd->succeed("systemctl restart slurmdbd");
$dbd->waitForUnit("slurmdbd.service");
$dbd->waitForOpenPort(6819);
};
# there needs to be an entry for the current

View File

@ -56,6 +56,11 @@ import ./make-test.nix {
$machine->succeed('test -z $(ls -1 /var/log/journal)');
};
# Regression test for https://github.com/NixOS/nixpkgs/issues/50273
subtest "DynamicUser actually allocates a user", sub {
$machine->succeed('systemd-run --pty --property=Type=oneshot --property=DynamicUser=yes --property=User=iamatest whoami | grep iamatest');
};
# Regression test for https://github.com/NixOS/nixpkgs/issues/35268
subtest "file system with x-initrd.mount is not unmounted", sub {
$machine->shutdown;

View File

@ -22,7 +22,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitUntilSucceeds("xmonad --restart");
$machine->sleep(3);
$machine->sendKeys("alt-shift-ret");
$machine->waitForWindow(qr/machine.*alice/);
$machine->waitForWindow(qr/alice.*machine/);
$machine->sleep(1);
$machine->screenshot("terminal");
'';

View File

@ -45,7 +45,7 @@ rec {
dcrd = callPackage ./dcrd.nix { };
dcrwallet = callPackage ./dcrwallet.nix { };
dero = callPackage ./dero.nix { };
dero = callPackage ./dero.nix { boost = boost165; };
dogecoin = callPackage ./dogecoin.nix { boost = boost165; withGui = true; };
dogecoind = callPackage ./dogecoin.nix { boost = boost165; withGui = false; };
@ -65,7 +65,7 @@ rec {
};
litecoind = litecoin.override { withGui = false; };
masari = callPackage ./masari.nix { };
masari = callPackage ./masari.nix { boost = boost165; };
memorycoin = callPackage ./memorycoin.nix { boost = boost165; withGui = true; };
memorycoind = callPackage ./memorycoin.nix { boost = boost165; withGui = false; };
@ -79,7 +79,7 @@ rec {
stellar-core = callPackage ./stellar-core.nix { };
sumokoin = callPackage ./sumokoin.nix { };
sumokoin = callPackage ./sumokoin.nix { boost = boost165; };
wownero = callPackage ./wownero.nix {
inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
@ -94,5 +94,7 @@ rec {
parity-beta = callPackage ./parity/beta.nix { };
parity-ui = callPackage ./parity-ui { };
polkadot = callPackage ./polkadot { };
particl-core = callPackage ./particl/particl-core.nix { miniupnpc = miniupnpc_2; };
}

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "go-ethereum-${version}";
version = "1.8.19";
version = "1.8.20";
goPackagePath = "github.com/ethereum/go-ethereum";
# Fix for usb-related segmentation faults on darwin
@ -16,7 +16,7 @@ buildGoPackage rec {
owner = "ethereum";
repo = "go-ethereum";
rev = "v${version}";
sha256 = "0shp8ak44v52ynlyawfh53wczd3zch7ydf6bmbrhm5rpbribirwr";
sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0";
};
meta = with stdenv.lib; {

View File

@ -1,7 +1,7 @@
{ stdenv, fetchgit
, cmake, pkgconfig, git
, boost, miniupnpc, openssl, unbound, cppzmq
, zeromq, pcsclite, readline, libsodium
, zeromq, pcsclite, readline, libsodium, hidapi
, CoreData, IOKit, PCSC
}:
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
buildInputs = [
boost miniupnpc openssl unbound
cppzmq zeromq pcsclite readline
libsodium
libsodium hidapi
] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
cmakeFlags = [

View File

@ -1,9 +1,6 @@
let
version = "2.2.1";
sha256 = "1m65pks2jk83j82f1i901p03qb54xhcp6gfjngcm975187zzvmcq";
cargoSha256 = "1mf1jgphwvhlqkvzrgbhnqfyqgf3ljc1l9zckyilzmw5k4lf4g1w";
patches = [
./patches/vendored-sources-2.2.patch
];
version = "2.2.5";
sha256 = "0q9vgwc0jlja73r4na7yil624iagq1607ac47wh8a7xgfjmjjai1";
cargoSha256 = "0ibdmyh1jvfq51vhwn4riyhilqwhf71hjd4vyj525smn95p75b14";
in
import ./parity.nix { inherit version sha256 cargoSha256 patches; }
import ./parity.nix { inherit version sha256 cargoSha256; }

View File

@ -1,7 +1,6 @@
let
version = "2.1.6";
sha256 = "0njkypszi0fjh9y0zfgxbycs4c1wpylk7wx6xn1pp6gqvvri6hav";
cargoSha256 = "116sj7pi50k5gb1i618g4pgckqaf8kb13jh2a3shj2kwywzzcgjs";
patches = [ ./patches/vendored-sources-2.1.patch ];
version = "2.1.10";
sha256 = "1l4yl8i24q8v4hzljzai37f587x8m3cz3byzifhvq3bjky7p8h80";
cargoSha256 = "04pni9cmz8nhlqznwafz9d81006808kh24aqnb8rjdcr84d11zis";
in
import ./parity.nix { inherit version sha256 cargoSha256 patches; }
import ./parity.nix { inherit version sha256 cargoSha256; }

View File

@ -1,7 +1,6 @@
{ version
, sha256
, cargoSha256
, patches
}:
{ stdenv
@ -16,7 +15,7 @@
rustPlatform.buildRustPackage rec {
name = "parity-${version}";
inherit cargoSha256 patches;
inherit cargoSha256;
src = fetchFromGitHub {
owner = "paritytech";
@ -30,7 +29,7 @@ rustPlatform.buildRustPackage rec {
systemd.lib systemd.dev openssl openssl.dev
];
# Some checks failed
# test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
doCheck = false;
meta = with stdenv.lib; {

View File

@ -1,83 +0,0 @@
diff --git a/.cargo/config b/.cargo/config
index 72652ad2f..3c0eca89a 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,3 +1,78 @@
[target.x86_64-pc-windows-msvc]
# Link the C runtime statically ; https://github.com/paritytech/parity/issues/6643
rustflags = ["-Ctarget-feature=+crt-static"]
+
+[source."https://github.com/alexcrichton/mio-named-pipes"]
+git = "https://github.com/alexcrichton/mio-named-pipes"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/nikvolf/parity-tokio-ipc"]
+git = "https://github.com/nikvolf/parity-tokio-ipc"
+rev = "c0f80b40399d7f08ef1e6869569640eb28645f56"
+replace-with = "vendored-sources"
+
+[source."https://github.com/nikvolf/tokio-named-pipes"]
+git = "https://github.com/nikvolf/tokio-named-pipes"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/app-dirs-rs"]
+git = "https://github.com/paritytech/app-dirs-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/bn"]
+git = "https://github.com/paritytech/bn"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/daemonize"]
+git = "https://github.com/paritytech/daemonize"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/hidapi-rs"]
+git = "https://github.com/paritytech/hidapi-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/jsonrpc.git"]
+git = "https://github.com/paritytech/jsonrpc.git"
+branch = "parity-1.11"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/libusb-rs"]
+git = "https://github.com/paritytech/libusb-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/libusb-sys"]
+git = "https://github.com/paritytech/libusb-sys"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/ring"]
+git = "https://github.com/paritytech/ring"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-ctrlc.git"]
+git = "https://github.com/paritytech/rust-ctrlc.git"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-secp256k1"]
+git = "https://github.com/paritytech/rust-secp256k1"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/trezor-sys"]
+git = "https://github.com/paritytech/trezor-sys"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/tomusdrw/ws-rs"]
+git = "https://github.com/tomusdrw/ws-rs"
+branch = "master"
+replace-with = "vendored-sources"

View File

@ -1,98 +0,0 @@
diff --git a/.cargo/config b/.cargo/config
index 72652ad2f..3c0eca89a 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,3 +1,93 @@
[target.x86_64-pc-windows-msvc]
# Link the C runtime statically ; https://github.com/paritytech/parity/issues/6643
rustflags = ["-Ctarget-feature=+crt-static"]
+
+[source."https://github.com/alexcrichton/mio-named-pipes"]
+git = "https://github.com/alexcrichton/mio-named-pipes"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/nikvolf/parity-tokio-ipc"]
+git = "https://github.com/nikvolf/parity-tokio-ipc"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/nikvolf/tokio-named-pipes"]
+git = "https://github.com/nikvolf/tokio-named-pipes"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/app-dirs-rs"]
+git = "https://github.com/paritytech/app-dirs-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/bn"]
+git = "https://github.com/paritytech/bn"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/daemonize"]
+git = "https://github.com/paritytech/daemonize"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/hidapi-rs"]
+git = "https://github.com/paritytech/hidapi-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/jsonrpc.git"]
+git = "https://github.com/paritytech/jsonrpc.git"
+branch = "parity-2.2"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/libusb-rs"]
+git = "https://github.com/paritytech/libusb-rs"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/libusb-sys"]
+git = "https://github.com/paritytech/libusb-sys"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/parity-common"]
+git = "https://github.com/paritytech/parity-common"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/ring"]
+git = "https://github.com/paritytech/ring"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-ctrlc.git"]
+git = "https://github.com/paritytech/rust-ctrlc.git"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-rocksdb"]
+git = "https://github.com/paritytech/rust-rocksdb"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-secp256k1"]
+git = "https://github.com/paritytech/rust-secp256k1"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/rust-snappy"]
+git = "https://github.com/paritytech/rust-snappy"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/paritytech/trezor-sys"]
+git = "https://github.com/paritytech/trezor-sys"
+branch = "master"
+replace-with = "vendored-sources"
+
+[source."https://github.com/tomusdrw/ws-rs"]
+git = "https://github.com/tomusdrw/ws-rs"
+branch = "master"
+replace-with = "vendored-sources"

View File

@ -0,0 +1,30 @@
{ stdenv
, fetchFromGitHub
, rustPlatform
, pkgconfig
, openssl
}:
rustPlatform.buildRustPackage rec {
name = "polkadot-${version}";
version = "0.2.17";
src = fetchFromGitHub {
owner = "paritytech";
repo = "substrate";
rev = "19f4f4d4df3bb266086b4e488739f73d3d5e588c";
sha256 = "0v7g03rbml2afw0splmyjh9nqpjg0ldjw09hyc0jqd3qlhgxiiyj";
};
cargoSha256 = "0wwkaxqj2v5zach5xcqfzf6prc0gxy2v47janglp44xbxbx9xk08";
buildInputs = [ pkgconfig openssl openssl.dev ];
meta = with stdenv.lib; {
description = "Polkadot Node Implementation";
homepage = http://polkadot.network;
license = licenses.gpl3;
maintainers = [ maintainers.akru ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,49 @@
{ stdenv, csound, desktop-file-utils,
fetchFromGitHub, python, python-qt, qmake,
qtwebengine, rtmidi, unzip }:
stdenv.mkDerivation rec {
name = "csound-qt-${version}";
version = "0.9.6-beta2";
src = fetchFromGitHub {
owner = "CsoundQt";
repo = "CsoundQt";
rev = "${version}";
sha256 = "12jv7cvns3wj2npha0mvpn88kkkfsxsvhgzs2wrw04kbrvbhbffi";
};
patches = [ ./rtmidipath.patch ];
nativeBuildInputs = [ qmake qtwebengine ];
buildInputs = [ csound desktop-file-utils rtmidi unzip ];
qmakeFlags = [ "qcs.pro" "CONFIG+=rtmidi" "CONFIG+=pythonqt"
"CSOUND_INCLUDE_DIR=${csound}/include/csound"
"CSOUND_LIBRARY_DIR=${csound}/lib"
"RTMIDI_DIR=${rtmidi.src}"
"PYTHONQT_SRC_DIR=${python-qt}/lib"
"PYTHONQT_LIB_DIR=${python-qt}/lib"
"LIBS+=${python-qt}/lib/libPythonQt-Qt5-Python2.7.so"
"LIBS+=${python-qt}/lib/libPythonQt_QtAll-Qt5-Python2.7.so"
"INCLUDEPATH+=${python-qt}/include/PythonQt"
"INCLUDEPATH+=${python}/include/python2.7"
"INSTALL_DIR=$(out)"
"SHARE_DIR=$(out)/share"
];
installPhase = ''
mkdir -p $out
cp -r bin $out
make install
'';
meta = with stdenv.lib; {
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features.";
homepage = https://csoundqt.github.io/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ hlolli ];
};
}

View File

@ -0,0 +1,17 @@
diff --git a/src/src.pri b/src/src.pri
index e5e0c896..9a9fa513 100644
--- a/src/src.pri
+++ b/src/src.pri
@@ -155,9 +155,9 @@ pythonqt {
"src/pyqcsobject.cpp"
}
rtmidi {
- HEADERS += "src/../$${RTMIDI_DIR}/RtMidi.h"
- SOURCES += "src/../$${RTMIDI_DIR}/RtMidi.cpp"
- INCLUDEPATH += src/../$${RTMIDI_DIR}
+ HEADERS += "$${RTMIDI_DIR}/RtMidi.h"
+ SOURCES += "$${RTMIDI_DIR}/RtMidi.cpp"
+ INCLUDEPATH += $${RTMIDI_DIR}
}
perfThread_build {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "drumkv1-${version}";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "0a38vpyyppjdwifidrhgj4bnsx4jjx413657s59j0r4q8rg55jca";
sha256 = "02j10khl3wd17z0wfs3crr55wv7h9f0qhhg90xg0kvrxvw83vzy9";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View File

@ -4,8 +4,8 @@
, gobject-introspection, wrapGAppsHook }:
python3.pkgs.buildPythonApplication rec {
pname = "lollypop";
version = "0.9.611";
name = "lollypop-${version}";
format = "other";
doCheck = false;
@ -40,7 +40,7 @@ python3.pkgs.buildPythonApplication rec {
libsoup
];
pythonPath = with python3.pkgs; [
propagatedBuildInputs = with python3.pkgs; [
beautifulsoup4
gst-python
pillow
@ -56,15 +56,15 @@ python3.pkgs.buildPythonApplication rec {
'';
preFixup = ''
buildPythonPath "$out/libexec/lollypop-sp $pythonPath"
buildPythonPath "$out $propagatedBuildInputs"
patchPythonScript "$out/libexec/lollypop-sp"
'';
meta = with stdenv.lib; {
description = "A modern music player for GNOME";
homepage = https://wiki.gnome.org/Apps/Lollypop;
license = licenses.gpl3Plus;
homepage = https://wiki.gnome.org/Apps/Lollypop;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ worldofpeace ];
platforms = platforms.linux;
platforms = platforms.linux;
};
}

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris";
version = "3.31.2";
version = "3.31.3";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0639ib5nicrabckjd17wdmhl8n3822gc2p1bn0xv8mq70paspar6";
sha256 = "060kvwlch2jgiriafly8y03fp8gpbw9xiwhq8ncdij390a03iz8n";
};
propagatedBuildInputs = [

View File

@ -44,13 +44,13 @@ let
];
in stdenv.mkDerivation rec {
name = "pulseeffects-${version}";
version = "4.4.0";
version = "4.4.1";
src = fetchFromGitHub {
owner = "wwmm";
repo = "pulseeffects";
rev = "v${version}";
sha256 = "0bjzlqyvcp9hxaq07nqr14k9kvan5myaxb7ci30gz0fgayib85lv";
sha256 = "0hb575h9hdknhwvhn5lak89ddavn4v5c0nipnv8dsfnmjhfli5qm";
};
nativeBuildInputs = [

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
name = "qsampler-${version}";
version = "0.5.2";
version = "0.5.3";
src = fetchurl {
url = "mirror://sourceforge/qsampler/${name}.tar.gz";
sha256 = "0xb0j57k03pkdl7yl5mcv1i21ljnxcq6b9h3zp6mris916lj45zq";
sha256 = "02xazvz8iaksglbgq3jhw4fq3f5pdcq9sss79jxs082md0mry17d";
};
nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
name = "deja-dup-${version}";
version = "38.0";
version = "38.1";
src = fetchurl {
url = "https://launchpad.net/deja-dup/${stdenv.lib.versions.major version}/${version}/+download/deja-dup-${version}.tar.xz";
sha256 = "1l3sa24v0v6xf312h36jikfi8zyx6z3nmc7pjzgdp7l89gkdm65v";
sha256 = "0wm7z72qbsljzsysxg8h5sbpg56ignn9mp8v3xynn12dv3gv6rba";
};
patches = [

View File

@ -18,9 +18,9 @@ let
sha256Hash = "05rjwvcph0wx0p0hai5z6n9lnyhk3i5yvbvhr51jc8s3k3b6jyi5";
};
latestVersion = { # canary & dev
version = "3.4.0.6"; # "Android Studio 3.4 Canary 7"
build = "183.5159543";
sha256Hash = "0r685qqx4w1hwbd8jgrh7ks8bw9m7823ffhd3x6pl7j4b9hpc858";
version = "3.4.0.7"; # "Android Studio 3.4 Canary 8"
build = "183.5173923";
sha256Hash = "0bf96c9db15rw1k1znz6yxhbrn9q990zy3pkq0nsirnqfpgllvpi";
};
in rec {
# Old alias

View File

@ -3,14 +3,14 @@
let
versions = {
atom = {
version = "1.32.1";
sha256 = "1x22jbhvagqw9mvq0v7z4z09qp727vl0rkyvaxn98xnj9gvcfkq9";
version = "1.33.0";
sha256 = "0f6m6zwgz94m3q11ipyiliap3s5a3zlrg3ldjwkqnxjl6gwlxc2r";
};
atom-beta = {
version = "1.33.0";
beta = 1;
sha256 = "0sf98apmb57msgr5p1xly0mffzn2s808nsfsmbisk4qqmm9fv2m3";
version = "1.34.0";
beta = 0;
sha256 = "1xnrr4z55sj46hqr0il26sfs6s3knv60m340cw3rzzic271b3ifw";
};
};
@ -79,7 +79,7 @@ let
description = "A hackable text editor for the 21st Century";
homepage = https://atom.io/;
license = licenses.mit;
maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
maintainers = with maintainers; [ offline nequissimus ysndr ];
platforms = platforms.x86_64;
};
};

View File

@ -3,7 +3,7 @@
with stdenv.lib;
let
version = "1.33";
version = "1.34";
in
stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://download.geany.org/${name}.tar.bz2";
sha256 = "66baaff43f12caebcf0efec9a5533044dc52837f799c73a1fd7312caa86099c2";
sha256 = "63b93d25d037eaffa77895ae6dd29c91bca570e4053eff5cc8490f87e6021f8e";
};
nativeBuildInputs = [ pkgconfig intltool libintl ];

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "ghostwriter";
version = "1.7.3";
version = "1.7.4";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "wereturtle";
repo = pname;
rev = "v${version}";
sha256 = "1xkxd59rw2dn6xphgcl06zzmfgs1zna2w0pxrk0f49ywffvkvs72";
sha256 = "1pqlr08z5syqcq5p282asxwzrrm7c1w94baxyb467swh8yp3fj5m";
};
nativeBuildInputs = [ qmake pkgconfig ];

View File

@ -250,12 +250,12 @@ in
clion = buildClion rec {
name = "clion-${version}";
version = "2018.2.6"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "1mgm3a6ph3j085bidl6vsy85kpscfspzxbzdmh3biklwfv3445rf"; /* updated by script */
sha256 = "0wv4hmh71ca9fl4pslf8nn6wppa98sc94272z4nb42jbs6dnb9ji"; /* updated by script */
};
wmClass = "jetbrains-clion";
update-channel = "CLion Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@ -276,12 +276,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "0hd44flxqnnxg390mkf4ppjs2nxv0nwdc7a2i65f69bp5h61x783"; /* updated by script */
sha256 = "0z3z9hc7h3n63mfy7c5zh5sz8c0bzgxk79xamw08sxphrsjahasz"; /* updated by script */
};
wmClass = "jetbrains-goland";
update-channel = "GoLand Release";
@ -289,12 +289,12 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "01ccz5ksbv8xh8mnk3zxqpia8zgayy8bcgmbwqibrykz47y6r7yy"; /* updated by script */
sha256 = "1zi4aib1h4jfn241gsg83jsqfj99fpbci4pkh8xarap6xrallyiq"; /* updated by script */
};
wmClass = "jetbrains-idea-ce";
update-channel = "IntelliJ IDEA Release";
@ -302,12 +302,12 @@ in
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
sha256 = "16z0pqmxjn5dl42rbz7mx8gi13xs3220pzkdsdkh1k1ny9caqzvj"; /* updated by script */
sha256 = "0x0dplmv37gqdbrwxsx6xaix9dbaa6kqc09ganln5r4nl2bg64i8"; /* updated by script */
};
wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA Release";
@ -315,12 +315,12 @@ in
phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}";
version = "2018.2.5"; /* updated by script */
version = "2018.2.6"; /* updated by script */
description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "0crr3056hlv9x2q1i1n00aavj53xkwkfy4lgyyphk81c0gly4dg1"; /* updated by script */
sha256 = "0z627q9mcxlz8a92dndnaz2qa9dkaapimsfqkvc0i8ab88yw75v1"; /* updated by script */
};
wmClass = "jetbrains-phpstorm";
update-channel = "PhpStorm 2018.2";
@ -328,12 +328,12 @@ in
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0kgrh3w4lpk7qkp5gss24in1nqahdfllvf97qz6r77zn9n5k1wq7"; /* updated by script */
sha256 = "02vs8nxxm139jl622nhxs59i9gw9rs5rjymkg8a0ajpybang24jk"; /* updated by script */
};
wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm Release";
@ -341,12 +341,12 @@ in
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0q4scwnqy0h725g9z5hd145c3n10iaj04z790s4lixg1c63h3y8q"; /* updated by script */
sha256 = "0g4ag9lid2km69s5g31hhhvz3zjx52wxca1q4qz1h0s9km0ca1sq"; /* updated by script */
};
wmClass = "jetbrains-pycharm";
update-channel = "PyCharm Release";
@ -367,12 +367,12 @@ in
ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "2018.2.5"; /* updated by script */
version = "2018.2.6"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0b01fnifk5iawyf2zi7r5ffz8dxlh18g2ilrkc5746vmnsp0jxq4"; /* updated by script */
sha256 = "0xbmj7d1ccq2qf1jsvch1zxdrypkvzxdfkr431c8fnabh993yxx1"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "RubyMine 2018.2";
@ -380,12 +380,12 @@ in
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
version = "2018.3"; /* updated by script */
version = "2018.3.1"; /* updated by script */
description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "0msvgdjbdipc4g8j705d1jya2mjmx4wwhb23nch3znh7grryr75s"; /* updated by script */
sha256 = "1l3jy1ifx82gdnvpgz77ycxbwymcwwd830i4mfidkr9gkndlxpsp"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WebStorm Release";

View File

@ -4,17 +4,17 @@ with stdenv.lib;
pythonPackages.buildPythonPackage rec {
pname = "neovim-remote";
version = "2.1.0";
version = "2.1.1";
disabled = !pythonPackages.isPy3k;
src = fetchFromGitHub {
owner = "mhinz";
repo = "neovim-remote";
rev = "v${version}";
sha256 = "0gri4d8gg5hvywffvj8r123d06x006qhink7d54yk6lvplw64gyc";
sha256 = "1hkzcc141imjin03wpfykw50k0vs7vj1lr09czb2hsyf937gyjqn";
};
propagatedBuildInputs = with pythonPackages; [ neovim psutil ];
propagatedBuildInputs = with pythonPackages; [ pynvim psutil ];
meta = {
description = "A tool that helps controlling nvim processes from a terminal";

View File

@ -16,7 +16,6 @@ let
, withPython3 ? true, extraPython3Packages ? (_: []) /* the function you would have passed to python.withPackages */
, withNodeJs? false
, withRuby ? true
, withPyGUI ? false
, vimAlias ? false
, viAlias ? false
, configure ? {}
@ -43,13 +42,13 @@ let
pluginPythonPackages = getDeps "pythonDependencies" requiredPlugins;
pythonEnv = pythonPackages.python.withPackages(ps:
(if withPyGUI then [ ps.neovim_gui ] else [ ps.neovim ])
[ ps.pynvim ]
++ (extraPythonPackagesFun ps)
++ (concatMap (f: f ps) pluginPythonPackages));
pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins;
python3Env = python3Packages.python.withPackages (ps:
[ ps.neovim ]
[ ps.pynvim ]
++ (extraPython3PackagesFun ps)
++ (concatMap (f: f ps) pluginPython3Packages));
@ -88,10 +87,6 @@ let
makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
'' + optionalString withRuby ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
''
+ optionalString withPyGUI ''
makeWrapper "${pythonEnv}/bin/pynvim" "$out/bin/pynvim" \
--prefix PATH : "$out/bin"
'' + optionalString vimAlias ''
ln -s $out/bin/nvim $out/bin/vim
'' + optionalString viAlias ''

View File

@ -9,13 +9,19 @@ stdenv.mkDerivation rec {
if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
name = "sublimetext-2.0.2.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2;
url = [
http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2
https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2
];
sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7";
}
else
fetchurl {
name = "sublimetext-2.0.2.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2;
url = [
http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2
https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2
];
sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1";
};
buildCommand = ''

View File

@ -1,4 +1,4 @@
{ stdenv, fetchgit
{ stdenv, fetchFromGitHub
, ncurses }:
stdenv.mkDerivation rec {
@ -6,20 +6,27 @@ stdenv.mkDerivation rec {
name = "tecoc-git-${version}";
version = "20150606";
src = fetchgit {
url = "https://github.com/blakemcbride/TECOC.git";
src = fetchFromGitHub {
owner = "blakemcbride";
repo = "TECOC";
rev = "d7dffdeb1dfb812e579d6d3b518545b23e1b50cb";
sha256 = "11zfa73dlx71c0hmjz5n3wqcvk6082rpb4sss877nfiayisc0njj";
};
buildInputs = [ ncurses ];
configurePhase = ''
cp src/makefile.linux src/Makefile
'';
buildPhase = ''
make CC=${stdenv.cc}/bin/cc -C src/
'';
makefile = if stdenv.hostPlatform.isDarwin
then "makefile.osx"
else if stdenv.hostPlatform.isFreeBSD
then "makefile.bsd"
else if stdenv.hostPlatform.isOpenBSD
then "makefile.bsd"
else if stdenv.hostPlatform.isWindows
then "makefile.win"
else "makefile.linux"; # I think Linux is a safe default...
makeFlags = [ "CC=${stdenv.cc}/bin/cc" "-C src/" ];
installPhase = ''
mkdir -p $out/bin $out/share/doc/${name} $out/lib/teco/macros
cp src/tecoc $out/bin
@ -31,26 +38,26 @@ stdenv.mkDerivation rec {
ln -s tecoc teco
ln -s tecoc Inspect )
'';
meta = with stdenv.lib; {
description = "A clone of the good old TECO editor";
longDescription = ''
For those who don't know: TECO is the acronym of Tape Editor and
COrrector (because it was a paper tape edition tool in its debut
days). Now the acronym follows after Text Editor and Corrector,
or Text Editor Character-Oriented.
TECO is a character-oriented text editor, originally developed
bu Dan Murphy at MIT circa 1962. It is also a Turing-complete
imperative interpreted programming language for text
manipulation, done via user-loaded sets of macros. In fact, Emacs
was born as a set of Editor MACroS for TECO.
For those who don't know: TECO is the acronym of Tape Editor and COrrector
(because it was a paper tape edition tool in its debut days). Now the
acronym follows after Text Editor and Corrector, or Text Editor
Character-Oriented.
TECO is a character-oriented text editor, originally developed by Dan
Murphy at MIT circa 1962. It is also a Turing-complete imperative
interpreted programming language for text manipulation, done via
user-loaded sets of macros. In fact, the venerable Emacs was born as a set
of Editor MACroS for TECO.
TECOC is a portable C implementation of TECO-11.
'';
homepage = https://github.com/blakemcbride/TECOC;
license = { url = https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt; };
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}
# TODO: test in other platforms - especially Darwin

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "texstudio";
version = "2.12.10";
version = "2.12.14";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
sha256 = "0mkx7fym41hwd7cdg31ji2hxlv3gxx0sa6bnap51ryxmq8sxdjhq";
sha256 = "08vfhkgzhh1227wcvr5wwpnw0072c80nf2crhmxwh3jgjfgi538f";
};
nativeBuildInputs = [ qt5.qmake pkgconfig ];

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
version = "8.1.0535";
version = "8.1.0578";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
sha256 = "0kgh213ca2qfrwdqfimrnhlxidjbrg26icxw00rivjiv1blii7ck";
sha256 = "0sawqxp2737y6mga9da36qya47h0idnnaxblzpsx8clw002piyv2";
};
enableParallelBuilding = true;

View File

@ -12,9 +12,9 @@ let
}.${stdenv.hostPlatform.system};
sha256 = {
"i686-linux" = "0r19i3gg6iz8j7plb89c0k8r3wlh9vxbv7mwbssy0yvhid2af3ww";
"x86_64-linux" = "1r66mjz4lgv3dk0rjb9p27ha9y7vj7xld9x9gqnjxqx9ify71r9i";
"x86_64-darwin" = "0akr8675hnppxwr8xy5lr6rlqz8zg1fj823vks5mx3ssmd3sg189";
"i686-linux" = "0bd2jdn67vnbhrsqy54bymz4di3fw3p18ni5j2wikqkl4d9h4jj1";
"x86_64-linux" = "1zbnyff0q15xkvkrs14rfgyn6xb9v0xivcnbl8yckl71s45vb2l1";
"x86_64-darwin" = "1qgzhpfzcwym1qyzx2v14336l106hzhs7ii84g356vxkm219x7kw";
}.${stdenv.hostPlatform.system};
archive_fmt = if stdenv.hostPlatform.system == "x86_64-darwin" then "zip" else "tar.gz";
@ -31,7 +31,7 @@ let
in
stdenv.mkDerivation rec {
name = "vscode-${version}";
version = "1.29.1";
version = "1.30.0";
src = fetchurl {
name = "VSCode_${version}_${plat}.${archive_fmt}";

View File

@ -68,7 +68,7 @@ runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
ln -sT "${vscode}/share/pixmaps/code.png" "$out/share/pixmaps/code.png"
ln -sT "${vscode}/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" \
--add-flags \
"--extensions-dir ${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions"
makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" ${lib.optionalString (vscodeExtensions != []) ''
--add-flags "--extensions-dir ${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions"
''}
''

View File

@ -6,11 +6,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "feh-${version}";
version = "3.0";
version = "3.1.1";
src = fetchurl {
url = "https://feh.finalrewind.org/${name}.tar.bz2";
sha256 = "00fwf8yz7k8vzd30ly5ndlj6ax9w85dkjzjnlk95vd0zdrf4wyxn";
sha256 = "1sy8z6rv5sy1bhk3846hgfdy96wdi874yr2fnxfprks46qp29l31";
};
outputs = [ "out" "man" "doc" ];

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
name = "glabels-${version}";
version = "3.4.0";
version = "3.4.1";
src = fetchurl {
url = "https://ftp.gnome.org/pub/GNOME/sources/glabels/3.4/glabels-3.4.0.tar.xz";
sha256 = "04345crf5yrhq6rlrymz630rxnm8yw41vx04hb6xn2nkjn9hf3nl";
url = "mirror://gnome/sources/glabels/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q";
};
nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper intltool ];
@ -25,11 +25,11 @@ stdenv.mkDerivation rec {
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
meta = {
meta = with stdenv.lib; {
description = "Create labels and business cards";
homepage = http://glabels.org/;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.nico202 ];
homepage = https://glabels.org/;
license = with licenses; [ gpl3Plus lgpl3Plus ];
platforms = platforms.unix;
maintainers = [ maintainers.nico202 ];
};
}

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "graphicsmagick-${version}";
version = "1.3.30";
version = "1.3.31";
src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
sha256 = "1warar0731xf94r4bn5x1km85rjabl4iq8r0dk3ywmczap3farfr";
sha256 = "0y22740f25qxsqqqg26xqlfp920dm57b7hrgaqmx7azksrcvnsq9";
};
patches = [

View File

@ -5,13 +5,13 @@
let
pname = "gthumb";
version = "3.6.1";
version = "3.6.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1vj26gw9b5y4bmb2m49wplqg0md568g3gxin500v3slggzhzkaww";
sha256 = "0rjb0bsjhn7nyl5jyjgrypvr6qdr9dc2g586j3lzan96a2vnpgy9";
};
nativeBuildInputs = [ itstool libxml2 intltool pkgconfig bison flex wrapGAppsHook ];

View File

@ -7,19 +7,19 @@ let
custom_swig = fetchFromGitHub {
owner = "baldurk";
repo = "swig";
rev = "renderdoc-modified-5";
sha256 = "0ihrxbx56p5wn589fbbsns93fp91sypqdzfxdy7l7v9sf69a41mw";
rev = "renderdoc-modified-6";
sha256 = "00ykqlzx1k9iwqjlc54kfch7cnzsj53hxn7ql70dj3rxqzrnadc0";
};
in
stdenv.mkDerivation rec {
version = "1.1";
version = "1.2";
name = "renderdoc-${version}";
src = fetchFromGitHub {
owner = "baldurk";
repo = "renderdoc";
rev = "v${version}";
sha256 = "0kb9m1dm0mnglqyh1srvl0f1bgjghxzbqarn0xfqw49wphqwhmcd";
sha256 = "0s1q5d58x18yz3nf94pv5i1qd2hc0a4gdj4qkpcn8s6ms2x05pz4";
};
buildInputs = [

View File

@ -1,8 +1,8 @@
diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
index 2e9f1acf4..ecc80afdc 100644
index d85c1a79b..8df02710c 100644
--- a/src/akonadicontrol/agentmanager.cpp
+++ b/src/akonadicontrol/agentmanager.cpp
@@ -84,12 +84,12 @@ AgentManager::AgentManager(bool verbose, QObject *parent)
@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose, QObject *parent)
mStorageController = new Akonadi::ProcessControl;
mStorageController->setShutdownTimeout(15 * 1000); // the server needs more time for shutdown if we are using an internal mysqld
connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
@ -15,8 +15,8 @@ index 2e9f1acf4..ecc80afdc 100644
- mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+ mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
}
}
#ifndef QT_NO_DEBUG
diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
index be1cc4afb..6d0c1d7e5 100644
--- a/src/akonadicontrol/agentprocessinstance.cpp
@ -31,7 +31,7 @@ index be1cc4afb..6d0c1d7e5 100644
}
return true;
diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
index a32e86602..48ea4e52e 100644
index 8b057b459..3fa4548ad 100644
--- a/src/server/storage/dbconfigmysql.cpp
+++ b/src/server/storage/dbconfigmysql.cpp
@@ -63,7 +63,6 @@ bool DbConfigMysql::init(QSettings &settings)
@ -121,7 +121,7 @@ index a32e86602..48ea4e52e 100644
const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
if (globalConfig.isEmpty()) {
diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
index 60e6272f2..ad7cefbfe 100644
index 6b50ae50e..f94a8c5eb 100644
--- a/src/server/storage/dbconfigpostgresql.cpp
+++ b/src/server/storage/dbconfigpostgresql.cpp
@@ -58,7 +58,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
@ -132,7 +132,7 @@ index 60e6272f2..ad7cefbfe 100644
QString defaultInitDbPath;
QString defaultPgData;
@@ -70,34 +69,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
@@ -70,35 +69,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
if (mInternalServer) {
@ -144,7 +144,8 @@ index 60e6272f2..ad7cefbfe 100644
- postgresSearchPath << QStringLiteral(POSTGRES_PATH);
- }
-#endif
- postgresSearchPath << QStringLiteral("/usr/sbin")
- postgresSearchPath << QStringLiteral("/usr/bin")
- << QStringLiteral("/usr/sbin")
- << QStringLiteral("/usr/local/sbin");
- // Locale all versions in /usr/lib/postgresql (i.e. /usr/lib/postgresql/X.Y) in reversed
- // sorted order, so we search from the newest one to the oldest.
@ -168,7 +169,7 @@ index 60e6272f2..ad7cefbfe 100644
defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
}
@@ -117,10 +89,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
@@ -118,10 +89,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
mUserName = settings.value(QStringLiteral("User")).toString();
mPassword = settings.value(QStringLiteral("Password")).toString();
mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@ -180,7 +181,7 @@ index 60e6272f2..ad7cefbfe 100644
qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath;
mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString();
if (mInternalServer && mInitDbPath.isEmpty()) {
@@ -141,7 +110,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
@@ -142,7 +110,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
settings.setValue(QStringLiteral("Port"), mHostPort);
}
settings.setValue(QStringLiteral("Options"), mConnectionOptions);

View File

@ -165,7 +165,6 @@ let
pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
print-manager = callPackage ./print-manager.nix {};
spectacle = callPackage ./spectacle.nix {};
syndication = callPackage ./syndication.nix {};
# Okteta was removed from kde applications and will now be released independently
# Lets keep an alias for compatibility reasons
inherit okteta;

View File

@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/applications/18.08.1/ -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/applications/18.12.0/ -A '*.tar.xz' )

View File

@ -5,7 +5,7 @@
akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
pimcommon, qtwebengine, libkgapi
pimcommon, qtwebengine, libkgapi, qtspeech
}:
mkDerivation {
@ -19,7 +19,7 @@ mkDerivation {
akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
pimcommon libkgapi
pimcommon libkgapi qtspeech
];
# Attempts to build some files before dependencies have been generated
enableParallelBuilding = false;

View File

@ -1,7 +1,7 @@
{
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
kmime, qtbase,
kmime, qtbase, kcodecs
}:
mkDerivation {
@ -11,6 +11,6 @@ mkDerivation {
maintainers = kdepimTeam;
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ kmime qtbase ];
buildInputs = [ kmime qtbase kcodecs ];
outputs = [ "out" "dev" ];
}

View File

@ -2,7 +2,8 @@
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
grantlee, kcodecs, kconfigwidgets, kemoticons, ki18n, kiconthemes, kio,
kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools,
kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools,
qtspeech
}:
mkDerivation {
@ -14,7 +15,7 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
grantlee kcodecs kconfigwidgets kemoticons ki18n kiconthemes kio kdesignerplugin
sonnet syntax-highlighting qttools
sonnet syntax-highlighting qttools qtspeech
];
propagatedBuildInputs = [ ktextwidgets ];
outputs = [ "out" "dev" ];

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
{
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
kio
}:
mkDerivation {
name = "syndication";
meta = {
license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
maintainers = kdepimTeam;
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [ kio ];
outputs = [ "out" "dev" ];
}

View File

@ -1,37 +0,0 @@
{ stdenv, go, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "acbuild-${version}";
version = "0.4.0";
src = fetchFromGitHub {
owner = "appc";
repo = "acbuild";
rev = "v${version}";
sha256 = "0s81xlaw75d05b4cidxml978hnxak8parwpnk9clanwqjbj66c7x";
};
buildInputs = [ go ];
patchPhase = ''
sed -i -e 's|\git describe --dirty|echo "${version}"|' build
'';
buildPhase = ''
patchShebangs build
./build
'';
installPhase = ''
mkdir -p $out
mv bin $out
'';
meta = with stdenv.lib; {
description = "A build tool for ACIs";
homepage = https://github.com/appc/acbuild;
license = licenses.asl20;
maintainers = with maintainers; [ dgonyeo ];
platforms = platforms.linux;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, qtbase, qtquick1, qmltermwidget,
qtquickcontrols, qtgraphicaleffects, qmake }:
{ stdenv, fetchFromGitHub, qtbase, qtquick1, qmltermwidget
, qtquickcontrols, qtgraphicaleffects, qmake }:
stdenv.mkDerivation rec {
version = "1.0.1";
@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
mv $out/usr/share $out/share
mv $out/usr/bin $out/bin
rmdir $out/usr
'' + stdenv.lib.optionalString stdenv.isDarwin ''
ln -s $out/bin/cool-retro-term.app/Contents/MacOS/cool-retro-term $out/bin/cool-retro-term
'';
enableParallelBuilding = true;
@ -37,8 +39,8 @@ stdenv.mkDerivation rec {
eye-candy, customizable, and reasonably lightweight.
'';
homepage = https://github.com/Swordfish90/cool-retro-term;
license = with stdenv.lib.licenses; [ gpl2 gpl3 ];
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl3Plus;
platforms = with stdenv.lib.platforms; linux ++ darwin;
maintainers = with stdenv.lib.maintainers; [ skeidel ];
};
}

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
name = "CopyQ-${version}";
version = "3.7.0";
version = "3.7.1";
src = fetchFromGitHub {
owner = "hluk";
repo = "CopyQ";
rev = "v${version}";
sha256 = "1dm02l1ry7ndn283774nzmg89wy1933f4iyf6n02p152zgx4llyf";
sha256 = "0b3lrhrffvq46n9xc0lzbxhhn1lzmq2lrijjdwizc52458d6h90y";
};
nativeBuildInputs = [ cmake ];

View File

@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
name = "dbeaver-ce-${version}";
version = "5.2.5";
version = "5.3.0";
desktopItem = makeDesktopItem {
name = "dbeaver";
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "0xjggjq2brhi9x3i4d7hqfi18cd8czs6rzvihvspfxaqilsai0dm";
sha256 = "1gn52bffjn2fw9yhi1rv4iy9dfdn5qxc51gv6qri5g0c8pblvh7m";
};
installPhase = ''

View File

@ -7,14 +7,14 @@ let
in
python3Packages.buildPythonApplication rec {
version = "3.3.1";
version = "3.3.2";
name = "electron-cash-${version}";
src = fetchurl {
url = "https://electroncash.org/downloads/${version}/win-linux/ElectronCash-${version}.tar.gz";
# Verified using official SHA-1 and signature from
# https://github.com/fyookball/keys-n-hashes
sha256 = "1jdy89rfdwc2jadx3rqj5yvynpcn90cx6482ax9f1cj9gfxp9j2b";
sha256 = "4538044cfaa4f87a847635849e0733f32b183ac79abbd2797689c86dc3cb0d53";
};
propagatedBuildInputs = with python3Packages; [
@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
pysocks
qrcode
requests
tlslite
tlslite-ng
# plugins
keepkey

View File

@ -22,7 +22,7 @@ python2Packages.buildPythonApplication rec {
qrcode
requests
pyaes
tlslite
tlslite-ng
x11_hash
mnemonic
jsonrpclib

View File

@ -35,7 +35,7 @@ python3Packages.buildPythonApplication rec {
qdarkstyle
qrcode
requests
tlslite
tlslite-ng
typing
# plugins

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