Merge branch 'staging-next' into staging
This commit is contained in:
commit
c0ccf42c69
@ -709,19 +709,16 @@ passthru.updateScript = writeScript "update-zoom-us" ''
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
|
passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
|
||||||
</programlisting>
|
</programlisting>
|
||||||
Note that the update scripts will be run in parallel by default; you
|
</para>
|
||||||
should avoid running <command>git commit</command> or any other commands
|
<para>
|
||||||
that cannot handle that.
|
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>
|
||||||
<para>
|
<para>
|
||||||
For information about how to run the updates, execute
|
For information about how to run the updates, execute
|
||||||
<cmdsynopsis>
|
<command>nix-shell maintainers/scripts/update.nix</command>.
|
||||||
<command>nix-shell</command>
|
|
||||||
<arg>
|
|
||||||
maintainers/scripts/update.nix
|
|
||||||
</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -50,7 +50,7 @@ let
|
|||||||
filesystem = callLibs ./filesystem.nix;
|
filesystem = callLibs ./filesystem.nix;
|
||||||
|
|
||||||
# back-compat aliases
|
# back-compat aliases
|
||||||
platforms = systems.forMeta;
|
platforms = systems.doubles;
|
||||||
|
|
||||||
inherit (builtins) add addErrorContext attrNames concatLists
|
inherit (builtins) add addErrorContext attrNames concatLists
|
||||||
deepSeq elem elemAt filter genericClosure genList getAttr
|
deepSeq elem elemAt filter genericClosure genList getAttr
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
rec {
|
rec {
|
||||||
doubles = import ./doubles.nix { inherit lib; };
|
doubles = import ./doubles.nix { inherit lib; };
|
||||||
forMeta = import ./for-meta.nix { inherit lib; };
|
|
||||||
parse = import ./parse.nix { inherit lib; };
|
parse = import ./parse.nix { inherit lib; };
|
||||||
inspect = import ./inspect.nix { inherit lib; };
|
inspect = import ./inspect.nix { inherit lib; };
|
||||||
platforms = import ./platforms.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
|
# `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
|
# clearly prefered, and to prevent cycles. A simpler fixed point where the RHS
|
||||||
# always just used `final.*` would fail on both counts.
|
# 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 = {
|
final = {
|
||||||
# Prefer to parse `config` as it is strictly more informative.
|
# Prefer to parse `config` as it is strictly more informative.
|
||||||
parsed = parse.mkSystemFromString (if args ? config then args.config else args.system);
|
parsed = parse.mkSystemFromString (if args ? config then args.config else args.system);
|
||||||
|
@ -19,6 +19,12 @@ let
|
|||||||
"x86_64-windows" "i686-windows"
|
"x86_64-windows" "i686-windows"
|
||||||
|
|
||||||
"wasm64-wasi" "wasm32-wasi"
|
"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;
|
allParsed = map parse.mkSystemFromString all;
|
||||||
@ -36,6 +42,7 @@ in rec {
|
|||||||
i686 = filterDoubles predicates.isi686;
|
i686 = filterDoubles predicates.isi686;
|
||||||
x86_64 = filterDoubles predicates.isx86_64;
|
x86_64 = filterDoubles predicates.isx86_64;
|
||||||
mips = filterDoubles predicates.isMips;
|
mips = filterDoubles predicates.isMips;
|
||||||
|
riscv = filterDoubles predicates.isRiscV;
|
||||||
|
|
||||||
cygwin = filterDoubles predicates.isCygwin;
|
cygwin = filterDoubles predicates.isCygwin;
|
||||||
darwin = filterDoubles predicates.isDarwin;
|
darwin = filterDoubles predicates.isDarwin;
|
||||||
@ -50,5 +57,7 @@ in rec {
|
|||||||
wasi = filterDoubles predicates.isWasi;
|
wasi = filterDoubles predicates.isWasi;
|
||||||
windows = filterDoubles predicates.isWindows;
|
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"];
|
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; };
|
isCygwin = { kernel = kernels.windows; abi = abis.cygnus; };
|
||||||
isMinGW = { kernel = kernels.windows; abi = abis.gnu; };
|
isMinGW = { kernel = kernels.windows; abi = abis.gnu; };
|
||||||
isWasi = { kernel = kernels.wasi; };
|
isWasi = { kernel = kernels.wasi; };
|
||||||
|
isNone = { kernel = kernels.none; };
|
||||||
|
|
||||||
isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ];
|
isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ];
|
||||||
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ];
|
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ];
|
||||||
|
@ -12,19 +12,19 @@ let
|
|||||||
expected = lib.sort lib.lessThan y;
|
expected = lib.sort lib.lessThan y;
|
||||||
};
|
};
|
||||||
in with lib.systems.doubles; lib.runTests {
|
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" ];
|
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" ];
|
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" ];
|
||||||
testmips = mseteq mips [ "mipsel-linux" ];
|
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" ];
|
testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
|
||||||
testdarwin = mseteq darwin [ "x86_64-darwin" ];
|
testdarwin = mseteq darwin [ "x86_64-darwin" ];
|
||||||
testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
|
testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
|
||||||
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
||||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
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" ];
|
testnetbsd = mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ];
|
||||||
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
||||||
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];
|
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
|
# nix name, luarocks name, server, version,luaversion
|
||||||
ansicolors,
|
ansicolors,,,,
|
||||||
argparse,
|
argparse,,,,
|
||||||
basexx,
|
basexx,,,,
|
||||||
binaryheap,
|
binaryheap,,,,
|
||||||
dkjson
|
digestif,,http://luarocks.org/dev,,lua5_3
|
||||||
fifo
|
dkjson,,,,
|
||||||
http
|
fifo,,,,
|
||||||
inspect
|
http,,,,
|
||||||
ldoc
|
inspect,,,,
|
||||||
lgi
|
ldoc,,,,
|
||||||
lpeg_patterns
|
lgi,,,,
|
||||||
lpty
|
lpeg_patterns,,,,
|
||||||
lrexlib-gnu,
|
lpeglabel,,,,
|
||||||
lrexlib-posix,
|
lpty,,,,
|
||||||
ltermbox,
|
lrexlib-gnu,,,,
|
||||||
lua-cmsgpack,
|
lrexlib-posix,,,,
|
||||||
lua_cliargs,
|
ltermbox,,,,
|
||||||
lua-iconv,
|
lua-cmsgpack,,,,
|
||||||
lua-messagepack,
|
lua_cliargs,,,,
|
||||||
lua-term,
|
lua-iconv,,,,
|
||||||
lua-toml,
|
lua-lsp,,http://luarocks.org/dev,,
|
||||||
luabitop,
|
lua-messagepack,,,,
|
||||||
luaevent,
|
lua-term,,,,
|
||||||
luacheck
|
lua-toml,,,,
|
||||||
luaffi,,http://luarocks.org/dev,
|
luabitop,,,,
|
||||||
luuid,
|
luaevent,,,,
|
||||||
markdown,
|
luacheck,,,,
|
||||||
penlight,
|
luaffi,,http://luarocks.org/dev,,
|
||||||
rapidjson,
|
luuid,,,,
|
||||||
say,
|
markdown,,,,
|
||||||
std__debug,std._debug,
|
penlight,,,,
|
||||||
std_normalize,std.normalize,
|
rapidjson,,,,
|
||||||
luv,
|
say,,,,
|
||||||
luasystem,
|
std__debug,std._debug,,,
|
||||||
mediator_lua,,http://luarocks.org/manifests/teto
|
std_normalize,std.normalize,,,
|
||||||
mpack,,http://luarocks.org/manifests/teto
|
luv,,,,
|
||||||
nvim-client,,http://luarocks.org/manifests/teto
|
luasystem,,,,
|
||||||
busted,,http://luarocks.org/manifests/teto
|
mediator_lua,,http://luarocks.org/manifests/teto,,
|
||||||
luassert,,http://luarocks.org/manifests/teto
|
mpack,,http://luarocks.org/manifests/teto,,
|
||||||
coxpcall,,https://luarocks.org/manifests/hisham,1.17.0-1
|
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
|
# stop the script upon C-C
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
|
||||||
if [ $# -lt 1 ]; then
|
|
||||||
print_help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CSV_FILE="maintainers/scripts/luarocks-packages.csv"
|
CSV_FILE="maintainers/scripts/luarocks-packages.csv"
|
||||||
TMP_FILE="$(mktemp)"
|
TMP_FILE="$(mktemp)"
|
||||||
|
|
||||||
@ -25,16 +20,21 @@ exit_trap()
|
|||||||
local lc="$BASH_COMMAND" rc=$?
|
local lc="$BASH_COMMAND" rc=$?
|
||||||
test $rc -eq 0 || echo -e "*** error $rc: $lc.\nGenerated temporary file in $TMP_FILE" >&2
|
test $rc -eq 0 || echo -e "*** error $rc: $lc.\nGenerated temporary file in $TMP_FILE" >&2
|
||||||
}
|
}
|
||||||
trap exit_trap EXIT
|
|
||||||
|
|
||||||
print_help() {
|
print_help() {
|
||||||
echo "Usage: $0 <GENERATED_FILE>"
|
echo "Usage: $0 <GENERATED_FILE>"
|
||||||
echo "(most likely pkgs/development/lua-modules/generated-packages.nix)"
|
echo "(most likely pkgs/development/lua-modules/generated-packages.nix)"
|
||||||
echo ""
|
echo ""
|
||||||
echo " -c <CSV_FILE> to set the list of luarocks package to generate"
|
echo " -c <CSV_FILE> to set the list of luarocks package to generate"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap exit_trap EXIT
|
||||||
|
|
||||||
while getopts ":hc:" opt; do
|
while getopts ":hc:" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
@ -76,15 +76,16 @@ FOOTER="
|
|||||||
function convert_pkg () {
|
function convert_pkg () {
|
||||||
nix_pkg_name="$1"
|
nix_pkg_name="$1"
|
||||||
lua_pkg_name="$2"
|
lua_pkg_name="$2"
|
||||||
server="${3:+--server=$3}"
|
server="${3:+--only-server=$3}"
|
||||||
version="${4:-}"
|
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
|
echo "looking at $lua_pkg_name (version $pkg_version) from server [$server]" >&2
|
||||||
cmd="luarocks nix $server $lua_pkg_name $version"
|
cmd="luarocks nix $server $lua_version $lua_pkg_name $pkg_version"
|
||||||
|
echo "Running $cmd" >&2
|
||||||
drv="$nix_pkg_name = $($cmd)"
|
drv="$nix_pkg_name = $($cmd)"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Failed to convert $pkg" >&2
|
echo "Failed to convert $pkg" >&2
|
||||||
echo "$drv" >&2
|
|
||||||
else
|
else
|
||||||
echo "$drv" | tee -a "$TMP_FILE"
|
echo "$drv" | tee -a "$TMP_FILE"
|
||||||
fi
|
fi
|
||||||
@ -94,8 +95,7 @@ function convert_pkg () {
|
|||||||
echo "$HEADER" | tee "$TMP_FILE"
|
echo "$HEADER" | tee "$TMP_FILE"
|
||||||
|
|
||||||
# list of packages with format
|
# list of packages with format
|
||||||
# name,server,version
|
while IFS=, read -r nix_pkg_name lua_pkg_name server pkg_version luaversion
|
||||||
while IFS=, read -r nix_pkg_name lua_pkg_name server version
|
|
||||||
do
|
do
|
||||||
if [ "${nix_pkg_name:0:1}" == "#" ]; then
|
if [ "${nix_pkg_name:0:1}" == "#" ]; then
|
||||||
echo "Skipping comment ${nix_pkg_name}" >&2
|
echo "Skipping comment ${nix_pkg_name}" >&2
|
||||||
@ -105,7 +105,7 @@ do
|
|||||||
echo "Using nix_name as lua_pkg_name" >&2
|
echo "Using nix_name as lua_pkg_name" >&2
|
||||||
lua_pkg_name="$nix_pkg_name"
|
lua_pkg_name="$nix_pkg_name"
|
||||||
fi
|
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"
|
done < "$CSV_FILE"
|
||||||
|
|
||||||
# close the set
|
# close the set
|
||||||
|
@ -20,7 +20,9 @@ let
|
|||||||
in
|
in
|
||||||
[x] ++ nubOn f xs;
|
[x] ++ nubOn f xs;
|
||||||
|
|
||||||
pkgs = import ./../../default.nix { };
|
pkgs = import ./../../default.nix {
|
||||||
|
overlays = [];
|
||||||
|
};
|
||||||
|
|
||||||
packagesWith = cond: return: set:
|
packagesWith = cond: return: set:
|
||||||
nubOn (pkg: pkg.updateScript)
|
nubOn (pkg: pkg.updateScript)
|
||||||
@ -67,9 +69,12 @@ let
|
|||||||
let
|
let
|
||||||
attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." path) null pkgs;
|
attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." path) null pkgs;
|
||||||
in
|
in
|
||||||
packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg)
|
if attrSet == null then
|
||||||
(name: pkg: pkg)
|
builtins.throw "Attribute path `${path}` does not exists."
|
||||||
attrSet;
|
else
|
||||||
|
packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg)
|
||||||
|
(name: pkg: pkg)
|
||||||
|
attrSet;
|
||||||
|
|
||||||
packageByName = name:
|
packageByName = name:
|
||||||
let
|
let
|
||||||
@ -122,9 +127,17 @@ let
|
|||||||
packageData = package: {
|
packageData = package: {
|
||||||
name = package.name;
|
name = package.name;
|
||||||
pname = (builtins.parseDrvName package.name).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 {
|
in pkgs.stdenv.mkDerivation {
|
||||||
name = "nixpkgs-update-script";
|
name = "nixpkgs-update-script";
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
@ -139,6 +152,6 @@ in pkgs.stdenv.mkDerivation {
|
|||||||
'';
|
'';
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
unset shellHook # do not contaminate nested shells
|
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>
|
</link>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The limesurvey apache subservice was replaced with a full NixOS module.
|
The limesurvey apache subservice was replaced with a full NixOS module.
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
#notbit = 111; # unused
|
#notbit = 111; # unused
|
||||||
aerospike = 111;
|
aerospike = 111;
|
||||||
ngircd = 112;
|
ngircd = 112;
|
||||||
btsync = 113;
|
#btsync = 113; # unused
|
||||||
minecraft = 114;
|
minecraft = 114;
|
||||||
vault = 115;
|
vault = 115;
|
||||||
rippled = 116;
|
rippled = 116;
|
||||||
@ -457,7 +457,7 @@
|
|||||||
#notbit = 111; # unused
|
#notbit = 111; # unused
|
||||||
aerospike = 111;
|
aerospike = 111;
|
||||||
#ngircd = 112; # unused
|
#ngircd = 112; # unused
|
||||||
btsync = 113;
|
#btsync = 113; # unused
|
||||||
#minecraft = 114; # unused
|
#minecraft = 114; # unused
|
||||||
vault = 115;
|
vault = 115;
|
||||||
#ripped = 116; # unused
|
#ripped = 116; # unused
|
||||||
|
@ -184,6 +184,7 @@
|
|||||||
./services/amqp/activemq/default.nix
|
./services/amqp/activemq/default.nix
|
||||||
./services/amqp/rabbitmq.nix
|
./services/amqp/rabbitmq.nix
|
||||||
./services/audio/alsa.nix
|
./services/audio/alsa.nix
|
||||||
|
./services/audio/jack.nix
|
||||||
./services/audio/icecast.nix
|
./services/audio/icecast.nix
|
||||||
./services/audio/liquidsoap.nix
|
./services/audio/liquidsoap.nix
|
||||||
./services/audio/mpd.nix
|
./services/audio/mpd.nix
|
||||||
@ -542,7 +543,6 @@
|
|||||||
./services/networking/autossh.nix
|
./services/networking/autossh.nix
|
||||||
./services/networking/bird.nix
|
./services/networking/bird.nix
|
||||||
./services/networking/bitlbee.nix
|
./services/networking/bitlbee.nix
|
||||||
./services/networking/btsync.nix
|
|
||||||
./services/networking/charybdis.nix
|
./services/networking/charybdis.nix
|
||||||
./services/networking/chrony.nix
|
./services/networking/chrony.nix
|
||||||
./services/networking/cjdns.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 ];
|
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
|
# restart geoclue service when the configuration changes
|
||||||
systemd.services."geoclue".restartTriggers = [
|
systemd.services."geoclue".restartTriggers = [
|
||||||
config.environment.etc."geoclue/geoclue.conf".source
|
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
|
# git clone https://github.com/strongswan/strongswan.git
|
||||||
# cd strongswan
|
# 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);
|
lib: with (import ./param-constructors.nix lib);
|
||||||
|
|
||||||
@ -227,6 +227,22 @@ in {
|
|||||||
irrespective of the value of this option (even when set to no).
|
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_certreq = mkYesNoParam yes ''
|
||||||
Send certificate request payloads to offer trusted root CA certificates to
|
Send certificate request payloads to offer trusted root CA certificates to
|
||||||
the peer. Certificate requests help the peer to choose an appropriate
|
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.
|
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 ''
|
mediation = mkYesNoParam no ''
|
||||||
Whether this connection is a mediation connection, that is, whether this
|
Whether this connection is a mediation connection, that is, whether this
|
||||||
connection is used to mediate other connections using the IKEv2 Mediation
|
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.
|
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.
|
Hostaccess variable to pass to <literal>updown</literal> script.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -960,6 +986,26 @@ in {
|
|||||||
mask requires at least Linux 4.19.
|
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 ''
|
tfc_padding = mkParamOfType (with lib.types; either int (enum ["mtu"])) 0 ''
|
||||||
Pads ESP packets with additional data to have a consistent ESP packet
|
Pads ESP packets with additional data to have a consistent ESP packet
|
||||||
size for improved Traffic Flow Confidentiality. The padding defines the
|
size for improved Traffic Flow Confidentiality. The padding defines the
|
||||||
|
@ -20,7 +20,13 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
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
|
# so polkit will pick up the rules
|
||||||
environment.systemPackages = [ pkgs.localtime ];
|
environment.systemPackages = [ pkgs.localtime ];
|
||||||
|
@ -5,8 +5,33 @@ with lib;
|
|||||||
let
|
let
|
||||||
cfg = config.services.deluge;
|
cfg = config.services.deluge;
|
||||||
cfg_web = config.services.deluge.web;
|
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 {
|
in {
|
||||||
options = {
|
options = {
|
||||||
services = {
|
services = {
|
||||||
@ -15,42 +40,151 @@ in {
|
|||||||
|
|
||||||
openFilesLimit = mkOption {
|
openFilesLimit = mkOption {
|
||||||
default = openFilesLimit;
|
default = openFilesLimit;
|
||||||
example = 8192;
|
|
||||||
description = ''
|
description = ''
|
||||||
Number of files to allow deluged to open.
|
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 {
|
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 = {
|
systemd.services.deluged = {
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
description = "Deluge BitTorrent Daemon";
|
description = "Deluge BitTorrent Daemon";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.deluge ];
|
path = [ pkgs.deluge ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.deluge}/bin/deluged -d";
|
ExecStart = ''
|
||||||
# To prevent "Quit & shutdown daemon" from working; we want systemd to manage it!
|
${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";
|
Restart = "on-success";
|
||||||
User = "deluge";
|
User = "deluge";
|
||||||
Group = "deluge";
|
Group = "deluge";
|
||||||
|
UMask = "0002";
|
||||||
LimitNOFILE = cfg.openFilesLimit;
|
LimitNOFILE = cfg.openFilesLimit;
|
||||||
};
|
};
|
||||||
|
preStart = preStart;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.delugeweb = mkIf cfg_web.enable {
|
systemd.services.delugeweb = mkIf cfg_web.enable {
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" "deluged.service"];
|
||||||
|
requires = [ "deluged.service" ];
|
||||||
description = "Deluge BitTorrent WebUI";
|
description = "Deluge BitTorrent WebUI";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.deluge ];
|
path = [ pkgs.deluge ];
|
||||||
serviceConfig.ExecStart = "${pkgs.deluge}/bin/deluge --ui web";
|
serviceConfig = {
|
||||||
serviceConfig.User = "deluge";
|
ExecStart = ''
|
||||||
serviceConfig.Group = "deluge";
|
${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 ];
|
environment.systemPackages = [ pkgs.deluge ];
|
||||||
@ -58,7 +192,7 @@ in {
|
|||||||
users.users.deluge = {
|
users.users.deluge = {
|
||||||
group = "deluge";
|
group = "deluge";
|
||||||
uid = config.ids.uids.deluge;
|
uid = config.ids.uids.deluge;
|
||||||
home = "/var/lib/deluge/";
|
home = cfg.dataDir;
|
||||||
createHome = true;
|
createHome = true;
|
||||||
description = "Deluge Daemon user";
|
description = "Deluge Daemon user";
|
||||||
};
|
};
|
||||||
|
@ -7,10 +7,19 @@ let
|
|||||||
|
|
||||||
cfg = config.services.compton;
|
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;
|
floatBetween = a: b: with lib; with types;
|
||||||
addCheck str (x: versionAtLeast x a && versionOlder x b);
|
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)
|
opacityRules = optionalString (length cfg.opacityRules != 0)
|
||||||
(concatMapStringsSep ",\n" (rule: ''"${rule}"'') cfg.opacityRules);
|
(concatMapStringsSep ",\n" (rule: ''"${rule}"'') cfg.opacityRules);
|
||||||
@ -23,8 +32,7 @@ let
|
|||||||
fade-in-step = ${elemAt cfg.fadeSteps 0};
|
fade-in-step = ${elemAt cfg.fadeSteps 0};
|
||||||
fade-out-step = ${elemAt cfg.fadeSteps 1};
|
fade-out-step = ${elemAt cfg.fadeSteps 1};
|
||||||
fade-exclude = ${toJSON cfg.fadeExclude};
|
fade-exclude = ${toJSON cfg.fadeExclude};
|
||||||
'' +
|
'' + optionalString cfg.shadow ''
|
||||||
optionalString cfg.shadow ''
|
|
||||||
|
|
||||||
# shadows
|
# shadows
|
||||||
shadow = true;
|
shadow = true;
|
||||||
@ -39,10 +47,7 @@ let
|
|||||||
inactive-opacity = ${cfg.inactiveOpacity};
|
inactive-opacity = ${cfg.inactiveOpacity};
|
||||||
|
|
||||||
wintypes:
|
wintypes:
|
||||||
{
|
${literalAttrs cfg.wintypes};
|
||||||
popup_menu = { opacity = ${cfg.menuOpacity}; }
|
|
||||||
dropdown_menu = { opacity = ${cfg.menuOpacity}; }
|
|
||||||
};
|
|
||||||
|
|
||||||
opacity-rule = [
|
opacity-rule = [
|
||||||
${opacityRules}
|
${opacityRules}
|
||||||
@ -50,7 +55,7 @@ let
|
|||||||
|
|
||||||
# other options
|
# other options
|
||||||
backend = ${toJSON cfg.backend};
|
backend = ${toJSON cfg.backend};
|
||||||
vsync = ${lib.boolToString cfg.vSync};
|
vsync = ${boolToString cfg.vSync};
|
||||||
refresh-rate = ${toString cfg.refreshRate};
|
refresh-rate = ${toString cfg.refreshRate};
|
||||||
'' + cfg.extraOptions);
|
'' + cfg.extraOptions);
|
||||||
|
|
||||||
@ -98,7 +103,7 @@ in {
|
|||||||
example = [
|
example = [
|
||||||
"window_type *= 'menu'"
|
"window_type *= 'menu'"
|
||||||
"name ~= 'Firefox$'"
|
"name ~= 'Firefox$'"
|
||||||
"focused = 1"
|
"focused = 1"
|
||||||
];
|
];
|
||||||
description = ''
|
description = ''
|
||||||
List of conditions of windows that should not be faded.
|
List of conditions of windows that should not be faded.
|
||||||
@ -138,7 +143,7 @@ in {
|
|||||||
example = [
|
example = [
|
||||||
"window_type *= 'menu'"
|
"window_type *= 'menu'"
|
||||||
"name ~= 'Firefox$'"
|
"name ~= 'Firefox$'"
|
||||||
"focused = 1"
|
"focused = 1"
|
||||||
];
|
];
|
||||||
description = ''
|
description = ''
|
||||||
List of conditions of windows that should have no shadow.
|
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 {
|
opacityRules = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
@ -201,7 +215,7 @@ in {
|
|||||||
let
|
let
|
||||||
res = x != "none";
|
res = x != "none";
|
||||||
msg = "The type of services.compton.vSync has changed to bool:"
|
msg = "The type of services.compton.vSync has changed to bool:"
|
||||||
+ " interpreting ${x} as ${lib.boolToString res}";
|
+ " interpreting ${x} as ${boolToString res}";
|
||||||
in
|
in
|
||||||
if isBool x then x
|
if isBool x then x
|
||||||
else warn msg res;
|
else warn msg res;
|
||||||
|
@ -119,7 +119,13 @@ in {
|
|||||||
# needed so that .desktop files are installed, which geoclue cares about
|
# needed so that .desktop files are installed, which geoclue cares about
|
||||||
environment.systemPackages = [ cfg.package ];
|
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 =
|
systemd.user.services.redshift =
|
||||||
let
|
let
|
||||||
|
@ -360,6 +360,7 @@ in
|
|||||||
font = mkOption {
|
font = mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = "${realGrub}/share/grub/unicode.pf2";
|
default = "${realGrub}/share/grub/unicode.pf2";
|
||||||
|
defaultText = ''"''${pkgs.grub2}/share/grub/unicode.pf2"'';
|
||||||
description = ''
|
description = ''
|
||||||
Path to a TrueType, OpenType, or pf2 font to be used by Grub.
|
Path to a TrueType, OpenType, or pf2 font to be used by Grub.
|
||||||
'';
|
'';
|
||||||
|
@ -154,7 +154,7 @@ def remove_old_entries(gens):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
for path in glob.iglob("@efiSysMountPoint@/efi/nixos/*"):
|
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)
|
os.unlink(path)
|
||||||
|
|
||||||
def get_profiles():
|
def get_profiles():
|
||||||
|
@ -5,25 +5,56 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
server =
|
simple = {
|
||||||
|
services.deluge = {
|
||||||
|
enable = true;
|
||||||
|
web.enable = true;
|
||||||
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8112 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
declarative =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{ services.deluge = {
|
{
|
||||||
|
services.deluge = {
|
||||||
enable = true;
|
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 = ''
|
testScript = ''
|
||||||
startAll;
|
startAll;
|
||||||
|
|
||||||
$server->waitForUnit("deluged");
|
$simple->waitForUnit("deluged");
|
||||||
$server->waitForUnit("delugeweb");
|
$simple->waitForUnit("delugeweb");
|
||||||
$client->waitForUnit("network.target");
|
$simple->waitForOpenPort("8112");
|
||||||
$client->waitUntilSucceeds("curl --fail http://server: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, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.5.7";
|
version = "0.5.8";
|
||||||
name = "qjackctl-${version}";
|
name = "qjackctl-${version}";
|
||||||
|
|
||||||
# some dependencies such as killall have to be installed additionally
|
# some dependencies such as killall have to be installed additionally
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
|
url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
|
||||||
sha256 = "1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95";
|
sha256 = "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "reaper-${version}";
|
name = "reaper-${version}";
|
||||||
version = "5.974";
|
version = "5.978";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
|
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 ];
|
nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
|
||||||
|
@ -59,11 +59,11 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "drawpile-${version}";
|
name = "drawpile-${version}";
|
||||||
version = "2.1.8";
|
version = "2.1.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
|
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
|
||||||
sha256 = "1gm58zb7nh9h6v0i5pr49sfi17piik5jj757nhl0wrd10nwkipn5";
|
sha256 = "074lp5z5kh6qwar3y4ik7gma5mdgafdsb50q425xcd3pv00gy0hm";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "3.42.0";
|
version = "3.44.0";
|
||||||
name = "calibre-${version}";
|
name = "calibre-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||||
sha256 = "0ymdhws3cb44p3fb24vln1wx6s7qnb8rr241jvm6qbj5rnp984dm";
|
sha256 = "13d3cbn8qbjd8a19qprra6gmib1d818c3zgf3q70kx6b2fq58lzi";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -31,7 +31,7 @@ let
|
|||||||
graphite2 gtk2 gtk3 udev ncurses wayland libglvnd vulkan-loader
|
graphite2 gtk2 gtk3 udev ncurses wayland libglvnd vulkan-loader
|
||||||
|
|
||||||
# Lutris
|
# 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
|
# Adventure Game Studio
|
||||||
allegro dumb
|
allegro dumb
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
|
|
||||||
# DOSBox
|
# DOSBox
|
||||||
SDL_net SDL_sound
|
SDL_net SDL_sound
|
||||||
|
|
||||||
# GOG
|
# GOG
|
||||||
glib-networking
|
glib-networking
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "urlscan";
|
pname = "urlscan";
|
||||||
version = "0.9.2";
|
version = "0.9.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "firecat53";
|
owner = "firecat53";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "16cc1vvvhylrl9208d253k11rqzi95mg7hrf7xbd0bqxvd6rmxar";
|
sha256 = "0z24k8sk2zfp2pwysyp844vmhr5vbkj74frwy4i0v5pj60i9jl0v";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ python3Packages.urwid ];
|
propagatedBuildInputs = [ python3Packages.urwid ];
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "xterm-345";
|
name = "xterm-346";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
urls = [
|
urls = [
|
||||||
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
|
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
|
||||||
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
|
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
|
||||||
];
|
];
|
||||||
sha256 = "0dfmy9vgpmxi8rsnv2lb2lmq5ny26f0pjhcj348l0d3rs61afjb6";
|
sha256 = "0xwamhawgh77q2nlibciv77hznirwhnbs3r52rl4sdaqq1rpscng";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
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
|
let
|
||||||
|
|
||||||
mirror = https://get.geo.opera.com/pub/opera/desktop;
|
mirror = https://get.geo.opera.com/pub/opera/desktop;
|
||||||
version = "58.0.3135.127";
|
version = "60.0.3255.109";
|
||||||
|
|
||||||
rpath = stdenv.lib.makeLibraryPath [
|
rpath = stdenv.lib.makeLibraryPath [
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${mirror}/${version}/linux/opera-stable_${version}_amd64.deb";
|
url = "${mirror}/${version}/linux/opera-stable_${version}_amd64.deb";
|
||||||
sha256 = "1nk4zfmb2dv464r1q6n9b66zg7a8h5xfwypzqd791rhmsfjrxn51";
|
sha256 = "0y3cjjzp41pa15sw8bp7n5ab8j8b1kk5h11b4pl6w8spsyk2cpqh";
|
||||||
};
|
};
|
||||||
|
|
||||||
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
|
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
|
||||||
|
@ -280,7 +280,7 @@ stdenv.mkDerivation rec {
|
|||||||
TZ=":" \
|
TZ=":" \
|
||||||
\
|
\
|
||||||
DISPLAY="\$DISPLAY" \
|
DISPLAY="\$DISPLAY" \
|
||||||
XAUTHORITY="\$XAUTHORITY" \
|
XAUTHORITY="\''${XAUTHORITY:-}" \
|
||||||
DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
|
DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
|
||||||
\
|
\
|
||||||
HOME="\$HOME" \
|
HOME="\$HOME" \
|
||||||
|
@ -15,13 +15,13 @@ with lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "kubernetes-${version}";
|
name = "kubernetes-${version}";
|
||||||
version = "1.14.1";
|
version = "1.14.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kubernetes";
|
owner = "kubernetes";
|
||||||
repo = "kubernetes";
|
repo = "kubernetes";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1cyln9nwry290fpffx6xxy0ll7ybib5ifja7nnq93f3f2p0sj421";
|
sha256 = "17jb05c5i9y725jf5ad2ki99wyi2dv2jdhfgcxrki9fzjsx967g2";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
||||||
|
@ -1,24 +1,22 @@
|
|||||||
{ stdenv, fetchFromGitHub, buildGoPackage }:
|
{ stdenv, fetchFromGitHub, buildGoModule }:
|
||||||
buildGoPackage rec {
|
buildGoModule rec {
|
||||||
name = "terraform-provider-elasticsearch-${version}";
|
name = "terraform-provider-elasticsearch-${version}";
|
||||||
version = "0.6.0";
|
version = "0.7.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;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "phillbaker";
|
owner = "phillbaker";
|
||||||
repo = "terraform-provider-elasticsearch";
|
repo = "terraform-provider-elasticsearch";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "04i7jwhm1mg4m8p7y6yg83j76fx0ncallzbza1g1wc5cjjbkvgs2";
|
sha256 = "0ci9gcn9ijdbx25wa99iy0b3sl7akqa7b6gi9wnnl1dawpqznj7v";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
modSha256 = "1xk21xswqwpv34j4ba4fj8lcbvfdd12x7rq1hrdyd21mdhmrhw0p";
|
||||||
|
|
||||||
|
subPackages = [ "." ];
|
||||||
|
|
||||||
# Terraform allow checking the provider versions, but this breaks
|
# Terraform allow checking the provider versions, but this breaks
|
||||||
# if the versions are not provided via file paths.
|
# 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; {
|
meta = with stdenv.lib; {
|
||||||
description = "Terraform provider for elasticsearch";
|
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
|
libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
|
||||||
libXxf86vm libxcb xkeyboardconfig
|
libXxf86vm libxcb xkeyboardconfig
|
||||||
curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
|
curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
|
||||||
procps zlib mesa libxshmfence libpthreadstubs
|
procps zlib mesa libxshmfence libpthreadstubs libappindicator
|
||||||
];
|
];
|
||||||
|
|
||||||
extraInstallCommands = ''
|
extraInstallCommands = ''
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
|
, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.0.0-beta.19";
|
version = "5.1.0";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "franz-${version}";
|
name = "franz-${version}";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
|
url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
|
||||||
sha256 = "1b9b8y19iqx8bnax7hbh9rkjfxk8a9gqb1akrcxwwfi46l816gyy";
|
sha256 = "a474d2e9c6fb99abfc4c7e9290a0e52eef62233fa25c962afdde75fe151277d0";
|
||||||
};
|
};
|
||||||
|
|
||||||
# don't remove runtime deps
|
# 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
|
# 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.
|
# source of the latter disappears much faster.
|
||||||
version = "8.44.0.40";
|
version = "8.46.0.60";
|
||||||
|
|
||||||
rpath = stdenv.lib.makeLibraryPath [
|
rpath = stdenv.lib.makeLibraryPath [
|
||||||
alsaLib
|
alsaLib
|
||||||
@ -58,7 +58,7 @@ let
|
|||||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb";
|
url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb";
|
||||||
sha256 = "08b5nfx1c8czx5nga3zlg60rxnyg2iy627vnaq8cf9dv620vbrw8";
|
sha256 = "0v7a28zmgx1mxqgyfrj8byvjs9ibnirqplly8ll221gns8qjvrls";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
||||||
|
@ -4,11 +4,11 @@ let
|
|||||||
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
|
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
|
||||||
stableVersion = {
|
stableVersion = {
|
||||||
stable = true;
|
stable = true;
|
||||||
version = "1.7.0";
|
version = "1.7.3";
|
||||||
sha256Hash = "1plfby243hf65wjmppq1qnqmp25pgi4x3awqd4h83ly9hn8qdwfk";
|
sha256Hash = "0y0chdfxq75ydx8lz40yfpbx8ycm8vdkl5dvll6glxjq5m21kxf9";
|
||||||
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
|
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
|
||||||
archPatchesRevision = "464796";
|
archPatchesRevision = "476826";
|
||||||
archPatchesHash = "1bq7r69k3i9p1csdsca0w41jyz6fbyn4qriv3lg7s28j9s803kw8";
|
archPatchesHash = "1vnlvba60hxd5jlh0fvsa50xmb9xgcphdsx6j1ld7f12m7ik68zr";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
stable = mkTelegram stableVersion;
|
stable = mkTelegram stableVersion;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stable, version, sha256Hash, archPatchesRevision, archPatchesHash }:
|
{ stable, version, sha256Hash, archPatchesRevision, archPatchesHash }:
|
||||||
|
|
||||||
{ mkDerivation, lib, fetchFromGitHub, fetchsvn
|
{ mkDerivation, lib, fetchFromGitHub, fetchsvn
|
||||||
, pkgconfig, pythonPackages, cmake, wrapGAppsHook
|
, pkgconfig, pythonPackages, cmake, wrapGAppsHook, gcc8
|
||||||
, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
|
, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
|
||||||
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
|
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
|
||||||
}:
|
}:
|
||||||
@ -29,7 +29,8 @@ mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# TODO: libtgvoip.patch no-gtk2.patch
|
# 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 = ''
|
postPatch = ''
|
||||||
substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \
|
substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \
|
||||||
@ -38,7 +39,7 @@ mkDerivation rec {
|
|||||||
--replace '"notify"' '"${libnotify}/lib/libnotify.so"'
|
--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)
|
# We want to run wrapProgram manually (with additional parameters)
|
||||||
dontWrapGApps = true;
|
dontWrapGApps = true;
|
||||||
@ -77,6 +78,9 @@ mkDerivation rec {
|
|||||||
pushd "Telegram/ThirdParty/libtgvoip"
|
pushd "Telegram/ThirdParty/libtgvoip"
|
||||||
patch -Np1 -i "${archPatches}/libtgvoip.patch"
|
patch -Np1 -i "${archPatches}/libtgvoip.patch"
|
||||||
popd
|
popd
|
||||||
|
pushd "Telegram/ThirdParty/qtlottie"
|
||||||
|
patch -Np1 -i "${archPatches}/tdesktop_qtlottie_qtdebug.patch"
|
||||||
|
popd
|
||||||
|
|
||||||
sed -i Telegram/gyp/telegram_linux.gypi \
|
sed -i Telegram/gyp/telegram_linux.gypi \
|
||||||
-e 's,/usr,/does-not-exist,g' \
|
-e 's,/usr,/does-not-exist,g' \
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg
|
, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg
|
||||||
, qttools, qtwayland, qtwebchannel, qtwebengine
|
, qttools, qtwayland, qtwebchannel, qtwebengine
|
||||||
# Runtime
|
# Runtime
|
||||||
, coreutils, libjpeg_turbo, pciutils, procps, utillinux
|
, coreutils, libjpeg_turbo, pciutils, procps, utillinux, libv4l
|
||||||
, pulseaudioSupport ? true, libpulseaudio ? null
|
, pulseaudioSupport ? true, libpulseaudio ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -72,6 +72,7 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
makeWrapper $packagePath/zoom $out/bin/zoom-us \
|
makeWrapper $packagePath/zoom $out/bin/zoom-us \
|
||||||
--prefix PATH : "${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}" \
|
--prefix PATH : "${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}" \
|
||||||
|
--prefix LD_PRELOAD : "${libv4l}/lib/libv4l/v4l2convert.so" \
|
||||||
--run "cd $packagePath"
|
--run "cd $packagePath"
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, pkgconfig, gtk2, lua, perl, python2
|
{ stdenv, fetchFromGitHub, pkgconfig, gtk2, lua, perl, python2
|
||||||
, libtool, pciutils, dbus-glib, libcanberra-gtk2, libproxy
|
, libtool, pciutils, dbus-glib, libcanberra-gtk2, libproxy
|
||||||
, libsexy, enchant, libnotify, openssl, intltool
|
, libsexy, enchant1, libnotify, openssl, intltool
|
||||||
, desktop-file-utils, hicolor-icon-theme
|
, desktop-file-utils, hicolor-icon-theme
|
||||||
, autoconf, automake, autoconf-archive
|
, 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
|
#hexchat and heachat-text loads enchant spell checking library at run time and so it needs to have route to the path
|
||||||
patchPhase = ''
|
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 = ''
|
preConfigure = ''
|
||||||
|
@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "spice-up";
|
pname = "spice-up";
|
||||||
version = "1.8.1";
|
version = "1.8.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Philip-Scott";
|
owner = "Philip-Scott";
|
||||||
repo = "Spice-up";
|
repo = "Spice-up";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0vgs2z6yr0d5vwb04wd2s22144pdrjhqik9xs69q4dxjxa84iw0h";
|
sha256 = "1pix911l4ddn50026a5sbpqfzba6fmw40m1yzbknmkgd2ny28f0m";
|
||||||
};
|
};
|
||||||
|
|
||||||
USER = "pbuilder";
|
USER = "pbuilder";
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
bundlerApp {
|
bundlerApp {
|
||||||
pname = "timetrap";
|
pname = "timetrap";
|
||||||
gemdir = ./.;
|
gemdir = ./.;
|
||||||
exes = [ "timetrap" ];
|
exes = [ "t" "timetrap" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A simple command line time tracker written in ruby";
|
description = "A simple command line time tracker written in ruby";
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
name = "zim-${version}";
|
name = "zim-${version}";
|
||||||
version = "0.71.0";
|
version = "0.71.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
|
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
|
||||||
sha256 = "0mr3911ls5zp3z776ysrdm3sg89zg29r3ip23msydcdbl8wymw30";
|
sha256 = "0d7whwpbklkhamlvysa0yyix1hchkpdynimf3gp1xbibg8mqzbxc";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook ];
|
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook ];
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
, hackrf, rtl-sdr, airspy, limesuite }:
|
, hackrf, rtl-sdr, airspy, limesuite }:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
name = "urh-${version}";
|
pname = "urh";
|
||||||
version = "2.5.7";
|
version = "2.7.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jopohl";
|
owner = "jopohl";
|
||||||
repo = "urh";
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "110fwlj2fw8jgrsgqfkha7lx8f06w0ymh51mgpckx8a0wycznhcy";
|
sha256 = "0yxv38p8a2srk9c55jj96vcib6m6pb6m485ysfg2ilwjzipx2ab0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ hackrf rtl-sdr airspy limesuite ];
|
buildInputs = [ hackrf rtl-sdr airspy limesuite ];
|
||||||
@ -20,9 +20,9 @@ python3Packages.buildPythonApplication rec {
|
|||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit (src.meta) homepage;
|
homepage = "https://github.com/jopohl/urh";
|
||||||
description = "Universal Radio Hacker: investigate wireless protocols like a boss";
|
description = "Universal Radio Hacker: investigate wireless protocols like a boss";
|
||||||
license = licenses.asl20;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ fpletz ];
|
maintainers = with maintainers; [ fpletz ];
|
||||||
};
|
};
|
||||||
|
@ -7,8 +7,8 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
srcVersion = "may19a";
|
srcVersion = "jun19b";
|
||||||
version = "20190501_a";
|
version = "20190601_b";
|
||||||
name = "gildas-${version}";
|
name = "gildas-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
|||||||
# source code of the previous release to a different directory
|
# source code of the previous release to a different directory
|
||||||
urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
|
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" ];
|
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
|
||||||
sha256 = "f6132116bce0ea716a6eb13a63f538d27567a8bfb159f7d567abb9dac5429e30";
|
sha256 = "363d191afdb1fda12ec19d6b9c3ab4189e7c3b036e78f7359d17671d846118ce";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "picard-tools-${version}";
|
name = "picard-tools-${version}";
|
||||||
version = "2.19.2";
|
version = "2.20.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
||||||
sha256 = "0dfap1whga03r0fh3adi684dyp9agfdi96hb2aqskgr9jp0z69rb";
|
sha256 = "0qpc6pi3fmzv8rs5cmk3dd4clrkzbrngsl384b5g0y7471lhavbi";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "6.4";
|
version = "6.4.1";
|
||||||
name = "quantum-espresso-${version}";
|
name = "quantum-espresso-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
|
url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
|
||||||
sha256 = "1zjblzf0xzwmhmpjm56xvv8wsv5jmp5a204irzyicmd77p86c4vq";
|
sha256 = "027skhp2zzx0f4mh6azqjljdimchak5cdn13v4x7aj5q2zvfkmxh";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gtkwave-${version}";
|
name = "gtkwave-${version}";
|
||||||
version = "3.3.100";
|
version = "3.3.101";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
|
url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
|
||||||
sha256 = "1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa";
|
sha256 = "1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "git-repo-${version}";
|
name = "git-repo-${version}";
|
||||||
version = "1.13.2";
|
version = "1.13.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "android";
|
owner = "android";
|
||||||
repo = "tools_repo";
|
repo = "tools_repo";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0ll1yzwgpayps7c05j8kf1m4zvww7crmlyy7xa0w5g2krbjvjzvi";
|
sha256 = "0wyr6fyc9kzzw6y2cxvri35ib1sh156n6lnv119j5r1rzvc2lg6r";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "src-${version}";
|
name = "src-${version}";
|
||||||
version = "1.25";
|
version = "1.26";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
|
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
|
||||||
sha256 = "0qd10w8fwbrgaj8sx49q6cfhqq3ylhwn7nl9v6kxi1yjlw2p098p";
|
sha256 = "06npsnf2bfjgcs7wilhcqn24zn286nyy4qyp3yp88zapkxzlap23";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -1,35 +1,28 @@
|
|||||||
{ stdenv, fetchFromGitHub, fetchpatch
|
{ stdenv, fetchFromGitHub, makeWrapper
|
||||||
, meson, ninja
|
, meson, ninja
|
||||||
, pkgconfig, scdoc
|
, pkgconfig, scdoc
|
||||||
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
|
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||||
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
|
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
|
||||||
, wlroots, wayland-protocols
|
, wlroots, wayland-protocols, swaybg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
|
||||||
pname = "sway";
|
pname = "sway";
|
||||||
version = "1.0";
|
version = "1.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "swaywm";
|
owner = "swaywm";
|
||||||
repo = "sway";
|
repo = "sway";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx";
|
sha256 = "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
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
|
./sway-config-no-nix-store-references.patch
|
||||||
./load-configuration-from-etc.patch
|
./load-configuration-from-etc.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig meson ninja scdoc ];
|
nativeBuildInputs = [ pkgconfig meson ninja scdoc makeWrapper ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
wayland libxkbcommon pcre json_c dbus libevdev
|
wayland libxkbcommon pcre json_c dbus libevdev
|
||||||
@ -44,6 +37,14 @@ stdenv.mkDerivation rec {
|
|||||||
"-Dtray=enabled" "-Dman-pages=enabled"
|
"-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; {
|
meta = with stdenv.lib; {
|
||||||
description = "i3-compatible tiling Wayland compositor";
|
description = "i3-compatible tiling Wayland compositor";
|
||||||
homepage = https://swaywm.org;
|
homepage = https://swaywm.org;
|
||||||
|
@ -16,10 +16,16 @@
|
|||||||
, name ? "initrd"
|
, name ? "initrd"
|
||||||
, compressor ? "gzip -9n"
|
, compressor ? "gzip -9n"
|
||||||
, prepend ? []
|
, 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;
|
inherit name;
|
||||||
|
|
||||||
builder = ./make-initrd.sh;
|
builder = ./make-initrd.sh;
|
||||||
|
|
||||||
makeUInitrd = stdenv.hostPlatform.platform.kernelTarget == "uImage";
|
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.
|
# Note: we don't use closureInfo yet, as that won't build with nix-1.x.
|
||||||
# See #36268.
|
# See #36268.
|
||||||
exportReferencesGraph =
|
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;
|
pathsFromGraph = ./paths-from-graph.pl;
|
||||||
|
|
||||||
inherit compressor prepend;
|
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'!"
|
die "Couldn't locate old source hash '$oldHash' (or it appeared more than once) in '$nixFile'!"
|
||||||
fi
|
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
|
if [ -z "$oldUrl" ]; then
|
||||||
oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.src.url" | tr -d '"')
|
die "Couldn't evaluate source url from '$attr.src'!"
|
||||||
|
|
||||||
if [ -z "$oldUrl" ]; then
|
|
||||||
die "Couldn't evaluate source url from '$attr.src'!"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; (builtins.parseDrvName $attr.name).name" | tr -d '"')
|
drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; (builtins.parseDrvName $attr.name).name" | tr -d '"')
|
||||||
@ -109,13 +105,13 @@ if [ "$oldVersion" = "$newVersion" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Escape regex metacharacter that are allowed in store path names
|
# Escape regex metacharacter that are allowed in store path names
|
||||||
oldVersion=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g')
|
oldVersionEscaped=$(echo "$oldVersion" | sed -re 's|[.+]|\\&|g')
|
||||||
oldUrl=$(echo "$oldUrl" | 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
|
if [ $(grep -c -E "^\s*(let\b)?\s*$versionKey\s*=\s*\"$oldVersionEscaped\"" "$nixFile") = 1 ]; then
|
||||||
pattern="/\b$versionKey\b\s*=/ s|\"$oldVersion\"|\"$newVersion\"|"
|
pattern="/\b$versionKey\b\s*=/ s|\"$oldVersionEscaped\"|\"$newVersion\"|"
|
||||||
elif [ $(grep -c -E "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersion\"" "$nixFile") = 1 ]; then
|
elif [ $(grep -c -E "^\s*(let\b)?\s*name\s*=\s*\"[^\"]+-$oldVersionEscaped\"" "$nixFile") = 1 ]; then
|
||||||
pattern="/\bname\b\s*=/ s|-$oldVersion\"|-$newVersion\"|"
|
pattern="/\bname\b\s*=/ s|-$oldVersionEscaped\"|-$newVersion\"|"
|
||||||
else
|
else
|
||||||
die "Couldn't figure out where out where to patch in new version in '$attr'!"
|
die "Couldn't figure out where out where to patch in new version in '$attr'!"
|
||||||
fi
|
fi
|
||||||
@ -128,7 +124,7 @@ fi
|
|||||||
|
|
||||||
# Replace new URL
|
# Replace new URL
|
||||||
if [ -n "$newUrl" ]; then
|
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
|
if cmp -s "$nixFile" "$nixFile.bak"; then
|
||||||
die "Failed to replace source URL '$oldUrl' to '$newUrl' in '$attr'!"
|
die "Failed to replace source URL '$oldUrl' to '$newUrl' in '$attr'!"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ lib, fetchzip }:
|
{ lib, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "3.5";
|
version = "3.7";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "inter-${version}";
|
name = "inter-${version}";
|
||||||
|
|
||||||
@ -12,14 +12,14 @@ in fetchzip {
|
|||||||
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
|
unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "0zqixzzbb3n1j4jvpjm0hlxc32j53hgq4j078gihjkhgvjhsklf2";
|
sha256 = "1ja1v3605vp09azpabgmk710kic85zxwi4kksmqj9z805fmxddp6";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = https://rsms.me/inter/;
|
homepage = https://rsms.me/inter/;
|
||||||
description = "A typeface specially designed for user interfaces";
|
description = "A typeface specially designed for user interfaces";
|
||||||
license = licenses.ofl;
|
license = licenses.ofl;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
maintainers = with maintainers; [ demize ];
|
maintainers = with maintainers; [ demize dtzWill ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ lib, fetchFromGitHub }:
|
{ lib, fetchFromGitHub }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "6.8";
|
version = "6.9";
|
||||||
in fetchFromGitHub rec {
|
in fetchFromGitHub rec {
|
||||||
name = "libertinus-${version}";
|
name = "libertinus-${version}";
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ in fetchFromGitHub rec {
|
|||||||
install -m444 -Dt $out/share/fonts/opentype *.otf
|
install -m444 -Dt $out/share/fonts/opentype *.otf
|
||||||
install -m444 -Dt $out/share/doc/${name} *.txt
|
install -m444 -Dt $out/share/doc/${name} *.txt
|
||||||
'';
|
'';
|
||||||
sha256 = "0iwbw3sw8rcsifpzw72g3cz0a960scv7cib8mwrw53282waqq2gc";
|
sha256 = "0765a7w0askkhrjmjk638gcm9h6fcm1jpaza8iw9afr3sz1s0xlq";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A fork of the Linux Libertine and Linux Biolinum fonts";
|
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 }:
|
{ lib, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.003";
|
version = "1.004";
|
||||||
in fetchzip rec {
|
in fetchzip rec {
|
||||||
name = "public-sans-${version}";
|
name = "public-sans-${version}";
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ in fetchzip rec {
|
|||||||
unzip $downloadedFile fonts/{otf,variable}/\*.\[ot\]tf -d $out/share/
|
unzip $downloadedFile fonts/{otf,variable}/\*.\[ot\]tf -d $out/share/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "02ranwr1bw4n9n1ljw234nzhj2a0hgradniib37nh10maark5wg3";
|
sha256 = "1d9ll6gvvlmlykv868lq7xmwldlfjp94k0rjqifipg3q1qv051lg";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A strong, neutral, principles-driven, open source typeface for text or display";
|
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 { };
|
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 { };
|
gtkglext = callPackage ./platform/gtkglext { };
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, gtk3, intltool,
|
{ stdenv, fetchurl, pkgconfig, gtk3, intltool, fetchpatch
|
||||||
GConf, enchant, isocodes, gnome_icon_theme, gsettings-desktop-schemas }:
|
, GConf, enchant, isocodes, gnome_icon_theme, gsettings-desktop-schemas }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "4.10.0";
|
version = "4.10.0";
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "gnome-maps";
|
pname = "gnome-maps";
|
||||||
version = "3.32.2";
|
version = "3.32.2.1";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||||
sha256 = "1yvwzdfxjdgx4478l2i240ssvbr8hm5sg4krc1gw2ps08sgap7yx";
|
sha256 = "1m191iq1gjaqz79ci3dkbmwrkxp7pzknngimlf5bqib5x8yairlb";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
passthru = {
|
passthru = {
|
||||||
updateScript = gnome3.updateScript {
|
updateScript = gnome3.updateScript {
|
||||||
packageName = pname;
|
packageName = pname;
|
||||||
attrPath = "gnom3.gnome-nettool";
|
attrPath = "gnome3.${pname}";
|
||||||
versionPolicy = "none";
|
versionPolicy = "none";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -13,11 +13,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gnome-control-center";
|
pname = "gnome-control-center";
|
||||||
version = "3.32.1";
|
version = "3.32.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "0xpcmwgnn29syi2kfxc8233a5f3j8cij5wcn76xmsmwxvxz5r85l";
|
sha256 = "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gnome-software-${version}";
|
name = "gnome-software-${version}";
|
||||||
version = "3.32.2";
|
version = "3.32.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||||
sha256 = "12kw5vyg8jy0xiq1shfh4ksar2dpyzcdxbyx8lrp9494d606nrlx";
|
sha256 = "1r24q2c0i5xwp7dahw4wzycrhijix0nl7bxq1x0za57qm62ysfl9";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -28,14 +28,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "rygel";
|
pname = "rygel";
|
||||||
version = "0.38.0";
|
version = "0.38.1";
|
||||||
|
|
||||||
# TODO: split out lib
|
# TODO: split out lib
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "03ky18hwcz362lbhqm1zm0ax2a075r69xms5cznchn9p9w8z5axc";
|
sha256 = "1w8bi2rw91qyfny1zxhy32k4qn62hdjl2m38f75cp7wv6494d7w0";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -347,7 +347,7 @@ lib.makeScope pkgs.newScope (self: with self; {
|
|||||||
|
|
||||||
pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
|
pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
|
||||||
|
|
||||||
gtkhtml = callPackage ./misc/gtkhtml { };
|
gtkhtml = callPackage ./misc/gtkhtml { enchant = pkgs.enchant1; };
|
||||||
|
|
||||||
pomodoro = callPackage ./misc/pomodoro { };
|
pomodoro = callPackage ./misc/pomodoro { };
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, fetchpatch
|
, fetchpatch
|
||||||
, vala_0_42
|
, vala
|
||||||
, intltool
|
, gettext
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, gtk3
|
, gtk3
|
||||||
, glib
|
, glib
|
||||||
@ -24,34 +24,35 @@
|
|||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
, python3
|
, python3
|
||||||
|
, hicolor-icon-theme
|
||||||
|
, libdazzle
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gitg";
|
pname = "gitg";
|
||||||
version = "3.30.1";
|
version = "3.32.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "1fz8q1aiql6k740savdjh0vzbyhcflgf94cfdhvzcrrvm929n2ss";
|
sha256 = "1wzsv7bh0a2w70f938hkpzbb9xkyrp3bil65c0q3yf2v72nbbn81";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# Fix build with latest libgit2-glib
|
# https://gitlab.gnome.org/GNOME/gitg/issues/213
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = https://gitlab.gnome.org/GNOME/gitg/commit/42bceea265f53fe7fd4a41037b936deed975fc6c.patch;
|
url = "https://gitlab.gnome.org/GNOME/gitg/merge_requests/83.patch";
|
||||||
sha256 = "1xq245rsi1bi66lswk33pdiazfaagxf77836ds5q73900rx4r7fw";
|
sha256 = "1f7wx1d3k5pnp8zbrqssip57b9jxn3hc7a83psm7fny970qmd18z";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
chmod +x meson_post_install.py
|
chmod +x meson_post_install.py
|
||||||
patchShebangs 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"
|
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;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
|
|||||||
gtksourceview
|
gtksourceview
|
||||||
gtkspell3
|
gtkspell3
|
||||||
json-glib
|
json-glib
|
||||||
|
libdazzle
|
||||||
libgee
|
libgee
|
||||||
libgit2-glib
|
libgit2-glib
|
||||||
libpeas
|
libpeas
|
||||||
@ -72,12 +74,13 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
intltool
|
hicolor-icon-theme
|
||||||
|
gettext
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkgconfig
|
pkgconfig
|
||||||
python3
|
python3
|
||||||
vala_0_42 # fails build with 0.44, drop in >3.30.1
|
vala
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, gtk3, intltool
|
{ stdenv, fetchurl, pkgconfig, gtk3, intltool, fetchpatch
|
||||||
, gnome3, enchant, isocodes, gsettings-desktop-schemas }:
|
, gnome3, enchant, isocodes, gsettings-desktop-schemas }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
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" }:
|
{ packageName, attrPath ? packageName, versionPolicy ? "odd-unstable" }:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -9,7 +9,7 @@ let
|
|||||||
package_name="$1"
|
package_name="$1"
|
||||||
attr_path="$2"
|
attr_path="$2"
|
||||||
version_policy="$3"
|
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")
|
latest_tag=$(python "${./find-latest-version.py}" "$package_name" "$version_policy" "stable")
|
||||||
update-source-version "$attr_path" "$latest_tag"
|
update-source-version "$attr_path" "$latest_tag"
|
||||||
'';
|
'';
|
||||||
|
@ -173,16 +173,11 @@ stdenv.mkDerivation rec {
|
|||||||
"USE_SYSTEM_ZLIB=1"
|
"USE_SYSTEM_ZLIB=1"
|
||||||
];
|
];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = [ "-fPIC" ];
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH = makeLibraryPath [
|
LD_LIBRARY_PATH = makeLibraryPath [
|
||||||
arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
|
arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
|
||||||
openspecfun pcre2
|
openspecfun pcre2
|
||||||
];
|
];
|
||||||
|
|
||||||
dontStrip = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = !stdenv.isDarwin;
|
doCheck = !stdenv.isDarwin;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import ./generic.nix {
|
import ./generic.nix {
|
||||||
major_version = "4";
|
major_version = "4";
|
||||||
minor_version = "08";
|
minor_version = "08";
|
||||||
patch_version = "0+beta3";
|
patch_version = "0+rc1";
|
||||||
sha256 = "02pk4bxrgqb12hvpbxyqnl4nwr4g2h96wsfzfd1k8vj8h0jmxzc4";
|
sha256 = "014yincnkfg0j2jy0cn30l5hb1y4sf2qf1gy9ix9ghgn32iw5ndk";
|
||||||
|
|
||||||
# If the executable is stripped it does not work
|
# If the executable is stripped it does not work
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, zlib, gmp, ncurses5, lib }:
|
{ stdenv, pkgs, fetchurl, zlib, gmp, ncurses5, lib }:
|
||||||
|
|
||||||
# from justinwoo/easy-purescript-nix
|
# from justinwoo/easy-purescript-nix
|
||||||
# https://github.com/justinwoo/easy-purescript-nix/blob/d383972c82620a712ead4033db14110497bc2c9c/purs.nix
|
# https://github.com/justinwoo/easy-purescript-nix/blob/d383972c82620a712ead4033db14110497bc2c9c/purs.nix
|
||||||
@ -18,19 +18,19 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "purescript";
|
pname = "purescript";
|
||||||
version = "0.12.5";
|
version = "0.13.0";
|
||||||
|
|
||||||
src =
|
src =
|
||||||
if stdenv.isDarwin
|
if stdenv.isDarwin
|
||||||
then
|
then
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
|
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
|
||||||
sha256 = "15j9lkrl15dicx37bmh0199b3qdixig7w24wvdzi20jqbacz8nkn";
|
sha256 = "0xpisy38gj6fgyyzm6fdl0v819dhjmil4634xxangvhvs7jf5il0";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
|
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/
|
mkdir -p $out/etc/bash_completion.d/
|
||||||
$PURS --bash-completion-script $PURS > $out/etc/bash_completion.d/purs-completion.bash
|
$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; {
|
meta = with stdenv.lib; {
|
||||||
description = "A strongly-typed functional programming language that compiles to JavaScript";
|
description = "A strongly-typed functional programming language that compiles to JavaScript";
|
||||||
homepage = http://www.purescript.org/;
|
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
|
let
|
||||||
# sha256 of released mathcomp versions
|
# sha256 of released mathcomp versions
|
||||||
mathcomp-sha256 = {
|
mathcomp-sha256 = {
|
||||||
|
"1.9.0" = "0lid9zaazdi3d38l8042lczb02pw5m9wq0yysiilx891hgq2p81r";
|
||||||
"1.8.0" = "07l40is389ih8bi525gpqs3qp4yb2kl11r9c8ynk1ifpjzpnabwp";
|
"1.8.0" = "07l40is389ih8bi525gpqs3qp4yb2kl11r9c8ynk1ifpjzpnabwp";
|
||||||
"1.7.0" = "0wnhj9nqpx2bw6n1l4i8jgrw3pjajvckvj3lr4vzjb3my2lbxdd1";
|
"1.7.0" = "0wnhj9nqpx2bw6n1l4i8jgrw3pjajvckvj3lr4vzjb3my2lbxdd1";
|
||||||
"1.6.1" = "1ilw6vm4dlsdv9cd7kmf0vfrh2kkzr45wrqr8m37miy0byzr4p9i";
|
"1.6.1" = "1ilw6vm4dlsdv9cd7kmf0vfrh2kkzr45wrqr8m37miy0byzr4p9i";
|
||||||
};
|
};
|
||||||
# versions of coq compatible with released mathcomp versions
|
# versions of coq compatible with released mathcomp versions
|
||||||
mathcomp-coq-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.8.0" = flip elem ["8.7" "8.8" "8.9"];
|
||||||
"1.7.0" = flip elem ["8.6" "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"];
|
"1.6.1" = flip elem ["8.5"];
|
||||||
@ -56,20 +58,22 @@ let
|
|||||||
echo "-I ." >> Make
|
echo "-I ." >> Make
|
||||||
echo "-R . mathcomp.all" >> 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
|
# the base set of attributes for mathcomp
|
||||||
attrs = rec {
|
attrs = rec {
|
||||||
name = "coq${coq.coq-version}-${pkgname}-${mathcomp-version}";
|
name = "coq${coq.coq-version}-${pkgname}-${custom-version}";
|
||||||
|
|
||||||
# used in ssreflect
|
# used in ssreflect
|
||||||
version = mathcomp-version;
|
version = custom-version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = if is-released then fetchFromGitHub {
|
||||||
owner = "math-comp";
|
owner = "math-comp";
|
||||||
repo = "math-comp";
|
repo = "math-comp";
|
||||||
rev = "mathcomp-${mathcomp-version}";
|
rev = "mathcomp-${mathcomp-version}";
|
||||||
sha256 = mathcomp-sha256.${mathcomp-version};
|
sha256 = mathcomp-sha256.${mathcomp-version};
|
||||||
};
|
} else mathcomp-version;
|
||||||
|
|
||||||
nativeBuildInputs = optionals withDoc [ graphviz ];
|
nativeBuildInputs = optionals withDoc [ graphviz ];
|
||||||
buildInputs = [ ncurses which ] ++ (with coq.ocamlPackages; [ ocaml findlib camlp5 ]);
|
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_7 = mathcompGen "1.7.0";
|
||||||
mathcompCorePkgs_1_8 = mathcompGen "1.8.0";
|
mathcompCorePkgs_1_8 = mathcompGen "1.8.0";
|
||||||
|
mathcompCorePkgs_1_9 = mathcompGen "1.9.0";
|
||||||
mathcompCorePkgs = recurseIntoAttrs
|
mathcompCorePkgs = recurseIntoAttrs
|
||||||
(mapDerivationAttrset dontDistribute (mathcompGen default-mathcomp-version));
|
(mapDerivationAttrset dontDistribute (mathcompGen default-mathcomp-version));
|
||||||
|
|
||||||
@ -126,6 +131,7 @@ in rec {
|
|||||||
inherit mathcompGenSingle;
|
inherit mathcompGenSingle;
|
||||||
mathcomp_1_7_single = getAttrOr (mathcompGenSingle "1.7.0") "single";
|
mathcomp_1_7_single = getAttrOr (mathcompGenSingle "1.7.0") "single";
|
||||||
mathcomp_1_8_single = getAttrOr (mathcompGenSingle "1.8.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
|
mathcomp_single = dontDistribute
|
||||||
(getAttrOr (mathcompGenSingle default-mathcomp-version) "single");
|
(getAttrOr (mathcompGenSingle default-mathcomp-version) "single");
|
||||||
|
|
||||||
@ -133,15 +139,19 @@ mathcomp_single = dontDistribute
|
|||||||
# generates an attribute set {ssreflect = <drv>; ... character = <drv>; all = <drv>;}.
|
# generates an attribute set {ssreflect = <drv>; ... character = <drv>; all = <drv>;}.
|
||||||
# each of these have a special attribute overrideMathcomp which
|
# each of these have a special attribute overrideMathcomp which
|
||||||
# must be used instead of overrideAttrs in order to also fix the dependencies
|
# 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_7 = getAttrOr mathcompCorePkgs_1_7 "all";
|
||||||
mathcomp_1_8 = getAttrOr mathcompCorePkgs_1_8 "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}"; value = pkg;}) mathcompCorePkgs) //
|
||||||
(mapAttrs' (n: pkg: {name = "mathcomp-${n}_1_7"; value = pkg;}) mathcompCorePkgs_1_7) //
|
(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 = {
|
param = {
|
||||||
finmap = {
|
finmap = {
|
||||||
version-sha256 = {
|
version-sha256 = {
|
||||||
|
"1.2.1" = "0jryb5dq8js3imbmwrxignlk5zh8gwfb1wr4b1s7jbwz410vp7zf";
|
||||||
"1.2.0" = "0b6wrdr0d7rcnv86s37zm80540jl2wmiyf39ih7mw3dlwli2cyj4";
|
"1.2.0" = "0b6wrdr0d7rcnv86s37zm80540jl2wmiyf39ih7mw3dlwli2cyj4";
|
||||||
"1.1.0" = "05df59v3na8jhpsfp7hq3niam6asgcaipg2wngnzxzqnl86srp2a";
|
"1.1.0" = "05df59v3na8jhpsfp7hq3niam6asgcaipg2wngnzxzqnl86srp2a";
|
||||||
"1.0.0" = "0sah7k9qm8sw17cgd02f0x84hki8vj8kdz7h15i7rmz08rj0whpa";
|
"1.0.0" = "0sah7k9qm8sw17cgd02f0x84hki8vj8kdz7h15i7rmz08rj0whpa";
|
||||||
@ -27,18 +28,42 @@ param = {
|
|||||||
};
|
};
|
||||||
analysis = {
|
analysis = {
|
||||||
version-sha256 = {
|
version-sha256 = {
|
||||||
|
"0.2.2" = "1d5dwg9di2ppdzfg21zr0a691zigb5kz0lcw263jpyli1nrq7cvk";
|
||||||
"0.2.0" = "1186xjxgns4ns1szyi931964bjm0mp126qzlv10mkqqgfw07nhrd";
|
"0.2.0" = "1186xjxgns4ns1szyi931964bjm0mp126qzlv10mkqqgfw07nhrd";
|
||||||
"0.1.0" = "0hwkr2wzy710pcyh274fcarzdx8sv8myp16pv0vq5978nmih46al";
|
"0.1.0" = "0hwkr2wzy710pcyh274fcarzdx8sv8myp16pv0vq5978nmih46al";
|
||||||
};
|
};
|
||||||
description = "Analysis library compatible with Mathematical Components";
|
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 = {
|
versions = {
|
||||||
"1.8.0" = {
|
"1.9.0" = {
|
||||||
finmap.version = "1.2.0";
|
finmap.version = "1.2.1";
|
||||||
bigenough.version = "1.0.0";
|
bigenough.version = "1.0.0";
|
||||||
analysis = {
|
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 ];
|
core-deps = with coqPackages; [ mathcomp_1_8-field ];
|
||||||
extra-deps = with coqPackages; [ mathcomp_1_8-finmap mathcomp_1_8-bigenough ];
|
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 ];
|
core-deps = with coqPackages; [ mathcomp_1_8-algebra ];
|
||||||
extra-deps = with coqPackages; [ mathcomp_1_8-finmap mathcomp_1_8-bigenough ];
|
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" = {
|
"1.7.0" = {
|
||||||
finmap.version = "1.1.0";
|
finmap.version = "1.1.0";
|
||||||
@ -61,6 +91,11 @@ versions = {
|
|||||||
core-deps = with coqPackages; [ mathcomp_1_7-algebra ];
|
core-deps = with coqPackages; [ mathcomp_1_7-algebra ];
|
||||||
extra-deps = with coqPackages; [ mathcomp_1_7-finmap_1_0 mathcomp_1_7-bigenough ];
|
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",
|
owner ? "math-comp",
|
||||||
core-deps ? [ coqPackages.mathcomp-ssreflect ],
|
core-deps ? [ coqPackages.mathcomp-ssreflect ],
|
||||||
extra-deps ? [],
|
extra-deps ? [],
|
||||||
coq-versions ? ["8.6" "8.7" "8.8" "8.9"],
|
|
||||||
mathcomp ? current-mathcomp,
|
mathcomp ? current-mathcomp,
|
||||||
|
compatibleCoqVersions ? null,
|
||||||
license ? mathcomp.meta.license,
|
license ? mathcomp.meta.license,
|
||||||
# mandatory
|
# mandatory
|
||||||
package, version ? "broken", version-sha256, description
|
package, version ? "broken", version-sha256, description
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
theCompatibleCoqVersions = if compatibleCoqVersions == null
|
||||||
|
then mathcomp.compatibleCoqVersions
|
||||||
|
else compatibleCoqVersions;
|
||||||
|
in
|
||||||
{ "${package}" = let from = src; in
|
{ "${package}" = let from = src; in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -105,8 +145,8 @@ packageGen = {
|
|||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit version-sha256;
|
inherit version-sha256;
|
||||||
compatibleCoqVersions = if meta.broken then _: false else
|
compatibleCoqVersions = if meta.broken then _: false
|
||||||
v: builtins.elem v coq-versions;
|
else theCompatibleCoqVersions;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -115,14 +155,16 @@ current-versions = versions."${current-mathcomp.version}" or {};
|
|||||||
|
|
||||||
select = x: mapAttrs (n: pkg: {package = n;} // pkg) (recursiveUpdate param x);
|
select = x: mapAttrs (n: pkg: {package = n;} // pkg) (recursiveUpdate param x);
|
||||||
|
|
||||||
all = (mapAttrs' (n: pkg:
|
for-version = v: suffix: (mapAttrs' (n: pkg:
|
||||||
{name = "mathcomp_1_7-${n}";
|
{name = "mathcomp_${suffix}-${n}";
|
||||||
value = (packageGen ({mathcomp = coqPackages.mathcomp_1_7;} // pkg))."${n}";})
|
value = (packageGen ({
|
||||||
(select versions."1.7.0")) //
|
mathcomp = coqPackages."mathcomp_${suffix}";
|
||||||
(mapAttrs' (n: pkg:
|
} // pkg))."${n}";})
|
||||||
{name = "mathcomp_1_8-${n}";
|
(select versions."${v}"));
|
||||||
value = (packageGen ({mathcomp = coqPackages.mathcomp_1_8;} // pkg))."${n}";})
|
|
||||||
(select versions."1.8.0")) //
|
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 (
|
(recurseIntoAttrs (mapDerivationAttrset dontDistribute (
|
||||||
mapAttrs' (n: pkg: {name = "mathcomp-${n}"; value = (packageGen pkg)."${n}";})
|
mapAttrs' (n: pkg: {name = "mathcomp-${n}"; value = (packageGen pkg)."${n}";})
|
||||||
(select current-versions))));
|
(select current-versions))));
|
||||||
|
@ -1282,4 +1282,8 @@ self: super: {
|
|||||||
ats-pkg = super.ats-pkg.override { dhall = self.dhall_1_23_0; };
|
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; };
|
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
|
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||||
|
@ -5430,7 +5430,6 @@ broken-packages:
|
|||||||
- hdr-histogram
|
- hdr-histogram
|
||||||
- HDRUtils
|
- HDRUtils
|
||||||
- headergen
|
- headergen
|
||||||
- heap
|
|
||||||
- heartbeat-streams
|
- heartbeat-streams
|
||||||
- heatitup
|
- heatitup
|
||||||
- heatitup-complete
|
- heatitup-complete
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchFromGitHub, cmake, clang, python, v8_static, coreutils }:
|
{ stdenv, fetchFromGitHub, cmake, clang, python, v8, coreutils }:
|
||||||
|
|
||||||
let
|
let
|
||||||
sexpr_wasm_prototype = stdenv.mkDerivation {
|
sexpr_wasm_prototype = stdenv.mkDerivation {
|
||||||
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
|||||||
installPhase = ''
|
installPhase = ''
|
||||||
export DESTDIR=$out
|
export DESTDIR=$out
|
||||||
export MKTEMPDIR=${coreutils}/bin
|
export MKTEMPDIR=${coreutils}/bin
|
||||||
export D8DIR=${v8_static}/bin
|
export D8DIR=${v8}/bin
|
||||||
export SWDIR=${sexpr_wasm_prototype}/bin
|
export SWDIR=${sexpr_wasm_prototype}/bin
|
||||||
make install
|
make install
|
||||||
'';
|
'';
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
, sourceVersion
|
, sourceVersion
|
||||||
, sha256
|
, sha256
|
||||||
, passthruFun
|
, passthruFun
|
||||||
|
, static ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert x11Support -> tcl != null
|
assert x11Support -> tcl != null
|
||||||
@ -164,7 +165,8 @@ let
|
|||||||
]
|
]
|
||||||
# Never even try to use lchmod on linux,
|
# Never even try to use lchmod on linux,
|
||||||
# don't rely on detecting glibc-isms.
|
# 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 =
|
buildInputs =
|
||||||
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
|
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
|
||||||
|
@ -2,18 +2,24 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cppzmq-${version}";
|
name = "cppzmq-${version}";
|
||||||
version = "4.2.3";
|
version = "4.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zeromq";
|
owner = "zeromq";
|
||||||
repo = "cppzmq";
|
repo = "cppzmq";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1yjs25ra5s8zs0rhk50w3f1rrrl80hhq784lwdhh1m3risk740sa";
|
sha256 = "1g45cdny1m08zw4l261bqcqfdb825mnwjwqcf35bkyc03fr4213l";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
buildInputs = [ zeromq ];
|
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; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/zeromq/cppzmq;
|
homepage = https://github.com/zeromq/cppzmq;
|
||||||
license = licenses.bsd2;
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "gbenchmark-${version}";
|
name = "gbenchmark-${version}";
|
||||||
version = "1.4.1";
|
version = "1.5.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "google";
|
owner = "google";
|
||||||
repo = "benchmark";
|
repo = "benchmark";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0l1f6azka85fkb8kdmh4qmmpxhsv7lr7wvll6sld31mfz0cai1kd";
|
sha256 = "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
buildInputs = [ gtest ];
|
postPatch = ''
|
||||||
|
cp -r ${gtest.src} googletest
|
||||||
|
chmod -R u+w googletest
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A microbenchmark support library";
|
description = "A microbenchmark support library";
|
||||||
|
@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
|
|||||||
"-Ddemo-agent=${if withDemoAgent then "true" else "false"}"
|
"-Ddemo-agent=${if withDemoAgent then "true" else "false"}"
|
||||||
"--sysconfdir=/etc"
|
"--sysconfdir=/etc"
|
||||||
"-Dsysconfdir_install=${placeholder "out"}/etc"
|
"-Dsysconfdir_install=${placeholder "out"}/etc"
|
||||||
|
"-Ddbus-srv-user=geoclue"
|
||||||
] ++ optionals stdenv.isDarwin [
|
] ++ optionals stdenv.isDarwin [
|
||||||
"-D3g-source=false"
|
"-D3g-source=false"
|
||||||
"-Dcdma-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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "gtkspell-${version}";
|
name = "gtkspell-${version}";
|
||||||
@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig intltool gobject-introspection vala ];
|
nativeBuildInputs = [ pkgconfig intltool gobject-introspection vala ];
|
||||||
buildInputs = [ aspell gtk3 enchant2 isocodes ];
|
buildInputs = [ aspell gtk3 enchant isocodes ];
|
||||||
propagatedBuildInputs = [ enchant2 ];
|
propagatedBuildInputs = [ enchant ];
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--enable-introspection"
|
"--enable-introspection"
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libebml";
|
pname = "libebml";
|
||||||
version = "1.3.7";
|
version = "1.3.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Matroska-Org";
|
owner = "Matroska-Org";
|
||||||
repo = "libebml";
|
repo = "libebml";
|
||||||
rev = "release-${version}";
|
rev = "release-${version}";
|
||||||
sha256 = "0pdfl83nbbdddbxajx34srg4mcfcz8ca21qyvlnpw81hfnrhmjkv";
|
sha256 = "0q2xfabaymrf0xkhwc9akx6m04lgra2b53wcn9mnh5dqiiazizi7";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
{ stdenv, fetchurl, unzip }:
|
{ stdenv, fetchurl, unzip }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libxls-1.4.0";
|
name = "libxls-${version}";
|
||||||
|
version = "1.5.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/libxls/${name}.zip";
|
url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz";
|
||||||
sha256 = "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk";
|
sha256 = "0dam8qgbc5ykzaxmrjhpmfm8lnlcdk6cbpzyaya91qwwa80qbj1v";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = !stdenv.isDarwin;
|
||||||
|
|
||||||
installFlags = [ "exampledir=\${out}/etc/pkcs11" ];
|
installFlags = [ "exampledir=\${out}/etc/pkcs11" ];
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, libjpeg, zlib, perl }:
|
{ stdenv, fetchurl, fetchpatch, libjpeg, zlib, perl }:
|
||||||
|
|
||||||
let version = "8.4.1";
|
let version = "8.4.2";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "qpdf-${version}";
|
name = "qpdf-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/qpdf/qpdf/${version}/${name}.tar.gz";
|
url = "mirror://sourceforge/qpdf/qpdf/${version}/${name}.tar.gz";
|
||||||
sha256 = "1fsfy38dnm9cy1j40jw5x8vn84l6f2kgb68rdjl0wxignfw05z87";
|
sha256 = "1hrys6zmia8fw6f6ih3ckgsc1jr12fizdwaiy7dyd64kxxjhm8v9";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
nativeBuildInputs = [ perl ];
|
||||||
|
@ -33,6 +33,9 @@ qtModule {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
# Don’t use the gn setup hook
|
||||||
|
dontUseGnConfigure = true;
|
||||||
|
|
||||||
# ninja builds some components with -Wno-format,
|
# ninja builds some components with -Wno-format,
|
||||||
# which cannot be set at the same time as -Wformat-security
|
# which cannot be set at the same time as -Wformat-security
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ stdenv, fetchFromGitHub, qmake, qtwebkit, hunspell }:
|
{ stdenv, fetchFromGitHub, qmake, qtwebkit, hunspell }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "qtwebkit-plugins-2015-05-09";
|
name = "qtwebkit-plugins-2017-01-25";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "QupZilla";
|
owner = "QupZilla";
|
||||||
repo = "qtwebkit-plugins";
|
repo = "qtwebkit-plugins";
|
||||||
rev = "4e2e0402abd847346bec704be5305ba849eb754b";
|
rev = "b58ee9d5b31977491662aa4e8bee16404638bf14";
|
||||||
sha256 = "0xyq25l56jgdxgqqv0380brhw9gg0hin5hyrf1j6d3c8k1gka20m";
|
sha256 = "04wvlhdj45g1v1a3zl0pkf9r72i22h1br10lhhrgad7ypym974gw";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake ];
|
nativeBuildInputs = [ qmake ];
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "tpm2-tss";
|
pname = "tpm2-tss";
|
||||||
version = "2.2.2";
|
version = "2.2.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
|
url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||||
sha256 = "0bbi1vpca5j7jbvy2z76jilpf5km5as1k37bkb2mwzmpibnypmf1";
|
sha256 = "1hwrka0g817a4d1177vv0z13gp66bxzxhflfxswjhcdk93kaws8k";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user