Merge branch 'master' into staging-next

Hydra nixpkgs: ?compare=1523575
This commit is contained in:
Vladimír Čunát 2019-06-05 11:06:44 +02:00
commit 576af17187
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
234 changed files with 2709 additions and 1956 deletions

View File

@ -709,19 +709,16 @@ passthru.updateScript = writeScript "update-zoom-us" ''
<programlisting>
passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
</programlisting>
Note that the update scripts will be run in parallel by default; you
should avoid running <command>git commit</command> or any other commands
that cannot handle that.
</para>
<para>
The script will be usually run from the root of the Nixpkgs repository
but you should not rely on that. Also note that the update scripts will
be run in parallel by default; you should avoid running <command>git
commit</command> or any other commands that cannot handle that.
</para>
<para>
For information about how to run the updates, execute
<cmdsynopsis>
<command>nix-shell</command>
<arg>
maintainers/scripts/update.nix
</arg>
</cmdsynopsis>
.
<command>nix-shell maintainers/scripts/update.nix</command>.
</para>
</listitem>
</varlistentry>

View File

@ -50,7 +50,7 @@ let
filesystem = callLibs ./filesystem.nix;
# back-compat aliases
platforms = systems.forMeta;
platforms = systems.doubles;
inherit (builtins) add addErrorContext attrNames concatLists
deepSeq elem elemAt filter genericClosure genList getAttr

View File

@ -3,7 +3,6 @@
rec {
doubles = import ./doubles.nix { inherit lib; };
forMeta = import ./for-meta.nix { inherit lib; };
parse = import ./parse.nix { inherit lib; };
inspect = import ./inspect.nix { inherit lib; };
platforms = import ./platforms.nix { inherit lib; };
@ -15,7 +14,9 @@ rec {
# `parsed` is inferred from args, both because there are two options with one
# clearly prefered, and to prevent cycles. A simpler fixed point where the RHS
# always just used `final.*` would fail on both counts.
elaborate = args: let
elaborate = args': let
args = if lib.isString args' then { system = args'; }
else args';
final = {
# Prefer to parse `config` as it is strictly more informative.
parsed = parse.mkSystemFromString (if args ? config then args.config else args.system);

View File

@ -19,6 +19,12 @@ let
"x86_64-windows" "i686-windows"
"wasm64-wasi" "wasm32-wasi"
"powerpc64le-linux"
"riscv32-linux" "riscv64-linux"
"aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none"
];
allParsed = map parse.mkSystemFromString all;
@ -36,6 +42,7 @@ in rec {
i686 = filterDoubles predicates.isi686;
x86_64 = filterDoubles predicates.isx86_64;
mips = filterDoubles predicates.isMips;
riscv = filterDoubles predicates.isRiscV;
cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
@ -50,5 +57,7 @@ in rec {
wasi = filterDoubles predicates.isWasi;
windows = filterDoubles predicates.isWindows;
embedded = filterDoubles predicates.isNone;
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64le-linux"];
}

View File

@ -1,38 +0,0 @@
{ lib }:
let
inherit (lib.systems) parse;
inherit (lib.systems.inspect) patterns;
abis = lib.mapAttrs (_: abi: builtins.removeAttrs abi [ "assertions" ]) parse.abis;
in rec {
all = [ {} ]; # `{}` matches anything
none = [];
arm = [ patterns.isAarch32 ];
aarch64 = [ patterns.isAarch64 ];
x86 = [ patterns.isx86 ];
i686 = [ patterns.isi686 ];
x86_64 = [ patterns.isx86_64 ];
mips = [ patterns.isMips ];
riscv = [ patterns.isRiscV ];
cygwin = [ patterns.isCygwin ];
darwin = [ patterns.isDarwin ];
freebsd = [ patterns.isFreeBSD ];
# Should be better, but MinGW is unclear.
gnu = [
{ kernel = parse.kernels.linux; abi = abis.gnu; }
{ kernel = parse.kernels.linux; abi = abis.gnueabi; }
{ kernel = parse.kernels.linux; abi = abis.gnueabihf; }
];
illumos = [ patterns.isSunOS ];
linux = [ patterns.isLinux ];
netbsd = [ patterns.isNetBSD ];
openbsd = [ patterns.isOpenBSD ];
unix = patterns.isUnix; # Actually a list
windows = [ patterns.isWindows ];
wasi = [ patterns.isWasi ];
inherit (lib.systems.doubles) mesaPlatforms;
}

View File

@ -44,6 +44,7 @@ rec {
isCygwin = { kernel = kernels.windows; abi = abis.cygnus; };
isMinGW = { kernel = kernels.windows; abi = abis.gnu; };
isWasi = { kernel = kernels.wasi; };
isNone = { kernel = kernels.none; };
isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ];
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ];

View File

@ -12,19 +12,19 @@ let
expected = lib.sort lib.lessThan y;
};
in with lib.systems.doubles; lib.runTests {
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows);
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded);
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ];
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" ];
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" "arm-none" ];
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" ];
testmips = mseteq mips [ "mipsel-linux" ];
testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" ];
testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
testdarwin = mseteq darwin [ "x86_64-darwin" ];
testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
testillumos = mseteq illumos [ "x86_64-solaris" ];
testlinux = mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ];
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "i686-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64le-linux" ];
testnetbsd = mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ];
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];

View File

@ -1,41 +1,44 @@
# nix name, luarocks name, server, version/additionnal args
ansicolors,
argparse,
basexx,
binaryheap,
dkjson
fifo
http
inspect
ldoc
lgi
lpeg_patterns
lpty
lrexlib-gnu,
lrexlib-posix,
ltermbox,
lua-cmsgpack,
lua_cliargs,
lua-iconv,
lua-messagepack,
lua-term,
lua-toml,
luabitop,
luaevent,
luacheck
luaffi,,http://luarocks.org/dev,
luuid,
markdown,
penlight,
rapidjson,
say,
std__debug,std._debug,
std_normalize,std.normalize,
luv,
luasystem,
mediator_lua,,http://luarocks.org/manifests/teto
mpack,,http://luarocks.org/manifests/teto
nvim-client,,http://luarocks.org/manifests/teto
busted,,http://luarocks.org/manifests/teto
luassert,,http://luarocks.org/manifests/teto
coxpcall,,https://luarocks.org/manifests/hisham,1.17.0-1
# nix name, luarocks name, server, version,luaversion
ansicolors,,,,
argparse,,,,
basexx,,,,
binaryheap,,,,
digestif,,http://luarocks.org/dev,,lua5_3
dkjson,,,,
fifo,,,,
http,,,,
inspect,,,,
ldoc,,,,
lgi,,,,
lpeg_patterns,,,,
lpeglabel,,,,
lpty,,,,
lrexlib-gnu,,,,
lrexlib-posix,,,,
ltermbox,,,,
lua-cmsgpack,,,,
lua_cliargs,,,,
lua-iconv,,,,
lua-lsp,,http://luarocks.org/dev,,
lua-messagepack,,,,
lua-term,,,,
lua-toml,,,,
luabitop,,,,
luaevent,,,,
luacheck,,,,
luaffi,,http://luarocks.org/dev,,
luuid,,,,
markdown,,,,
penlight,,,,
rapidjson,,,,
say,,,,
std__debug,std._debug,,,
std_normalize,std.normalize,,,
luv,,,,
luasystem,,,,
mediator_lua,,http://luarocks.org/manifests/teto,,
mpack,,http://luarocks.org/manifests/teto,,
nvim-client,,,,
busted,,http://luarocks.org/manifests/teto,,
luassert,,,,
coxpcall,,https://luarocks.org/manifests/hisham,1.17.0-1,

1 # nix name, luarocks name, server, version/additionnal args # nix name luarocks name server version luaversion
2 ansicolors, ansicolors
3 argparse, argparse
4 basexx, basexx
5 binaryheap, binaryheap
6 dkjson digestif http://luarocks.org/dev lua5_3
7 fifo dkjson
8 http fifo
9 inspect http
10 ldoc inspect
11 lgi ldoc
12 lpeg_patterns lgi
13 lpty lpeg_patterns
14 lrexlib-gnu, lpeglabel
15 lrexlib-posix, lpty
16 ltermbox, lrexlib-gnu
17 lua-cmsgpack, lrexlib-posix
18 lua_cliargs, ltermbox
19 lua-iconv, lua-cmsgpack
20 lua-messagepack, lua_cliargs
21 lua-term, lua-iconv
22 lua-toml, lua-lsp http://luarocks.org/dev
23 luabitop, lua-messagepack
24 luaevent, lua-term
25 luacheck lua-toml
26 luaffi,,http://luarocks.org/dev, luabitop
27 luuid, luaevent
28 markdown, luacheck
29 penlight, luaffi http://luarocks.org/dev
30 rapidjson, luuid
31 say, markdown
32 std__debug,std._debug, penlight
33 std_normalize,std.normalize, rapidjson
34 luv, say
35 luasystem, std__debug std._debug
36 mediator_lua,,http://luarocks.org/manifests/teto std_normalize std.normalize
37 mpack,,http://luarocks.org/manifests/teto luv
38 nvim-client,,http://luarocks.org/manifests/teto luasystem
39 busted,,http://luarocks.org/manifests/teto mediator_lua http://luarocks.org/manifests/teto
40 luassert,,http://luarocks.org/manifests/teto mpack http://luarocks.org/manifests/teto
41 coxpcall,,https://luarocks.org/manifests/hisham,1.17.0-1 nvim-client
42 busted http://luarocks.org/manifests/teto
43 luassert
44 coxpcall https://luarocks.org/manifests/hisham 1.17.0-1

View File

@ -12,11 +12,6 @@
# stop the script upon C-C
set -eu -o pipefail
if [ $# -lt 1 ]; then
print_help
exit 1
fi
CSV_FILE="maintainers/scripts/luarocks-packages.csv"
TMP_FILE="$(mktemp)"
@ -25,16 +20,21 @@ exit_trap()
local lc="$BASH_COMMAND" rc=$?
test $rc -eq 0 || echo -e "*** error $rc: $lc.\nGenerated temporary file in $TMP_FILE" >&2
}
trap exit_trap EXIT
print_help() {
echo "Usage: $0 <GENERATED_FILE>"
echo "(most likely pkgs/development/lua-modules/generated-packages.nix)"
echo ""
echo " -c <CSV_FILE> to set the list of luarocks package to generate"
exit 1
echo ""
echo " -c <CSV_FILE> to set the list of luarocks package to generate"
exit 1
}
if [ $# -lt 1 ]; then
print_help
exit 1
fi
trap exit_trap EXIT
while getopts ":hc:" opt; do
case $opt in
@ -76,15 +76,16 @@ FOOTER="
function convert_pkg () {
nix_pkg_name="$1"
lua_pkg_name="$2"
server="${3:+--server=$3}"
version="${4:-}"
server="${3:+--only-server=$3}"
pkg_version="${4:-}"
lua_version="${5:+--lua-dir=$(nix path-info nixpkgs.$5)/bin}"
echo "looking at $lua_pkg_name (version $version) from server [$server]" >&2
cmd="luarocks nix $server $lua_pkg_name $version"
echo "looking at $lua_pkg_name (version $pkg_version) from server [$server]" >&2
cmd="luarocks nix $server $lua_version $lua_pkg_name $pkg_version"
echo "Running $cmd" >&2
drv="$nix_pkg_name = $($cmd)"
if [ $? -ne 0 ]; then
echo "Failed to convert $pkg" >&2
echo "$drv" >&2
else
echo "$drv" | tee -a "$TMP_FILE"
fi
@ -94,8 +95,7 @@ function convert_pkg () {
echo "$HEADER" | tee "$TMP_FILE"
# list of packages with format
# name,server,version
while IFS=, read -r nix_pkg_name lua_pkg_name server version
while IFS=, read -r nix_pkg_name lua_pkg_name server pkg_version luaversion
do
if [ "${nix_pkg_name:0:1}" == "#" ]; then
echo "Skipping comment ${nix_pkg_name}" >&2
@ -105,7 +105,7 @@ do
echo "Using nix_name as lua_pkg_name" >&2
lua_pkg_name="$nix_pkg_name"
fi
convert_pkg "$nix_pkg_name" "$lua_pkg_name" "$server" "$version"
convert_pkg "$nix_pkg_name" "$lua_pkg_name" "$server" "$pkg_version" "$luaversion"
done < "$CSV_FILE"
# close the set

View File

@ -20,7 +20,9 @@ let
in
[x] ++ nubOn f xs;
pkgs = import ./../../default.nix { };
pkgs = import ./../../default.nix {
overlays = [];
};
packagesWith = cond: return: set:
nubOn (pkg: pkg.updateScript)
@ -67,9 +69,12 @@ let
let
attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." path) null pkgs;
in
packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg)
(name: pkg: pkg)
attrSet;
if attrSet == null then
builtins.throw "Attribute path `${path}` does not exists."
else
packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg)
(name: pkg: pkg)
attrSet;
packageByName = name:
let
@ -122,9 +127,17 @@ let
packageData = package: {
name = package.name;
pname = (builtins.parseDrvName package.name).name;
updateScript = pkgs.lib.toList package.updateScript;
updateScript = map builtins.toString (pkgs.lib.toList package.updateScript);
};
packagesJson = pkgs.writeText "packages.json" (builtins.toJSON (map packageData packages));
optionalArgs =
pkgs.lib.optional (max-workers != null) "--max-workers=${max-workers}"
++ pkgs.lib.optional (keep-going == "true") "--keep-going";
args = [ packagesJson ] ++ optionalArgs;
in pkgs.stdenv.mkDerivation {
name = "nixpkgs-update-script";
buildCommand = ''
@ -139,6 +152,6 @@ in pkgs.stdenv.mkDerivation {
'';
shellHook = ''
unset shellHook # do not contaminate nested shells
exec ${pkgs.python3.interpreter} ${./update.py} ${pkgs.writeText "packages.json" (builtins.toJSON (map packageData packages))}${pkgs.lib.optionalString (max-workers != null) " --max-workers=${max-workers}"}${pkgs.lib.optionalString (keep-going == "true") " --keep-going"}
exec ${pkgs.python3.interpreter} ${./update.py} ${builtins.concatStringsSep " " args}
'';
}

View File

@ -112,6 +112,18 @@
</link>
</para>
</listitem>
<listitem>
<para>
Since Bittorrent Sync was superseded by Resilio Sync in 2016, the
<literal>bittorrentSync</literal>, <literal>bittorrentSync14</literal>,
and <literal>bittorrentSync16</literal> packages have been removed in
favor of <literal>resilio-sync</literal>.
</para>
<para>
The corresponding module, <option>services.btsync</option> has been
replaced by the <option>services.resilio</option> module.
</para>
</listitem>
<listitem>
<para>
The limesurvey apache subservice was replaced with a full NixOS module.

View File

@ -145,7 +145,7 @@
#notbit = 111; # unused
aerospike = 111;
ngircd = 112;
btsync = 113;
#btsync = 113; # unused
minecraft = 114;
vault = 115;
rippled = 116;
@ -457,7 +457,7 @@
#notbit = 111; # unused
aerospike = 111;
#ngircd = 112; # unused
btsync = 113;
#btsync = 113; # unused
#minecraft = 114; # unused
vault = 115;
#ripped = 116; # unused

View File

@ -183,6 +183,7 @@
./services/amqp/activemq/default.nix
./services/amqp/rabbitmq.nix
./services/audio/alsa.nix
./services/audio/jack.nix
./services/audio/icecast.nix
./services/audio/liquidsoap.nix
./services/audio/mpd.nix
@ -541,7 +542,6 @@
./services/networking/autossh.nix
./services/networking/bird.nix
./services/networking/bitlbee.nix
./services/networking/btsync.nix
./services/networking/charybdis.nix
./services/networking/chrony.nix
./services/networking/cjdns.nix

View File

@ -0,0 +1,275 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.jack;
pcmPlugin = cfg.jackd.enable && cfg.alsa.enable;
loopback = cfg.jackd.enable && cfg.loopback.enable;
enable32BitAlsaPlugins = cfg.alsa.support32Bit && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.alsaLib != null;
umaskNeeded = versionOlder cfg.jackd.package.version "1.9.12";
bridgeNeeded = versionAtLeast cfg.jackd.package.version "1.9.12";
in {
options = {
services.jack = {
jackd = {
enable = mkEnableOption ''
JACK Audio Connection Kit. You need to add yourself to the "jackaudio" group
'';
package = mkOption {
# until jack1 promiscuous mode is fixed
internal = true;
type = types.package;
default = pkgs.jack2;
defaultText = "pkgs.jack2";
example = literalExample "pkgs.jack1";
description = ''
The JACK package to use.
'';
};
extraOptions = mkOption {
type = types.listOf types.str;
default = [
"-dalsa"
];
example = literalExample ''
[ "-dalsa" "--device" "hw:1" ];
'';
description = ''
Specifies startup command line arguments to pass to JACK server.
'';
};
session = mkOption {
type = types.lines;
description = ''
Commands to run after JACK is started.
'';
};
};
alsa = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Route audio to/from generic ALSA-using applications using ALSA JACK PCM plugin.
'';
};
support32Bit = mkOption {
type = types.bool;
default = false;
description = ''
Whether to support sound for 32-bit ALSA applications on 64-bit system.
'';
};
};
loopback = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Create ALSA loopback device, instead of using PCM plugin. Has broader
application support (things like Steam will work), but may need fine-tuning
for concrete hardware.
'';
};
index = mkOption {
type = types.int;
default = 10;
description = ''
Index of an ALSA loopback device.
'';
};
config = mkOption {
type = types.lines;
description = ''
ALSA config for loopback device.
'';
};
session = mkOption {
type = types.lines;
description = ''
Additional commands to run to setup loopback device.
'';
};
};
};
};
config = mkMerge [
(mkIf pcmPlugin {
sound.extraConfig = ''
pcm_type.jack {
libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;
${lib.optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;"}
}
pcm.!default {
@func getenv
vars [ PCM ]
default "plug:jack"
}
'';
})
(mkIf loopback {
boot.kernelModules = [ "snd-aloop" ];
boot.kernelParams = [ "snd-aloop.index=${toString cfg.loopback.index}" ];
sound.extraConfig = cfg.loopback.config;
})
(mkIf cfg.jackd.enable {
services.jack.jackd.session = ''
${lib.optionalString bridgeNeeded "${pkgs.a2jmidid}/bin/a2jmidid -e &"}
'';
# https://alsa.opensrc.org/Jack_and_Loopback_device_as_Alsa-to-Jack_bridge#id06
services.jack.loopback.config = ''
pcm.loophw00 {
type hw
card ${toString cfg.loopback.index}
device 0
subdevice 0
}
pcm.amix {
type dmix
ipc_key 219345
slave {
pcm loophw00
}
}
pcm.asoftvol {
type softvol
slave.pcm "amix"
control { name Master }
}
pcm.cloop {
type hw
card ${toString cfg.loopback.index}
device 1
subdevice 0
format S32_LE
}
pcm.loophw01 {
type hw
card ${toString cfg.loopback.index}
device 0
subdevice 1
}
pcm.ploop {
type hw
card ${toString cfg.loopback.index}
device 1
subdevice 1
format S32_LE
}
pcm.aduplex {
type asym
playback.pcm "asoftvol"
capture.pcm "loophw01"
}
pcm.!default {
type plug
slave.pcm aduplex
}
'';
services.jack.loopback.session = ''
alsa_in -j cloop -dcloop &
alsa_out -j ploop -dploop &
while [ "$(jack_lsp cloop)" == "" ] || [ "$(jack_lsp ploop)" == "" ]; do sleep 1; done
jack_connect cloop:capture_1 system:playback_1
jack_connect cloop:capture_2 system:playback_2
jack_connect system:capture_1 ploop:playback_1
jack_connect system:capture_2 ploop:playback_2
'';
assertions = [
{
assertion = !(cfg.alsa.enable && cfg.loopback.enable);
message = "For JACK both alsa and loopback options shouldn't be used at the same time.";
}
];
users.users.jackaudio = {
group = "jackaudio";
extraGroups = [ "audio" ];
description = "JACK Audio system service user";
};
# http://jackaudio.org/faq/linux_rt_config.html
security.pam.loginLimits = [
{ domain = "@jackaudio"; type = "-"; item = "rtprio"; value = "99"; }
{ domain = "@jackaudio"; type = "-"; item = "memlock"; value = "unlimited"; }
];
users.groups.jackaudio = {};
environment = {
systemPackages = [ cfg.jackd.package ];
etc."alsa/conf.d/50-jack.conf".source = "${pkgs.alsaPlugins}/etc/alsa/conf.d/50-jack.conf";
variables.JACK_PROMISCUOUS_SERVER = "jackaudio";
};
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="sound", ATTRS{id}!="Loopback", TAG+="systemd", ENV{SYSTEMD_WANTS}="jack.service"
'';
systemd.services.jack = {
description = "JACK Audio Connection Kit";
serviceConfig = {
User = "jackaudio";
ExecStart = "${cfg.jackd.package}/bin/jackd ${lib.escapeShellArgs cfg.jackd.extraOptions}";
LimitRTPRIO = 99;
LimitMEMLOCK = "infinity";
} // optionalAttrs umaskNeeded {
UMask = "007";
};
path = [ cfg.jackd.package ];
environment = {
JACK_PROMISCUOUS_SERVER = "jackaudio";
JACK_NO_AUDIO_RESERVATION = "1";
};
restartIfChanged = false;
};
systemd.services.jack-session = {
description = "JACK session";
script = ''
jack_wait -w
${cfg.jackd.session}
${lib.optionalString cfg.loopback.enable cfg.loopback.session}
'';
serviceConfig = {
RemainAfterExit = true;
User = "jackaudio";
StateDirectory = "jack";
LimitRTPRIO = 99;
LimitMEMLOCK = "infinity";
};
path = [ cfg.jackd.package ];
environment = {
JACK_PROMISCUOUS_SERVER = "jackaudio";
HOME = "/var/lib/jack";
};
wantedBy = [ "jack.service" ];
partOf = [ "jack.service" ];
after = [ "jack.service" ];
restartIfChanged = false;
};
})
];
meta.maintainers = [ maintainers.gnidorah ];
}

View File

@ -188,6 +188,19 @@ in
systemd.packages = [ package ];
users.users.geoclue = {
isSystemUser = true;
home = "/var/lib/geoclue";
group = "geoclue";
description = "Geoinformation service";
};
users.groups.geoclue = {};
systemd.tmpfiles.rules = [
"d /var/lib/geoclue 0755 geoclue geoclue"
];
# restart geoclue service when the configuration changes
systemd.services."geoclue".restartTriggers = [
config.environment.etc."geoclue/geoclue.conf".source

View File

@ -1,324 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.btsync;
bittorrentSync = cfg.package;
listenAddr = cfg.httpListenAddr + ":" + (toString cfg.httpListenPort);
optionalEmptyStr = b: v: optionalString (b != "") v;
webUIConfig = optionalString cfg.enableWebUI
''
"webui":
{
${optionalEmptyStr cfg.httpLogin "\"login\": \"${cfg.httpLogin}\","}
${optionalEmptyStr cfg.httpPass "\"password\": \"${cfg.httpPass}\","}
${optionalEmptyStr cfg.apiKey "\"api_key\": \"${cfg.apiKey}\","}
${optionalEmptyStr cfg.directoryRoot "\"directory_root\": \"${cfg.directoryRoot}\","}
"listen": "${listenAddr}"
}
'';
knownHosts = e:
optionalString (e ? "knownHosts")
(concatStringsSep "," (map (v: "\"${v}\"") e."knownHosts"));
sharedFoldersRecord =
concatStringsSep "," (map (entry:
let helper = attr: v:
if (entry ? attr) then boolToString entry.attr else boolToString v;
in
''
{
"secret": "${entry.secret}",
"dir": "${entry.directory}",
"use_relay_server": ${helper "useRelayServer" true},
"use_tracker": ${helper "useTracker" true},
"use_dht": ${helper "useDHT" false},
"search_lan": ${helper "searchLAN" true},
"use_sync_trash": ${helper "useSyncTrash" true},
"known_hosts": [${knownHosts entry}]
}
'') cfg.sharedFolders);
sharedFoldersConfig = optionalString (cfg.sharedFolders != [])
''
"shared_folders":
[
${sharedFoldersRecord}
]
'';
configFile = pkgs.writeText "btsync.config"
''
{
"device_name": "${cfg.deviceName}",
"storage_path": "${cfg.storagePath}",
"listening_port": ${toString cfg.listeningPort},
"use_gui": false,
"check_for_updates": ${boolToString cfg.checkForUpdates},
"use_upnp": ${boolToString cfg.useUpnp},
"download_limit": ${toString cfg.downloadLimit},
"upload_limit": ${toString cfg.uploadLimit},
"lan_encrypt_data": ${boolToString cfg.encryptLAN},
${webUIConfig}
${sharedFoldersConfig}
}
'';
in
{
options = {
services.btsync = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
If enabled, start the Bittorrent Sync daemon. Once enabled, you can
interact with the service through the Web UI, or configure it in your
NixOS configuration. Enabling the <literal>btsync</literal> service
also installs a systemd user unit which can be used to start
user-specific copies of the daemon. Once installed, you can use
<literal>systemctl --user start btsync</literal> as your user to start
the daemon using the configuration file located at
<literal>$HOME/.config/btsync.conf</literal>.
'';
};
deviceName = mkOption {
type = types.str;
example = "Voltron";
description = ''
Name of the Bittorrent Sync device.
'';
};
listeningPort = mkOption {
type = types.int;
default = 0;
example = 44444;
description = ''
Listening port. Defaults to 0 which randomizes the port.
'';
};
checkForUpdates = mkOption {
type = types.bool;
default = true;
description = ''
Determines whether to check for updates and alert the user
about them in the UI.
'';
};
useUpnp = mkOption {
type = types.bool;
default = true;
description = ''
Use Universal Plug-n-Play (UPnP)
'';
};
downloadLimit = mkOption {
type = types.int;
default = 0;
example = 1024;
description = ''
Download speed limit. 0 is unlimited (default).
'';
};
uploadLimit = mkOption {
type = types.int;
default = 0;
example = 1024;
description = ''
Upload speed limit. 0 is unlimited (default).
'';
};
httpListenAddr = mkOption {
type = types.str;
default = "0.0.0.0";
example = "1.2.3.4";
description = ''
HTTP address to bind to.
'';
};
httpListenPort = mkOption {
type = types.int;
default = 9000;
description = ''
HTTP port to bind on.
'';
};
httpLogin = mkOption {
type = types.str;
example = "allyourbase";
default = "";
description = ''
HTTP web login username.
'';
};
httpPass = mkOption {
type = types.str;
example = "arebelongtous";
default = "";
description = ''
HTTP web login password.
'';
};
encryptLAN = mkOption {
type = types.bool;
default = true;
description = "Encrypt LAN data.";
};
enableWebUI = mkOption {
type = types.bool;
default = false;
description = ''
Enable Web UI for administration. Bound to the specified
<literal>httpListenAddress</literal> and
<literal>httpListenPort</literal>.
'';
};
package = mkOption {
type = types.package;
example = literalExample "pkgs.bittorrentSync20";
description = ''
Branch of bittorrent sync to use.
'';
};
storagePath = mkOption {
type = types.path;
default = "/var/lib/btsync/";
description = ''
Where BitTorrent Sync will store it's database files (containing
things like username info and licenses). Generally, you should not
need to ever change this.
'';
};
apiKey = mkOption {
type = types.str;
default = "";
description = "API key, which enables the developer API.";
};
directoryRoot = mkOption {
type = types.str;
default = "";
example = "/media";
description = "Default directory to add folders in the web UI.";
};
sharedFolders = mkOption {
default = [];
example =
[ { secret = "AHMYFPCQAHBM7LQPFXQ7WV6Y42IGUXJ5Y";
directory = "/home/user/sync_test";
useRelayServer = true;
useTracker = true;
useDHT = false;
searchLAN = true;
useSyncTrash = true;
knownHosts =
[ "192.168.1.2:4444"
"192.168.1.3:4444"
];
}
];
description = ''
Shared folder list. If enabled, web UI must be
disabled. Secrets can be generated using <literal>btsync
--generate-secret</literal>. Note that this secret will be
put inside the Nix store, so it is realistically not very
secret.
If you would like to be able to modify the contents of this
directories, it is recommended that you make your user a
member of the <literal>btsync</literal> group.
Directories in this list should be in the
<literal>btsync</literal> group, and that group must have
write access to the directory. It is also recommended that
<literal>chmod g+s</literal> is applied to the directory
so that any sub directories created will also belong to
the <literal>btsync</literal> group. Also,
<literal>setfacl -d -m group:btsync:rwx</literal> and
<literal>setfacl -m group:btsync:rwx</literal> should also
be applied so that the sub directories are writable by
the group.
'';
};
};
};
config = mkIf cfg.enable {
assertions =
[ { assertion = cfg.deviceName != "";
message = "Device name cannot be empty.";
}
{ assertion = cfg.enableWebUI -> cfg.sharedFolders == [];
message = "If using shared folders, the web UI cannot be enabled.";
}
{ assertion = cfg.apiKey != "" -> cfg.enableWebUI;
message = "If you're using an API key, you must enable the web server.";
}
];
services.btsync.package = mkOptionDefault pkgs.bittorrentSync14;
users.users.btsync = {
description = "Bittorrent Sync Service user";
home = cfg.storagePath;
createHome = true;
uid = config.ids.uids.btsync;
group = "btsync";
};
users.groups = [
{ name = "btsync";
}];
systemd.services.btsync = with pkgs; {
description = "Bittorrent Sync Service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "local-fs.target" ];
serviceConfig = {
Restart = "on-abort";
UMask = "0002";
User = "btsync";
ExecStart =
"${bittorrentSync}/bin/btsync --nodaemon --config ${configFile}";
};
};
systemd.user.services.btsync = with pkgs; {
description = "Bittorrent Sync user service";
after = [ "network.target" "local-fs.target" ];
serviceConfig = {
Restart = "on-abort";
ExecStart =
"${bittorrentSync}/bin/btsync --nodaemon --config %h/.config/btsync.conf";
};
};
environment.systemPackages = [ cfg.package ];
};
}

View File

@ -6,7 +6,7 @@
#
# git clone https://github.com/strongswan/strongswan.git
# cd strongswan
# git diff 5.5.3..5.6.0 src/swanctl/swanctl.opt
# git diff 5.7.2..5.8.0 src/swanctl/swanctl.opt
lib: with (import ./param-constructors.nix lib);
@ -227,6 +227,22 @@ in {
irrespective of the value of this option (even when set to no).
'';
childless = mkEnumParam [ "allow" "force" "never" ] "allow" ''
Use childless IKE_SA initiation (RFC 6023) for IKEv2. Acceptable values
are <literal>allow</literal> (the default), <literal>force</literal> and
<literal>never</literal>. If set to <literal>allow</literal>, responders
will accept childless IKE_SAs (as indicated via notify in the IKE_SA_INIT
response) while initiators continue to create regular IKE_SAs with the
first CHILD_SA created during IKE_AUTH, unless the IKE_SA is initiated
explicitly without any children (which will fail if the responder does not
support or has disabled this extension). If set to
<literal>force</literal>, only childless initiation is accepted and the
first CHILD_SA is created with a separate CREATE_CHILD_SA exchange
(e.g. to use an independent DH exchange for all CHILD_SAs). Finally,
setting the option to <literal>never</literal> disables support for
childless IKE_SAs as responder.
'';
send_certreq = mkYesNoParam yes ''
Send certificate request payloads to offer trusted root CA certificates to
the peer. Certificate requests help the peer to choose an appropriate
@ -350,6 +366,16 @@ in {
name from either the pools section or an external pool.
'';
if_id_in = mkStrParam "0" ''
XFRM interface ID set on inbound policies/SA, can be overridden by child
config, see there for details.
'';
if_id_out = mkStrParam "0" ''
XFRM interface ID set on outbound policies/SA, can be overridden by child
config, see there for details.
'';
mediation = mkYesNoParam no ''
Whether this connection is a mediation connection, that is, whether this
connection is used to mediate other connections using the IKEv2 Mediation
@ -799,7 +825,7 @@ in {
Updown script to invoke on CHILD_SA up and down events.
'';
hostaccess = mkYesNoParam yes ''
hostaccess = mkYesNoParam no ''
Hostaccess variable to pass to <literal>updown</literal> script.
'';
@ -960,6 +986,26 @@ in {
mask requires at least Linux 4.19.
'';
if_id_in = mkStrParam "0" ''
XFRM interface ID set on inbound policies/SA. This allows installing
duplicate policies/SAs and associates them with an interface with the
same ID. The special value <literal>%unique</literal> sets a unique
interface ID on each CHILD_SA instance, beyond that the value
<literal>%unique-dir</literal> assigns a different unique interface ID
for each CHILD_SA direction (in/out).
'';
if_id_out = mkStrParam "0" ''
XFRM interface ID set on outbound policies/SA. This allows installing
duplicate policies/SAs and associates them with an interface with the
same ID. The special value <literal>%unique</literal> sets a unique
interface ID on each CHILD_SA instance, beyond that the value
<literal>%unique-dir</literal> assigns a different unique interface ID
for each CHILD_SA direction (in/out).
The daemon will not install routes for CHILD_SAs that have this option set.
'';
tfc_padding = mkParamOfType (with lib.types; either int (enum ["mtu"])) 0 ''
Pads ESP packets with additional data to have a consistent ESP packet
size for improved Traffic Flow Confidentiality. The padding defines the

View File

@ -20,7 +20,13 @@ in {
};
config = mkIf cfg.enable {
services.geoclue2.enable = true;
services.geoclue2 = {
enable = true;
appConfig."localtime" = {
isAllowed = true;
isSystem = true;
};
};
# so polkit will pick up the rules
environment.systemPackages = [ pkgs.localtime ];

View File

@ -5,8 +5,33 @@ with lib;
let
cfg = config.services.deluge;
cfg_web = config.services.deluge.web;
openFilesLimit = 4096;
openFilesLimit = 4096;
listenPortsDefault = [ 6881 6889 ];
listToRange = x: { from = elemAt x 0; to = elemAt x 1; };
configDir = "${cfg.dataDir}/.config/deluge";
configFile = pkgs.writeText "core.conf" (builtins.toJSON cfg.config);
declarativeLockFile = "${configDir}/.declarative";
preStart = if cfg.declarative then ''
if [ -e ${declarativeLockFile} ]; then
# Was declarative before, no need to back up anything
ln -sf ${configFile} ${configDir}/core.conf
ln -sf ${cfg.authFile} ${configDir}/auth
else
# Declarative for the first time, backup stateful files
ln -sb --suffix=.stateful ${configFile} ${configDir}/core.conf
ln -sb --suffix=.stateful ${cfg.authFile} ${configDir}/auth
echo "Autogenerated file that signifies that this server configuration is managed declaratively by NixOS" \
> ${declarativeLockFile}
fi
'' else ''
if [ -e ${declarativeLockFile} ]; then
rm ${declarativeLockFile}
fi
'';
in {
options = {
services = {
@ -15,42 +40,151 @@ in {
openFilesLimit = mkOption {
default = openFilesLimit;
example = 8192;
description = ''
Number of files to allow deluged to open.
'';
};
config = mkOption {
type = types.attrs;
default = {};
example = literalExample ''
{
download_location = "/srv/torrents/";
max_upload_speed = "1000.0";
share_ratio_limit = "2.0";
allow_remote = true;
daemon_port = 58846;
listen_ports = [ ${toString listenPortsDefault} ];
}
'';
description = ''
Deluge core configuration for the core.conf file. Only has an effect
when <option>services.deluge.declarative</option> is set to
<literal>true</literal>. String values must be quoted, integer and
boolean values must not. See
<link xlink:href="https://git.deluge-torrent.org/deluge/tree/deluge/core/preferencesmanager.py#n41"/>
for the availaible options.
'';
};
declarative = mkOption {
type = types.bool;
default = false;
description = ''
Whether to use a declarative deluge configuration.
Only if set to <literal>true</literal>, the options
<option>services.deluge.config</option>,
<option>services.deluge.openFirewall</option> and
<option>services.deluge.authFile</option> will be
applied.
'';
};
openFirewall = mkOption {
default = false;
type = types.bool;
description = ''
Whether to open the firewall for the ports in
<option>services.deluge.config.listen_ports</option>. It only takes effet if
<option>services.deluge.declarative</option> is set to
<literal>true</literal>.
It does NOT apply to the daemon port nor the web UI port. To access those
ports secuerly check the documentation
<link xlink:href="https://dev.deluge-torrent.org/wiki/UserGuide/ThinClient#CreateSSHTunnel"/>
or use a VPN or configure certificates for deluge.
'';
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/deluge";
description = ''
The directory where deluge will create files.
'';
};
authFile = mkOption {
type = types.path;
example = "/run/keys/deluge-auth";
description = ''
The file managing the authentication for deluge, the format of this
file is straightforward, each line contains a
username:password:level tuple in plaintext. It only has an effect
when <option>services.deluge.declarative</option> is set to
<literal>true</literal>.
See <link xlink:href="https://dev.deluge-torrent.org/wiki/UserGuide/Authentication"/> for
more informations.
'';
};
};
deluge.web.enable = mkEnableOption "Deluge Web daemon";
deluge.web = {
enable = mkEnableOption "Deluge Web daemon";
port = mkOption {
type = types.port;
default = 8112;
description = ''
Deluge web UI port.
'';
};
};
};
};
config = mkIf cfg.enable {
systemd.tmpfiles.rules = [ "d '${configDir}' 0770 deluge deluge" ]
++ optional (cfg.config ? "download_location")
"d '${cfg.config.download_location}' 0770 deluge deluge"
++ optional (cfg.config ? "torrentfiles_location")
"d '${cfg.config.torrentfiles_location}' 0770 deluge deluge"
++ optional (cfg.config ? "move_completed_path")
"d '${cfg.config.move_completed_path}' 0770 deluge deluge";
systemd.services.deluged = {
after = [ "network.target" ];
description = "Deluge BitTorrent Daemon";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.deluge ];
serviceConfig = {
ExecStart = "${pkgs.deluge}/bin/deluged -d";
# To prevent "Quit & shutdown daemon" from working; we want systemd to manage it!
ExecStart = ''
${pkgs.deluge}/bin/deluged \
--do-not-daemonize \
--config ${configDir}
'';
# To prevent "Quit & shutdown daemon" from working; we want systemd to
# manage it!
Restart = "on-success";
User = "deluge";
Group = "deluge";
UMask = "0002";
LimitNOFILE = cfg.openFilesLimit;
};
preStart = preStart;
};
systemd.services.delugeweb = mkIf cfg_web.enable {
after = [ "network.target" ];
after = [ "network.target" "deluged.service"];
requires = [ "deluged.service" ];
description = "Deluge BitTorrent WebUI";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.deluge ];
serviceConfig.ExecStart = "${pkgs.deluge}/bin/deluge --ui web";
serviceConfig.User = "deluge";
serviceConfig.Group = "deluge";
serviceConfig = {
ExecStart = ''
${pkgs.deluge}/bin/deluge-web \
--config ${configDir} \
--port ${toString cfg.web.port}
'';
User = "deluge";
Group = "deluge";
};
};
networking.firewall = mkIf (cfg.declarative && cfg.openFirewall && !(cfg.config.random_port or true)) {
allowedTCPPortRanges = singleton (listToRange (cfg.config.listen_ports or listenPortsDefault));
allowedUDPPortRanges = singleton (listToRange (cfg.config.listen_ports or listenPortsDefault));
};
environment.systemPackages = [ pkgs.deluge ];
@ -58,7 +192,7 @@ in {
users.users.deluge = {
group = "deluge";
uid = config.ids.uids.deluge;
home = "/var/lib/deluge/";
home = cfg.dataDir;
createHome = true;
description = "Deluge Daemon user";
};

View File

@ -7,10 +7,19 @@ let
cfg = config.services.compton;
literalAttrs = v:
if isString v then toString v
else if isAttrs v then "{\n"
+ concatStringsSep "\n" (mapAttrsToList
(name: value: "${literalAttrs name} = ${literalAttrs value};")
v)
+ "\n}"
else generators.toPretty {} v;
floatBetween = a: b: with lib; with types;
addCheck str (x: versionAtLeast x a && versionOlder x b);
pairOf = x: with types; addCheck (listOf x) (y: lib.length y == 2);
pairOf = x: with types; addCheck (listOf x) (y: length y == 2);
opacityRules = optionalString (length cfg.opacityRules != 0)
(concatMapStringsSep ",\n" (rule: ''"${rule}"'') cfg.opacityRules);
@ -23,8 +32,7 @@ let
fade-in-step = ${elemAt cfg.fadeSteps 0};
fade-out-step = ${elemAt cfg.fadeSteps 1};
fade-exclude = ${toJSON cfg.fadeExclude};
'' +
optionalString cfg.shadow ''
'' + optionalString cfg.shadow ''
# shadows
shadow = true;
@ -39,10 +47,7 @@ let
inactive-opacity = ${cfg.inactiveOpacity};
wintypes:
{
popup_menu = { opacity = ${cfg.menuOpacity}; }
dropdown_menu = { opacity = ${cfg.menuOpacity}; }
};
${literalAttrs cfg.wintypes};
opacity-rule = [
${opacityRules}
@ -50,7 +55,7 @@ let
# other options
backend = ${toJSON cfg.backend};
vsync = ${lib.boolToString cfg.vSync};
vsync = ${boolToString cfg.vSync};
refresh-rate = ${toString cfg.refreshRate};
'' + cfg.extraOptions);
@ -98,7 +103,7 @@ in {
example = [
"window_type *= 'menu'"
"name ~= 'Firefox$'"
"focused = 1"
"focused = 1"
];
description = ''
List of conditions of windows that should not be faded.
@ -138,7 +143,7 @@ in {
example = [
"window_type *= 'menu'"
"name ~= 'Firefox$'"
"focused = 1"
"focused = 1"
];
description = ''
List of conditions of windows that should have no shadow.
@ -173,6 +178,15 @@ in {
'';
};
wintypes = mkOption {
type = types.attrs;
default = { popup_menu = { opacity = cfg.menuOpacity; }; dropdown_menu = { opacity = cfg.menuOpacity; }; };
example = {};
description = ''
Rules for specific window types.
'';
};
opacityRules = mkOption {
type = types.listOf types.str;
default = [];
@ -201,7 +215,7 @@ in {
let
res = x != "none";
msg = "The type of services.compton.vSync has changed to bool:"
+ " interpreting ${x} as ${lib.boolToString res}";
+ " interpreting ${x} as ${boolToString res}";
in
if isBool x then x
else warn msg res;

View File

@ -119,7 +119,13 @@ in {
# needed so that .desktop files are installed, which geoclue cares about
environment.systemPackages = [ cfg.package ];
services.geoclue2.enable = mkIf (cfg.provider == "geoclue2") true;
services.geoclue2 = mkIf (cfg.provider == "geoclue2") {
enable = true;
appConfig."redshift" = {
isAllowed = true;
isSystem = true;
};
};
systemd.user.services.redshift =
let

View File

@ -360,6 +360,7 @@ in
font = mkOption {
type = types.nullOr types.path;
default = "${realGrub}/share/grub/unicode.pf2";
defaultText = ''"''${pkgs.grub2}/share/grub/unicode.pf2"'';
description = ''
Path to a TrueType, OpenType, or pf2 font to be used by Grub.
'';

View File

@ -154,7 +154,7 @@ def remove_old_entries(gens):
except ValueError:
pass
for path in glob.iglob("@efiSysMountPoint@/efi/nixos/*"):
if not path in known_paths:
if not path in known_paths and not os.path.isdir(path):
os.unlink(path)
def get_profiles():

View File

@ -5,25 +5,56 @@ import ./make-test.nix ({ pkgs, ...} : {
};
nodes = {
server =
simple = {
services.deluge = {
enable = true;
web.enable = true;
};
networking.firewall.allowedTCPPorts = [ 8112 ];
};
declarative =
{ ... }:
{ services.deluge = {
{
services.deluge = {
enable = true;
web.enable = true;
openFirewall = true;
declarative = true;
config = {
allow_remote = true;
download_location = "/var/lib/deluge/my-download";
daemon_port = 58846;
listen_ports = [ 6881 6889 ];
};
web = {
enable = true;
port = 3142;
};
authFile = pkgs.writeText "deluge-auth" ''
localclient:a7bef72a890:10
andrew:password:10
user3:anotherpass:5
'';
};
networking.firewall.allowedTCPPorts = [ 8112 ];
environment.systemPackages = [ pkgs.deluge ];
};
client = { };
};
testScript = ''
startAll;
$server->waitForUnit("deluged");
$server->waitForUnit("delugeweb");
$client->waitForUnit("network.target");
$client->waitUntilSucceeds("curl --fail http://server:8112");
$simple->waitForUnit("deluged");
$simple->waitForUnit("delugeweb");
$simple->waitForOpenPort("8112");
$declarative->waitForUnit("network.target");
$declarative->waitUntilSucceeds("curl --fail http://simple:8112");
$declarative->waitForUnit("deluged");
$declarative->waitForUnit("delugeweb");
$declarative->waitUntilSucceeds("curl --fail http://declarative:3142");
$declarative->succeed("deluge-console 'help' | grep -q 'rm - Remove a torrent'");
$declarative->succeed("deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm - Remove a torrent'");
'';
})

View File

@ -0,0 +1,44 @@
{ stdenv, fetchurl, makeDesktopItem, openssl_1_1, xorg, curl, fontconfig, krb5, zlib, dotnet-sdk }:
stdenv.mkDerivation rec {
pname = "wasabiwallet";
version = "1.1.5";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
sha256 = "1iq7qkpq073yq1bz8pam4cbm2myznhpjr3g9afblvmxwgbdjxak0";
};
dontBuild = true;
dontPatchELF = true;
desktopItem = makeDesktopItem {
name = "wasabi";
exec = "wasabiwallet";
desktopName = "Wasabi";
genericName = "Bitcoin wallet";
comment = meta.description;
categories = "Application;Network;Utility;";
};
installPhase = ''
mkdir -p $out/opt/${pname} $out/bin $out/share/applications
cp -Rv . $out/opt/${pname}
cd $out/opt/${pname}
for i in $(find . -type f -name '*.so') wassabee
do
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl_1_1 stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-sdk ]} $i
done
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee
ln -s $out/opt/${pname}/wassabee $out/bin/${pname}
cp -v $desktopItem/share/applications/* $out/share/applications
'';
meta = with stdenv.lib; {
description = "Privacy focused Bitcoin wallet";
homepage = "https://wasabiwallet.io/";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ mmahut ];
};
}

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
stdenv.mkDerivation rec {
version = "0.5.7";
version = "0.5.8";
name = "qjackctl-${version}";
# some dependencies such as killall have to be installed additionally
src = fetchurl {
url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
sha256 = "1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95";
sha256 = "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n";
};
buildInputs = [

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "reaper-${version}";
version = "5.974";
version = "5.978";
src = fetchurl {
url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
sha256 = "0pmjdh4d1jsplv99nrgjn437bgjp7hqk6fynvqk3lbn1zw3wk0i9";
sha256 = "0na7364zxxcic5mq4vaaj4va0g6rhwnwn9fg5gb421iba29ylmhg";
};
nativeBuildInputs = [ autoPatchelfHook makeWrapper ];

View File

@ -59,11 +59,11 @@ let
in stdenv.mkDerivation rec {
name = "drawpile-${version}";
version = "2.1.8";
version = "2.1.10";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
sha256 = "1gm58zb7nh9h6v0i5pr49sfi17piik5jj757nhl0wrd10nwkipn5";
sha256 = "074lp5z5kh6qwar3y4ik7gma5mdgafdsb50q425xcd3pv00gy0hm";
};
nativeBuildInputs = [

View File

@ -5,12 +5,12 @@
}:
stdenv.mkDerivation rec {
version = "3.42.0";
version = "3.44.0";
name = "calibre-${version}";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "0ymdhws3cb44p3fb24vln1wx6s7qnb8rr241jvm6qbj5rnp984dm";
sha256 = "13d3cbn8qbjd8a19qprra6gmib1d818c3zgf3q70kx6b2fq58lzi";
};
patches = [

View File

@ -31,7 +31,7 @@ let
graphite2 gtk2 gtk3 udev ncurses wayland libglvnd vulkan-loader
# Lutris
gobjectIntrospection gdk_pixbuf pango openssl sqlite xterm libnotify procps
gobject-introspection gdk_pixbuf hicolor-icon-theme pango openssl sqlite xterm libnotify procps
# Adventure Game Studio
allegro dumb
@ -47,7 +47,7 @@ let
# DOSBox
SDL_net SDL_sound
# GOG
glib-networking

View File

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "urlscan";
version = "0.9.2";
version = "0.9.3";
src = fetchFromGitHub {
owner = "firecat53";
repo = pname;
rev = version;
sha256 = "16cc1vvvhylrl9208d253k11rqzi95mg7hrf7xbd0bqxvd6rmxar";
sha256 = "0z24k8sk2zfp2pwysyp844vmhr5vbkj74frwy4i0v5pj60i9jl0v";
};
propagatedBuildInputs = [ python3Packages.urwid ];

View File

@ -3,14 +3,14 @@
}:
stdenv.mkDerivation rec {
name = "xterm-345";
name = "xterm-346";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
];
sha256 = "0dfmy9vgpmxi8rsnv2lb2lmq5ny26f0pjhcj348l0d3rs61afjb6";
sha256 = "0xwamhawgh77q2nlibciv77hznirwhnbs3r52rl4sdaqq1rpscng";
};
buildInputs =

View File

@ -1,9 +0,0 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // {
version = "1.4.111";
sha256s = {
"x86_64-linux" = "0bw3ds3ndcnkry5mpv645z2bfi5z387bh0f7b35blxq1yv93r83f";
"i686-linux" = "1qwaj7l7nsd4afx7ksb4b1c22mki9qa40803v9x1a8bhbdfhkczk";
};
})

View File

@ -1,9 +0,0 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // {
version = "2.3.8";
sha256s = {
"x86_64-linux" = "02n5s561cz3mprg682mrbmh3qai42dh64jgi05rqy9s6wgbn66ly";
"i686-linux" = "118qrnxc7gvm30rsz0xfx6dlxmrr0dk5ajrvszhy06ww7xvqhzji";
};
})

View File

@ -1,41 +0,0 @@
{ stdenv, fetchurl, version, sha256s, ... }:
let
arch = {
"x86_64-linux" = "x64";
"i686-linux" = "i386";
}.${stdenv.hostPlatform.system} or throwSystem;
libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
in
stdenv.mkDerivation rec {
name = "btsync-${version}";
inherit version;
src = fetchurl {
# annoyingly, downloads for 1.4 and 2.3 do not follow the same URL layout; this is
# a simple work-around, in place of overriding the url in the caller.
urls = [
"https://download-cdn.getsync.com/${version}/linux-${arch}/BitTorrent-Sync_${arch}.tar.gz"
"http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz"
];
sha256 = sha256s.${stdenv.hostPlatform.system} or throwSystem;
};
dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
sourceRoot = ".";
installPhase = ''
install -D btsync "$out/bin/btsync"
patchelf --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" --set-rpath ${libPath} "$out/bin/btsync"
'';
meta = {
description = "Automatically sync files via secure, distributed technology";
homepage = https://www.getsync.com/;
license = stdenv.lib.licenses.unfreeRedistributable;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ domenkozar thoughtpolice cwoac ];
};
}

View File

@ -40,7 +40,7 @@
let
mirror = https://get.geo.opera.com/pub/opera/desktop;
version = "58.0.3135.127";
version = "60.0.3255.109";
rpath = stdenv.lib.makeLibraryPath [
@ -96,7 +96,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "${mirror}/${version}/linux/opera-stable_${version}_amd64.deb";
sha256 = "1nk4zfmb2dv464r1q6n9b66zg7a8h5xfwypzqd791rhmsfjrxn51";
sha256 = "0y3cjjzp41pa15sw8bp7n5ab8j8b1kk5h11b4pl6w8spsyk2cpqh";
};
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";

View File

@ -280,7 +280,7 @@ stdenv.mkDerivation rec {
TZ=":" \
\
DISPLAY="\$DISPLAY" \
XAUTHORITY="\$XAUTHORITY" \
XAUTHORITY="\''${XAUTHORITY:-}" \
DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
\
HOME="\$HOME" \

View File

@ -15,13 +15,13 @@ with lib;
stdenv.mkDerivation rec {
name = "kubernetes-${version}";
version = "1.14.1";
version = "1.14.2";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
rev = "v${version}";
sha256 = "1cyln9nwry290fpffx6xxy0ll7ybib5ifja7nnq93f3f2p0sj421";
sha256 = "17jb05c5i9y725jf5ad2ki99wyi2dv2jdhfgcxrki9fzjsx967g2";
};
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];

View File

@ -1,24 +1,22 @@
{ stdenv, fetchFromGitHub, buildGoPackage }:
buildGoPackage rec {
{ stdenv, fetchFromGitHub, buildGoModule }:
buildGoModule rec {
name = "terraform-provider-elasticsearch-${version}";
version = "0.6.0";
goPackagePath = "github.com/phillbaker/terraform-provider-elasticsearch";
# ./deps.nix was generated using the work-around described in:
# https://github.com/kamilchm/go2nix/issues/19
goDeps = ./deps.nix;
version = "0.7.0";
src = fetchFromGitHub {
owner = "phillbaker";
repo = "terraform-provider-elasticsearch";
rev = "v${version}";
sha256 = "04i7jwhm1mg4m8p7y6yg83j76fx0ncallzbza1g1wc5cjjbkvgs2";
sha256 = "0ci9gcn9ijdbx25wa99iy0b3sl7akqa7b6gi9wnnl1dawpqznj7v";
};
modSha256 = "1xk21xswqwpv34j4ba4fj8lcbvfdd12x7rq1hrdyd21mdhmrhw0p";
subPackages = [ "." ];
# Terraform allow checking the provider versions, but this breaks
# if the versions are not provided via file paths.
postBuild = "mv go/bin/terraform-provider-elasticsearch{,_v${version}}";
postInstall = "mv $out/bin/terraform-provider-elasticsearch{,_v${version}}";
meta = with stdenv.lib; {
description = "Terraform provider for elasticsearch";

View File

@ -1,75 +0,0 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
[
{
goPackagePath = "github.com/aws/aws-sdk-go";
fetch = {
type = "git";
url = "https://github.com/aws/aws-sdk-go";
rev = "512bdaf8bec30abd545b440447cebb57b53d3af9";
sha256 = "1j7kjk6i8vg4nwlsxjypqz3gc9j1a9x8r3bg99w1x2ap3vrh7sl8";
};
}
{
goPackagePath = "github.com/deoxxa/aws_signing_client";
fetch = {
type = "git";
url = "https://github.com/deoxxa/aws_signing_client";
rev = "c20ee106809eacdffcc81ac7cb984261f8e3067e";
sha256 = "01cw1f6hzgx1df730vdwd7vhbn7yl6zv3sr42iz4sd1dcdqwzlkq";
};
}
{
goPackagePath = "github.com/hashicorp/terraform";
fetch = {
type = "git";
url = "https://github.com/hashicorp/terraform";
rev = "dbce85d85ff0beebc660b3d1805b4ef15361af00";
sha256 = "17kd3ln1i40qb8fll5918rvgackzf1ibmr7li1p9vky4ki3iwr0l";
};
}
{
goPackagePath = "github.com/mailru/easyjson";
fetch = {
type = "git";
url = "https://github.com/mailru/easyjson";
rev = "3fdea8d05856a0c8df22ed4bc71b3219245e4485";
sha256 = "0g3crph77yhv4ipdnwqc32z4cp87ahi4ikad5kyy6q4znnxliz74";
};
}
{
goPackagePath = "github.com/olivere/elastic";
fetch = {
type = "git";
url = "https://github.com/olivere/elastic";
rev = "2a5234d20b058173aaea6835e671fc83eee777b0";
sha256 = "08r62d29m6f7d5hwb9zm5b612wbvzd9sn97nb48q174gbk8685yw";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "816c9085562cd7ee03e7f8188a1cfd942858cded";
sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k";
};
}
{
goPackagePath = "gopkg.in/olivere/elastic.v5";
fetch = {
type = "git";
url = "https://gopkg.in/olivere/elastic.v5";
rev = "b708306d715bea9b983685e94ab4602cdc9f988b";
sha256 = "0ks0h0ik0aqjm8dm2imbyd1z7rfmqiwilf3bc9nnplp9hc07471y";
};
}
{
goPackagePath = "gopkg.in/olivere/elastic.v6";
fetch = {
type = "git";
url = "https://gopkg.in/olivere/elastic.v6";
rev = "e6cae211ee802eab70248a68fe2cb03b616744c9";
sha256 = "0nbf4mr31gxm4zn5w362y22mh98ckl3d0bxli4f3rwx6zw12arfg";
};
}
]

View File

@ -36,7 +36,7 @@ buildFHSUserEnv {
libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
libXxf86vm libxcb xkeyboardconfig
curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
procps zlib mesa libxshmfence libpthreadstubs
procps zlib mesa libxshmfence libpthreadstubs libappindicator
];
extraInstallCommands = ''

View File

@ -3,12 +3,12 @@
, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
let
version = "5.0.0-beta.19";
version = "5.1.0";
in stdenv.mkDerivation rec {
name = "franz-${version}";
src = fetchurl {
url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
sha256 = "1b9b8y19iqx8bnax7hbh9rkjfxk8a9gqb1akrcxwwfi46l816gyy";
sha256 = "a474d2e9c6fb99abfc4c7e9290a0e52eef62233fa25c962afdde75fe151277d0";
};
# don't remove runtime deps

View File

@ -7,7 +7,7 @@ let
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
# source of the latter disappears much faster.
version = "8.44.0.40";
version = "8.46.0.60";
rpath = stdenv.lib.makeLibraryPath [
alsaLib
@ -58,7 +58,7 @@ let
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb";
sha256 = "08b5nfx1c8czx5nga3zlg60rxnyg2iy627vnaq8cf9dv620vbrw8";
sha256 = "0v7a28zmgx1mxqgyfrj8byvjs9ibnirqplly8ll221gns8qjvrls";
}
else
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";

View File

@ -4,11 +4,11 @@ let
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
stableVersion = {
stable = true;
version = "1.7.0";
sha256Hash = "1plfby243hf65wjmppq1qnqmp25pgi4x3awqd4h83ly9hn8qdwfk";
version = "1.7.3";
sha256Hash = "0y0chdfxq75ydx8lz40yfpbx8ycm8vdkl5dvll6glxjq5m21kxf9";
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
archPatchesRevision = "464796";
archPatchesHash = "1bq7r69k3i9p1csdsca0w41jyz6fbyn4qriv3lg7s28j9s803kw8";
archPatchesRevision = "476826";
archPatchesHash = "1vnlvba60hxd5jlh0fvsa50xmb9xgcphdsx6j1ld7f12m7ik68zr";
};
in {
stable = mkTelegram stableVersion;

View File

@ -1,7 +1,7 @@
{ stable, version, sha256Hash, archPatchesRevision, archPatchesHash }:
{ mkDerivation, lib, fetchFromGitHub, fetchsvn
, pkgconfig, pythonPackages, cmake, wrapGAppsHook
, pkgconfig, pythonPackages, cmake, wrapGAppsHook, gcc8
, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
}:
@ -29,7 +29,8 @@ mkDerivation rec {
};
# TODO: libtgvoip.patch no-gtk2.patch
patches = [ "${archPatches}/tdesktop.patch" ];
# TODO: Avoid tdesktop_lottie_animation_qtdebug.patch and tdesktop_qtlottie_qtdebug.patch
patches = [ "${archPatches}/tdesktop.patch" "${archPatches}/tdesktop_lottie_animation_qtdebug.patch" ];
postPatch = ''
substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \
@ -38,7 +39,7 @@ mkDerivation rec {
--replace '"notify"' '"${libnotify}/lib/libnotify.so"'
'';
nativeBuildInputs = [ pkgconfig pythonPackages.gyp cmake wrapGAppsHook ];
nativeBuildInputs = [ pkgconfig pythonPackages.gyp cmake wrapGAppsHook gcc8 ];
# We want to run wrapProgram manually (with additional parameters)
dontWrapGApps = true;
@ -77,6 +78,9 @@ mkDerivation rec {
pushd "Telegram/ThirdParty/libtgvoip"
patch -Np1 -i "${archPatches}/libtgvoip.patch"
popd
pushd "Telegram/ThirdParty/qtlottie"
patch -Np1 -i "${archPatches}/tdesktop_qtlottie_qtdebug.patch"
popd
sed -i Telegram/gyp/telegram_linux.gypi \
-e 's,/usr,/does-not-exist,g' \

View File

@ -4,7 +4,7 @@
, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg
, qttools, qtwayland, qtwebchannel, qtwebengine
# Runtime
, coreutils, libjpeg_turbo, pciutils, procps, utillinux
, coreutils, libjpeg_turbo, pciutils, procps, utillinux, libv4l
, pulseaudioSupport ? true, libpulseaudio ? null
}:
@ -72,6 +72,7 @@ in stdenv.mkDerivation {
makeWrapper $packagePath/zoom $out/bin/zoom-us \
--prefix PATH : "${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}" \
--prefix LD_PRELOAD : "${libv4l}/lib/libv4l/v4l2convert.so" \
--run "cd $packagePath"
runHook postInstall

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pkgconfig, gtk2, lua, perl, python2
, libtool, pciutils, dbus-glib, libcanberra-gtk2, libproxy
, libsexy, enchant, libnotify, openssl, intltool
, libsexy, enchant1, libnotify, openssl, intltool
, desktop-file-utils, hicolor-icon-theme
, autoconf, automake, autoconf-archive
}:
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
#hexchat and heachat-text loads enchant spell checking library at run time and so it needs to have route to the path
patchPhase = ''
sed -i "s,libenchant.so.1,${enchant}/lib/libenchant.so.1,g" src/fe-gtk/sexy-spell-entry.c
sed -i "s,libenchant.so.1,${enchant1}/lib/libenchant.so.1,g" src/fe-gtk/sexy-spell-entry.c
'';
preConfigure = ''

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "spice-up";
version = "1.8.1";
version = "1.8.2";
src = fetchFromGitHub {
owner = "Philip-Scott";
repo = "Spice-up";
rev = version;
sha256 = "0vgs2z6yr0d5vwb04wd2s22144pdrjhqik9xs69q4dxjxa84iw0h";
sha256 = "1pix911l4ddn50026a5sbpqfzba6fmw40m1yzbknmkgd2ny28f0m";
};
USER = "pbuilder";

View File

@ -3,7 +3,7 @@
bundlerApp {
pname = "timetrap";
gemdir = ./.;
exes = [ "timetrap" ];
exes = [ "t" "timetrap" ];
meta = with lib; {
description = "A simple command line time tracker written in ruby";

View File

@ -9,11 +9,11 @@
python3Packages.buildPythonApplication rec {
name = "zim-${version}";
version = "0.71.0";
version = "0.71.1";
src = fetchurl {
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
sha256 = "0mr3911ls5zp3z776ysrdm3sg89zg29r3ip23msydcdbl8wymw30";
sha256 = "0d7whwpbklkhamlvysa0yyix1hchkpdynimf3gp1xbibg8mqzbxc";
};
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook ];

View File

@ -2,14 +2,14 @@
, hackrf, rtl-sdr, airspy, limesuite }:
python3Packages.buildPythonApplication rec {
name = "urh-${version}";
version = "2.5.7";
pname = "urh";
version = "2.7.0";
src = fetchFromGitHub {
owner = "jopohl";
repo = "urh";
repo = pname;
rev = "v${version}";
sha256 = "110fwlj2fw8jgrsgqfkha7lx8f06w0ymh51mgpckx8a0wycznhcy";
sha256 = "0yxv38p8a2srk9c55jj96vcib6m6pb6m485ysfg2ilwjzipx2ab0";
};
buildInputs = [ hackrf rtl-sdr airspy limesuite ];
@ -20,9 +20,9 @@ python3Packages.buildPythonApplication rec {
doCheck = false;
meta = with stdenv.lib; {
inherit (src.meta) homepage;
homepage = "https://github.com/jopohl/urh";
description = "Universal Radio Hacker: investigate wireless protocols like a boss";
license = licenses.asl20;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ fpletz ];
};

View File

@ -7,8 +7,8 @@ let
in
stdenv.mkDerivation rec {
srcVersion = "may19a";
version = "20190501_a";
srcVersion = "jun19b";
version = "20190601_b";
name = "gildas-${version}";
src = fetchurl {
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
# source code of the previous release to a different directory
urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
sha256 = "f6132116bce0ea716a6eb13a63f538d27567a8bfb159f7d567abb9dac5429e30";
sha256 = "363d191afdb1fda12ec19d6b9c3ab4189e7c3b036e78f7359d17671d846118ce";
};
enableParallelBuilding = true;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "picard-tools-${version}";
version = "2.19.2";
version = "2.20.2";
src = fetchurl {
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
sha256 = "0dfap1whga03r0fh3adi684dyp9agfdi96hb2aqskgr9jp0z69rb";
sha256 = "0qpc6pi3fmzv8rs5cmk3dd4clrkzbrngsl384b5g0y7471lhavbi";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -4,12 +4,12 @@
}:
stdenv.mkDerivation rec {
version = "6.4";
version = "6.4.1";
name = "quantum-espresso-${version}";
src = fetchurl {
url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
sha256 = "1zjblzf0xzwmhmpjm56xvv8wsv5jmp5a204irzyicmd77p86c4vq";
sha256 = "027skhp2zzx0f4mh6azqjljdimchak5cdn13v4x7aj5q2zvfkmxh";
};
passthru = {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "gtkwave-${version}";
version = "3.3.100";
version = "3.3.101";
src = fetchurl {
url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
sha256 = "1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa";
sha256 = "1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
name = "git-repo-${version}";
version = "1.13.2";
version = "1.13.3";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
sha256 = "0ll1yzwgpayps7c05j8kf1m4zvww7crmlyy7xa0w5g2krbjvjzvi";
sha256 = "0wyr6fyc9kzzw6y2cxvri35ib1sh156n6lnv119j5r1rzvc2lg6r";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "src-${version}";
version = "1.25";
version = "1.26";
src = fetchurl {
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
sha256 = "0qd10w8fwbrgaj8sx49q6cfhqq3ylhwn7nl9v6kxi1yjlw2p098p";
sha256 = "06npsnf2bfjgcs7wilhcqn24zn286nyy4qyp3yp88zapkxzlap23";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -1,35 +1,28 @@
{ stdenv, fetchFromGitHub, fetchpatch
{ stdenv, fetchFromGitHub, makeWrapper
, meson, ninja
, pkgconfig, scdoc
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
, wlroots, wayland-protocols
, wlroots, wayland-protocols, swaybg
}:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "sway";
version = "1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "swaywm";
repo = "sway";
rev = version;
sha256 = "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx";
sha256 = "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776";
};
patches = [
# Fix for a compiler warning that causes a build failure
# (see https://github.com/swaywm/sway/issues/3862):
(fetchpatch {
url = "https://github.com/swaywm/sway/commit/bcde298a719f60b9913133dbd2a169dedbc8dd7d.patch";
sha256 = "0r583nmqvq43ib93yv6flw8pj833v32lbs0q0xld56s3rnzvvdcp";
})
./sway-config-no-nix-store-references.patch
./load-configuration-from-etc.patch
];
nativeBuildInputs = [ pkgconfig meson ninja scdoc ];
nativeBuildInputs = [ pkgconfig meson ninja scdoc makeWrapper ];
buildInputs = [
wayland libxkbcommon pcre json_c dbus libevdev
@ -44,6 +37,14 @@ stdenv.mkDerivation rec {
"-Dtray=enabled" "-Dman-pages=enabled"
];
postInstall = ''
wrapProgram $out/bin/sway --prefix PATH : "${swaybg}/bin"
'';
postPatch = ''
sed -i "s/version: '1.0'/version: '${version}'/" meson.build
'';
meta = with stdenv.lib; {
description = "i3-compatible tiling Wayland compositor";
homepage = https://swaywm.org;

View File

@ -16,10 +16,16 @@
, name ? "initrd"
, compressor ? "gzip -9n"
, prepend ? []
, lib
}:
let
# !!! Move this into a public lib function, it is probably useful for others
toValidStoreName = x: with builtins;
lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x));
stdenv.mkDerivation rec {
in stdenv.mkDerivation rec {
inherit name;
builder = ./make-initrd.sh;
makeUInitrd = stdenv.hostPlatform.platform.kernelTarget == "uImage";
@ -36,8 +42,12 @@ stdenv.mkDerivation rec {
# Note: we don't use closureInfo yet, as that won't build with nix-1.x.
# See #36268.
exportReferencesGraph =
map (x: [("closure-" + baseNameOf x.symlink) x.object]) contents;
lib.zipListsWith
(x: i: [("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") x.object])
contents
(lib.range 0 (lib.length contents - 1));
pathsFromGraph = ./paths-from-graph.pl;
inherit compressor prepend;
}

View File

@ -86,14 +86,10 @@ if [ $(grep -c "$oldHash" "$nixFile") != 1 ]; then
die "Couldn't locate old source hash '$oldHash' (or it appeared more than once) in '$nixFile'!"
fi
oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; builtins.elemAt $attr.src.drvAttrs.urls 0" | tr -d '"')
oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; builtins.elemAt ($attr.src.drvAttrs.urls or [ $attr.src.url ]) 0" | tr -d '"')
if [ -z "$oldUrl" ]; then
oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.src.url" | tr -d '"')
if [ -z "$oldUrl" ]; then
die "Couldn't evaluate source url from '$attr.src'!"
fi
die "Couldn't evaluate source url from '$attr.src'!"
fi
drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; (builtins.parseDrvName $attr.name).name" | tr -d '"')
@ -109,13 +105,13 @@ if [ "$oldVersion" = "$newVersion" ]; then
fi
# Escape regex metacharacter that are allowed in store path names
oldVersion=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g')
oldUrl=$(echo "$oldUrl" | sed -re 's|[${}.+]|\\&|g')
oldVersionEscaped=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g')
oldUrlEscaped=$(echo "$oldUrl" | sed -re 's|[${}.+]|\\&|g')
if [ $(grep -c -E "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersion\"" "$nixFile") = 1 ]; then
pattern="/\b$versionKey\b\s*=/ s|\"$oldVersion\"|\"$newVersion\"|"
elif [ $(grep -c -E "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersion\"" "$nixFile") = 1 ]; then
pattern="/\bname\b\s*=/ s|-$oldVersion\"|-$newVersion\"|"
if [ $(grep -c -E "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersionEscaped\"" "$nixFile") = 1 ]; then
pattern="/\b$versionKey\b\s*=/ s|\"$oldVersionEscaped\"|\"$newVersion\"|"
elif [ $(grep -c -E "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersionEscaped\"" "$nixFile") = 1 ]; then
pattern="/\bname\b\s*=/ s|-$oldVersionEscaped\"|-$newVersion\"|"
else
die "Couldn't figure out where out where to patch in new version in '$attr'!"
fi
@ -128,7 +124,7 @@ fi
# Replace new URL
if [ -n "$newUrl" ]; then
sed -i "$nixFile" -re "s|\"$oldUrl\"|\"$newUrl\"|"
sed -i "$nixFile" -re "s|\"$oldUrlEscaped\"|\"$newUrl\"|"
if cmp -s "$nixFile" "$nixFile.bak"; then
die "Failed to replace source URL '$oldUrl' to '$newUrl' in '$attr'!"

View File

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "3.5";
version = "3.7";
in fetchzip {
name = "inter-${version}";
@ -12,14 +12,14 @@ in fetchzip {
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
'';
sha256 = "0zqixzzbb3n1j4jvpjm0hlxc32j53hgq4j078gihjkhgvjhsklf2";
sha256 = "1ja1v3605vp09azpabgmk710kic85zxwi4kksmqj9z805fmxddp6";
meta = with lib; {
homepage = https://rsms.me/inter/;
description = "A typeface specially designed for user interfaces";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ demize ];
maintainers = with maintainers; [ demize dtzWill ];
};
}

View File

@ -1,7 +1,7 @@
{ lib, fetchFromGitHub }:
let
version = "6.8";
version = "6.9";
in fetchFromGitHub rec {
name = "libertinus-${version}";
@ -14,7 +14,7 @@ in fetchFromGitHub rec {
install -m444 -Dt $out/share/fonts/opentype *.otf
install -m444 -Dt $out/share/doc/${name} *.txt
'';
sha256 = "0iwbw3sw8rcsifpzw72g3cz0a960scv7cib8mwrw53282waqq2gc";
sha256 = "0765a7w0askkhrjmjk638gcm9h6fcm1jpaza8iw9afr3sz1s0xlq";
meta = with lib; {
description = "A fork of the Linux Libertine and Linux Biolinum fonts";

View File

@ -0,0 +1,24 @@
{ lib, fetchzip }:
let
pname = "national-park-typeface";
version = "206464";
in fetchzip {
name = "${pname}-${version}";
url = "https://files.cargocollective.com/c${version}/NationalPark.zip";
postFetch = ''
mkdir -p $out/share/fonts
unzip -j $downloadedFile National\*.otf -d $out/share/fonts/opentype/
'';
sha256 = "044gh4xcasp8i9ny6z4nmns1am2pk5krc4ann2afq35v9bnl2q5d";
meta = with lib; {
description = ''Typeface designed to mimic the national park service
signs that are carved using a router bit'';
homepage = https://nationalparktypeface.com/;
license = licenses.ofl;
maintainers = with maintainers; [ dtzWill ];
};
}

View File

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "1.003";
version = "1.004";
in fetchzip rec {
name = "public-sans-${version}";
@ -12,7 +12,7 @@ in fetchzip rec {
unzip $downloadedFile fonts/{otf,variable}/\*.\[ot\]tf -d $out/share/
'';
sha256 = "02ranwr1bw4n9n1ljw234nzhj2a0hgradniib37nh10maark5wg3";
sha256 = "1d9ll6gvvlmlykv868lq7xmwldlfjp94k0rjqifipg3q1qv051lg";
meta = with lib; {
description = "A strong, neutral, principles-driven, open source typeface for text or display";

View File

@ -47,9 +47,9 @@ lib.makeScope pkgs.newScope (self: with self; {
libbonoboui = callPackage ./platform/libbonoboui { };
gtkhtml = callPackage ./platform/gtkhtml { };
gtkhtml = callPackage ./platform/gtkhtml { enchant = pkgs.enchant1; };
gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { };
gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { enchant = pkgs.enchant1; };
gtkglext = callPackage ./platform/gtkglext { };

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gtk3, intltool,
GConf, enchant, isocodes, gnome_icon_theme, gsettings-desktop-schemas }:
{ stdenv, fetchurl, pkgconfig, gtk3, intltool, fetchpatch
, GConf, enchant, isocodes, gnome_icon_theme, gsettings-desktop-schemas }:
stdenv.mkDerivation rec {
version = "4.10.0";

View File

@ -5,13 +5,13 @@
let
pname = "gnome-maps";
version = "3.32.2";
version = "3.32.2.1";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1yvwzdfxjdgx4478l2i240ssvbr8hm5sg4krc1gw2ps08sgap7yx";
sha256 = "1m191iq1gjaqz79ci3dkbmwrkxp7pzknngimlf5bqib5x8yairlb";
};
doCheck = true;

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
attrPath = "gnom3.gnome-nettool";
attrPath = "gnome3.${pname}";
versionPolicy = "none";
};
};

View File

@ -13,11 +13,11 @@
stdenv.mkDerivation rec {
pname = "gnome-control-center";
version = "3.32.1";
version = "3.32.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0xpcmwgnn29syi2kfxc8233a5f3j8cij5wcn76xmsmwxvxz5r85l";
sha256 = "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs";
};
nativeBuildInputs = [

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
name = "gnome-software-${version}";
version = "3.32.2";
version = "3.32.3";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "12kw5vyg8jy0xiq1shfh4ksar2dpyzcdxbyx8lrp9494d606nrlx";
sha256 = "1r24q2c0i5xwp7dahw4wzycrhijix0nl7bxq1x0za57qm62ysfl9";
};
patches = [

View File

@ -28,14 +28,14 @@
stdenv.mkDerivation rec {
pname = "rygel";
version = "0.38.0";
version = "0.38.1";
# TODO: split out lib
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "03ky18hwcz362lbhqm1zm0ax2a075r69xms5cznchn9p9w8z5axc";
sha256 = "1w8bi2rw91qyfny1zxhy32k4qn62hdjl2m38f75cp7wv6494d7w0";
};
nativeBuildInputs = [

View File

@ -347,7 +347,7 @@ lib.makeScope pkgs.newScope (self: with self; {
pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
gtkhtml = callPackage ./misc/gtkhtml { };
gtkhtml = callPackage ./misc/gtkhtml { enchant = pkgs.enchant1; };
pomodoro = callPackage ./misc/pomodoro { };

View File

@ -1,8 +1,8 @@
{ stdenv
, fetchurl
, fetchpatch
, vala_0_42
, intltool
, vala
, gettext
, pkgconfig
, gtk3
, glib
@ -24,34 +24,35 @@
, meson
, ninja
, python3
, hicolor-icon-theme
, libdazzle
}:
stdenv.mkDerivation rec {
pname = "gitg";
version = "3.30.1";
version = "3.32.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1fz8q1aiql6k740savdjh0vzbyhcflgf94cfdhvzcrrvm929n2ss";
sha256 = "1wzsv7bh0a2w70f938hkpzbb9xkyrp3bil65c0q3yf2v72nbbn81";
};
patches = [
# Fix build with latest libgit2-glib
# https://gitlab.gnome.org/GNOME/gitg/issues/213
(fetchpatch {
url = https://gitlab.gnome.org/GNOME/gitg/commit/42bceea265f53fe7fd4a41037b936deed975fc6c.patch;
sha256 = "1xq245rsi1bi66lswk33pdiazfaagxf77836ds5q73900rx4r7fw";
url = "https://gitlab.gnome.org/GNOME/gitg/merge_requests/83.patch";
sha256 = "1f7wx1d3k5pnp8zbrqssip57b9jxn3hc7a83psm7fny970qmd18z";
})
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py
substituteInPlace tests/libgitg/test-commit.vala --replace "/bin/bash" "${bash}/bin/bash"
'';
doCheck = false; # FAIL: tests-gitg gtk_style_context_add_provider_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
doCheck = true;
enableParallelBuilding = true;
@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
gtksourceview
gtkspell3
json-glib
libdazzle
libgee
libgit2-glib
libpeas
@ -72,12 +74,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
gobject-introspection
intltool
hicolor-icon-theme
gettext
meson
ninja
pkgconfig
python3
vala_0_42 # fails build with 0.44, drop in >3.30.1
vala
wrapGAppsHook
];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, gtk3, intltool
{ stdenv, fetchurl, pkgconfig, gtk3, intltool, fetchpatch
, gnome3, enchant, isocodes, gsettings-desktop-schemas }:
stdenv.mkDerivation rec {

View File

@ -1,4 +1,4 @@
{ stdenv, lib, writeScript, python3, common-updater-scripts, coreutils, gnugrep, gnused }:
{ stdenv, lib, writeScript, python3, common-updater-scripts }:
{ packageName, attrPath ? packageName, versionPolicy ? "odd-unstable" }:
let
@ -9,7 +9,7 @@ let
package_name="$1"
attr_path="$2"
version_policy="$3"
PATH=${lib.makeBinPath [ common-updater-scripts coreutils gnugrep gnused python ]}
PATH=${lib.makeBinPath [ common-updater-scripts python ]}
latest_tag=$(python "${./find-latest-version.py}" "$package_name" "$version_policy" "stable")
update-source-version "$attr_path" "$latest_tag"
'';

View File

@ -173,16 +173,11 @@ stdenv.mkDerivation rec {
"USE_SYSTEM_ZLIB=1"
];
NIX_CFLAGS_COMPILE = [ "-fPIC" ];
LD_LIBRARY_PATH = makeLibraryPath [
arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
openspecfun pcre2
];
dontStrip = true;
dontPatchELF = true;
enableParallelBuilding = true;
doCheck = !stdenv.isDarwin;

View File

@ -1,8 +1,8 @@
import ./generic.nix {
major_version = "4";
minor_version = "08";
patch_version = "0+beta3";
sha256 = "02pk4bxrgqb12hvpbxyqnl4nwr4g2h96wsfzfd1k8vj8h0jmxzc4";
patch_version = "0+rc1";
sha256 = "014yincnkfg0j2jy0cn30l5hb1y4sf2qf1gy9ix9ghgn32iw5ndk";
# If the executable is stripped it does not work
dontStrip = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, zlib, gmp, ncurses5, lib }:
{ stdenv, pkgs, fetchurl, zlib, gmp, ncurses5, lib }:
# from justinwoo/easy-purescript-nix
# https://github.com/justinwoo/easy-purescript-nix/blob/d383972c82620a712ead4033db14110497bc2c9c/purs.nix
@ -18,19 +18,19 @@ let
in stdenv.mkDerivation rec {
pname = "purescript";
version = "0.12.5";
version = "0.13.0";
src =
if stdenv.isDarwin
then
fetchurl {
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
sha256 = "15j9lkrl15dicx37bmh0199b3qdixig7w24wvdzi20jqbacz8nkn";
sha256 = "0xpisy38gj6fgyyzm6fdl0v819dhjmil4634xxangvhvs7jf5il0";
}
else
fetchurl {
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
sha256 = "07dva5gxq77g787krscv4dsz5088fzkvpmm9fwxw9a59jszzs7kq";
sha256 = "06g5q69yv6c3alq9vr8zjqqzamlii7xf6vj9j52akjq5lww214ba";
};
@ -50,6 +50,11 @@ in stdenv.mkDerivation rec {
mkdir -p $out/etc/bash_completion.d/
$PURS --bash-completion-script $PURS > $out/etc/bash_completion.d/purs-completion.bash
'';
passthru.tests = {
minimal-module = pkgs.callPackage ./test-minimal-module {};
};
meta = with stdenv.lib; {
description = "A strongly-typed functional programming language that compiles to JavaScript";
homepage = http://www.purescript.org/;

View File

@ -0,0 +1,8 @@
"use strict"
exports.log = function (s) {
return function () {
console.log(s);
return {};
};
};

View File

@ -0,0 +1,9 @@
module Main where
foreign import data Effect :: Type -> Type
data Unit = Unit
foreign import log :: String -> Effect Unit
main :: Effect Unit
main = log "hello world"

View File

@ -0,0 +1,11 @@
{ runCommand, purescript, nodejs }:
runCommand "purescript-test-minimal-module" {} ''
${purescript}/bin/purs compile -o ./output ${./.}/Main.purs
echo 'require("./output/Main/index.js").main()' > node.js
${nodejs}/bin/node node.js | grep "hello world" || echo "did not output hello world"
touch $out
''

View File

@ -5,12 +5,14 @@ with builtins // stdenv.lib;
let
# sha256 of released mathcomp versions
mathcomp-sha256 = {
"1.9.0" = "0lid9zaazdi3d38l8042lczb02pw5m9wq0yysiilx891hgq2p81r";
"1.8.0" = "07l40is389ih8bi525gpqs3qp4yb2kl11r9c8ynk1ifpjzpnabwp";
"1.7.0" = "0wnhj9nqpx2bw6n1l4i8jgrw3pjajvckvj3lr4vzjb3my2lbxdd1";
"1.6.1" = "1ilw6vm4dlsdv9cd7kmf0vfrh2kkzr45wrqr8m37miy0byzr4p9i";
};
# versions of coq compatible with released mathcomp versions
mathcomp-coq-versions = {
"1.9.0" = flip elem ["8.7" "8.8" "8.9" "8.10"];
"1.8.0" = flip elem ["8.7" "8.8" "8.9"];
"1.7.0" = flip elem ["8.6" "8.7" "8.8" "8.9"];
"1.6.1" = flip elem ["8.5"];
@ -56,20 +58,22 @@ let
echo "-I ." >> Make
echo "-R . mathcomp.all" >> Make
'';
is-released = builtins.isString mathcomp-version;
custom-version = if is-released then mathcomp-version else "custom";
# the base set of attributes for mathcomp
attrs = rec {
name = "coq${coq.coq-version}-${pkgname}-${mathcomp-version}";
name = "coq${coq.coq-version}-${pkgname}-${custom-version}";
# used in ssreflect
version = mathcomp-version;
version = custom-version;
src = fetchFromGitHub {
src = if is-released then fetchFromGitHub {
owner = "math-comp";
repo = "math-comp";
rev = "mathcomp-${mathcomp-version}";
sha256 = mathcomp-sha256.${mathcomp-version};
};
} else mathcomp-version;
nativeBuildInputs = optionals withDoc [ graphviz ];
buildInputs = [ ncurses which ] ++ (with coq.ocamlPackages; [ ocaml findlib camlp5 ]);
@ -117,6 +121,7 @@ getAttrOr = a: n: a."${n}" or (throw a.error);
mathcompCorePkgs_1_7 = mathcompGen "1.7.0";
mathcompCorePkgs_1_8 = mathcompGen "1.8.0";
mathcompCorePkgs_1_9 = mathcompGen "1.9.0";
mathcompCorePkgs = recurseIntoAttrs
(mapDerivationAttrset dontDistribute (mathcompGen default-mathcomp-version));
@ -126,6 +131,7 @@ in rec {
inherit mathcompGenSingle;
mathcomp_1_7_single = getAttrOr (mathcompGenSingle "1.7.0") "single";
mathcomp_1_8_single = getAttrOr (mathcompGenSingle "1.8.0") "single";
mathcomp_1_9_single = getAttrOr (mathcompGenSingle "1.9.0") "single";
mathcomp_single = dontDistribute
(getAttrOr (mathcompGenSingle default-mathcomp-version) "single");
@ -133,15 +139,19 @@ mathcomp_single = dontDistribute
# generates an attribute set {ssreflect = <drv>; ... character = <drv>; all = <drv>;}.
# each of these have a special attribute overrideMathcomp which
# must be used instead of overrideAttrs in order to also fix the dependencies
inherit mathcompGen mathcompCorePkgs_1_7 mathcompCorePkgs_1_8 mathcompCorePkgs;
inherit mathcompGen mathcompCorePkgs
mathcompCorePkgs_1_7 mathcompCorePkgs_1_8 mathcompCorePkgs_1_9;
mathcomp = getAttrOr mathcompCorePkgs "all";
mathcomp_1_7 = getAttrOr mathcompCorePkgs_1_7 "all";
mathcomp_1_8 = getAttrOr mathcompCorePkgs_1_8 "all";
mathcomp = getAttrOr mathcompCorePkgs "all";
mathcomp_1_9 = getAttrOr mathcompCorePkgs_1_9 "all";
ssreflect = getAttrOr mathcompCorePkgs "ssreflect";
ssreflect = getAttrOr mathcompCorePkgs "ssreflect";
} //
(mapAttrs' (n: pkg: {name = "mathcomp-${n}"; value = pkg;}) mathcompCorePkgs) //
(mapAttrs' (n: pkg: {name = "mathcomp-${n}_1_7"; value = pkg;}) mathcompCorePkgs_1_7) //
(mapAttrs' (n: pkg: {name = "mathcomp-${n}_1_8"; value = pkg;}) mathcompCorePkgs_1_8)
(mapAttrs' (n: pkg: {name = "mathcomp-${n}_1_8"; value = pkg;}) mathcompCorePkgs_1_8) //
(mapAttrs' (n: pkg: {name = "mathcomp-${n}_1_9"; value = pkg;}) mathcompCorePkgs_1_9)

View File

@ -7,6 +7,7 @@ let
param = {
finmap = {
version-sha256 = {
"1.2.1" = "0jryb5dq8js3imbmwrxignlk5zh8gwfb1wr4b1s7jbwz410vp7zf";
"1.2.0" = "0b6wrdr0d7rcnv86s37zm80540jl2wmiyf39ih7mw3dlwli2cyj4";
"1.1.0" = "05df59v3na8jhpsfp7hq3niam6asgcaipg2wngnzxzqnl86srp2a";
"1.0.0" = "0sah7k9qm8sw17cgd02f0x84hki8vj8kdz7h15i7rmz08rj0whpa";
@ -27,18 +28,42 @@ param = {
};
analysis = {
version-sha256 = {
"0.2.2" = "1d5dwg9di2ppdzfg21zr0a691zigb5kz0lcw263jpyli1nrq7cvk";
"0.2.0" = "1186xjxgns4ns1szyi931964bjm0mp126qzlv10mkqqgfw07nhrd";
"0.1.0" = "0hwkr2wzy710pcyh274fcarzdx8sv8myp16pv0vq5978nmih46al";
};
description = "Analysis library compatible with Mathematical Components";
};
real-closed = {
version-sha256 = {
"1.0.3" = "1xbzkzqgw5p42dx1liy6wy8lzdk39zwd6j14fwvv5735k660z7yb";
"1.0.2" = "0097pafwlmzd0gyfs31bxpi1ih04i72nxhn99r93aj20mn7mcsgl";
"1.0.1" = "0j81gkjbza5vg89v4n9z598mfdbql416963rj4b8fzm7dp2r4rxg";
};
description = "Mathematical Components Library on real closed fields";
};
};
versions = {
"1.8.0" = {
finmap.version = "1.2.0";
"1.9.0" = {
finmap.version = "1.2.1";
bigenough.version = "1.0.0";
analysis = {
version = "0.2.0";
version = "0.2.2";
core-deps = with coqPackages; [ mathcomp_1_9-field ];
extra-deps = with coqPackages; [ mathcomp_1_9-finmap mathcomp_1_9-bigenough ];
};
multinomials = {};
real-closed = {
version = "1.0.3";
core-deps = with coqPackages; [ mathcomp_1_9-field ];
extra-deps = with coqPackages; [ mathcomp_1_9-bigenough ];
};
};
"1.8.0" = {
finmap.version = "1.2.1";
bigenough.version = "1.0.0";
analysis = {
version = "0.2.2";
core-deps = with coqPackages; [ mathcomp_1_8-field ];
extra-deps = with coqPackages; [ mathcomp_1_8-finmap mathcomp_1_8-bigenough ];
};
@ -47,6 +72,11 @@ versions = {
core-deps = with coqPackages; [ mathcomp_1_8-algebra ];
extra-deps = with coqPackages; [ mathcomp_1_8-finmap mathcomp_1_8-bigenough ];
};
real-closed = {
version = "1.0.3";
core-deps = with coqPackages; [ mathcomp_1_8-field ];
extra-deps = with coqPackages; [ mathcomp_1_8-bigenough ];
};
};
"1.7.0" = {
finmap.version = "1.1.0";
@ -61,6 +91,11 @@ versions = {
core-deps = with coqPackages; [ mathcomp_1_7-algebra ];
extra-deps = with coqPackages; [ mathcomp_1_7-finmap_1_0 mathcomp_1_7-bigenough ];
};
real-closed = {
version = "1.0.1";
core-deps = with coqPackages; [ mathcomp_1_8-field ];
extra-deps = with coqPackages; [ mathcomp_1_8-bigenough ];
};
};
};
@ -71,12 +106,17 @@ packageGen = {
owner ? "math-comp",
core-deps ? [ coqPackages.mathcomp-ssreflect ],
extra-deps ? [],
coq-versions ? ["8.6" "8.7" "8.8" "8.9"],
mathcomp ? current-mathcomp,
compatibleCoqVersions ? null,
license ? mathcomp.meta.license,
# mandatory
package, version ? "broken", version-sha256, description
}:
let
theCompatibleCoqVersions = if compatibleCoqVersions == null
then mathcomp.compatibleCoqVersions
else compatibleCoqVersions;
in
{ "${package}" = let from = src; in
stdenv.mkDerivation rec {
@ -105,8 +145,8 @@ packageGen = {
passthru = {
inherit version-sha256;
compatibleCoqVersions = if meta.broken then _: false else
v: builtins.elem v coq-versions;
compatibleCoqVersions = if meta.broken then _: false
else theCompatibleCoqVersions;
};
};
};
@ -115,14 +155,16 @@ current-versions = versions."${current-mathcomp.version}" or {};
select = x: mapAttrs (n: pkg: {package = n;} // pkg) (recursiveUpdate param x);
all = (mapAttrs' (n: pkg:
{name = "mathcomp_1_7-${n}";
value = (packageGen ({mathcomp = coqPackages.mathcomp_1_7;} // pkg))."${n}";})
(select versions."1.7.0")) //
(mapAttrs' (n: pkg:
{name = "mathcomp_1_8-${n}";
value = (packageGen ({mathcomp = coqPackages.mathcomp_1_8;} // pkg))."${n}";})
(select versions."1.8.0")) //
for-version = v: suffix: (mapAttrs' (n: pkg:
{name = "mathcomp_${suffix}-${n}";
value = (packageGen ({
mathcomp = coqPackages."mathcomp_${suffix}";
} // pkg))."${n}";})
(select versions."${v}"));
all = (for-version "1.7.0" "1_7") //
(for-version "1.8.0" "1_8") //
(for-version "1.9.0" "1_9") //
(recurseIntoAttrs (mapDerivationAttrset dontDistribute (
mapAttrs' (n: pkg: {name = "mathcomp-${n}"; value = (packageGen pkg)."${n}";})
(select current-versions))));

View File

@ -1282,4 +1282,8 @@ self: super: {
ats-pkg = super.ats-pkg.override { dhall = self.dhall_1_23_0; };
dhall-to-cabal = super.dhall-to-cabal.override { dhall = self.dhall_1_23_0; };
# Test suite doesn't work with current QuickCheck
# https://github.com/pruvisto/heap/issues/11
heap = dontCheck super.heap;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View File

@ -5430,7 +5430,6 @@ broken-packages:
- hdr-histogram
- HDRUtils
- headergen
- heap
- heartbeat-streams
- heatitup
- heatitup-complete

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, clang, python, v8_static, coreutils }:
{ stdenv, fetchFromGitHub, cmake, clang, python, v8, coreutils }:
let
sexpr_wasm_prototype = stdenv.mkDerivation {
@ -45,7 +45,7 @@ stdenv.mkDerivation {
installPhase = ''
export DESTDIR=$out
export MKTEMPDIR=${coreutils}/bin
export D8DIR=${v8_static}/bin
export D8DIR=${v8}/bin
export SWDIR=${sexpr_wasm_prototype}/bin
make install
'';

View File

@ -22,6 +22,7 @@
, sourceVersion
, sha256
, passthruFun
, static ? false
}:
assert x11Support -> tcl != null
@ -164,7 +165,8 @@ let
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no"
++ optional static "LDFLAGS=-static";
buildInputs =
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++

View File

@ -2,18 +2,24 @@
stdenv.mkDerivation rec {
name = "cppzmq-${version}";
version = "4.2.3";
version = "4.3.0";
src = fetchFromGitHub {
owner = "zeromq";
repo = "cppzmq";
rev = "v${version}";
sha256 = "1yjs25ra5s8zs0rhk50w3f1rrrl80hhq784lwdhh1m3risk740sa";
sha256 = "1g45cdny1m08zw4l261bqcqfdb825mnwjwqcf35bkyc03fr4213l";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ zeromq ];
cmakeFlags = [
# Tests try to download googletest at compile time; there is no option
# to use a system one and no simple way to download it beforehand.
"-DCPPZMQ_BUILD_TESTS=OFF"
];
meta = with stdenv.lib; {
homepage = https://github.com/zeromq/cppzmq;
license = licenses.bsd2;

View File

@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
stdenv.mkDerivation rec {
pname = "croaring";
version = "0.2.61";
src = fetchFromGitHub {
owner = "RoaringBitmap";
repo = "CRoaring";
rev = "v${version}";
sha256 = "14y8iwv6b6gg7hgs00yqg8rwx4vwbb1zs2s99lxa51zx9vp1alcn";
};
patches = fetchpatch {
url = "https://github.com/RoaringBitmap/CRoaring/commit/8d8c60736f506b2b8f1c365148a8a541b26a55f2.patch";
sha256 = "1y2mbn4i8lj3lkn5s8zziyr9pl1fq9hndzz9c01dkv3s8sn7f55s";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "Compressed bitset library for C and C++";
homepage = http://roaringbitmap.org/;
license = licenses.asl20;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View File

@ -2,20 +2,24 @@
stdenv.mkDerivation rec {
name = "gbenchmark-${version}";
version = "1.4.1";
version = "1.5.0";
src = fetchFromGitHub {
owner = "google";
repo = "benchmark";
rev = "v${version}";
sha256 = "0l1f6azka85fkb8kdmh4qmmpxhsv7lr7wvll6sld31mfz0cai1kd";
sha256 = "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ gtest ];
postPatch = ''
cp -r ${gtest.src} googletest
chmod -R u+w googletest
'';
enableParallelBuilding = true;
doCheck = true;
meta = with stdenv.lib; {
description = "A microbenchmark support library";

View File

@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
"-Ddemo-agent=${if withDemoAgent then "true" else "false"}"
"--sysconfdir=/etc"
"-Dsysconfdir_install=${placeholder "out"}/etc"
"-Ddbus-srv-user=geoclue"
] ++ optionals stdenv.isDarwin [
"-D3g-source=false"
"-Dcdma-source=false"

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, gtk3, aspell, pkgconfig, enchant2, isocodes, intltool, gobject-introspection, vala}:
{stdenv, fetchurl, gtk3, aspell, pkgconfig, enchant, isocodes, intltool, gobject-introspection, vala}:
stdenv.mkDerivation rec {
name = "gtkspell-${version}";
@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkgconfig intltool gobject-introspection vala ];
buildInputs = [ aspell gtk3 enchant2 isocodes ];
propagatedBuildInputs = [ enchant2 ];
buildInputs = [ aspell gtk3 enchant isocodes ];
propagatedBuildInputs = [ enchant ];
configureFlags = [
"--enable-introspection"

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libebml";
version = "1.3.7";
version = "1.3.9";
src = fetchFromGitHub {
owner = "Matroska-Org";
repo = "libebml";
rev = "release-${version}";
sha256 = "0pdfl83nbbdddbxajx34srg4mcfcz8ca21qyvlnpw81hfnrhmjkv";
sha256 = "0q2xfabaymrf0xkhwc9akx6m04lgra2b53wcn9mnh5dqiiazizi7";
};
nativeBuildInputs = [ cmake pkgconfig ];

View File

@ -1,11 +1,12 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "libxls-1.4.0";
name = "libxls-${version}";
version = "1.5.1";
src = fetchurl {
url = "mirror://sourceforge/libxls/${name}.zip";
sha256 = "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk";
url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz";
sha256 = "0dam8qgbc5ykzaxmrjhpmfm8lnlcdk6cbpzyaya91qwwa80qbj1v";
};
nativeBuildInputs = [ unzip ];

View File

@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = true;
doCheck = !stdenv.isDarwin;
installFlags = [ "exampledir=\${out}/etc/pkcs11" ];

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, fetchpatch, libjpeg, zlib, perl }:
let version = "8.4.1";
let version = "8.4.2";
in
stdenv.mkDerivation rec {
name = "qpdf-${version}";
src = fetchurl {
url = "mirror://sourceforge/qpdf/qpdf/${version}/${name}.tar.gz";
sha256 = "1fsfy38dnm9cy1j40jw5x8vn84l6f2kgb68rdjl0wxignfw05z87";
sha256 = "1hrys6zmia8fw6f6ih3ckgsc1jr12fizdwaiy7dyd64kxxjhm8v9";
};
nativeBuildInputs = [ perl ];

View File

@ -33,6 +33,9 @@ qtModule {
enableParallelBuilding = true;
# Dont use the gn setup hook
dontUseGnConfigure = true;
# ninja builds some components with -Wno-format,
# which cannot be set at the same time as -Wformat-security
hardeningDisable = [ "format" ];

View File

@ -1,13 +1,13 @@
{ stdenv, fetchFromGitHub, qmake, qtwebkit, hunspell }:
stdenv.mkDerivation {
name = "qtwebkit-plugins-2015-05-09";
name = "qtwebkit-plugins-2017-01-25";
src = fetchFromGitHub {
owner = "QupZilla";
repo = "qtwebkit-plugins";
rev = "4e2e0402abd847346bec704be5305ba849eb754b";
sha256 = "0xyq25l56jgdxgqqv0380brhw9gg0hin5hyrf1j6d3c8k1gka20m";
rev = "b58ee9d5b31977491662aa4e8bee16404638bf14";
sha256 = "04wvlhdj45g1v1a3zl0pkf9r72i22h1br10lhhrgad7ypym974gw";
};
nativeBuildInputs = [ qmake ];

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "tpm2-tss";
version = "2.2.2";
version = "2.2.3";
src = fetchurl {
url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
sha256 = "0bbi1vpca5j7jbvy2z76jilpf5km5as1k37bkb2mwzmpibnypmf1";
sha256 = "1hwrka0g817a4d1177vv0z13gp66bxzxhflfxswjhcdk93kaws8k";
};
nativeBuildInputs = [

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