Merge branch 'master' into staging-next
Hydra nixpkgs: ?compare=1523575
This commit is contained in:
commit
576af17187
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"];
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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,
|
||||
|
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
275
nixos/modules/services/audio/jack.nix
Normal file
275
nixos/modules/services/audio/jack.nix
Normal 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 ];
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
'';
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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'");
|
||||
'';
|
||||
})
|
||||
|
|
44
pkgs/applications/altcoins/wasabiwallet/default.nix
Normal file
44
pkgs/applications/altcoins/wasabiwallet/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
{ stdenv, fetchurl, ... } @ args:
|
||||
|
||||
import ./generic.nix (args // {
|
||||
version = "1.4.111";
|
||||
sha256s = {
|
||||
"x86_64-linux" = "0bw3ds3ndcnkry5mpv645z2bfi5z387bh0f7b35blxq1yv93r83f";
|
||||
"i686-linux" = "1qwaj7l7nsd4afx7ksb4b1c22mki9qa40803v9x1a8bhbdfhkczk";
|
||||
};
|
||||
})
|
|
@ -1,9 +0,0 @@
|
|||
{ stdenv, fetchurl, ... } @ args:
|
||||
|
||||
import ./generic.nix (args // {
|
||||
version = "2.3.8";
|
||||
sha256s = {
|
||||
"x86_64-linux" = "02n5s561cz3mprg682mrbmh3qai42dh64jgi05rqy9s6wgbn66ly";
|
||||
"i686-linux" = "118qrnxc7gvm30rsz0xfx6dlxmrr0dk5ajrvszhy06ww7xvqhzji";
|
||||
};
|
||||
})
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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 .";
|
||||
|
|
|
@ -280,7 +280,7 @@ stdenv.mkDerivation rec {
|
|||
TZ=":" \
|
||||
\
|
||||
DISPLAY="\$DISPLAY" \
|
||||
XAUTHORITY="\$XAUTHORITY" \
|
||||
XAUTHORITY="\''${XAUTHORITY:-}" \
|
||||
DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
|
||||
\
|
||||
HOME="\$HOME" \
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
]
|
|
@ -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 = ''
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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' \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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'!"
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
24
pkgs/data/fonts/national-park/default.nix
Normal file
24
pkgs/data/fonts/national-park/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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 { };
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||
passthru = {
|
||||
updateScript = gnome3.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnom3.gnome-nettool";
|
||||
attrPath = "gnome3.${pname}";
|
||||
versionPolicy = "none";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 { };
|
||||
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchurl, pkgconfig, gtk3, intltool
|
||||
{ stdenv, fetchurl, pkgconfig, gtk3, intltool, fetchpatch
|
||||
, gnome3, enchant, isocodes, gsettings-desktop-schemas }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
|
|
@ -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"
|
||||
'';
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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/;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
"use strict"
|
||||
|
||||
exports.log = function (s) {
|
||||
return function () {
|
||||
console.log(s);
|
||||
return {};
|
||||
};
|
||||
};
|
|
@ -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"
|
|
@ -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
|
||||
''
|
|
@ -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)
|
||||
|
|
|
@ -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))));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -5430,7 +5430,6 @@ broken-packages:
|
|||
- hdr-histogram
|
||||
- HDRUtils
|
||||
- headergen
|
||||
- heap
|
||||
- heartbeat-streams
|
||||
- heatitup
|
||||
- heatitup-complete
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
|
|
|
@ -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 ++
|
||||
|
|
|
@ -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;
|
||||
|
|
28
pkgs/development/libraries/croaring/default.nix
Normal file
28
pkgs/development/libraries/croaring/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
doCheck = !stdenv.isDarwin;
|
||||
|
||||
installFlags = [ "exampledir=\${out}/etc/pkcs11" ];
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -33,6 +33,9 @@ qtModule {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Don’t 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" ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue