Merge remote-tracking branch 'NixOS/master' into staging

This commit is contained in:
Matthew Bauer 2019-01-27 00:01:13 -05:00
commit 92f0f8dd68
403 changed files with 4759 additions and 3164 deletions

View File

@ -1279,7 +1279,9 @@ makeFlags = [ "PREFIX=$(out)" ];
<command>make</command>. You must use this instead of <command>make</command>. You must use this instead of
<varname>makeFlags</varname> if the arguments contain spaces, e.g. <varname>makeFlags</varname> if the arguments contain spaces, e.g.
<programlisting> <programlisting>
makeFlagsArray=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar") preBuild = ''
makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
'';
</programlisting> </programlisting>
Note that shell arrays cannot be passed through environment variables, Note that shell arrays cannot be passed through environment variables,
so you cannot set <varname>makeFlagsArray</varname> in a derivation so you cannot set <varname>makeFlagsArray</varname> in a derivation

View File

@ -21,7 +21,7 @@
- `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`), - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`),
- `keys` is a list of your PGP/GPG key IDs and fingerprints. - `keys` is a list of your PGP/GPG key IDs and fingerprints.
`handle == github` is strongly preffered whenever `github` is an acceptable attribute name and is short and convenient. `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
Add PGP/GPG keys only if you actually use them to sign commits and/or mail. Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
@ -1427,6 +1427,10 @@
email = "justin.humm@posteo.de"; email = "justin.humm@posteo.de";
github = "erictapen"; github = "erictapen";
name = "Justin Humm"; name = "Justin Humm";
keys = [{
longkeyid = "rsa4096/0x438871E000AA178E";
fingerprint = "984E 4BAD 9127 4D0E AE47 FF03 4388 71E0 00AA 178E";
}];
}; };
erikryb = { erikryb = {
email = "erik.rybakken@math.ntnu.no"; email = "erik.rybakken@math.ntnu.no";
@ -1456,6 +1460,10 @@
email = "elis@hirwing.se"; email = "elis@hirwing.se";
github = "etu"; github = "etu";
name = "Elis Hirwing"; name = "Elis Hirwing";
keys = [{
longkeyid = "rsa4096/0xD57EFA625C9A925F";
fingerprint = "67FE 98F2 8C44 CF22 1828 E12F D57E FA62 5C9A 925F";
}];
}; };
evck = { evck = {
email = "eric@evenchick.com"; email = "eric@evenchick.com";
@ -2882,6 +2890,11 @@
email = "joerg@thalheim.io"; email = "joerg@thalheim.io";
github = "mic92"; github = "mic92";
name = "Jörg Thalheim"; name = "Jörg Thalheim";
keys = [{
# compare with https://keybase.io/Mic92
longkeyid = "rsa4096/0x003F2096411B5F92";
fingerprint = "3DEE 1C55 6E1C 3DC5 54F5 875A 003F 2096 411B 5F92";
}];
}; };
michaelpj = { michaelpj = {
email = "michaelpj@gmail.com"; email = "michaelpj@gmail.com";
@ -3600,6 +3613,14 @@
email = "dev.primeos@gmail.com"; email = "dev.primeos@gmail.com";
github = "primeos"; github = "primeos";
name = "Michael Weiss"; name = "Michael Weiss";
keys = [
{ longkeyid = "ed25519/0x130826A6C2A389FD"; # Git only
fingerprint = "86A7 4A55 07D0 58D1 322E 37FD 1308 26A6 C2A3 89FD";
}
{ longkeyid = "rsa3072/0xBCA9943DD1DF4C04"; # Email, etc.
fingerprint = "AF85 991C C950 49A2 4205 1933 BCA9 943D D1DF 4C04";
}
];
}; };
Profpatsch = { Profpatsch = {
email = "mail@profpatsch.de"; email = "mail@profpatsch.de";
@ -3668,6 +3689,10 @@
email = "hi@alyssa.is"; email = "hi@alyssa.is";
github = "alyssais"; github = "alyssais";
name = "Alyssa Ross"; name = "Alyssa Ross";
keys = [{
longkeyid = "rsa4096/736CCDF9EF51BD97";
fingerprint = "7573 56D7 79BB B888 773E 415E 736C CDF9 EF51 BD97";
}];
}; };
ragge = { ragge = {
email = "r.dahlen@gmail.com"; email = "r.dahlen@gmail.com";
@ -4183,6 +4208,10 @@
email = "sebastien.maret@icloud.com"; email = "sebastien.maret@icloud.com";
github = "smaret"; github = "smaret";
name = "Sébastien Maret"; name = "Sébastien Maret";
keys = [{
longkeyid = "rsa4096/0x86E30E5A0F5FC59C";
fingerprint = "4242 834C D401 86EF 8281 4093 86E3 0E5A 0F5F C59C";
}];
}; };
smironov = { smironov = {
email = "grrwlf@gmail.com"; email = "grrwlf@gmail.com";
@ -4373,6 +4402,10 @@
email = "me@tadeo.ca"; email = "me@tadeo.ca";
github = "tadeokondrak"; github = "tadeokondrak";
name = "Tadeo Kondrak"; name = "Tadeo Kondrak";
keys = [{
longkeyid = "ed25519/0xFBE607FCC49516D3";
fingerprint = "0F2B C0C7 E77C 5B42 AC5B 4C18 FBE6 07FC C495 16D3";
}];
}; };
tadfisher = { tadfisher = {
email = "tadfisher@gmail.com"; email = "tadfisher@gmail.com";
@ -4879,11 +4912,6 @@
github = "wjlroe"; github = "wjlroe";
name = "William Roe"; name = "William Roe";
}; };
wkennington = {
email = "william@wkennington.com";
github = "wkennington";
name = "William A. Kennington III";
};
wmertens = { wmertens = {
email = "Wout.Mertens@gmail.com"; email = "Wout.Mertens@gmail.com";
github = "wmertens"; github = "wmertens";

View File

@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp nixUnstable nixUnstable.perl-bindings #! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp perlPackages.JSON perlPackages.LWPProtocolHttps nixUnstable nixUnstable.perl-bindings
# This command uploads tarballs to tarballs.nixos.org, the # This command uploads tarballs to tarballs.nixos.org, the
# content-addressed cache used by fetchurl as a fallback for when # content-addressed cache used by fetchurl as a fallback for when
@ -101,8 +101,8 @@ sub uploadFile {
my ($name, $dest) = @_; my ($name, $dest) = @_;
#print STDERR "linking $name to $dest...\n"; #print STDERR "linking $name to $dest...\n";
$bucket->add_key($name, "", { $bucket->add_key($name, "", {
'x-amz-website-redirect-location' => "/" . $dest, 'x-amz-website-redirect-location' => "/" . $dest,
'x-amz-acl' => "public-read" 'x-amz-acl' => "public-read"
}) })
or die "failed to create redirect from $name to $dest\n"; or die "failed to create redirect from $name to $dest\n";
$cache{$name} = 1; $cache{$name} = 1;
@ -116,8 +116,8 @@ sub uploadFile {
# Upload the file as sha512/<hash-in-base-16>. # Upload the file as sha512/<hash-in-base-16>.
print STDERR "uploading $fn to $mainKey...\n"; print STDERR "uploading $fn to $mainKey...\n";
$bucket->add_key_filename($mainKey, $fn, { $bucket->add_key_filename($mainKey, $fn, {
'x-amz-meta-original-name' => $name, 'x-amz-meta-original-name' => $name,
'x-amz-acl' => "public-read" 'x-amz-acl' => "public-read"
}) })
or die "failed to upload $fn to $mainKey\n"; or die "failed to upload $fn to $mainKey\n";
$cache{$mainKey} = 1; $cache{$mainKey} = 1;

View File

@ -4,4 +4,8 @@ if [[ -z "$VERBOSE" ]]; then
echo "You may set VERBOSE=1 to see debug output or to any other non-empty string to make this script completely silent" echo "You may set VERBOSE=1 to see debug output or to any other non-empty string to make this script completely silent"
fi fi
unset HOME NIXPKGS_CONFIG # Force empty config unset HOME NIXPKGS_CONFIG # Force empty config
# With the default heap size (380MB), nix-instantiate fails:
# Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
export GC_INITIAL_HEAP_SIZE=${GC_INITIAL_HEAP_SIZE:-2000000000} # 2GB
nix-instantiate --strict --eval-only --xml --show-trace "$(dirname "$0")"/eval-release.nix 2>&1 > /dev/null nix-instantiate --strict --eval-only --xml --show-trace "$(dirname "$0")"/eval-release.nix 2>&1 > /dev/null

View File

@ -31,7 +31,7 @@ let
if !canEval x then [] if !canEval x then []
else if isDerivation x then optional (canEval x.drvPath) x else if isDerivation x then optional (canEval x.drvPath) x
else if isList x then concatLists (map derivationsIn' x) else if isList x then concatLists (map derivationsIn' x)
else if isAttrs x then concatLists (mapAttrsToList (n: v: derivationsIn' v) x) else if isAttrs x then concatLists (mapAttrsToList (n: v: addErrorContext "while finding tarballs in '${n}':" (derivationsIn' v)) x)
else [ ]; else [ ];
keyDrv = drv: if canEval drv.drvPath then { key = drv.drvPath; value = drv; } else { }; keyDrv = drv: if canEval drv.drvPath then { key = drv.drvPath; value = drv; } else { };

View File

@ -440,6 +440,21 @@
from nixpkgs due to the lack of maintainers. from nixpkgs due to the lack of maintainers.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
It is possible now to uze ZRAM devices as general purpose ephemeral block devices,
not only as swap. Using more than 1 device as ZRAM swap is no longer recommended,
but is still possible by setting <literal>zramSwap.swapDevices</literal> explicitly.
</para>
<para>
Default algorithm for ZRAM swap was changed to <literal>zstd</literal>.
</para>
<para>
Changes to ZRAM algorithm are applied during <literal>nixos-rebuild switch</literal>,
so make sure you have enough swap space on disk to survive ZRAM device rebuild. Alternatively,
use <literal>nixos-rebuild boot; reboot</literal>.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View File

@ -27,6 +27,9 @@
, # The root file system type. , # The root file system type.
fsType ? "ext4" fsType ? "ext4"
, # Filesystem label
label ? "nixos"
, # The initial NixOS configuration file to be copied to , # The initial NixOS configuration file to be copied to
# /etc/nixos/configuration.nix. # /etc/nixos/configuration.nix.
configFile ? null configFile ? null
@ -134,9 +137,9 @@ let format' = format; in let
# Get start & length of the root partition in sectors to $START and $SECTORS. # Get start & length of the root partition in sectors to $START and $SECTORS.
eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs) eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
mkfs.${fsType} -F -L nixos $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
'' else '' '' else ''
mkfs.${fsType} -F -L nixos $diskImage mkfs.${fsType} -F -L ${label} $diskImage
''} ''}
root="$PWD/root" root="$PWD/root"

View File

@ -6,10 +6,27 @@ let
cfg = config.zramSwap; cfg = config.zramSwap;
devices = map (nr: "zram${toString nr}") (range 0 (cfg.numDevices - 1)); # don't set swapDevices as mkDefault, so we can detect user had read our warning
# (see below) and made an action (or not)
devicesCount = if cfg.swapDevices != null then cfg.swapDevices else cfg.numDevices;
devices = map (nr: "zram${toString nr}") (range 0 (devicesCount - 1));
modprobe = "${pkgs.kmod}/bin/modprobe"; modprobe = "${pkgs.kmod}/bin/modprobe";
warnings =
assert cfg.swapDevices != null -> cfg.numDevices >= cfg.swapDevices;
flatten [
(optional (cfg.numDevices > 1 && cfg.swapDevices == null) ''
Using several small zram devices as swap is no better than using one large.
Set either zramSwap.numDevices = 1 or explicitly set zramSwap.swapDevices.
Previously multiple zram devices were used to enable multithreaded
compression. Linux supports multithreaded compression for 1 device
since 3.15. See https://lkml.org/lkml/2014/2/28/404 for details.
'')
];
in in
{ {
@ -24,9 +41,11 @@ in
default = false; default = false;
type = types.bool; type = types.bool;
description = '' description = ''
Enable in-memory compressed swap space provided by the zram kernel Enable in-memory compressed devices and swap space provided by the zram
module. kernel module.
See https://www.kernel.org/doc/Documentation/blockdev/zram.txt See <link xlink:href="https://www.kernel.org/doc/Documentation/blockdev/zram.txt">
https://www.kernel.org/doc/Documentation/blockdev/zram.txt
</link>.
''; '';
}; };
@ -34,7 +53,19 @@ in
default = 1; default = 1;
type = types.int; type = types.int;
description = '' description = ''
Number of zram swap devices to create. Number of zram devices to create. See also
<literal>zramSwap.swapDevices</literal>
'';
};
swapDevices = mkOption {
default = null;
example = 1;
type = with types; nullOr int;
description = ''
Number of zram devices to be used as swap. Must be
<literal>&lt;= zramSwap.numDevices</literal>.
Default is same as <literal>zramSwap.numDevices</literal>, recommended is 1.
''; '';
}; };
@ -44,7 +75,8 @@ in
description = '' description = ''
Maximum amount of memory that can be used by the zram swap devices Maximum amount of memory that can be used by the zram swap devices
(as a percentage of your total memory). Defaults to 1/2 of your total (as a percentage of your total memory). Defaults to 1/2 of your total
RAM. RAM. Run <literal>zramctl</literal> to check how good memory is
compressed.
''; '';
}; };
@ -58,12 +90,26 @@ in
''; '';
}; };
algorithm = mkOption {
default = "zstd";
example = "lzo";
type = with types; either (enum [ "lzo" "lz4" "zstd" ]) str;
description = ''
Compression algorithm. <literal>lzo</literal> has good compression,
but is slow. <literal>lz4</literal> has bad compression, but is fast.
<literal>zstd</literal> is both good compression and fast.
You can check what other algorithms are supported by your zram device with
<programlisting>cat /sys/class/block/zram*/comp_algorithm</programlisting>
'';
};
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
inherit warnings;
system.requiredKernelConfig = with config.lib.kernelConfig; [ system.requiredKernelConfig = with config.lib.kernelConfig; [
(isModule "ZRAM") (isModule "ZRAM")
]; ];
@ -85,25 +131,25 @@ in
createZramInitService = dev: createZramInitService = dev:
nameValuePair "zram-init-${dev}" { nameValuePair "zram-init-${dev}" {
description = "Init swap on zram-based device ${dev}"; description = "Init swap on zram-based device ${dev}";
bindsTo = [ "dev-${dev}.swap" ];
after = [ "dev-${dev}.device" "zram-reloader.service" ]; after = [ "dev-${dev}.device" "zram-reloader.service" ];
requires = [ "dev-${dev}.device" "zram-reloader.service" ]; requires = [ "dev-${dev}.device" "zram-reloader.service" ];
before = [ "dev-${dev}.swap" ]; before = [ "dev-${dev}.swap" ];
requiredBy = [ "dev-${dev}.swap" ]; requiredBy = [ "dev-${dev}.swap" ];
unitConfig.DefaultDependencies = false; # needed to prevent a cycle
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/class/block/${dev}/reset'"; ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/class/block/${dev}/reset'";
}; };
script = '' script = ''
set -u set -euo pipefail
set -o pipefail
# Calculate memory to use for zram
totalmem=$(${pkgs.gnugrep}/bin/grep 'MemTotal: ' /proc/meminfo | ${pkgs.gawk}/bin/awk '{print $2}')
mem=$(((totalmem * ${toString cfg.memoryPercent} / 100 / ${toString cfg.numDevices}) * 1024))
echo $mem > /sys/class/block/${dev}/disksize # Calculate memory to use for zram
mem=$(${pkgs.gawk}/bin/awk '/MemTotal: / {
print int($2*${toString cfg.memoryPercent}/100.0/${toString devicesCount}*1024)
}' /proc/meminfo)
${pkgs.utillinux}/sbin/zramctl --size $mem --algorithm ${cfg.algorithm} /dev/${dev}
${pkgs.utillinux}/sbin/mkswap /dev/${dev} ${pkgs.utillinux}/sbin/mkswap /dev/${dev}
''; '';
restartIfChanged = false; restartIfChanged = false;
@ -111,6 +157,9 @@ in
in listToAttrs ((map createZramInitService devices) ++ [(nameValuePair "zram-reloader" in listToAttrs ((map createZramInitService devices) ++ [(nameValuePair "zram-reloader"
{ {
description = "Reload zram kernel module when number of devices changes"; description = "Reload zram kernel module when number of devices changes";
wants = [ "systemd-udevd.service" ];
after = [ "systemd-udevd.service" ];
unitConfig.DefaultDependencies = false; # needed to prevent a cycle
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -118,7 +167,11 @@ in
ExecStart = "${modprobe} zram"; ExecStart = "${modprobe} zram";
ExecStop = "${modprobe} -r zram"; ExecStop = "${modprobe} -r zram";
}; };
restartTriggers = [ cfg.numDevices ]; restartTriggers = [
cfg.numDevices
cfg.algorithm
cfg.memoryPercent
];
restartIfChanged = true; restartIfChanged = true;
})]); })]);

View File

@ -124,10 +124,14 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = lib.singleton { assertions = [
assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64; { assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
message = "Option driSupport32Bit only makes sense on a 64-bit system."; message = "Option driSupport32Bit only makes sense on a 64-bit system.";
}; }
{ assertion = cfg.driSupport32Bit -> (config.boot.kernelPackages.kernel.features.ia32Emulation or false);
message = "Option driSupport32Bit requires a kernel that supports 32bit emulation";
}
];
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"L+ /run/opengl-driver - - - - ${package}" "L+ /run/opengl-driver - - - - ${package}"

View File

@ -314,13 +314,13 @@ else
# echo 1>&2 "Warning: This value is not an option." # echo 1>&2 "Warning: This value is not an option."
result=$(evalCfg "") result=$(evalCfg "")
if names=$(attrNames "$result" 2> /dev/null); then if [ ! -z "$result" ]; then
names=$(attrNames "$result" 2> /dev/null)
echo 1>&2 "This attribute set contains:" echo 1>&2 "This attribute set contains:"
escapeQuotes () { eval echo "$1"; } escapeQuotes () { eval echo "$1"; }
nixMap escapeQuotes "$names" nixMap escapeQuotes "$names"
else else
echo 1>&2 "An error occurred while looking for attribute names." echo 1>&2 "An error occurred while looking for attribute names. Are you sure that '$option' exists?"
echo $result
fi fi
fi fi

View File

@ -6,11 +6,11 @@ let
cfg = config.services.postgresqlBackup; cfg = config.services.postgresqlBackup;
postgresqlBackupService = db : postgresqlBackupService = db: dumpCmd:
{ {
enable = true; enable = true;
description = "Backup of database ${db}"; description = "Backup of ${db} database(s)";
requires = [ "postgresql.service" ]; requires = [ "postgresql.service" ];
@ -26,7 +26,7 @@ let
${pkgs.coreutils}/bin/mv ${cfg.location}/${db}.sql.gz ${cfg.location}/${db}.prev.sql.gz ${pkgs.coreutils}/bin/mv ${cfg.location}/${db}.sql.gz ${cfg.location}/${db}.prev.sql.gz
fi fi
${config.services.postgresql.package}/bin/pg_dump ${cfg.pgdumpOptions} ${db} | \ ${dumpCmd} | \
${pkgs.gzip}/bin/gzip -c > ${cfg.location}/${db}.sql.gz ${pkgs.gzip}/bin/gzip -c > ${cfg.location}/${db}.sql.gz
''; '';
@ -42,9 +42,7 @@ let
in { in {
options = { options = {
services.postgresqlBackup = { services.postgresqlBackup = {
enable = mkOption { enable = mkOption {
default = false; default = false;
description = '' description = ''
@ -61,6 +59,19 @@ in {
''; '';
}; };
backupAll = mkOption {
default = cfg.databases == [];
defaultText = "services.postgresqlBackup.databases == []";
type = lib.types.bool;
description = ''
Backup all databases using pg_dumpall.
This option is mutual exclusive to
<literal>services.postgresqlBackup.databases</literal>.
The resulting backup dump will have the name all.sql.gz.
This option is the default if no databases are specified.
'';
};
databases = mkOption { databases = mkOption {
default = []; default = [];
description = '' description = ''
@ -79,18 +90,36 @@ in {
type = types.string; type = types.string;
default = "-Cbo"; default = "-Cbo";
description = '' description = ''
Command line options for pg_dump. Command line options for pg_dump. This options is not used
if <literal>config.services.postgresqlBackup.backupAll</literal> is enabled.
Note that config.services.postgresqlBackup.backupAll is also active,
when no databases where specified.
''; '';
}; };
}; };
}; };
config = mkIf config.services.postgresqlBackup.enable { config = mkMerge [
{
systemd.services = listToAttrs (map (db : { assertions = [{
assertion = cfg.backupAll -> cfg.databases == [];
message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases";
}];
}
(mkIf (cfg.enable && cfg.backupAll) {
systemd.services.postgresqlBackup =
postgresqlBackupService "all" "${config.services.postgresql.package}/bin/pg_dumpall";
})
(mkIf (cfg.enable && !cfg.backupAll) {
systemd.services = listToAttrs (map (db:
let
cmd = "${config.services.postgresql.package}/bin/pg_dump ${cfg.pgdumpOptions} ${db}";
in {
name = "postgresqlBackup-${db}"; name = "postgresqlBackup-${db}";
value = postgresqlBackupService db; } ) cfg.databases); value = postgresqlBackupService db cmd;
}; }) cfg.databases);
})
];
} }

View File

@ -1,6 +1,11 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
let
# Type for a valid systemd unit option. Needed for correctly passing "timerConfig" to "systemd.timers"
unitOption = (import ../../system/boot/systemd-unit-options.nix { inherit config lib; }).unitOption;
in
{ {
options.services.restic.backups = mkOption { options.services.restic.backups = mkOption {
description = '' description = ''
@ -47,7 +52,7 @@ with lib;
}; };
timerConfig = mkOption { timerConfig = mkOption {
type = types.attrsOf types.str; type = types.attrsOf unitOption;
default = { default = {
OnCalendar = "daily"; OnCalendar = "daily";
}; };

View File

@ -274,7 +274,8 @@ in
serviceConfig = { serviceConfig = {
Type = if hasNotify then "notify" else "simple"; Type = if hasNotify then "notify" else "simple";
RuntimeDirectory = "mysqld"; RuntimeDirectory = "mysqld";
ExecStart = "${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions}"; # The last two environment variables are used for starting Galera clusters
ExecStart = "${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
}; };
postStart = '' postStart = ''

View File

@ -145,7 +145,7 @@ in
PLEX_MEDIA_SERVER_HOME="${cfg.package}/usr/lib/plexmediaserver"; PLEX_MEDIA_SERVER_HOME="${cfg.package}/usr/lib/plexmediaserver";
PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6"; PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6";
PLEX_MEDIA_SERVER_TMPDIR="/tmp"; PLEX_MEDIA_SERVER_TMPDIR="/tmp";
LD_LIBRARY_PATH="${cfg.package}/usr/lib/plexmediaserver"; LD_LIBRARY_PATH="/run/opengl-driver/lib:${cfg.package}/usr/lib/plexmediaserver";
LC_ALL="en_US.UTF-8"; LC_ALL="en_US.UTF-8";
LANG="en_US.UTF-8"; LANG="en_US.UTF-8";
}; };

View File

@ -88,6 +88,8 @@ in {
ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f"; ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f";
User = cfg.user; User = cfg.user;
PermissionsStartOnly = true; PermissionsStartOnly = true;
Restart = "on-failure";
RestartSec = 3;
}; };
preStart = '' preStart = ''

View File

@ -18,12 +18,34 @@ in
socketPath = mkOption { socketPath = mkOption {
type = types.path; type = types.path;
default = "/var/run/dovecot/stats"; default = "/var/run/dovecot/stats";
example = "/var/run/dovecot2/stats"; example = "/var/run/dovecot2/old-stats";
description = '' description = ''
Path under which the stats socket is placed. Path under which the stats socket is placed.
The user/group under which the exporter runs, The user/group under which the exporter runs,
should be able to access the socket in order should be able to access the socket in order
to scrape the metrics successfully. to scrape the metrics successfully.
Please keep in mind that the stats module has changed in
<link xlink:href="https://wiki2.dovecot.org/Upgrading/2.3">Dovecot 2.3+</link> which
is not <link xlink:href="https://github.com/kumina/dovecot_exporter/issues/8">compatible with this exporter</link>.
The following extra config has to be passed to Dovecot to ensure that recent versions
work with this exporter:
<programlisting>
{
<xref linkend="opt-services.prometheus.exporters.dovecot.enable" /> = true;
<xref linkend="opt-services.prometheus.exporters.dovecot.socketPath" /> = "/var/run/dovecot2/old-stats";
<xref linkend="opt-services.dovecot2.extraConfig" /> = '''
mail_plugins = $mail_plugins old_stats
service old-stats {
unix_listener old-stats {
user = nobody
group = nobody
}
}
''';
}
</programlisting>
''; '';
}; };
scopes = mkOption { scopes = mkOption {

View File

@ -513,6 +513,7 @@ in
RuntimeDirectory = [ "prosody" ]; RuntimeDirectory = [ "prosody" ];
PIDFile = "/run/prosody/prosody.pid"; PIDFile = "/run/prosody/prosody.pid";
ExecStart = "${cfg.package}/bin/prosodyctl start"; ExecStart = "${cfg.package}/bin/prosodyctl start";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
}; };
}; };

View File

@ -26,6 +26,12 @@ let
substituteInPlace $out/sesman.ini \ substituteInPlace $out/sesman.ini \
--replace LogFile=xrdp-sesman.log LogFile=/dev/null \ --replace LogFile=xrdp-sesman.log LogFile=/dev/null \
--replace EnableSyslog=1 EnableSyslog=0 --replace EnableSyslog=1 EnableSyslog=0
# Ensure that clipboard works for non-ASCII characters
sed -i -e '/.*SessionVariables.*/ a\
LANG=${config.i18n.defaultLocale}\
LOCALE_ARCHIVE=${config.i18n.glibcLocales}/lib/locale/locale-archive
' $out/sesman.ini
''; '';
in in
{ {

View File

@ -187,8 +187,8 @@ let
SSLRandomSeed startup builtin SSLRandomSeed startup builtin
SSLRandomSeed connect builtin SSLRandomSeed connect builtin
SSLProtocol All -SSLv2 -SSLv3 SSLProtocol ${mainCfg.sslProtocols}
SSLCipherSuite HIGH:!aNULL:!MD5:!EXP SSLCipherSuite ${mainCfg.sslCiphers}
SSLHonorCipherOrder on SSLHonorCipherOrder on
''; '';
@ -630,6 +630,19 @@ in
description = description =
"Maximum number of httpd requests answered per httpd child (prefork), 0 means unlimited"; "Maximum number of httpd requests answered per httpd child (prefork), 0 means unlimited";
}; };
sslCiphers = mkOption {
type = types.str;
default = "HIGH:!aNULL:!MD5:!EXP";
description = "Cipher Suite available for negotiation in SSL proxy handshake.";
};
sslProtocols = mkOption {
type = types.str;
default = "All -SSLv2 -SSLv3";
example = "All -SSLv2 -SSLv3 -TLSv1";
description = "Allowed SSL/TLS protocol versions.";
};
} }
# Include the options shared between the main server and virtual hosts. # Include the options shared between the main server and virtual hosts.

View File

@ -107,6 +107,7 @@ in
initrdNetwork = handleTest ./initrd-network.nix {}; initrdNetwork = handleTest ./initrd-network.nix {};
installer = handleTest ./installer.nix {}; installer = handleTest ./installer.nix {};
ipv6 = handleTest ./ipv6.nix {}; ipv6 = handleTest ./ipv6.nix {};
jackett = handleTest ./jackett.nix {};
jenkins = handleTest ./jenkins.nix {}; jenkins = handleTest ./jenkins.nix {};
#kafka = handleTest ./kafka.nix {}; # broken since openjdk: 8u181 -> 8u192 #kafka = handleTest ./kafka.nix {}; # broken since openjdk: 8u181 -> 8u192
kerberos = handleTest ./kerberos/default.nix {}; kerberos = handleTest ./kerberos/default.nix {};
@ -120,6 +121,7 @@ in
latestKernel.login = handleTest ./login.nix { latestKernel = true; }; latestKernel.login = handleTest ./login.nix { latestKernel = true; };
ldap = handleTest ./ldap.nix {}; ldap = handleTest ./ldap.nix {};
leaps = handleTest ./leaps.nix {}; leaps = handleTest ./leaps.nix {};
lidarr = handleTest ./lidarr.nix {};
#lightdm = handleTest ./lightdm.nix {}; #lightdm = handleTest ./lightdm.nix {};
login = handleTest ./login.nix {}; login = handleTest ./login.nix {};
#logstash = handleTest ./logstash.nix {}; #logstash = handleTest ./logstash.nix {};
@ -179,6 +181,7 @@ in
quagga = handleTest ./quagga.nix {}; quagga = handleTest ./quagga.nix {};
quake3 = handleTest ./quake3.nix {}; quake3 = handleTest ./quake3.nix {};
rabbitmq = handleTest ./rabbitmq.nix {}; rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {}; radicale = handleTest ./radicale.nix {};
redmine = handleTest ./redmine.nix {}; redmine = handleTest ./redmine.nix {};
roundcube = handleTest ./roundcube.nix {}; roundcube = handleTest ./roundcube.nix {};
@ -195,12 +198,14 @@ in
smokeping = handleTest ./smokeping.nix {}; smokeping = handleTest ./smokeping.nix {};
snapper = handleTest ./snapper.nix {}; snapper = handleTest ./snapper.nix {};
solr = handleTest ./solr.nix {}; solr = handleTest ./solr.nix {};
sonarr = handleTest ./sonarr.nix {};
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {}; strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
sudo = handleTest ./sudo.nix {}; sudo = handleTest ./sudo.nix {};
switchTest = handleTest ./switch-test.nix {}; switchTest = handleTest ./switch-test.nix {};
syncthing-relay = handleTest ./syncthing-relay.nix {}; syncthing-relay = handleTest ./syncthing-relay.nix {};
systemd = handleTest ./systemd.nix {}; systemd = handleTest ./systemd.nix {};
taskserver = handleTest ./taskserver.nix {}; taskserver = handleTest ./taskserver.nix {};
telegraf = handleTest ./telegraf.nix {};
tomcat = handleTest ./tomcat.nix {}; tomcat = handleTest ./tomcat.nix {};
tor = handleTest ./tor.nix {}; tor = handleTest ./tor.nix {};
transmission = handleTest ./transmission.nix {}; transmission = handleTest ./transmission.nix {};

View File

@ -23,7 +23,7 @@ in
{ {
name = "bittorrent"; name = "bittorrent";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ domenkozar eelco chaoflow rob wkennington bobvanderlinden ]; maintainers = [ domenkozar eelco chaoflow rob bobvanderlinden ];
}; };
nodes = nodes =

View File

@ -200,7 +200,7 @@ let
name = "installer-" + name; name = "installer-" + name;
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
# put global maintainers here, individuals go into makeInstallerTest fkt call # put global maintainers here, individuals go into makeInstallerTest fkt call
maintainers = [ wkennington ] ++ (meta.maintainers or []); maintainers = (meta.maintainers or []);
}; };
nodes = { nodes = {

18
nixos/tests/jackett.nix Normal file
View File

@ -0,0 +1,18 @@
import ./make-test.nix ({ lib, ... }:
with lib;
rec {
name = "jackett";
meta.maintainers = with maintainers; [ etu ];
nodes.machine =
{ pkgs, ... }:
{ services.jackett.enable = true; };
testScript = ''
$machine->waitForUnit('jackett.service');
$machine->waitForOpenPort('9117');
$machine->succeed("curl --fail http://localhost:9117/");
'';
})

18
nixos/tests/lidarr.nix Normal file
View File

@ -0,0 +1,18 @@
import ./make-test.nix ({ lib, ... }:
with lib;
rec {
name = "lidarr";
meta.maintainers = with maintainers; [ etu ];
nodes.machine =
{ pkgs, ... }:
{ services.lidarr.enable = true; };
testScript = ''
$machine->waitForUnit('lidarr.service');
$machine->waitForOpenPort('8686');
$machine->succeed("curl --fail http://localhost:8686/");
'';
})

View File

@ -8,7 +8,7 @@ import ./make-test.nix ({ pkgs, ...} : let
in { in {
name = "mongodb"; name = "mongodb";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bluescreen303 offline wkennington cstrahan rvl ]; maintainers = [ bluescreen303 offline cstrahan rvl ];
}; };
nodes = { nodes = {

View File

@ -24,7 +24,7 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false,
name = "nat" + (if withFirewall then "WithFirewall" else "Standalone") name = "nat" + (if withFirewall then "WithFirewall" else "Standalone")
+ (lib.optionalString withConntrackHelpers "withConntrackHelpers"); + (lib.optionalString withConntrackHelpers "withConntrackHelpers");
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow rob wkennington ]; maintainers = [ eelco chaoflow rob ];
}; };
nodes = nodes =

View File

@ -606,7 +606,4 @@ let
in mapAttrs (const (attrs: makeTest (attrs // { in mapAttrs (const (attrs: makeTest (attrs // {
name = "${attrs.name}-Networking-${if networkd then "Networkd" else "Scripted"}"; name = "${attrs.name}-Networking-${if networkd then "Networkd" else "Scripted"}";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ wkennington ];
};
}))) testCases }))) testCases

View File

@ -20,7 +20,7 @@ in
{ {
name = "nfs"; name = "nfs";
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow wkennington ]; maintainers = [ eelco chaoflow ];
}; };
nodes = nodes =

View File

@ -12,7 +12,9 @@ import ./make-test.nix ({ pkgs, ...} : {
services.postgresql = let mypg = pkgs.postgresql_11; in { services.postgresql = let mypg = pkgs.postgresql_11; in {
enable = true; enable = true;
package = mypg; package = mypg;
extraPlugins = [ (pkgs.postgis.override { postgresql = mypg; }) ]; extraPlugins = with mypg.pkgs; [
postgis
];
}; };
}; };
}; };
@ -22,5 +24,6 @@ import ./make-test.nix ({ pkgs, ...} : {
$master->waitForUnit("postgresql"); $master->waitForUnit("postgresql");
$master->sleep(10); # Hopefully this is long enough!! $master->sleep(10); # Hopefully this is long enough!!
$master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis;'"); $master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis;'");
$master->succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'");
''; '';
}) })

View File

@ -7,7 +7,7 @@ with import ../lib/testing.nix { inherit system pkgs; };
with pkgs.lib; with pkgs.lib;
let let
postgresql-versions = pkgs.callPackages ../../pkgs/servers/sql/postgresql { }; postgresql-versions = import ../../pkgs/servers/sql/postgresql pkgs pkgs;
test-sql = pkgs.writeText "postgresql-test" '' test-sql = pkgs.writeText "postgresql-test" ''
CREATE EXTENSION pgcrypto; -- just to check if lib loading works CREATE EXTENSION pgcrypto; -- just to check if lib loading works
CREATE TABLE sth ( CREATE TABLE sth (
@ -21,7 +21,7 @@ let
CREATE TABLE xmltest ( doc xml ); CREATE TABLE xmltest ( doc xml );
INSERT INTO xmltest (doc) VALUES ('<test>ok</test>'); -- check if libxml2 enabled INSERT INTO xmltest (doc) VALUES ('<test>ok</test>'); -- check if libxml2 enabled
''; '';
make-postgresql-test = postgresql-name: postgresql-package: makeTest { make-postgresql-test = postgresql-name: postgresql-package: backup-all: makeTest {
name = postgresql-name; name = postgresql-name;
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ zagy ]; maintainers = [ zagy ];
@ -29,14 +29,17 @@ let
machine = {...}: machine = {...}:
{ {
services.postgresql.package=postgresql-package;
services.postgresql.enable = true; services.postgresql.enable = true;
services.postgresql.package = postgresql-package;
services.postgresqlBackup.enable = true; services.postgresqlBackup.enable = true;
services.postgresqlBackup.databases = [ "postgres" ]; services.postgresqlBackup.databases = optional (!backup-all) "postgres";
}; };
testScript = '' testScript = let
backupName = if backup-all then "all" else "postgres";
backupService = if backup-all then "postgresqlBackup" else "postgresqlBackup-postgres";
in ''
sub check_count { sub check_count {
my ($select, $nlines) = @_; my ($select, $nlines) = @_;
return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines; return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines;
@ -56,12 +59,20 @@ let
$machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1)); $machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1));
# Check backup service # Check backup service
$machine->succeed("systemctl start postgresqlBackup-postgres.service"); $machine->succeed("systemctl start ${backupService}.service");
$machine->succeed("zcat /var/backup/postgresql/postgres.sql.gz | grep '<test>ok</test>'"); $machine->succeed("zcat /var/backup/postgresql/${backupName}.sql.gz | grep '<test>ok</test>'");
$machine->succeed("stat -c '%a' /var/backup/postgresql/postgres.sql.gz | grep 600"); $machine->succeed("stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600");
$machine->shutdown; $machine->shutdown;
''; '';
}; };
in in
mapAttrs' (p-name: p-package: {name=p-name; value=make-postgresql-test p-name p-package;}) postgresql-versions (mapAttrs' (name: package: { inherit name; value=make-postgresql-test name package false;}) postgresql-versions) // (
# just pick one version for the dump all test
let
first = head (attrNames postgresql-versions);
name = "${first}-backup-all";
in {
${name} = make-postgresql-test name postgresql-versions.${first} true;
}
)

18
nixos/tests/radarr.nix Normal file
View File

@ -0,0 +1,18 @@
import ./make-test.nix ({ lib, ... }:
with lib;
rec {
name = "radarr";
meta.maintainers = with maintainers; [ etu ];
nodes.machine =
{ pkgs, ... }:
{ services.radarr.enable = true; };
testScript = ''
$machine->waitForUnit('radarr.service');
$machine->waitForOpenPort('7878');
$machine->succeed("curl --fail http://localhost:7878/");
'';
})

18
nixos/tests/sonarr.nix Normal file
View File

@ -0,0 +1,18 @@
import ./make-test.nix ({ lib, ... }:
with lib;
rec {
name = "sonarr";
meta.maintainers = with maintainers; [ etu ];
nodes.machine =
{ pkgs, ... }:
{ services.sonarr.enable = true; };
testScript = ''
$machine->waitForUnit('sonarr.service');
$machine->waitForOpenPort('8989');
$machine->succeed("curl --fail http://localhost:8989/");
'';
})

30
nixos/tests/telegraf.nix Normal file
View File

@ -0,0 +1,30 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "telegraf";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mic92 ];
};
machine = { ... }: {
services.telegraf.enable = true;
services.telegraf.extraConfig = {
agent.interval = "1s";
agent.flush_interval = "1s";
inputs.exec = {
commands = [
"${pkgs.runtimeShell} -c 'echo example,tag=a i=42i'"
];
timeout = "5s";
data_format = "influx";
};
outputs.file.files = ["/tmp/metrics.out"];
outputs.file.data_format = "influx";
};
};
testScript = ''
startAll;
$machine->waitForUnit("telegraf.service");
$machine->waitUntilSucceeds("grep -q example /tmp/metrics.out");
'';
})

View File

@ -379,7 +379,7 @@ let
''; '';
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig wkennington cdepillabout ]; maintainers = [ aszlig cdepillabout ];
}; };
}; };

View File

@ -1,6 +1,6 @@
let let
version = "2.2.5"; version = "2.3.0";
sha256 = "0q9vgwc0jlja73r4na7yil624iagq1607ac47wh8a7xgfjmjjai1"; sha256 = "0v79nz19riaga6iwj6m59fq8adm5llrkq61xizriz30rw8rkk04z";
cargoSha256 = "0ibdmyh1jvfq51vhwn4riyhilqwhf71hjd4vyj525smn95p75b14"; cargoSha256 = "01vdrfqh2nlghbgnbb7qmrazsjmynrb9542qrgchxq589wasb4j2";
in in
import ./parity.nix { inherit version sha256 cargoSha256; } import ./parity.nix { inherit version sha256 cargoSha256; }

View File

@ -1,6 +1,6 @@
let let
version = "2.1.10"; version = "2.2.7";
sha256 = "1l4yl8i24q8v4hzljzai37f587x8m3cz3byzifhvq3bjky7p8h80"; sha256 = "0bxq4z84vsb8hmbscr41xiw11m9xg6if231v76c2dmkbyqgpqy8p";
cargoSha256 = "04pni9cmz8nhlqznwafz9d81006808kh24aqnb8rjdcr84d11zis"; cargoSha256 = "1izwqg87qxhmmkd49m0k09i7r05sfcb18m5jbpvggjzp57ips09r";
in in
import ./parity.nix { inherit version sha256 cargoSha256; } import ./parity.nix { inherit version sha256 cargoSha256; }

View File

@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "lollypop"; pname = "lollypop";
version = "0.9.909"; version = "0.9.914";
format = "other"; format = "other";
doCheck = false; doCheck = false;
@ -14,10 +14,10 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop"; url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "19d82dy0wprabg5kzcgs3ydmp9iz3h437n55cnlp20mbpya09k7n"; sha256 = "0nkwic6mq4fs467c696m5w0wqrii5rzvf2il6vkw861my1bl9wzj";
}; };
nativeBuildInputs = with python3.pkgs; [ nativeBuildInputs = [
appstream-glib appstream-glib
desktop-file-utils desktop-file-utils
gobject-introspection gobject-introspection

View File

@ -1,24 +1,30 @@
{ stdenv, fetchurl, SDL2, pkgconfig, flac, libsndfile }: { stdenv, fetchurl, zlib, pkgconfig, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
, usePulseAudio ? false, libpulseaudio }:
let let
version = "0.2.7025-beta20.1"; version = "0.4.1";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "openmpt123-${version}"; name = "openmpt123-${version}";
src = fetchurl { src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}.tar.gz"; url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "0qp2nnz6pnl1d7yv9hcjyim7q6yax5881k1jxm8jfgjqagmz5k6p"; sha256 = "1k1m1adjh4s2q9lxgkf836k5243akxrzq1hsdjhrkg4idd3pxzp4";
}; };
enableParallelBuilding = true;
doCheck = true;
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ SDL2 flac libsndfile ]; buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
makeFlags = [ "NO_PULSEAUDIO=1 NO_LTDL=1 TEST=0 EXAMPLES=0" ] ++ stdenv.lib.optional usePulseAudio libpulseaudio;
++ stdenv.lib.optional (stdenv.isDarwin) "SHARED_SONAME=0";
installFlags = "PREFIX=\${out}"; configureFlags = stdenv.lib.optional (!usePulseAudio) [ "--without-pulseaudio" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A cross-platform command-line based module file player"; description = "A cross-platform command-line based module file player";
homepage = https://lib.openmpt.org/libopenmpt/; homepage = https://lib.openmpt.org/libopenmpt/;
license = licenses.bsd3; license = licenses.bsd3;
maintainers = [ stdenv.lib.maintainers.gnidorah ]; maintainers = with maintainers; [ gnidorah ];
platforms = stdenv.lib.platforms.unix; platforms = platforms.linux;
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, substituteAll, meson, ninja, pkgconfig, vala_0_40, gettext { stdenv, fetchFromGitLab, substituteAll, meson, ninja, pkgconfig, vala_0_40, gettext
, gnome3, libnotify, itstool, glib, gtk3, libxml2 , gnome3, libnotify, itstool, glib, gtk3, libxml2
, coreutils, libsecret, pcre, libxkbcommon, wrapGAppsHook , coreutils, libsecret, pcre, libxkbcommon, wrapGAppsHook
, libpthreadstubs, libXdmcp, epoxy, at-spi2-core, dbus, libgpgerror , libpthreadstubs, libXdmcp, epoxy, at-spi2-core, dbus, libgpgerror
@ -6,12 +6,15 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "deja-dup-${version}"; pname = "deja-dup";
version = "38.1"; version = "38.3";
src = fetchurl { src = fetchFromGitLab {
url = "https://launchpad.net/deja-dup/${stdenv.lib.versions.major version}/${version}/+download/deja-dup-${version}.tar.xz"; domain = "gitlab.gnome.org";
sha256 = "0wm7z72qbsljzsysxg8h5sbpg56ignn9mp8v3xynn12dv3gv6rba"; owner = "World";
repo = pname;
rev = version;
sha256 = "1bnvmdlm67k1b6115x75j3nl92x5yl4psq5pna2w6cg9npxdd3fa";
}; };
patches = [ patches = [
@ -23,7 +26,7 @@ stdenv.mkDerivation rec {
]; ];
postPatch = '' postPatch = ''
substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
@ -57,9 +60,9 @@ stdenv.mkDerivation rec {
of backing up the Right Way (encrypted, off-site, and regular) \ of backing up the Right Way (encrypted, off-site, and regular) \
and uses duplicity as the backend. and uses duplicity as the backend.
''; '';
homepage = https://launchpad.net/deja-dup; homepage = https://wiki.gnome.org/Apps/DejaDup;
license = with licenses; gpl3; license = licenses.gpl3Plus;
maintainers = with maintainers; [ jtojnar joncojonathan ]; maintainers = with maintainers; [ jtojnar joncojonathan ];
platforms = with platforms; linux; platforms = platforms.linux;
}; };
} }

View File

@ -79,6 +79,6 @@ stdenv.mkDerivation rec {
description = "A cross-desktop display manager."; description = "A cross-desktop display manager.";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ocharles wkennington worldofpeace ]; maintainers = with maintainers; [ ocharles worldofpeace ];
}; };
} }

View File

@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
homepage = https://launchpad.net/lightdm-gtk-greeter; homepage = https://launchpad.net/lightdm-gtk-greeter;
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ocharles wkennington ]; maintainers = with maintainers; [ ocharles ];
}; };
} }

View File

@ -13,14 +13,14 @@ let
sha256Hash = "0dracganibnkyapn2pk2qqnxpwmii57371ycri4nccaci9v9pcjw"; sha256Hash = "0dracganibnkyapn2pk2qqnxpwmii57371ycri4nccaci9v9pcjw";
}; };
betaVersion = { betaVersion = {
version = "3.4.0.10"; # "Android Studio 3.4 Beta 1" version = "3.4.0.11"; # "Android Studio 3.4 Beta 2"
build = "183.5217543"; build = "183.5240537";
sha256Hash = "0yd9l4py82i3gl1nvfwlhfx12hzf1mih8ylgdl3r85hhlqs7w2dm"; sha256Hash = "0mv7ayqjkw97jzdifw1cdvjhnzygzkd2a9rc0h99fclhf2nii5yr";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.5.0.0"; # "Android Studio 3.5 Canary 1" version = "3.5.0.1"; # "Android Studio 3.5 Canary 2"
build = "183.5215047"; build = "183.5240547";
sha256Hash = "1f7lllj85fia02hgy4ksbqh80sdcml16fv1g892jc6lwykjrdw5y"; sha256Hash = "0z52ig9v2w9i6bqiqpdvgcr6g6sgl8p5317jamg72d5csm9hgfx3";
}; };
in rec { in rec {
# Old alias (TODO @primeos: Remove after 19.03 is branched off): # Old alias (TODO @primeos: Remove after 19.03 is branched off):

View File

@ -53,6 +53,13 @@ let
lualibs = [ luaPackages.mpack luaPackages.lpeg luaPackages.luabitop ]; lualibs = [ luaPackages.mpack luaPackages.lpeg luaPackages.luabitop ];
# nvim --version output retains compilation flags and references to build tools
postPatch = ''
substituteInPlace src/nvim/version.c --replace NVIM_VERSION_CFLAGS "";
'';
# check that the above patching actually works
disallowedReferences = [ stdenv.cc ];
cmakeFlags = [ cmakeFlags = [
"-DLUA_PRG=${luaPackages.lua}/bin/lua" "-DLUA_PRG=${luaPackages.lua}/bin/lua"
"-DGPERF_PRG=${gperf}/bin/gperf" "-DGPERF_PRG=${gperf}/bin/gperf"

View File

@ -84,6 +84,6 @@ stdenv.mkDerivation rec {
description = "A software suite to create, edit, compose, or convert bitmap images"; description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ the-kenny wkennington ]; maintainers = with maintainers; [ the-kenny ];
}; };
} }

View File

@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
homepage = http://www.imagemagick.org/; homepage = http://www.imagemagick.org/;
description = "A software suite to create, edit, compose, or convert bitmap images"; description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ the-kenny wkennington ]; maintainers = with maintainers; [ the-kenny ];
license = licenses.asl20; license = licenses.asl20;
}; };
} }

View File

@ -8,13 +8,21 @@
, python3 , python3
}: }:
let
major = "4.1";
minor = "7";
patch = "101";
in
mkDerivation rec { mkDerivation rec {
name = "krita-${version}"; name = "krita-${version}";
version = "4.1.5"; version = "${major}.${minor}.${patch}";
src = fetchurl { src = fetchurl {
url = "https://download.kde.org/stable/krita/${version}/${name}.tar.gz"; url = "https://download.kde.org/stable/krita/${major}.${minor}/${name}.tar.gz";
sha256 = "1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10"; sha256 = "0pvghb17vj3y19wa1n1zfg3yl5206ir3y45znrgdgdw076m5pjav";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules ]; nativeBuildInputs = [ cmake extra-cmake-modules ];

View File

@ -3,14 +3,14 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sxiv-${version}"; pname = "sxiv";
version = "24"; version = "25";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "muennich"; owner = "muennich";
repo = "sxiv"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "020n1bdxbzqncprh8a4rnjzc4frp335yxbqh5w6dr970f7n5qm8d"; sha256 = "13s1lfar142hq1j7xld0ri616p4bqs57b17yr4d0b9a9w7liz4hp";
}; };
postUnpack = '' postUnpack = ''

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, makeWrapper, perlPackages }:
let version = "1.1";
in stdenv.mkDerivation {
name = "asciiquarium-${version}";
src = fetchurl {
url = "https://robobunny.com/projects/asciiquarium/asciiquarium_${version}.tar.gz";
sha256 = "0qfkr5b7sxzi973nh0h84blz2crvmf28jkkgaj3mxrr56mhwc20v";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perlPackages.perl ];
installPhase = ''
mkdir -p $out/bin
cp asciiquarium $out/bin
chmod +x $out/bin/asciiquarium
wrapProgram $out/bin/asciiquarium \
--set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.TermAnimation ] }
'';
meta = with stdenv.lib; {
description = "Enjoy the mysteries of the sea from the safety of your own terminal!";
homepage = https://robobunny.com/projects/asciiquarium/html;
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.utdemir ];
};
}

View File

@ -5,12 +5,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.37.0"; version = "3.38.1";
name = "calibre-${version}"; name = "calibre-${version}";
src = fetchurl { src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz"; url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "12si7jag5ildy08h0nfs4rfpn417i82valxbk2wjkypp226gqi05"; sha256 = "07fvpnabk17sfg81xn0bsnw36k45hawwz0fcz5cmp5qydm85ncv0";
}; };
patches = [ patches = [

View File

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

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, python3, python3Packages, zbar }: { stdenv, fetchFromGitHub, python3, python3Packages, zbar, secp256k1 }:
let let
qdarkstyle = python3Packages.buildPythonPackage rec { qdarkstyle = python3Packages.buildPythonPackage rec {
@ -13,15 +13,20 @@ let
in in
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
name = "electrum-${version}"; pname = "electrum";
version = "3.2.4"; version = "3.3.2";
src = fetchurl { src = fetchFromGitHub {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; owner = "spesmilo";
sha256 = "0nwipn1alk3r54zpsv2bdwsqxw4f08bxnfmygnwakfkiaifmmhxg"; repo = "electrum";
rev = version;
sha256 = "1jsn02azdydpq4plr2552s7ijyqgw6zqm2zx8skwsalgbwmhx12i";
}; };
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
aiorpcx
aiohttp
aiohttp-socks
dnspython dnspython
ecdsa ecdsa
jsonrpclib-pelix jsonrpclib-pelix
@ -36,7 +41,6 @@ python3Packages.buildPythonApplication rec {
qrcode qrcode
requests requests
tlslite-ng tlslite-ng
typing
# plugins # plugins
keepkey keepkey
@ -53,6 +57,7 @@ python3Packages.buildPythonApplication rec {
# Recording the creation timestamps introduces indeterminism to the build # Recording the creation timestamps introduces indeterminism to the build
sed -i '/Created: .*/d' electrum/gui/qt/icons_rc.py sed -i '/Created: .*/d' electrum/gui/qt/icons_rc.py
sed -i "s|name = 'libzbar.*'|name='${zbar}/lib/libzbar.so'|" electrum/qrscanner.py sed -i "s|name = 'libzbar.*'|name='${zbar}/lib/libzbar.so'|" electrum/qrscanner.py
substituteInPlace ./electrum/ecc_fast.py --replace libsecp256k1.so.0 ${secp256k1}/lib/libsecp256k1.so.0
''; '';
postInstall = '' postInstall = ''
@ -65,10 +70,10 @@ python3Packages.buildPythonApplication rec {
--replace "Exec=electrum %u" "Exec=$out/bin/electrum %u" --replace "Exec=electrum %u" "Exec=$out/bin/electrum %u"
''; '';
doCheck = false; checkInputs = with python3Packages; [ pytest ];
doInstallCheck = true; checkPhase = ''
installCheckPhase = '' py.test electrum/tests
$out/bin/electrum help >/dev/null $out/bin/electrum help >/dev/null
''; '';

View File

@ -0,0 +1,13 @@
diff --git a/meson_post_install.py b/meson_post_install.py
index 8d00e70..c28d19e 100644
--- a/meson_post_install.py
+++ b/meson_post_install.py
@@ -7,7 +7,7 @@ prefix = environ['MESON_INSTALL_PREFIX']
data_dir = path.join(prefix, 'share')
schema_dir = path.join(data_dir, 'glib-2.0', 'schemas')
-if not environ['DESTDIR']:
+if not environ.get('DESTDIR'):
print('Compiling gsettings schemas...')
call(['glib-compile-schemas', schema_dir])
print('Updating desktop database...')

View File

@ -1,25 +1,27 @@
{ stdenv, fetchFromGitHub, automake, autoconf, libtool, { stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
pkgconfig, file, intltool, libxml2, json-glib , sqlite, itstool, pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg,
librsvg, vala, gnome3, wrapGAppsHook, gobject-introspection vala, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "font-manager-${version}"; pname = "font-manager";
version = "0.7.3.1"; version = "0.7.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FontManager"; owner = "FontManager";
repo = "master"; repo = "master";
rev = version; rev = version;
sha256 = "0i65br0bk3r6x8wcl8jhc0v0agl0k6fy5g60ss1bnw4md7ldpgyi"; sha256 = "1zy419zzc95h4gxvl88acqjbwlnmwybj23rx3vkc62j3v3w4nlay";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig pkgconfig
automake autoconf libtool meson
file ninja
intltool gettext
python3
itstool itstool
desktop-file-utils
vala vala
gnome3.yelp-tools gnome3.yelp-tools
wrapGAppsHook wrapGAppsHook
@ -33,22 +35,20 @@ stdenv.mkDerivation rec {
sqlite sqlite
librsvg librsvg
gnome3.gtk gnome3.gtk
gnome3.libgee
gnome3.defaultIconTheme gnome3.defaultIconTheme
]; ];
enableParallelBuilding = true; patches = [ ./correct-post-install.patch ];
preConfigure = '' mesonFlags = [
NOCONFIGURE=true ./autogen.sh "-Ddisable_pycompile=true"
substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
'';
configureFlags = [
"--with-file-roller"
"--disable-pycompile"
]; ];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
meta = { meta = {
homepage = https://fontmanager.github.io/; homepage = https://fontmanager.github.io/;
description = "Simple font management for GTK+ desktop environments"; description = "Simple font management for GTK+ desktop environments";

View File

@ -79,6 +79,15 @@ stdenv.mkDerivation rec {
for a in $out/opt/google/earth/free/*.so* ; do for a in $out/opt/google/earth/free/*.so* ; do
patchelf --set-rpath "${fullPath}:\$ORIGIN" $a patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
done done
# Add desktop config file and icons
mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth|g" $out/opt/google/earth/free/google-earth.desktop
for size in 16 22 24 32 48 64 128 256; do
ln -s $out/opt/google/earth/free/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth.png
done
ln -s $out/opt/google/earth/free/product_logo_256.png $out/share/pixmaps/google-earth.png
''; '';
checkPhase = '' checkPhase = ''

View File

@ -14,7 +14,7 @@ buildPythonApplication rec {
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
pytz six tzlocal keyring argparse dateutil pytz six tzlocal keyring dateutil
parsedatetime pycrypto parsedatetime pycrypto
]; ];

View File

@ -34,7 +34,6 @@ in with python.pkgs; buildPythonApplication rec {
atomicwrites atomicwrites
configobj configobj
vobject vobject
argparse
ruamel_yaml ruamel_yaml
ruamel_base ruamel_base
unidecode unidecode

View File

@ -3,7 +3,7 @@
, makeWrapper, perlPackages }: , makeWrapper, perlPackages }:
let let
version = "1.4"; version = "1.5";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "qdirstat-${version}"; name = "qdirstat-${version}";
@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
owner = "shundhammer"; owner = "shundhammer";
repo = "qdirstat"; repo = "qdirstat";
rev = "${version}"; rev = "${version}";
sha256 = "1ppasbr0mq301q6n3rm0bsmprs7vgkcjmmc0gbgqpgw84nmp9fqh"; sha256 = "1v879kd7zahalb2qazq61wzi364k5cy3lgy6c8wj6mclwxjws1vc";
}; };
nativeBuildInputs = [ qmake makeWrapper ]; nativeBuildInputs = [ qmake makeWrapper ];
@ -20,18 +20,9 @@ in stdenv.mkDerivation rec {
preBuild = '' preBuild = ''
substituteInPlace scripts/scripts.pro \ substituteInPlace scripts/scripts.pro \
--replace /bin/true ${coreutils}/bin/true \ --replace /bin/true ${coreutils}/bin/true
--replace /usr/bin $out/bin
substituteInPlace src/src.pro \
--replace /usr/bin $out/bin \
--replace /usr/share $out/share
for i in doc/doc.pro doc/stats/stats.pro
do
substituteInPlace $i \
--replace /usr/share $out/share
done
for i in src/MainWindow.cpp src/FileSizeStatsWindow.cpp for i in src/SysUtil.cpp src/FileSizeStatsWindow.cpp
do do
substituteInPlace $i \ substituteInPlace $i \
--replace /usr/bin/xdg-open ${xdg_utils}/bin/xdg-open --replace /usr/bin/xdg-open ${xdg_utils}/bin/xdg-open
@ -45,6 +36,9 @@ in stdenv.mkDerivation rec {
substituteInPlace src/StdCleanup.cpp \ substituteInPlace src/StdCleanup.cpp \
--replace /bin/bash ${bash}/bin/bash --replace /bin/bash ${bash}/bin/bash
''; '';
postPatch = ''
export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
'';
postInstall = '' postInstall = ''
wrapProgram $out/bin/qdirstat-cache-writer \ wrapProgram $out/bin/qdirstat-cache-writer \

View File

@ -16,6 +16,8 @@ python3Packages.buildPythonApplication rec {
sha256= "1ws6g8z1m1hfp8bv4msvbaa9f7948p687jmc8h69yib4jkv3qyax"; sha256= "1ws6g8z1m1hfp8bv4msvbaa9f7948p687jmc8h69yib4jkv3qyax";
}; };
LC_ALL = "en_US.UTF-8";
checkInputs = with python3Packages; [ pytest ]; checkInputs = with python3Packages; [ pytest ];
propagatedBuildInputs = [ file ]; propagatedBuildInputs = [ file ];

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages, { stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU, boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU,
glew, eigen, curl, gtest, nlopt, pcre, xorg }: glew, eigen, curl, gtest, nlopt, pcre, xorg, makeDesktopItem }:
let let
AlienWxWidgets = perlPackages.buildPerlPackage rec { AlienWxWidgets = perlPackages.buildPerlPackage rec {
name = "Alien-wxWidgets-0.69"; name = "Alien-wxWidgets-0.69";
@ -112,6 +112,12 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin/var mkdir -p $out/bin/var
cp -r ../resources/icons/* $out/bin/var/ cp -r ../resources/icons/* $out/bin/var/
cp -r ../resources $out/bin/ cp -r ../resources $out/bin/
mkdir -p "$out/share/pixmaps/"
ln -s "$out/bin/var/Slic3r.png" "$out/share/pixmaps/slic3r-prusa.png"
mkdir -p "$out/share/applications"
cp "$desktopItem"/share/applications/* "$out/share/applications/"
''; '';
src = fetchFromGitHub { src = fetchFromGitHub {
@ -121,6 +127,16 @@ stdenv.mkDerivation rec {
rev = "version_${version}"; rev = "version_${version}";
}; };
desktopItem = makeDesktopItem {
name = "slic3r-Prusa-Edition";
exec = "slic3r-prusa3d";
icon = "slic3r-prusa";
comment = "G-code generator for 3D printers";
desktopName = "Slic3r Prusa Edition";
genericName = "3D printer tool";
categories = "Application;Development;";
};
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "G-code generator for 3D printer"; description = "G-code generator for 3D printer";
homepage = https://github.com/prusa3d/Slic3r; homepage = https://github.com/prusa3d/Slic3r;

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, xlibsWrapper { stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, xlibsWrapper
, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver , ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver, cf-private
, libX11, libXi, libXtst, libXrandr, xinput, curl, openssl, unzip }: , libX11, libXi, libXtst, libXrandr, xinput, curl, openssl, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
cmake curl openssl cmake curl openssl
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
ApplicationServices Carbon Cocoa CoreServices ScreenSaver ApplicationServices Carbon Cocoa CoreServices ScreenSaver cf-private
] ++ lib.optionals stdenv.isLinux [ xlibsWrapper libX11 libXi libXtst libXrandr xinput ]; ] ++ lib.optionals stdenv.isLinux [ xlibsWrapper libX11 libXi libXtst libXrandr xinput ];
installPhase = '' installPhase = ''

View File

@ -1,16 +1,16 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus
, gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd, libsecret , gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd, libsecret
, perlPackages, wrapGAppsHook, xdg_utils }: , glib, perlPackages, wrapGAppsHook, xdg_utils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tilix-${version}"; pname = "tilix";
version = "1.8.5"; version = "1.8.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gnunn1"; owner = "gnunn1";
repo = "tilix"; repo = "tilix";
rev = "${version}"; rev = version;
sha256 = "1ixhkssz0xn3x75n2iw6gd3hka6bgmgwfgbvblbjhhx8gcpbw3s7"; sha256 = "1l1ib3g01mxiywbwjxc2522qgjy3ymjzy8bxl42k0hprpp95rw9d";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -25,22 +25,20 @@ stdenv.mkDerivation rec {
) )
''; '';
postInstall = with gnome3; '' postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
wrapProgram $out/bin/tilix \
--prefix LD_LIBRARY_PATH ":" "${libsecret}/lib"
''; '';
preFixup = '' preFixup = ''
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH ":" "${libsecret}/lib")
substituteInPlace $out/share/applications/com.gexperts.Tilix.desktop \ substituteInPlace $out/share/applications/com.gexperts.Tilix.desktop \
--replace "Exec=tilix" "Exec=$out/bin/tilix" --replace "Exec=tilix" "Exec=$out/bin/tilix"
sed -i '/^DBusActivatable=/d' $out/share/applications/com.gexperts.Tilix.desktop sed -i '/^DBusActivatable=/d' $out/share/applications/com.gexperts.Tilix.desktop
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Tiling terminal emulator following the Gnome Human Interface Guidelines."; description = "Tiling terminal emulator following the Gnome Human Interface Guidelines";
homepage = https://gnunn1.github.io/tilix-web; homepage = https://gnunn1.github.io/tilix-web;
license = licenses.mpl20; license = licenses.mpl20;
maintainers = with maintainers; [ midchildan ]; maintainers = with maintainers; [ midchildan ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig { stdenv, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig
, cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco , cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco
, qtbase, qtwebkit, qtx11extras, sqlite }: , qtbase, qtwebengine, qtx11extras, sqlite }:
let let
name = "toggldesktop-${version}"; name = "toggldesktop-${version}";
@ -39,15 +39,15 @@ let
qt-oauth-lib = stdenv.mkDerivation rec { qt-oauth-lib = stdenv.mkDerivation rec {
name = "qt-oauth-lib-${version}"; name = "qt-oauth-lib-${version}";
version = "20180521.233208"; version = "20190125.190943";
src = fetchzip { src = fetchzip {
url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz"; url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz";
sha256 = "0f46d44slzvzaqx0lksvv14lsc1jp8vd2mragxd61r820hybf5z3"; sha256 = "0zmfgvdf6n79mgfvbda7lkdxxlzjmy86436gqi2r5x05vq04sfrj";
}; };
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];
buildInputs = [ qtbase qtwebkit ]; buildInputs = [ qtbase qtwebengine ];
}; };
poco-pc = writeText "poco.pc" '' poco-pc = writeText "poco.pc" ''
@ -100,7 +100,7 @@ let
libtoggl libtoggl
qxtglobalshortcut qxtglobalshortcut
qtbase qtbase
qtwebkit qtwebengine
qt-oauth-lib qt-oauth-lib
qtx11extras qtx11extras
libX11 libX11

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xkbmon-${version}"; name = "xkbmon-${version}";
version = "0.2"; version = "0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xkbmon"; owner = "xkbmon";
repo = "xkbmon"; repo = "xkbmon";
rev = version; rev = version;
sha256 = "1x2xwak0yp0xkl63jzz3k1pf074mh9yxgppwwm96ms3zaslq44yp"; sha256 = "03v8f6fijgwagjphyj8w7lgh5hlc8jk0j2n45n7fm0xwy82cxxx9";
}; };
buildInputs = [ libX11 ]; buildInputs = [ libX11 ];

View File

@ -3,7 +3,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "machine-${version}"; name = "machine-${version}";
version = "0.14.0"; version = "0.16.1";
goPackagePath = "github.com/docker/machine"; goPackagePath = "github.com/docker/machine";
@ -11,16 +11,16 @@ buildGoPackage rec {
rev = "v${version}"; rev = "v${version}";
owner = "docker"; owner = "docker";
repo = "machine"; repo = "machine";
sha256 = "0hd5sklmvkhhpfn318hq9w0f7x14165h1l2mdn9iv4447z1iibff"; sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy";
}; };
postInstall = '' postInstall = ''
mkdir -p $bin/share/bash-completion/completions/ mkdir -p \
cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/ $bin/share/bash-completion/completions/ \
''; $bin/share/zsh/site-functions/
postFixup = '' cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/
mv $bin/bin/cmd $bin/bin/docker-machine cp go/src/github.com/docker/machine/contrib/completion/zsh/* $bin/share/zsh/site-functions/
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -3,7 +3,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "kops-${version}"; name = "kops-${version}";
version = "1.10.0"; version = "1.11.0";
goPackagePath = "k8s.io/kops"; goPackagePath = "k8s.io/kops";
@ -11,7 +11,7 @@ buildGoPackage rec {
rev = version; rev = version;
owner = "kubernetes"; owner = "kubernetes";
repo = "kops"; repo = "kops";
sha256 = "1ga83sbhvhcazran6xfwgv95sg8ygg2w59vql0yjicj8r2q01vqp"; sha256 = "1z67jl66g79q6v5kjy9qxx2xp656ybv5hrc10h3wmzy0b0n30s4n";
}; };
buildInputs = [go-bindata]; buildInputs = [go-bindata];

View File

@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }: { lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.6.0"; in let version = "0.9.1"; in
buildGoPackage { buildGoPackage {
name = "kubecfg-${version}"; name = "kubecfg-${version}";
@ -9,7 +9,7 @@ buildGoPackage {
owner = "ksonnet"; owner = "ksonnet";
repo = "kubecfg"; repo = "kubecfg";
rev = "v${version}"; rev = "v${version}";
sha256 = "12kv1p707kdxjx5l8rcikd1gjwp5xjxdmmyvlpnvyagrphgrwpsf"; sha256 = "010k33arxa4spaq923iazsisxgsaj8c7w4z250y9yrch8xxd74bi";
}; };
goPackagePath = "github.com/ksonnet/kubecfg"; goPackagePath = "github.com/ksonnet/kubecfg";

View File

@ -1,7 +1,7 @@
{ callPackage, stdenv }: { callPackage, stdenv }:
let let
stableVersion = "2.1.11"; stableVersion = "2.1.12";
# Currently there is no preview version. # Currently there is no preview version.
previewVersion = stableVersion; previewVersion = stableVersion;
addVersion = args: addVersion = args:
@ -10,8 +10,8 @@ let
in args // { inherit version branch; }; in args // { inherit version branch; };
mkGui = args: callPackage (import ./gui.nix (addVersion args)) { }; mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
mkServer = args: callPackage (import ./server.nix (addVersion args)) { }; mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
guiSrcHash = "1skcb47r0wvv7l7z487b2165pwvc397b23abfq24kw79806vknzn"; guiSrcHash = "19kk1nc8h6ljczhizkgszw6xma31p0fmh6vkygpmrfwb8975d1s6";
serverSrcHash = "09j2nafxvgc6plk7s3qwv5qc0cc2bi41h4fhg8g7c85ixfx5yz8a"; serverSrcHash = "1rs3l33jf33y02xri0b7chy02cjzd8v7l20ccjw2in8mw08mpc99";
in { in {
guiStable = mkGui { guiStable = mkGui {
stable = true; stable = true;

View File

@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
homepage = https://www.bitlbee.org/; homepage = https://www.bitlbee.org/;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ wkennington pSub ]; maintainers = with maintainers; [ pSub ];
platforms = platforms.gnu ++ platforms.linux; # arbitrary choice platforms = platforms.gnu ++ platforms.linux; # arbitrary choice
}; };
} }

View File

@ -1,60 +1,44 @@
{ stdenv, fetchurl, makeDesktopItem, makeWrapper, autoPatchelfHook { stdenv, fetchurl, makeWrapper, autoPatchelfHook, dpkg
, xorg, atk, glib, pango, gdk_pixbuf, cairo, freetype, fontconfig, gtk2 , xorg, atk, glib, pango, gdk_pixbuf, cairo, freetype, fontconfig, gtk3
, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }: , gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
let let
bits = if stdenv.hostPlatform.system == "x86_64-linux" then "x64" version = "5.0.0-beta.19";
else "ia32";
version = "4.0.4";
desktopItem = makeDesktopItem rec {
name = "Franz";
exec = name;
icon = "franz";
desktopName = name;
genericName = "Franz messenger";
categories = "Network;";
};
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "franz-${version}"; name = "franz-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/meetfranz/franz-app/releases/download/${version}/Franz-linux-${bits}-${version}.tgz"; url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
sha256 = if bits == "x64" then sha256 = "1b9b8y19iqx8bnax7hbh9rkjfxk8a9gqb1akrcxwwfi46l816gyy";
"0ssym0jfrig474g6j67g1jfybjkxnyhbqqjvrs8z6ihwlyd3rrk5" else
"16l9jma2hiwzl9l41yhrwribcgmxca271rq0cfbbm9701mmmciyy";
}; };
# don't remove runtime deps # don't remove runtime deps
dontPatchELF = true; dontPatchELF = true;
nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; nativeBuildInputs = [ autoPatchelfHook makeWrapper dpkg ];
buildInputs = (with xorg; [ buildInputs = (with xorg; [
libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
libXrender libX11 libXtst libXScrnSaver libXrender libX11 libXtst libXScrnSaver
]) ++ [ ]) ++ [
gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus gtk3 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus
gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
]; ];
runtimeDependencies = [ udev.lib libnotify ]; runtimeDependencies = [ udev.lib libnotify ];
unpackPhase = '' unpackPhase = "dpkg-deb -x $src .";
tar xzf $src
'';
installPhase = '' installPhase = ''
mkdir -p $out/bin $out/opt/franz mkdir -p $out/bin
cp -r * $out/opt/franz cp -r opt $out
ln -s $out/opt/franz/Franz $out/bin ln -s $out/opt/Franz/franz $out/bin
# provide desktop item and icon # provide desktop item and icon
mkdir -p $out/share/applications $out/share/pixmaps cp -r usr/share $out
ln -s ${desktopItem}/share/applications/* $out/share/applications substituteInPlace $out/share/applications/franz.desktop \
ln -s $out/opt/franz/resources/app.asar.unpacked/assets/franz.png $out/share/pixmaps --replace Exec=\"/opt/Franz/franz\" Exec=franz
''; '';
postFixup = '' postFixup = ''
wrapProgram $out/opt/franz/Franz --prefix PATH : ${xdg_utils}/bin wrapProgram $out/opt/Franz/franz --prefix PATH : ${xdg_utils}/bin
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -62,7 +46,7 @@ in stdenv.mkDerivation rec {
homepage = https://meetfranz.com; homepage = https://meetfranz.com;
license = licenses.free; license = licenses.free;
maintainers = [ maintainers.gnidorah ]; maintainers = [ maintainers.gnidorah ];
platforms = ["i686-linux" "x86_64-linux"]; platforms = ["x86_64-linux"];
hydraPlatforms = []; hydraPlatforms = [];
}; };
} }

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, makeWrapper }: { stdenv, fetchurl, makeWrapper }:
let let
version = "3.5.0"; version = "3.5.1";
arch = if stdenv.is64bit then "amd64" else "x86"; arch = if stdenv.is64bit then "amd64" else "x86";
libDir = if stdenv.is64bit then "lib64" else "lib"; libDir = if stdenv.is64bit then "lib64" else "lib";
in in
@ -15,8 +15,8 @@ stdenv.mkDerivation {
"http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2" "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"
]; ];
sha256 = if stdenv.is64bit sha256 = if stdenv.is64bit
then "0zk7rbi6mvs2nnsjhv4aizl5ydiyr46ng2i3lr8r78gyb88nxmcv" then "0ygb867ff2fvi9n9hgs4hldpg4y012w4i1d9cx4f5mpli1xim6da"
else "0nahsmcnykgchgv50jb22fin74sab1zl8gy6m6s8mjk570qlvzzm"; else "0g1cixsldpdbfzg2vain7h3hr5j3xjdngjw66r0aqnzbx743gjzj";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -2,17 +2,17 @@
, xorg, gtk2, gnome2, nss, alsaLib, udev, libnotify }: , xorg, gtk2, gnome2, nss, alsaLib, udev, libnotify }:
let let
version = "3.9.0"; version = "4.0.1";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "vk-messenger-${version}"; name = "vk-messenger-${version}";
src = { src = {
i686-linux = fetchurl { i686-linux = fetchurl {
url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
sha256 = "150qjj6ccbdp3gxs99jbzp27in1y8qkngn7jgb9za61pm4j70va3"; sha256 = "0mgppa9qnhix64zp40dc05yc9klsc7qiwcgw7pwq2wm7m3fz3nm8";
}; };
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
sha256 = "04lavv614qhj17zccpdih4k6ghj21nd0s8qxbkxkqb1jb0z8dfz9"; sha256 = "0ra0y4dfx4gfa1r3lm6v42j7c9pf7a8vh12kxv3wkg3pvijwgdsm";
}; };
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "notmuch-bower-${version}"; name = "notmuch-bower-${version}";
version = "0.9"; version = "0.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wangp"; owner = "wangp";
repo = "bower"; repo = "bower";
rev = version; rev = version;
sha256 = "0f8djiclq4rz9isbx18bpzymbvb2q0spvjp982b149hr1my6klaf"; sha256 = "0jpaxlfxz7mj76z3cyj8sq053p0mkp46kaw05nimzwaq5yx923fv";
}; };
nativeBuildInputs = [ gawk mercury pandoc ]; nativeBuildInputs = [ gawk mercury pandoc ];

View File

@ -28,7 +28,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];
configureFlags = configureFlags =
stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ]; [ "--sysconfdir=/etc" ] ++ stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
postInstall = '' postInstall = ''
install -d $out/share/doc/${pname}/scripts install -d $out/share/doc/${pname}/scripts

View File

@ -63,7 +63,7 @@ let
description = "Low-latency, high quality voice chat software"; description = "Low-latency, high quality voice chat software";
homepage = https://mumble.info; homepage = https://mumble.info;
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ jgeerds wkennington ]; maintainers = with maintainers; [ jgeerds ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
}); });

View File

@ -4,15 +4,13 @@
, gobject-introspection, glib-networking, hicolor-icon-theme , gobject-introspection, glib-networking, hicolor-icon-theme
}: }:
let stdenv.mkDerivation rec {
pname = "liferea"; pname = "liferea";
version = "1.12.4"; version = "1.12.6";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2"; url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}b.tar.bz2";
sha256 = "12852qp174nsg770cry7y257vfzl53hpy46h5agaimrfsc41mgln"; sha256 = "sha256:03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d";
}; };
nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ]; nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ];

View File

@ -44,7 +44,8 @@ stdenv.mkDerivation rec {
$out/share/applications/nextcloud.desktop $out/share/applications/nextcloud.desktop
wrapProgram "$out/bin/nextcloud" \ wrapProgram "$out/bin/nextcloud" \
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libsecret ]} --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libsecret ]} \
--prefix QT_PLUGIN_PATH : ${qtbase}/${qtbase.qtPluginPrefix}
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
''; '';
homepage = http://www.freerdp.com/; homepage = http://www.freerdp.com/;
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ wkennington peterhoeg ]; maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "teamviewer-${version}"; name = "teamviewer-${version}";
version = "13.1.3026"; version = "14.1.3399";
src = fetchurl { src = fetchurl {
url = "https://dl.tvcdn.de/download/linux/version_13x/teamviewer_${version}_amd64.deb"; url = "https://dl.tvcdn.de/download/linux/version_14x/teamviewer_${version}_amd64.deb";
sha256 = "14zaa1xjdfmgbbq40is5mllqcd9zan03sblkzajswd5gps7crsik"; sha256 = "166ndijis2i3afz3l6nsnrdhs56v33w5cnjd0m7giqj0fbq43ws5";
}; };
unpackPhase = '' unpackPhase = ''

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, qmake, qtsvg, makeWrapper, xdg_utils }: { stdenv, fetchurl, qmake, qtsvg, makeWrapper, xdg_utils }:
let let
version = "1.43.27"; version = "1.44.55";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "mytetra-${version}"; name = "mytetra-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz"; url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz";
sha256 = "1gzr11jy1bvnp28w2ar3wmh76g55jn9nra5la5qasnal6b5pg28h"; sha256 = "13lmfvschm1xwr0ys2ykhs0bb83m2f39rk1jdd7zf8yxlqki4i6l";
}; };
nativeBuildInputs = [ qmake makeWrapper ]; nativeBuildInputs = [ qmake makeWrapper ];
@ -15,11 +15,11 @@ in stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
preBuild = '' preBuild = ''
substituteInPlace mytetra.pro \ substituteInPlace app/app.pro \
--replace /usr/local/bin $out/bin \ --replace /usr/local/bin $out/bin \
--replace /usr/share $out/share --replace /usr/share $out/share
substituteInPlace src/views/mainWindow/MainWindow.cpp \ substituteInPlace app/src/views/mainWindow/MainWindow.cpp \
--replace ":/resource/pic/logo.svg" "$out/share/icons/hicolor/48x48/apps/mytetra.png" --replace ":/resource/pic/logo.svg" "$out/share/icons/hicolor/48x48/apps/mytetra.png"
''; '';

View File

@ -25,7 +25,7 @@ let
"8.8.0" = "13a4fka22hdxsjk11mgjb9ffzplfxyxp1sg5v1c8nk1grxlscgw8"; "8.8.0" = "13a4fka22hdxsjk11mgjb9ffzplfxyxp1sg5v1c8nk1grxlscgw8";
"8.8.1" = "1hlf58gwazywbmfa48219amid38vqdl94yz21i11b4map6jfwhbk"; "8.8.1" = "1hlf58gwazywbmfa48219amid38vqdl94yz21i11b4map6jfwhbk";
"8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd"; "8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd";
"8.9+beta1" = "1yxv2klqal3mh6symi3gc6gv3xm684zlld2c0b6ijhjmp865cin8"; "8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh";
}."${version}"; }."${version}";
coq-version = builtins.substring 0 3 version; coq-version = builtins.substring 0 3 version;
ideFlags = if buildIde then "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; ideFlags = if buildIde then "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";

View File

@ -0,0 +1,29 @@
{stdenv, fetchurl, openjdk}:
stdenv.mkDerivation rec {
pname = "leo3";
version = "1.2";
jar = fetchurl {
url = "https://github.com/leoprover/Leo-III/releases/download/v${version}/leo3.jar";
sha256 = "1lgwxbr1rnk72rnvc8raq5i1q71ckhn998pwd9xk6zf27wlzijk7";
};
phases=["installPhase" "fixupPhase"];
installPhase = ''
mkdir -p "$out"/{bin,lib/java/leo3}
cp "${jar}" "$out/lib/java/leo3/leo3.jar"
echo "#!${stdenv.shell}" > "$out/bin/leo3"
echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\"" > "$out/bin/leo3"
chmod a+x "$out/bin/leo3"
'';
meta = {
inherit version;
description = "An automated theorem prover for classical higher-order logic with choice";
license = stdenv.lib.licenses.bsd3;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
homepage = "https://page.mi.fu-berlin.de/lex/leo3/";
};
}

View File

@ -0,0 +1,31 @@
{stdenv, z3, cmake}:
stdenv.mkDerivation rec {
pname = "z3-tptp";
version = z3.version;
src = z3.src;
sourceRoot = "source/examples/tptp";
nativeBuildInputs = [cmake];
buildInputs = [z3];
preConfigure = ''
echo 'set(Z3_LIBRARIES "-lz3")' >> CMakeLists.new
cat CMakeLists.txt | grep -E 'add_executable|project|link_libraries' >> CMakeLists.new
mv CMakeLists.new CMakeLists.txt
'';
installPhase = ''
mkdir -p "$out/bin"
cp "z3_tptp5" "$out/bin/"
ln -s "z3_tptp5" "$out/bin/z3-tptp"
'';
meta = {
inherit version;
inherit (z3.meta) license homepage platforms;
description = ''TPTP wrapper for Z3 prover'';
maintainers = [stdenv.lib.maintainers.raskin];
};
}

View File

@ -5,10 +5,10 @@ with lib;
l10ns = flip map l10ns = flip map
[ [
{ {
version = "11.2.0"; version = "11.3.0";
lang = "en"; lang = "en";
language = "English"; language = "English";
sha256 = "4a1293cc1c404303aa1cab1bd273c7be151d37ac5ed928fbbb18e9c5ab2d8df9"; sha256 = "0fcfe208c1eac8448e7be3af0bdb84370b17bd9c5d066c013928c8ee95aed10e";
} }
{ {
version = "11.2.0"; version = "11.2.0";

View File

@ -7,13 +7,13 @@ with stdenv.lib;
buildGoPackage rec { buildGoPackage rec {
name = "gitea-${version}"; name = "gitea-${version}";
version = "1.6.4"; version = "1.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "go-gitea"; owner = "go-gitea";
repo = "gitea"; repo = "gitea";
rev = "v${version}"; rev = "v${version}";
sha256 = "09h8nbzsxm34rlfnvbsf4cs02igids806927xpxf7g563cdapcnl"; sha256 = "1mbr7pnzn8x05wc288855vqaf86qk2f1py5zh8s63l048bn0fld6";
# Required to generate the same checksum on MacOS due to unicode encoding differences # Required to generate the same checksum on MacOS due to unicode encoding differences
# More information: https://github.com/NixOS/nixpkgs/pull/48128 # More information: https://github.com/NixOS/nixpkgs/pull/48128
extraPostFetch = '' extraPostFetch = ''

View File

@ -12,11 +12,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gitkraken-${version}"; name = "gitkraken-${version}";
version = "4.1.1"; version = "4.2.1";
src = fetchurl { src = fetchurl {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb"; url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
sha256 = "188k6vaafv6szzhslsfabnnn68ispsv54d98rcm3m0bmp8kg5p7f"; sha256 = "07f9h3276bs7m22vwpxrxmlwnq7l5inr2l67nmpiaz1569yabwsg";
}; };
libPath = makeLibraryPath [ libPath = makeLibraryPath [

View File

@ -2,11 +2,11 @@
python2Packages.buildPythonApplication rec { python2Packages.buildPythonApplication rec {
name = "tortoisehg-${version}"; name = "tortoisehg-${version}";
version = "4.8.1"; version = "4.8.2";
src = fetchurl { src = fetchurl {
url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz"; url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
sha256 = "10s7v7mi438b8lh3rpd6da9lkwgaflpi6a0inkd8bl4b4ya38vc6"; sha256 = "02av8k241rn7b68g4kl22s7jqmlq545caah1a5rvbgy41y7zzjvh";
}; };
pythonPath = with python2Packages; [ pyqt4 mercurial qscintilla iniparse ]; pythonPath = with python2Packages; [ pyqt4 mercurial qscintilla iniparse ];

View File

@ -0,0 +1,25 @@
{ stdenv, lib, fetchurl, pkgconfig, ffmpeg, glew, libass, openal, qtbase }:
stdenv.mkDerivation rec {
name = "bino-${version}";
version = "1.6.7";
src = fetchurl {
url = "https://bino3d.org/releases/${name}.tar.xz";
sha256 = "04yl7ibnhajlli4a5x77az8jxbzw6b2wjay8aa6px551nmiszn9k";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ffmpeg glew libass openal qtbase ];
enableParallelBuilding = true;
meta = with lib; {
description = "Stereoscopic 3D and multi-display video player";
homepage = https://bino3d.org/;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View File

@ -199,13 +199,13 @@ rec {
# https://github.com/docker/docker-ce/tree/v${version}/components/engine/hack/dockerfile/install/* # https://github.com/docker/docker-ce/tree/v${version}/components/engine/hack/dockerfile/install/*
docker_18_09 = dockerGen rec { docker_18_09 = dockerGen rec {
version = "18.09.0"; version = "18.09.1";
rev = "4d60db472b2bde6931072ca6467f2667c2590dff"; # git commit rev = "4c52b901c6cb019f7552cd93055f9688c6538be4"; # git commit
sha256 = "0py944f5k71c1cf6ci96vnqk43d5979w7r82cngaxk1g6za6k5yj"; sha256 = "0q2789afx07pkisgp9iqrbac5k7xca54w1an4mf5mw34xn8yc4xc";
runcRev = "69663f0bd4b60df09991c08812a60108003fa340"; runcRev = "96ec2177ae841256168fcf76954f7177af9446eb";
runcSha256 = "1l37r97l3ra4ph069w190d05r0a43s76nn9jvvlkbwrip1cp6gyq"; runcSha256 = "1qr9msx6vs37jr0rk3r8x2q51fsk50c78a3999kd0snjy9bxmfhd";
containerdRev = "468a545b9edcd5932818eb9de8e72413e616e86e"; containerdRev = "9754871865f7fe2f4e74d43e2fc7ccd237edcbce";
containerdSha256 = "1rp015cm5fw9kfarcmfhfkr1sh0iz7kvqls6f8nfhwrrz5armd5v"; containerdSha256 = "065snv0s3v3z0ghadlii4w78qnhchcbx2kfdrvm8fk8gb4pkx1ya";
tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662"; tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662";
tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn"; tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
}; };

View File

@ -33,6 +33,9 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
]; ];
# Required for USB redirection PolicyKit rules file
propagatedUserEnvPkgs = optional spiceSupport spice-gtk;
meta = { meta = {
description = "A viewer for remote virtual machines"; description = "A viewer for remote virtual machines";
maintainers = [ maintainers.raskin ]; maintainers = [ maintainers.raskin ];

View File

@ -3,31 +3,32 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
rev = "3734fba160166006521e513f5734eb76ac6aa48f"; rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
name = "i3lock-fancy-unstable-2017-12-14_rev${builtins.substring 0 7 rev}"; name = "i3lock-fancy-unstable-2018-11-25_rev${builtins.substring 0 7 rev}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "meskarune"; owner = "meskarune";
repo = "i3lock-fancy"; repo = "i3lock-fancy";
inherit rev; inherit rev;
sha256 = "1bg4xds2hmbq8rp6azbdqvgp1aaq5y1bp05cfwqqm6y3sjw7ywzl"; sha256 = "00lqsvz1knb8iqy8lnkn3sf4c2c4nzb0smky63qf48m8za5aw9b1";
}; };
patchPhase = '' patchPhase = ''
sed -i -e "s|(mktemp)|(${coreutils}/bin/mktemp)|" lock sed -i -e "s|(mktemp)|(${coreutils}/bin/mktemp)|" i3lock-fancy
sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" lock sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" i3lock-fancy
sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" lock sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" i3lock-fancy
sed -i -e "s|convert |${imagemagick.out}/bin/convert |" lock sed -i -e "s|convert |${imagemagick.out}/bin/convert |" i3lock-fancy
sed -i -e "s|awk -F|${gawk}/bin/awk -F|" lock sed -i -e "s|awk -F|${gawk}/bin/awk -F|" i3lock-fancy
sed -i -e "s| awk | ${gawk}/bin/awk |" lock sed -i -e "s| awk | ${gawk}/bin/awk |" i3lock-fancy
sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" lock sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" i3lock-fancy
sed -i -e 's|icon="$scriptpath/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' lock sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' i3lock-fancy
sed -i -e 's|icon="$scriptpath/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' lock sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy
sed -i -e "s|getopt |${getopt}/bin/getopt |" lock sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy
sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" lock sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy
sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z)|" lock sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z)|" i3lock-fancy
rm Makefile
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin $out/share/i3lock-fancy/icons mkdir -p $out/bin $out/share/i3lock-fancy/icons
cp lock $out/bin/i3lock-fancy cp i3lock-fancy $out/bin/i3lock-fancy
cp icons/lock*.png $out/share/i3lock-fancy/icons cp icons/lock*.png $out/share/i3lock-fancy/icons
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -43,6 +43,5 @@ stdenv.mkDerivation rec {
homepage = https://wayland.freedesktop.org/; homepage = https://wayland.freedesktop.org/;
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ wkennington ];
}; };
} }

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
fontforge fontforge
(pythonFull.withPackages (ps: [ (pythonFull.withPackages (ps: [
ps.jinja2 ps.jinja2
ps."3to2" ps.py3to2
ps.fonttools ps.fonttools
])) ]))
]; ];

View File

@ -1,17 +1,14 @@
{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }: { stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "18.09.19"; pname = "numix-icon-theme-circle";
version = "19.01.24";
package-name = "numix-icon-theme-circle";
name = "${package-name}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = package-name; repo = pname;
rev = version; rev = version;
sha256 = "1a1ack4kpngnb3c281pssmp3snn2idcn2c5cv3l38a0dl5g5w8nq"; sha256 = "18asihcv41jlysb2ynbvbk6fn0lnj7ckaz1nyx1w25a7nk413dnm";
}; };
nativeBuildInputs = [ gtk3 numix-icon-theme ]; nativeBuildInputs = [ gtk3 numix-icon-theme ];

View File

@ -1,15 +1,14 @@
{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }: { stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${package-name}-${version}"; pname = "numix-icon-theme-square";
package-name = "numix-icon-theme-square"; version = "19.01.24";
version = "18.09.19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = package-name; repo = pname;
rev = version; rev = version;
sha256 = "0q5p901qj3gyzgpy5kk9q5sqb13ka5cfg6wvazlfch1k3kaqksz1"; sha256 = "0x3d21snfp4v9ippny1jmf2hw5dcscwrlasxvr5bgxhff1idf81c";
}; };
nativeBuildInputs = [ gtk3 numix-icon-theme ]; nativeBuildInputs = [ gtk3 numix-icon-theme ];

View File

@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
homepage = https://curl.haxx.se/docs/caextract.html; homepage = https://curl.haxx.se/docs/caextract.html;
description = "A bundle of X.509 certificates of public Certificate Authorities (CA)"; description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ wkennington fpletz ]; maintainers = with maintainers; [ fpletz ];
}; };
} }

View File

@ -13,5 +13,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk python gettext ]; buildInputs = [ gtk python gettext ];
NIX_LDFLAGS = "-lgmodule-2.0";
propagatedBuildInputs = [ libxml2 ]; propagatedBuildInputs = [ libxml2 ];
} }

View File

@ -44,14 +44,14 @@ let
in buildPythonApplication rec { in buildPythonApplication rec {
pname = "platformio"; pname = "platformio";
version = "3.6.2"; version = "3.6.4";
# pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964 # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "platformio"; owner = "platformio";
repo = "platformio-core"; repo = "platformio-core";
rev = "v${version}"; rev = "v${version}";
sha256 = "1558adr73d7mgp0z92q9vzbgarddimadyk4467z8i3yp4g8k5irk"; sha256 = "1c1y099xvpdh35n8fln642psa4xsaaqly2i2jgkvhrb9yl77x5aj";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -38,21 +38,15 @@ def generate_sources(release, assets):
type_map = out.setdefault(asset["os"], {}) type_map = out.setdefault(asset["os"], {})
impl_map = type_map.setdefault(asset["binary_type"], {}) impl_map = type_map.setdefault(asset["binary_type"], {})
arch_map = impl_map.setdefault(asset["openjdk_impl"], { arch_map = impl_map.setdefault(asset["openjdk_impl"], {
"version": version,
"build": build,
"packageType": asset["binary_type"], "packageType": asset["binary_type"],
"vmType": asset["openjdk_impl"], "vmType": asset["openjdk_impl"],
}) })
if arch_map["version"] != version or arch_map["build"] != build:
print("error: architectures have different latest versions ({}+{} vs {}+{})".format(
arch_map["version"], arch_map["build"], version, build
), file=sys.stderr)
sys.exit(1)
arch_map[arch_to_nixos[asset["architecture"]]] = { arch_map[arch_to_nixos[asset["architecture"]]] = {
"url": asset["binary_link"], "url": asset["binary_link"],
"sha256": get_sha256(asset["checksum_link"]), "sha256": get_sha256(asset["checksum_link"]),
"version": version,
"build": build,
} }
return out return out

View File

@ -5,13 +5,14 @@ sourcePerArch:
, fetchurl , fetchurl
}: }:
let result = stdenv.mkDerivation rec { let cpuName = stdenv.hostPlatform.parsed.cpu.name;
result = stdenv.mkDerivation rec {
name = if sourcePerArch.packageType == "jdk" name = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.version}" then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.version}"; else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}";
src = fetchurl { src = fetchurl {
inherit (sourcePerArch.${stdenv.hostPlatform.parsed.cpu.name}) url sha256; inherit (sourcePerArch.${cpuName}) url sha256;
}; };
# See: https://github.com/NixOS/patchelf/issues/10 # See: https://github.com/NixOS/patchelf/issues/10

View File

@ -42,15 +42,17 @@ let
xorg.libXrender xorg.libXrender
stdenv.cc.cc stdenv.cc.cc
]); ]);
cpuName = stdenv.hostPlatform.parsed.cpu.name;
in in
let result = stdenv.mkDerivation rec { let result = stdenv.mkDerivation rec {
name = if sourcePerArch.packageType == "jdk" name = if sourcePerArch.packageType == "jdk"
then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.version}" then "adoptopenjdk-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}"
else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.version}"; else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin-${sourcePerArch.${cpuName}.version}";
src = fetchurl { src = fetchurl {
inherit (sourcePerArch.${stdenv.hostPlatform.parsed.cpu.name}) url sha256; inherit (sourcePerArch.${cpuName}) url sha256;
}; };
nativeBuildInputs = [ file ]; nativeBuildInputs = [ file ];

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