diff --git a/.editorconfig b/.editorconfig
index 7b40ff1ff56..f5df33889e6 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -26,3 +26,7 @@ indent_size = 4
# Match diffs, avoid to trim trailing whitespace
[*.{diff,patch}]
trim_trailing_whitespace = false
+
+# https://github.com/NixOS/nixpkgs/pull/39336#discussion_r183387754
+[.version]
+insert_final_newline = false
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4e508d739e6..3d4855c5cf4 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -14,6 +14,7 @@
/lib @edolstra @nbp
/lib/systems @nbp @ericson2314
/lib/generators.nix @edolstra @nbp @Profpatsch
+/lib/debug.nix @edolstra @nbp @Profpatsch
# Nixpkgs Internals
/default.nix @nbp
diff --git a/.version b/.version
index 770bde1f44b..c1b80a50279 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-18.09
+18.09
\ No newline at end of file
diff --git a/doc/configuration.xml b/doc/configuration.xml
index 55c5ea809d3..5370265c53a 100644
--- a/doc/configuration.xml
+++ b/doc/configuration.xml
@@ -14,6 +14,8 @@ true:
its meta.broken set to
true.
+ The package isn't intended to run on the given system, as none of its meta.platforms match the given system.
+
The package's meta.license is set
to a license which is considered to be unfree.
@@ -88,6 +90,42 @@ distributing the software.
+
+ Installing packages on unsupported systems
+
+
+
+ There are also two ways to try compiling a package which has been marked as unsuported for the given system.
+
+
+
+
+ For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
+
+ $ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
+
+
+
+
+ For permanently allowing broken packages to be built, you may add allowUnsupportedSystem = true; to your user's configuration file, like this:
+
+
+{
+ allowUnsupportedSystem = true;
+}
+
+
+
+
+
+
+ The difference between an a package being unsupported on some system and being broken is admittedly a bit fuzzy.
+ If a program ought to work on a certain platform, but doesn't, the platform should be included in meta.platforms, but marked as broken with e.g. meta.broken = !hostPlatform.isWindows.
+ Of course, this begs the question of what "ought" means exactly.
+ That is left to the package maintainer.
+
+
+
Installing unfree packages
@@ -397,7 +435,7 @@ fi
-
+
GNU info setup
diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml
index 10e4706b059..0b2b85aeeef 100644
--- a/doc/cross-compilation.xml
+++ b/doc/cross-compilation.xml
@@ -75,7 +75,7 @@
An example of such a tool is LLVM.
- Although the existance of a "target platfom" is arguably a historical mistake, it is a common one: examples of tools that suffer from it are GCC, Binutils, GHC and Autoconf.
+ Although the existence of a "target platfom" is arguably a historical mistake, it is a common one: examples of tools that suffer from it are GCC, Binutils, GHC and Autoconf.
Nixpkgs tries to avoid sharing in the mistake where possible.
Still, because the concept of a target platform is so ingrained, it is best to support it as is.
diff --git a/doc/functions.xml b/doc/functions.xml
index f790512e7db..b2e45097294 100644
--- a/doc/functions.xml
+++ b/doc/functions.xml
@@ -294,6 +294,22 @@ merge:"diff3"
+
+ Debugging Nix Expressions
+
+ Nix is a unityped, dynamic language, this means every value can
+ potentially appear anywhere. Since it is also non-strict, evaluation order
+ and what ultimately is evaluated might surprise you. Therefore it is important
+ to be able to debug nix expressions.
+
+
+ In the lib/debug.nix file you will find a number of
+ functions that help (pretty-)printing values while evaluation is runnnig. You
+ can even specify how deep these values should be printed recursively, and
+ transform them on the fly. Please consult the docstrings in
+ lib/debug.nix for usage information.
+
+
buildFHSUserEnv
diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md
index 1623e0d276f..3b8971c295b 100644
--- a/doc/languages-frameworks/haskell.section.md
+++ b/doc/languages-frameworks/haskell.section.md
@@ -666,6 +666,56 @@ prefer one built with GHC 7.8.x in the first place. However, for users who
cannot use GHC 7.10.x at all for some reason, the approach of downgrading to an
older version might be useful.
+### How to override packages in all compiler-specific package sets
+
+In the previous section we learned how to override a package in a single
+compiler-specific package set. You may have some overrides defined that you want
+to use across multiple package sets. To accomplish this you could use the
+technique that we learned in the previous section by repeating the overrides for
+all the compiler-specific package sets. For example:
+
+```nix
+{
+ packageOverrides = super: let self = super.pkgs; in
+ {
+ haskell = super.haskell // {
+ packages = super.haskell.packages // {
+ ghc784 = super.haskell.packages.ghc784.override {
+ overrides = self: super: {
+ my-package = ...;
+ my-other-package = ...;
+ };
+ };
+ ghc822 = super.haskell.packages.ghc784.override {
+ overrides = self: super: {
+ my-package = ...;
+ my-other-package = ...;
+ };
+ };
+ ...
+ };
+ };
+ };
+}
+```
+
+However there's a more convenient way to override all compiler-specific package
+sets at once:
+
+```nix
+{
+ packageOverrides = super: let self = super.pkgs; in
+ {
+ haskell = super.haskell // {
+ packageOverrides = self: super: {
+ my-package = ...;
+ my-other-package = ...;
+ };
+ };
+ };
+}
+```
+
### How to recover from GHC's infamous non-deterministic library ID bug
GHC and distributed build farms don't get along well:
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 0f871395854..23ceb82eb31 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -374,7 +374,7 @@ and `CFLAGS`.
description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
homepage = http://hgomersall.github.com/pyFFTW/;
license = with licenses; [ bsd2 bsd3 ];
- maintainer = with maintainers; [ fridh ];
+ maintainers = with maintainers; [ fridh ];
};
};
}
diff --git a/doc/multiple-output.xml b/doc/multiple-output.xml
index 2f23da8df01..277d3d81413 100644
--- a/doc/multiple-output.xml
+++ b/doc/multiple-output.xml
@@ -36,10 +36,16 @@
Here you find how to write a derivation that produces multiple outputs.
In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in <nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh>; it's relatively well-readable. The whole machinery is triggered by defining the outputs attribute to contain the list of desired output names (strings).
outputs = [ "bin" "dev" "out" "doc" ];
- Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. By convention, the first output should contain the executable programs provided by the package as that output is used by Nix in string conversions, allowing references to binaries like ${pkgs.perl}/bin/perl to always work. Typically you also want to have the main out output, as it catches any files that didn't get elsewhere.
-
+ Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main out output, as it catches any files that didn't get elsewhere.
There is a special handling of the debug output, described at .
+
+ Binaries first
+ A commonly adopted convention in nixpkgs is that executables provided by the package are contained within its first output. This convention allows the dependent packages to reference the executables provided by packages in a uniform manner. For instance, provided with the knowledge that the perl package contains a perl executable it can be referenced as ${pkgs.perl}/bin/perl within a Nix derivation that needs to execute a Perl script.
+ The glibc package is a deliberate single exception to the binaries first
convention. The glibc has libs as its first output allowing the libraries provided by glibc to be referenced directly (e.g. ${stdenv.glibc}/lib/ld-linux-x86-64.so.2). The executables provided by glibc can be accessed via its bin attribute (e.g. ${stdenv.glibc.bin}/bin/ldd).
+ The reason for why glibc deviates from the convention is because referencing a library provided by glibc is a very common operation among Nix packages. For instance, third-party executables packaged by Nix are typically patched and relinked with the relevant version of glibc libraries from Nix packages (please see the documentation on patchelf for more details).
+
+
File type groups
The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an outputFoo variable specifying the output name where they should go. If that variable isn't defined by the derivation writer, it is guessed – a default output name is defined, falling back to other possibilities if the output isn't defined.
diff --git a/doc/reviewing-contributions.xml b/doc/reviewing-contributions.xml
index d6f33ccd1cd..7b017f0a8cc 100644
--- a/doc/reviewing-contributions.xml
+++ b/doc/reviewing-contributions.xml
@@ -23,7 +23,9 @@
xlink:href="https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc">most
recently and the least
- recently updated pull-requests.
+ recently updated pull-requests.
+ We highly encourage looking at
+ this list of ready to merge, unreviewed pull requests.
When reviewing a pull request, please always be nice and polite.
Controversial changes can lead to controversial opinions, but it is important
diff --git a/lib/debug.nix b/lib/debug.nix
index d163e60b695..91a9265a6b5 100644
--- a/lib/debug.nix
+++ b/lib/debug.nix
@@ -1,34 +1,67 @@
+/* Collection of functions useful for debugging
+ broken nix expressions.
+
+ * `trace`-like functions take two values, print
+ the first to stderr and return the second.
+ * `traceVal`-like functions take one argument
+ which both printed and returned.
+ * `traceSeq`-like functions fully evaluate their
+ traced value before printing (not just to “weak
+ head normal form” like trace does by default).
+ * Functions that end in `-Fn` take an additional
+ function as their first argument, which is applied
+ to the traced value before it is printed.
+*/
{ lib }:
-
let
-
-inherit (builtins) trace attrNamesToStr isAttrs isList isInt
- isString isBool head substring attrNames;
-
-inherit (lib) all id mapAttrsFlatten elem isFunction;
-
+ inherit (builtins) trace isAttrs isList isInt
+ head substring attrNames;
+ inherit (lib) id elem isFunction;
in
rec {
- inherit (builtins) addErrorContext;
+ # -- TRACING --
- addErrorContextToAttrs = lib.mapAttrs (a: v: lib.addErrorContext "while evaluating ${a}" v);
+ /* Trace msg, but only if pred is true.
- traceIf = p: msg: x: if p then trace msg x else x;
+ Example:
+ traceIf true "hello" 3
+ trace: hello
+ => 3
+ */
+ traceIf = pred: msg: x: if pred then trace msg x else x;
- traceVal = x: trace x x;
- traceXMLVal = x: trace (builtins.toXML x) x;
- traceXMLValMarked = str: x: trace (str + builtins.toXML x) x;
+ /* Trace the value and also return it.
- # strict trace functions (traced structure is fully evaluated and printed)
+ Example:
+ traceValFn (v: "mystring ${v}") "foo"
+ trace: mystring foo
+ => "foo"
+ */
+ traceValFn = f: x: trace (f x) x;
+ traceVal = traceValFn id;
- /* `builtins.trace`, but the value is `builtins.deepSeq`ed first. */
+ /* `builtins.trace`, but the value is `builtins.deepSeq`ed first.
+
+ Example:
+ trace { a.b.c = 3; } null
+ trace: { a = ; }
+ => null
+ traceSeq { a.b.c = 3; } null
+ trace: { a = { b = { c = 3; }; }; }
+ => null
+ */
traceSeq = x: y: trace (builtins.deepSeq x x) y;
- /* Like `traceSeq`, but only down to depth n.
- * This is very useful because lots of `traceSeq` usages
- * lead to an infinite recursion.
+ /* Like `traceSeq`, but only evaluate down to depth n.
+ This is very useful because lots of `traceSeq` usages
+ lead to an infinite recursion.
+
+ Example:
+ traceSeqN 2 { a.b.c = 3; } null
+ trace: { a = { b = {…}; }; }
+ => null
*/
traceSeqN = depth: x: y: with lib;
let snip = v: if isList v then noQuotes "[…]" v
@@ -43,39 +76,16 @@ rec {
in trace (generators.toPretty { allowPrettyValues = true; }
(modify depth snip x)) y;
- /* `traceSeq`, but the same value is traced and returned */
- traceValSeq = v: traceVal (builtins.deepSeq v v);
- /* `traceValSeq` but with fixed depth */
- traceValSeqN = depth: v: traceSeqN depth v v;
+ /* A combination of `traceVal` and `traceSeq` */
+ traceValSeqFn = f: v: traceVal f (builtins.deepSeq v v);
+ traceValSeq = traceValSeqFn id;
+
+ /* A combination of `traceVal` and `traceSeqN`. */
+ traceValSeqNFn = f: depth: v: traceSeqN depth (f v) v;
+ traceValSeqN = traceValSeqNFn id;
- # this can help debug your code as well - designed to not produce thousands of lines
- traceShowVal = x: trace (showVal x) x;
- traceShowValMarked = str: x: trace (str + showVal x) x;
- attrNamesToStr = a: lib.concatStringsSep "; " (map (x: "${x}=") (attrNames a));
- showVal = x:
- if isAttrs x then
- if x ? outPath then "x is a derivation, name ${if x ? name then x.name else ""}, { ${attrNamesToStr x} }"
- else "x is attr set { ${attrNamesToStr x} }"
- else if isFunction x then "x is a function"
- else if x == [] then "x is an empty list"
- else if isList x then "x is a list, first element is: ${showVal (head x)}"
- else if x == true then "x is boolean true"
- else if x == false then "x is boolean false"
- else if x == null then "x is null"
- else if isInt x then "x is an integer `${toString x}'"
- else if isString x then "x is a string `${substring 0 50 x}...'"
- else "x is probably a path `${substring 0 50 (toString x)}...'";
-
- # trace the arguments passed to function and its result
- # maybe rewrite these functions in a traceCallXml like style. Then one function is enough
- traceCall = n: f: a: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a));
- traceCall2 = n: f: a: b: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a) (t "arg 2" b));
- traceCall3 = n: f: a: b: c: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a) (t "arg 2" b) (t "arg 3" c));
-
- # FIXME: rename this?
- traceValIfNot = c: x:
- if c x then true else trace (showVal x) false;
+ # -- TESTING --
/* Evaluate a set of tests. A test is an attribute set {expr,
expected}, denoting an expression and its expected result. The
@@ -99,9 +109,68 @@ rec {
# usage: { testX = allTrue [ true ]; }
testAllTrue = expr: { inherit expr; expected = map (x: true) expr; };
- strict = v:
- trace "Warning: strict is deprecated and will be removed in the next release"
- (builtins.seq v v);
+
+ # -- DEPRECATED --
+
+ traceShowVal = x: trace (showVal x) x;
+ traceShowValMarked = str: x: trace (str + showVal x) x;
+
+ attrNamesToStr = a:
+ trace ( "Warning: `attrNamesToStr` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please use more specific concatenation "
+ + "for your uses (`lib.concat(Map)StringsSep`)." )
+ (lib.concatStringsSep "; " (map (x: "${x}=") (attrNames a)));
+
+ showVal = with lib;
+ trace ( "Warning: `showVal` is deprecated "
+ + "and will be removed in the next release, "
+ + "please use `traceSeqN`" )
+ (let
+ modify = v:
+ let pr = f: { __pretty = f; val = v; };
+ in if isDerivation v then pr
+ (drv: "<δ:${drv.name}:${concatStringsSep ","
+ (attrNames drv)}>")
+ else if [] == v then pr (const "[]")
+ else if isList v then pr (l: "[ ${go (head l)}, … ]")
+ else if isAttrs v then pr
+ (a: "{ ${ concatStringsSep ", " (attrNames a)} }")
+ else v;
+ go = x: generators.toPretty
+ { allowPrettyValues = true; }
+ (modify x);
+ in go);
+
+ traceXMLVal = x:
+ trace ( "Warning: `traceXMLVal` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please use `traceValFn builtins.toXML`." )
+ (trace (builtins.toXML x) x);
+ traceXMLValMarked = str: x:
+ trace ( "Warning: `traceXMLValMarked` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please use `traceValFn (x: str + builtins.toXML x)`." )
+ (trace (str + builtins.toXML x) x);
+
+ # trace the arguments passed to function and its result
+ # maybe rewrite these functions in a traceCallXml like style. Then one function is enough
+ traceCall = n: f: a: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a));
+ traceCall2 = n: f: a: b: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a) (t "arg 2" b));
+ traceCall3 = n: f: a: b: c: let t = n2: x: traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a) (t "arg 2" b) (t "arg 3" c));
+
+ traceValIfNot = c: x:
+ trace ( "Warning: `traceValIfNot` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please use `if/then/else` and `traceValSeq 1`.")
+ (if c x then true else traceSeq (showVal x) false);
+
+
+ addErrorContextToAttrs = attrs:
+ trace ( "Warning: `addErrorContextToAttrs` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please use `builtins.addErrorContext` directly." )
+ (lib.mapAttrs (a: v: lib.addErrorContext "while evaluating ${a}" v) attrs);
# example: (traceCallXml "myfun" id 3) will output something like
# calling myfun arg 1: 3 result: 3
@@ -109,17 +178,20 @@ rec {
# note: if result doesn't evaluate you'll get no trace at all (FIXME)
# args should be printed in any case
traceCallXml = a:
- if !isInt a then
+ trace ( "Warning: `traceCallXml` is deprecated "
+ + "and will be removed in the next release. "
+ + "Please complain if you use the function regularly." )
+ (if !isInt a then
traceCallXml 1 "calling ${a}\n"
else
let nr = a;
in (str: expr:
if isFunction expr then
(arg:
- traceCallXml (builtins.add 1 nr) "${str}\n arg ${builtins.toString nr} is \n ${builtins.toXML (strict arg)}" (expr arg)
+ traceCallXml (builtins.add 1 nr) "${str}\n arg ${builtins.toString nr} is \n ${builtins.toXML (builtins.seq arg arg)}" (expr arg)
)
else
- let r = strict expr;
+ let r = builtins.seq expr expr;
in trace "${str}\n result:\n${builtins.toXML r}" r
- );
+ ));
}
diff --git a/lib/default.nix b/lib/default.nix
index c292ed33e1d..b3c4fdc0e59 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -115,11 +115,12 @@ let
unknownModule mkOption;
inherit (types) isType setType defaultTypeMerge defaultFunctor
isOptionType mkOptionType;
- inherit (debug) addErrorContextToAttrs traceIf traceVal
+ inherit (debug) addErrorContextToAttrs traceIf traceVal traceValFn
traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
- traceValSeqN traceShowVal traceShowValMarked
- showVal traceCall traceCall2 traceCall3 traceValIfNot runTests
- testAllTrue strict traceCallXml attrNamesToStr;
+ traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
+ traceShowValMarked showVal traceCall traceCall2 traceCall3
+ traceValIfNot runTests testAllTrue traceCallXml
+ attrNamesToStr;
inherit (misc) maybeEnv defaultMergeArg defaultMerge foldArgs
defaultOverridableDelayableArgs composedArgsAndFun
maybeAttrNullable maybeAttr ifEnable checkFlag getValue
diff --git a/lib/generators.nix b/lib/generators.nix
index d1a8f6bf8dc..c09384c00f5 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -143,18 +143,13 @@ rec {
(This means fn is type Val -> String.) */
allowPrettyValues ? false
}@args: v: with builtins;
- if isInt v then toString v
+ let isPath = v: typeOf v == "path";
+ in if isInt v then toString v
else if isString v then ''"${libStr.escape [''"''] v}"''
else if true == v then "true"
else if false == v then "false"
- else if null == v then "null"
- else if isFunction v then
- let fna = lib.functionArgs v;
- showFnas = concatStringsSep "," (libAttr.mapAttrsToList
- (name: hasDefVal: if hasDefVal then "(${name})" else name)
- fna);
- in if fna == {} then "<λ>"
- else "<λ:{${showFnas}}>"
+ else if null == v then "null"
+ else if isPath v then toString v
else if isList v then "[ "
+ libStr.concatMapStringsSep " " (toPretty args) v
+ " ]"
@@ -163,12 +158,21 @@ rec {
if attrNames v == [ "__pretty" "val" ] && allowPrettyValues
then v.__pretty v.val
# TODO: there is probably a better representation?
- else if v ? type && v.type == "derivation" then "<δ>"
+ else if v ? type && v.type == "derivation" then
+ "<δ:${v.name}>"
+ # "<δ:${concatStringsSep "," (builtins.attrNames v)}>"
else "{ "
+ libStr.concatStringsSep " " (libAttr.mapAttrsToList
(name: value:
"${toPretty args name} = ${toPretty args value};") v)
+ " }"
- else abort "generators.toPretty: should never happen (v = ${v})";
+ else if isFunction v then
+ let fna = lib.functionArgs v;
+ showFnas = concatStringsSep "," (libAttr.mapAttrsToList
+ (name: hasDefVal: if hasDefVal then "(${name})" else name)
+ fna);
+ in if fna == {} then "<λ>"
+ else "<λ:{${showFnas}}>"
+ else abort "toPretty: should never happen (v = ${v})";
}
diff --git a/lib/modules.nix b/lib/modules.nix
index 4ef982c7ec9..6c8033322a5 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -159,7 +159,7 @@ rec {
context = name: ''while evaluating the module argument `${name}' in "${key}":'';
extraArgs = builtins.listToAttrs (map (name: {
inherit name;
- value = addErrorContext (context name)
+ value = builtins.addErrorContext (context name)
(args.${name} or config._module.args.${name});
}) requiredArgs);
@@ -309,7 +309,7 @@ rec {
res.mergedValue;
in opt //
- { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
+ { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
definitions = map (def: def.value) res.defsFinal;
files = map (def: def.file) res.defsFinal;
inherit (res) isDefined;
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index bd408e00bb1..e7346a538d3 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -44,6 +44,8 @@ rec {
};
# Misc boolean options
useAndroidPrebuilt = false;
+ useiOSPrebuilt = false;
+ isiPhoneSimulator = false;
} // mapAttrs (n: v: v final.parsed) inspect.predicates
// args;
in assert final.useAndroidPrebuilt -> final.isAndroid;
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 012a1786a3c..c6618083ce7 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -26,7 +26,7 @@ in rec {
none = [];
- arm = filterDoubles predicates.isArm;
+ arm = filterDoubles predicates.isAarch32;
aarch64 = filterDoubles predicates.isAarch64;
x86 = filterDoubles predicates.isx86;
i686 = filterDoubles predicates.isi686;
diff --git a/lib/systems/for-meta.nix b/lib/systems/for-meta.nix
index 43c0195c3f1..9e85cea3ad1 100644
--- a/lib/systems/for-meta.nix
+++ b/lib/systems/for-meta.nix
@@ -7,7 +7,7 @@ in rec {
all = [ {} ]; # `{}` matches anything
none = [];
- arm = [ patterns.isArm ];
+ arm = [ patterns.isAarch32 ];
aarch64 = [ patterns.isAarch64 ];
x86 = [ patterns.isx86 ];
i686 = [ patterns.isi686 ];
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index d7fabf684b7..b87320594ca 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -9,8 +9,8 @@ rec {
isx86_64 = { cpu = cpuTypes.x86_64; };
isPowerPC = { cpu = cpuTypes.powerpc; };
isx86 = { cpu = { family = "x86"; }; };
- isArm = { cpu = { family = "arm"; }; };
- isAarch64 = { cpu = { family = "aarch64"; }; };
+ isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
+ isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
isMips = { cpu = { family = "mips"; }; };
isRiscV = { cpu = { family = "riscv"; }; };
isWasm = { cpu = { family = "wasm"; }; };
@@ -41,6 +41,9 @@ rec {
isEfi = map (family: { cpu.family = family; })
[ "x86" "arm" "aarch64" ];
+
+ # Deprecated
+ isArm = isAarch32;
};
matchAnyAttrs = patterns:
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 641a7f5d758..018fd172e68 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -34,7 +34,7 @@ rec {
################################################################################
- types.openSignifiantByte = mkOptionType {
+ types.openSignificantByte = mkOptionType {
name = "significant-byte";
description = "Endianness";
merge = mergeOneOption;
@@ -42,7 +42,7 @@ rec {
types.significantByte = enum (attrValues significantBytes);
- significantBytes = setTypes types.openSignifiantByte {
+ significantBytes = setTypes types.openSignificantByte {
bigEndian = {};
littleEndian = {};
};
@@ -72,7 +72,7 @@ rec {
armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; };
armv7a = { bits = 32; significantByte = littleEndian; family = "arm"; };
armv7l = { bits = 32; significantByte = littleEndian; family = "arm"; };
- aarch64 = { bits = 64; significantByte = littleEndian; family = "aarch64"; };
+ aarch64 = { bits = 64; significantByte = littleEndian; family = "arm"; };
i686 = { bits = 32; significantByte = littleEndian; family = "x86"; };
x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; };
mips = { bits = 32; significantByte = bigEndian; family = "mips"; };
@@ -201,7 +201,7 @@ rec {
################################################################################
- types.system = mkOptionType {
+ types.parsedPlatform = mkOptionType {
name = "system";
description = "fully parsed representation of llvm- or nix-style platform tuple";
merge = mergeOneOption;
@@ -215,7 +215,7 @@ rec {
isSystem = isType "system";
mkSystem = components:
- assert types.system.check components;
+ assert types.parsedPlatform.check components;
setType "system" components;
mkSkeletonFromList = l: {
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 5f19dd63f2d..c683df7d7ca 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -317,7 +317,8 @@ runTests {
expr = mapAttrs (const (generators.toPretty {})) rec {
int = 42;
bool = true;
- string = "fnord";
+ string = ''fno"rd'';
+ path = /. + "/foo"; # toPath returns a string
null_ = null;
function = x: x;
functionArgs = { arg ? 4, foo }: arg;
@@ -328,13 +329,14 @@ runTests {
expected = rec {
int = "42";
bool = "true";
- string = "\"fnord\"";
+ string = ''"fno\"rd"'';
+ path = "/foo";
null_ = "null";
function = "<λ>";
functionArgs = "<λ:{(arg),foo}>";
list = "[ 3 4 ${function} [ false ] ]";
attrs = "{ \"foo\" = null; \"foo bar\" = \"baz\"; }";
- drv = "<δ>";
+ drv = "<δ:test>";
};
};
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 77c648c39dc..aec6f67a919 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -28,6 +28,11 @@
github = "AndersonTorres";
name = "Anderson Torres";
};
+ Anton-Latukha = {
+ email = "anton.latuka+nixpkgs@gmail.com";
+ github = "Anton-Latukha";
+ name = "Anton Latukha";
+ };
Baughn = {
email = "sveina@gmail.com";
github = "Baughn";
@@ -305,6 +310,16 @@
github = "akru";
name = "Alexander Krupenkin ";
};
+ alexchapman = {
+ name = "Alex Chapman";
+ email = "alex@farfromthere.net";
+ github = "AJChapman";
+ };
+ alexfmpe = {
+ email = "alexandre.fmp.esteves@gmail.com";
+ github = "alexfmpe";
+ name = "Alexandre Esteves";
+ };
alexvorobiev = {
email = "alexander.vorobiev@gmail.com";
github = "alexvorobiev";
@@ -582,6 +597,11 @@
github = "bergey";
name = "Daniel Bergey";
};
+ bfortz = {
+ email = "bernard.fortz@gmail.com";
+ github = "bfortz";
+ name = "Bernard Fortz";
+ };
bgamari = {
email = "ben@smart-cactus.org";
github = "bgamari";
@@ -700,6 +720,11 @@
github = "canndrew";
name = "Andrew Cann";
};
+ carlosdagos = {
+ email = "m@cdagostino.io";
+ github = "carlosdagos";
+ name = "Carlos D'Agostino";
+ };
carlsverre = {
email = "accounts@carlsverre.com";
github = "carlsverre";
@@ -1216,7 +1241,7 @@
name = "Mabry Cervin";
};
eqyiel = {
- email = "r@rkm.id.au";
+ email = "ruben@maher.fyi";
github = "eqyiel";
name = "Ruben Maher";
};
@@ -1701,6 +1726,11 @@
github = "jbedo";
name = "Justin Bedő";
};
+ jbgi = {
+ email = "jb@giraudeau.info";
+ github = "jbgi";
+ name = "Jean-Baptiste Giraudeau";
+ };
jcumming = {
email = "jack@mudshark.org";
name = "Jack Cummings";
@@ -1716,7 +1746,7 @@
name = "Jeffrey David Johnson";
};
jensbin = {
- email = "jensbin@protonmail.com";
+ email = "jensbin+git@pm.me";
github = "jensbin";
name = "Jens Binkert";
};
@@ -1966,6 +1996,11 @@
github = "kragniz";
name = "Louis Taylor";
};
+ krav = {
+ email = "kristoffer@microdisko.no";
+ github = "krav";
+ name = "Kristoffer Thømt Ravneberg";
+ };
kristoff3r = {
email = "k.soeholm@gmail.com";
github = "kristoff3r";
@@ -2491,6 +2526,11 @@
github = "fstamour";
name = "Francis St-Amour";
};
+ mrkkrp = {
+ email = "markkarpov92@gmail.com";
+ github = "mrkkrp";
+ name = "Mark Karpov";
+ };
mrVanDalo = {
email = "contact@ingolf-wagner.de";
github = "mrVanDalo";
@@ -2645,6 +2685,11 @@
github = "nmattia";
name = "Nicolas Mattia";
};
+ nocent = {
+ email = "nocent@protonmail.ch";
+ github = "nocent";
+ name = "nocent";
+ };
nocoolnametom = {
email = "nocoolnametom@gmail.com";
github = "nocoolnametom";
@@ -3406,6 +3451,11 @@
github = "grwlf";
name = "Sergey Mironov";
};
+ sna = {
+ email = "abouzahra.9@wright.edu";
+ github = "s-na";
+ name = "S. Nordin Abouzahra";
+ };
snyh = {
email = "snyh@snyh.org";
github = "snyh";
@@ -3451,6 +3501,11 @@
github = "spwhitt";
name = "Spencer Whitt";
};
+ srghma = {
+ email = "srghma@gmail.com";
+ github = "srghma";
+ name = "Sergei Khoma";
+ };
srhb = {
email = "sbrofeldt@gmail.com";
github = "srhb";
@@ -3760,6 +3815,11 @@
github = "twey";
name = "James ‘Twey’ Kay";
};
+ typetetris = {
+ email = "ericwolf42@mail.com";
+ github = "typetetris";
+ name = "Eric Wolf";
+ };
unode = {
email = "alves.rjc@gmail.com";
github = "unode";
@@ -3966,6 +4026,11 @@
github = "womfoo";
name = "Kranium Gikos Mendoza";
};
+ worldofpeace = {
+ email = "worldofpeace@users.noreply.github.com";
+ github = "worldofpeace";
+ name = "Worldofpeace";
+ };
wscott = {
email = "wsc9tt@gmail.com";
github = "wscott";
@@ -3984,7 +4049,7 @@
xeji = {
email = "xeji@cat3.de";
github = "xeji";
- name = "xeji";
+ name = "Uli Baum";
};
xnaveira = {
email = "xnaveira@gmail.com";
@@ -4130,9 +4195,4 @@
github = "zzamboni";
name = "Diego Zamboni";
};
- srghma = {
- email = "srghma@gmail.com";
- github = "srghma";
- name = "Sergei Khoma";
- };
}
diff --git a/maintainers/scripts/hydra-eval-failures.py b/maintainers/scripts/hydra-eval-failures.py
index d0bd1913ba8..23669502e46 100755
--- a/maintainers/scripts/hydra-eval-failures.py
+++ b/maintainers/scripts/hydra-eval-failures.py
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -i python -p pythonFull pythonPackages.requests pythonPackages.pyquery pythonPackages.click
+#!nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ requests pyquery click ])'
# To use, just execute this script with --help to display help.
@@ -16,7 +16,7 @@ maintainers_json = subprocess.check_output([
'nix-instantiate', '-E', 'import ./maintainers/maintainer-list.nix {}', '--eval', '--json'
])
maintainers = json.loads(maintainers_json)
-MAINTAINERS = {v: k for k, v in maintainers.iteritems()}
+MAINTAINERS = {v: k for k, v in maintainers.items()}
def get_response_text(url):
@@ -45,6 +45,17 @@ def get_maintainers(attr_name):
except:
return []
+def print_build(table_row):
+ a = pq(table_row)('a')[1]
+ print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True)
+
+ maintainers = get_maintainers(a.text)
+ if maintainers:
+ print(" - maintainers: {}".format(", ".join(map(lambda u: '@' + u, maintainers))))
+ # TODO: print last three persons that touched this file
+ # TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked?
+
+ sys.stdout.flush()
@click.command()
@click.option(
@@ -73,23 +84,17 @@ def cli(jobset):
# TODO: aborted evaluations
# TODO: dependency failed without propagated builds
+ print('\nFailures:')
for tr in d('img[alt="Failed"]').parents('tr'):
- a = pq(tr)('a')[1]
- print("- [ ] [{}]({})".format(a.text, a.get('href')))
+ print_build(tr)
- sys.stdout.flush()
-
- maintainers = get_maintainers(a.text)
- if maintainers:
- print(" - maintainers: {}".format(", ".join(map(lambda u: '@' + u, maintainers))))
- # TODO: print last three persons that touched this file
- # TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked?
-
- sys.stdout.flush()
+ print('\nDependency failures:')
+ for tr in d('img[alt="Dependency failed"]').parents('tr'):
+ print_build(tr)
if __name__ == "__main__":
try:
cli()
- except:
+ except Exception as e:
import pdb;pdb.post_mortem()
diff --git a/nixos/doc/manual/configuration/summary.xml b/nixos/doc/manual/configuration/summary.xml
index be1f2263149..38032c5d9dc 100644
--- a/nixos/doc/manual/configuration/summary.xml
+++ b/nixos/doc/manual/configuration/summary.xml
@@ -53,7 +53,7 @@ manual for the rest.
{ x = 1; y = 2; }
- An set with attributes names x and y
+ A set with attributes named x and y
{ foo.bar = 1; }
diff --git a/nixos/doc/manual/development/importing-modules.xml b/nixos/doc/manual/development/importing-modules.xml
new file mode 100644
index 00000000000..ec1da09b950
--- /dev/null
+++ b/nixos/doc/manual/development/importing-modules.xml
@@ -0,0 +1,59 @@
+
+
+Importing Modules
+
+
+ Sometimes NixOS modules need to be used in configuration but exist
+ outside of Nixpkgs. These modules can be imported:
+
+
+
+{ config, lib, pkgs, ... }:
+
+{
+ imports =
+ [ # Use a locally-available module definition in
+ # ./example-module/default.nix
+ ./example-module
+ ];
+
+ services.exampleModule.enable = true;
+}
+
+
+
+ The environment variable NIXOS_EXTRA_MODULE_PATH is
+ an absolute path to a NixOS module that is included alongside the
+ Nixpkgs NixOS modules. Like any NixOS module, this module can import
+ additional modules:
+
+
+
+# ./module-list/default.nix
+[
+ ./example-module1
+ ./example-module2
+]
+
+
+
+# ./extra-module/default.nix
+{ imports = import ./module-list.nix; }
+
+
+
+# NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module
+{ config, lib, pkgs, ... }:
+
+{
+ # No `imports` needed
+
+ services.exampleModule1.enable = true;
+}
+
+
+
diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml
index cb363b45675..a49f99cb266 100644
--- a/nixos/doc/manual/development/writing-modules.xml
+++ b/nixos/doc/manual/development/writing-modules.xml
@@ -180,6 +180,7 @@ in {
+
diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml
index 122a4745f19..d68cd616263 100644
--- a/nixos/doc/manual/installation/installing-usb.xml
+++ b/nixos/doc/manual/installation/installing-usb.xml
@@ -51,7 +51,7 @@ ISO, copy its contents verbatim to your drive, then either:
If you want to load the contents of the ISO to ram after bootin
(So you can remove the stick after bootup) you can append the parameter
- copytoramto the options field.
+ copytoram to the options field.
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index e20b6574b72..1f09704bce5 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -115,23 +115,17 @@ for a UEFI installation is by and large the same as a BIOS installation. The dif
UEFI systems
For creating boot partitions:
mkfs.fat. Again it’s recommended to assign a
- label to the boot partition: . For example:
-# mkfs.fat -F 32 -L boot /dev/sda3
+# mkfs.fat -F 32 -n boot /dev/sda3
For creating LVM volumes, the LVM commands, e.g.,
-
-
-# pvcreate /dev/sda1 /dev/sdb1
-# vgcreate MyVolGroup /dev/sda1 /dev/sdb1
-# lvcreate --size 2G --name bigdisk MyVolGroup
-# lvcreate --size 1G --name smalldisk MyVolGroup
-
-
+ pvcreate, vgcreate, and
+ lvcreate.
For creating software RAID devices, use
mdadm.
@@ -155,6 +149,7 @@ for a UEFI installation is by and large the same as a BIOS installation. The dif
Mount the boot file system on /mnt/boot, e.g.
+# mkdir -p /mnt/boot
# mount /dev/disk/by-label/boot /mnt/boot
@@ -366,8 +361,9 @@ drive (here /dev/sda). (for UEFI systems only)
+# mkfs.fat -F 32 -n boot /dev/sda3 # (for UEFI systems only)
# mount /dev/disk/by-label/nixos /mnt
+# mkdir -p /mnt/boot # (for UEFI systems only)
# mount /dev/disk/by-label/boot /mnt/boot # (for UEFI systems only)
# nixos-generate-config --root /mnt
# nano /mnt/etc/nixos/configuration.nix
diff --git a/nixos/doc/manual/man-nixos-build-vms.xml b/nixos/doc/manual/man-nixos-build-vms.xml
index 878ebee0527..f4b59a7c6d4 100644
--- a/nixos/doc/manual/man-nixos-build-vms.xml
+++ b/nixos/doc/manual/man-nixos-build-vms.xml
@@ -40,7 +40,7 @@ points to the generated virtual network.
test1 = {pkgs, config, ...}:
{
services.openssh.enable = true;
- nixpkgs.system = "i686-linux";
+ nixpkgs.localSystem.system = "i686-linux";
deployment.targetHost = "test1.example.net";
# Other NixOS options
@@ -51,7 +51,7 @@ points to the generated virtual network.
services.openssh.enable = true;
services.httpd.enable = true;
environment.systemPackages = [ pkgs.lynx ];
- nixpkgs.system = "x86_64-linux";
+ nixpkgs.localSystem.system = "x86_64-linux";
deployment.targetHost = "test2.example.net";
# Other NixOS options
@@ -66,7 +66,7 @@ In each NixOS configuration, two attributes have a special meaning.
The deployment.targetHost specifies the address
(domain name or IP address)
of the system which is used by ssh to perform
-remote deployment operations. The nixpkgs.system
+remote deployment operations. The nixpkgs.localSystem.system
attribute can be used to specify an architecture for the target machine,
such as i686-linux which builds a 32-bit NixOS
configuration. Omitting this property will build the configuration
diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml
index 61f9ec8ba99..2e53f0563ba 100644
--- a/nixos/doc/manual/release-notes/rl-1809.xml
+++ b/nixos/doc/manual/release-notes/rl-1809.xml
@@ -56,6 +56,11 @@ has the following highlights:
following incompatible changes:
+
+
+ lib.strict is removed. Use builtins.seq instead.
+
+
The clementine package points now to the free derivation.
@@ -77,6 +82,46 @@ following incompatible changes:
+ lib.attrNamesToStr has been deprecated. Use
+ more specific concatenation (lib.concat(Map)StringsSep)
+ instead.
+
+
+
+
+ lib.addErrorContextToAttrs has been deprecated. Use
+ builtins.addErrorContext directly.
+
+
+
+
+ lib.showVal has been deprecated. Use
+ lib.traceSeqN instead.
+
+
+
+
+ lib.traceXMLVal has been deprecated. Use
+ lib.traceValFn builtins.toXml instead.
+
+
+
+
+ lib.traceXMLValMarked has been deprecated. Use
+ lib.traceValFn (x: str + builtins.toXML x) instead.
+
+
+
+
+ lib.traceValIfNot has been deprecated. Use
+ if/then/else and lib.traceValSeq
+ instead.
+
+
+
+
+ lib.traceCallXml has been deprecated. Please complain
+ if you use the function regularly.
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 2e7971cca81..97c79487df4 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -26,7 +26,7 @@
, lib ? import ../../lib
}:
-let extraArgs_ = extraArgs; pkgs_ = pkgs; system_ = system;
+let extraArgs_ = extraArgs; pkgs_ = pkgs;
extraModules = let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
in if e == "" then [] else [(import (builtins.toPath e))];
in
@@ -36,7 +36,7 @@ let
_file = ./eval-config.nix;
key = _file;
config = {
- nixpkgs.system = lib.mkDefault system_;
+ nixpkgs.localSystem = lib.mkDefault { inherit system; };
_module.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_);
};
};
diff --git a/nixos/lib/qemu-flags.nix b/nixos/lib/qemu-flags.nix
index fcdcbf1b007..e4c95ebdfb0 100644
--- a/nixos/lib/qemu-flags.nix
+++ b/nixos/lib/qemu-flags.nix
@@ -9,7 +9,7 @@
];
qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
- else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
+ else if pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
qemuBinary = qemuPkg: {
diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm
index 78598b3efb4..7e269b43e70 100644
--- a/nixos/lib/test-driver/Machine.pm
+++ b/nixos/lib/test-driver/Machine.pm
@@ -612,7 +612,7 @@ sub waitForX {
my ($self, $regexp) = @_;
$self->nest("waiting for the X11 server", sub {
retry sub {
- my ($status, $out) = $self->execute("journalctl -b SYSLOG_IDENTIFIER=systemd | grep 'session opened'");
+ my ($status, $out) = $self->execute("journalctl -b SYSLOG_IDENTIFIER=systemd | grep 'Reached target Current graphical'");
return 0 if $status != 0;
($status, $out) = $self->execute("[ -e /tmp/.X11-unix/X0 ]");
return 1 if $status == 0;
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index d990a5f8b6a..57acc990a48 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -111,6 +111,8 @@ in rec {
ocrProg = tesseract_4.override { enableLanguages = [ "eng" ]; };
+ imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
+
# Generate onvenience wrappers for running the test driver
# interactively with the specified network, and for starting the
# VMs from the command line.
@@ -128,7 +130,7 @@ in rec {
wrapProgram $out/bin/nixos-test-driver \
--add-flags "''${vms[*]}" \
${lib.optionalString enableOCR
- "--prefix PATH : '${ocrProg}/bin:${imagemagick}/bin'"} \
+ "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
--run "export testScript=\"\$(cat $out/test-script)\"" \
--set VLANS '${toString vlans}'
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
diff --git a/nixos/modules/config/gnu.nix b/nixos/modules/config/gnu.nix
index ef48ccb7b4f..93d13097019 100644
--- a/nixos/modules/config/gnu.nix
+++ b/nixos/modules/config/gnu.nix
@@ -26,11 +26,11 @@ with lib;
nano zile
texinfo # for the stand-alone Info reader
]
- ++ stdenv.lib.optional (!stdenv.isArm) grub2;
+ ++ stdenv.lib.optional (!stdenv.isAarch32) grub2;
# GNU GRUB, where available.
- boot.loader.grub.enable = !pkgs.stdenv.isArm;
+ boot.loader.grub.enable = !pkgs.stdenv.isAarch32;
boot.loader.grub.version = 2;
# GNU lsh.
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index a9c5fc75660..90cea47b70a 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -214,6 +214,8 @@ in {
(mkIf cfg.enable {
environment.systemPackages = [ overriddenPackage ];
+ sound.enable = true;
+
environment.etc = [
{ target = "asound.conf";
source = alsaConf; }
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 42d5d233f1c..621ca36fb6b 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -92,7 +92,7 @@ let
group = mkOption {
type = types.str;
- apply = x: assert (builtins.stringLength x < 17 || abort "Group name '${x}' is longer than 16 characters which is not allowed!"); x;
+ apply = x: assert (builtins.stringLength x < 32 || abort "Group name '${x}' is longer than 31 characters which is not allowed!"); x;
default = "nogroup";
description = "The user's primary group.";
};
diff --git a/nixos/modules/config/zram.nix b/nixos/modules/config/zram.nix
index ae1b0a6c8e1..c1748812821 100644
--- a/nixos/modules/config/zram.nix
+++ b/nixos/modules/config/zram.nix
@@ -25,16 +25,16 @@ in
type = types.bool;
description = ''
Enable in-memory compressed swap space provided by the zram kernel
- module. It is recommended to enable only for kernel 3.14 or higher.
+ module.
+ See https://www.kernel.org/doc/Documentation/blockdev/zram.txt
'';
};
numDevices = mkOption {
- default = 4;
+ default = 1;
type = types.int;
description = ''
- Number of zram swap devices to create. It should be equal to the
- number of CPU cores your system has.
+ Number of zram swap devices to create.
'';
};
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
index d9646704e6f..b371af353cf 100644
--- a/nixos/modules/hardware/opengl.nix
+++ b/nixos/modules/hardware/opengl.nix
@@ -14,7 +14,6 @@ let
name = "mesa-drivers+txc-${p.mesa_drivers.version}";
paths =
[ p.mesa_drivers
- p.mesa_drivers.out # mainly for libGL
(if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc)
];
};
@@ -33,89 +32,92 @@ in
{
options = {
- hardware.opengl.enable = mkOption {
- description = ''
- Whether to enable OpenGL drivers. This is needed to enable
- OpenGL support in X11 systems, as well as for Wayland compositors
- like sway, way-cooler and Weston. It is enabled by default
- by the corresponding modules, so you do not usually have to
- set it yourself, only if there is no module for your wayland
- compositor of choice. See services.xserver.enable,
- programs.sway.enable, and programs.way-cooler.enable.
- '';
- type = types.bool;
- default = false;
- };
- hardware.opengl.driSupport = mkOption {
- type = types.bool;
- default = true;
- description = ''
- Whether to enable accelerated OpenGL rendering through the
- Direct Rendering Interface (DRI).
- '';
- };
+ hardware.opengl = {
+ enable = mkOption {
+ description = ''
+ Whether to enable OpenGL drivers. This is needed to enable
+ OpenGL support in X11 systems, as well as for Wayland compositors
+ like sway, way-cooler and Weston. It is enabled by default
+ by the corresponding modules, so you do not usually have to
+ set it yourself, only if there is no module for your wayland
+ compositor of choice. See services.xserver.enable,
+ programs.sway.enable, and programs.way-cooler.enable.
+ '';
+ type = types.bool;
+ default = false;
+ };
- hardware.opengl.driSupport32Bit = mkOption {
- type = types.bool;
- default = false;
- description = ''
- On 64-bit systems, whether to support Direct Rendering for
- 32-bit applications (such as Wine). This is currently only
- supported for the nvidia and
- ati_unfree drivers, as well as
- Mesa.
- '';
- };
+ driSupport = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to enable accelerated OpenGL rendering through the
+ Direct Rendering Interface (DRI).
+ '';
+ };
- hardware.opengl.s3tcSupport = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Make S3TC(S3 Texture Compression) via libtxc_dxtn available
- to OpenGL drivers instead of the patent-free S2TC replacement.
+ driSupport32Bit = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ On 64-bit systems, whether to support Direct Rendering for
+ 32-bit applications (such as Wine). This is currently only
+ supported for the nvidia and
+ ati_unfree drivers, as well as
+ Mesa.
+ '';
+ };
- Using this library may require a patent license depending on your location.
- '';
- };
+ s3tcSupport = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Make S3TC(S3 Texture Compression) via libtxc_dxtn available
+ to OpenGL drivers instead of the patent-free S2TC replacement.
- hardware.opengl.package = mkOption {
- type = types.package;
- internal = true;
- description = ''
- The package that provides the OpenGL implementation.
- '';
- };
+ Using this library may require a patent license depending on your location.
+ '';
+ };
- hardware.opengl.package32 = mkOption {
- type = types.package;
- internal = true;
- description = ''
- The package that provides the 32-bit OpenGL implementation on
- 64-bit systems. Used when is
- set.
- '';
- };
+ package = mkOption {
+ type = types.package;
+ internal = true;
+ description = ''
+ The package that provides the OpenGL implementation.
+ '';
+ };
- hardware.opengl.extraPackages = mkOption {
- type = types.listOf types.package;
- default = [];
- example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]";
- description = ''
- Additional packages to add to OpenGL drivers. This can be used
- to add OpenCL drivers, VA-API/VDPAU drivers etc.
- '';
- };
+ package32 = mkOption {
+ type = types.package;
+ internal = true;
+ description = ''
+ The package that provides the 32-bit OpenGL implementation on
+ 64-bit systems. Used when is
+ set.
+ '';
+ };
- hardware.opengl.extraPackages32 = mkOption {
- type = types.listOf types.package;
- default = [];
- example = literalExample "with pkgs.pkgsi686Linux; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]";
- description = ''
- Additional packages to add to 32-bit OpenGL drivers on
- 64-bit systems. Used when is
- set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
- '';
+ extraPackages = mkOption {
+ type = types.listOf types.package;
+ default = [];
+ example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]";
+ description = ''
+ Additional packages to add to OpenGL drivers. This can be used
+ to add OpenCL drivers, VA-API/VDPAU drivers etc.
+ '';
+ };
+
+ extraPackages32 = mkOption {
+ type = types.listOf types.package;
+ default = [];
+ example = literalExample "with pkgs.pkgsi686Linux; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]";
+ description = ''
+ Additional packages to add to 32-bit OpenGL drivers on
+ 64-bit systems. Used when is
+ set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
+ '';
+ };
};
};
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index a1f1cef07ad..eb195228033 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -25,13 +25,6 @@ let
nvidia_x11 = nvidiaForKernel config.boot.kernelPackages;
nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; };
- nvidiaPackage = nvidia: pkgs:
- if !nvidia.useGLVND then nvidia.out
- else pkgs.buildEnv {
- name = "nvidia-libs";
- paths = [ pkgs.libglvnd nvidia.out ];
- };
-
enabled = nvidia_x11 != null;
in
@@ -57,8 +50,8 @@ in
source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";
};
- hardware.opengl.package = nvidiaPackage nvidia_x11 pkgs;
- hardware.opengl.package32 = nvidiaPackage nvidia_libs32 pkgs_i686;
+ hardware.opengl.package = nvidia_x11.out;
+ hardware.opengl.package32 = nvidia_libs32.out;
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ]
++ lib.filter (p: p != null) [ nvidia_x11.persistenced ];
diff --git a/nixos/modules/installer/cd-dvd/channel.nix b/nixos/modules/installer/cd-dvd/channel.nix
index 4a198316795..01cfe8a02e1 100644
--- a/nixos/modules/installer/cd-dvd/channel.nix
+++ b/nixos/modules/installer/cd-dvd/channel.nix
@@ -21,7 +21,9 @@ let
if [ ! -e $out/nixos/nixpkgs ]; then
ln -s . $out/nixos/nixpkgs
fi
+ echo -n ${config.system.nixos.revision} > $out/nixos/.git-revision
echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
+ echo ${config.system.nixos.versionSuffix} | sed -e s/pre// > $out/nixos/svn-revision
'';
in
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index e7cbf415a22..08923970cd3 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -59,7 +59,7 @@ let
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with verbose logging to the console
- LABEL boot-nomodeset
+ LABEL boot-debug
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
@@ -73,7 +73,8 @@ let
APPEND ${toString config.boot.loader.grub.memtest86.params}
'';
- isolinuxCfg = baseIsolinuxCfg + (optionalString config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry);
+ isolinuxCfg = concatStringsSep "\n"
+ ([ baseIsolinuxCfg ] ++ optional config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry);
# The EFI boot image.
efiDir = pkgs.runCommand "efi-directory" {} ''
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 4774cf39c03..6bb556a0123 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
{
- x86_64-linux = "/nix/store/6p2gambjac7xdkd2a7w1dsxdk1q5cq4d-nix-2.0";
- i686-linux = "/nix/store/zznnaijjk3nwx0cmpczxsvngmqzhl7r4-nix-2.0";
- aarch64-linux = "/nix/store/ci96w9kxfkmlc7x2vwqiz4da0r6abxnq-nix-2.0";
- x86_64-darwin = "/nix/store/xmi4fylvx4qc79ji9v5q3zfy9vfdy4sv-nix-2.0";
+ x86_64-linux = "/nix/store/2gk7rk2sx2dkmsjr59gignrfdmya8f6s-nix-2.0.1";
+ i686-linux = "/nix/store/5160glkphiv13qggnivyidg8r0491pbl-nix-2.0.1";
+ aarch64-linux = "/nix/store/jk29zz3ns9vdkkclcyzzkpzp8dhv1x3i-nix-2.0.1";
+ x86_64-darwin = "/nix/store/4a9czmrpd4hf3r80zcmga2c2lm3hbbvv-nix-2.0.1";
}
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 67939118961..518dbbbf21e 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -51,8 +51,9 @@ if [[ ! -e $mountPoint/etc/NIXOS ]]; then
exit 126
fi
-mkdir -m 0755 -p "$mountPoint/dev"
+mkdir -m 0755 -p "$mountPoint/dev" "$mountPoint/sys"
mount --rbind /dev "$mountPoint/dev"
+mount --rbind /sys "$mountPoint/sys"
# Run the activation script. Set $LOCALE_ARCHIVE to supress some Perl locale warnings.
LOCALE_ARCHIVE=$system/sw/lib/locale/locale-archive chroot "$mountPoint" "$system/activate" >&2 || true
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 0e0744a52e4..74b61a64667 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -577,15 +577,14 @@ $bootLoaderConfig
# Set your time zone.
# time.timeZone = "Europe/Amsterdam";
- # List packages installed in system profile. To search by name, run:
- # \$ nix-env -qaP | grep wget
+ # List packages installed in system profile. To search, run:
+ # \$ nix search wget
# environment.systemPackages = with pkgs; [
# wget vim
# ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
- # programs.bash.enableCompletion = true;
# programs.mtr.enable = true;
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index cea8981370b..2e426c01708 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -16,7 +16,10 @@ let cfg = config.documentation; in
description = ''
Whether to install documentation of packages from
into the generated system path.
+
+ See "Multiple-output packages" chapter in the nixpkgs manual for more info.
'';
+ # which is at ../../../doc/multiple-output.xml
};
man.enable = mkOption {
@@ -28,6 +31,15 @@ let cfg = config.documentation; in
'';
};
+ info.enable = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether to install info pages and the info command.
+ This also includes "info" outputs.
+ '';
+ };
+
doc.enable = mkOption {
type = types.bool;
default = true;
@@ -38,12 +50,19 @@ let cfg = config.documentation; in
'';
};
- info.enable = mkOption {
+ dev.enable = mkOption {
type = types.bool;
- default = true;
+ default = false;
description = ''
- Whether to install info pages and the info command.
- This also includes "info" outputs.
+ Whether to install documentation targeted at developers.
+
+ This includes man pages targeted at developers if is
+ set (this also includes "devman" outputs).
+ This includes info pages targeted at developers if
+ is set (this also includes "devinfo" outputs).
+ This includes other pages targeted at developers if
+ is set (this also includes "devdoc" outputs).
+
'';
};
@@ -56,20 +75,20 @@ let cfg = config.documentation; in
(mkIf cfg.man.enable {
environment.systemPackages = [ pkgs.man-db ];
environment.pathsToLink = [ "/share/man" ];
- environment.extraOutputsToInstall = [ "man" ];
+ environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable [ "devman" ];
+ })
+
+ (mkIf cfg.info.enable {
+ environment.systemPackages = [ pkgs.texinfoInteractive ];
+ environment.pathsToLink = [ "/share/info" ];
+ environment.extraOutputsToInstall = [ "info" ] ++ optional cfg.dev.enable [ "devinfo" ];
})
(mkIf cfg.doc.enable {
# TODO(@oxij): put it here and remove from profiles?
# environment.systemPackages = [ pkgs.w3m ]; # w3m-nox?
environment.pathsToLink = [ "/share/doc" ];
- environment.extraOutputsToInstall = [ "doc" ];
- })
-
- (mkIf cfg.info.enable {
- environment.systemPackages = [ pkgs.texinfoInteractive ];
- environment.pathsToLink = [ "/share/info" ];
- environment.extraOutputsToInstall = [ "info" ];
+ environment.extraOutputsToInstall = [ "doc" ] ++ optional cfg.dev.enable [ "devdoc" ];
})
]);
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 3594f57595c..ab3cbcab064 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -56,7 +56,7 @@
#dialout = 27; # unused
polkituser = 28;
#utmp = 29; # unused
- ddclient = 30;
+ # ddclient = 30; # converted to DynamicUser = true
davfs2 = 31;
#disnix = 33; # unused
osgi = 34;
@@ -344,7 +344,7 @@
dialout = 27;
#polkituser = 28; # currently unused, polkitd doesn't need a group
utmp = 29;
- ddclient = 30;
+ # ddclient = 30; # converted to DynamicUser = true
davfs2 = 31;
disnix = 33;
osgi = 34;
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 51953d1110c..ce5765cf197 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -97,7 +97,7 @@ in {
Whether not to index bind mounts
'';
};
-
+
};
config = mkIf cfg.enable {
@@ -133,13 +133,26 @@ in {
systemd.services.update-locatedb =
{ description = "Update Locate Database";
path = mkIf (!isMLocate) [ pkgs.su ];
+
+ # mlocate's updatedb takes flags via a configuration file or
+ # on the command line, but not by environment variable.
script =
+ if isMLocate
+ then let toFlags = x: optional (cfg.${x} != [])
+ "--${lib.toLower x} '${concatStringsSep " " cfg.${x}}'";
+ args = concatLists (map toFlags ["pruneFS" "pruneNames" "prunePaths"]);
+ in ''
+ exec ${cfg.locate}/bin/updatedb \
+ --output ${toString cfg.output} ${concatStringsSep " " args} \
+ --prune-bind-mounts ${if cfg.pruneBindMounts then "yes" else "no"} \
+ ${concatStringsSep " " cfg.extraFlags}
''
+ else ''
exec ${cfg.locate}/bin/updatedb \
${optionalString (cfg.localuser != null && ! isMLocate) ''--localuser=${cfg.localuser}''} \
--output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
'';
- environment = {
+ environment = optionalAttrs (!isMLocate) {
PRUNEFS = concatStringsSep " " cfg.pruneFS;
PRUNEPATHS = concatStringsSep " " cfg.prunePaths;
PRUNENAMES = concatStringsSep " " cfg.pruneNames;
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 9217250eec2..8fbe218b232 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -33,7 +33,11 @@ let
configType = mkOptionType {
name = "nixpkgs-config";
description = "nixpkgs config";
- check = traceValIfNot isConfig;
+ check = x:
+ let traceXIfNot = c:
+ if c x then true
+ else lib.traceSeqN 1 x false;
+ in traceXIfNot isConfig;
merge = args: fold (def: mergeConfig def.value) {};
};
@@ -58,10 +62,13 @@ in
pkgs = mkOption {
defaultText = literalExample
''import "''${nixos}/.." {
- inherit (config.nixpkgs) config overlays system;
+ inherit (config.nixpkgs) config overlays localSystem crossSystem;
}
'';
- default = import ../../.. { inherit (cfg) config overlays system crossSystem; };
+ default = import ../../.. {
+ localSystem = { inherit (cfg) system; } // cfg.localSystem;
+ inherit (cfg) config overlays crossSystem;
+ };
type = pkgsType;
example = literalExample ''import {}'';
description = ''
@@ -73,8 +80,9 @@ in
relative to the location of this NixOS module, because
NixOS and Nixpkgs are distributed together for consistency,
so the nixos in the default value is in fact a
- relative path. The config, overlays
- and system come from this option's siblings.
+ relative path. The config, overlays,
+ localSystem, and crossSystem come
+ from this option's siblings.
This option can be used by applications like NixOps to increase
the performance of evaluation, or to create packages that depend
@@ -130,13 +138,40 @@ in
'';
};
- crossSystem = mkOption {
- type = types.nullOr types.attrs;
- default = null;
+ localSystem = mkOption {
+ type = types.attrs; # TODO utilize lib.systems.parsedPlatform
+ default = { system = builtins.currentSystem; };
+ example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
+ defaultText = literalExample
+ ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
description = ''
- The description of the system we're cross-compiling to, or null
- if this isn't a cross-compile. See the description of the
- crossSystem argument in the nixpkgs manual.
+ Specifies the platform on which NixOS should be built. When
+ nixpkgs.crossSystem is unset, it also specifies
+ the platform for which NixOS should be
+ built. If this option is unset, it defaults to the platform
+ type of the machine where evaluation happens. Specifying this
+ option is useful when doing distributed multi-platform
+ deployment, or when building virtual machines. See its
+ description in the Nixpkgs manual for more details.
+
+ Ignored when nixpkgs.pkgs is set.
+ '';
+ };
+
+ crossSystem = mkOption {
+ type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
+ default = null;
+ example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
+ defaultText = literalExample
+ ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
+ description = ''
+ Specifies the platform for which NixOS should be
+ built. Specify this only if it is different from
+ nixpkgs.localSystem, the platform
+ on which NixOS should be built. In other
+ words, specify this to cross-compile NixOS. Otherwise it
+ should be set as null, the default. See its description in the
+ Nixpkgs manual for more details.
Ignored when nixpkgs.pkgs is set.
'';
@@ -146,10 +181,20 @@ in
type = types.str;
example = "i686-linux";
description = ''
- Specifies the Nix platform type for which NixOS should be built.
- If unset, it defaults to the platform type of your host system.
- Specifying this option is useful when doing distributed
- multi-platform deployment, or when building virtual machines.
+ Specifies the Nix platform type on which NixOS should be built.
+ It is better to specify nixpkgs.localSystem instead.
+
+ {
+ nixpkgs.system = ..;
+ }
+
+ is the same as
+
+ {
+ nixpkgs.localSystem.system = ..;
+ }
+
+ See nixpkgs.localSystem for more information.
Ignored when nixpkgs.pkgs is set.
'';
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 7519d917698..b8f0a223c91 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -16,21 +16,6 @@ in
options.system = {
- # XXX: Reintroduce old options to make nixops before 1.6 able to evaluate configurations
- # XXX: Remove after nixops has been bumped to a compatible version
- nixosVersion = mkOption {
- readOnly = true;
- internal = true;
- type = types.str;
- default = config.system.nixos.version;
- };
- nixosVersionSuffix = mkOption {
- readOnly = true;
- internal = true;
- type = types.str;
- default = config.system.nixos.versionSuffix;
- };
-
nixos.version = mkOption {
internal = true;
type = types.str;
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 3a9a2bf8661..8ef76b9d81e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -166,6 +166,7 @@
./services/backup/crashplan-small-business.nix
./services/backup/mysql-backup.nix
./services/backup/postgresql-backup.nix
+ ./services/backup/restic.nix
./services/backup/rsnapshot.nix
./services/backup/tarsnap.nix
./services/backup/znapzend.nix
@@ -194,6 +195,7 @@
./services/databases/clickhouse.nix
./services/databases/couchdb.nix
./services/databases/firebird.nix
+ ./services/databases/foundationdb.nix
./services/databases/hbase.nix
./services/databases/influxdb.nix
./services/databases/memcached.nix
@@ -325,7 +327,7 @@
./services/misc/geoip-updater.nix
./services/misc/gitea.nix
#./services/misc/gitit.nix
- #./services/misc/gitlab.nix
+ ./services/misc/gitlab.nix
./services/misc/gitolite.nix
./services/misc/gitweb.nix
./services/misc/gogs.nix
@@ -480,6 +482,7 @@
./services/networking/gnunet.nix
./services/networking/gogoclient.nix
./services/networking/gvpe.nix
+ ./services/networking/hans.nix
./services/networking/haproxy.nix
./services/networking/heyefi.nix
./services/networking/hostapd.nix
@@ -533,7 +536,7 @@
./services/networking/prayer.nix
./services/networking/privoxy.nix
./services/networking/prosody.nix
- # ./services/networking/quagga.nix
+ ./services/networking/quagga.nix
./services/networking/quassel.nix
./services/networking/racoon.nix
./services/networking/radicale.nix
@@ -547,6 +550,7 @@
./services/networking/searx.nix
./services/networking/seeks.nix
./services/networking/skydns.nix
+ ./services/networking/shadowsocks.nix
./services/networking/shairport-sync.nix
./services/networking/shout.nix
./services/networking/sniproxy.nix
@@ -558,6 +562,7 @@
./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix
./services/networking/strongswan.nix
+ ./services/networking/strongswan-swanctl/module.nix
./services/networking/stunnel.nix
./services/networking/supplicant.nix
./services/networking/supybot.nix
diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix
index c0967316c0c..69a1a482d07 100644
--- a/nixos/modules/programs/bash/bash.nix
+++ b/nixos/modules/programs/bash/bash.nix
@@ -110,7 +110,7 @@ in
};
enableCompletion = mkOption {
- default = false;
+ default = true;
description = ''
Enable Bash completion for all interactive bash shells.
'';
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 0c3ac054292..a1ead80cc21 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -23,6 +23,8 @@ with lib;
(config:
let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config;
in if enabled then [ pkgs.gutenprint ] else [ ]))
+ (mkRenamedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ])
+ (mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "")
(mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ])
(mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ])
(mkRenamedOptionModule [ "services" "graphite" "web" "host" ] [ "services" "graphite" "web" "listenAddress" ])
@@ -187,22 +189,20 @@ with lib;
(mkRenamedOptionModule [ "services" "xserver" "desktopManager" "kde5" ] [ "services" "xserver" "desktopManager" "plasma5" ])
# Fontconfig
- (mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "allowBitmaps" ] [ "config" "fonts" "fontconfig" "allowBitmaps" ])
- (mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "allowType1" ] [ "config" "fonts" "fontconfig" "allowType1" ])
- (mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "useEmbeddedBitmaps" ] [ "config" "fonts" "fontconfig" "useEmbeddedBitmaps" ])
- (mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "forceAutohint" ] [ "config" "fonts" "fontconfig" "forceAutohint" ])
- (mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "renderMonoTTFAsBitmap" ] [ "config" "fonts" "fontconfig" "renderMonoTTFAsBitmap" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "allowBitmaps" ] [ "fonts" "fontconfig" "allowBitmaps" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "allowType1" ] [ "fonts" "fontconfig" "allowType1" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "useEmbeddedBitmaps" ] [ "fonts" "fontconfig" "useEmbeddedBitmaps" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "forceAutohint" ] [ "fonts" "fontconfig" "forceAutohint" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "renderMonoTTFAsBitmap" ] [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ])
# Profile splitting
(mkRenamedOptionModule [ "virtualization" "growPartition" ] [ "boot" "growPartition" ])
# misc/version.nix
- #(mkRenamedOptionModule [ "config" "system" "nixosVersion" ] [ "config" "system" "nixos" "version" ])
- (mkRenamedOptionModule [ "config" "system" "nixosRelease" ] [ "config" "system" "nixos" "release" ])
- #(mkRenamedOptionModule [ "config" "system" "nixosVersionSuffix" ] [ "config" "system" "nixos" "versionSuffix" ])
- (mkRenamedOptionModule [ "config" "system" "nixosRevision" ] [ "config" "system" "nixos" "revision" ])
- (mkRenamedOptionModule [ "config" "system" "nixosCodeName" ] [ "config" "system" "nixos" "codeName" ])
- (mkRenamedOptionModule [ "config" "system" "nixosLabel" ] [ "config" "system" "nixos" "label" ])
+ (mkRenamedOptionModule [ "system" "nixosVersion" ] [ "system" "nixos" "version" ])
+ (mkRenamedOptionModule [ "system" "nixosVersionSuffix" ] [ "system" "nixos" "versionSuffix" ])
+ (mkRenamedOptionModule [ "system" "nixosRevision" ] [ "system" "nixos" "revision" ])
+ (mkRenamedOptionModule [ "system" "nixosLabel" ] [ "system" "nixos" "label" ])
# Users
(mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ])
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index e9676d9dfb1..e430c2ddb90 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -58,9 +58,11 @@ let
default = "";
example = "systemctl reload nginx.service";
description = ''
- Commands to run after certificates are re-issued. Typically
+ Commands to run after new certificates go live. Typically
the web server and other servers using certificates need to
be reloaded.
+
+ Executed in the same directory with the new certificate.
'';
};
@@ -78,6 +80,27 @@ let
'';
};
+ activationDelay = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Systemd time span expression to delay copying new certificates to main
+ state directory. See systemd.time
+ 7.
+ '';
+ };
+
+ preDelay = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Commands to run after certificates are re-issued but before they are
+ activated. Typically the new certificate is published to DNS.
+
+ Executed in the same directory with the new certificate.
+ '';
+ };
+
extraDomains = mkOption {
type = types.attrsOf (types.nullOr types.str);
default = {};
@@ -186,14 +209,15 @@ in
servicesLists = mapAttrsToList certToServices cfg.certs;
certToServices = cert: data:
let
- cpath = "${cfg.directory}/${cert}";
+ domain = if data.domain != null then data.domain else cert;
+ cpath = lpath + optionalString (data.activationDelay != null) ".staging";
+ lpath = "${cfg.directory}/${cert}";
rights = if data.allowKeysForGroup then "750" else "700";
cmdline = [ "-v" "-d" data.domain "--default_root" data.webroot "--valid_min" cfg.validMin ]
++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)
- ++ (if cfg.production then []
- else ["--server" "https://acme-staging.api.letsencrypt.org/directory"]);
+ ++ optionals (!cfg.production) ["--server" "https://acme-staging.api.letsencrypt.org/directory"];
acmeService = {
description = "Renew ACME Certificate for ${cert}";
after = [ "network.target" "network-online.target" ];
@@ -206,7 +230,7 @@ in
Group = data.group;
PrivateTmp = true;
};
- path = [ pkgs.simp_le ];
+ path = with pkgs; [ simp_le systemd ];
preStart = ''
mkdir -p '${cfg.directory}'
chown 'root:root' '${cfg.directory}'
@@ -229,17 +253,39 @@ in
exit "$EXITCODE"
'';
postStop = ''
+ cd '${cpath}'
+
if [ -e /tmp/lastExitCode ] && [ "$(cat /tmp/lastExitCode)" = "0" ]; then
- echo "Executing postRun hook..."
- ${data.postRun}
+ ${if data.activationDelay != null then ''
+
+ ${data.preDelay}
+
+ if [ -d '${lpath}' ]; then
+ systemd-run --no-block --on-active='${data.activationDelay}' --unit acme-setlive-${cert}.service
+ else
+ systemctl --wait start acme-setlive-${cert}.service
+ fi
+ '' else data.postRun}
fi
'';
before = [ "acme-certificates.target" ];
wantedBy = [ "acme-certificates.target" ];
};
+ delayService = {
+ description = "Set certificate for ${cert} live";
+ path = with pkgs; [ rsync ];
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ script = ''
+ rsync -a --delete-after '${cpath}/' '${lpath}'
+ '';
+ postStop = data.postRun;
+ };
selfsignedService = {
description = "Create preliminary self-signed certificate for ${cert}";
+ path = [ pkgs.openssl ];
preStart = ''
if [ ! -d '${cpath}' ]
then
@@ -250,37 +296,41 @@ in
'';
script =
''
- # Create self-signed key
- workdir="/run/acme-selfsigned-${cert}"
- ${pkgs.openssl.bin}/bin/openssl genrsa -des3 -passout pass:x -out $workdir/server.pass.key 2048
- ${pkgs.openssl.bin}/bin/openssl rsa -passin pass:x -in $workdir/server.pass.key -out $workdir/server.key
- ${pkgs.openssl.bin}/bin/openssl req -new -key $workdir/server.key -out $workdir/server.csr \
+ workdir="$(mktemp -d)"
+
+ # Create CA
+ openssl genrsa -des3 -passout pass:x -out $workdir/ca.pass.key 2048
+ openssl rsa -passin pass:x -in $workdir/ca.pass.key -out $workdir/ca.key
+ openssl req -new -key $workdir/ca.key -out $workdir/ca.csr \
+ -subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=Security Department/CN=example.com"
+ openssl x509 -req -days 1 -in $workdir/ca.csr -signkey $workdir/ca.key -out $workdir/ca.crt
+
+ # Create key
+ openssl genrsa -des3 -passout pass:x -out $workdir/server.pass.key 2048
+ openssl rsa -passin pass:x -in $workdir/server.pass.key -out $workdir/server.key
+ openssl req -new -key $workdir/server.key -out $workdir/server.csr \
-subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=IT Department/CN=example.com"
- ${pkgs.openssl.bin}/bin/openssl x509 -req -days 1 -in $workdir/server.csr -signkey $workdir/server.key -out $workdir/server.crt
+ openssl x509 -req -days 1 -in $workdir/server.csr -CA $workdir/ca.crt \
+ -CAkey $workdir/ca.key -CAserial $workdir/ca.srl -CAcreateserial \
+ -out $workdir/server.crt
- # Move key to destination
- mv $workdir/server.key ${cpath}/key.pem
- mv $workdir/server.crt ${cpath}/fullchain.pem
+ # Copy key to destination
+ cp $workdir/server.key ${cpath}/key.pem
- # Create full.pem for e.g. lighttpd (same format as "simp_le ... -f full.pem" creates)
- cat "${cpath}/key.pem" "${cpath}/fullchain.pem" > "${cpath}/full.pem"
+ # Create fullchain.pem (same format as "simp_le ... -f fullchain.pem" creates)
+ cat $workdir/{server.crt,ca.crt} > "${cpath}/fullchain.pem"
- # Clean up working directory
- rm $workdir/server.csr
- rm $workdir/server.pass.key
+ # Create full.pem for e.g. lighttpd
+ cat $workdir/{server.key,server.crt,ca.crt} > "${cpath}/full.pem"
# Give key acme permissions
- chmod ${rights} '${cpath}/key.pem'
- chown '${data.user}:${data.group}' '${cpath}/key.pem'
- chmod ${rights} '${cpath}/fullchain.pem'
- chown '${data.user}:${data.group}' '${cpath}/fullchain.pem'
- chmod ${rights} '${cpath}/full.pem'
- chown '${data.user}:${data.group}' '${cpath}/full.pem'
+ chown '${data.user}:${data.group}' "${cpath}/"{key,fullchain,full}.pem
+ chmod ${rights} "${cpath}/"{key,fullchain,full}.pem
'';
serviceConfig = {
Type = "oneshot";
- RuntimeDirectory = "acme-selfsigned-${cert}";
PermissionsStartOnly = true;
+ PrivateTmp = true;
User = data.user;
Group = data.group;
};
@@ -297,11 +347,8 @@ in
};
in (
[ { name = "acme-${cert}"; value = acmeService; } ]
- ++
- (if cfg.preliminarySelfsigned
- then [ { name = "acme-selfsigned-${cert}"; value = selfsignedService; } ]
- else []
- )
+ ++ optional cfg.preliminarySelfsigned { name = "acme-selfsigned-${cert}"; value = selfsignedService; }
+ ++ optional (data.activationDelay != null) { name = "acme-setlive-${cert}"; value = delayService; }
);
servicesAttr = listToAttrs services;
injectServiceDep = {
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index f2bdfcf885e..48998285d89 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -234,6 +234,11 @@ let
password, KDE will prompt separately after login.
'';
};
+ sssdStrictAccess = mkOption {
+ default = false;
+ type = types.bool;
+ description = "enforce sssd access control";
+ };
enableGnomeKeyring = mkOption {
default = false;
@@ -264,11 +269,13 @@ let
text = mkDefault
(''
# Account management.
- account sufficient pam_unix.so
+ account ${if cfg.sssdStrictAccess then "required" else "sufficient"} pam_unix.so
${optionalString use_ldap
"account sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
- ${optionalString config.services.sssd.enable
+ ${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false)
"account sufficient ${pkgs.sssd}/lib/security/pam_sss.so"}
+ ${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess)
+ "account [default=bad success=ok user_unknown=ignore] ${pkgs.sssd}/lib/security/pam_sss.so"}
${optionalString config.krb5.enable
"account sufficient ${pam_krb5}/lib/security/pam_krb5.so"}
diff --git a/nixos/modules/security/wrappers/wrapper.c b/nixos/modules/security/wrappers/wrapper.c
index 7091e314bb2..494e9e93ac2 100644
--- a/nixos/modules/security/wrappers/wrapper.c
+++ b/nixos/modules/security/wrappers/wrapper.c
@@ -10,8 +10,8 @@
#include
#include
#include
-#include
#include
+#include
#include
// Make sure assertions are not compiled out, we use them to codify
diff --git a/nixos/modules/services/audio/alsa.nix b/nixos/modules/services/audio/alsa.nix
index e3e8bb28c58..376aad66e23 100644
--- a/nixos/modules/services/audio/alsa.nix
+++ b/nixos/modules/services/audio/alsa.nix
@@ -54,6 +54,11 @@ in
description = ''
Whether to enable volume and capture control with keyboard media keys.
+ You want to leave this disabled if you run a desktop environment
+ like KDE, Gnome, Xfce, etc, as those handle such things themselves.
+ You might want to enable this if you run a minimalistic desktop
+ environment or work from bare linux ttys/framebuffers.
+
Enabling this will turn on .
'';
};
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix
new file mode 100644
index 00000000000..21d82469c60
--- /dev/null
+++ b/nixos/modules/services/backup/restic.nix
@@ -0,0 +1,150 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+{
+ options.services.restic.backups = mkOption {
+ description = ''
+ Periodic backups to create with Restic.
+ '';
+ type = types.attrsOf (types.submodule ({ name, config, ... }: {
+ options = {
+ passwordFile = mkOption {
+ type = types.str;
+ description = ''
+ Read the repository password from a file.
+ '';
+ example = "/etc/nixos/restic-password";
+
+ };
+
+ repository = mkOption {
+ type = types.str;
+ description = ''
+ repository to backup to.
+ '';
+ example = "sftp:backup@192.168.1.100:/backups/${name}";
+ };
+
+ paths = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ Which paths to backup.
+ '';
+ example = [
+ "/var/lib/postgresql"
+ "/home/user/backup"
+ ];
+ };
+
+ timerConfig = mkOption {
+ type = types.attrsOf types.str;
+ default = {
+ OnCalendar = "daily";
+ };
+ description = ''
+ When to run the backup. See man systemd.timer for details.
+ '';
+ example = {
+ OnCalendar = "00:05";
+ RandomizedDelaySec = "5h";
+ };
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "root";
+ description = ''
+ As which user the backup should run.
+ '';
+ example = "postgresql";
+ };
+
+ extraBackupArgs = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ Extra arguments passed to restic backup.
+ '';
+ example = [
+ "--exclude-file=/etc/nixos/restic-ignore"
+ ];
+ };
+
+ extraOptions = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ Extra extended options to be passed to the restic --option flag.
+ '';
+ example = [
+ "sftp.command='ssh backup@192.168.1.100 -i /home/user/.ssh/id_rsa -s sftp'"
+ ];
+ };
+
+ initialize = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Create the repository if it doesn't exist.
+ '';
+ };
+ };
+ }));
+ default = {};
+ example = {
+ localbackup = {
+ paths = [ "/home" ];
+ repository = "/mnt/backup-hdd";
+ passwordFile = "/etc/nixos/secrets/restic-password";
+ initialize = true;
+ };
+ remotebackup = {
+ paths = [ "/home" ];
+ repository = "sftp:backup@host:/backups/home";
+ passwordFile = "/etc/nixos/secrets/restic-password";
+ extraOptions = [
+ "sftp.command='ssh backup@host -i /etc/nixos/secrets/backup-private-key -s sftp'"
+ ];
+ timerConfig = {
+ OnCalendar = "00:05";
+ RandomizedDelaySec = "5h";
+ };
+ };
+ };
+ };
+
+ config = {
+ systemd.services =
+ mapAttrs' (name: backup:
+ let
+ extraOptions = concatMapStrings (arg: " -o ${arg}") backup.extraOptions;
+ connectTo = elemAt (splitString ":" backup.repository) 1;
+ resticCmd = "${pkgs.restic}/bin/restic${extraOptions}";
+ in nameValuePair "restic-backups-${name}" ({
+ environment = {
+ RESTIC_PASSWORD_FILE = backup.passwordFile;
+ RESTIC_REPOSITORY = backup.repository;
+ };
+ path = with pkgs; [
+ openssh
+ ];
+ restartIfChanged = false;
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${resticCmd} backup ${concatStringsSep " " backup.extraBackupArgs} ${concatStringsSep " " backup.paths}";
+ User = backup.user;
+ };
+ } // optionalAttrs backup.initialize {
+ preStart = ''
+ ${resticCmd} snapshots || ${resticCmd} init
+ '';
+ })
+ ) config.services.restic.backups;
+ systemd.timers =
+ mapAttrs' (name: backup: nameValuePair "restic-backups-${name}" {
+ wantedBy = [ "timers.target" ];
+ timerConfig = backup.timerConfig;
+ }) config.services.restic.backups;
+ };
+}
diff --git a/nixos/modules/services/computing/boinc/client.nix b/nixos/modules/services/computing/boinc/client.nix
index e43b6bbb253..8abe3c5b8c9 100644
--- a/nixos/modules/services/computing/boinc/client.nix
+++ b/nixos/modules/services/computing/boinc/client.nix
@@ -6,6 +6,13 @@ let
cfg = config.services.boinc;
allowRemoteGuiRpcFlag = optionalString cfg.allowRemoteGuiRpc "--allow_remote_gui_rpc";
+ fhsEnv = pkgs.buildFHSUserEnv {
+ name = "boinc-fhs-env";
+ targetPkgs = pkgs': [ cfg.package ] ++ cfg.extraEnvPackages;
+ runScript = "/bin/boinc_client";
+ };
+ fhsEnvExecutable = "${fhsEnv}/bin/${fhsEnv.name}";
+
in
{
options.services.boinc = {
@@ -49,6 +56,43 @@ in
See also:
'';
};
+
+ extraEnvPackages = mkOption {
+ type = types.listOf types.package;
+ default = [];
+ example = "[ pkgs.virtualbox ]";
+ description = ''
+ Additional packages to make available in the environment in which
+ BOINC will run. Common choices are:
+
+
+ pkgs.virtualbox
+
+ The VirtualBox virtual machine framework. Required by some BOINC
+ projects, such as ATLAS@home.
+
+
+
+ pkgs.ocl-icd
+
+ OpenCL infrastructure library. Required by BOINC projects that
+ use OpenCL, in addition to a device-specific OpenCL driver.
+
+
+
+ pkgs.linuxPackages.nvidia_x11
+
+ Provides CUDA libraries. Required by BOINC projects that use
+ CUDA. Note that this requires an NVIDIA graphics device to be
+ present on the system.
+
+ Also provides OpenCL drivers for NVIDIA GPUs;
+ pkgs.ocl-icd is also needed in this case.
+
+
+
+ '';
+ };
};
config = mkIf cfg.enable {
@@ -70,7 +114,7 @@ in
chown boinc ${cfg.dataDir}
'';
script = ''
- ${cfg.package}/bin/boinc_client --dir ${cfg.dataDir} --redirectio ${allowRemoteGuiRpcFlag}
+ ${fhsEnvExecutable} --dir ${cfg.dataDir} --redirectio ${allowRemoteGuiRpcFlag}
'';
serviceConfig = {
PermissionsStartOnly = true; # preStart must be run as root
diff --git a/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixos/modules/services/continuous-integration/buildkite-agent.nix
index 03af9a7859e..d647b7b9fa4 100644
--- a/nixos/modules/services/continuous-integration/buildkite-agent.nix
+++ b/nixos/modules/services/continuous-integration/buildkite-agent.nix
@@ -17,7 +17,7 @@ let
hooksDir = let
mkHookEntry = name: value: ''
- cat > $out/${name} < $out/${name} <<'EOF'
#! ${pkgs.runtimeShell}
set -e
${value}
diff --git a/nixos/modules/services/databases/foundationdb.nix b/nixos/modules/services/databases/foundationdb.nix
new file mode 100644
index 00000000000..22acddc8ca9
--- /dev/null
+++ b/nixos/modules/services/databases/foundationdb.nix
@@ -0,0 +1,360 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.foundationdb;
+
+ # used for initial cluster configuration
+ initialIpAddr = if (cfg.publicAddress != "auto") then cfg.publicAddress else "127.0.0.1";
+
+ fdbServers = n:
+ concatStringsSep "\n" (map (x: "[fdbserver.${toString (x+cfg.listenPortStart)}]") (range 0 (n - 1)));
+
+ backupAgents = n:
+ concatStringsSep "\n" (map (x: "[backup_agent.${toString x}]") (range 1 n));
+
+ configFile = pkgs.writeText "foundationdb.conf" ''
+ [general]
+ cluster_file = /etc/foundationdb/fdb.cluster
+
+ [fdbmonitor]
+ restart_delay = ${toString cfg.restartDelay}
+ user = ${cfg.user}
+ group = ${cfg.group}
+
+ [fdbserver]
+ command = ${pkgs.foundationdb}/bin/fdbserver
+ public_address = ${cfg.publicAddress}:$ID
+ listen_address = ${cfg.listenAddress}
+ datadir = ${cfg.dataDir}/$ID
+ logdir = ${cfg.logDir}
+ logsize = ${cfg.logSize}
+ maxlogssize = ${cfg.maxLogSize}
+ ${optionalString (cfg.class != null) "class = ${cfg.class}"}
+ memory = ${cfg.memory}
+ storage_memory = ${cfg.storageMemory}
+
+ ${optionalString (cfg.locality.machineId != null) "locality_machineid=${cfg.locality.machineId}"}
+ ${optionalString (cfg.locality.zoneId != null) "locality_zoneid=${cfg.locality.zoneId}"}
+ ${optionalString (cfg.locality.datacenterId != null) "locality_dcid=${cfg.locality.datacenterId}"}
+ ${optionalString (cfg.locality.dataHall != null) "locality_data_hall=${cfg.locality.dataHall}"}
+
+ ${fdbServers cfg.serverProcesses}
+
+ [backup_agent]
+ command = ${pkgs.foundationdb}/libexec/backup_agent
+ ${backupAgents cfg.backupProcesses}
+ '';
+in
+{
+ options.services.foundationdb = {
+
+ enable = mkEnableOption "FoundationDB Server";
+
+ publicAddress = mkOption {
+ type = types.str;
+ default = "auto";
+ description = "Publicly visible IP address of the process. Port is determined by process ID";
+ };
+
+ listenAddress = mkOption {
+ type = types.str;
+ default = "public";
+ description = "Publicly visible IP address of the process. Port is determined by process ID";
+ };
+
+ listenPortStart = mkOption {
+ type = types.int;
+ default = 4500;
+ description = ''
+ Starting port number for database listening sockets. Every FDB process binds to a
+ subsequent port, to this number reflects the start of the overall range. e.g. having
+ 8 server processes will use all ports between 4500 and 4507.
+ '';
+ };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Open the firewall ports corresponding to FoundationDB processes and coordinators
+ using .
+ '';
+ };
+
+ dataDir = mkOption {
+ type = types.path;
+ default = "/var/lib/foundationdb";
+ description = "Data directory. All cluster data will be put under here.";
+ };
+
+ logDir = mkOption {
+ type = types.path;
+ default = "/var/log/foundationdb";
+ description = "Log directory.";
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "foundationdb";
+ description = "User account under which FoundationDB runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "foundationdb";
+ description = "Group account under which FoundationDB runs.";
+ };
+
+ class = mkOption {
+ type = types.nullOr (types.enum [ "storage" "transaction" "stateless" ]);
+ default = null;
+ description = "Process class";
+ };
+
+ restartDelay = mkOption {
+ type = types.int;
+ default = 10;
+ description = "Number of seconds to wait before restarting servers.";
+ };
+
+ logSize = mkOption {
+ type = types.string;
+ default = "10MiB";
+ description = ''
+ Roll over to a new log file after the current log file
+ reaches the specified size.
+ '';
+ };
+
+ maxLogSize = mkOption {
+ type = types.string;
+ default = "100MiB";
+ description = ''
+ Delete the oldest log file when the total size of all log
+ files exceeds the specified size. If set to 0, old log files
+ will not be deleted.
+ '';
+ };
+
+ serverProcesses = mkOption {
+ type = types.int;
+ default = 1;
+ description = "Number of fdbserver processes to run.";
+ };
+
+ backupProcesses = mkOption {
+ type = types.int;
+ default = 1;
+ description = "Number of backup_agent processes to run for snapshots.";
+ };
+
+ memory = mkOption {
+ type = types.string;
+ default = "8GiB";
+ description = ''
+ Maximum memory used by the process. The default value is
+ 8GiB. When specified without a unit,
+ MiB is assumed. This parameter does not
+ change the memory allocation of the program. Rather, it sets
+ a hard limit beyond which the process will kill itself and
+ be restarted. The default value of 8GiB
+ is double the intended memory usage in the default
+ configuration (providing an emergency buffer to deal with
+ memory leaks or similar problems). It is not recommended to
+ decrease the value of this parameter below its default
+ value. It may be increased if you wish to allocate a very
+ large amount of storage engine memory or cache. In
+ particular, when the storageMemory
+ parameter is increased, the memory
+ parameter should be increased by an equal amount.
+ '';
+ };
+
+ storageMemory = mkOption {
+ type = types.string;
+ default = "1GiB";
+ description = ''
+ Maximum memory used for data storage. The default value is
+ 1GiB. When specified without a unit,
+ MB is assumed. Clusters using the memory
+ storage engine will be restricted to using this amount of
+ memory per process for purposes of data storage. Memory
+ overhead associated with storing the data is counted against
+ this total. If you increase the
+ storageMemory, you should also increase
+ the memory parameter by the same amount.
+ '';
+ };
+
+ locality = mkOption {
+ default = {
+ machineId = null;
+ zoneId = null;
+ datacenterId = null;
+ dataHall = null;
+ };
+
+ description = ''
+ FoundationDB locality settings.
+ '';
+
+ type = types.submodule ({
+ options = {
+ machineId = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ Machine identifier key. All processes on a machine should share a
+ unique id. By default, processes on a machine determine a unique id to share.
+ This does not generally need to be set.
+ '';
+ };
+
+ zoneId = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ Zone identifier key. Processes that share a zone id are
+ considered non-unique for the purposes of data replication.
+ If unset, defaults to machine id.
+ '';
+ };
+
+ datacenterId = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ Data center identifier key. All processes physically located in a
+ data center should share the id. If you are depending on data
+ center based replication this must be set on all processes.
+ '';
+ };
+
+ dataHall = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ Data hall identifier key. All processes physically located in a
+ data hall should share the id. If you are depending on data
+ hall based replication this must be set on all processes.
+ '';
+ };
+ };
+ });
+ };
+
+ extraReadWritePaths = mkOption {
+ default = [ ];
+ type = types.listOf types.path;
+ description = ''
+ An extra set of filesystem paths that FoundationDB can read to
+ and write from. By default, FoundationDB runs under a heavily
+ namespaced systemd environment without write access to most of
+ the filesystem outside of its data and log directories. By
+ adding paths to this list, the set of writeable paths will be
+ expanded. This is useful for allowing e.g. backups to local files,
+ which must be performed on behalf of the foundationdb service.
+ '';
+ };
+
+ pidfile = mkOption {
+ type = types.path;
+ default = "/run/foundationdb.pid";
+ description = "Path to pidfile for fdbmonitor.";
+ };
+ };
+
+ config = mkIf cfg.enable {
+ meta.doc = ./foundationdb.xml;
+ meta.maintainers = with lib.maintainers; [ thoughtpolice ];
+
+ environment.systemPackages = [ pkgs.foundationdb ];
+
+ users.extraUsers = optionalAttrs (cfg.user == "foundationdb") (singleton
+ { name = "foundationdb";
+ description = "FoundationDB User";
+ uid = config.ids.uids.foundationdb;
+ group = cfg.group;
+ });
+
+ users.extraGroups = optionalAttrs (cfg.group == "foundationdb") (singleton
+ { name = "foundationdb";
+ gid = config.ids.gids.foundationdb;
+ });
+
+ networking.firewall.allowedTCPPortRanges = mkIf cfg.openFirewall
+ [ { from = cfg.listenPortStart;
+ to = (cfg.listenPortStart + cfg.serverProcesses) - 1;
+ }
+ ];
+
+ systemd.services.foundationdb = {
+ description = "FoundationDB Service";
+
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ unitConfig =
+ { RequiresMountsFor = "${cfg.dataDir} ${cfg.logDir}";
+ };
+
+ serviceConfig =
+ let rwpaths = [ cfg.dataDir cfg.logDir cfg.pidfile "/etc/foundationdb" ]
+ ++ cfg.extraReadWritePaths;
+ in
+ { Type = "simple";
+ Restart = "always";
+ RestartSec = 5;
+ User = cfg.user;
+ Group = cfg.group;
+ PIDFile = "${cfg.pidfile}";
+
+ PermissionsStartOnly = true; # setup needs root perms
+ TimeoutSec = 120; # give reasonable time to shut down
+
+ # Security options
+ NoNewPrivileges = true;
+ ProtectHome = true;
+ ProtectSystem = "strict";
+ ProtectKernelTunables = true;
+ ProtectControlGroups = true;
+ PrivateTmp = true;
+ PrivateDevices = true;
+ ReadWritePaths = lib.concatStringsSep " " (map (x: "-" + x) rwpaths);
+ };
+
+ path = [ pkgs.foundationdb pkgs.coreutils ];
+
+ preStart = ''
+ rm -f ${cfg.pidfile} && \
+ touch ${cfg.pidfile} && \
+ chown -R ${cfg.user}:${cfg.group} ${cfg.pidfile}
+
+ for x in "${cfg.logDir}" "${cfg.dataDir}" /etc/foundationdb; do
+ [ ! -d "$x" ] && mkdir -m 0700 -vp "$x" && chown -R ${cfg.user}:${cfg.group} "$x";
+ done
+
+ if [ ! -f /etc/foundationdb/fdb.cluster ]; then
+ cf=/etc/foundationdb/fdb.cluster
+ desc=$(tr -dc A-Za-z0-9 /dev/null | head -c8)
+ rand=$(tr -dc A-Za-z0-9 /dev/null | head -c8)
+ echo ''${desc}:''${rand}@${initialIpAddr}:${builtins.toString cfg.listenPortStart} > $cf
+ chmod 0660 $cf && chown -R ${cfg.user}:${cfg.group} $cf
+ touch "${cfg.dataDir}/.first_startup"
+ fi
+ '';
+
+ script = ''
+ exec fdbmonitor --lockfile ${cfg.pidfile} --conffile ${configFile};
+ '';
+
+ postStart = ''
+ if [ -e "${cfg.dataDir}/.first_startup" ]; then
+ fdbcli --exec "configure new single ssd"
+ rm -f "${cfg.dataDir}/.first_startup";
+ fi
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/services/databases/foundationdb.xml b/nixos/modules/services/databases/foundationdb.xml
new file mode 100644
index 00000000000..2a0e3c76c9d
--- /dev/null
+++ b/nixos/modules/services/databases/foundationdb.xml
@@ -0,0 +1,280 @@
+
+
+FoundationDB
+
+Source: modules/services/databases/foundationdb.nix
+
+Upstream documentation:
+
+Maintainer: Austin Seipp
+
+Default version: 5.1.x
+
+FoundationDB (or "FDB") is a distributed, open source, high performance,
+transactional key-value store. It can store petabytes of data and deliver
+exceptional performance while maintaining consistency and ACID semantics
+(serializable transactions) over a large cluster.
+
+Configuring and basic setup
+
+To enable FoundationDB, add the following to your
+configuration.nix:
+
+
+services.foundationdb.enable = true;
+
+
+
+After running nixos-rebuild, you can verify whether
+FoundationDB is running by executing fdbcli (which is added
+to ):
+
+
+$ sudo -u foundationdb fdbcli
+Using cluster file `/etc/foundationdb/fdb.cluster'.
+
+The database is available.
+
+Welcome to the fdbcli. For help, type `help'.
+fdb> status
+
+Using cluster file `/etc/foundationdb/fdb.cluster'.
+
+Configuration:
+ Redundancy mode - single
+ Storage engine - memory
+ Coordinators - 1
+
+Cluster:
+ FoundationDB processes - 1
+ Machines - 1
+ Memory availability - 5.4 GB per process on machine with least available
+ Fault Tolerance - 0 machines
+ Server time - 04/20/18 15:21:14
+
+...
+
+fdb>
+
+
+
+FoundationDB is run under the foundationdb user and
+group by default, but this may be changed in the NixOS configuration. The
+systemd unit foundationdb.service controls the
+fdbmonitor process.
+
+By default, the NixOS module for FoundationDB creates a single
+SSD-storage based database for development and basic usage. This storage engine
+is designed for SSDs and will perform poorly on HDDs; however it can handle far
+more data than the alternative "memory" engine and is a better default choice
+for most deployments. (Note that you can change the storage backend on-the-fly
+for a given FoundationDB cluster using fdbcli.)
+
+Furthermore, only 1 server process and 1 backup agent are started in the
+default configuration. See below for more on scaling to increase this.
+
+FoundationDB stores all data for all server processes under
+/var/lib/foundationdb. You can override this using
+, e.g.
+
+
+services.foundationdb.dataDir = "/data/fdb";
+
+
+
+
+Similarly, logs are stored under
+/var/log/foundationdb by default, and there is a
+corresponding as well.
+
+
+
+Scaling processes and backup agents
+
+Scaling the number of server processes is quite easy; simply specify
+ to be the number of
+FoundationDB worker processes that should be started on the machine.
+
+FoundationDB worker processes typically require 4GB of RAM per-process at
+minimum for good performance, so this option is set to 1 by default since the
+maximum amount of RAM is unknown. You're advised to abide by this restriction,
+so pick a number of processes so that each has 4GB or more.
+
+A similar option exists in order to scale backup agent processes,
+. Backup agents are not
+as performance/RAM sensitive, so feel free to experiment with the number of
+available backup processes.
+
+
+
+Clustering
+
+FoundationDB on NixOS works similarly to other Linux systems, so this
+section will be brief. Please refer to the full FoundationDB documentation for
+more on clustering.
+
+FoundationDB organizes clusters using a set of
+coordinators, which are just specially-designated worker
+processes. By default, every installation of FoundationDB on NixOS will start
+as its own individual cluster, with a single coordinator: the first worker
+process on localhost.
+
+Coordinators are specified globally using the
+/etc/foundationdb/fdb.cluster file, which all servers and
+client applications will use to find and join coordinators. Note that this file
+can not be managed by NixOS so easily: FoundationDB is
+designed so that it will rewrite the file at runtime for all clients and nodes
+when cluster coordinators change, with clients transparently handling this
+without intervention. It is fundamentally a mutable file, and you should not
+try to manage it in any way in NixOS.
+
+When dealing with a cluster, there are two main things you want to
+do:
+
+
+ Add a node to the cluster for storage/compute.
+ Promote an ordinary worker to a coordinator.
+
+
+A node must already be a member of the cluster in order to properly be
+promoted to a coordinator, so you must always add it first if you wish to
+promote it.
+
+To add a machine to a FoundationDB cluster:
+
+
+ Choose one of the servers to start as the initial coordinator.
+
+ Copy the /etc/foundationdb/fdb.cluster file
+ from this server to all the other servers. Restart FoundationDB on all of
+ these other servers, so they join the cluster.
+ All of these servers are now connected and working together
+ in the cluster, under the chosen coordinator.
+
+
+At this point, you can add as many nodes as you want by just repeating
+the above steps. By default there will still be a single coordinator: you can
+use fdbcli to change this and add new coordinators.
+
+As a convenience, FoundationDB can automatically assign coordinators
+based on the redundancy mode you wish to achieve for the cluster. Once all the
+nodes have been joined, simply set the replication policy, and then issue the
+coordinators auto command
+
+For example, assuming we have 3 nodes available, we can enable double
+redundancy mode, then auto-select coordinators. For double redundancy, 3
+coordinators is ideal: therefore FoundationDB will make
+every node a coordinator automatically:
+
+
+fdbcli> configure double ssd
+fdbcli> coordinators auto
+
+
+This will transparently update all the servers within seconds, and
+appropriately rewrite the fdb.cluster file, as well as
+informing all client processes to do the same.
+
+
+
+Client connectivity
+
+By default, all clients must use the current
+fdb.cluster file to access a given FoundationDB cluster.
+This file is located by default in
+/etc/foundationdb/fdb.cluster on all machines with the
+FoundationDB service enabled, so you may copy the active one from your cluster
+to a new node in order to connect, if it is not part of the cluster.
+
+
+
+Backups and Disaster Recovery
+
+The usual rules for doing FoundationDB backups apply on NixOS as written
+in the FoundationDB manual. However, one important difference is the security
+profile for NixOS: by default, the foundationdb systemd unit
+uses Linux namespaces to restrict write access to the
+system, except for the log directory, data directory, and the
+/etc/foundationdb/ directory. This is enforced by default
+and cannot be disabled.
+
+However, a side effect of this is that the fdbbackup
+command doesn't work properly for local filesystem backups: FoundationDB uses a
+server process alongside the database processes to perform backups and copy the
+backups to the filesystem. As a result, this process is put under the
+restricted namespaces above: the backup process can only write to a limited
+number of paths.
+
+In order to allow flexible backup locations on local disks, the
+FoundationDB NixOS module supports a
+ option. This option
+takes a list of paths, and adds them to the systemd unit, allowing the
+processes inside the service to write (and read) the specified
+directories.
+
+For example, to create backups in /opt/fdb-backups,
+first set up the paths in the module options:
+
+
+services.foundationdb.extraReadWritePaths = [ "/opt/fdb-backups" ];
+
+
+Restart the FoundationDB service, and it will now be able to write to
+this directory (even if it does not yet exist.) Note: this path
+must exist before restarting the unit. Otherwise, systemd
+will not include it in the private FoundationDB namespace (and it will not add
+it dynamically at runtime).
+
+You can now perform a backup:
+
+
+$ sudo -u foundationdb fdbbackup start -t default -d file:///opt/fdb-backups
+$ sudo -u foundationdb fdbbackup status -t default
+
+
+
+
+Known limitations
+
+The FoundationDB setup for NixOS should currently be considered beta.
+FoundationDB is not new software, but the NixOS compilation and integration has
+only undergone fairly basic testing of all the available functionality.
+
+
+ TLS plugin support is compiled in, but it's currently not
+ possible to specify the set of TLS certificate options in
+ services.foundationdb
+ There is no way to specify individual parameters for
+ individual fdbserver processes. Currently, all server
+ processes inherit all the global fdbmonitor settings.
+
+ Python bindings are not currently installed.
+ Ruby bindings are not currently installed.
+ Java bindings are not currently installed.
+ Go bindings are not currently installed.
+
+
+
+
+Options
+
+NixOS's FoundationDB module allows you to configure all of the most
+relevant configuration options for fdbmonitor, matching it
+quite closely. For a complete list of all options, check man
+configuration.nix.
+
+
+
+Full documentation
+
+FoundationDB is a complex piece of software, and requires careful
+administration to properly use. Full documentation for administration can be
+found here: .
+
+
+
+
diff --git a/nixos/modules/services/databases/pgmanage.nix b/nixos/modules/services/databases/pgmanage.nix
index 86733a3e5a0..d1b48c06440 100644
--- a/nixos/modules/services/databases/pgmanage.nix
+++ b/nixos/modules/services/databases/pgmanage.nix
@@ -22,7 +22,7 @@ let
web_root = ${cfg.package}/etc/pgmanage/web_root
- data_root = ${cfg.dataRoot}
+ sql_root = ${cfg.sqlRoot}
${optionalString (!isNull cfg.tls) ''
tls_cert = ${cfg.tls.cert}
@@ -130,7 +130,7 @@ let
'';
};
- dataRoot = mkOption {
+ sqlRoot = mkOption {
type = types.str;
default = "/var/lib/pgmanage";
description = ''
@@ -210,7 +210,7 @@ in {
users."${pgmanage}" = {
name = pgmanage;
group = pgmanage;
- home = cfg.dataRoot;
+ home = cfg.sqlRoot;
createHome = true;
};
groups."${pgmanage}" = {
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 0dcbfe2e47a..f022e0863df 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -36,9 +36,6 @@ let
${cfg.extraConfig}
'';
- pre84 = versionOlder (builtins.parseDrvName postgresql.name).version "8.4";
-
-
in
{
@@ -182,7 +179,7 @@ in
services.postgresql.authentication = mkAfter
''
# Generated file; do not edit!
- local all all ident ${optionalString pre84 "sameuser"}
+ local all all ident
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
'';
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index bbc9bcf3dae..ba7ec967919 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -15,6 +15,25 @@ let
fi
'';
+desktopApplicationFile = pkgs.writeTextFile {
+ name = "emacsclient.desktop";
+ destination = "/share/applications/emacsclient.desktop";
+ text = ''
+[Desktop Entry]
+Name=Emacsclient
+GenericName=Text Editor
+Comment=Edit text
+MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+Exec=emacseditor %F
+Icon=emacs
+Type=Application
+Terminal=false
+Categories=Development;TextEditor;
+StartupWMClass=Emacs
+Keywords=Text;Editor;
+'';
+};
+
in {
options.services.emacs = {
@@ -74,7 +93,7 @@ in {
};
} // optionalAttrs cfg.enable { wantedBy = [ "default.target" ]; };
- environment.systemPackages = [ cfg.package editorScript ];
+ environment.systemPackages = [ cfg.package editorScript desktopApplicationFile ];
environment.variables = {
# This is required so that GTK applications launched from Emacs
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix
index 4a8cd86b0b1..d7ca8a43179 100644
--- a/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixos/modules/services/hardware/bluetooth.nix
@@ -3,8 +3,8 @@
with lib;
let
- bluez-bluetooth = pkgs.bluez;
cfg = config.hardware.bluetooth;
+ bluez-bluetooth = cfg.package;
in {
@@ -21,6 +21,16 @@ in {
description = "Whether to power up the default Bluetooth controller on boot.";
};
+ package = mkOption {
+ type = types.package;
+ default = pkgs.bluez;
+ defaultText = "pkgs.bluez";
+ example = "pkgs.bluez.override { enableMidi = true; }";
+ description = ''
+ Which BlueZ package to use.
+ '';
+ };
+
extraConfig = mkOption {
type = types.lines;
default = "";
diff --git a/nixos/modules/services/hardware/trezord.nix b/nixos/modules/services/hardware/trezord.nix
index 38d0a3a1d75..f2ec00a7d3e 100644
--- a/nixos/modules/services/hardware/trezord.nix
+++ b/nixos/modules/services/hardware/trezord.nix
@@ -26,8 +26,15 @@ in {
name = "trezord-udev-rules";
destination = "/etc/udev/rules.d/51-trezor.rules";
text = ''
- SUBSYSTEM=="usb", ATTR{idVendor}=="534c", ATTR{idProduct}=="0001", MODE="0666", GROUP="dialout", SYMLINK+="trezor%n"
- KERNEL=="hidraw*", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", MODE="0666", GROUP="dialout"
+ # Trezor 1
+ SUBSYSTEM=="usb", ATTR{idVendor}=="534c", ATTR{idProduct}=="0001", MODE="0666", GROUP="dialout", SYMLINK+="trezor%n"
+ KERNEL=="hidraw*", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", MODE="0666", GROUP="dialout"
+
+ # Trezor 2 (Model-T)
+ SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c0", MODE="0661", GROUP="dialout", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n"
+ SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c1", MODE="0660", GROUP="dialout", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n"
+ KERNEL=="hidraw*", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", MODE="0660", GROUP="dialout", TAG+="uaccess", TAG+="udev-acl"
+ ];
'';
});
@@ -38,7 +45,7 @@ in {
path = [];
serviceConfig = {
Type = "simple";
- ExecStart = "${pkgs.trezord}/bin/trezord -f";
+ ExecStart = "${pkgs.trezord}/bin/trezord-go";
User = "trezord";
};
};
diff --git a/nixos/modules/services/misc/dysnomia.nix b/nixos/modules/services/misc/dysnomia.nix
index 25cd0038e36..9e66e0811ab 100644
--- a/nixos/modules/services/misc/dysnomia.nix
+++ b/nixos/modules/services/misc/dysnomia.nix
@@ -158,7 +158,7 @@ in
services.dysnomia.properties = {
hostname = config.networking.hostName;
- system = if config.nixpkgs.system == "" then builtins.currentSystem else config.nixpkgs.system;
+ inherit (config.nixpkgs.localSystem) system;
supportedTypes = (import "${pkgs.stdenv.mkDerivation {
name = "supportedtypes";
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 20d7ec90dcc..be13fed860b 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -8,9 +8,6 @@ let
cfg = config.services.gitlab;
ruby = cfg.packages.gitlab.ruby;
- bundler = pkgs.bundler;
-
- gemHome = "${cfg.packages.gitlab.rubyEnv}/${ruby.gemPath}";
gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
@@ -137,8 +134,6 @@ let
gitlabEnv = {
HOME = "${cfg.statePath}/home";
- GEM_HOME = gemHome;
- BUNDLE_GEMFILE = "${cfg.packages.gitlab}/share/gitlab/Gemfile";
UNICORN_PATH = "${cfg.statePath}/";
GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/";
GITLAB_STATE_PATH = "${cfg.statePath}";
@@ -158,19 +153,17 @@ let
gitlab-rake = pkgs.stdenv.mkDerivation rec {
name = "gitlab-rake";
- buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.rubyEnv pkgs.makeWrapper ];
- phases = "installPhase fixupPhase";
- buildPhase = "";
+ buildInputs = [ pkgs.makeWrapper ];
+ dontBuild = true;
+ unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
- makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/bundle $out/bin/gitlab-bundle \
+ makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rake $out/bin/gitlab-rake \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set GITLAB_CONFIG_PATH '${cfg.statePath}/config' \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package ]}:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab'
- makeWrapper $out/bin/gitlab-bundle $out/bin/gitlab-rake \
- --add-flags "exec rake"
'';
};
@@ -482,10 +475,10 @@ in {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- TimeoutSec = "300";
+ TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
- ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/bundle exec \"sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid\"";
+ ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid";
};
};
@@ -493,11 +486,9 @@ in {
after = [ "network.target" "gitlab.service" ];
wantedBy = [ "multi-user.target" ];
environment.HOME = gitlabEnv.HOME;
- environment.GEM_HOME = "${cfg.packages.gitaly.rubyEnv}/${ruby.gemPath}";
environment.GITLAB_SHELL_CONFIG_PATH = gitlabEnv.GITLAB_SHELL_CONFIG_PATH;
- path = with pkgs; [ gitAndTools.git cfg.packages.gitaly.rubyEnv ruby ];
+ path = with pkgs; [ gitAndTools.git cfg.packages.gitaly.rubyEnv cfg.packages.gitaly.rubyEnv.wrappedRuby ];
serviceConfig = {
- #PermissionsStartOnly = true; # preStart must be run as root
Type = "simple";
User = cfg.user;
Group = cfg.group;
@@ -529,7 +520,7 @@ in {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- TimeoutSec = "300";
+ TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = gitlabEnv.HOME;
ExecStart =
@@ -658,10 +649,10 @@ in {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- TimeoutSec = "300";
+ TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
- ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\"";
+ ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/unicorn -c ${cfg.statePath}/config/unicorn.rb -E production";
};
};
diff --git a/nixos/modules/services/misc/gitweb.nix b/nixos/modules/services/misc/gitweb.nix
index b0e34a690ca..ca21366b779 100644
--- a/nixos/modules/services/misc/gitweb.nix
+++ b/nixos/modules/services/misc/gitweb.nix
@@ -32,6 +32,14 @@ in
'';
};
+ gitwebTheme = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Use an alternative theme for gitweb, strongly inspired by GitHub.
+ '';
+ };
+
gitwebConfigFile = mkOption {
default = pkgs.writeText "gitweb.conf" ''
# path to git projects (.git)
diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix
index ac37c11106e..1dc7b44ee37 100644
--- a/nixos/modules/services/misc/home-assistant.nix
+++ b/nixos/modules/services/misc/home-assistant.nix
@@ -5,7 +5,10 @@ with lib;
let
cfg = config.services.home-assistant;
- configFile = pkgs.writeText "configuration.yaml" (builtins.toJSON cfg.config);
+ # cfg.config != null can be assumed here
+ configFile = pkgs.writeText "configuration.json"
+ (builtins.toJSON (if cfg.applyDefaultConfig then
+ (lib.recursiveUpdate defaultConfig cfg.config) else cfg.config));
availableComponents = pkgs.home-assistant.availableComponents;
@@ -38,6 +41,12 @@ let
then (cfg.package.override { inherit extraComponents; })
else cfg.package;
+ # If you are changing this, please update the description in applyDefaultConfig
+ defaultConfig = {
+ homeassistant.time_zone = config.time.timeZone;
+ http.server_port = (toString cfg.port);
+ };
+
in {
meta.maintainers = with maintainers; [ dotlambda ];
@@ -50,6 +59,26 @@ in {
description = "The config directory, where your configuration.yaml is located.";
};
+ port = mkOption {
+ default = 8123;
+ type = types.int;
+ description = "The port on which to listen.";
+ };
+
+ applyDefaultConfig = mkOption {
+ default = true;
+ type = types.bool;
+ description = ''
+ Setting this option enables a few configuration options for HA based on NixOS configuration (such as time zone) to avoid having to manually specify configuration we already have.
+
+
+ Currently one side effect of enabling this is that the http component will be enabled.
+
+
+ This only takes effect if config != null in order to ensure that a manually managed configuration.yaml is not overwritten.
+ '';
+ };
+
config = mkOption {
default = null;
type = with types; nullOr attrs;
@@ -106,19 +135,20 @@ in {
description = "Home Assistant";
after = [ "network.target" ];
preStart = lib.optionalString (cfg.config != null) ''
- rm -f ${cfg.configDir}/configuration.yaml
- ln -s ${configFile} ${cfg.configDir}/configuration.yaml
+ config=${cfg.configDir}/configuration.yaml
+ rm -f $config
+ ${pkgs.remarshal}/bin/json2yaml -i ${configFile} -o $config
+ chmod 444 $config
'';
serviceConfig = {
- ExecStart = ''
- ${package}/bin/hass --config "${cfg.configDir}"
- '';
+ ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
User = "hass";
Group = "hass";
Restart = "on-failure";
ProtectSystem = "strict";
ReadWritePaths = "${cfg.configDir}";
PrivateTmp = true;
+ RemoveIPC = true;
};
path = [
"/run/wrappers" # needed for ping
diff --git a/nixos/modules/services/misc/logkeys.nix b/nixos/modules/services/misc/logkeys.nix
index df0b3ae24c9..ad13d9eaa67 100644
--- a/nixos/modules/services/misc/logkeys.nix
+++ b/nixos/modules/services/misc/logkeys.nix
@@ -7,6 +7,13 @@ let
in {
options.services.logkeys = {
enable = mkEnableOption "logkeys service";
+
+ device = mkOption {
+ description = "Use the given device as keyboard input event device instead of /dev/input/eventX default.";
+ default = null;
+ type = types.nullOr types.string;
+ example = "/dev/input/event15";
+ };
};
config = mkIf cfg.enable {
@@ -14,7 +21,7 @@ in {
description = "LogKeys Keylogger Daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
- ExecStart = "${pkgs.logkeys}/bin/logkeys -s";
+ ExecStart = "${pkgs.logkeys}/bin/logkeys -s${lib.optionalString (cfg.device != null) " -d ${cfg.device}"}";
ExecStop = "${pkgs.logkeys}/bin/logkeys -k";
Type = "forking";
};
diff --git a/nixos/modules/services/misc/mesos-slave.nix b/nixos/modules/services/misc/mesos-slave.nix
index 12485141e21..effa29b64f6 100644
--- a/nixos/modules/services/misc/mesos-slave.nix
+++ b/nixos/modules/services/misc/mesos-slave.nix
@@ -213,7 +213,7 @@ in {
PermissionsStartOnly = true;
};
preStart = ''
- mkdir -m 0700 -p ${cfg.workDir}
+ mkdir -m 0701 -p ${cfg.workDir}
'';
};
};
diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix
index abf506ea7c6..4bd1c20edf7 100644
--- a/nixos/modules/services/misc/nixos-manual.nix
+++ b/nixos/modules/services/misc/nixos-manual.nix
@@ -23,7 +23,7 @@ let
options =
let
scrubbedEval = evalModules {
- modules = [ { nixpkgs.system = config.nixpkgs.system; } ] ++ baseModules;
+ modules = [ { nixpkgs.localSystem = config.nixpkgs.localSystem; } ] ++ baseModules;
args = (config._module.args) // { modules = [ ]; };
specialArgs = { pkgs = scrubDerivations "pkgs" pkgs; };
};
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index a5b6dbab157..eceb91525db 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -50,7 +50,7 @@ in {
protocol = mkOption {
description = "Which protocol to listen.";
default = "http";
- type = types.enum ["http" "https"];
+ type = types.enum ["http" "https" "socket"];
};
addr = mkOption {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 8d6ca1e40a1..180b273d177 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -20,6 +20,7 @@ let
exporterOpts = {
blackbox = import ./exporters/blackbox.nix { inherit config lib pkgs; };
collectd = import ./exporters/collectd.nix { inherit config lib pkgs; };
+ dovecot = import ./exporters/dovecot.nix { inherit config lib pkgs; };
fritzbox = import ./exporters/fritzbox.nix { inherit config lib pkgs; };
json = import ./exporters/json.nix { inherit config lib pkgs; };
minio = import ./exporters/minio.nix { inherit config lib pkgs; };
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
new file mode 100644
index 00000000000..4ca6d4e5f8b
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -0,0 +1,50 @@
+{ config, lib, pkgs }:
+
+with lib;
+
+let
+ cfg = config.services.prometheus.exporters.dovecot;
+in
+{
+ port = 9166;
+ extraOpts = {
+ telemetryPath = mkOption {
+ type = types.str;
+ default = "/metrics";
+ description = ''
+ Path under which to expose metrics.
+ '';
+ };
+ socketPath = mkOption {
+ type = types.path;
+ default = "/var/run/dovecot/stats";
+ example = "/var/run/dovecot2/stats";
+ description = ''
+ Path under which the stats socket is placed.
+ The user/group under which the exporter runs,
+ should be able to access the socket in order
+ to scrape the metrics successfully.
+ '';
+ };
+ scopes = mkOption {
+ type = types.listOf types.str;
+ default = [ "user" ];
+ example = [ "user" "global" ];
+ description = ''
+ Stats scopes to query.
+ '';
+ };
+ };
+ serviceOpts = {
+ serviceConfig = {
+ ExecStart = ''
+ ${pkgs.prometheus-dovecot-exporter}/bin/dovecot_exporter \
+ --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+ --web.telemetry-path ${cfg.telemetryPath} \
+ --dovecot.socket-path ${cfg.socketPath} \
+ --dovecot.scopes ${concatStringsSep "," cfg.scopes} \
+ ${concatStringsSep " \\\n " cfg.extraFlags}
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index 1e909aa27d8..efe78ebcba8 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -32,6 +32,33 @@ in
Path where Postfix places it's showq socket.
'';
};
+ systemd = {
+ enable = mkEnableOption ''
+ reading metrics from the systemd-journal instead of from a logfile
+ '';
+ unit = mkOption {
+ type = types.str;
+ default = "postfix.service";
+ description = ''
+ Name of the postfix systemd unit.
+ '';
+ };
+ slice = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Name of the postfix systemd slice.
+ This overrides the .
+ '';
+ };
+ journalPath = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to the systemd journal.
+ '';
+ };
+ };
};
serviceOpts = {
serviceConfig = {
@@ -39,7 +66,15 @@ in
${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
--web.telemetry-path ${cfg.telemetryPath} \
- ${concatStringsSep " \\\n " cfg.extraFlags}
+ --postfix.showq_path ${cfg.showqPath} \
+ ${concatStringsSep " \\\n " (cfg.extraFlags
+ ++ optional cfg.systemd.enable "--systemd.enable"
+ ++ optional cfg.systemd.enable (if cfg.systemd.slice != null
+ then "--systemd.slice ${cfg.systemd.slice}"
+ else "--systemd.unit ${cfg.systemd.unit}")
+ ++ optional (cfg.systemd.enable && (cfg.systemd.journalPath != null))
+ "--systemd.jounal_path ${cfg.systemd.journalPath}"
+ ++ optional (!cfg.systemd.enable) "--postfix.logfile_path ${cfg.logfilePath}")}
'';
};
};
diff --git a/nixos/modules/services/networking/dante.nix b/nixos/modules/services/networking/dante.nix
index 32acce51e69..20d4faa1cdb 100644
--- a/nixos/modules/services/networking/dante.nix
+++ b/nixos/modules/services/networking/dante.nix
@@ -6,6 +6,7 @@ let
confFile = pkgs.writeText "dante-sockd.conf" ''
user.privileged: root
user.unprivileged: dante
+ logoutput: syslog
${cfg.config}
'';
@@ -21,11 +22,10 @@ in
enable = mkEnableOption "Dante SOCKS proxy";
config = mkOption {
- default = null;
- type = types.nullOr types.str;
+ type = types.lines;
description = ''
- Contents of Dante's configuration file
- NOTE: user.privileged/user.unprivileged are set by the service
+ Contents of Dante's configuration file.
+ NOTE: user.privileged, user.unprivileged and logoutput are set by the service.
'';
};
};
@@ -33,7 +33,7 @@ in
config = mkIf cfg.enable {
assertions = [
- { assertion = cfg.config != null;
+ { assertion = cfg.config != "";
message = "please provide Dante configuration file contents";
}
];
@@ -54,7 +54,8 @@ in
Type = "simple";
ExecStart = "${pkgs.dante}/bin/sockd -f ${confFile}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
- Restart = "always";
+ # Can crash sometimes; see https://github.com/NixOS/nixpkgs/pull/39005#issuecomment-381828708
+ Restart = "on-failure";
};
};
};
diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix
index 9e56545f746..9a2e13e9553 100644
--- a/nixos/modules/services/networking/ddclient.nix
+++ b/nixos/modules/services/networking/ddclient.nix
@@ -3,24 +3,24 @@
let
cfg = config.services.ddclient;
boolToStr = bool: if bool then "yes" else "no";
+ dataDir = "/var/lib/ddclient";
configText = ''
# This file can be used as a template for configFile or is automatically generated by Nix options.
- daemon=${toString cfg.interval}
- cache=${cfg.homeDir}/ddclient.cache
- pid=/run/ddclient/ddclient.pid
- foreground=NO
+ cache=${dataDir}/ddclient.cache
+ foreground=YES
use=${cfg.use}
login=${cfg.username}
password=${cfg.password}
protocol=${cfg.protocol}
- ${let server = cfg.server; in
- lib.optionalString (server != "") "server=${server}"}
+ ${lib.optionalString (cfg.script != "") "script=${cfg.script}"}
+ ${lib.optionalString (cfg.server != "") "server=${cfg.server}"}
+ ${lib.optionalString (cfg.zone != "") "zone=${cfg.zone}"}
ssl=${boolToStr cfg.ssl}
wildcard=YES
quiet=${boolToStr cfg.quiet}
verbose=${boolToStr cfg.verbose}
- ${cfg.domain}
+ ${lib.concatStringsSep "," cfg.domains}
${cfg.extraConfig}
'';
@@ -44,17 +44,11 @@ with lib;
'';
};
- homeDir = mkOption {
- default = "/var/lib/ddclient";
- type = str;
- description = "Home directory for the daemon user.";
- };
-
- domain = mkOption {
- default = "";
- type = str;
+ domains = mkOption {
+ default = [ "" ];
+ type = listOf str;
description = ''
- Domain name to synchronize.
+ Domain name(s) to synchronize.
'';
};
@@ -62,7 +56,7 @@ with lib;
default = "";
type = str;
description = ''
- Username.
+ User name.
'';
};
@@ -75,9 +69,12 @@ with lib;
};
interval = mkOption {
- default = 600;
- type = int;
- description = "The interval at which to run the check and update.";
+ default = "10min";
+ type = str;
+ description = ''
+ The interval at which to run the check and update.
+ See man 7 systemd.time for the format.
+ '';
};
configFile = mkOption {
@@ -95,7 +92,7 @@ with lib;
default = "dyndns2";
type = str;
description = ''
- Protocol to use with dynamic DNS provider (see http://sourceforge.net/apps/trac/ddclient/wiki/Protocols).
+ Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols).
'';
};
@@ -115,11 +112,20 @@ with lib;
'';
};
- extraConfig = mkOption {
- default = "";
- type = lines;
+
+ quiet = mkOption {
+ default = false;
+ type = bool;
description = ''
- Extra configuration. Contents will be added verbatim to the configuration file.
+ Print no messages for unnecessary updates.
+ '';
+ };
+
+ script = mkOption {
+ default = "";
+ type = str;
+ description = ''
+ script as required by some providers.
'';
};
@@ -139,11 +145,19 @@ with lib;
'';
};
- quiet = mkOption {
- default = false;
- type = bool;
+ zone = mkOption {
+ default = "";
+ type = str;
description = ''
- Print no messages for unnecessary updates.
+ zone as required by some providers.
+ '';
+ };
+
+ extraConfig = mkOption {
+ default = "";
+ type = lines;
+ description = ''
+ Extra configuration. Contents will be added verbatim to the configuration file.
'';
};
};
@@ -153,23 +167,8 @@ with lib;
###### implementation
config = mkIf config.services.ddclient.enable {
-
- users = {
- extraGroups.ddclient.gid = config.ids.gids.ddclient;
-
- extraUsers.ddclient = {
- uid = config.ids.uids.ddclient;
- description = "ddclient daemon user";
- group = "ddclient";
- home = cfg.homeDir;
- createHome = true;
- };
- };
-
environment.etc."ddclient.conf" = {
enable = cfg.configFile == "/etc/ddclient.conf";
- uid = config.ids.uids.ddclient;
- gid = config.ids.gids.ddclient;
mode = "0600";
text = configText;
};
@@ -180,15 +179,22 @@ with lib;
after = [ "network.target" ];
restartTriggers = [ config.environment.etc."ddclient.conf".source ];
- serviceConfig = {
- RuntimeDirectory = "ddclient";
- # we cannot run in forking mode as it swallows all the program output
- Type = "simple";
- User = "ddclient";
- Group = "ddclient";
- ExecStart = "${lib.getBin pkgs.ddclient}/bin/ddclient -foreground -file ${cfg.configFile}";
- ProtectSystem = "full";
- PrivateTmp = true;
+ serviceConfig = rec {
+ DynamicUser = true;
+ RuntimeDirectory = StateDirectory;
+ StateDirectory = builtins.baseNameOf dataDir;
+ Type = "oneshot";
+ ExecStartPre = "!${lib.getBin pkgs.coreutils}/bin/install -m666 ${cfg.configFile} /run/${RuntimeDirectory}/ddclient.conf";
+ ExecStart = "${lib.getBin pkgs.ddclient}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf";
+ };
+ };
+
+ systemd.timers.ddclient = {
+ description = "Run ddclient";
+ wantedBy = [ "timers.target" ];
+ timerConfig = {
+ OnBootSec = cfg.interval;
+ OnUnitInactiveSec = cfg.interval;
};
};
};
diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix
index 379203cd1ab..ba5c8e2d5e5 100644
--- a/nixos/modules/services/networking/dnscache.nix
+++ b/nixos/modules/services/networking/dnscache.nix
@@ -9,12 +9,12 @@ let
mkdir -p $out/{servers,ip}
${concatMapStrings (ip: ''
- echo > "$out/ip/"${lib.escapeShellArg ip}
+ touch "$out/ip/"${lib.escapeShellArg ip}
'') cfg.clientIps}
${concatStrings (mapAttrsToList (host: ips: ''
${concatMapStrings (ip: ''
- echo ${lib.escapeShellArg ip} > "$out/servers/"${lib.escapeShellArg host}
+ echo ${lib.escapeShellArg ip} >> "$out/servers/"${lib.escapeShellArg host}
'') ips}
'') cfg.domainServers)}
@@ -34,33 +34,49 @@ in {
options = {
services.dnscache = {
+
enable = mkOption {
default = false;
type = types.bool;
- description = "Whether to run the dnscache caching dns server";
+ description = "Whether to run the dnscache caching dns server.";
};
ip = mkOption {
default = "0.0.0.0";
type = types.str;
- description = "IP address on which to listen for connections";
+ description = "IP address on which to listen for connections.";
};
clientIps = mkOption {
default = [ "127.0.0.1" ];
type = types.listOf types.str;
- description = "client IP addresses (or prefixes) from which to accept connections";
+ description = "Client IP addresses (or prefixes) from which to accept connections.";
example = ["192.168" "172.23.75.82"];
};
domainServers = mkOption {
default = { };
type = types.attrsOf (types.listOf types.str);
- description = "table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts)";
+ description = ''
+ Table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts).
+ If entry for @ is not specified predefined list of root servers is used.
+ '';
example = {
- "example.com" = ["8.8.8.8" "8.8.4.4"];
+ "@" = ["8.8.8.8" "8.8.4.4"];
+ "example.com" = ["192.168.100.100"];
};
};
+
+ forwardOnly = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Whether to treat root servers (for @) as caching
+ servers, requesting addresses the same way a client does. This is
+ needed if you want to use e.g. Google DNS as your upstream DNS.
+ '';
+ };
+
};
};
@@ -82,6 +98,7 @@ in {
'';
script = ''
cd /var/lib/dnscache/
+ ${optionalString cfg.forwardOnly "export FORWARDONLY=1"}
exec ./run
'';
};
diff --git a/nixos/modules/services/networking/hans.nix b/nixos/modules/services/networking/hans.nix
new file mode 100644
index 00000000000..dd34ef8d4ca
--- /dev/null
+++ b/nixos/modules/services/networking/hans.nix
@@ -0,0 +1,145 @@
+# NixOS module for hans, ip over icmp daemon
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.hans;
+
+ hansUser = "hans";
+
+in
+{
+
+ ### configuration
+
+ options = {
+
+ services.hans = {
+ clients = mkOption {
+ default = {};
+ description = ''
+ Each attribute of this option defines a systemd service that
+ runs hans. Many or none may be defined.
+ The name of each service is
+ hans-name
+ where name is the name of the
+ corresponding attribute name.
+ '';
+ example = literalExample ''
+ {
+ foo = {
+ server = "192.0.2.1";
+ extraConfig = "-v";
+ }
+ }
+ '';
+ type = types.attrsOf (types.submodule (
+ {
+ options = {
+ server = mkOption {
+ type = types.str;
+ default = "";
+ description = "IP address of server running hans";
+ example = "192.0.2.1";
+ };
+
+ extraConfig = mkOption {
+ type = types.str;
+ default = "";
+ description = "Additional command line parameters";
+ example = "-v";
+ };
+
+ passwordFile = mkOption {
+ type = types.str;
+ default = "";
+ description = "File that containts password";
+ };
+
+ };
+ }));
+ };
+
+ server = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "enable hans server";
+ };
+
+ ip = mkOption {
+ type = types.str;
+ default = "";
+ description = "The assigned ip range";
+ example = "198.51.100.0";
+ };
+
+ respondToSystemPings = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Force hans respond to ordinary pings";
+ };
+
+ extraConfig = mkOption {
+ type = types.str;
+ default = "";
+ description = "Additional command line parameters";
+ example = "-v";
+ };
+
+ passwordFile = mkOption {
+ type = types.str;
+ default = "";
+ description = "File that containts password";
+ };
+ };
+
+ };
+ };
+
+ ### implementation
+
+ config = mkIf (cfg.server.enable || cfg.clients != {}) {
+ boot.kernel.sysctl = optionalAttrs cfg.server.respondToSystemPings {
+ "net.ipv4.icmp_echo_ignore_all" = 1;
+ };
+
+ boot.kernelModules = [ "tun" ];
+
+ systemd.services =
+ let
+ createHansClientService = name: cfg:
+ {
+ description = "hans client - ${name}";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ script = "${pkgs.hans}/bin/hans -f -u ${hansUser} ${cfg.extraConfig} -c ${cfg.server} ${optionalString (cfg.passwordFile != "") "-p $(cat \"${cfg.passwordFile}\")"}";
+ serviceConfig = {
+ RestartSec = "30s";
+ Restart = "always";
+ };
+ };
+ in
+ listToAttrs (
+ mapAttrsToList
+ (name: value: nameValuePair "hans-${name}" (createHansClientService name value))
+ cfg.clients
+ ) // {
+ hans = mkIf (cfg.server.enable) {
+ description = "hans, ip over icmp server daemon";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ script = "${pkgs.hans}/bin/hans -f -u ${hansUser} ${cfg.server.extraConfig} -s ${cfg.server.ip} ${optionalString cfg.server.respondToSystemPings "-r"} ${optionalString (cfg.server.passwordFile != "") "-p $(cat \"${cfg.server.passwordFile}\")"}";
+ };
+ };
+
+ users.extraUsers = singleton {
+ name = hansUser;
+ description = "Hans daemon user";
+ };
+ };
+
+ meta.maintainers = with maintainers; [ gnidorah ];
+}
diff --git a/nixos/modules/services/networking/iodine.nix b/nixos/modules/services/networking/iodine.nix
index 512dbd77ae4..3f41421d27f 100644
--- a/nixos/modules/services/networking/iodine.nix
+++ b/nixos/modules/services/networking/iodine.nix
@@ -32,7 +32,7 @@ in
foo = {
server = "tunnel.mdomain.com";
relay = "8.8.8.8";
- extraConfig = "-P mysecurepassword";
+ extraConfig = "-v";
}
}
'';
@@ -57,7 +57,13 @@ in
type = types.str;
default = "";
description = "Additional command line parameters";
- example = "-P mysecurepassword -l 192.168.1.10 -p 23";
+ example = "-l 192.168.1.10 -p 23";
+ };
+
+ passwordFile = mkOption {
+ type = types.str;
+ default = "";
+ description = "File that containts password";
};
};
}));
@@ -88,7 +94,13 @@ in
type = types.str;
default = "";
description = "Additional command line parameters";
- example = "-P mysecurepassword -l 192.168.1.10 -p 23";
+ example = "-l 192.168.1.10 -p 23";
+ };
+
+ passwordFile = mkOption {
+ type = types.str;
+ default = "";
+ description = "File that containts password";
};
};
@@ -108,10 +120,10 @@ in
description = "iodine client - ${name}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
+ script = "${pkgs.iodine}/bin/iodine -f -u ${iodinedUser} ${cfg.extraConfig} ${optionalString (cfg.passwordFile != "") "-P $(cat \"${cfg.passwordFile}\")"} ${cfg.relay} ${cfg.server}";
serviceConfig = {
RestartSec = "30s";
Restart = "always";
- ExecStart = "${pkgs.iodine}/bin/iodine -f -u ${iodinedUser} ${cfg.extraConfig} ${cfg.relay} ${cfg.server}";
};
};
in
@@ -124,7 +136,7 @@ in
description = "iodine, ip over dns server daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig.ExecStart = "${pkgs.iodine}/bin/iodined -f -u ${iodinedUser} ${cfg.server.extraConfig} ${cfg.server.ip} ${cfg.server.domain}";
+ script = "${pkgs.iodine}/bin/iodined -f -u ${iodinedUser} ${cfg.server.extraConfig} ${optionalString (cfg.server.passwordFile != "") "-P $(cat \"${cfg.server.passwordFile}\")"} ${cfg.server.ip} ${cfg.server.domain}";
};
};
diff --git a/nixos/modules/services/networking/iwd.nix b/nixos/modules/services/networking/iwd.nix
index 23787bce991..344212ad832 100644
--- a/nixos/modules/services/networking/iwd.nix
+++ b/nixos/modules/services/networking/iwd.nix
@@ -26,7 +26,7 @@ in {
wants = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- serviceConfig.ExecStart = "${pkgs.iwd}/bin/iwd";
+ serviceConfig.ExecStart = "${pkgs.iwd}/libexec/iwd";
};
};
diff --git a/nixos/modules/services/networking/murmur.nix b/nixos/modules/services/networking/murmur.nix
index 13d7c3254f9..873d62dbf34 100644
--- a/nixos/modules/services/networking/murmur.nix
+++ b/nixos/modules/services/networking/murmur.nix
@@ -80,7 +80,7 @@ in
pidfile = mkOption {
type = types.path;
- default = "/tmp/murmurd.pid";
+ default = "/run/murmur/murmurd.pid";
description = "Path to PID file for Murmur daemon.";
};
@@ -252,6 +252,7 @@ in
serviceConfig = {
Type = "forking";
+ RuntimeDirectory = "murmur";
PIDFile = cfg.pidfile;
Restart = "always";
User = "murmur";
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index 4241e6fccea..0b52b1d3e30 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -250,6 +250,46 @@ let
Use imports or pkgs.lib.readFile if you don't want this data in your config file.
'';
};
+
+ dnssec = mkEnableOption "DNSSEC";
+
+ dnssecPolicy = {
+ algorithm = mkOption {
+ type = types.str;
+ default = "RSASHA256";
+ description = "Which algorithm to use for DNSSEC";
+ };
+ keyttl = mkOption {
+ type = types.str;
+ default = "1h";
+ description = "TTL for dnssec records";
+ };
+ coverage = mkOption {
+ type = types.str;
+ default = "1y";
+ description = ''
+ The length of time to ensure that keys will be correct; no action will be taken to create new keys to be activated after this time.
+ '';
+ };
+ zsk = mkOption {
+ type = keyPolicy;
+ default = { keySize = 2048;
+ prePublish = "1w";
+ postPublish = "1w";
+ rollPeriod = "1mo";
+ };
+ description = "Key policy for zone signing keys";
+ };
+ ksk = mkOption {
+ type = keyPolicy;
+ default = { keySize = 4096;
+ prePublish = "1mo";
+ postPublish = "1mo";
+ rollPeriod = "0";
+ };
+ description = "Key policy for key signing keys";
+ };
+ };
maxRefreshSecs = mkOption {
type = types.nullOr types.int;
@@ -367,10 +407,61 @@ let
and stats_noreset.
'';
};
-
};
};
+ keyPolicy = types.submodule {
+ options = {
+ keySize = mkOption {
+ type = types.int;
+ description = "Key size in bits";
+ };
+ prePublish = mkOption {
+ type = types.str;
+ description = "How long in advance to publish new keys";
+ };
+ postPublish = mkOption {
+ type = types.str;
+ description = "How long after deactivation to keep a key in the zone";
+ };
+ rollPeriod = mkOption {
+ type = types.str;
+ description = "How frequently to change keys";
+ };
+ };
+ };
+
+ dnssecZones = (filterAttrs (n: v: if v ? dnssec then v.dnssec else false) zoneConfigs);
+
+ dnssec = length (attrNames dnssecZones) != 0;
+
+ signZones = optionalString dnssec ''
+ mkdir -p ${stateDir}/dnssec
+ chown ${username}:${username} ${stateDir}/dnssec
+ chmod 0600 ${stateDir}/dnssec
+
+ ${concatStrings (mapAttrsToList signZone dnssecZones)}
+ '';
+ signZone = name: zone: ''
+ ${pkgs.bind}/bin/dnssec-keymgr -g ${pkgs.bind}/bin/dnssec-keygen -s ${pkgs.bind}/bin/dnssec-settime -K ${stateDir}/dnssec -c ${policyFile name zone.dnssecPolicy} ${name}
+ ${pkgs.bind}/bin/dnssec-signzone -S -K ${stateDir}/dnssec -o ${name} -O full -N date ${stateDir}/zones/${name}
+ ${nsdPkg}/sbin/nsd-checkzone ${name} ${stateDir}/zones/${name}.signed && mv -v ${stateDir}/zones/${name}.signed ${stateDir}/zones/${name}
+ '';
+ policyFile = name: policy: pkgs.writeText "${name}.policy" ''
+ zone ${name} {
+ algorithm ${policy.algorithm};
+ key-size zsk ${toString policy.zsk.keySize};
+ key-size ksk ${toString policy.ksk.keySize};
+ keyttl ${policy.keyttl};
+ pre-publish zsk ${policy.zsk.prePublish};
+ pre-publish ksk ${policy.ksk.prePublish};
+ post-publish zsk ${policy.zsk.postPublish};
+ post-publish ksk ${policy.ksk.postPublish};
+ roll-period zsk ${policy.zsk.rollPeriod};
+ roll-period ksk ${policy.ksk.rollPeriod};
+ coverage ${policy.coverage};
+ };
+ '';
in
{
# options are ordered alphanumerically
@@ -380,6 +471,14 @@ in
bind8Stats = mkEnableOption "BIND8 like statistics";
+ dnssecInterval = mkOption {
+ type = types.str;
+ default = "1h";
+ description = ''
+ How often to check whether dnssec key rollover is required
+ '';
+ };
+
extraConfig = mkOption {
type = types.str;
default = "";
@@ -741,7 +840,6 @@ in
};
-
zones = mkOption {
type = types.attrsOf zoneOptions;
default = {};
@@ -785,7 +883,6 @@ in
serverGroup1.
'';
};
-
};
config = mkIf cfg.enable {
@@ -832,9 +929,9 @@ in
mkdir -m 0700 -p "${stateDir}/var"
cat > "${stateDir}/don't touch anything in here" << EOF
- Everything in this directory except NSD's state in var is
- automatically generated and will be purged and redeployed
- by the nsd.service pre-start script.
+ Everything in this directory except NSD's state in var and dnssec
+ is automatically generated and will be purged and redeployed by
+ the nsd.service pre-start script.
EOF
chown ${username}:${username} -R "${stateDir}/private"
@@ -848,6 +945,34 @@ in
'';
};
+ nixpkgs.config = mkIf dnssec {
+ bind.enablePython = true;
+ };
+
+ systemd.timers."nsd-dnssec" = mkIf dnssec {
+ description = "Automatic DNSSEC key rollover";
+
+ wantedBy = [ "nsd.service" ];
+
+ timerConfig = {
+ OnActiveSec = cfg.dnssecInterval;
+ OnUnitActiveSec = cfg.dnssecInterval;
+ };
+ };
+
+ systemd.services."nsd-dnssec" = mkIf dnssec {
+ description = "DNSSEC key rollover";
+
+ wantedBy = [ "nsd.service" ];
+ before = [ "nsd.service" ];
+
+ script = signZones;
+
+ postStop = ''
+ ${pkgs.systemd}/bin/systemctl kill -s SIGHUP nsd.service
+ '';
+ };
+
};
meta.maintainers = with lib.maintainers; [ hrdinka ];
diff --git a/nixos/modules/services/networking/openvpn.nix b/nixos/modules/services/networking/openvpn.nix
index 7a96b673c51..a418839d22b 100644
--- a/nixos/modules/services/networking/openvpn.nix
+++ b/nixos/modules/services/networking/openvpn.nix
@@ -65,7 +65,7 @@ let
path = [ pkgs.iptables pkgs.iproute pkgs.nettools ];
- serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --config ${configFile}";
+ serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile}";
serviceConfig.Restart = "always";
serviceConfig.Type = "notify";
};
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index f409962816d..1b4f81f6b56 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -301,6 +301,18 @@ in
default = "/var/lib/prosody";
};
+ user = mkOption {
+ type = types.str;
+ default = "prosody";
+ description = "User account under which prosody runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "prosody";
+ description = "Group account under which prosody runs.";
+ };
+
allowRegistration = mkOption {
type = types.bool;
default = false;
@@ -427,7 +439,7 @@ in
environment.etc."prosody/prosody.cfg.lua".text = ''
- pidfile = "${cfg.dataDir}/prosody.pid"
+ pidfile = "/run/prosody/prosody.pid"
log = "*syslog"
@@ -475,15 +487,15 @@ in
'') cfg.virtualHosts) }
'';
- users.extraUsers.prosody = {
+ users.extraUsers.prosody = mkIf (cfg.user == "prosody") {
uid = config.ids.uids.prosody;
description = "Prosody user";
createHome = true;
- group = "prosody";
+ inherit (cfg) group;
home = "${cfg.dataDir}";
};
- users.extraGroups.prosody = {
+ users.extraGroups.prosody = mkIf (cfg.group == "prosody") {
gid = config.ids.gids.prosody;
};
@@ -494,9 +506,11 @@ in
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."prosody/prosody.cfg.lua".source ];
serviceConfig = {
- User = "prosody";
+ User = cfg.user;
+ Group = cfg.group;
Type = "forking";
- PIDFile = "${cfg.dataDir}/prosody.pid";
+ RuntimeDirectory = [ "prosody" ];
+ PIDFile = "/run/prosody/prosody.pid";
ExecStart = "${cfg.package}/bin/prosodyctl start";
};
};
diff --git a/nixos/modules/services/networking/quagga.nix b/nixos/modules/services/networking/quagga.nix
index aab58cc77b9..22204e53203 100644
--- a/nixos/modules/services/networking/quagga.nix
+++ b/nixos/modules/services/networking/quagga.nix
@@ -133,7 +133,7 @@ in
users.groups = {
quagga = {};
# Members of the quaggavty group can use vtysh to inspect the Quagga daemons
- quaggavty = {};
+ quaggavty = { members = [ "quagga" ]; };
};
systemd.services =
diff --git a/nixos/modules/services/networking/shadowsocks.nix b/nixos/modules/services/networking/shadowsocks.nix
new file mode 100644
index 00000000000..fe6d65a5f96
--- /dev/null
+++ b/nixos/modules/services/networking/shadowsocks.nix
@@ -0,0 +1,112 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.shadowsocks;
+
+ opts = {
+ server = cfg.localAddress;
+ server_port = cfg.port;
+ method = cfg.encryptionMethod;
+ mode = cfg.mode;
+ user = "nobody";
+ fast_open = true;
+ } // optionalAttrs (cfg.password != null) { password = cfg.password; };
+
+ configFile = pkgs.writeText "shadowsocks.json" (builtins.toJSON opts);
+
+in
+
+{
+
+ ###### interface
+
+ options = {
+
+ services.shadowsocks = {
+
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to run shadowsocks-libev shadowsocks server.
+ '';
+ };
+
+ localAddress = mkOption {
+ type = types.str;
+ default = "0.0.0.0";
+ description = ''
+ Local address to which the server binds.
+ '';
+ };
+
+ port = mkOption {
+ type = types.int;
+ default = 8388;
+ description = ''
+ Port which the server uses.
+ '';
+ };
+
+ password = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ description = ''
+ Password for connecting clients.
+ '';
+ };
+
+ passwordFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Password file with a password for connecting clients.
+ '';
+ };
+
+ mode = mkOption {
+ type = types.enum [ "tcp_only" "tcp_and_udp" "udp_only" ];
+ default = "tcp_and_udp";
+ description = ''
+ Relay protocols.
+ '';
+ };
+
+ encryptionMethod = mkOption {
+ type = types.str;
+ default = "chacha20-ietf-poly1305";
+ description = ''
+ Encryption method. See .
+ '';
+ };
+
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+ assertions = singleton
+ { assertion = cfg.password == null || cfg.passwordFile == null;
+ message = "Cannot use both password and passwordFile for shadowsocks-libev";
+ };
+
+ systemd.services.shadowsocks-libev = {
+ description = "shadowsocks-libev Daemon";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ path = [ pkgs.shadowsocks-libev ] ++ optional (cfg.passwordFile != null) pkgs.jq;
+ serviceConfig.PrivateTmp = true;
+ script = ''
+ ${optionalString (cfg.passwordFile != null) ''
+ cat ${configFile} | jq --arg password "$(cat "${cfg.passwordFile}")" '. + { password: $password }' > /tmp/shadowsocks.json
+ ''}
+ exec ss-server -c ${if cfg.passwordFile != null then "/tmp/shadowsocks.json" else configFile}
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index e50c4dbacf3..aab1203086c 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -213,6 +213,65 @@ in
description = "Files from which authorized keys are read.";
};
+ kexAlgorithms = mkOption {
+ type = types.listOf types.str;
+ default = [
+ "curve25519-sha256@libssh.org"
+ "diffie-hellman-group-exchange-sha256"
+ ];
+ description = ''
+ Allowed key exchange algorithms
+
+
+ Defaults to recommended settings from both
+
+ and
+
+ '';
+ };
+
+ ciphers = mkOption {
+ type = types.listOf types.str;
+ default = [
+ "chacha20-poly1305@openssh.com"
+ "aes256-gcm@openssh.com"
+ "aes128-gcm@openssh.com"
+ "aes256-ctr"
+ "aes192-ctr"
+ "aes128-ctr"
+ ];
+ description = ''
+ Allowed ciphers
+
+
+ Defaults to recommended settings from both
+
+ and
+
+ '';
+ };
+
+ macs = mkOption {
+ type = types.listOf types.str;
+ default = [
+ "hmac-sha2-512-etm@openssh.com"
+ "hmac-sha2-256-etm@openssh.com"
+ "umac-128-etm@openssh.com"
+ "hmac-sha2-512"
+ "hmac-sha2-256"
+ "umac-128@openssh.com"
+ ];
+ description = ''
+ Allowed MACs
+
+
+ Defaults to recommended settings from both
+
+ and
+
+ '';
+ };
+
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -363,14 +422,9 @@ in
HostKey ${k.path}
'')}
- ### Recommended settings from both:
- # https://stribika.github.io/2015/01/04/secure-secure-shell.html
- # and
- # https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Modern_.28OpenSSH_6.7.2B.29
-
- KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
- Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
- MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
+ KexAlgorithms ${concatStringsSep "," cfg.kexAlgorithms}
+ Ciphers ${concatStringsSep "," cfg.ciphers}
+ MACs ${concatStringsSep "," cfg.macs}
# LogLevel VERBOSE logs user's key fingerprint on login.
# Needed to have a clear audit track of which key was used to log in.
diff --git a/nixos/modules/services/networking/strongswan-swanctl/module.nix b/nixos/modules/services/networking/strongswan-swanctl/module.nix
new file mode 100644
index 00000000000..d770094960b
--- /dev/null
+++ b/nixos/modules/services/networking/strongswan-swanctl/module.nix
@@ -0,0 +1,82 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+with (import ./param-lib.nix lib);
+
+let
+ cfg = config.services.strongswan-swanctl;
+ swanctlParams = import ./swanctl-params.nix lib;
+in {
+ options.services.strongswan-swanctl = {
+ enable = mkEnableOption "strongswan-swanctl service";
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.strongswan;
+ defaultText = "pkgs.strongswan";
+ description = ''
+ The strongswan derivation to use.
+ '';
+ };
+
+ strongswan.extraConfig = mkOption {
+ type = types.str;
+ default = "";
+ description = ''
+ Contents of the strongswan.conf file.
+ '';
+ };
+
+ swanctl = paramsToOptions swanctlParams;
+ };
+
+ config = mkIf cfg.enable {
+
+ assertions = [
+ { assertion = !config.services.strongswan.enable;
+ message = "cannot enable both services.strongswan and services.strongswan-swanctl. Choose either one.";
+ }
+ ];
+
+ environment.etc."swanctl/swanctl.conf".text =
+ paramsToConf cfg.swanctl swanctlParams;
+
+ # The swanctl command complains when the following directories don't exist:
+ # See: https://wiki.strongswan.org/projects/strongswan/wiki/Swanctldirectory
+ system.activationScripts.strongswan-swanctl-etc = stringAfter ["etc"] ''
+ mkdir -p '/etc/swanctl/x509' # Trusted X.509 end entity certificates
+ mkdir -p '/etc/swanctl/x509ca' # Trusted X.509 Certificate Authority certificates
+ mkdir -p '/etc/swanctl/x509ocsp'
+ mkdir -p '/etc/swanctl/x509aa' # Trusted X.509 Attribute Authority certificates
+ mkdir -p '/etc/swanctl/x509ac' # Attribute Certificates
+ mkdir -p '/etc/swanctl/x509crl' # Certificate Revocation Lists
+ mkdir -p '/etc/swanctl/pubkey' # Raw public keys
+ mkdir -p '/etc/swanctl/private' # Private keys in any format
+ mkdir -p '/etc/swanctl/rsa' # PKCS#1 encoded RSA private keys
+ mkdir -p '/etc/swanctl/ecdsa' # Plain ECDSA private keys
+ mkdir -p '/etc/swanctl/bliss'
+ mkdir -p '/etc/swanctl/pkcs8' # PKCS#8 encoded private keys of any type
+ mkdir -p '/etc/swanctl/pkcs12' # PKCS#12 containers
+ '';
+
+ systemd.services.strongswan-swanctl = {
+ description = "strongSwan IPsec IKEv1/IKEv2 daemon using swanctl";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network-online.target" "keys.target" ];
+ wants = [ "keys.target" ];
+ path = with pkgs; [ kmod iproute iptables utillinux ];
+ environment.STRONGSWAN_CONF = pkgs.writeTextFile {
+ name = "strongswan.conf";
+ text = cfg.strongswan.extraConfig;
+ };
+ restartTriggers = [ config.environment.etc."swanctl/swanctl.conf".source ];
+ serviceConfig = {
+ ExecStart = "${cfg.package}/sbin/charon-systemd";
+ Type = "notify";
+ ExecStartPost = "${cfg.package}/sbin/swanctl --load-all --noprompt";
+ ExecReload = "${cfg.package}/sbin/swanctl --reload";
+ Restart = "on-abnormal";
+ };
+ };
+ };
+}
diff --git a/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix b/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix
new file mode 100644
index 00000000000..5e74a96664f
--- /dev/null
+++ b/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix
@@ -0,0 +1,162 @@
+# In the following context a parameter is an attribute set that
+# contains a NixOS option and a render function. It also contains the
+# attribute: '_type = "param"' so we can distinguish it from other
+# sets.
+#
+# The render function is used to convert the value of the option to a
+# snippet of strongswan.conf. Most parameters simply render their
+# value to a string. For example, take the following parameter:
+#
+# threads = mkIntParam 10 "Threads to use for request handling.";
+#
+# When a users defines the corresponding option as for example:
+#
+# services.strongswan-swanctl.strongswan.threads = 32;
+#
+# It will get rendered to the following snippet in strongswan.conf:
+#
+# threads = 32
+#
+# Some parameters however need to be able to change the attribute
+# name. For example, take the following parameter:
+#
+# id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") "...";
+#
+# A user can define the corresponding option as for example:
+#
+# id = {
+# "foo" = "bar";
+# "baz" = "qux";
+# };
+#
+# This will get rendered to the following snippet:
+#
+# foo-id = bar
+# baz-id = qux
+#
+# For this reason the render function is not simply a function from
+# value -> string but a function from a value to an attribute set:
+# { "${name}" = string }. This allows parameters to change the attribute
+# name like in the previous example.
+
+lib :
+
+with lib;
+with (import ./param-lib.nix lib);
+
+rec {
+ mkParamOfType = type : strongswanDefault : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.nullOr type;
+ default = null;
+ description = documentDefault description strongswanDefault;
+ };
+ render = single toString;
+ };
+
+ documentDefault = description : strongswanDefault :
+ if isNull strongswanDefault
+ then description
+ else description + ''
+
+ StrongSwan default:
+ '';
+
+ single = f: name: value: { "${name}" = f value; };
+
+ mkStrParam = mkParamOfType types.str;
+ mkOptionalStrParam = mkStrParam null;
+
+ mkEnumParam = values : mkParamOfType (types.enum values);
+
+ mkIntParam = mkParamOfType types.int;
+ mkOptionalIntParam = mkIntParam null;
+
+ # We should have floats in Nix...
+ mkFloatParam = mkStrParam;
+
+ # TODO: Check for hex format:
+ mkHexParam = mkStrParam;
+ mkOptionalHexParam = mkOptionalStrParam;
+
+ # TODO: Check for duration format:
+ mkDurationParam = mkStrParam;
+ mkOptionalDurationParam = mkOptionalStrParam;
+
+ mkYesNoParam = strongswanDefault : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = documentDefault description strongswanDefault;
+ };
+ render = single (b: if b then "yes" else "no");
+ };
+ yes = true;
+ no = false;
+
+ mkSpaceSepListParam = mkSepListParam " ";
+ mkCommaSepListParam = mkSepListParam ",";
+
+ mkSepListParam = sep : strongswanDefault : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.nullOr (types.listOf types.str);
+ default = null;
+ description = documentDefault description strongswanDefault;
+ };
+ render = single (value: concatStringsSep sep value);
+ };
+
+ mkAttrsOfParams = params :
+ mkAttrsOf params (types.submodule {options = paramsToOptions params;});
+
+ mkAttrsOfParam = param :
+ mkAttrsOf param param.option.type;
+
+ mkAttrsOf = param : option : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.attrsOf option;
+ default = {};
+ inherit description;
+ };
+ render = single (attrs:
+ (paramsToRenderedStrings attrs
+ (mapAttrs (_n: _v: param) attrs)));
+ };
+
+ mkPrefixedAttrsOfParams = params :
+ mkPrefixedAttrsOf params (types.submodule {options = paramsToOptions params;});
+
+ mkPrefixedAttrsOfParam = param :
+ mkPrefixedAttrsOf param param.option.type;
+
+ mkPrefixedAttrsOf = p : option : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.attrsOf option;
+ default = {};
+ inherit description;
+ };
+ render = prefix: attrs:
+ let prefixedAttrs = mapAttrs' (name: nameValuePair "${prefix}-${name}") attrs;
+ in paramsToRenderedStrings prefixedAttrs
+ (mapAttrs (_n: _v: p) prefixedAttrs);
+ };
+
+ mkPostfixedAttrsOfParams = params : description : {
+ _type = "param";
+ option = mkOption {
+ type = types.attrsOf (types.submodule {options = paramsToOptions params;});
+ default = {};
+ inherit description;
+ };
+ render = postfix: attrs:
+ let postfixedAttrs = mapAttrs' (name: nameValuePair "${name}-${postfix}") attrs;
+ in paramsToRenderedStrings postfixedAttrs
+ (mapAttrs (_n: _v: params) postfixedAttrs);
+ };
+
+}
diff --git a/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix b/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix
new file mode 100644
index 00000000000..fb87e81f321
--- /dev/null
+++ b/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix
@@ -0,0 +1,82 @@
+lib :
+
+with lib;
+
+rec {
+ paramsToConf = cfg : ps : mkConf 0 (paramsToRenderedStrings cfg ps);
+
+ # mkConf takes an indentation level (which usually starts at 0) and a nested
+ # attribute set of strings and will render that set to a strongswan.conf style
+ # configuration format. For example:
+ #
+ # mkConf 0 {a = "1"; b = { c = { "foo" = "2"; "bar" = "3"; }; d = "4";};} => ''
+ # a = 1
+ # b {
+ # c {
+ # foo = 2
+ # bar = 3
+ # }
+ # d = 4
+ # }''
+ mkConf = indent : ps :
+ concatMapStringsSep "\n"
+ (name:
+ let value = ps."${name}";
+ indentation = replicate indent " ";
+ in
+ indentation + (
+ if isAttrs value
+ then "${name} {\n" +
+ mkConf (indent + 2) value + "\n" +
+ indentation + "}"
+ else "${name} = ${value}"
+ )
+ )
+ (attrNames ps);
+
+ replicate = n : c : concatStrings (builtins.genList (_x : c) n);
+
+ # `paramsToRenderedStrings cfg ps` converts the NixOS configuration `cfg`
+ # (typically the "config" argument of a NixOS module) and the set of
+ # parameters `ps` (an attribute set where the values are constructed using the
+ # parameter constructors in ./param-constructors.nix) to a nested attribute
+ # set of strings (rendered parameters).
+ paramsToRenderedStrings = cfg : ps :
+ filterEmptySets (
+ (mapParamsRecursive (path: name: param:
+ let value = attrByPath path null cfg;
+ in optionalAttrs (!isNull value) (param.render name value)
+ ) ps));
+
+ filterEmptySets = set : filterAttrs (n: v: !(isNull v)) (mapAttrs (name: value:
+ if isAttrs value
+ then let value' = filterEmptySets value;
+ in if value' == {}
+ then null
+ else value'
+ else value
+ ) set);
+
+ # Recursively map over every parameter in the given attribute set.
+ mapParamsRecursive = mapAttrsRecursiveCond' (as: (!(as ? "_type" && as._type == "param")));
+
+ mapAttrsRecursiveCond' = cond: f: set:
+ let
+ recurse = path: set:
+ let
+ g =
+ name: value:
+ if isAttrs value && cond value
+ then { "${name}" = recurse (path ++ [name]) value; }
+ else f (path ++ [name]) name value;
+ in mapAttrs'' g set;
+ in recurse [] set;
+
+ mapAttrs'' = f: set:
+ foldl' (a: b: a // b) {} (map (attr: f attr set.${attr}) (attrNames set));
+
+ # Extract the options from the given set of parameters.
+ paramsToOptions = ps :
+ mapParamsRecursive (_path: name: param: { "${name}" = param.option; }) ps;
+
+}
diff --git a/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix
new file mode 100644
index 00000000000..ad211f41eef
--- /dev/null
+++ b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix
@@ -0,0 +1,1168 @@
+# See: https://wiki.strongswan.org/projects/strongswan/wiki/Swanctlconf
+#
+# When strongSwan is upgraded please update the parameters in this file. You can
+# see which parameters should be deleted, changed or added by diffing
+# swanctl.opt:
+#
+# git clone https://github.com/strongswan/strongswan.git
+# cd strongswan
+# git diff 5.5.3..5.6.0 src/swanctl/swanctl.opt
+
+lib: with (import ./param-constructors.nix lib);
+
+let
+ certParams = {
+ file = mkOptionalStrParam ''
+ Absolute path to the certificate to load. Passed as-is to the daemon, so
+ it must be readable by it.
+
+ Configure either this or , but not both, in one section.
+ '';
+
+ handle = mkOptionalHexParam ''
+ Hex-encoded CKA_ID or handle of the certificate on a token or TPM,
+ respectively.
+
+ Configure either this or , but not both, in one section.
+ '';
+
+ slot = mkOptionalIntParam ''
+ Optional slot number of the token that stores the certificate.
+ '';
+
+ module = mkOptionalStrParam ''
+ Optional PKCS#11 module name.
+ '';
+ };
+in {
+ authorities = mkAttrsOfParams ({
+
+ cacert = mkOptionalStrParam ''
+ The certificates may use a relative path from the swanctl
+ x509ca directory or an absolute path.
+
+ Configure one of ,
+ , or
+ per section.
+ '';
+
+ cert_uri_base = mkOptionalStrParam ''
+ Defines the base URI for the Hash and URL feature supported by
+ IKEv2. Instead of exchanging complete certificates, IKEv2 allows one to
+ send an URI that resolves to the DER encoded certificate. The certificate
+ URIs are built by appending the SHA1 hash of the DER encoded certificates
+ to this base URI.
+ '';
+
+ crl_uris = mkCommaSepListParam [] ''
+ List of CRL distribution points (ldap, http, or file URI).
+ '';
+
+ ocsp_uris = mkCommaSepListParam [] ''
+ List of OCSP URIs.
+ '';
+
+ } // certParams) ''
+ Section defining complementary attributes of certification authorities, each
+ in its own subsection with an arbitrary yet unique name
+ '';
+
+ connections = mkAttrsOfParams {
+
+ version = mkIntParam 0 ''
+ IKE major version to use for connection.
+
+ 1 uses IKEv1 aka ISAKMP,
+ 2 uses IKEv2.
+ A connection using the default of 0 accepts both IKEv1 and IKEv2 as
+ responder, and initiates the connection actively with IKEv2.
+
+ '';
+
+ local_addrs = mkCommaSepListParam [] ''
+ Local address(es) to use for IKE communication. Takes
+ single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
+
+ As initiator, the first non-range/non-subnet is used to initiate the
+ connection from. As responder, the local destination address must match at
+ least to one of the specified addresses, subnets or ranges.
+
+ If FQDNs are assigned they are resolved every time a configuration lookup
+ is done. If DNS resolution times out, the lookup is delayed for that time.
+ '';
+
+ remote_addrs = mkCommaSepListParam [] ''
+ Remote address(es) to use for IKE communication. Takes
+ single IPv4/IPv6 addresses, DNS names, CIDR subnets or IP address ranges.
+
+ As initiator, the first non-range/non-subnet is used to initiate the
+ connection to. As responder, the initiator source address must match at
+ least to one of the specified addresses, subnets or ranges.
+
+ If FQDNs are assigned they are resolved every time a configuration lookup
+ is done. If DNS resolution times out, the lookup is delayed for that time.
+ To initiate a connection, at least one specific address or DNS name must
+ be specified.
+ '';
+
+ local_port = mkIntParam 500 ''
+ Local UDP port for IKE communication. By default the port of the socket
+ backend is used, which is usually 500. If port
+ 500 is used, automatic IKE port floating to port
+ 4500 is used to work around NAT issues.
+
+ Using a non-default local IKE port requires support from the socket
+ backend in use (socket-dynamic).
+ '';
+
+ remote_port = mkIntParam 500 ''
+ Remote UDP port for IKE communication. If the default of port
+ 500 is used, automatic IKE port floating to port
+ 4500 is used to work around NAT issues.
+ '';
+
+ proposals = mkCommaSepListParam ["default"] ''
+ A proposal is a set of algorithms. For non-AEAD algorithms, this includes
+ for IKE an encryption algorithm, an integrity algorithm, a pseudo random
+ function and a Diffie-Hellman group. For AEAD algorithms, instead of
+ encryption and integrity algorithms, a combined algorithm is used.
+
+ In IKEv2, multiple algorithms of the same kind can be specified in a
+ single proposal, from which one gets selected. In IKEv1, only one
+ algorithm per kind is allowed per proposal, more algorithms get implicitly
+ stripped. Use multiple proposals to offer different algorithms
+ combinations in IKEv1.
+
+ Algorithm keywords get separated using dashes. Multiple proposals may be
+ specified in a list. The special value default forms a
+ default proposal of supported algorithms considered safe, and is usually a
+ good choice for interoperability.
+ '';
+
+ vips = mkCommaSepListParam [] ''
+ List of virtual IPs to request in IKEv2 configuration payloads or IKEv1
+ Mode Config. The wildcard addresses 0.0.0.0 and
+ :: request an arbitrary address, specific addresses may
+ be defined. The responder may return a different address, though, or none
+ at all.
+ '';
+
+ aggressive = mkYesNoParam no ''
+ Enables Aggressive Mode instead of Main Mode with Identity
+ Protection. Aggressive Mode is considered less secure, because the ID and
+ HASH payloads are exchanged unprotected. This allows a passive attacker to
+ snoop peer identities, and even worse, start dictionary attacks on the
+ Preshared Key.
+ '';
+
+ pull = mkYesNoParam yes ''
+ If the default of yes is used, Mode Config works in pull mode, where the
+ initiator actively requests a virtual IP. With no, push mode is used,
+ where the responder pushes down a virtual IP to the initiating peer.
+
+ Push mode is currently supported for IKEv1, but not in IKEv2. It is used
+ by a few implementations only, pull mode is recommended.
+ '';
+
+ dscp = mkStrParam "000000" ''
+ Differentiated Services Field Codepoint to set on outgoing IKE packets for
+ this connection. The value is a six digit binary encoded string specifying
+ the Codepoint to set, as defined in RFC 2474.
+ '';
+
+ encap = mkYesNoParam no ''
+ To enforce UDP encapsulation of ESP packets, the IKE daemon can fake the
+ NAT detection payloads. This makes the peer believe that NAT takes place
+ on the path, forcing it to encapsulate ESP packets in UDP.
+
+ Usually this is not required, but it can help to work around connectivity
+ issues with too restrictive intermediary firewalls.
+ '';
+
+ mobike = mkYesNoParam yes ''
+ Enables MOBIKE on IKEv2 connections. MOBIKE is enabled by default on IKEv2
+ connections, and allows mobility of clients and multi-homing on servers by
+ migrating active IPsec tunnels.
+
+ Usually keeping MOBIKE enabled is unproblematic, as it is not used if the
+ peer does not indicate support for it. However, due to the design of
+ MOBIKE, IKEv2 always floats to port 4500 starting from the second
+ exchange. Some implementations don't like this behavior, hence it can be
+ disabled.
+ '';
+
+ dpd_delay = mkDurationParam "0s" ''
+ Interval to check the liveness of a peer actively using IKEv2
+ INFORMATIONAL exchanges or IKEv1 R_U_THERE messages. Active DPD checking
+ is only enforced if no IKE or ESP/AH packet has been received for the
+ configured DPD delay.
+ '';
+
+ dpd_timeout = mkDurationParam "0s" ''
+ Charon by default uses the normal retransmission mechanism and timeouts to
+ check the liveness of a peer, as all messages are used for liveness
+ checking. For compatibility reasons, with IKEv1 a custom interval may be
+ specified; this option has no effect on connections using IKEv2.
+ '';
+
+ fragmentation = mkEnumParam ["yes" "accept" "force" "no"] "yes" ''
+ Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2
+ fragmentation). Acceptable values are yes (the default
+ since 5.5.1), accept (since versions:5.5.3),
+ force and no.
+
+ If set to yes, and the peer
+ supports it, oversized IKE messages will be sent in fragments.
+ If set to
+ accept, support for fragmentation is announced to the peer but the daemon
+ does not send its own messages in fragments.
+ If set to force (only
+ supported for IKEv1) the initial IKE message will already be fragmented if
+ required.
+ Finally, setting the option to no will disable announcing
+ support for this feature.
+
+
+ Note that fragmented IKE messages sent by a peer are always processed
+ irrespective of the value of this option (even when set to no).
+ '';
+
+ send_certreq = mkYesNoParam yes ''
+ Send certificate request payloads to offer trusted root CA certificates to
+ the peer. Certificate requests help the peer to choose an appropriate
+ certificate/private key for authentication and are enabled by default.
+ Disabling certificate requests can be useful if too many trusted root CA
+ certificates are installed, as each certificate request increases the size
+ of the initial IKE packets.
+ '';
+
+ send_cert = mkEnumParam ["always" "never" "ifasked" ] "ifasked" ''
+ Send certificate payloads when using certificate authentication.
+
+ With the default of ifasked the daemon sends
+ certificate payloads only if certificate requests have been received.
+ never disables sending of certificate payloads
+ altogether,
+ always causes certificate payloads to be sent
+ unconditionally whenever certificate authentication is used.
+
+ '';
+
+ keyingtries = mkIntParam 1 ''
+ Number of retransmission sequences to perform during initial
+ connect. Instead of giving up initiation after the first retransmission
+ sequence with the default value of 1, additional
+ sequences may be started according to the configured value. A value of
+ 0 initiates a new sequence until the connection
+ establishes or fails with a permanent error.
+ '';
+
+ unique = mkEnumParam ["no" "never" "keep" "replace"] "no" ''
+ Connection uniqueness policy to enforce. To avoid multiple connections
+ from the same user, a uniqueness policy can be enforced.
+
+
+
+ The value never does never enforce such a policy, even
+ if a peer included INITIAL_CONTACT notification messages,
+
+
+ whereas no replaces existing connections for the same
+ identity if a new one has the INITIAL_CONTACT notify.
+
+
+ keep rejects new connection attempts if the same user
+ already has an active connection,
+
+
+ replace deletes any existing connection if a new one
+ for the same user gets established.
+
+
+ To compare connections for uniqueness, the remote IKE identity is used. If
+ EAP or XAuth authentication is involved, the EAP-Identity or XAuth
+ username is used to enforce the uniqueness policy instead.
+
+ On initiators this setting specifies whether an INITIAL_CONTACT notify is
+ sent during IKE_AUTH if no existing connection is found with the remote
+ peer (determined by the identities of the first authentication
+ round). Unless set to never the client will send a notify.
+ '';
+
+ reauth_time = mkDurationParam "0s" ''
+ Time to schedule IKE reauthentication. IKE reauthentication recreates the
+ IKE/ISAKMP SA from scratch and re-evaluates the credentials. In asymmetric
+ configurations (with EAP or configuration payloads) it might not be
+ possible to actively reauthenticate as responder. The IKEv2
+ reauthentication lifetime negotiation can instruct the client to perform
+ reauthentication.
+
+ Reauthentication is disabled by default. Enabling it usually may lead to
+ small connection interruptions, as strongSwan uses a break-before-make
+ policy with IKEv2 to avoid any conflicts with associated tunnel resources.
+ '';
+
+ rekey_time = mkDurationParam "4h" ''
+ IKE rekeying refreshes key material using a Diffie-Hellman exchange, but
+ does not re-check associated credentials. It is supported in IKEv2 only,
+ IKEv1 performs a reauthentication procedure instead.
+
+ With the default value IKE rekeying is scheduled every 4 hours, minus the
+ configured rand_time. If a reauth_time is configured, rekey_time defaults
+ to zero, disabling rekeying; explicitly set both to enforce rekeying and
+ reauthentication.
+ '';
+
+ over_time = mkOptionalDurationParam ''
+ Hard IKE_SA lifetime if rekey/reauth does not complete, as time. To avoid
+ having an IKE/ISAKMP kept alive if IKE reauthentication or rekeying fails
+ perpetually, a maximum hard lifetime may be specified. If the IKE_SA fails
+ to rekey or reauthenticate within the specified time, the IKE_SA gets
+ closed.
+
+ In contrast to CHILD_SA rekeying, over_time is relative in time to the
+ rekey_time and reauth_time values, as it applies to both.
+
+ The default is 10% of the longer of and
+ .
+ '';
+
+ rand_time = mkOptionalDurationParam ''
+ Time range from which to choose a random value to subtract from
+ rekey/reauth times. To avoid having both peers initiating the rekey/reauth
+ procedure simultaneously, a random time gets subtracted from the
+ rekey/reauth times.
+
+ The default is equal to the configured .
+ '';
+
+ pools = mkCommaSepListParam [] ''
+ List of named IP pools to allocate virtual IP addresses
+ and other configuration attributes from. Each name references a pool by
+ name from either the pools section or an external pool.
+ '';
+
+ mediation = mkYesNoParam no ''
+ Whether this connection is a mediation connection, that is, whether this
+ connection is used to mediate other connections using the IKEv2 Mediation
+ Extension. Mediation connections create no CHILD_SA.
+ '';
+
+ mediated_by = mkOptionalStrParam ''
+ The name of the connection to mediate this connection through. If given,
+ the connection will be mediated through the named mediation
+ connection. The mediation connection must have mediation enabled.
+ '';
+
+ mediation_peer = mkOptionalStrParam ''
+ Identity under which the peer is registered at the mediation server, that
+ is, the IKE identity the other end of this connection uses as its local
+ identity on its connection to the mediation server. This is the identity
+ we request the mediation server to mediate us with. Only relevant on
+ connections that set mediated_by. If it is not given, the remote IKE
+ identity of the first authentication round of this connection will be
+ used.
+ '';
+
+ local = mkPrefixedAttrsOfParams {
+
+ round = mkIntParam 0 ''
+ Optional numeric identifier by which authentication rounds are
+ sorted. If not specified rounds are ordered by their position in the
+ config file/vici message.
+ '';
+
+ certs = mkCommaSepListParam [] ''
+ List of certificate candidates to use for
+ authentication. The certificates may use a relative path from the
+ swanctl x509 directory or an absolute path.
+
+ The certificate used for authentication is selected based on the
+ received certificate request payloads. If no appropriate CA can be
+ located, the first certificate is used.
+ '';
+
+ cert = mkPostfixedAttrsOfParams certParams ''
+ Section for a certificate candidate to use for
+ authentication. Certificates in certs are transmitted as binary blobs,
+ these sections offer more flexibility.
+ '';
+
+ pubkeys = mkCommaSepListParam [] ''
+ List of raw public key candidates to use for
+ authentication. The public keys may use a relative path from the swanctl
+ pubkey directory or an absolute path.
+
+ Even though multiple local public keys could be defined in principle,
+ only the first public key in the list is used for authentication.
+ '';
+
+ auth = mkStrParam "pubkey" ''
+ Authentication to perform locally.
+
+
+ The default pubkey uses public key authentication
+ using a private key associated to a usable certificate.
+
+
+ psk uses pre-shared key authentication.
+
+
+ The IKEv1 specific xauth is used for XAuth or Hybrid
+ authentication,
+
+
+ while the IKEv2 specific eap keyword defines EAP
+ authentication.
+
+
+ For xauth, a specific backend name may be appended,
+ separated by a dash. The appropriate xauth backend is
+ selected to perform the XAuth exchange. For traditional XAuth, the
+ xauth method is usually defined in the second
+ authentication round following an initial pubkey (or
+ psk) round. Using xauth in the
+ first round performs Hybrid Mode client authentication.
+
+
+ For eap, a specific EAP method name may be appended, separated by a
+ dash. An EAP module implementing the appropriate method is selected to
+ perform the EAP conversation.
+
+
+ Since 5.4.0, if both peers support RFC 7427 ("Signature Authentication
+ in IKEv2") specific hash algorithms to be used during IKEv2
+ authentication may be configured. To do so use ike:
+ followed by a trust chain signature scheme constraint (see description
+ of the section's
+ keyword). For example, with ike:pubkey-sha384-sha256
+ a public key signature scheme with either SHA-384 or SHA-256 would get
+ used for authentication, in that order and depending on the hash
+ algorithms supported by the peer. If no specific hash algorithms are
+ configured, the default is to prefer an algorithm that matches or
+ exceeds the strength of the signature key. If no constraints with
+ ike: prefix are configured any signature scheme
+ constraint (without ike: prefix) will also apply to
+ IKEv2 authentication, unless this is disabled in
+ strongswan.conf. To use RSASSA-PSS signatures use
+ rsa/pss instead of pubkey or
+ rsa as in e.g.
+ ike:rsa/pss-sha256. If pubkey or
+ rsa constraints are configured RSASSA-PSS signatures
+ will only be used if enabled in strongswan.conf(5).
+
+
+ '';
+
+ id = mkOptionalStrParam ''
+ IKE identity to use for authentication round. When using certificate
+ authentication, the IKE identity must be contained in the certificate,
+ either as subject or as subjectAltName.
+ '';
+
+ eap_id = mkOptionalStrParam ''
+ Client EAP-Identity to use in EAP-Identity exchange and the EAP method.
+ '';
+
+ aaa_id = mkOptionalStrParam ''
+ Server side EAP-Identity to expect in the EAP method. Some EAP methods,
+ such as EAP-TLS, use an identity for the server to perform mutual
+ authentication. This identity may differ from the IKE identity,
+ especially when EAP authentication is delegated from the IKE responder
+ to an AAA backend.
+
+ For EAP-(T)TLS, this defines the identity for which the server must
+ provide a certificate in the TLS exchange.
+ '';
+
+ xauth_id = mkOptionalStrParam ''
+ Client XAuth username used in the XAuth exchange.
+ '';
+
+ } ''
+ Section for a local authentication round. A local authentication round
+ defines the rules how authentication is performed for the local
+ peer. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
+ Authentication or IKEv1 XAuth.
+
+ Each round is defined in a section having local as
+ prefix, and an optional unique suffix. To define a single authentication
+ round, the suffix may be omitted.
+ '';
+
+ remote = mkPrefixedAttrsOfParams {
+
+ round = mkIntParam 0 ''
+ Optional numeric identifier by which authentication rounds are
+ sorted. If not specified rounds are ordered by their position in the
+ config file/vici message.
+ '';
+
+ id = mkStrParam "%any" ''
+ IKE identity to expect for authentication round. When using certificate
+ authentication, the IKE identity must be contained in the certificate,
+ either as subject or as subjectAltName.
+ '';
+
+ eap_id = mkOptionalStrParam ''
+ Identity to use as peer identity during EAP authentication. If set to
+ %any the EAP-Identity method will be used to ask the
+ client for an EAP identity.
+ '';
+
+ groups = mkCommaSepListParam [] ''
+ Authorization group memberships to require. The peer
+ must prove membership to at least one of the specified groups. Group
+ membership can be certified by different means, for example by
+ appropriate Attribute Certificates or by an AAA backend involved in the
+ authentication.
+ '';
+
+ cert_policy = mkCommaSepListParam [] ''
+ List of certificate policy OIDs the peer's certificate
+ must have. OIDs are specified using the numerical dotted representation.
+ '';
+
+ certs = mkCommaSepListParam [] ''
+ List of certificates to accept for authentication. The certificates may
+ use a relative path from the swanctl x509 directory
+ or an absolute path.
+ '';
+
+ cert = mkPostfixedAttrsOfParams certParams ''
+ Section for a certificate candidate to use for
+ authentication. Certificates in certs are transmitted as binary blobs,
+ these sections offer more flexibility.
+ '';
+
+ cacerts = mkCommaSepListParam [] ''
+ List of CA certificates to accept for
+ authentication. The certificates may use a relative path from the
+ swanctl x509ca directory or an absolute path.
+ '';
+
+ cacert = mkPostfixedAttrsOfParams certParams ''
+ Section for a CA certificate to accept for authentication. Certificates
+ in cacerts are transmitted as binary blobs, these sections offer more
+ flexibility.
+ '';
+
+ pubkeys = mkCommaSepListParam [] ''
+ List of raw public keys to accept for
+ authentication. The public keys may use a relative path from the swanctl
+ pubkey directory or an absolute path.
+ '';
+
+ revocation = mkEnumParam ["strict" "ifuri" "relaxed"] "relaxed" ''
+ Certificate revocation policy for CRL or OCSP revocation.
+
+
+ A strict revocation policy fails if no revocation information is
+ available, i.e. the certificate is not known to be unrevoked.
+
+
+ ifuri fails only if a CRL/OCSP URI is available, but certificate
+ revocation checking fails, i.e. there should be revocation information
+ available, but it could not be obtained.
+
+
+ The default revocation policy relaxed fails only if a certificate is
+ revoked, i.e. it is explicitly known that it is bad.
+
+
+ '';
+
+ auth = mkStrParam "pubkey" ''
+ Authentication to expect from remote. See the
+ section's keyword description about the details of
+ supported mechanisms.
+
+ Since 5.4.0, to require a trustchain public key strength for the remote
+ side, specify the key type followed by the minimum strength in bits (for
+ example ecdsa-384 or
+ rsa-2048-ecdsa-256). To limit the acceptable set of
+ hashing algorithms for trustchain validation, append hash algorithms to
+ pubkey or a key strength definition (for example
+ pubkey-sha256-sha512,
+ rsa-2048-sha256-sha384-sha512 or
+ rsa-2048-sha256-ecdsa-256-sha256-sha384).
+ Unless disabled in strongswan.conf, or explicit IKEv2
+ signature constraints are configured (refer to the description of the
+ section's keyword for
+ details), such key types and hash algorithms are also applied as
+ constraints against IKEv2 signature authentication schemes used by the
+ remote side. To require RSASSA-PSS signatures use
+ rsa/pss instead of pubkey or
+ rsa as in e.g. rsa/pss-sha256. If
+ pubkey or rsa constraints are
+ configured RSASSA-PSS signatures will only be accepted if enabled in
+ strongswan.conf(5).
+
+ To specify trust chain constraints for EAP-(T)TLS, append a colon to the
+ EAP method, followed by the key type/size and hash algorithm as
+ discussed above (e.g. eap-tls:ecdsa-384-sha384).
+ '';
+
+ } ''
+ Section for a remote authentication round. A remote authentication round
+ defines the constraints how the peers must authenticate to use this
+ connection. Multiple rounds may be defined to use IKEv2 RFC 4739 Multiple
+ Authentication or IKEv1 XAuth.
+
+ Each round is defined in a section having remote as
+ prefix, and an optional unique suffix. To define a single authentication
+ round, the suffix may be omitted.
+ '';
+
+ children = mkAttrsOfParams {
+ ah_proposals = mkCommaSepListParam [] ''
+ AH proposals to offer for the CHILD_SA. A proposal is a set of
+ algorithms. For AH, this includes an integrity algorithm and an optional
+ Diffie-Hellman group. If a DH group is specified, CHILD_SA/Quick Mode
+ rekeying and initial negotiation uses a separate Diffie-Hellman exchange
+ using the specified group (refer to esp_proposals for details).
+
+ In IKEv2, multiple algorithms of the same kind can be specified in a
+ single proposal, from which one gets selected. In IKEv1, only one
+ algorithm per kind is allowed per proposal, more algorithms get
+ implicitly stripped. Use multiple proposals to offer different algorithms
+ combinations in IKEv1.
+
+ Algorithm keywords get separated using dashes. Multiple proposals may be
+ specified in a list. The special value default forms
+ a default proposal of supported algorithms considered safe, and is
+ usually a good choice for interoperability. By default no AH proposals
+ are included, instead ESP is proposed.
+ '';
+
+ esp_proposals = mkCommaSepListParam ["default"] ''
+ ESP proposals to offer for the CHILD_SA. A proposal is a set of
+ algorithms. For ESP non-AEAD proposals, this includes an integrity
+ algorithm, an encryption algorithm, an optional Diffie-Hellman group and
+ an optional Extended Sequence Number Mode indicator. For AEAD proposals,
+ a combined mode algorithm is used instead of the separate
+ encryption/integrity algorithms.
+
+ If a DH group is specified, CHILD_SA/Quick Mode rekeying and initial
+ negotiation use a separate Diffie-Hellman exchange using the specified
+ group. However, for IKEv2, the keys of the CHILD_SA created implicitly
+ with the IKE_SA will always be derived from the IKE_SA's key material. So
+ any DH group specified here will only apply when the CHILD_SA is later
+ rekeyed or is created with a separate CREATE_CHILD_SA exchange. A
+ proposal mismatch might, therefore, not immediately be noticed when the
+ SA is established, but may later cause rekeying to fail.
+
+ Extended Sequence Number support may be indicated with the
+ esn and noesn values, both may be
+ included to indicate support for both modes. If omitted,
+ noesn is assumed.
+
+ In IKEv2, multiple algorithms of the same kind can be specified in a
+ single proposal, from which one gets selected. In IKEv1, only one
+ algorithm per kind is allowed per proposal, more algorithms get
+ implicitly stripped. Use multiple proposals to offer different algorithms
+ combinations in IKEv1.
+
+ Algorithm keywords get separated using dashes. Multiple proposals may be
+ specified as a list. The special value default forms
+ a default proposal of supported algorithms considered safe, and is
+ usually a good choice for interoperability. If no algorithms are
+ specified for AH nor ESP, the default set of algorithms for ESP is
+ included.
+ '';
+
+ sha256_96 = mkYesNoParam no ''
+ HMAC-SHA-256 is used with 128-bit truncation with IPsec. For
+ compatibility with implementations that incorrectly use 96-bit truncation
+ this option may be enabled to configure the shorter truncation length in
+ the kernel. This is not negotiated, so this only works with peers that
+ use the incorrect truncation length (or have this option enabled).
+ '';
+
+ local_ts = mkCommaSepListParam ["dynamic"] ''
+ List of local traffic selectors to include in CHILD_SA. Each selector is
+ a CIDR subnet definition, followed by an optional proto/port
+ selector. The special value dynamic may be used
+ instead of a subnet definition, which gets replaced by the tunnel outer
+ address or the virtual IP, if negotiated. This is the default.
+
+ A protocol/port selector is surrounded by opening and closing square
+ brackets. Between these brackets, a numeric or getservent(3) protocol
+ name may be specified. After the optional protocol restriction, an
+ optional port restriction may be specified, separated by a slash. The
+ port restriction may be numeric, a getservent(3) service name, or the
+ special value opaque for RFC 4301 OPAQUE
+ selectors. Port ranges may be specified as well, none of the kernel
+ backends currently support port ranges, though.
+
+ When IKEv1 is used only the first selector is interpreted, except if the
+ Cisco Unity extension plugin is used. This is due to a limitation of the
+ IKEv1 protocol, which only allows a single pair of selectors per
+ CHILD_SA. So to tunnel traffic matched by several pairs of selectors when
+ using IKEv1 several children (CHILD_SAs) have to be defined that cover
+ the selectors. The IKE daemon uses traffic selector narrowing for IKEv1,
+ the same way it is standardized and implemented for IKEv2. However, this
+ may lead to problems with other implementations. To avoid that, configure
+ identical selectors in such scenarios.
+ '';
+
+ remote_ts = mkCommaSepListParam ["dynamic"] ''
+ List of remote selectors to include in CHILD_SA. See
+ for a description of the selector syntax.
+ '';
+
+ rekey_time = mkDurationParam "1h" ''
+ Time to schedule CHILD_SA rekeying. CHILD_SA rekeying refreshes key
+ material, optionally using a Diffie-Hellman exchange if a group is
+ specified in the proposal. To avoid rekey collisions initiated by both
+ ends simultaneously, a value in the range of
+ gets subtracted to form the effective soft lifetime.
+
+ By default CHILD_SA rekeying is scheduled every hour, minus
+ .
+ '';
+
+ life_time = mkOptionalDurationParam ''
+ Maximum lifetime before CHILD_SA gets closed. Usually this hard lifetime
+ is never reached, because the CHILD_SA gets rekeyed before. If that fails
+ for whatever reason, this limit closes the CHILD_SA. The default is 10%
+ more than the .
+ '';
+
+ rand_time = mkOptionalDurationParam ''
+ Time range from which to choose a random value to subtract from
+ . The default is the difference between
+ and .
+ '';
+
+ rekey_bytes = mkIntParam 0 ''
+ Number of bytes processed before initiating CHILD_SA rekeying. CHILD_SA
+ rekeying refreshes key material, optionally using a Diffie-Hellman
+ exchange if a group is specified in the proposal.
+
+ To avoid rekey collisions initiated by both ends simultaneously, a value
+ in the range of gets subtracted to form the
+ effective soft volume limit.
+
+ Volume based CHILD_SA rekeying is disabled by default.
+ '';
+
+ life_bytes = mkOptionalIntParam ''
+ Maximum bytes processed before CHILD_SA gets closed. Usually this hard
+ volume limit is never reached, because the CHILD_SA gets rekeyed
+ before. If that fails for whatever reason, this limit closes the
+ CHILD_SA. The default is 10% more than .
+ '';
+
+ rand_bytes = mkOptionalIntParam ''
+ Byte range from which to choose a random value to subtract from
+ . The default is the difference between
+ and .
+ '';
+
+ rekey_packets = mkIntParam 0 ''
+ Number of packets processed before initiating CHILD_SA rekeying. CHILD_SA
+ rekeying refreshes key material, optionally using a Diffie-Hellman
+ exchange if a group is specified in the proposal.
+
+ To avoid rekey collisions initiated by both ends simultaneously, a value
+ in the range of gets subtracted to form
+ the effective soft packet count limit.
+
+ Packet count based CHILD_SA rekeying is disabled by default.
+ '';
+
+ life_packets = mkOptionalIntParam ''
+ Maximum number of packets processed before CHILD_SA gets closed. Usually
+ this hard packets limit is never reached, because the CHILD_SA gets
+ rekeyed before. If that fails for whatever reason, this limit closes the
+ CHILD_SA.
+
+ The default is 10% more than .
+ '';
+
+ rand_packets = mkOptionalIntParam ''
+ Packet range from which to choose a random value to subtract from
+ . The default is the difference between
+ and .
+ '';
+
+ updown = mkOptionalStrParam ''
+ Updown script to invoke on CHILD_SA up and down events.
+ '';
+
+ hostaccess = mkYesNoParam yes ''
+ Hostaccess variable to pass to updown script.
+ '';
+
+ mode = mkEnumParam [ "tunnel"
+ "transport"
+ "transport_proxy"
+ "beet"
+ "pass"
+ "drop"
+ ] "tunnel" ''
+ IPsec Mode to establish CHILD_SA with.
+
+
+ tunnel negotiates the CHILD_SA in IPsec Tunnel Mode,
+
+
+ whereas transport uses IPsec Transport Mode.
+
+
+ transport_proxy signifying the special Mobile IPv6
+ Transport Proxy Mode.
+
+
+ beet is the Bound End to End Tunnel mixture mode,
+ working with fixed inner addresses without the need to include them in
+ each packet.
+
+
+ Both transport and beet modes are
+ subject to mode negotiation; tunnel mode is
+ negotiated if the preferred mode is not available.
+
+
+ pass and drop are used to install
+ shunt policies which explicitly bypass the defined traffic from IPsec
+ processing or drop it, respectively.
+
+
+ '';
+
+ policies = mkYesNoParam yes ''
+ Whether to install IPsec policies or not. Disabling this can be useful in
+ some scenarios e.g. MIPv6, where policies are not managed by the IKE
+ daemon. Since 5.3.3.
+ '';
+
+ policies_fwd_out = mkYesNoParam no ''
+ Whether to install outbound FWD IPsec policies or not. Enabling this is
+ required in case there is a drop policy that would match and block
+ forwarded traffic for this CHILD_SA. Since 5.5.1.
+ '';
+
+ dpd_action = mkEnumParam ["clear" "trap" "restart"] "clear" ''
+ Action to perform for this CHILD_SA on DPD timeout. The default clear
+ closes the CHILD_SA and does not take further action. trap installs a
+ trap policy, which will catch matching traffic and tries to re-negotiate
+ the tunnel on-demand. restart immediately tries to re-negotiate the
+ CHILD_SA under a fresh IKE_SA.
+ '';
+
+ ipcomp = mkYesNoParam no ''
+ Enable IPComp compression before encryption. If enabled, IKE tries to
+ negotiate IPComp compression to compress ESP payload data prior to
+ encryption.
+ '';
+
+ inactivity = mkDurationParam "0s" ''
+ Timeout before closing CHILD_SA after inactivity. If no traffic has been
+ processed in either direction for the configured timeout, the CHILD_SA
+ gets closed due to inactivity. The default value of 0 disables inactivity
+ checks.
+ '';
+
+ reqid = mkIntParam 0 ''
+ Fixed reqid to use for this CHILD_SA. This might be helpful in some
+ scenarios, but works only if each CHILD_SA configuration is instantiated
+ not more than once. The default of 0 uses dynamic reqids, allocated
+ incrementally.
+ '';
+
+ priority = mkIntParam 0 ''
+ Optional fixed priority for IPsec policies. This could be useful to
+ install high-priority drop policies. The default of 0 uses dynamically
+ calculated priorities based on the size of the traffic selectors.
+ '';
+
+ interface = mkOptionalStrParam ''
+ Optional interface name to restrict outbound IPsec policies.
+ '';
+
+ mark_in = mkStrParam "0/0x00000000" ''
+ Netfilter mark and mask for input traffic. On Linux, Netfilter may
+ require marks on each packet to match an SA/policy having that option
+ set. This allows installing duplicate policies and enables Netfilter
+ rules to select specific SAs/policies for incoming traffic. Note that
+ inbound marks are only set on policies, by default, unless
+ is enabled. The special value
+ %unique sets a unique mark on each CHILD_SA instance,
+ beyond that the value %unique-dir assigns a different
+ unique mark for each
+
+ An additional mask may be appended to the mark, separated by
+ /. The default mask if omitted is
+ 0xffffffff.
+ '';
+
+ mark_in_sa = mkYesNoParam no ''
+ Whether to set on the inbound SA. By default,
+ the inbound mark is only set on the inbound policy. The tuple destination
+ address, protocol and SPI is unique and the mark is not required to find
+ the correct SA, allowing to mark traffic after decryption instead (where
+ more specific selectors may be used) to match different policies. Marking
+ packets before decryption is still possible, even if no mark is set on
+ the SA.
+ '';
+
+ mark_out = mkStrParam "0/0x00000000" ''
+ Netfilter mark and mask for output traffic. On Linux, Netfilter may
+ require marks on each packet to match a policy/SA having that option
+ set. This allows installing duplicate policies and enables Netfilter
+ rules to select specific policies/SAs for outgoing traffic. The special
+ value %unique sets a unique mark on each CHILD_SA
+ instance, beyond that the value %unique-dir assigns a
+ different unique mark for each CHILD_SA direction (in/out).
+
+ An additional mask may be appended to the mark, separated by
+ /. The default mask if omitted is
+ 0xffffffff.
+ '';
+
+ tfc_padding = mkParamOfType (with lib.types; either int (enum ["mtu"])) 0 ''
+ Pads ESP packets with additional data to have a consistent ESP packet
+ size for improved Traffic Flow Confidentiality. The padding defines the
+ minimum size of all ESP packets sent. The default value of
+ 0 disables TFC padding, the special value
+ mtu adds TFC padding to create a packet size equal to
+ the Path Maximum Transfer Unit.
+ '';
+
+ replay_window = mkIntParam 32 ''
+ IPsec replay window to configure for this CHILD_SA. Larger values than
+ the default of 32 are supported using the Netlink
+ backend only, a value of 0 disables IPsec replay
+ protection.
+ '';
+
+ hw_offload = mkYesNoParam no ''
+ Enable hardware offload for this CHILD_SA, if supported by the IPsec
+ implementation.
+ '';
+
+ start_action = mkEnumParam ["none" "trap" "start"] "none" ''
+ Action to perform after loading the configuration.
+
+
+ The default of none loads the connection only, which
+ then can be manually initiated or used as a responder configuration.
+
+
+ The value trap installs a trap policy, which triggers
+ the tunnel as soon as matching traffic has been detected.
+
+
+ The value start initiates the connection actively.
+
+
+ When unloading or replacing a CHILD_SA configuration having a
+ different from none,
+ the inverse action is performed. Configurations with
+ start get closed, while such with
+ trap get uninstalled.
+ '';
+
+ close_action = mkEnumParam ["none" "trap" "start"] "none" ''
+ Action to perform after a CHILD_SA gets closed by the peer.
+
+
+ The default of none does not take any action,
+
+
+ trap installs a trap policy for the CHILD_SA.
+
+
+ start tries to re-create the CHILD_SA.
+
+
+
+ does not provide any guarantee that the
+ CHILD_SA is kept alive. It acts on explicit close messages only, but not
+ on negotiation failures. Use trap policies to reliably re-create failed
+ CHILD_SAs.
+ '';
+
+ } ''
+ CHILD_SA configuration sub-section. Each connection definition may have
+ one or more sections in its subsection. The
+ section name defines the name of the CHILD_SA configuration, which must be
+ unique within the connection (denoted <child> below).
+ '';
+ } ''
+ Section defining IKE connection configurations, each in its own subsection
+ with an arbitrary yet unique name
+ '';
+
+ secrets = let
+ mkEapXauthParams = mkPrefixedAttrsOfParams {
+ secret = mkOptionalStrParam ''
+ Value of the EAP/XAuth secret. It may either be an ASCII string, a hex
+ encoded string if it has a 0x prefix or a Base64 encoded string if it
+ has a 0s prefix in its value.
+ '';
+
+ id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
+ Identity the EAP/XAuth secret belongs to. Multiple unique identities may
+ be specified, each having an id prefix, if a secret
+ is shared between multiple users.
+ '';
+
+ } ''
+ EAP secret section for a specific secret. Each EAP secret is defined in a
+ unique section having the eap prefix. EAP secrets are
+ used for XAuth authentication as well.
+ '';
+
+ in {
+
+ eap = mkEapXauthParams;
+ xauth = mkEapXauthParams;
+
+ ntlm = mkPrefixedAttrsOfParams {
+ secret = mkOptionalStrParam ''
+ Value of the NTLM secret, which is the NT Hash of the actual secret,
+ that is, MD4(UTF-16LE(secret)). The resulting 16-byte value may either
+ be given as a hex encoded string with a 0x prefix or as a Base64 encoded
+ string with a 0s prefix.
+ '';
+
+ id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
+ Identity the NTLM secret belongs to. Multiple unique identities may be
+ specified, each having an id prefix, if a secret is shared between
+ multiple users.
+ '';
+ } ''
+ NTLM secret section for a specific secret. Each NTLM secret is defined in
+ a unique section having the ntlm prefix. NTLM secrets
+ may only be used for EAP-MSCHAPv2 authentication.
+ '';
+
+ ike = mkPrefixedAttrsOfParams {
+ secret = mkOptionalStrParam ''
+ Value of the IKE preshared secret. It may either be an ASCII string, a
+ hex encoded string if it has a 0x prefix or a Base64 encoded string if
+ it has a 0s prefix in its value.
+ '';
+
+ id = mkPrefixedAttrsOfParam (mkOptionalStrParam "") ''
+ IKE identity the IKE preshared secret belongs to. Multiple unique
+ identities may be specified, each having an id
+ prefix, if a secret is shared between multiple peers.
+ '';
+ } ''
+ IKE preshared secret section for a specific secret. Each IKE PSK is
+ defined in a unique section having the ike prefix.
+ '';
+
+ private = mkPrefixedAttrsOfParams {
+ file = mkOptionalStrParam ''
+ File name in the private folder for which this passphrase should be used.
+ '';
+
+ secret = mkOptionalStrParam ''
+ Value of decryption passphrase for private key.
+ '';
+ } ''
+ Private key decryption passphrase for a key in the
+ private folder.
+ '';
+
+ rsa = mkPrefixedAttrsOfParams {
+ file = mkOptionalStrParam ''
+ File name in the rsa folder for which this passphrase
+ should be used.
+ '';
+ secret = mkOptionalStrParam ''
+ Value of decryption passphrase for RSA key.
+ '';
+ } ''
+ Private key decryption passphrase for a key in the rsa
+ folder.
+ '';
+
+ ecdsa = mkPrefixedAttrsOfParams {
+ file = mkOptionalStrParam ''
+ File name in the ecdsa folder for which this
+ passphrase should be used.
+ '';
+ secret = mkOptionalStrParam ''
+ Value of decryption passphrase for ECDSA key.
+ '';
+ } ''
+ Private key decryption passphrase for a key in the
+ ecdsa folder.
+ '';
+
+ pkcs8 = mkPrefixedAttrsOfParams {
+ file = mkOptionalStrParam ''
+ File name in the pkcs8 folder for which this
+ passphrase should be used.
+ '';
+ secret = mkOptionalStrParam ''
+ Value of decryption passphrase for PKCS#8 key.
+ '';
+ } ''
+ Private key decryption passphrase for a key in the
+ pkcs8 folder.
+ '';
+
+ pkcs12 = mkPrefixedAttrsOfParams {
+ file = mkOptionalStrParam ''
+ File name in the pkcs12 folder for which this
+ passphrase should be used.
+ '';
+ secret = mkOptionalStrParam ''
+ Value of decryption passphrase for PKCS#12 container.
+ '';
+ } ''
+ PKCS#12 decryption passphrase for a container in the
+ pkcs12 folder.
+ '';
+
+ token = mkPrefixedAttrsOfParams {
+ handle = mkOptionalHexParam ''
+ Hex-encoded CKA_ID or handle of the private key on the token or TPM,
+ respectively.
+ '';
+
+ slot = mkOptionalIntParam ''
+ Optional slot number to access the token.
+ '';
+
+ module = mkOptionalStrParam ''
+ Optional PKCS#11 module name to access the token.
+ '';
+
+ pin = mkOptionalStrParam ''
+ Optional PIN required to access the key on the token. If none is
+ provided the user is prompted during an interactive
+ --load-creds call.
+ '';
+ } ''Definition for a private key that's stored on a token/smartcard/TPM.'';
+
+ };
+
+ pools = mkAttrsOfParams {
+ addrs = mkOptionalStrParam ''
+ Subnet or range defining addresses allocated in pool. Accepts a single
+ CIDR subnet defining the pool to allocate addresses from or an address
+ range (<from>-<to>). Pools must be unique and non-overlapping.
+ '';
+
+ dns = mkCommaSepListParam [] "Address or CIDR subnets";
+ nbns = mkCommaSepListParam [] "Address or CIDR subnets";
+ dhcp = mkCommaSepListParam [] "Address or CIDR subnets";
+ netmask = mkCommaSepListParam [] "Address or CIDR subnets";
+ server = mkCommaSepListParam [] "Address or CIDR subnets";
+ subnet = mkCommaSepListParam [] "Address or CIDR subnets";
+ split_include = mkCommaSepListParam [] "Address or CIDR subnets";
+ split_exclude = mkCommaSepListParam [] "Address or CIDR subnets";
+ } ''
+ Section defining named pools. Named pools may be referenced by connections
+ with the pools option to assign virtual IPs and other configuration
+ attributes. Each pool must have a unique name (denoted <name> below).
+ '';
+}
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index 8e5f0bfc070..94958bfdd83 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -4,22 +4,22 @@ let
cfg = config.services.unifi;
stateDir = "/var/lib/unifi";
cmd = ''
- @${pkgs.jre}/bin/java java \
+ @${cfg.jrePackage}/bin/java java \
${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \
${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
-jar ${stateDir}/lib/ace.jar
'';
mountPoints = [
{
- what = "${pkgs.unifi}/dl";
+ what = "${cfg.unifiPackage}/dl";
where = "${stateDir}/dl";
}
{
- what = "${pkgs.unifi}/lib";
+ what = "${cfg.unifiPackage}/lib";
where = "${stateDir}/lib";
}
{
- what = "${pkgs.mongodb}/bin";
+ what = "${cfg.mongodbPackage}/bin";
where = "${stateDir}/bin";
}
{
@@ -41,6 +41,33 @@ in
'';
};
+ services.unifi.jrePackage = mkOption {
+ type = types.package;
+ default = pkgs.jre8;
+ defaultText = "pkgs.jre8";
+ description = ''
+ The JRE package to use. Check the release notes to ensure it is supported.
+ '';
+ };
+
+ services.unifi.unifiPackage = mkOption {
+ type = types.package;
+ default = pkgs.unifiLTS;
+ defaultText = "pkgs.unifiLTS";
+ description = ''
+ The unifi package to use.
+ '';
+ };
+
+ services.unifi.mongodbPackage = mkOption {
+ type = types.package;
+ default = pkgs.mongodb;
+ defaultText = "pkgs.mongodb";
+ description = ''
+ The mongodb package to use.
+ '';
+ };
+
services.unifi.dataDir = mkOption {
type = types.str;
default = "${stateDir}/data";
@@ -137,7 +164,7 @@ in
rm -rf "${stateDir}/webapps"
mkdir -p "${stateDir}/webapps"
chown unifi "${stateDir}/webapps"
- ln -s "${pkgs.unifi}/webapps/ROOT" "${stateDir}/webapps/ROOT"
+ ln -s "${cfg.unifiPackage}/webapps/ROOT" "${stateDir}/webapps/ROOT"
'';
postStop = ''
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 24accd41511..0591917c742 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -53,30 +53,30 @@ let
};
preSetup = mkOption {
- example = literalExample [''
+ example = literalExample ''
${pkgs.iproute}/bin/ip netns add foo
- ''];
- default = [];
- type = with types; listOf str;
+ '';
+ default = "";
+ type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
description = ''
- A list of commands called at the start of the interface setup.
+ Commands called at the start of the interface setup.
'';
};
postSetup = mkOption {
- example = literalExample [''
- ${pkgs.bash} -c 'printf "nameserver 10.200.100.1" | ${pkgs.openresolv}/bin/resolvconf -a wg0 -m 0'
- ''];
- default = [];
- type = with types; listOf str;
- description = "A list of commands called at the end of the interface setup.";
+ example = literalExample ''
+ printf "nameserver 10.200.100.1" | ${pkgs.openresolv}/bin/resolvconf -a wg0 -m 0
+ '';
+ default = "";
+ type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
+ description = "Commands called at the end of the interface setup.";
};
postShutdown = mkOption {
- example = literalExample ["${pkgs.openresolv}/bin/resolvconf -d wg0"];
- default = [];
- type = with types; listOf str;
- description = "A list of commands called after shutting down the interface.";
+ example = literalExample "${pkgs.openresolv}/bin/resolvconf -d wg0";
+ default = "";
+ type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
+ description = "Commands called after shutting down the interface.";
};
table = mkOption {
@@ -182,9 +182,6 @@ let
};
- ipCommand = "${pkgs.iproute}/bin/ip";
- wgCommand = "${pkgs.wireguard}/bin/wg";
-
generateUnit = name: values:
# exactly one way to specify the private key must be set
assert (values.privateKey != null) != (values.privateKeyFile != null);
@@ -196,49 +193,53 @@ let
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment.DEVICE = name;
+ path = with pkgs; [ kmod iproute wireguard ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
- ExecStart = flatten([
- values.preSetup
+ };
- "-${ipCommand} link del dev ${name}"
- "${ipCommand} link add dev ${name} type wireguard"
+ script = ''
+ modprobe wireguard
- (map (ip:
- "${ipCommand} address add ${ip} dev ${name}"
- ) values.ips)
+ ${values.preSetup}
- ("${wgCommand} set ${name} private-key ${privKey}" +
- optionalString (values.listenPort != null) " listen-port ${toString values.listenPort}")
+ ip link add dev ${name} type wireguard
- (map (peer:
+ ${concatMapStringsSep "\n" (ip:
+ "ip address add ${ip} dev ${name}"
+ ) values.ips}
+
+ wg set ${name} private-key ${privKey} ${
+ optionalString (values.listenPort != null) " listen-port ${toString values.listenPort}"}
+
+ ${concatMapStringsSep "\n" (peer:
assert (peer.presharedKeyFile == null) || (peer.presharedKey == null); # at most one of the two must be set
let psk = if peer.presharedKey != null then pkgs.writeText "wg-psk" peer.presharedKey else peer.presharedKeyFile;
in
- "${wgCommand} set ${name} peer ${peer.publicKey}" +
- optionalString (psk != null) " preshared-key ${psk}" +
- optionalString (peer.endpoint != null) " endpoint ${peer.endpoint}" +
- optionalString (peer.persistentKeepalive != null) " persistent-keepalive ${toString peer.persistentKeepalive}" +
- optionalString (peer.allowedIPs != []) " allowed-ips ${concatStringsSep "," peer.allowedIPs}"
- ) values.peers)
+ "wg set ${name} peer ${peer.publicKey}" +
+ optionalString (psk != null) " preshared-key ${psk}" +
+ optionalString (peer.endpoint != null) " endpoint ${peer.endpoint}" +
+ optionalString (peer.persistentKeepalive != null) " persistent-keepalive ${toString peer.persistentKeepalive}" +
+ optionalString (peer.allowedIPs != []) " allowed-ips ${concatStringsSep "," peer.allowedIPs}"
+ ) values.peers}
- "${ipCommand} link set up dev ${name}"
+ ip link set up dev ${name}
- (optionals (values.allowedIPsAsRoutes != false) (map (peer:
- (map (allowedIP:
- "${ipCommand} route replace ${allowedIP} dev ${name} table ${values.table}"
- ) peer.allowedIPs)
- ) values.peers))
+ ${optionalString (values.allowedIPsAsRoutes != false) (concatStringsSep "\n" (concatMap (peer:
+ (map (allowedIP:
+ "ip route replace ${allowedIP} dev ${name} table ${values.table}"
+ ) peer.allowedIPs)
+ ) values.peers))}
- values.postSetup
- ]);
- ExecStop = flatten([
- "${ipCommand} link del dev ${name}"
- values.postShutdown
- ]);
- };
+ ${values.postSetup}
+ '';
+
+ preStop = ''
+ ip link del dev ${name}
+ ${values.postShutdown}
+ '';
};
in
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index ecab8cfc7df..c4147986439 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -83,6 +83,8 @@ let
WebInterface ${if cfg.webInterface then "Yes" else "No"}
+ LogLevel ${cfg.logLevel}
+
${cfg.extraConf}
'';
@@ -165,6 +167,15 @@ in
'';
};
+ logLevel = mkOption {
+ type = types.str;
+ default = "info";
+ example = "debug";
+ description = ''
+ Specifies the cupsd logging verbosity.
+ '';
+ };
+
extraFilesConf = mkOption {
type = types.lines;
default = "";
@@ -180,7 +191,7 @@ in
example =
''
BrowsePoll cups.example.com
- LogLevel debug
+ MaxCopies 42
'';
description = ''
Extra contents of the configuration file of the CUPS daemon
@@ -345,8 +356,6 @@ in
services.printing.extraConf =
''
- LogLevel info
-
DefaultAuthType Basic
diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix
index adef500b7b5..d61f588205a 100644
--- a/nixos/modules/services/search/elasticsearch.nix
+++ b/nixos/modules/services/search/elasticsearch.nix
@@ -32,8 +32,11 @@ let
(if es5 then (pkgs.writeTextDir "log4j2.properties" cfg.logging)
else (pkgs.writeTextDir "logging.yml" cfg.logging))
];
- # Elasticsearch 5.x won't start when the scripts directory does not exist
- postBuild = if es5 then "${pkgs.coreutils}/bin/mkdir -p $out/scripts" else "";
+ postBuild = concatStringsSep "\n" (concatLists [
+ # Elasticsearch 5.x won't start when the scripts directory does not exist
+ (optional es5 "${pkgs.coreutils}/bin/mkdir -p $out/scripts")
+ (optional es6 "ln -s ${cfg.package}/config/jvm.options $out/jvm.options")
+ ]);
};
esPlugins = pkgs.buildEnv {
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index ef48d52e7a9..433d97c2a7d 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -6,70 +6,81 @@ with lib;
let
cfg = config.services.oauth2_proxy;
- # Use like:
- # repeatedArgs (arg: "--arg=${arg}") args
- repeatedArgs = concatMapStringsSep " ";
-
# oauth2_proxy provides many options that are only relevant if you are using
# a certain provider. This set maps from provider name to a function that
# takes the configuration and returns a string that can be inserted into the
# command-line to launch oauth2_proxy.
providerSpecificOptions = {
- azure = cfg: ''
- --azure-tenant=${cfg.azure.tenant} \
- --resource=${cfg.azure.resource} \
- '';
+ azure = cfg: {
+ azure.tenant = cfg.azure.tenant;
+ resource = cfg.azure.resource;
+ };
- github = cfg: ''
- ${optionalString (!isNull cfg.github.org) "--github-org=${cfg.github.org}"} \
- ${optionalString (!isNull cfg.github.team) "--github-org=${cfg.github.team}"} \
- '';
+ github = cfg: { github = {
+ inherit (cfg.github) org team;
+ }; };
- google = cfg: ''
- --google-admin-email=${cfg.google.adminEmail} \
- --google-service-account=${cfg.google.serviceAccountJSON} \
- ${repeatedArgs (group: "--google-group=${group}") cfg.google.groups} \
- '';
+ google = cfg: { google = with cfg.google; optionalAttrs (groups != []) {
+ admin-email = adminEmail;
+ service-account = serviceAccountJSON;
+ group = groups;
+ }; };
};
authenticatedEmailsFile = pkgs.writeText "authenticated-emails" cfg.email.addresses;
- getProviderOptions = cfg: provider: providerSpecificOptions.${provider} or (_: "") cfg;
+ getProviderOptions = cfg: provider: providerSpecificOptions.${provider} or (_: {}) cfg;
- mkCommandLine = cfg: ''
- --provider='${cfg.provider}' \
- ${optionalString (!isNull cfg.email.addresses) "--authenticated-emails-file='${authenticatedEmailsFile}'"} \
- --approval-prompt='${cfg.approvalPrompt}' \
- ${optionalString (cfg.passBasicAuth && !isNull cfg.basicAuthPassword) "--basic-auth-password='${cfg.basicAuthPassword}'"} \
- --client-id='${cfg.clientID}' \
- --client-secret='${cfg.clientSecret}' \
- ${optionalString (!isNull cfg.cookie.domain) "--cookie-domain='${cfg.cookie.domain}'"} \
- --cookie-expire='${cfg.cookie.expire}' \
- --cookie-httponly=${boolToString cfg.cookie.httpOnly} \
- --cookie-name='${cfg.cookie.name}' \
- --cookie-secret='${cfg.cookie.secret}' \
- --cookie-secure=${boolToString cfg.cookie.secure} \
- ${optionalString (!isNull cfg.cookie.refresh) "--cookie-refresh='${cfg.cookie.refresh}'"} \
- ${optionalString (!isNull cfg.customTemplatesDir) "--custom-templates-dir='${cfg.customTemplatesDir}'"} \
- ${repeatedArgs (x: "--email-domain='${x}'") cfg.email.domains} \
- --http-address='${cfg.httpAddress}' \
- ${optionalString (!isNull cfg.htpasswd.file) "--htpasswd-file='${cfg.htpasswd.file}' --display-htpasswd-form=${boolToString cfg.htpasswd.displayForm}"} \
- ${optionalString (!isNull cfg.loginURL) "--login-url='${cfg.loginURL}'"} \
- --pass-access-token=${boolToString cfg.passAccessToken} \
- --pass-basic-auth=${boolToString cfg.passBasicAuth} \
- --pass-host-header=${boolToString cfg.passHostHeader} \
- --proxy-prefix='${cfg.proxyPrefix}' \
- ${optionalString (!isNull cfg.profileURL) "--profile-url='${cfg.profileURL}'"} \
- ${optionalString (!isNull cfg.redeemURL) "--redeem-url='${cfg.redeemURL}'"} \
- ${optionalString (!isNull cfg.redirectURL) "--redirect-url='${cfg.redirectURL}'"} \
- --request-logging=${boolToString cfg.requestLogging} \
- ${optionalString (!isNull cfg.scope) "--scope='${cfg.scope}'"} \
- ${repeatedArgs (x: "--skip-auth-regex='${x}'") cfg.skipAuthRegexes} \
- ${optionalString (!isNull cfg.signatureKey) "--signature-key='${cfg.signatureKey}'"} \
- --upstream='${cfg.upstream}' \
- ${optionalString (!isNull cfg.validateURL) "--validate-url='${cfg.validateURL}'"} \
- ${optionalString cfg.tls.enable "--tls-cert='${cfg.tls.certificate}' --tls-key='${cfg.tls.key}' --https-address='${cfg.tls.httpsAddress}'"} \
- '' + getProviderOptions cfg cfg.provider;
+ allConfig = with cfg; {
+ inherit (cfg) provider scope upstream;
+ approval-prompt = approvalPrompt;
+ basic-auth-password = basicAuthPassword;
+ client-id = clientID;
+ client-secret = clientSecret;
+ custom-templates-dir = customTemplatesDir;
+ email-domain = email.domains;
+ http-address = httpAddress;
+ login-url = loginURL;
+ pass-access-token = passAccessToken;
+ pass-basic-auth = passBasicAuth;
+ pass-host-header = passHostHeader;
+ proxy-prefix = proxyPrefix;
+ profile-url = profileURL;
+ redeem-url = redeemURL;
+ redirect-url = redirectURL;
+ request-logging = requestLogging;
+ skip-auth-regex = skipAuthRegexes;
+ signature-key = signatureKey;
+ validate-url = validateURL;
+ htpasswd-file = htpasswd.file;
+ cookie = {
+ inherit (cookie) domain secure expire name secret refresh;
+ httponly = cookie.httpOnly;
+ };
+ set-xauthrequest = setXauthrequest;
+ } // lib.optionalAttrs (!isNull cfg.email.addresses) {
+ authenticated-emails-file = authenticatedEmailsFile;
+ } // lib.optionalAttrs (cfg.passBasicAuth) {
+ basic-auth-password = cfg.basicAuthPassword;
+ } // lib.optionalAttrs (!isNull cfg.htpasswd.file) {
+ display-htpasswd-file = cfg.htpasswd.displayForm;
+ } // lib.optionalAttrs tls.enable {
+ tls-cert = tls.certificate;
+ tls-key = tls.key;
+ https-address = tls.httpsAddress;
+ } // (getProviderOptions cfg cfg.provider) // cfg.extraConfig;
+
+ mapConfig = key: attr:
+ if (!isNull attr && attr != []) then (
+ if (builtins.typeOf attr) == "set" then concatStringsSep " "
+ (mapAttrsToList (name: value: mapConfig (key + "-" + name) value) attr) else
+ if (builtins.typeOf attr) == "list" then concatMapStringsSep " " (mapConfig key) attr else
+ if (builtins.typeOf attr) == "bool" then "--${key}=${boolToString attr}" else
+ if (builtins.typeOf attr) == "string" then "--${key}='${attr}'" else
+ "--${key}=${toString attr}")
+ else "";
+
+ configString = concatStringsSep " " (mapAttrsToList mapConfig allConfig);
in
{
options.services.oauth2_proxy = {
@@ -110,7 +121,7 @@ in
};
clientID = mkOption {
- type = types.str;
+ type = types.nullOr types.str;
description = ''
The OAuth Client ID.
'';
@@ -118,7 +129,7 @@ in
};
clientSecret = mkOption {
- type = types.str;
+ type = types.nullOr types.str;
description = ''
The OAuth Client Secret.
'';
@@ -272,7 +283,8 @@ in
####################################################
# UPSTREAM Configuration
upstream = mkOption {
- type = types.commas;
+ type = with types; coercedTo string (x: [x]) (listOf string);
+ default = [];
description = ''
The http url(s) of the upstream endpoint or file://
paths for static files. Routing is based on the path.
@@ -365,7 +377,7 @@ in
};
secret = mkOption {
- type = types.str;
+ type = types.nullOr types.str;
description = ''
The seed string for secure cookies.
'';
@@ -494,10 +506,43 @@ in
'';
};
+ setXauthrequest = mkOption {
+ type = types.nullOr types.bool;
+ default = false;
+ description = ''
+ Set X-Auth-Request-User and X-Auth-Request-Email response headers (useful in Nginx auth_request mode). Setting this to 'null' means using the upstream default (false).
+ '';
+ };
+
+ extraConfig = mkOption {
+ default = {};
+ description = ''
+ Extra config to pass to oauth2_proxy.
+ '';
+ };
+
+ keyFile = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ description = ''
+ oauth2_proxy allows passing sensitive configuration via environment variables.
+ Make a file that contains lines like
+ OAUTH2_PROXY_CLIENT_SECRET=asdfasdfasdf.apps.googleuserscontent.com
+ and specify the path here.
+ '';
+ example = "/run/keys/oauth2_proxy";
+ };
+
};
config = mkIf cfg.enable {
+ services.oauth2_proxy = mkIf (!isNull cfg.keyFile) {
+ clientID = mkDefault null;
+ clientSecret = mkDefault null;
+ cookie.secret = mkDefault null;
+ };
+
users.extraUsers.oauth2_proxy = {
description = "OAuth2 Proxy";
};
@@ -511,7 +556,8 @@ in
serviceConfig = {
User = "oauth2_proxy";
Restart = "always";
- ExecStart = "${cfg.package.bin}/bin/oauth2_proxy ${mkCommandLine cfg}";
+ ExecStart = "${cfg.package.bin}/bin/oauth2_proxy ${configString}";
+ EnvironmentFile = mkIf (cfg.keyFile != null) cfg.keyFile;
};
};
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 2c727de2102..806252f49b8 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -703,14 +703,10 @@ in
after = [ "network.target" ];
restartTriggers = [ torRcFile ];
- # Translated from the upstream contrib/dist/tor.service.in
- preStart = ''
- install -o tor -g tor -d ${torDirectory}/onion ${torRunDirectory}
- ${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config
- '';
-
serviceConfig =
{ Type = "simple";
+ # Translated from the upstream contrib/dist/tor.service.in
+ ExecStartPre = "${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config";
ExecStart = "${pkgs.tor}/bin/tor -f ${torRcFile} --RunAsDaemon 0";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
KillSignal = "SIGINT";
@@ -725,6 +721,8 @@ in
# DeviceAllow /dev/urandom r
# .. but we can't specify DeviceAllow multiple times. 'closed'
# is close enough.
+ RuntimeDirectory = "tor";
+ StateDirectory = [ "tor" "tor/onion" ];
PrivateTmp = "yes";
DevicePolicy = "closed";
InaccessibleDirectories = "/home";
diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix
index ec1e97f4125..bff22cd1359 100644
--- a/nixos/modules/services/torrent/deluge.nix
+++ b/nixos/modules/services/torrent/deluge.nix
@@ -11,10 +11,7 @@ in {
options = {
services = {
deluge = {
- enable = mkOption {
- default = false;
- description = "Start the Deluge daemon";
- };
+ enable = mkEnableOption "Deluge daemon";
openFilesLimit = mkOption {
default = openFilesLimit;
@@ -25,14 +22,7 @@ in {
};
};
- deluge.web = {
- enable = mkOption {
- default = false;
- description = ''
- Start Deluge Web daemon.
- '';
- };
- };
+ deluge.web.enable = mkEnableOption "Deluge Web daemon";
};
};
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 0998d5a7107..3564afd77f4 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -147,6 +147,7 @@ in
${getLib pkgs.libcap}/lib/libcap*.so* mr,
${getLib pkgs.attr}/lib/libattr*.so* mr,
${getLib pkgs.lz4}/lib/liblz4*.so* mr,
+ ${getLib pkgs.libkrb5}/lib/lib*.so* mr,
@{PROC}/sys/kernel/random/uuid r,
@{PROC}/sys/vm/overcommit_memory r,
diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix
index 81ee8154326..13c5951524d 100644
--- a/nixos/modules/services/web-apps/atlassian/jira.nix
+++ b/nixos/modules/services/web-apps/atlassian/jira.nix
@@ -155,7 +155,7 @@ in
requires = [ "postgresql.service" ];
after = [ "postgresql.service" ];
- path = [ cfg.jrePackage ];
+ path = [ cfg.jrePackage pkgs.bash ];
environment = {
JIRA_USER = cfg.user;
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 8f7a56189a0..610c6463a5e 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -466,10 +466,10 @@ let
'';
};
- services.nginx = {
+ # NOTE: No configuration is done if not using virtual host
+ services.nginx = mkIf (cfg.virtualHost != null) {
enable = true;
- # NOTE: No configuration is done if not using virtual host
- virtualHosts = mkIf (cfg.virtualHost != null) {
+ virtualHosts = {
"${cfg.virtualHost}" = {
root = "${cfg.root}";
diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix
new file mode 100644
index 00000000000..e057e302562
--- /dev/null
+++ b/nixos/modules/services/web-apps/youtrack.nix
@@ -0,0 +1,177 @@
+{ config, lib, pkgs, options, ... }:
+
+with lib;
+
+let
+ cfg = config.services.youtrack;
+
+ extraAttr = concatStringsSep " " (mapAttrsToList (k: v: "-D${k}=${v}") (stdParams // cfg.extraParams));
+ mergeAttrList = lib.foldl' lib.mergeAttrs {};
+
+ stdParams = mergeAttrList [
+ (optionalAttrs (cfg.baseUrl != null) {
+ "jetbrains.youtrack.baseUrl" = cfg.baseUrl;
+ })
+ {
+ "java.aws.headless" = "true";
+ "jetbrains.youtrack.disableBrowser" = "true";
+ }
+ ];
+in
+{
+ options.services.youtrack = {
+
+ enable = mkEnableOption "YouTrack service";
+
+ address = mkOption {
+ description = ''
+ The interface youtrack will listen on.
+ '';
+ default = "127.0.0.1";
+ type = types.string;
+ };
+
+ baseUrl = mkOption {
+ description = ''
+ Base URL for youtrack. Will be auto-detected and stored in database.
+ '';
+ type = types.nullOr types.string;
+ default = null;
+ };
+
+ extraParams = mkOption {
+ default = {};
+ description = ''
+ Extra parameters to pass to youtrack. See
+ https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html
+ for more information.
+ '';
+ example = {
+ "jetbrains.youtrack.overrideRootPassword" = "tortuga";
+ };
+ type = types.attrsOf types.string;
+ };
+
+ package = mkOption {
+ description = ''
+ Package to use.
+ '';
+ type = types.package;
+ default = pkgs.youtrack;
+ defaultText = "pkgs.youtrack";
+ };
+
+ port = mkOption {
+ description = ''
+ The port youtrack will listen on.
+ '';
+ default = 8080;
+ type = types.int;
+ };
+
+ statePath = mkOption {
+ description = ''
+ Where to keep the youtrack database.
+ '';
+ type = types.string;
+ default = "/var/lib/youtrack";
+ };
+
+ virtualHost = mkOption {
+ description = ''
+ Name of the nginx virtual host to use and setup.
+ If null, do not setup anything.
+ '';
+ default = null;
+ type = types.nullOr types.string;
+ };
+
+ jvmOpts = mkOption {
+ description = ''
+ Extra options to pass to the JVM.
+ See https://www.jetbrains.com/help/youtrack/standalone/Configure-JVM-Options.html
+ for more information.
+ '';
+ type = types.string;
+ example = "-XX:MetaspaceSize=250m";
+ default = "";
+ };
+
+ maxMemory = mkOption {
+ description = ''
+ Maximum Java heap size
+ '';
+ type = types.string;
+ default = "1g";
+ };
+
+ maxMetaspaceSize = mkOption {
+ description = ''
+ Maximum java Metaspace memory.
+ '';
+ type = types.string;
+ default = "350m";
+ };
+ };
+
+ config = mkIf cfg.enable {
+
+ systemd.services.youtrack = {
+ environment.HOME = cfg.statePath;
+ environment.YOUTRACK_JVM_OPTS = "-Xmx${cfg.maxMemory} -XX:MaxMetaspaceSize=${cfg.maxMetaspaceSize} ${cfg.jvmOpts} ${extraAttr}";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "simple";
+ User = "youtrack";
+ Group = "youtrack";
+ ExecStart = ''${cfg.package}/bin/youtrack ${cfg.address}:${toString cfg.port}'';
+ };
+ };
+
+ users.users.youtrack = {
+ description = "Youtrack service user";
+ isSystemUser = true;
+ home = cfg.statePath;
+ createHome = true;
+ group = "youtrack";
+ };
+
+ users.groups.youtrack = {};
+
+ services.nginx = mkIf (cfg.virtualHost != null) {
+ upstreams.youtrack.servers."${cfg.address}:${toString cfg.port}" = {};
+ virtualHosts.${cfg.virtualHost}.locations = {
+ "/" = {
+ proxyPass = "http://youtrack";
+ extraConfig = ''
+ client_max_body_size 10m;
+ proxy_http_version 1.1;
+ proxy_set_header X-Forwarded-Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ '';
+ };
+
+ "/api/eventSourceBus" = {
+ proxyPass = "http://youtrack";
+ extraConfig = ''
+ proxy_cache off;
+ proxy_buffering off;
+ proxy_read_timeout 86400s;
+ proxy_send_timeout 86400s;
+ proxy_set_header Connection "";
+ chunked_transfer_encoding off;
+ client_max_body_size 10m;
+ proxy_http_version 1.1;
+ proxy_set_header X-Forwarded-Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ '';
+ };
+
+ };
+ };
+
+ };
+}
diff --git a/nixos/modules/services/web-servers/caddy.nix b/nixos/modules/services/web-servers/caddy.nix
index d8efa24bc6d..2124a42f01a 100644
--- a/nixos/modules/services/web-servers/caddy.nix
+++ b/nixos/modules/services/web-servers/caddy.nix
@@ -25,8 +25,8 @@ in {
};
ca = mkOption {
- default = "https://acme-v01.api.letsencrypt.org/directory";
- example = "https://acme-staging.api.letsencrypt.org/directory";
+ default = "https://acme-v02.api.letsencrypt.org/directory";
+ example = "https://acme-staging-v02.api.letsencrypt.org/directory";
type = types.string;
description = "Certificate authority ACME server. The default (Let's Encrypt production server) should be fine for most people.";
};
diff --git a/nixos/modules/services/web-servers/lighttpd/gitweb.nix b/nixos/modules/services/web-servers/lighttpd/gitweb.nix
index 37128d90401..c494d6966a7 100644
--- a/nixos/modules/services/web-servers/lighttpd/gitweb.nix
+++ b/nixos/modules/services/web-servers/lighttpd/gitweb.nix
@@ -4,6 +4,9 @@ with lib;
let
cfg = config.services.gitweb;
+ package = pkgs.gitweb.override (optionalAttrs cfg.gitwebTheme {
+ gitwebTheme = true;
+ });
in
{
@@ -34,8 +37,8 @@ in
"^/gitweb$" => "/gitweb/"
)
alias.url = (
- "/gitweb/static/" => "${pkgs.git}/share/gitweb/static/",
- "/gitweb/" => "${pkgs.git}/share/gitweb/gitweb.cgi"
+ "/gitweb/static/" => "${package}/static/",
+ "/gitweb/" => "${package}/gitweb.cgi"
)
setenv.add-environment = (
"GITWEB_CONFIG" => "${cfg.gitwebConfigFile}",
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 938a8a1fe33..815c3147e64 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -218,7 +218,10 @@ let
ssl_certificate_key ${vhost.sslCertificateKey};
''}
- ${optionalString (vhost.basicAuth != {}) (mkBasicAuth vhostName vhost.basicAuth)}
+ ${optionalString (vhost.basicAuthFile != null || vhost.basicAuth != {}) ''
+ auth_basic secured;
+ auth_basic_user_file ${if vhost.basicAuthFile != null then vhost.basicAuthFile else mkHtpasswd vhostName vhost.basicAuth};
+ ''}
${mkLocations vhost.locations}
@@ -248,16 +251,11 @@ let
${optionalString (config.proxyPass != null && cfg.recommendedProxySettings) "include ${recommendedProxyConfig};"}
}
'') locations);
- mkBasicAuth = vhostName: authDef: let
- htpasswdFile = pkgs.writeText "${vhostName}.htpasswd" (
- concatStringsSep "\n" (mapAttrsToList (user: password: ''
- ${user}:{PLAIN}${password}
- '') authDef)
- );
- in ''
- auth_basic secured;
- auth_basic_user_file ${htpasswdFile};
- '';
+ mkHtpasswd = vhostName: authDef: pkgs.writeText "${vhostName}.htpasswd" (
+ concatStringsSep "\n" (mapAttrsToList (user: password: ''
+ ${user}:{PLAIN}${password}
+ '') authDef)
+ );
in
{
diff --git a/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixos/modules/services/web-servers/nginx/gitweb.nix
index 3dc3ebc7e4c..272fd148018 100644
--- a/nixos/modules/services/web-servers/nginx/gitweb.nix
+++ b/nixos/modules/services/web-servers/nginx/gitweb.nix
@@ -4,6 +4,9 @@ with lib;
let
cfg = config.services.gitweb;
+ package = pkgs.gitweb.override (optionalAttrs cfg.gitwebTheme {
+ gitwebTheme = true;
+ });
in
{
@@ -24,7 +27,7 @@ in
systemd.services.gitweb = {
description = "GitWeb service";
- script = "${pkgs.git}/share/gitweb/gitweb.cgi --fastcgi --nproc=1";
+ script = "${package}/gitweb.cgi --fastcgi --nproc=1";
environment = {
FCGI_SOCKET_PATH = "/run/gitweb/gitweb.sock";
};
@@ -38,11 +41,10 @@ in
services.nginx = {
virtualHosts.default = {
- locations."/gitweb/" = {
- root = "${pkgs.git}/share";
- tryFiles = "$uri @gitweb";
+ locations."/gitweb/static/" = {
+ alias = "${package}/static/";
};
- locations."@gitweb" = {
+ locations."/gitweb/" = {
extraConfig = ''
include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_param GITWEB_CONFIG ${cfg.gitwebConfigFile};
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index bf18108a1a3..f014d817e80 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -193,6 +193,14 @@ with lib;
'';
};
+ basicAuthFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Basic Auth password file for a vhost.
+ '';
+ };
+
locations = mkOption {
type = types.attrsOf (types.submodule (import ./location-options.nix {
inherit lib;
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index e7918cf9d31..1404231f837 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -240,7 +240,10 @@ in
type = types.listOf types.str;
# !!! We'd like "nv" here, but it segfaults the X server.
default = [ "ati" "cirrus" "intel" "vesa" "vmware" "modesetting" ];
- example = [ "vesa" ];
+ example = [
+ "ati_unfree" "amdgpu" "amdgpu-pro"
+ "nv" "nvidia" "nvidiaLegacy340" "nvidiaLegacy304"
+ ];
description = ''
The names of the video drivers the configuration
supports. They will be tried in order until one that
@@ -626,9 +629,7 @@ in
environment =
{
- XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
- LD_LIBRARY_PATH = concatStringsSep ":" (
- [ "${xorg.libX11.out}/lib" "${xorg.libXext.out}/lib" "/run/opengl-driver/lib" ]
+ LD_LIBRARY_PATH = concatStringsSep ":" ([ "/run/opengl-driver/lib" ]
++ concatLists (catAttrs "libPath" cfg.drivers));
} // cfg.displayManager.job.environment;
diff --git a/nixos/modules/system/boot/grow-partition.nix b/nixos/modules/system/boot/grow-partition.nix
index c4c6d82dc5c..1e6f9e442b6 100644
--- a/nixos/modules/system/boot/grow-partition.nix
+++ b/nixos/modules/system/boot/grow-partition.nix
@@ -32,8 +32,15 @@ with lib;
rootDevice="${config.fileSystems."/".device}"
if [ -e "$rootDevice" ]; then
rootDevice="$(readlink -f "$rootDevice")"
- parentDevice="$(lsblk -npo PKNAME "$rootDevice")"
- TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}"
+ parentDevice="$rootDevice"
+ while [ "''${parentDevice%[0-9]}" != "''${parentDevice}" ]; do
+ parentDevice="''${parentDevice%[0-9]}";
+ done
+ partNum="''${rootDevice#''${parentDevice}}"
+ if [ "''${parentDevice%[0-9]p}" != "''${parentDevice}" ] && [ -b "''${parentDevice%p}" ]; then
+ parentDevice="''${parentDevice%p}"
+ fi
+ TMPDIR=/run sh $(type -P growpart) "$parentDevice" "$partNum"
udevadm settle
fi
'';
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index 3bd7d355826..8ea05ed1468 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -77,8 +77,8 @@ in
type = types.int;
default = 4;
description = ''
- The kernel console log level. Log messages with a priority
- numerically less than this will not appear on the console.
+ The kernel console loglevel. All Kernel Messages with a log level smaller
+ than this setting will be printed to the console.
'';
};
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder.sh b/nixos/modules/system/boot/loader/raspberrypi/builder.sh
index f627d093eaf..8adc8a6a7e1 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/builder.sh
+++ b/nixos/modules/system/boot/loader/raspberrypi/builder.sh
@@ -109,11 +109,15 @@ copyForced $fwdir/bootcode.bin /boot/bootcode.bin
copyForced $fwdir/fixup.dat /boot/fixup.dat
copyForced $fwdir/fixup_cd.dat /boot/fixup_cd.dat
copyForced $fwdir/fixup_db.dat /boot/fixup_db.dat
+copyForced $fwdir/fixup_x.dat /boot/fixup_x.dat
copyForced $fwdir/start.elf /boot/start.elf
copyForced $fwdir/start_cd.elf /boot/start_cd.elf
copyForced $fwdir/start_db.elf /boot/start_db.elf
copyForced $fwdir/start_x.elf /boot/start_x.elf
+# Add the config.txt
+copyForced @configTxt@ /boot/config.txt
+
# Remove obsolete files from /boot and /boot/old.
for fn in /boot/old/*linux* /boot/old/*initrd-initrd* /boot/bcm*.dtb; do
if ! test "${filesCopied[$fn]}" = 1; then
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
new file mode 100644
index 00000000000..47f25a9c2b1
--- /dev/null
+++ b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
@@ -0,0 +1,34 @@
+{ config, pkgs, configTxt }:
+
+let
+ cfg = config.boot.loader.raspberryPi;
+ isAarch64 = pkgs.stdenv.isAarch64;
+
+ uboot =
+ if cfg.version == 1 then
+ pkgs.ubootRaspberryPi
+ else if cfg.version == 2 then
+ pkgs.ubootRaspberryPi2
+ else
+ if isAarch64 then
+ pkgs.ubootRaspberryPi3_64bit
+ else
+ pkgs.ubootRaspberryPi3_32bit;
+
+ extlinuxConfBuilder =
+ import ../generic-extlinux-compatible/extlinux-conf-builder.nix {
+ inherit pkgs;
+ };
+in
+pkgs.substituteAll {
+ src = ./builder_uboot.sh;
+ isExecutable = true;
+ inherit (pkgs) bash;
+ path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
+ firmware = pkgs.raspberrypifw;
+ inherit uboot;
+ inherit configTxt;
+ inherit extlinuxConfBuilder;
+ version = cfg.version;
+}
+
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh
new file mode 100644
index 00000000000..36bf1506627
--- /dev/null
+++ b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh
@@ -0,0 +1,29 @@
+#! @bash@/bin/sh -e
+
+copyForced() {
+ local src="$1"
+ local dst="$2"
+ cp $src $dst.tmp
+ mv $dst.tmp $dst
+}
+
+# Call the extlinux builder
+"@extlinuxConfBuilder@" "$@"
+
+# Add the firmware files
+fwdir=@firmware@/share/raspberrypi/boot/
+copyForced $fwdir/bootcode.bin /boot/bootcode.bin
+copyForced $fwdir/fixup.dat /boot/fixup.dat
+copyForced $fwdir/fixup_cd.dat /boot/fixup_cd.dat
+copyForced $fwdir/fixup_db.dat /boot/fixup_db.dat
+copyForced $fwdir/fixup_x.dat /boot/fixup_x.dat
+copyForced $fwdir/start.elf /boot/start.elf
+copyForced $fwdir/start_cd.elf /boot/start_cd.elf
+copyForced $fwdir/start_db.elf /boot/start_db.elf
+copyForced $fwdir/start_x.elf /boot/start_x.elf
+
+# Add the uboot file
+copyForced @uboot@/u-boot.bin /boot/u-boot-rpi.bin
+
+# Add the config.txt
+copyForced @configTxt@ /boot/config.txt
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
index f246d04284c..f974d07da9e 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
@@ -5,42 +5,108 @@ with lib;
let
cfg = config.boot.loader.raspberryPi;
- builder = pkgs.substituteAll {
+ builderGeneric = pkgs.substituteAll {
src = ./builder.sh;
isExecutable = true;
inherit (pkgs) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
firmware = pkgs.raspberrypifw;
version = cfg.version;
+ inherit configTxt;
};
platform = pkgs.stdenv.platform;
+ builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; };
+
+ builder =
+ if cfg.uboot.enable then
+ "${builderUboot} -g ${toString cfg.uboot.configurationLimit} -t ${timeoutStr} -c"
+ else
+ builderGeneric;
+
+ blCfg = config.boot.loader;
+ timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
+
+ isAarch64 = pkgs.stdenv.isAarch64;
+ optional = pkgs.stdenv.lib.optionalString;
+
+ configTxt =
+ pkgs.writeText "config.txt" (''
+ # U-Boot used to need this to work, regardless of whether UART is actually used or not.
+ # TODO: check when/if this can be removed.
+ enable_uart=1
+
+ # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
+ # when attempting to show low-voltage or overtemperature warnings.
+ avoid_warnings=1
+ '' + optional isAarch64 ''
+ # Boot in 64-bit mode.
+ arm_control=0x200
+ '' + optional cfg.uboot.enable ''
+ kernel=u-boot-rpi.bin
+ '' + optional (cfg.firmwareConfig != null) cfg.firmwareConfig);
+
in
{
options = {
- boot.loader.raspberryPi.enable = mkOption {
- default = false;
- type = types.bool;
- description = ''
- Whether to create files with the system generations in
- /boot.
- /boot/old will hold files from old generations.
- '';
- };
+ boot.loader.raspberryPi = {
+ enable = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Whether to create files with the system generations in
+ /boot.
+ /boot/old will hold files from old generations.
+ '';
+ };
- boot.loader.raspberryPi.version = mkOption {
- default = 2;
- type = types.enum [ 1 2 3 ];
- description = ''
- '';
- };
+ version = mkOption {
+ default = 2;
+ type = types.enum [ 1 2 3 ];
+ description = ''
+ '';
+ };
+ uboot = {
+ enable = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Enable using uboot as bootmanager for the raspberry pi.
+ '';
+ };
+
+ configurationLimit = mkOption {
+ default = 20;
+ example = 10;
+ type = types.int;
+ description = ''
+ Maximum number of configurations in the boot menu.
+ '';
+ };
+
+ };
+
+ firmwareConfig = mkOption {
+ default = null;
+ type = types.nullOr types.string;
+ description = ''
+ Extra options that will be appended to /boot/config.txt file.
+ For possible values, see: https://www.raspberrypi.org/documentation/configuration/config-txt/
+ '';
+ };
+ };
};
- config = mkIf config.boot.loader.raspberryPi.enable {
+ config = mkIf cfg.enable {
+ assertions = singleton {
+ assertion = !pkgs.stdenv.isAarch64 || cfg.version == 3;
+ message = "Only Raspberry Pi 3 supports aarch64.";
+ };
+
system.build.installBootLoader = builder;
system.boot.loader.id = "raspberrypi";
system.boot.loader.kernelFile = platform.kernelTarget;
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index eea10613ea5..e95ca27914e 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -146,12 +146,13 @@ let
# .network files have a [Link] section with different options than in .netlink files
checkNetworkLink = checkUnitConfig "Link" [
(assertOnlyFields [
- "MACAddress" "MTUBytes" "ARP" "Unmanaged"
+ "MACAddress" "MTUBytes" "ARP" "Unmanaged" "RequiredForOnline"
])
(assertMacAddress "MACAddress")
(assertByteFormat "MTUBytes")
(assertValueOneOf "ARP" boolValues)
(assertValueOneOf "Unmanaged" boolValues)
+ (assertValueOneOf "RquiredForOnline" boolValues)
];
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index 8fa9f8b795e..64b3b8b584e 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -110,7 +110,7 @@ in {
config =
let
- units = mapAttrs' (n: v: nameValuePair "${n}.nspawn" (instanceToUnit n v)) cfg;
+ units = mapAttrs' (n: v: let nspawnFile = "${n}.nspawn"; in nameValuePair nspawnFile (instanceToUnit nspawnFile v)) cfg;
in mkIf (cfg != {}) {
environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index 43a9c28bb69..5255f1a1b97 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -217,7 +217,7 @@ in rec {
environment = mkOption {
default = {};
- type = types.attrs; # FIXME
+ type = with types; attrsOf (nullOr (either str package));
example = { PATH = "/foo/bar/bin"; LANG = "nl_NL.UTF-8"; };
description = "Environment variables passed to the service's processes.";
};
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index b8a2d42e0fb..d2fe33488a7 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -137,7 +137,6 @@ let
# Slices / containers.
"slices.target"
- "system.slice"
"user.slice"
"machine.slice"
"machines.target"
@@ -516,7 +515,7 @@ in
};
systemd.globalEnvironment = mkOption {
- type = types.attrs;
+ type = with types; attrsOf (nullOr (either str package));
default = {};
example = { TZ = "CET"; };
description = ''
@@ -836,7 +835,8 @@ in
system.requiredKernelConfig = map config.lib.kernelConfig.isEnabled
[ "DEVTMPFS" "CGROUPS" "INOTIFY_USER" "SIGNALFD" "TIMERFD" "EPOLL" "NET"
- "SYSFS" "PROC_FS" "FHANDLE" "DMIID" "AUTOFS4_FS" "TMPFS_POSIX_ACL"
+ "SYSFS" "PROC_FS" "FHANDLE" "CRYPTO_USER_API_HASH" "CRYPTO_HMAC"
+ "CRYPTO_SHA256" "DMIID" "AUTOFS4_FS" "TMPFS_POSIX_ACL"
"TMPFS_XATTR" "SECCOMP"
];
diff --git a/nixos/modules/tasks/filesystems/exfat.nix b/nixos/modules/tasks/filesystems/exfat.nix
index 963bc940b4f..1527f993fdd 100644
--- a/nixos/modules/tasks/filesystems/exfat.nix
+++ b/nixos/modules/tasks/filesystems/exfat.nix
@@ -5,7 +5,7 @@ with lib;
{
config = mkIf (any (fs: fs == "exfat") config.boot.supportedFilesystems) {
- system.fsPackages = [ pkgs.exfat-utils pkgs.fuse_exfat ];
+ system.fsPackages = [ pkgs.exfat ];
};
}
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 30c54ddd0e4..c3bf897d51f 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -305,6 +305,8 @@ in
}
];
+ virtualisation.lxd.zfsSupport = true;
+
boot = {
kernelModules = [ "spl" "zfs" ] ;
extraModulePackages = with packages; [ spl zfs ];
@@ -452,7 +454,7 @@ in
}) snapshotNames);
systemd.timers = let
- timer = name: if name == "frequent" then "*:15,30,45" else name;
+ timer = name: if name == "frequent" then "*:0,15,30,45" else name;
in builtins.listToAttrs (map (snapName:
{
name = "zfs-snapshot-${snapName}";
diff --git a/nixos/modules/virtualisation/azure-agent.nix b/nixos/modules/virtualisation/azure-agent.nix
index 201d5f71ba3..b7ab54aab7e 100644
--- a/nixos/modules/virtualisation/azure-agent.nix
+++ b/nixos/modules/virtualisation/azure-agent.nix
@@ -66,6 +66,10 @@ in
default = false;
description = "Whether to enable verbose logging.";
};
+ mountResourceDisk = mkOption {
+ default = true;
+ description = "Whether the agent should format (ext4) and mount the resource disk to /mnt/resource.";
+ };
};
###### implementation
@@ -112,7 +116,7 @@ in
Provisioning.ExecuteCustomData=n
# Format if unformatted. If 'n', resource disk will not be mounted.
- ResourceDisk.Format=y
+ ResourceDisk.Format=${if cfg.mountResourceDisk then "y" else "n"}
# File system on the resource disk
# Typically ext3 or ext4. FreeBSD images should use 'ufs2' here.
@@ -181,7 +185,7 @@ in
after = [ "network-online.target" "sshd.service" ];
wants = [ "network-online.target" ];
- path = [ pkgs.e2fsprogs ];
+ path = [ pkgs.e2fsprogs pkgs.bash ];
description = "Windows Azure Agent Service";
unitConfig.ConditionPathExists = "/etc/waagent.conf";
serviceConfig = {
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index e54a5fe7d40..248c2fc1fb2 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -112,7 +112,7 @@ let
# If the host is 64-bit and the container is 32-bit, add a
# --personality flag.
- ${optionalString (config.nixpkgs.system == "x86_64-linux") ''
+ ${optionalString (config.nixpkgs.localSystem.system == "x86_64-linux") ''
if [ "$(< ''${SYSTEM_PATH:-/nix/var/nix/profiles/per-container/$INSTANCE/system}/system)" = i686-linux ]; then
extraFlags+=" --personality=x86"
fi
@@ -255,7 +255,7 @@ let
};
- system = config.nixpkgs.system;
+ system = config.nixpkgs.localSystem.system;
bindMountOpts = { name, config, ... }: {
@@ -575,6 +575,16 @@ in
'';
};
+ extraFlags = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ example = [ "--drop-capability=CAP_SYS_CHROOT" ];
+ description = ''
+ Extra flags passed to the systemd-nspawn command.
+ See systemd-nspawn(1) for details.
+ '';
+ };
+
} // networkOptions;
config = mkMerge
@@ -714,7 +724,9 @@ in
${optionalString cfg.autoStart ''
AUTO_START=1
''}
- EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts}"
+ EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts +
+ optionalString (cfg.extraFlags != [])
+ (" " + concatStringsSep " " cfg.extraFlags)}"
'';
}) config.containers;
diff --git a/nixos/modules/virtualisation/lxc.nix b/nixos/modules/virtualisation/lxc.nix
index 2310fe98432..9b5adaf0824 100644
--- a/nixos/modules/virtualisation/lxc.nix
+++ b/nixos/modules/virtualisation/lxc.nix
@@ -74,6 +74,9 @@ in
systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
security.apparmor.packages = [ pkgs.lxc ];
- security.apparmor.profiles = [ "${pkgs.lxc}/etc/apparmor.d/lxc-containers" ];
+ security.apparmor.profiles = [
+ "${pkgs.lxc}/etc/apparmor.d/lxc-containers"
+ "${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start"
+ ];
};
}
diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix
index 4988886baf6..3e76cdacfc4 100644
--- a/nixos/modules/virtualisation/lxd.nix
+++ b/nixos/modules/virtualisation/lxd.nix
@@ -15,28 +15,34 @@ in
options = {
- virtualisation.lxd.enable =
- mkOption {
+ virtualisation.lxd = {
+ enable = mkOption {
type = types.bool;
default = false;
- description =
- ''
- This option enables lxd, a daemon that manages
- containers. Users in the "lxd" group can interact with
- the daemon (e.g. to start or stop containers) using the
- lxc command line tool, among others.
- '';
+ description = ''
+ This option enables lxd, a daemon that manages
+ containers. Users in the "lxd" group can interact with
+ the daemon (e.g. to start or stop containers) using the
+ lxc command line tool, among others.
+ '';
};
-
+ zfsSupport = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ enables lxd to use zfs as a storage for containers.
+ This option is enabled by default if a zfs pool is configured
+ with nixos.
+ '';
+ };
+ };
};
-
###### implementation
config = mkIf cfg.enable {
- environment.systemPackages =
- [ pkgs.lxd ];
+ environment.systemPackages = [ pkgs.lxd ];
security.apparmor = {
enable = true;
@@ -47,31 +53,31 @@ in
packages = [ pkgs.lxc ];
};
- systemd.services.lxd =
- { description = "LXD Container Management Daemon";
+ systemd.services.lxd = {
+ description = "LXD Container Management Daemon";
- wantedBy = [ "multi-user.target" ];
- after = [ "systemd-udev-settle.service" ];
+ wantedBy = [ "multi-user.target" ];
+ after = [ "systemd-udev-settle.service" ];
- # TODO(wkennington): Add lvm2 and thin-provisioning-tools
- path = with pkgs; [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute iptables ];
+ path = lib.optional cfg.zfsSupport pkgs.zfs;
- preStart = ''
- mkdir -m 0755 -p /var/lib/lxc/rootfs
- '';
+ preStart = ''
+ mkdir -m 0755 -p /var/lib/lxc/rootfs
+ '';
- serviceConfig.ExecStart = "@${pkgs.lxd.bin}/bin/lxd lxd --syslog --group lxd";
- serviceConfig.Type = "simple";
- serviceConfig.KillMode = "process"; # when stopping, leave the containers alone
+ serviceConfig = {
+ ExecStart = "@${pkgs.lxd.bin}/bin/lxd lxd --group lxd";
+ Type = "simple";
+ KillMode = "process"; # when stopping, leave the containers alone
};
+ };
+
users.extraGroups.lxd.gid = config.ids.gids.lxd;
users.extraUsers.root = {
subUidRanges = [ { startUid = 1000000; count = 65536; } ];
subGidRanges = [ { startGid = 1000000; count = 65536; } ];
};
-
};
-
}
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index ee327ed805b..3d4bd315f81 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -77,6 +77,7 @@ let
-name ${vmName} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
+ -device virtio-rng-pci \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
@@ -98,7 +99,7 @@ let
${qemuGraphics} \
${toString config.virtualisation.qemu.options} \
$QEMU_OPTS \
- $@
+ "$@"
'';
@@ -437,7 +438,7 @@ in
# FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [
(mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ "-vga std" "-usb" "-device usb-tablet,bus=usb-bus.0" ])
- (mkIf (pkgs.stdenv.isArm || pkgs.stdenv.isAarch64) [ "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" ])
+ (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" ])
];
# Mount the host filesystem via 9P, and bind-mount the Nix store
diff --git a/nixos/release.nix b/nixos/release.nix
index 4fd77e6471c..2f779280e6b 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -166,8 +166,12 @@ in rec {
inherit system;
});
- sd_image = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
- module = ./modules/installer/cd-dvd/sd-image-aarch64.nix;
+ sd_image = forMatchingSystems [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ] (system: makeSdImage {
+ module = {
+ armv6l-linux = ./modules/installer/cd-dvd/sd-image-raspberrypi.nix;
+ armv7l-linux = ./modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix;
+ aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64.nix;
+ }.${system};
inherit system;
});
@@ -264,8 +268,10 @@ in rec {
tests.containers-hosts = callTest tests/containers-hosts.nix {};
tests.containers-macvlans = callTest tests/containers-macvlans.nix {};
tests.couchdb = callTest tests/couchdb.nix {};
+ tests.deluge = callTest tests/deluge.nix {};
tests.docker = callTestOnMatchingSystems ["x86_64-linux"] tests/docker.nix {};
tests.docker-tools = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools.nix {};
+ tests.docker-tools-overlay = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools-overlay.nix {};
tests.docker-edge = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-edge.nix {};
tests.dovecot = callTest tests/dovecot.nix {};
tests.dnscrypt-proxy = callTestOnMatchingSystems ["x86_64-linux"] tests/dnscrypt-proxy.nix {};
@@ -365,7 +371,7 @@ in rec {
tests.prometheus = callTest tests/prometheus.nix {};
tests.prosody = callTest tests/prosody.nix {};
tests.proxy = callTest tests/proxy.nix {};
- # tests.quagga = callTest tests/quagga.nix {};
+ tests.quagga = callTest tests/quagga.nix {};
tests.quake3 = callTest tests/quake3.nix {};
tests.rabbitmq = callTest tests/rabbitmq.nix {};
tests.radicale = callTest tests/radicale.nix {};
@@ -379,6 +385,7 @@ in rec {
tests.smokeping = callTest tests/smokeping.nix {};
tests.snapper = callTest tests/snapper.nix {};
tests.statsd = callTest tests/statsd.nix {};
+ tests.strongswan-swanctl = callTest tests/strongswan-swanctl.nix {};
tests.sudo = callTest tests/sudo.nix {};
tests.systemd = callTest tests/systemd.nix {};
tests.switchTest = callTest tests/switch-test.nix {};
diff --git a/nixos/tests/containers-imperative.nix b/nixos/tests/containers-imperative.nix
index 20902913e9a..015b79b1cee 100644
--- a/nixos/tests/containers-imperative.nix
+++ b/nixos/tests/containers-imperative.nix
@@ -15,7 +15,7 @@ import ./make-test.nix ({ pkgs, ...} : {
# container available within the VM, because we don't have network access.
virtualisation.pathsInNixDB = let
emptyContainer = import ../lib/eval-config.nix {
- inherit (config.nixpkgs) system;
+ inherit (config.nixpkgs.localSystem) system;
modules = lib.singleton {
containers.foo.config = {};
};
diff --git a/nixos/tests/deluge.nix b/nixos/tests/deluge.nix
new file mode 100644
index 00000000000..6119fd58447
--- /dev/null
+++ b/nixos/tests/deluge.nix
@@ -0,0 +1,29 @@
+import ./make-test.nix ({ pkgs, ...} : {
+ name = "deluge";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ flokli ];
+ };
+
+ nodes = {
+ server =
+ { pkgs, config, ... }:
+
+ { services.deluge = {
+ enable = true;
+ web.enable = true;
+ };
+ networking.firewall.allowedTCPPorts = [ 8112 ];
+ };
+
+ client = { };
+ };
+
+ testScript = ''
+ startAll;
+
+ $server->waitForUnit("deluged");
+ $server->waitForUnit("delugeweb");
+ $client->waitForUnit("network.target");
+ $client->waitUntilSucceeds("curl --fail http://server:8112");
+ '';
+})
diff --git a/nixos/tests/docker-tools-overlay.nix b/nixos/tests/docker-tools-overlay.nix
new file mode 100644
index 00000000000..9d7fa3e7a8c
--- /dev/null
+++ b/nixos/tests/docker-tools-overlay.nix
@@ -0,0 +1,32 @@
+# this test creates a simple GNU image with docker tools and sees if it executes
+
+import ./make-test.nix ({ pkgs, ... }:
+{
+ name = "docker-tools-overlay";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ lnl7 ];
+ };
+
+ nodes = {
+ docker =
+ { config, pkgs, ... }:
+ {
+ virtualisation.docker.enable = true;
+ virtualisation.docker.storageDriver = "overlay"; # defaults to overlay2
+ };
+ };
+
+ testScript =
+ ''
+ $docker->waitForUnit("sockets.target");
+
+ $docker->succeed("docker load --input='${pkgs.dockerTools.examples.bash}'");
+ $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.bash.imageName} bash --version");
+
+ # Check if the nix store has correct user permissions depending on what
+ # storage driver is used, incorrectly built images can show up as readonly.
+ # drw------- 3 0 0 3 Apr 14 11:36 /nix
+ # drw------- 99 0 0 100 Apr 14 11:36 /nix/store
+ $docker->succeed("docker run --rm -u 1000:1000 ${pkgs.dockerTools.examples.bash.imageName} bash --version");
+ '';
+})
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 9135bca0f4f..4466081d01e 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -3,7 +3,7 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "docker-tools";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ ];
+ maintainers = [ lnl7 ];
};
nodes = {
@@ -21,12 +21,12 @@ import ./make-test.nix ({ pkgs, ... }: {
$docker->waitForUnit("sockets.target");
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.bash}'");
- $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.bash.imageName} /bin/bash --version");
+ $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.bash.imageName} bash --version");
$docker->succeed("docker rmi ${pkgs.dockerTools.examples.bash.imageName}");
# Check if the nix store is correctly initialized by listing dependencies of the installed Nix binary
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.nix}'");
- $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.nix.imageName} /bin/nix-store -qR ${pkgs.nix}");
+ $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.nix.imageName} nix-store -qR ${pkgs.nix}");
$docker->succeed("docker rmi ${pkgs.dockerTools.examples.nix.imageName}");
# To test the pullImage tool
diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix
index 3814855ed8e..156079d1d58 100644
--- a/nixos/tests/dovecot.nix
+++ b/nixos/tests/dovecot.nix
@@ -18,6 +18,18 @@ import ./make-test.nix {
MAIL
'';
+ sendTestMailViaDeliveryAgent = pkgs.writeScriptBin "send-lda" ''
+ #!${pkgs.stdenv.shell}
+
+ exec ${pkgs.dovecot}/libexec/dovecot/deliver -d bob <waitForUnit('postfix.service');
$machine->waitForUnit('dovecot2.service');
$machine->succeed('send-testmail');
+ $machine->succeed('send-lda');
$machine->waitUntilFails('[ "$(postqueue -p)" != "Mail queue is empty" ]');
$machine->succeed('test-imap');
$machine->succeed('test-pop');
diff --git a/nixos/tests/gnome3-gdm.nix b/nixos/tests/gnome3-gdm.nix
index 4b459e93e1b..71ae1709d52 100644
--- a/nixos/tests/gnome3-gdm.nix
+++ b/nixos/tests/gnome3-gdm.nix
@@ -26,15 +26,22 @@ import ./make-test.nix ({ pkgs, ...} : {
testScript =
''
+ # wait for gdm to start and bring up X
+ $machine->waitForUnit("display-manager.service");
$machine->waitForX;
- $machine->sleep(15);
+
+ # wait for alice to be logged in
+ $machine->waitForUnit("default.target","alice");
# Check that logging in has given the user ownership of devices.
$machine->succeed("getfacl /dev/snd/timer | grep -q alice");
- $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
- $machine->succeed("xauth merge ~alice/.Xauthority");
+ # open a terminal and check it's there
+ $machine->succeed("su - alice -c 'DISPLAY=:0.0 XAUTHORITY=/run/user/\$UID/gdm/Xauthority gnome-terminal'");
+ $machine->succeed("xauth merge /run/user/1000/gdm/Xauthority");
$machine->waitForWindow(qr/Terminal/);
+
+ # wait to get a nice screenshot
$machine->sleep(20);
$machine->screenshot("screen");
'';
diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix
index 2e45dc78471..4ebccb7ab86 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -51,9 +51,9 @@ in {
startAll;
$hass->waitForUnit("home-assistant.service");
- # Since config is specified using a Nix attribute set,
- # configuration.yaml is a link to the Nix store
- $hass->succeed("test -L ${configDir}/configuration.yaml");
+ # The config is specified using a Nix attribute set,
+ # but then converted from JSON to YAML
+ $hass->succeed("test -f ${configDir}/configuration.yaml");
# Check that Home Assistant's web interface and API can be reached
$hass->waitForOpenPort(8123);
diff --git a/nixos/tests/kernel-copperhead.nix b/nixos/tests/kernel-copperhead.nix
index 07427d7f2a8..0af978f1851 100644
--- a/nixos/tests/kernel-copperhead.nix
+++ b/nixos/tests/kernel-copperhead.nix
@@ -6,14 +6,14 @@ import ./make-test.nix ({ pkgs, ...} : {
machine = { config, lib, pkgs, ... }:
{
- boot.kernelPackages = pkgs.linuxPackages_hardened_copperhead;
+ boot.kernelPackages = pkgs.linuxPackages_copperhead_hardened;
};
testScript =
''
$machine->succeed("uname -a");
$machine->succeed("uname -s | grep 'Linux'");
- $machine->succeed("uname -a | grep '${pkgs.linuxPackages_hardened_copperhead.kernel.modDirVersion}'");
+ $machine->succeed("uname -a | grep '${pkgs.linuxPackages_copperhead_hardened.kernel.modDirVersion}'");
$machine->succeed("uname -a | grep 'hardened'");
'';
})
diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix
index caa5f7107c2..be880388314 100644
--- a/nixos/tests/keymap.nix
+++ b/nixos/tests/keymap.nix
@@ -3,46 +3,36 @@
with import ../lib/testing.nix { inherit system; };
let
+ readyFile = "/tmp/readerReady";
+ resultFile = "/tmp/readerResult";
+
testReader = pkgs.writeScript "test-input-reader" ''
#!${pkgs.stdenv.shell}
- readInput() {
- touch /tmp/reader.ready
- echo "Waiting for '$1' to be typed"
- read -r -n1 c
- if [ "$c" = "$2" ]; then
- echo "SUCCESS: Got back '$c' as expected."
- echo 0 >&2
- else
- echo "FAIL: Expected '$2' but got '$c' instead."
- echo 1 >&2
- fi
- }
+ rm -f ${resultFile} ${resultFile}.tmp
+ logger "testReader: START: Waiting for $1 characters, expecting '$2'."
+ touch ${readyFile}
+ read -r -N $1 chars
+ rm -f ${readyFile}
- main() {
- error=0
- while [ $# -gt 0 ]; do
- ret="$((readInput "$2" "$3" | systemd-cat -t "$1") 2>&1)"
- if [ $ret -ne 0 ]; then error=1; fi
- shift 3
- done
- return $error
- }
-
- main "$@"; echo -n $? > /tmp/reader.exit
+ if [ "$chars" == "$2" ]; then
+ logger -s "testReader: PASS: Got '$2' as expected." 2>${resultFile}.tmp
+ else
+ logger -s "testReader: FAIL: Expected '$2' but got '$chars'." 2>${resultFile}.tmp
+ fi
+ # rename after the file is written to prevent a race condition
+ mv ${resultFile}.tmp ${resultFile}
'';
- mkReaderInput = testname: { qwerty, expect }: with pkgs.lib; let
- lq = length qwerty;
- le = length expect;
- msg = "`qwerty' (${lq}) and `expect' (${le}) lists"
- + " need to be of the same length!";
- result = flatten (zipListsWith (a: b: [testname a b]) qwerty expect);
- in if lq != le then throw msg else result;
mkKeyboardTest = layout: { extraConfig ? {}, tests }: with pkgs.lib; let
- readerInput = flatten (mapAttrsToList mkReaderInput tests);
+ combinedTests = foldAttrs (acc: val: acc ++ val) [] (builtins.attrValues tests);
perlStr = val: "'${escape ["'" "\\"] val}'";
- perlReaderInput = concatMapStringsSep ", " perlStr readerInput;
+ lq = length combinedTests.qwerty;
+ le = length combinedTests.expect;
+ msg = "length mismatch between qwerty (${toString lq}) and expect (${toString le}) lists!";
+ send = concatMapStringsSep ", " perlStr combinedTests.qwerty;
+ expect = if (lq == le) then concatStrings combinedTests.expect else throw msg;
+
in makeTest {
name = "keymap-${layout}";
@@ -50,38 +40,40 @@ let
machine.i18n.consoleKeyMap = mkOverride 900 layout;
machine.services.xserver.layout = mkOverride 900 layout;
machine.imports = [ ./common/x11.nix extraConfig ];
- machine.services.xserver.displayManager.slim.enable = true;
testScript = ''
- sub waitCatAndDelete ($) {
- return $machine->succeed(
- "for i in \$(seq 600); do if [ -e '$_[0]' ]; then ".
- "cat '$_[0]' && rm -f '$_[0]' && exit 0; ".
- "fi; sleep 0.1; done; echo timed out after 60 seconds >&2; exit 1"
- );
- };
sub mkTest ($$) {
my ($desc, $cmd) = @_;
- my @testdata = (${perlReaderInput});
- my $shellTestdata = join ' ', map { "'".s/'/'\\'''/gr."'" } @testdata;
-
subtest $desc, sub {
- $machine->succeed("$cmd ${testReader} $shellTestdata &");
- while (my ($testname, $qwerty, $expect) = splice(@testdata, 0, 3)) {
- waitCatAndDelete "/tmp/reader.ready";
- $machine->sendKeys($qwerty);
- };
- my $exitcode = waitCatAndDelete "/tmp/reader.exit";
- die "tests for $desc failed" if $exitcode ne 0;
+ # prepare and start testReader
+ $machine->execute("rm -f ${readyFile} ${resultFile}");
+ $machine->succeed("$cmd ${testReader} ${toString le} ".q(${escapeShellArg expect} & ));
+
+ if ($desc eq "Xorg keymap") {
+ # make sure the xterm window is open and has focus
+ $machine->waitForWindow(qr/testterm/);
+ $machine->waitUntilSucceeds("${pkgs.xdotool}/bin/xdotool search --sync --onlyvisible --class testterm windowfocus --sync");
+ }
+
+ # wait for reader to be ready
+ $machine->waitForFile("${readyFile}");
+ $machine->sleep(1);
+
+ # send all keys
+ foreach ((${send})) { $machine->sendKeys($_); };
+
+ # wait for result and check
+ $machine->waitForFile("${resultFile}");
+ $machine->succeed("grep -q 'PASS:' ${resultFile}");
};
- }
+ };
$machine->waitForX;
mkTest "VT keymap", "openvt -sw --";
- mkTest "Xorg keymap", "DISPLAY=:0 xterm -fullscreen -e";
+ mkTest "Xorg keymap", "DISPLAY=:0 xterm -title testterm -class testterm -fullscreen -e";
'';
};
diff --git a/nixos/tests/strongswan-swanctl.nix b/nixos/tests/strongswan-swanctl.nix
new file mode 100644
index 00000000000..021743021b4
--- /dev/null
+++ b/nixos/tests/strongswan-swanctl.nix
@@ -0,0 +1,148 @@
+# This strongswan-swanctl test is based on:
+# https://www.strongswan.org/testing/testresults/swanctl/rw-psk-ipv4/index.html
+# https://github.com/strongswan/strongswan/tree/master/testing/tests/swanctl/rw-psk-ipv4
+#
+# The roadwarrior carol sets up a connection to gateway moon. The authentication
+# is based on pre-shared keys and IPv4 addresses. Upon the successful
+# establishment of the IPsec tunnels, the specified updown script automatically
+# inserts iptables-based firewall rules that let pass the tunneled traffic. In
+# order to test both tunnel and firewall, carol pings the client alice behind
+# the gateway moon.
+#
+# alice moon carol
+# eth1------vlan_0------eth1 eth2------vlan_1------eth1
+# 192.168.0.1 192.168.0.3 192.168.1.3 192.168.1.2
+#
+# See the NixOS manual for how to run this test:
+# https://nixos.org/nixos/manual/index.html#sec-running-nixos-tests-interactively
+
+import ./make-test.nix ({ pkgs, ...} :
+
+let
+ allowESP = "iptables --insert INPUT --protocol ESP --jump ACCEPT";
+
+ # Shared VPN settings:
+ vlan0 = "192.168.0.0/24";
+ carolIp = "192.168.1.2";
+ moonIp = "192.168.1.3";
+ version = 2;
+ secret = "0sFpZAZqEN6Ti9sqt4ZP5EWcqx";
+ esp_proposals = [ "aes128gcm128-x25519" ];
+ proposals = [ "aes128-sha256-x25519" ];
+in {
+ name = "strongswan-swanctl";
+ meta.maintainers = with pkgs.stdenv.lib.maintainers; [ basvandijk ];
+ nodes = {
+
+ alice = { nodes, ... } : {
+ virtualisation.vlans = [ 0 ];
+ networking = {
+ dhcpcd.enable = false;
+ defaultGateway = "192.168.0.3";
+ };
+ };
+
+ moon = {pkgs, config, nodes, ...} :
+ let strongswan = config.services.strongswan-swanctl.package;
+ in {
+ virtualisation.vlans = [ 0 1 ];
+ networking = {
+ dhcpcd.enable = false;
+ firewall = {
+ allowedUDPPorts = [ 4500 500 ];
+ extraCommands = allowESP;
+ };
+ nat = {
+ enable = true;
+ internalIPs = [ vlan0 ];
+ internalInterfaces = [ "eth1" ];
+ externalIP = moonIp;
+ externalInterface = "eth2";
+ };
+ };
+ environment.systemPackages = [ strongswan ];
+ services.strongswan-swanctl = {
+ enable = true;
+ swanctl = {
+ connections = {
+ "rw" = {
+ local_addrs = [ moonIp ];
+ local."main" = {
+ auth = "psk";
+ };
+ remote."main" = {
+ auth = "psk";
+ };
+ children = {
+ "net" = {
+ local_ts = [ vlan0 ];
+ updown = "${strongswan}/libexec/ipsec/_updown iptables";
+ inherit esp_proposals;
+ };
+ };
+ inherit version;
+ inherit proposals;
+ };
+ };
+ secrets = {
+ ike."carol" = {
+ id."main" = carolIp;
+ inherit secret;
+ };
+ };
+ };
+ };
+ };
+
+ carol = {pkgs, config, nodes, ...} :
+ let strongswan = config.services.strongswan-swanctl.package;
+ in {
+ virtualisation.vlans = [ 1 ];
+ networking = {
+ dhcpcd.enable = false;
+ firewall.extraCommands = allowESP;
+ };
+ environment.systemPackages = [ strongswan ];
+ services.strongswan-swanctl = {
+ enable = true;
+ swanctl = {
+ connections = {
+ "home" = {
+ local_addrs = [ carolIp ];
+ remote_addrs = [ moonIp ];
+ local."main" = {
+ auth = "psk";
+ id = carolIp;
+ };
+ remote."main" = {
+ auth = "psk";
+ id = moonIp;
+ };
+ children = {
+ "home" = {
+ remote_ts = [ vlan0 ];
+ start_action = "trap";
+ updown = "${strongswan}/libexec/ipsec/_updown iptables";
+ inherit esp_proposals;
+ };
+ };
+ inherit version;
+ inherit proposals;
+ };
+ };
+ secrets = {
+ ike."moon" = {
+ id."main" = moonIp;
+ inherit secret;
+ };
+ };
+ };
+ };
+ };
+
+ };
+ testScript = ''
+ startAll();
+ $carol->waitUntilSucceeds("ping -c 1 alice");
+ '';
+})
diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix
index 2df6f341c4e..65aa553b314 100644
--- a/nixos/tests/systemd.nix
+++ b/nixos/tests/systemd.nix
@@ -46,6 +46,8 @@ import ./make-test.nix {
testScript = ''
$machine->waitForX;
+ # wait for user services
+ $machine->waitForUnit("default.target","alice");
# Regression test for https://github.com/NixOS/nixpkgs/issues/35415
subtest "configuration files are recognized by systemd", sub {
diff --git a/pkgs/applications/altcoins/bitcoin-abc.nix b/pkgs/applications/altcoins/bitcoin-abc.nix
index 219ab5d4f80..35488732117 100644
--- a/pkgs/applications/altcoins/bitcoin-abc.nix
+++ b/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
- version = "0.16.2";
+ version = "0.17.0";
src = fetchFromGitHub {
owner = "bitcoin-ABC";
repo = "bitcoin-abc";
rev = "v${version}";
- sha256 = "0d5npn4p321jqsbqjxkbv0ncvs2hp9vdp30np6n8n53f896cxl92";
+ sha256 = "1s2y29h2q4fnbrfg2ig1cd3h7g3kdcdyrfq7znq1ndnh8xj1j489";
};
patches = [ ./fix-bitcoin-qt-build.patch ];
diff --git a/pkgs/applications/altcoins/bitcoin-unlimited.nix b/pkgs/applications/altcoins/bitcoin-unlimited.nix
index d9040377ebe..5a67dc565aa 100644
--- a/pkgs/applications/altcoins/bitcoin-unlimited.nix
+++ b/pkgs/applications/altcoins/bitcoin-unlimited.nix
@@ -1,6 +1,7 @@
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
-, withGui }:
+, withGui
+, Foundation, ApplicationServices, AppKit }:
with stdenv.lib;
@@ -19,7 +20,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db48 boost zlib
miniupnpc utillinux protobuf libevent ]
- ++ optionals withGui [ qt4 qrencode ];
+ ++ optionals withGui [ qt4 qrencode ]
+ ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
patches = [
./bitcoin-unlimited-const-comparators.patch
@@ -36,7 +38,7 @@ stdenv.mkDerivation rec {
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
-
+
The Bitcoin Unlimited (BU) project seeks to provide a voice to all
stakeholders in the Bitcoin ecosystem.
@@ -55,7 +57,7 @@ stdenv.mkDerivation rec {
If you support an increase in the blocksize limit by any means - or just
support Bitcoin conflict resolution as originally envisioned by its founder -
- consider running a Bitcoin Unlimited client.
+ consider running a Bitcoin Unlimited client.
'';
homepage = https://www.bitcoinunlimited.info/;
maintainers = with maintainers; [ DmitryTsygankov ];
diff --git a/pkgs/applications/altcoins/bitcoin-xt.nix b/pkgs/applications/altcoins/bitcoin-xt.nix
index ccc55d17bcf..feb2924f865 100644
--- a/pkgs/applications/altcoins/bitcoin-xt.nix
+++ b/pkgs/applications/altcoins/bitcoin-xt.nix
@@ -1,6 +1,7 @@
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl, libevent
-, withGui }:
+, withGui
+, Foundation, ApplicationServices, AppKit }:
with stdenv.lib;
stdenv.mkDerivation rec{
@@ -18,7 +19,8 @@ stdenv.mkDerivation rec{
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db48 boost zlib libevent
miniupnpc utillinux protobuf curl ]
- ++ optionals withGui [ qt4 qrencode ];
+ ++ optionals withGui [ qt4 qrencode ]
+ ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
configureFlags = [
"--with-boost-libdir=${boost.out}/lib"
@@ -36,7 +38,7 @@ stdenv.mkDerivation rec{
Bitcoin XT is an implementation of a Bitcoin full node, based upon the
source code of Bitcoin Core. It is built by taking the latest stable
Core release, applying a series of patches, and then doing deterministic
- builds so anyone can check the downloads correspond to the source code.
+ builds so anyone can check the downloads correspond to the source code.
'';
homepage = https://bitcoinxt.software/;
maintainers = with maintainers; [ jefdaj ];
diff --git a/pkgs/applications/altcoins/dcrd.nix b/pkgs/applications/altcoins/dcrd.nix
index 8a8c4a7f102..cc3e83befa6 100644
--- a/pkgs/applications/altcoins/dcrd.nix
+++ b/pkgs/applications/altcoins/dcrd.nix
@@ -29,5 +29,6 @@ buildGoPackage rec {
homepage = "https://decred.org";
description = "Decred daemon in Go (golang)";
license = with lib.licenses; [ isc ];
+ broken = stdenv.isLinux; # 2018-04-10
};
}
diff --git a/pkgs/applications/altcoins/dcrwallet.nix b/pkgs/applications/altcoins/dcrwallet.nix
index aa6e8a0315e..8d966684b23 100644
--- a/pkgs/applications/altcoins/dcrwallet.nix
+++ b/pkgs/applications/altcoins/dcrwallet.nix
@@ -38,5 +38,6 @@ buildGoPackage rec {
homepage = "https://decred.org";
description = "Decred daemon in Go (golang)";
license = with lib.licenses; [ isc ];
+ broken = stdenv.isLinux; # 2018-04-10
};
}
diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix
index d7cce586b9b..c58178e3edb 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -10,14 +10,26 @@ rec {
bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; };
bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; };
- bitcoin-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = true; };
- bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = false; };
+ bitcoin-unlimited = callPackage ./bitcoin-unlimited.nix {
+ inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+ withGui = true;
+ };
+ bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix {
+ inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+ withGui = false;
+ };
bitcoin-classic = libsForQt5.callPackage ./bitcoin-classic.nix { boost = boost165; withGui = true; };
bitcoind-classic = callPackage ./bitcoin-classic.nix { boost = boost165; withGui = false; };
- bitcoin-xt = callPackage ./bitcoin-xt.nix { boost = boost165; withGui = true; };
- bitcoind-xt = callPackage ./bitcoin-xt.nix { boost = boost165; withGui = false; };
+ bitcoin-xt = callPackage ./bitcoin-xt.nix {
+ inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+ boost = boost165; withGui = true;
+ };
+ bitcoind-xt = callPackage ./bitcoin-xt.nix {
+ inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+ boost = boost165; withGui = false;
+ };
btc1 = callPackage ./btc1.nix { boost = boost165; withGui = true; };
btc1d = callPackage ./btc1.nix { boost = boost165; withGui = false; };
@@ -51,6 +63,8 @@ rec {
memorycoin = callPackage ./memorycoin.nix { boost = boost165; withGui = true; };
memorycoind = callPackage ./memorycoin.nix { boost = boost165; withGui = false; };
+ mist = callPackage ./mist.nix { };
+
namecoin = callPackage ./namecoin.nix { withGui = true; };
namecoind = callPackage ./namecoin.nix { withGui = false; };
diff --git a/pkgs/applications/altcoins/hevm.nix b/pkgs/applications/altcoins/hevm.nix
index 51e5f6bcb29..1aa598f3254 100644
--- a/pkgs/applications/altcoins/hevm.nix
+++ b/pkgs/applications/altcoins/hevm.nix
@@ -55,6 +55,7 @@ lib.overrideDerivation (mkDerivation rec {
description = "Ethereum virtual machine evaluator";
license = stdenv.lib.licenses.agpl3;
maintainers = [stdenv.lib.maintainers.dbrock];
+ broken = true; # 2018-04-10
}) (attrs: {
buildInputs = attrs.buildInputs ++ [solc];
nativeBuildInputs = attrs.nativeBuildInputs ++ [makeWrapper];
diff --git a/pkgs/applications/altcoins/memorycoin.nix b/pkgs/applications/altcoins/memorycoin.nix
index b9335dbabe5..944c82250d4 100644
--- a/pkgs/applications/altcoins/memorycoin.nix
+++ b/pkgs/applications/altcoins/memorycoin.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec{
homepage = http://www.bitcoin.org/;
maintainers = with maintainers; [ AndersonTorres ];
license = licenses.mit;
- platforms = subtractLists [ "aarch64-linux" ] platforms.unix;
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/applications/altcoins/mist.nix b/pkgs/applications/altcoins/mist.nix
new file mode 100644
index 00000000000..c112384f3d8
--- /dev/null
+++ b/pkgs/applications/altcoins/mist.nix
@@ -0,0 +1,71 @@
+{ stdenv, lib, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv }:
+
+let
+ version = "0.10.0";
+ name = "mist-${version}";
+
+ throwSystem = throw "Unsupported system: ${stdenv.system}";
+
+ meta = with stdenv.lib; {
+ description = "Browse and use Ðapps on the Ethereum network";
+ homepage = https://github.com/ethereum/mist;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+
+ urlVersion = builtins.replaceStrings ["."] ["-"] version;
+
+ desktopItem = makeDesktopItem rec {
+ name = "Mist";
+ exec = "mist";
+ icon = "mist";
+ desktopName = name;
+ genericName = "Mist Browser";
+ categories = "Network;";
+ };
+
+ mist = stdenv.mkDerivation {
+ inherit name version;
+
+ src = {
+ i686-linux = fetchurl {
+ url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip";
+ sha256 = "01hvxlm9w522pwvsjdy18gsrapkfjr7d1jjl4bqjjysxnjaaj2lk";
+ };
+ x86_64-linux = fetchurl {
+ url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip";
+ sha256 = "01k17j7fdfhxfd26njdsiwap0xnka2536k9ydk32czd8db7ya9zi";
+ };
+ }.${stdenv.system} or throwSystem;
+
+ buildInputs = [ unzip makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/lib/mist $out/bin
+ unzip -d $out/lib/mist $src
+ ln -s $out/lib/mist/mist $out/bin
+ fixupPhase
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}:$out/lib/mist" \
+ $out/lib/mist/mist
+ '';
+ };
+in
+buildFHSUserEnv {
+ name = "mist";
+
+ targetPkgs = pkgs: with pkgs; [
+ mist
+ ];
+
+ extraInstallCommands = ''
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* $out/share/applications
+ '';
+
+ runScript = "mist";
+}
diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index bb0615df25b..9c42c98ba5e 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -12,11 +12,11 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "2.9.2";
+ version = "2.9.3";
name = "asunder-${version}";
src = fetchurl {
url = "http://littlesvr.ca/asunder/releases/${name}.tar.bz2";
- sha256 = "0vjbxrrjih4c673sc39wj5whp81xp9kmnwqxwzfnmhkky970rg5r";
+ sha256 = "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
index e5a5cc7c9c6..5d9fe0edece 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
@@ -3,11 +3,11 @@
bitwig-studio1.overrideAttrs (oldAttrs: rec {
name = "bitwig-studio-${version}";
- version = "2.2.2";
+ version = "2.3.2";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
- sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
+ sha256 = "10ji4jqnnlhv4bgvhqwysprax6jcjk4759jskr9imwj6qjnj3vzn";
};
buildInputs = bitwig-studio1.buildInputs ++ [ ffmpeg ];
diff --git a/pkgs/applications/audio/caps/default.nix b/pkgs/applications/audio/caps/default.nix
index 27724bc28e9..2d90599346f 100644
--- a/pkgs/applications/audio/caps/default.nix
+++ b/pkgs/applications/audio/caps/default.nix
@@ -9,9 +9,13 @@ stdenv.mkDerivation rec {
patches = [
(fetchurl {
- url = "https://anonscm.debian.org/cgit/pkg-multimedia/caps.git/plain/debian/patches/0001-Avoid-ambiguity-in-div-invocation.patch";
+ url = "https://salsa.debian.org/multimedia-team/caps/raw/9a99c225/debian/patches/0001-Avoid-ambiguity-in-div-invocation.patch";
sha256 = "1b1pb5yfskiw8zi1lkj572l2ajpirh4amq538vggwvlpv1fqfway";
})
+ (fetchurl {
+ url = "https://salsa.debian.org/multimedia-team/caps/raw/a411203d/debian/patches/0002-Use-standard-exp10f-instead-of-pow10f.patch";
+ sha256 = "18ciklnscabr77l8b89xmbagkk79w4iqfpzr2yhn2ywv2jp8akx9";
+ })
];
configurePhase = ''
diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index d4d302f07d2..760b04bef00 100644
--- a/pkgs/applications/audio/cdparanoia/default.nix
+++ b/pkgs/applications/audio/cdparanoia/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/patch-paranoia_paranoia.c.10.4.diff";
sha256 = "17l2qhn8sh4jy6ryy5si6ll6dndcm0r537rlmk4a6a8vkn852vad";
})
- ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./utils.patch;
+ ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./utils.patch
+ ++ [./fix_private_keyword.patch];
buildInputs = stdenv.lib.optional stdenv.isAarch64 autoreconfHook;
diff --git a/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch b/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch
new file mode 100644
index 00000000000..3e9cbe2bd8c
--- /dev/null
+++ b/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch
@@ -0,0 +1,468 @@
+--- cdparanoia-III-10.2/interface/cdda_interface.h (revision 15337)
++++ cdparanoia-III-10.2/interface/cdda_interface.h (revision 15338)
+@@ -85,5 +85,5 @@
+ int is_mmc;
+
+- cdda_private_data_t *private;
++ cdda_private_data_t *private_data;
+ void *reserved;
+ unsigned char inqbytes[4];
+--- cdparanoia-III-10.2/interface/cooked_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/cooked_interface.c (revision 15338)
+@@ -14,11 +14,11 @@
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+--- cdparanoia-III-10.2/interface/interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/interface.c (revision 15338)
+@@ -40,7 +40,7 @@
+ if(d->cdda_fd!=-1)close(d->cdda_fd);
+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+
+@@ -128,5 +128,5 @@
+ }
+ }
+- if(ms)*ms=d->private->last_milliseconds;
++ if(ms)*ms=d->private_data->last_milliseconds;
+ return(sectors);
+ }
+--- cdparanoia-III-10.2/interface/scan_devices.c (revision 15337)
++++ cdparanoia-III-10.2/interface/scan_devices.c (revision 15338)
+@@ -265,9 +265,9 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
+@@ -675,13 +675,13 @@
+ d->nsectors=-1;
+ d->messagedest = messagedest;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ if(use_sgio){
+ d->interface=SGIO_SCSI;
+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
++ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ g_fd=d->cdda_fd=dup(d->ioctl_fd);
+ }else{
+@@ -697,6 +697,6 @@
+
+ /* malloc our big buffer for scsi commands */
+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ }
+
+@@ -773,7 +773,7 @@
+ if(g_fd!=-1)close(g_fd);
+ if(d){
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+ free(d);
+@@ -822,5 +822,5 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ d->drive_model=copystring("File based test interface");
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
+--- cdparanoia-III-10.2/interface/scsi_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/scsi_interface.c (revision 15338)
+@@ -16,11 +16,11 @@
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+@@ -97,5 +97,5 @@
+ fd_set fdset;
+ struct timeval tv;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ int flag=0;
+
+@@ -186,5 +186,5 @@
+ int tret1,tret2;
+ int status = 0;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ long writebytes=SG_OFF+cmd_len+in_size;
+
+@@ -196,5 +196,5 @@
+ memset(sg_hd,0,sizeof(sg_hd));
+ memset(sense_buffer,0,SG_MAX_SENSE);
+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
++ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
+ sg_hd->twelve_byte = cmd_len == 12;
+ sg_hd->result = 0;
+@@ -210,5 +210,5 @@
+
+ if(bytecheck && out_size>in_size){
+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
++ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ /* the size does not remove cmd_len due to the way the kernel
+ driver copies buffers */
+@@ -244,5 +244,5 @@
+
+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
+- tret1=clock_gettime(d->private->clock,&tv1);
++ tret1=clock_gettime(d->private_data->clock,&tv1);
+ errno=0;
+ status = write(d->cdda_fd, sg_hd, writebytes );
+@@ -290,5 +290,5 @@
+ }
+
+- tret2=clock_gettime(d->private->clock,&tv2);
++ tret2=clock_gettime(d->private_data->clock,&tv2);
+ errno=0;
+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
+@@ -314,5 +314,5 @@
+ long i,flag=0;
+ for(i=in_size;iprivate->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+@@ -327,7 +327,7 @@
+ errno=0;
+ if(tret1<0 || tret2<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ }
+ return(0);
+@@ -348,5 +348,5 @@
+ memset(&hdr,0,sizeof(hdr));
+ memset(sense,0,sizeof(sense));
+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
++ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
+
+ hdr.cmdp = cmd;
+@@ -356,5 +356,5 @@
+ hdr.timeout = 50000;
+ hdr.interface_id = 'S';
+- hdr.dxferp = d->private->sg_buffer;
++ hdr.dxferp = d->private_data->sg_buffer;
+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
+
+@@ -401,5 +401,5 @@
+ long i,flag=0;
+ for(i=in_size;iprivate->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+@@ -413,5 +413,5 @@
+
+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
+- /* d->private->last_milliseconds = hdr.duration; */
++ /* d->private_data->last_milliseconds = hdr.duration; */
+
+ errno = 0;
+@@ -446,7 +446,7 @@
+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
+
+- key = d->private->sg_buffer[2] & 0xf;
+- ASC = d->private->sg_buffer[12];
+- ASCQ = d->private->sg_buffer[13];
++ key = d->private_data->sg_buffer[2] & 0xf;
++ ASC = d->private_data->sg_buffer[12];
++ ASCQ = d->private_data->sg_buffer[13];
+
+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
+@@ -493,5 +493,5 @@
+
+ {
+- unsigned char *b=d->private->sg_buffer;
++ unsigned char *b=d->private_data->sg_buffer;
+ if(b[0])return(1); /* Handles only up to 256 bytes */
+ if(b[6])return(1); /* Handles only up to 256 bytes */
+@@ -605,6 +605,6 @@
+ if(mode_sense(d,12,0x01))return(-1);
+
+- d->orgdens = d->private->sg_buffer[4];
+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
++ d->orgdens = d->private_data->sg_buffer[4];
++ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
+ }
+
+@@ -665,6 +665,6 @@
+ }
+
+- first=d->private->sg_buffer[2];
+- last=d->private->sg_buffer[3];
++ first=d->private_data->sg_buffer[2];
++ last=d->private_data->sg_buffer[3];
+ tracks=last-first+1;
+
+@@ -684,5 +684,5 @@
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+@@ -705,5 +705,5 @@
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+@@ -739,5 +739,5 @@
+
+ /* copy to our structure and convert start sector */
+- tracks = d->private->sg_buffer[1];
++ tracks = d->private_data->sg_buffer[1];
+ if (tracks > MAXTRK) {
+ cderror(d,"003: CDROM reporting illegal number of tracks\n");
+@@ -755,31 +755,31 @@
+ }
+
+- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
++ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
+ d->disc_toc[i].bTrack = i + 1;
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- (((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]));
++ (((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]));
+ }
+
+ d->disc_toc[i].bFlags = 0;
+ d->disc_toc[i].bTrack = i + 1;
+- memcpy (&foo, d->private->sg_buffer+2, 4);
+- memcpy (&bar, d->private->sg_buffer+6, 4);
++ memcpy (&foo, d->private_data->sg_buffer+2, 4);
++ memcpy (&bar, d->private_data->sg_buffer+6, 4);
+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
+ be32_to_cpu(bar));
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- ((((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]))+
++ ((((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]))+
+
+- ((((signed char)(d->private->sg_buffer[6])<<24) |
+- (d->private->sg_buffer[7]<<16)|
+- (d->private->sg_buffer[8]<<8)|
+- (d->private->sg_buffer[9]))));
++ ((((signed char)(d->private_data->sg_buffer[6])<<24) |
++ (d->private_data->sg_buffer[7]<<16)|
++ (d->private_data->sg_buffer[8]<<8)|
++ (d->private_data->sg_buffer[9]))));
+
+
+@@ -818,5 +818,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -837,5 +837,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -855,5 +855,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -873,5 +873,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -891,5 +891,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -909,5 +909,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -923,5 +923,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -937,5 +937,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -951,5 +951,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -965,5 +965,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -979,5 +979,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -993,5 +993,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1027,5 +1027,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1040,5 +1040,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1053,5 +1053,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1276,5 +1276,5 @@
+ long i;
+ for(i=2351;i>=0;i--)
+- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
++ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
+ return(((i+3)>>2)<<2);
+
+@@ -1285,5 +1285,5 @@
+ long i,flag=0;
+ for(i=0;i<2352;i++)
+- if(d->private->sg_buffer[i]!=0){
++ if(d->private_data->sg_buffer[i]!=0){
+ flag=1;
+ break;
+@@ -1622,5 +1622,5 @@
+ if(mode_sense(d,22,0x2A)==0){
+
+- b=d->private->sg_buffer;
++ b=d->private_data->sg_buffer;
+ b+=b[3]+4;
+
+@@ -1670,5 +1670,5 @@
+ return(NULL);
+ }
+- return (d->private->sg_buffer);
++ return (d->private_data->sg_buffer);
+ }
+
+@@ -1726,6 +1726,6 @@
+
+ d->error_retry=1;
+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ d->report_all=1;
+ return(0);
+--- cdparanoia-III-10.2/interface/test_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/test_interface.c (revision 15338)
+@@ -67,7 +67,7 @@
+
+ if(beginprivate->last_milliseconds=20;
++ d->private_data->last_milliseconds=20;
+ else
+- d->private->last_milliseconds=sectors;
++ d->private_data->last_milliseconds=sectors;
+
+ #ifdef CDDA_TEST_UNDERRUN
diff --git a/pkgs/applications/audio/chuck/clang.patch b/pkgs/applications/audio/chuck/clang.patch
new file mode 100644
index 00000000000..77227ef0fd4
--- /dev/null
+++ b/pkgs/applications/audio/chuck/clang.patch
@@ -0,0 +1,58 @@
+diff --git a/src/ugen_osc.cpp b/src/ugen_osc.cpp
+index 6b93c6b..dbefe4f 100644
+--- a/src/ugen_osc.cpp
++++ b/src/ugen_osc.cpp
+@@ -1232,7 +1232,7 @@ CK_DLL_CTRL( gen5_coeffs )
+ Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+- if(in_args<0) return;
++ if(in_args!=0) return;
+ size = in_args->size();
+ if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+
+@@ -1287,7 +1287,7 @@ CK_DLL_CTRL( gen7_coeffs )
+ Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+- if(in_args<0) return;
++ if(in_args!=0) return;
+ size = in_args->size();
+ if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+
+@@ -1340,7 +1340,7 @@ CK_DLL_CTRL( gen9_coeffs )
+ Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+- if(weights<0) return;
++ if(weights!=0) return;
+ size = weights->size();
+ if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+
+@@ -1390,7 +1390,7 @@ CK_DLL_CTRL( gen10_coeffs )
+ Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+- if(weights<0) return;
++ if(weights!=0) return;
+ size = weights->size();
+ if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+
+@@ -1441,7 +1441,7 @@ CK_DLL_CTRL( gen17_coeffs )
+ Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen17coeffs, %d\n", weights);
+- if(weights<0) return;
++ if(weights!=0) return;
+ size = weights->size();
+ if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+
+@@ -1502,7 +1502,7 @@ CK_DLL_CTRL( curve_coeffs )
+ Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+
+ // fprintf(stdout, "calling gen17coeffs, %d\n", weights);
+- if(weights<0) goto done;
++ if(weights!=0) goto done;
+
+ nargs = weights->size();
+ if (nargs < 5 || (nargs % 3) != 2) { // check number of args
diff --git a/pkgs/applications/audio/chuck/default.nix b/pkgs/applications/audio/chuck/default.nix
index fd7f0c2b07c..e94172b0f87 100644
--- a/pkgs/applications/audio/chuck/default.nix
+++ b/pkgs/applications/audio/chuck/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which }:
+{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which
+, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
+}:
stdenv.mkDerivation rec {
version = "1.3.5.2";
@@ -10,19 +12,24 @@ stdenv.mkDerivation rec {
};
buildInputs = [ bison flex libsndfile which ]
- ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
+ ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib
+ ++ stdenv.lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
- patches = [ ./darwin-limits.patch ];
+ patches = [ ./clang.patch ./darwin-limits.patch ];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-Wno-missing-sysroot";
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework MultitouchSupport";
postPatch = ''
substituteInPlace src/makefile --replace "/usr/bin" "$out/bin"
substituteInPlace src/makefile.osx --replace "xcodebuild" "/usr/bin/xcodebuild"
substituteInPlace src/makefile.osx --replace "weak_framework" "framework"
+ substituteInPlace src/makefile.osx --replace "MACOSX_DEPLOYMENT_TARGET=10.5" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET"
'';
- buildPhase =
- stdenv.lib.optionals stdenv.isLinux ["make -C src linux-alsa"] ++
- stdenv.lib.optionals stdenv.isDarwin ["make -C src osx"];
+ buildPhase = ''
+ make -C src ${if stdenv.isDarwin then "osx" else "linux-alsa"}
+ '';
installPhase = ''
install -Dm755 ./src/chuck $out/bin/chuck
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index b8ff3daec60..6379975e951 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -70,7 +70,9 @@ let
free = stdenv.mkDerivation {
name = "clementine-free-${version}";
- inherit src patches nativeBuildInputs buildInputs postPatch;
+ inherit src patches nativeBuildInputs postPatch;
+
+ buildInputs = buildInputs ++ [ makeWrapper ];
cmakeFlags = [ "-DUSE_SYSTEM_PROJECTM=ON" ];
@@ -78,6 +80,11 @@ let
passthru.unfree = unfree;
+ postInstall = ''
+ wrapProgram $out/bin/clementine \
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ '';
+
meta = with stdenv.lib; {
homepage = http://www.clementine-player.org;
description = "A multiplatform music player";
@@ -108,8 +115,7 @@ let
rmdir $out/bin
makeWrapper ${free}/bin/clementine $out/bin/clementine \
- --set CLEMENTINE_SPOTIFYBLOB $out/libexec/clementine \
- --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ --set CLEMENTINE_SPOTIFYBLOB $out/libexec/clementine
mkdir -p $out/share
for dir in applications icons kde4; do
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
new file mode 100644
index 00000000000..b3d9fd58028
--- /dev/null
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, libjack2, libGL, pkgconfig, xorg }:
+
+stdenv.mkDerivation rec {
+ name = "dragonfly-reverb-${src.rev}";
+
+ src = fetchgit {
+ url = "https://github.com/michaelwillis/dragonfly-reverb";
+ rev = "0.9.1";
+ sha256 = "1dbykx044h768bbzabdagl4jh65gqgfsxsrarjrkp07sqnhlnhpd";
+ };
+
+ patchPhase = ''
+ patchShebangs dpf/utils/generate-ttl.sh
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libjack2 xorg.libX11 libGL
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2/
+ cp -a bin/DragonflyReverb.lv2/ $out/lib/lv2/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/michaelwillis/dragonfly-reverb;
+ description = "A hall-style reverb based on freeverb3 algorithms";
+ maintainers = [ maintainers.magnetophon ];
+ license = licenses.gpl2;
+ platforms = ["x86_64-linux"];
+ };
+}
diff --git a/pkgs/applications/audio/eq10q/default.nix b/pkgs/applications/audio/eq10q/default.nix
index 3faeeb12d4c..651604c71a1 100644
--- a/pkgs/applications/audio/eq10q/default.nix
+++ b/pkgs/applications/audio/eq10q/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, cmake, fftw, gtkmm2, libxcb, lv2, pkgconfig, xorg }:
+{ stdenv, fetchurl, fetchpatch, cmake, fftw, gtkmm2, libxcb, lv2, pkgconfig
+, xorg }:
stdenv.mkDerivation rec {
name = "eq10q-${version}";
version = "2.2";
@@ -10,6 +11,14 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ cmake fftw gtkmm2 libxcb lv2 xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence ];
+ patches = [
+ (fetchpatch {
+ # glibc 2.27 compatibility
+ url = https://sources.debian.org/data/main/e/eq10q/2.2~repack0-2.1/debian/patches/05-pow10.patch;
+ sha256 = "07b0wf6k4xqgigv4h095bzfaw8r218wa36r9w1817jcys13r6c5r";
+ })
+ ];
+
installFlags = ''
DESTDIR=$(out)
'';
diff --git a/pkgs/applications/audio/faust/faust1.nix b/pkgs/applications/audio/faust/faust1.nix
index 4875ee8b57d..bf5bb781585 100644
--- a/pkgs/applications/audio/faust/faust1.nix
+++ b/pkgs/applications/audio/faust/faust1.nix
@@ -49,7 +49,7 @@ let
# faust.wrapWithBuildEnv.
postInstall = ''
# syntax error when eval'd directly
- pattern="faust2!(svg)"
+ pattern="faust2!(*@(atomsnippets|graph|graphviewer|md|plot|sig|sigviewer|svg))"
(shopt -s extglob; rm "$out"/bin/$pattern)
'';
diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix
index f0564f37d6b..db5433cc35f 100644
--- a/pkgs/applications/audio/faust/faust2.nix
+++ b/pkgs/applications/audio/faust/faust2.nix
@@ -78,7 +78,7 @@ let
# faust.wrapWithBuildEnv.
postInstall = ''
# syntax error when eval'd directly
- pattern="faust2!(svg)"
+ pattern="faust2!(*@(atomsnippets|graph|graphviewer|md|plot|sig|sigviewer|svg))"
(shopt -s extglob; rm "$out"/bin/$pattern)
'';
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index cc453347aea..a16593d4d1b 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
name = "flacon-${version}";
- version = "4.0.0";
+ version = "4.1.0";
src = fetchFromGitHub {
owner = "flacon";
repo = "flacon";
rev = "v${version}";
- sha256 = "0l0xbzpy4nnr08z7gqvb4ngrjwzpspa382cbcrpkya3nd40987kr";
+ sha256 = "1sw2v2w3s79lbzhkf96m8lwvag824am7rwfzzsi8bz6sa6krmj0m";
};
nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index 789ee35f260..27ca539850e 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
name = "fluidsynth-${version}";
- version = "1.1.9";
+ version = "1.1.10";
src = fetchFromGitHub {
owner = "FluidSynth";
repo = "fluidsynth";
rev = "v${version}";
- sha256 = "0krvmb1idnf95l2ydzfcb08ayyx3n4m71hf9fgwv3srzaikvpf3q";
+ sha256 = "04jlgq1d1hd8r9cnmkl3lgf1fgm7kgy4hh9nfddap41fm1wp121p";
};
nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index bcb30168708..62bc2fa6f36 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -12,11 +12,11 @@ in
stdenv.mkDerivation rec {
name = "guitarix-${version}";
- version = "0.36.1";
+ version = "0.37.0";
src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
- sha256 = "1g5949jwh2n755xjs3kcbdb8a1wxr5mn0m115wdnk27dxcdn93b0";
+ sha256 = "17dsd32yd92l7xq1x0b8jsws5yif2pk4zbfjbc560hgarym6r8x6";
};
nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ];
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index 680542dc405..4c9540607eb 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
name = "kid3-${version}";
- version = "3.6.0";
+ version = "3.6.1";
src = fetchurl {
url = "mirror://sourceforge/project/kid3/kid3/${version}/${name}.tar.gz";
- sha256 = "1kv795prc4d3f2cbzskvdi73l6nx4cfcd32x255wq1s74zp1k73p";
+ sha256 = "1bbnd6jgahdiqmsbw6c3x4h517m50db592fnq1w0v4k5aaav4i26";
};
buildInputs = with stdenv.lib;
diff --git a/pkgs/applications/audio/mi2ly/default.nix b/pkgs/applications/audio/mi2ly/default.nix
index fa4ea6343e9..4dfc7b13046 100644
--- a/pkgs/applications/audio/mi2ly/default.nix
+++ b/pkgs/applications/audio/mi2ly/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation {
license = stdenv.lib.licenses.gpl2Plus ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
+ broken = true; # 2018-04-11
};
}
diff --git a/pkgs/applications/audio/mopidy-gmusic/default.nix b/pkgs/applications/audio/mopidy/gmusic.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-gmusic/default.nix
rename to pkgs/applications/audio/mopidy/gmusic.nix
diff --git a/pkgs/applications/audio/mopidy-iris/default.nix b/pkgs/applications/audio/mopidy/iris.nix
similarity index 81%
rename from pkgs/applications/audio/mopidy-iris/default.nix
rename to pkgs/applications/audio/mopidy/iris.nix
index 4ba0088dd04..f3a9b73aabe 100644
--- a/pkgs/applications/audio/mopidy-iris/default.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris";
- version = "3.14.2";
+ version = "3.17.1";
src = pythonPackages.fetchPypi {
inherit pname version;
- sha256 = "19affzk45wby50gwxwzqgwa7h7618lcs48ngdsa06sd66s8x2fza";
+ sha256 = "02k1br077v9c5x6nn0391vh28pvn1zjbkjv8h508vy7k6ch2xjyq";
};
propagatedBuildInputs = [
@@ -17,8 +17,11 @@ pythonPackages.buildPythonApplication rec {
pylast
spotipy
raven
+ tornado
]);
+ postPatch = "sed -i /tornado/d setup.py";
+
# no tests implemented
doCheck = false;
diff --git a/pkgs/applications/audio/mopidy-local-images/default.nix b/pkgs/applications/audio/mopidy/local-images.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-local-images/default.nix
rename to pkgs/applications/audio/mopidy/local-images.nix
diff --git a/pkgs/applications/audio/mopidy-local-sqlite/default.nix b/pkgs/applications/audio/mopidy/local-sqlite.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-local-sqlite/default.nix
rename to pkgs/applications/audio/mopidy/local-sqlite.nix
diff --git a/pkgs/applications/audio/mopidy-moped/default.nix b/pkgs/applications/audio/mopidy/moped.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-moped/default.nix
rename to pkgs/applications/audio/mopidy/moped.nix
diff --git a/pkgs/applications/audio/mopidy-mopify/default.nix b/pkgs/applications/audio/mopidy/mopify.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-mopify/default.nix
rename to pkgs/applications/audio/mopidy/mopify.nix
diff --git a/pkgs/applications/audio/mopidy-musicbox-webclient/default.nix b/pkgs/applications/audio/mopidy/musicbox-webclient.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-musicbox-webclient/default.nix
rename to pkgs/applications/audio/mopidy/musicbox-webclient.nix
diff --git a/pkgs/applications/audio/mopidy-soundcloud/default.nix b/pkgs/applications/audio/mopidy/soundcloud.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-soundcloud/default.nix
rename to pkgs/applications/audio/mopidy/soundcloud.nix
diff --git a/pkgs/applications/audio/mopidy-spotify-tunigo/default.nix b/pkgs/applications/audio/mopidy/spotify-tunigo.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-spotify-tunigo/default.nix
rename to pkgs/applications/audio/mopidy/spotify-tunigo.nix
diff --git a/pkgs/applications/audio/mopidy-spotify/default.nix b/pkgs/applications/audio/mopidy/spotify.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-spotify/default.nix
rename to pkgs/applications/audio/mopidy/spotify.nix
diff --git a/pkgs/applications/audio/mopidy-youtube/default.nix b/pkgs/applications/audio/mopidy/youtube.nix
similarity index 100%
rename from pkgs/applications/audio/mopidy-youtube/default.nix
rename to pkgs/applications/audio/mopidy/youtube.nix
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index 93e909fc604..ffd5b9a5858 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -3,20 +3,18 @@
stdenv.mkDerivation rec {
name = "ncmpc-${version}";
- version = "0.29";
+ version = "0.30";
src = fetchFromGitHub {
owner = "MusicPlayerDaemon";
repo = "ncmpc";
rev = "v${version}";
- sha256 = "1b2kbx2phbf4s2qpy7mx72c87xranljr0yam6z9m1i1kvcnp8q1q";
+ sha256 = "0s2bynm5szrk8bjhg200mvsm2ny0wz9s10nx7r69y9y4jsxr8624";
};
buildInputs = [ glib ncurses mpd_clientlib ];
nativeBuildInputs = [ meson ninja pkgconfig gettext ];
- NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
-
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
homepage = https://www.musicpd.org/clients/ncmpc/;
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index 10c3bb2a195..87f5f94bb30 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -12,11 +12,11 @@ assert taglibSupport -> (taglib != null);
with stdenv.lib;
stdenv.mkDerivation rec {
name = "ncmpcpp-${version}";
- version = "0.8.1";
+ version = "0.8.2";
src = fetchurl {
url = "https://ncmpcpp.rybczak.net/stable/${name}.tar.bz2";
- sha256 = "1zw8d07b2bkssbsybg6jnmpq001w525viajrnz4jvfml3l55gyad";
+ sha256 = "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5";
};
configureFlags = [ "BOOST_LIB_SUFFIX=" ]
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 6b816cdeec1..e2218f477a5 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
# handle that.
stdenv.mkDerivation rec {
- name = "qmmp-1.2.0";
+ name = "qmmp-1.2.1";
src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
- sha256 = "17kci7srgbkk62dgxlmg3lv2y7z04jsinpgx6jmxjpnpblpcj840";
+ sha256 = "1ag8wh11dq394zjqdyz5g1srjnm4fnq4cwlhpb9k89gpmlk42cdr";
};
buildInputs =
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index fd328669846..972da4f773f 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, python2Packages, wrapGAppsHook, gettext, intltool, libsoup, gnome3,
- tag ? "",
+{ stdenv, fetchurl, python3, wrapGAppsHook, gettext, intltool, libsoup, gnome3, gtk3, gdk_pixbuf,
+ tag ? "", xvfb_run, dbus, glibcLocales, glib, gobjectIntrospection,
gst_all_1, withGstPlugins ? true,
xineBackend ? false, xineLib,
withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
@@ -7,38 +7,53 @@
keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }:
let optionals = stdenv.lib.optionals; in
-python2Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
name = "quodlibet${tag}-${version}";
- version = "3.9.1";
+ version = "4.0.2";
# XXX, tests fail
+ # https://github.com/quodlibet/quodlibet/issues/2820
doCheck = false;
src = fetchurl {
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
- sha256 = "d2b42df5d439213973dc97149fddc779a6c90cec389c24baf1c0bdcc39ffe591";
+ sha256 = "072s983p3n84yl807pbdxsy5vrgs8jzzfl648gsri6kpwsp6w5fz";
};
nativeBuildInputs = [ wrapGAppsHook gettext intltool ];
- # ++ (with python2Packages; [ pytest pyflakes pycodestyle polib ]); # test deps
- buildInputs = [ gnome3.defaultIconTheme libsoup webkitgtk keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi ]
+ checkInputs = with python3.pkgs; [ pytest pytest_xdist pyflakes pycodestyle polib xvfb_run dbus.daemon glibcLocales ];
+
+ buildInputs = [ gnome3.defaultIconTheme libsoup glib gtk3 webkitgtk gdk_pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobjectIntrospection ]
++ (if xineBackend then [ xineLib ] else with gst_all_1;
[ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]);
- propagatedBuildInputs = with python2Packages;
- [ pygobject3 pycairo mutagen pygtk gst-python feedparser faulthandler futures ]
+ propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ]
++ optionals withDbusPython [ dbus-python ]
++ optionals withPyInotify [ pyinotify ]
++ optionals withMusicBrainzNgs [ musicbrainzngs ]
++ optionals stdenv.isDarwin [ pyobjc ]
++ optionals withPahoMqtt [ paho-mqtt ];
- makeWrapperArgs = optionals (kakasi != null) [ "--prefix PATH : ${kakasi}/bin" ];
+ LC_ALL = "en_US.UTF-8";
- meta = {
+ checkPhase = ''
+ runHook preCheck
+ checkHomeDir=$(mktemp -d)
+ mkdir -p $checkHomeDir/.cache/thumbnails/normal # Required by TThumb.test_recreate_broken_cache_file
+ env XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS" \
+ HOME=$checkHomeDir \
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ py.test
+ runHook postCheck
+ '';
+
+ preFixup = stdenv.lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)";
+
+ meta = with stdenv.lib; {
description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
- license = stdenv.lib.licenses.gpl2;
+ license = licenses.gpl2Plus;
longDescription = ''
Quod Libet is a GTK+-based audio player written in Python, using
@@ -54,7 +69,7 @@ python2Packages.buildPythonApplication rec {
& internet radio, and all major audio formats.
'';
- maintainers = with stdenv.lib.maintainers; [ coroa sauyon ];
+ maintainers = with maintainers; [ coroa sauyon ];
homepage = https://quodlibet.readthedocs.io/en/latest/;
};
}
diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix
index 60c8f90b6d1..2ce82eb6a0a 100644
--- a/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/pkgs/applications/audio/radiotray-ng/default.nix
@@ -40,13 +40,13 @@ let
in
stdenv.mkDerivation rec {
name = "radiotray-ng-${version}";
- version = "0.2.1";
+ version = "0.2.2";
src = fetchFromGitHub {
owner = "ebruck";
repo = "radiotray-ng";
rev = "v${version}";
- sha256 = "0hqg6vn8hv5pic96klf1d9vj8fibrgiqnqb5vwrg3wvakx0y32kr";
+ sha256 = "0q8k7nsjm6m0r0zs1br60niaqlwvd3myqalb5sqijzanx41aq2l6";
};
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ];
@@ -78,7 +78,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- doCheck = true;
+ # XXX: as of 0.2.2, tries to download gmock instead of checking for provided
+ doCheck = false;
checkPhase = "ctest";
diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix
index a23324c7fda..8dab9e32f98 100644
--- a/pkgs/applications/audio/rhythmbox/default.nix
+++ b/pkgs/applications/audio/rhythmbox/default.nix
@@ -24,6 +24,15 @@ in stdenv.mkDerivation rec {
sha256 = "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2";
};
+ patches = [
+ # build with GStreamer 1.14 https://bugzilla.gnome.org/show_bug.cgi?id=788706
+ (fetchurl {
+ name = "fmradio-Fix-build-with-GStreamer-master.patch";
+ url = https://bugzilla.gnome.org/attachment.cgi?id=361178;
+ sha256 = "1h09mimlglj9hcmc3pfp0d6c277mqh2khwv9fryk43pkv3904d2w";
+ })
+ ];
+
nativeBuildInputs = [
pkgconfig
intltool perl perlPackages.XMLParser
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 7b78ceddda2..87bf440ed4f 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -9,7 +9,7 @@ let
# Latest version number can be found at:
# http://repository-origin.spotify.com/pool/non-free/s/spotify-client/
# Be careful not to pick the testing version.
- version = "1.0.72.117.g6bd7cc73-35";
+ version = "1.0.77.338.g758ebd78-41";
deps = [
alsaLib
@@ -54,7 +54,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
- sha256 = "0yicwvg6jx8r657ff53326akq3g4ayiinlracjw5jrcs8x9whjap";
+ sha256 = "1971jc0431pl8yixpl37ryl2l0pqdf0xjvkg59nqdwj3vbdx5606";
};
buildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix
index ccbceddefd2..47b0bf2e736 100644
--- a/pkgs/applications/audio/sunvox/default.nix
+++ b/pkgs/applications/audio/sunvox/default.nix
@@ -5,7 +5,7 @@ let
arch =
if stdenv.isAarch64
then "arm64"
- else if stdenv.isArm
+ else if stdenv.isAarch32
then "arm_armhf_raspberry_pi"
else if stdenv.is64bit
then "x86_64"
diff --git a/pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
similarity index 100%
rename from pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix
rename to pkgs/applications/display-managers/lightdm/gtk-greeter.nix
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index a7e8799c9c1..a41f917a7ec 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -22,6 +22,10 @@ in mkDerivation rec {
# Module Qt5::Test must be included in `find_package` before it is used.
''
sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|'
+ ''
+ # Fix missing include for gettimeofday()
+ + ''
+ sed -e '1i#include ' -i src/helper/HelperApp.cpp
'';
nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index d7baa7f7c71..75385275ec8 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -7,10 +7,15 @@ let
};
inherit (gnome2) GConf gnome_vfs;
};
+ stableVersion = {
+ version = "3.1.2.0"; # "Android Studio 3.1.2"
+ build = "173.4720617";
+ sha256Hash = "1h9f4pkyqxkqxampi8v035czg5d4g6lp4bsrnq5mgpwhjwkr1whk";
+ };
latestVersion = {
- version = "3.2.0.9"; # "Android Studio 3.2 Canary 10"
- build = "181.4705630";
- sha256Hash = "07xf00f0wvrk576iaqn7qpcpgar432n6q3jlgpslhm4m1cww3sww";
+ version = "3.2.0.11"; # "Android Studio 3.2 Canary 12"
+ build = "181.4729833";
+ sha256Hash = "1b976m59d230pl35ajhdic46cw8qmnykkbrg3l7am7zmih0zk64c";
};
in rec {
# Old alias
@@ -18,12 +23,9 @@ in rec {
# Attributes are named by the corresponding release channels
- stable = mkStudio {
+ stable = mkStudio (stableVersion // {
pname = "android-studio";
#pname = "android-studio-stable"; # TODO: Rename and provide symlink
- version = "3.1.0.16"; # "Android Studio 3.1"
- build = "173.4670197";
- sha256Hash = "1i0ldyadrcyy5pl9vjpm2k755mf08xi9x5qz8655qsbiajzqf9fy";
meta = with stdenv.lib; {
description = "The Official IDE for Android (stable channel)";
@@ -36,20 +38,17 @@ in rec {
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ primeos ];
};
- };
+ });
- beta = mkStudio {
+ beta = mkStudio (stableVersion // {
pname = "android-studio-preview";
#pname = "android-studio-beta"; # TODO: Rename and provide symlink
- version = "3.1.0.16"; # "Android Studio 3.1"
- build = "173.4670197";
- sha256Hash = "1i0ldyadrcyy5pl9vjpm2k755mf08xi9x5qz8655qsbiajzqf9fy";
meta = stable.meta // {
description = "The Official IDE for Android (beta channel)";
homepage = https://developer.android.com/studio/preview/index.html;
};
- };
+ });
dev = mkStudio (latestVersion // {
pname = "android-studio-dev";
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 9fbf4431f60..ca223803f04 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "atom-${version}";
- version = "1.25.1";
+ version = "1.26.1";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
- sha256 = "0h0kr4w26c6i89rb9y4aw4l8f63al42i2cy3ddk16m1irzij9fk4";
+ sha256 = "0g83qj9siq1vr2v46rzjf3dy2gns9krh6xlh7w3bhrgfk0vqkm11";
name = "${name}.deb";
};
diff --git a/pkgs/applications/editors/bonzomatic/default.nix b/pkgs/applications/editors/bonzomatic/default.nix
new file mode 100644
index 00000000000..9f1db146448
--- /dev/null
+++ b/pkgs/applications/editors/bonzomatic/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper, fetchFromGitHub, cmake, alsaLib, mesa_glu, libXcursor, libXinerama, libXrandr, xorgserver }:
+
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ pname = "bonzomatic";
+ version = "2018-03-29";
+
+ src = fetchFromGitHub {
+ owner = "Gargaj";
+ repo = pname;
+ rev = version;
+ sha256 = "12mdfjvbhdqz1585772rj4cap8m4ijfci6ib62jysxjf747k41fg";
+ };
+
+ buildInputs = [ cmake makeWrapper alsaLib mesa_glu libXcursor libXinerama libXrandr xorgserver ];
+
+ postFixup = ''
+ wrapProgram $out/bin/Bonzomatic --prefix LD_LIBRARY_PATH : "${alsaLib}/lib"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A live-coding tool for writing 2D fragment/pixel shaders";
+ license = with licenses; [
+ unlicense
+ unfreeRedistributable # contains libbass.so in repository
+ ];
+ maintainers = [ maintainers.nocent ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
new file mode 100644
index 00000000000..03c3c5d5eec
--- /dev/null
+++ b/pkgs/applications/editors/dit/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchurl, stdenv, coreutils, ncurses, lua }:
+
+stdenv.mkDerivation rec {
+ name = "dit-${version}";
+ version = "0.4";
+
+ src = fetchurl {
+ url = "https://hisham.hm/dit/releases/${version}/${name}.tar.gz";
+ sha256 = "0bwczbv7annbbpg7bgbsqd5kwypn81sza4v7v99fin94wwmcn784";
+ };
+
+ buildInputs = [ coreutils ncurses lua ];
+
+ prePatch = ''
+ patchShebangs tools/GenHeaders
+ '';
+
+ # needs GNU tail for tail -r
+ postPatch = ''
+ substituteInPlace Prototypes.h --replace 'tail' "$(type -P tail)"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A console text editor for Unix that you already know how to use";
+ homepage = https://hisham.hm/dit/;
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ davidak ];
+ };
+}
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 1710c0e3553..136ef7dfc23 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -530,18 +530,13 @@ rec {
};
};
- spotbugs = buildEclipsePlugin rec {
+ spotbugs = buildEclipseUpdateSite rec {
name = "spotbugs-${version}";
- version = "3.1.2.r201802250230-59118d9";
+ version = "3.1.3";
- srcFeature = fetchurl {
- url = "https://spotbugs.github.io/eclipse/features/com.github.spotbugs.plugin.eclipse_${version}.jar";
- sha256 = "1p0pz7znpfi5h1wr60sl8clkpd7rzkh7krmc0nxc6w43gkgkg9h4";
- };
-
- srcPlugin = fetchurl {
- url = "https://spotbugs.github.io/eclipse/plugins/com.github.spotbugs.plugin.eclipse_${version}.jar";
- sha256 = "1z3jjbcjif4qip1gx2dhfcm9fyhps96ms7z3ngbdcakgw7wai9v4";
+ src = fetchzip {
+ url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip";
+ sha256 = "01zrmk497bxzqgwgbpsvi5iz5qk9b4q949h4918abm54zvkgndlg";
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/edbrowse/default.nix b/pkgs/applications/editors/edbrowse/default.nix
index a6611d2f167..862739b4ed0 100644
--- a/pkgs/applications/editors/edbrowse/default.nix
+++ b/pkgs/applications/editors/edbrowse/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
name = "edbrowse-${version}";
- version = "3.7.2";
+ version = "3.7.3";
buildInputs = [ curl pcre readline openssl duktape perl html-tidy ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
owner = "CMB";
repo = "edbrowse";
rev = "v${version}";
- sha256 = "00wi0m91zf8p8wk4ixlz99dndgv4xqy93m2vsiwdr3khw3jwipp2";
+ sha256 = "19qdxigp0qv5vyy0hpn0czcc8papvivsjrxx7p367ihizm39yzla";
};
meta = with stdenv.lib; {
description = "Command Line Editor Browser";
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index b550f31ff99..958066e2106 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -713,10 +713,10 @@
ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild {
pname = "ebdb";
- version = "0.5";
+ version = "0.5.2";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/ebdb-0.5.tar";
- sha256 = "1apsb08ml50nacqa6i86zwa2xxdfqry380bksp16zv63cj86b67g";
+ url = "https://elpa.gnu.org/packages/ebdb-0.5.2.tar";
+ sha256 = "09ff6kf74r6hg3m6lryrjr2rrczm9h702jpkap71xrj0fk4zfb5c";
};
packageRequires = [ cl-lib emacs seq ];
meta = {
@@ -768,10 +768,10 @@
el-search = callPackage ({ cl-print, elpaBuild, emacs, fetchurl, lib, stream }:
elpaBuild {
pname = "el-search";
- version = "1.6.3";
+ version = "1.6.5";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/el-search-1.6.3.tar";
- sha256 = "1yd8qlq95fb5qfmg3m16i9d5nsmkkgr12q0981r5ng06pc0j4al6";
+ url = "https://elpa.gnu.org/packages/el-search-1.6.5.tar";
+ sha256 = "1iw13ifyrga2r2xz63zhjxiy541jy4p2rp3a8fgb22sjw1zi8n7w";
};
packageRequires = [ cl-print emacs stream ];
meta = {
@@ -931,10 +931,10 @@
gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "gited";
- version = "0.4.1";
+ version = "0.4.3";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/gited-0.4.1.tar";
- sha256 = "0080jcr10xvvf2rl7ar01c6zmzd0pafrs6w2l8v4cwwapyhv0dcd";
+ url = "https://elpa.gnu.org/packages/gited-0.4.3.tar";
+ sha256 = "07sjrh7900v5gkjzac2hh05ygywp6k4803ikc3wj3x22yrc9l8bx";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -1507,10 +1507,10 @@
nhexl-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "nhexl-mode";
- version = "0.2";
+ version = "0.5";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/nhexl-mode-0.2.el";
- sha256 = "0qrzpkxxdwi2b3136yj5agvaxwr9g2c58kpmjmjpfhpc6yyyx5x0";
+ url = "https://elpa.gnu.org/packages/nhexl-mode-0.5.el";
+ sha256 = "02z2mx39m96s7v5d8sh6hxb5p70qzbagjfa3lavfw10zjim8g9wl";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -1612,10 +1612,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
- version = "9.1.9";
+ version = "9.1.10";
src = fetchurl {
- url = "https://elpa.gnu.org/packages/org-9.1.9.tar";
- sha256 = "16yr0srfzsrzv2b1f2wjk8gb2pyhsgj2hxbscixirkxqz674c5cl";
+ url = "https://elpa.gnu.org/packages/org-9.1.10.tar";
+ sha256 = "01vvq6m7r2ifyflvq5ga241qvl4j62smz0zr6jljk56b6nqi20lm";
};
packageRequires = [];
meta = {
diff --git a/pkgs/applications/editors/emacs-modes/icicles/default.nix b/pkgs/applications/editors/emacs-modes/icicles/default.nix
index f0d120dd803..2277ebef4ff 100644
--- a/pkgs/applications/editors/emacs-modes/icicles/default.nix
+++ b/pkgs/applications/editors/emacs-modes/icicles/default.nix
@@ -2,25 +2,25 @@
let
modules = [
- { name = "icicles.el"; sha256 = "10w1lghh9jqxxm5cszi2qyk24vnvazfywmyyz1v7zf6cyiwbndrz"; }
- { name = "icicles-chg.el"; sha256 = "020yg4hv120mcy7qvn76j85q6hl7mfcfv66w55c6izc9lbrvvnv8"; }
- { name = "icicles-cmd1.el"; sha256 = "1715x1vkiax93890gfjbzslxsn4swsv37spvyx7chy4s1mym9kfw"; }
- { name = "icicles-cmd2.el"; sha256 = "187k0gmn34fn6w1dw9hjf4i788y01vk47z7ac11ar4bddwh97ddx"; }
- { name = "icicles-doc1.el"; sha256 = "1bw5dkymn2xdrfrp80am0gqi0szs0xihny4qmgzgx6hfbng351qh"; }
- { name = "icicles-doc2.el"; sha256 = "0zd94m1a8mwwbrbcrahxxx8q34w8cg5lna4yww4m1gliyklww86s"; }
- { name = "icicles-face.el"; sha256 = "1mlz8dq7bgzp2cf5j37i25yw90ry657d2m8r93rdj67h7l4wyxhj"; }
- { name = "icicles-fn.el"; sha256 = "1cdghvgsr0b7pdq4lmnfm6kwwcqbk4wqf168kf2sjajbpa24ix96"; }
- { name = "icicles-mac.el"; sha256 = "1w5sgzbp8hyjzrmqd8bwivszaayzh8dkyqa0d751adiwjfs9sq9m"; }
- { name = "icicles-mcmd.el"; sha256 = "1lf2galn3g52hfz61avlr4ifyn5b42dfbmyq78cpzlq7hzc928v2"; }
- { name = "icicles-mode.el"; sha256 = "0gci04j6vx0vqsh4skarznklam1xibj7pjvy67kaip8b6a4zx9ip"; }
- { name = "icicles-opt.el"; sha256 = "17g35ancml0mvywagzhjrgmlr4rhm1wgb5wg3fsqhhldib9qlz56"; }
- { name = "icicles-var.el"; sha256 = "0ydixg41h09yncp8g2nv8zsyv8avg1hj2f3mgrmd2kf0n27bw2nv"; }
+ { name = "icicles.el"; sha256 = "0wxak7wh0rrb3h77ay2vypbb53skcfbrv71xkajhax0w12q6zpaj"; }
+ { name = "icicles-chg.el"; sha256 = "1kqlhisg5g9ycylzqiwxrmmgfw2jw599wisz26wvi48lac2icgg7"; }
+ { name = "icicles-cmd1.el"; sha256 = "17cpw798bl6p77cmjl7lwdnxa1qpw4z1wacjq2mdc8fh81cyw3am"; }
+ { name = "icicles-cmd2.el"; sha256 = "15swxk7fr7wsqpf26xzbvyk12ikkvfcyh9w8wmnpc38dmpyq79rb"; }
+ { name = "icicles-doc1.el"; sha256 = "04j5qvj7pqnjh8h2y2sdgi7x55czdp9xn7yysr3bzcmr1rq5p4bz"; }
+ { name = "icicles-doc2.el"; sha256 = "1k8vfhi3fa4bzsxr074bw5q6srvq6z6hi61rzlxdw7pah6qf7hcz"; }
+ { name = "icicles-face.el"; sha256 = "1pvygqzmh6ag0zhfjn1vhdvlhxybwxzj22ah2pc0ls80dlywhi4l"; }
+ { name = "icicles-fn.el"; sha256 = "1sn56z5rjsvqsy3vs7af7yai0c0qdjvcxvwwc59rhswrbi6zlxz5"; }
+ { name = "icicles-mac.el"; sha256 = "1wyvqzlpq5n70mggqijb8f5r5q9y1hxxngp64sixy0xszy5d12dk"; }
+ { name = "icicles-mcmd.el"; sha256 = "05dniz6337v9r15w8r2zad0n2h6jlygzjp7vw75vvq8mds0acmia"; }
+ { name = "icicles-mode.el"; sha256 = "1xfv8nryf5y2gygg02naawzm5qhrkba3h84g43518r1xc6rgbpp6"; }
+ { name = "icicles-opt.el"; sha256 = "10n4p999ylkapirs75y5fh33lpiyx42i3ajzl2zjfwyr1zksg1iz"; }
+ { name = "icicles-var.el"; sha256 = "1r5gb01zg8nf2qryq9saxfpnzlymmppsk7w1g09lac35c87vh8yl"; }
];
forAll = f: map f modules;
in
stdenv.mkDerivation rec {
- version = "2017-10-28";
+ version = "2018-04-16";
name = "icicles-${version}";
srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs/download/${name}"; inherit sha256; });
diff --git a/pkgs/applications/editors/emacs-modes/melpa-generated.nix b/pkgs/applications/editors/emacs-modes/melpa-generated.nix
index 2a1a5cd320c..aec089f43de 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-generated.nix
@@ -673,12 +673,12 @@
ac-octave = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ac-octave";
- version = "20171122.943";
+ version = "20180405.2034";
src = fetchFromGitHub {
owner = "coldnew";
repo = "ac-octave";
- rev = "6d09b94a86f43de84c60e9a699b5e1be61c0f138";
- sha256 = "1kg5q0bw0ymynsn3j7bjavb6wr8b0bjwm6jfj254g80y1inn4bp4";
+ rev = "fe0f931f2024f43de3c4fff4b1ace672413adeae";
+ sha256 = "1yj5fapbp79k88k1cxrmmf91fb0j6s4s7f2dhk2afcf7z83mqkwb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/634bd324148d6b74e1098362e06dc512456cde31/recipes/ac-octave";
@@ -761,8 +761,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ac-rtags";
@@ -1426,12 +1426,12 @@
airline-themes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, powerline }:
melpaBuild {
pname = "airline-themes";
- version = "20170623.958";
+ version = "20180410.2106";
src = fetchFromGitHub {
owner = "AnthonyDiGirolamo";
repo = "airline-themes";
- rev = "0c0f8efbeaefa49ef04c0c4405b1ef79ecc5433e";
- sha256 = "08hkx5wf9qyh4d5s5z4v57d43qkzw6p8zsqijw92wy4kngv1gl78";
+ rev = "8b528fbae0e557461315bed82883275d58df41f2";
+ sha256 = "1xydgf9w0i2anpmjhy8m0zv1hql4gb37i11xfn6xzwna572z1ml9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/addeb923176132a52807308fa5e71d41c9511802/recipes/airline-themes";
@@ -1531,12 +1531,12 @@
alert = callPackage ({ fetchFromGitHub, fetchurl, gntp, lib, log4e, melpaBuild }:
melpaBuild {
pname = "alert";
- version = "20180122.1242";
+ version = "20180403.38";
src = fetchFromGitHub {
owner = "jwiegley";
repo = "alert";
- rev = "103d34c83fe77e46a6976dcaba3db678199e0c9c";
- sha256 = "1nbk768d8iqjf1mx956497hbjfxar144h3m3sd298byc54z8bvmf";
+ rev = "667d9c7848c723eb392ab9bacae07966da3e3504";
+ sha256 = "04nrl7kg5pprfdxjbqjyh7vw0vs22bplhhpaf30v3hw7k7nkc0ky";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/113953825ac4ff98d90a5375eb48d8b7bfa224e7/recipes/alert";
@@ -2673,12 +2673,12 @@
async = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "async";
- version = "20180119.533";
+ version = "20180408.844";
src = fetchFromGitHub {
owner = "jwiegley";
repo = "emacs-async";
- rev = "7279cc6bdba7bfcb53ca8f5471631ae8dc3918b3";
- sha256 = "1nmi2ykwbswj6qv2s38518nijmlhjd2jvhabybqs8smc152g58sw";
+ rev = "8bb64e398897d1cc000fc295c5157b4ad1a7bd5b";
+ sha256 = "04384akcxirvfcl5rb07hj5xaw2crsgnhbnwyh1dkmy56qak60a1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/async";
@@ -3534,12 +3534,12 @@
auto-virtualenvwrapper = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s, virtualenvwrapper }:
melpaBuild {
pname = "auto-virtualenvwrapper";
- version = "20170916.1304";
+ version = "20180408.310";
src = fetchFromGitHub {
owner = "robert-zaremba";
repo = "auto-virtualenvwrapper.el";
- rev = "0f2cc8ea8f211c7b88f852ae6ffe677914652b92";
- sha256 = "1vm2nf7i9v56v57r7ckz8i1y3fk5s302bcfglywqysm4b8k36mp8";
+ rev = "e2628408d4e67e1b1714cf7682cff9405e735c81";
+ sha256 = "1cj4a6yay02gvi04lyhnfb7gws8jrappprnv36mcqlq053202wij";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/02a209ae8f9fc68feb3bb64d32d129fedef2b80b/recipes/auto-virtualenvwrapper";
@@ -3786,12 +3786,12 @@
avk-emacs-themes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "avk-emacs-themes";
- version = "20180205.2254";
+ version = "20180406.2220";
src = fetchFromGitHub {
owner = "avkoval";
repo = "avk-emacs-themes";
- rev = "1a119d0b52f0755fa14ad4d8c6e00e2e720b7732";
- sha256 = "1im1bvrcy9163414328yfmsz2hb0whqxnd6wpmh8hvh6vpbmwaj7";
+ rev = "6abf91ecdaeb16a3a5529b0d5abef9756da1f68c";
+ sha256 = "0hvg8yp7prfl1n71lkyr9l43f3zm1zsh8n2mh26rmdw2chippr4d";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef362a76a3881c7596dcc2639df588227b3713c0/recipes/avk-emacs-themes";
@@ -3807,12 +3807,12 @@
avy = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "avy";
- version = "20180322.1333";
+ version = "20180415.1259";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "avy";
- rev = "2d613eb050d94c1cdfb403da7446883ce6d35baa";
- sha256 = "1dmn94bigw5xnxbwmrlyj810iqjgcvqp3qlsgszj6cbg2pv75sqf";
+ rev = "08370cdbc35ff41646461a02d6d9758dfce30c20";
+ sha256 = "08pgyj3mab6iqbb029wixvvjfc634iln0ij6lxnvpvgy4298iw9k";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/77fac7a702d4086fb860514e377037acedc60412/recipes/avy";
@@ -3933,12 +3933,12 @@
aws-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "aws-snippets";
- version = "20180213.835";
+ version = "20180410.845";
src = fetchFromGitHub {
owner = "baron42bba";
repo = "aws-snippets";
- rev = "619c9a401f873042e45547e8cf57f23d0c8947e4";
- sha256 = "19yrdsn76vscqgxmapxn3gv6nrxp7i20p37anylmjss3xkvblxn9";
+ rev = "a2ebae582a8c8a5f5f16dbc42ecd2ded9d70fca8";
+ sha256 = "08mbi5g321n4ir7a7ggxmh7qpl8pr06pg4rcsk8pklylvkf89k2w";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/485aa401a6a14cd4a916474d9a7df12cdf45d591/recipes/aws-snippets";
@@ -4146,6 +4146,27 @@
license = lib.licenses.free;
};
}) {};
+ banner-comment = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "banner-comment";
+ version = "20180403.1438";
+ src = fetchFromGitHub {
+ owner = "WJCFerguson";
+ repo = "banner-comment";
+ rev = "9b1c9a94f8b6789c890a7e7eedd6f60ad5aa4d52";
+ sha256 = "02wsnmzbb60d4a8bsb5kywdwcfsqb6chcchs5v2d0s3sacakbmnl";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/4bb69f15cb6be38a86abf4d15450a29c9a819068/recipes/banner-comment";
+ sha256 = "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc";
+ name = "banner-comment";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/banner-comment";
+ license = lib.licenses.free;
+ };
+ }) {};
bar-cursor = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "bar-cursor";
@@ -4546,12 +4567,12 @@
beeminder = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "beeminder";
- version = "20160209.1903";
+ version = "20180413.1229";
src = fetchFromGitHub {
owner = "Sodaware";
repo = "beeminder.el";
- rev = "a4e159250bac89bc25ced8523a5eac2a951cd5b6";
- sha256 = "0ki9q3ylssjabh15dr49k7dxv88snpj4564g0myp3c61qzyy82lk";
+ rev = "3fcee7a7003a37171ddb59171c7f4b5dd4b34349";
+ sha256 = "0phiyv4n5y052fgxngl3yy74akb378sr6manx21s360gnxzcblwd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/beeminder";
@@ -4781,8 +4802,8 @@
src = fetchFromGitHub {
owner = "cadadr";
repo = "elisp";
- rev = "8118551aaf0472900cdfdc13449b55b33ab56289";
- sha256 = "153cch134c6rvqfcpikidlpxcbxk8nys2ig1xxpbn9ncn4fqkaf3";
+ rev = "35424f7360f5110833b7a9f4f53907b9e222be85";
+ sha256 = "1xi56c8f2wcmldr76ylrcqsy0wf75pv74b0455ki84fq1fk4n08s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8b8308e72c4437237fded29db1f60b3eba0edd26/recipes/bibliothek";
@@ -5131,6 +5152,27 @@
license = lib.licenses.free;
};
}) {};
+ blacken = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "blacken";
+ version = "20180402.435";
+ src = fetchFromGitHub {
+ owner = "proofit404";
+ repo = "blacken";
+ rev = "528527c832710aa1ceeb4c42ef85b5a37d2e213a";
+ sha256 = "1my234bsv5db99hhr66n2yhh3knvv4xwg7q05y408qbhrcf3ya5l";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/69d9802996a338be937d61678f2cadf3497f6b85/recipes/blacken";
+ sha256 = "16lbs76jkhcq0vg09x1n8mrd4pgz5bdjsprr9260xr7g3dx8xacc";
+ name = "blacken";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/blacken";
+ license = lib.licenses.free;
+ };
+ }) {};
blgrep = callPackage ({ clmemo, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "blgrep";
@@ -6603,12 +6645,12 @@
call-graph = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, hierarchy, ivy, lib, melpaBuild, tree-mode }:
melpaBuild {
pname = "call-graph";
- version = "20180327.2003";
+ version = "20180403.2002";
src = fetchFromGitHub {
owner = "beacoder";
repo = "call-graph";
- rev = "f000f7f620eff965bf289216f66cfb27ddb1815d";
- sha256 = "1qgfz6v4yaa7c9cn82jqkh0s1mmzyr5zlrxd6g4hiv4f1pvf0is2";
+ rev = "31bfac00f33b8494fcf6c18a210dd7ed4b81a21d";
+ sha256 = "00ajq1xkm9hmk92vrnvmgkrs65jlx1rl1hxghf9id4gx09yy011s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a6acf099e2510c82b4b03e2f35051afc3d28af45/recipes/call-graph";
@@ -6670,8 +6712,8 @@
src = fetchFromGitHub {
owner = "ocaml";
repo = "ocaml";
- rev = "8767cbafb1390685d08f294496492b97996468a3";
- sha256 = "0by86qm6pic3d0iqqdswhdlgicg7nxmh3mqwn0pz38dwfa57rqky";
+ rev = "fe9a5215948b3636161262b275eca8b98ff1967b";
+ sha256 = "1nkqrbx86j2mj0jsap12jfihpw5lnrsxy711qn4g8n3abng4lnza";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
@@ -7068,8 +7110,8 @@
src = fetchFromGitHub {
owner = "andre-r";
repo = "centered-cursor-mode.el";
- rev = "75b479ffbfc5e3fed25d86a72afa2f1d2dcbd4b5";
- sha256 = "0xsnnjql7am94imr8v5aps2azlcvqn9lgq33cnwnwz6y8ffszmpf";
+ rev = "00fb47d227f9e211ec1c58161a501a1550c3a60d";
+ sha256 = "0yd78k28dp139a889q5nh8fdbc59jl227anasg5695bz8bkzavd1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9a7a28caba49a20413dec3c3d0cc9c36b859834d/recipes/centered-cursor-mode";
@@ -7173,8 +7215,8 @@
src = fetchFromGitHub {
owner = "cfengine";
repo = "core";
- rev = "fb827edc6fd0baa6502f5655dd743e59b71ff395";
- sha256 = "03aiqvzr9qmqsi9h9yjjqbvr9d7wchip9hmadhadr62cb43c9bc7";
+ rev = "bb460ccf2348873b7a84e99930feb038d0f9a95b";
+ sha256 = "1wgf2lpcpplxdabz0xbzq9j5va5zhxl22ns63d4jj7v86a77cg2y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c737839aeda583e61257ad40157e24df7f918b0f/recipes/cfengine-code-style";
@@ -7778,12 +7820,12 @@
cider = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, queue, seq, spinner }:
melpaBuild {
pname = "cider";
- version = "20180331.1751";
+ version = "20180413.51";
src = fetchFromGitHub {
owner = "clojure-emacs";
repo = "cider";
- rev = "c4f164329c96c03b0002a40f088163d05093d988";
- sha256 = "08fp9ys8clilm4my1jxpjzglbz1qijrjh71h0sjr2a4g0kzb071n";
+ rev = "a01115242ba839465e16892383133c21c350d5bd";
+ sha256 = "1b0p7dnrcgnjma4yk6fc3v21sxaz772wrc780sd5faa833z8wg16";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/55a937aed818dbe41530037da315f705205f189b/recipes/cider";
@@ -8006,6 +8048,27 @@
license = lib.licenses.free;
};
}) {};
+ citeproc = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, queue, s, string-inflection }:
+ melpaBuild {
+ pname = "citeproc";
+ version = "20180325.2358";
+ src = fetchFromGitHub {
+ owner = "andras-simonyi";
+ repo = "citeproc-el";
+ rev = "b15e3cadbcbbe777b809a32859e341e2ef212c13";
+ sha256 = "1axl3b31ylp8y2vsf853j8d8wb1wsizwi605qfxj5aj8xafbgbb5";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/20aa56e9a4809cee1082224b1b4e65921a48bda1/recipes/citeproc";
+ sha256 = "1qphg2bg7vvjzgvnsscbyf40llxxh4aa2s2ffk8vsbfd4p8208cq";
+ name = "citeproc";
+ };
+ packageRequires = [ dash emacs f queue s string-inflection ];
+ meta = {
+ homepage = "https://melpa.org/#/citeproc";
+ license = lib.licenses.free;
+ };
+ }) {};
cl-format = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cl-format";
@@ -8261,12 +8324,12 @@
clj-refactor = callPackage ({ cider, clojure-mode, edn, emacs, fetchFromGitHub, fetchurl, hydra, inflections, lib, melpaBuild, multiple-cursors, paredit, s, seq, yasnippet }:
melpaBuild {
pname = "clj-refactor";
- version = "20180330.213";
+ version = "20180411.43";
src = fetchFromGitHub {
owner = "clojure-emacs";
repo = "clj-refactor.el";
- rev = "b2304321c36275c54fea40560af470f9dc8de31f";
- sha256 = "0d4kvwmkqxz9vwrz0gy1z5037jqhvganh3cbrlgp7ljdzk97c6sr";
+ rev = "adffc6a4c61a9555744634598b47631760e91488";
+ sha256 = "19bi7pnsyqaahwsy6gr55k8kgjfimrjn3lriyzjh7jkhfsmm77bn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3a2db268e55d10f7d1d5a5f02d35b2c27b12b78e/recipes/clj-refactor";
@@ -8672,12 +8735,12 @@
cmake-ide = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, levenshtein, lib, melpaBuild, s, seq }:
melpaBuild {
pname = "cmake-ide";
- version = "20180320.413";
+ version = "20180413.329";
src = fetchFromGitHub {
owner = "atilaneves";
repo = "cmake-ide";
- rev = "5dea1e8e002f26fb43aedbed11b83dc80071b771";
- sha256 = "06nad57cp9wgyj3xfdah6hjhfffgqcblw5nz2pa0ay86kmwxcac1";
+ rev = "3d4da16226e8d4e53613feeebb5e21e6a7defed5";
+ sha256 = "1d0nxqhx6ssld92wlv8c40m655zpf622a0ns4v78397nfm135khq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/17e8a8a5205d222950dc8e9245549a48894b864a/recipes/cmake-ide";
@@ -8697,8 +8760,8 @@
src = fetchFromGitHub {
owner = "Kitware";
repo = "CMake";
- rev = "323d6b4c75baa450fe12f8609cd8f9db2260b1db";
- sha256 = "0bsgrbnm8vg8mzkb8p93ba8ss5cg5hkwrag5a6wa4r2ya05ww6gl";
+ rev = "ccd17a557cbf8ada18207a72eea78d2adcc9d752";
+ sha256 = "1i85zb5j3ckn5b9xybczf6k42vpwsyq3xyzzarq3w775iyjlnkfj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
@@ -9470,12 +9533,12 @@
company = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "company";
- version = "20180329.1441";
+ version = "20180415.2135";
src = fetchFromGitHub {
owner = "company-mode";
repo = "company-mode";
- rev = "ddfdcb78c1f7abc25e1a2db1eb68721b20d00a95";
- sha256 = "0s0yqafd1awavlv52gzzi01mwfyjdb24iqi9jw53hw01s5823wmg";
+ rev = "46680da66a3ba70c7b2371832f8b8d9734dec554";
+ sha256 = "03q76dvjka0xw91gzin848virwpm9dv71y3y2p3m168y7chk4g7s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/96e7b4184497d0d0db532947f2801398b72432e4/recipes/company";
@@ -9621,6 +9684,27 @@
license = lib.licenses.free;
};
}) {};
+ company-box = callPackage ({ company, dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "company-box";
+ version = "20180413.1651";
+ src = fetchFromGitHub {
+ owner = "sebastiencs";
+ repo = "company-box";
+ rev = "a27b632c1bb92de3415cea08c7885f3dc9ce30eb";
+ sha256 = "1p71yalry5linxdb5xiyig8wlb9nw0c5nmlkdxc1l0gyhr8lrzci";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/a54879f4dd4dcb6867680567731547d604ad02bb/recipes/company-box";
+ sha256 = "0v39gja3jp8b2xfn9da93xsh8mihizwbg0gqp2yyczaxjm8ga23i";
+ name = "company-box";
+ };
+ packageRequires = [ company dash dash-functional emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/company-box";
+ license = lib.licenses.free;
+ };
+ }) {};
company-c-headers = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "company-c-headers";
@@ -10265,8 +10349,8 @@
src = fetchFromGitHub {
owner = "lijunsong";
repo = "pollen-mode";
- rev = "de762bd7f9760185dae8ef025ca9a9126ae78de0";
- sha256 = "19bi50nlmwnh4kz3b1hrgc7ks0g84bld9aifws2l3wyc3xsj8cqa";
+ rev = "df4eab5b490cb478a092e6bab6b07f9e2f9c6fad";
+ sha256 = "0x8bnf0n109ard5zdmma04w0wv5jb1r7qh5smsa1kjvws98gnp57";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/97bda0616abe3bb632fc4231e5317d9472dfd14f/recipes/company-pollen";
@@ -10376,8 +10460,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/company-rtags";
@@ -10411,22 +10495,22 @@
license = lib.licenses.free;
};
}) {};
- company-solidity = callPackage ({ cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ company-solidity = callPackage ({ cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild, solidity-mode }:
melpaBuild {
pname = "company-solidity";
- version = "20180328.1656";
+ version = "20180407.1344";
src = fetchFromGitHub {
owner = "ssmolkin1";
repo = "company-solidity";
- rev = "0d15727a29adaeb87ce30459053bf434c9d8b6d0";
- sha256 = "1rg7x6px3pzckzyivg7x2ml6r18c6anbjrk9y6xxsxmy5wvbml37";
+ rev = "32bfe4c8fe282c30ebf4f5cf1f9285f151c8e6d4";
+ sha256 = "0qgvxpij5zwwvdqzi2yf2f52vgmky4xwz9v4smrkcx29k88ivlg5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef246601ff6d92d6dfcd809f637e50d9838da0b8/recipes/company-solidity";
sha256 = "076z5jqh486k2lkh9rgbhs71bws4fba68pjybr9yyf0sdc5m7kc6";
name = "company-solidity";
};
- packageRequires = [ cl-lib company ];
+ packageRequires = [ cl-lib company solidity-mode ];
meta = {
homepage = "https://melpa.org/#/company-solidity";
license = lib.licenses.free;
@@ -10561,12 +10645,12 @@
company-web = callPackage ({ cl-lib ? null, company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, web-completion-data }:
melpaBuild {
pname = "company-web";
- version = "20171111.1049";
+ version = "20180402.455";
src = fetchFromGitHub {
owner = "osv";
repo = "company-web";
- rev = "935c65de0411ebbcb4f2223f31e756e093eaae07";
- sha256 = "0kw0fc1lg7qd23fx26y9m543sql32n1dlvr4rg7bmq6im7dwz4hy";
+ rev = "f0cc9187c9c34f72ad71f5649a69c74f996bae9a";
+ sha256 = "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/company-web";
@@ -10645,12 +10729,12 @@
composer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-runtime, request, s, seq }:
melpaBuild {
pname = "composer";
- version = "20180111.942";
+ version = "20180415.743";
src = fetchFromGitHub {
owner = "emacs-php";
repo = "composer.el";
- rev = "e34ebe795d267e28965c85bd84cbb16b18165bd8";
- sha256 = "1vqjraldl2an10q1w91l7rx66mpsvqvjgg3j1k7xcvw07570aabl";
+ rev = "1d43edd8079e84df5e1b46c65e6783cb3ff9debd";
+ sha256 = "0k6345mc2ppckbbmji4wkynlfgy00kr945ah8j2b62hqgm73h575";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/composer";
@@ -11065,12 +11149,12 @@
counsel = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, swiper }:
melpaBuild {
pname = "counsel";
- version = "20180328.1326";
+ version = "20180415.905";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "swiper";
- rev = "f8cdaa7f3c733b88865650d10d9138bcb40a9ba8";
- sha256 = "0gfaj5ygjmvrmghyqghp7i6wf5abiayb28av4291plpyl0liz78h";
+ rev = "1181d0f7acb9e77a15fa7e62cb1027979185c853";
+ sha256 = "0vsl346axdlkcv96cxlciw7bmvxwl2ficjgw9nxrsvhsjsy7md02";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/06c50f32b8d603db0d70e77907e36862cd66b811/recipes/counsel";
@@ -11335,22 +11419,22 @@
license = lib.licenses.free;
};
}) {};
- cov = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
+ cov = callPackage ({ elquery, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "cov";
- version = "20170405.1508";
+ version = "20180415.1331";
src = fetchFromGitHub {
owner = "AdamNiederer";
repo = "cov";
- rev = "519239cc37d3ad0204fecac99f42e1694ce57d3d";
- sha256 = "1kb2rmxx91q4cwm1npzyiykwg5jxhhz7waykh5vqxr5y81hr5nza";
+ rev = "e6731ddf16be343a24449cf7dca92f382c8a831b";
+ sha256 = "09p61ni7vkwl679ysl9aibw0b7qi5v9vpgvg08vj00fp5a82rzsq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d0f35ce436ac157955d6f92de96e14bef9ad69e3/recipes/cov";
sha256 = "02wk8ikanl5lcwqb9wqc8xx5vwzhn2hpqpxdchg5mdi7fifa1rni";
name = "cov";
};
- packageRequires = [ emacs f s ];
+ packageRequires = [ elquery emacs f s ];
meta = {
homepage = "https://melpa.org/#/cov";
license = lib.licenses.free;
@@ -11485,12 +11569,12 @@
cquery = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }:
melpaBuild {
pname = "cquery";
- version = "20180319.2313";
+ version = "20180413.938";
src = fetchFromGitHub {
owner = "cquery-project";
repo = "emacs-cquery";
- rev = "383656d3cb368481594fd7a13d0395a8640afbac";
- sha256 = "1qdicqwafnhfqkl3ihvc67w4wnhyp089wbf54v1plrcw75ywdlmf";
+ rev = "7f48de485c5f4ca0d55b93307763889ce2d7c5c4";
+ sha256 = "1cb41f0can8mslg80v1np5wvq9c0vl0px5mgy0zyzhajf9zqszgn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3cd3bffff0d2564c39735f844f9a02a660272caa/recipes/cquery";
@@ -11993,8 +12077,8 @@
src = fetchFromGitHub {
owner = "mortberg";
repo = "cubicaltt";
- rev = "7f3c7a7cfe60f98da46e6958bec62bac4675ccd2";
- sha256 = "096523m3spfqw72zp2rzcf1b54997yzs7qxwvr3awhicah1z6mv0";
+ rev = "bf8253f482917e390fe8b44ceaf308405afeefc6";
+ sha256 = "1ff4gq1bjm0j1wi58lsv5fazkjcq4ay01n4k55nhd34pgk0rbnv0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1be42b49c206fc4f0df6fb50fed80b3d9b76710b/recipes/cubicaltt";
@@ -12245,8 +12329,8 @@
src = fetchFromGitHub {
owner = "cython";
repo = "cython";
- rev = "d52624db23a1b13aad75691c8ad3e9b0a1b34439";
- sha256 = "1fyxsvl1qr8i3n92ydkn5b3iw6xk2hsp6rbchjhgymx4g45zx4n0";
+ rev = "29961acc1c64710127a5191af6c039cb1fa22203";
+ sha256 = "00qwi8frmhas5qgs9i8hx067d60zpycnw3pbd4xgn9nis8fjjnw6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode";
@@ -12280,22 +12364,22 @@
license = lib.licenses.free;
};
}) {};
- d-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ d-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "d-mode";
- version = "20180215.727";
+ version = "20180409.1043";
src = fetchFromGitHub {
owner = "Emacs-D-Mode-Maintainers";
repo = "Emacs-D-Mode";
- rev = "8d0ed0460189d0e91fa454866c1ed7b9b36f99e2";
- sha256 = "0pdg6s10vcr95r2azin1svkdgn8grlgwi4di30d0f3vcq8jmmfhi";
+ rev = "09745ba713e08a02fd81c01824aefa6731992a6f";
+ sha256 = "0l1rpdfjhwbhzrs1z54s57j4zahx62mym9rdld0rb41ph3k4l49q";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3c13e9ccc358743de660b1f0e89d6bb709c42bff/recipes/d-mode";
sha256 = "060k9ndjx0n5vlpzfxlv5zxnizx72d7y9vk7gz7gdvpm6w2ha0a2";
name = "d-mode";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/d-mode";
license = lib.licenses.free;
@@ -12346,12 +12430,12 @@
daemons = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "daemons";
- version = "20180310.1147";
+ version = "20180408.301";
src = fetchFromGitHub {
owner = "cbowdon";
repo = "daemons.el";
- rev = "75b54be70a909282b20c872b5f01d30e18e19f84";
- sha256 = "0jv1i66b035yvj2mj83ihylk6vv7skljnr6kxa15zzj4daw9462c";
+ rev = "9e6868e2559ea7d70fbad8c419798124f406cc40";
+ sha256 = "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1f780485e72ae2885f698fdab0156855f70831f1/recipes/daemons";
@@ -12430,12 +12514,12 @@
dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lcr, lib, melpaBuild, s }:
melpaBuild {
pname = "dante";
- version = "20180224.1246";
+ version = "20180414.1306";
src = fetchFromGitHub {
owner = "jyp";
repo = "dante";
- rev = "33c8c4afac616e6de30111f8a7f11d572496a838";
- sha256 = "0zv6vqzw299ydgwxiky8b2nlb8cyzzw9zsx44ixaqqf73f63bv1n";
+ rev = "18a2c4a833f9ece01ccfb5910455fc2f0b0de986";
+ sha256 = "09a8gwnh2281kjc1rk6ba5clk020hmz11pz36iy99y1bya043794";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante";
@@ -12661,12 +12745,12 @@
dash = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dash";
- version = "20180310.1317";
+ version = "20180413.30";
src = fetchFromGitHub {
owner = "magnars";
repo = "dash.el";
- rev = "87d5feac1a08ea09e55e52442dc5e497817b4f08";
- sha256 = "05rm9rs4083ccsscwi7kl094ij5lz7hgs9kvxdsrjmvxj4fqdqm7";
+ rev = "a74f4cfcdc8d0642a9f602ad494f0354f27dacc9";
+ sha256 = "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash";
@@ -12707,8 +12791,8 @@
src = fetchFromGitHub {
owner = "magnars";
repo = "dash.el";
- rev = "87d5feac1a08ea09e55e52442dc5e497817b4f08";
- sha256 = "05rm9rs4083ccsscwi7kl094ij5lz7hgs9kvxdsrjmvxj4fqdqm7";
+ rev = "a74f4cfcdc8d0642a9f602ad494f0354f27dacc9";
+ sha256 = "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash-functional";
@@ -13207,12 +13291,12 @@
demo-it = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "demo-it";
- version = "20170628.1503";
+ version = "20180403.2032";
src = fetchFromGitHub {
owner = "howardabrams";
repo = "demo-it";
- rev = "1e8b42ff6479fa541eeec5699b4727af136d40da";
- sha256 = "1x9crsc8n5pqyp60h46gz6wz98qaj3bygk11vd39qpfh2hxdxxi6";
+ rev = "4f74e6f1bb6519587303e20fe59470853b1a0352";
+ sha256 = "15j4f7jjjhrcjycxwzqnwqhm3fyvjnisd41k5lw13dnhbmp1gzx6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1dec5877db00c29d81d76be0ee2504399bad9cc4/recipes/demo-it";
@@ -13333,12 +13417,12 @@
dhall-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dhall-mode";
- version = "20171204.1327";
+ version = "20180409.1255";
src = fetchFromGitHub {
owner = "psibi";
repo = "dhall-mode";
- rev = "bc6aec777594beeac6ba4c6dbfb1c889341589c9";
- sha256 = "0vfkdj1fyykmylh6gg9igpiylb2n7bd4iqq1gl5mdqid8gsv4sgl";
+ rev = "7c9bbb7c1f8ca7f700b45c26a64ca8e0143543ae";
+ sha256 = "12swhpsl86pi21smvggqszn1wl71wrw15x7nybcmfgjb4d403716";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c7ab435077b2f47d75ddc0ff10c64ee2b46044e2/recipes/dhall-mode";
@@ -13693,8 +13777,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-avfs";
@@ -13714,8 +13798,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6aab23df1451682ff18d9ad02c35cb7ec612bc38/recipes/dired-collapse";
@@ -13794,12 +13878,12 @@
dired-fdclone = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dired-fdclone";
- version = "20170413.747";
+ version = "20180402.2308";
src = fetchFromGitHub {
owner = "knu";
repo = "dired-fdclone.el";
- rev = "f55b69e5cd1d45699a0f37468ac8e20fa7a0cff6";
- sha256 = "193mf90d5vds8hswkxasda267ifr6w55vn4pph15lkbmp33wa50n";
+ rev = "903d7a736d240ef7352989a4e5d0ff9129c2ee3c";
+ sha256 = "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8a0ddc10b11772d72a473e8d24ab4641bf4239a4/recipes/dired-fdclone";
@@ -13840,8 +13924,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-filter";
@@ -13861,8 +13945,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-hacks-utils";
@@ -13987,8 +14071,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8994330f90a925df17ae425ccdc87865df8e19cd/recipes/dired-narrow";
@@ -14008,8 +14092,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-open";
@@ -14050,8 +14134,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-rainbow";
@@ -14067,12 +14151,12 @@
dired-ranger = callPackage ({ dash, dired-hacks-utils, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dired-ranger";
- version = "20171229.753";
+ version = "20180401.1506";
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c03f6f8c779c8784f52adb20b266404cb537113a/recipes/dired-ranger";
@@ -14134,8 +14218,8 @@
src = fetchFromGitHub {
owner = "Fuco1";
repo = "dired-hacks";
- rev = "f0628fb58ae25563a5bba211f613f8bd7e23fabd";
- sha256 = "02dwazx62297wyyxxvb1zw2yz031lsw2h9kc1zgn63ra33kb4b2a";
+ rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+ sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d6a947ac9476f10b95a3c153ec784d2a8330dd4c/recipes/dired-subtree";
@@ -14235,12 +14319,12 @@
direnv = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }:
melpaBuild {
pname = "direnv";
- version = "20180307.748";
+ version = "20180410.203";
src = fetchFromGitHub {
owner = "wbolster";
repo = "emacs-direnv";
- rev = "78bb6894348b1d958aa8947837db4b3bceaa55bb";
- sha256 = "1i37pylq6gh9144vhf0lxqnkzcwqhaq7vm18f64qajvcv3rj5s84";
+ rev = "bb0de5e8f662c3f522b931c6e2c2340e4ed682af";
+ sha256 = "1mk35k0iiyxk5s8ymcx94fhyz188i8r51r73vnndm868g86yslzp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5419809ee62b920463e359c8e1314cd0763657c1/recipes/direnv";
@@ -14759,12 +14843,12 @@
djangonaut = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild, pythonic, s }:
melpaBuild {
pname = "djangonaut";
- version = "20180325.429";
+ version = "20180403.302";
src = fetchFromGitHub {
owner = "proofit404";
repo = "djangonaut";
- rev = "7be5cb25bee8a9410d5c95139704620c68fd6efa";
- sha256 = "1vpj5g7x688y3qzhv6566rkgwdzi0qi1pgj4xqv0059a29i9z4yz";
+ rev = "501ecb3cd927975a19ed8beeacb326e01715b78c";
+ sha256 = "1h47skyx9yfcgvj5k53h3c40am191dwjw5hyq9jgmc3fkg2dr95j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0c1281f59add99abf57bc858d6e0f9b2ae5b3c5c/recipes/djangonaut";
@@ -14948,12 +15032,12 @@
docker = callPackage ({ dash, docker-tramp, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s, tablist }:
melpaBuild {
pname = "docker";
- version = "20180222.717";
+ version = "20180416.911";
src = fetchFromGitHub {
owner = "Silex";
repo = "docker.el";
- rev = "ec2b07255e273639ff76303778661f81c5b74000";
- sha256 = "0nlf3rw9xa9hggqkw6nxfswbqlnsgbliz9z652kp7c9hfikfmcsj";
+ rev = "6df5799e358cfd8714bf9aff8368865a5bcf9691";
+ sha256 = "091p9wvrnhz42azg9g9ybc08s4gf1fxwjzxc3ar530wc56kdmd7p";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6c74bf8a41c17bc733636f9e7c05f3858d17936b/recipes/docker";
@@ -15040,12 +15124,12 @@
dockerfile-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "dockerfile-mode";
- version = "20171124.1647";
+ version = "20180410.936";
src = fetchFromGitHub {
owner = "spotify";
repo = "dockerfile-mode";
- rev = "4ab78f678e9ee40c7c5729dc8f1f5c1a847be2e7";
- sha256 = "0dc3pfqf6nrwnqsiyn49l0pgq7rm31kciwsqagnrjnc85nnbpf9m";
+ rev = "818e6946fcf2d58438ab78ea06761a372cc5435a";
+ sha256 = "0mqb09jcqi74hbn7869gng85sac38mc1hylzcwh7d5qlsyl9dg08";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1406f5a24115d29e3b140c360a51b977a369e4f9/recipes/dockerfile-mode";
@@ -15334,12 +15418,12 @@
dracula-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dracula-theme";
- version = "20170412.845";
+ version = "20180416.652";
src = fetchFromGitHub {
owner = "dracula";
repo = "emacs";
- rev = "62df5de68c73d34faaa0191a92ce3ebce589bf24";
- sha256 = "0wpbscqaszr2mg0hijamcz6l9nknsi12mwdbib16ghlh6y9mj4ia";
+ rev = "74094e6fd5d0f15b92d82c73b3b3d9f13949d5dd";
+ sha256 = "0apimfivs0g4m9qy1m3c8id6ycr2lwxdpd00crxbka284g440nzj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d63cb8906726f106e65f7d9895b49a38ffebf8d5/recipes/dracula-theme";
@@ -15837,12 +15921,12 @@
e2ansi = callPackage ({ face-explorer, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "e2ansi";
- version = "20180327.1323";
+ version = "20180403.1215";
src = fetchFromGitHub {
owner = "Lindydancer";
repo = "e2ansi";
- rev = "e7f8512c2c6be2b1c4cc22f00d41d073562c2249";
- sha256 = "1q4ld4qk230yglqfmgl9dg45kn1252yfrw8pjhm1m361pypcnlw8";
+ rev = "f886e687d50ff58063a92d40623f2400fa913af0";
+ sha256 = "0wg16hdmhbhll0ffp2hrqmr12ddai2s6gql52q6pz9k3lw6v0d5m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5e655a3fdfae80ea120cdb2ce84dd4fd36f9a71e/recipes/e2ansi";
@@ -16089,12 +16173,12 @@
easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }:
melpaBuild {
pname = "easy-hugo";
- version = "20180326.2215";
+ version = "20180416.749";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-hugo";
- rev = "161354d0f06e2cdbe63610fb11880ae54e050181";
- sha256 = "12dxb0kzb02h6zal65n6bviy3zdkqjfbzsf7ncsbbmq8f1xrajmc";
+ rev = "b01585991ca1885e9cf10dc41481116feb091c89";
+ sha256 = "1nac2al4hi4lcarj325957jgkkfgfkgpw6mzmbcqzqvy02r2v7g4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo";
@@ -16110,12 +16194,12 @@
easy-jekyll = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "easy-jekyll";
- version = "20180327.342";
+ version = "20180416.811";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-jekyll";
- rev = "faeff895ab2aa0ee9c6df18046817e8a3f0b62a1";
- sha256 = "1dp1r16rr5gqbh3aw900v2jz146c3qnlbjf5k75fazdglkbnagxk";
+ rev = "670c289d7dabc9e991ba78cdde17fb659f23eb50";
+ sha256 = "1myqhny6v5xdz55xi1ayfash5r3ihkyy2cykwhjkrpp339695bxf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3f281145bad12c27bdbef32ccc07b6a5f13b577/recipes/easy-jekyll";
@@ -16236,12 +16320,12 @@
ebib = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, parsebib, seq }:
melpaBuild {
pname = "ebib";
- version = "20180213.531";
+ version = "20180416.350";
src = fetchFromGitHub {
owner = "joostkremers";
repo = "ebib";
- rev = "cbad0a51d7905712201d83e9f4f52a7bb047652f";
- sha256 = "1jmg63q4msy83nr0xzivay9n8nv48kawqj5jxlfq83fwkvnk1szm";
+ rev = "22709d2b5e973b321dc8412f9a26acb156a076e1";
+ sha256 = "1xh7gmshn1ra027pqbvc06qxjs49ijby0kiz37qdqz7rvq2xgl6n";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/ebib";
@@ -16660,8 +16744,8 @@
src = fetchFromGitHub {
owner = "stsquad";
repo = "emacs_chrome";
- rev = "f01f5775760d73a8b0975d8caf009c3b1e7b2229";
- sha256 = "1rri1h1ilhmyspp8krbqh2qz4f4wigmxk8kwvg39pr4mmma3dz4f";
+ rev = "e1f86b4ff0b8b872a121287bde4875a7c3c4f8e2";
+ sha256 = "0vxahv098bh3bk8iphj7nvvajf31mc5yr9l1fzs127qvy2x62b0v";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d98d69008b5ca8b92fa7a6045b9d1af86f269386/recipes/edit-server";
@@ -16698,12 +16782,12 @@
editorconfig = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "editorconfig";
- version = "20180329.2148";
+ version = "20180408.2210";
src = fetchFromGitHub {
owner = "editorconfig";
repo = "editorconfig-emacs";
- rev = "f316d65a0f565aceb06c39926c20ab5533399eed";
- sha256 = "17kx6x7yw951gg0fnjr18ihdxg2yvpmbirqn6gdc83yz3i3gm0kf";
+ rev = "35e94de8223c407901548989cf4c9547ba692ffa";
+ sha256 = "16d8njpvcsc845mbjyzjskkdgbvcy7m4lvy87sl14fznb12fims6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/50d4f2ed288ef38153a7eab44c036e4f075b51d0/recipes/editorconfig";
@@ -16899,8 +16983,8 @@
src = fetchFromGitHub {
owner = "egisatoshi";
repo = "egison3";
- rev = "94b0e8e2066f3910d8630f9152c7618e8654fb96";
- sha256 = "0z9g2qqn3dxw79qv93jsl7jpn05fxd2mafxwg3yb8hnd8xlnb7jy";
+ rev = "2f8f744bd0a8d1c307922c6636f1c337d45a55bc";
+ sha256 = "1ds0fxi12z3cls0wavyq5anw2jfhmc2a6mx3g4mnxfr39sjr4q2r";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f543dd136e2af6c36b12073ea75b3c4d4bc79769/recipes/egison-mode";
@@ -16977,12 +17061,12 @@
ein = callPackage ({ auto-complete, cl-generic, dash, deferred, fetchFromGitHub, fetchurl, lib, melpaBuild, request, request-deferred, s, skewer-mode, websocket }:
melpaBuild {
pname = "ein";
- version = "20180311.1029";
+ version = "20180414.1838";
src = fetchFromGitHub {
owner = "millejoh";
repo = "emacs-ipython-notebook";
- rev = "115c16eb9f38447790a75c71e67036c5f4be15e0";
- sha256 = "112wnfhn468gfgac1vhclm6lycsp904wmf60akcng71fqgvyzcda";
+ rev = "ed4ae8006ca58c39c5e09925fb51c0f3529cb199";
+ sha256 = "0clww9329ysipdby8d3qwkx7pmrls075j0kpsqw3h8mm9hb48wgj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/215e163755fe391ce1f049622e7b9bf9a8aea95a/recipes/ein";
@@ -17054,8 +17138,8 @@
src = fetchFromGitHub {
owner = "kostafey";
repo = "ejc-sql";
- rev = "7601c4492fd3d896bf6ef6624f4bfad2c25bd57d";
- sha256 = "17cs6lzkvwqn3qnz31dd2r6lpvmsrib75ryi1dsd8m2f1z5f1pwh";
+ rev = "dac78aa9fd1979a0c6caccbe3698cad5f0e32d9f";
+ sha256 = "099lkldwxnw7ghpj42z07i1bv7jz8438xq7mv4vz6s2d6qwc07lq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8f2cd74717269ef7f10362077a91546723a72104/recipes/ejc-sql";
@@ -17407,12 +17491,12 @@
elcord = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "elcord";
- version = "20180306.1515";
+ version = "20180411.1207";
src = fetchFromGitHub {
owner = "Mstrodl";
repo = "elcord";
- rev = "3071250488613d8dbd79daf81ddbe3bad4b87001";
- sha256 = "0lcs0713r4vcln2im53mkfwcibr3j7ygs467rfgf163kd979gp5c";
+ rev = "0cef4ca13b00d79507292d5591be8ffb7df5a9ca";
+ sha256 = "1571r8iwrf4dagjr2pv7dgs1i0f20nq6jdkxm2dlwvkblcnlx3fm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cf2c52366a8f60b68a33a40ea92cc96e7f0933d2/recipes/elcord";
@@ -17645,12 +17729,12 @@
elfeed-protocol = callPackage ({ cl-lib ? null, elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "elfeed-protocol";
- version = "20180330.344";
+ version = "20180409.813";
src = fetchFromGitHub {
owner = "fasheng";
repo = "elfeed-protocol";
- rev = "12283230ffa5849e688350d7895f4c33c5f6d817";
- sha256 = "034m1vrnbp0pw7nd2jq2l6cj7ffmb6np7n793l75284xnvayih7g";
+ rev = "611a1f57373e3692abf5122652ea7f6f96d3f6ec";
+ sha256 = "0z9xij39p6m2855ksk40qaf830d04smhl3ag9gjb4fhzvw671k76";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3f1eef8add7cd2cfefe6fad6d8e69d65696e9677/recipes/elfeed-protocol";
@@ -17729,12 +17813,12 @@
elisp-def = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "elisp-def";
- version = "20180331.1213";
+ version = "20180410.224";
src = fetchFromGitHub {
owner = "Wilfred";
repo = "elisp-def";
- rev = "7a9eb5a54d08a97394a36948071e6985cd25dabf";
- sha256 = "1pqv8fn94g57wy85fn72jfny61wfgrfmwr5s06g310g27bd3ram9";
+ rev = "ff0730b8110f776862b29bf0b66e396fab2aaafb";
+ sha256 = "1zdbb1mgmb8hkzsmp6l4mv61831bw8ybfsfcwalnvrw5fvfwpaik";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1f027b844efdc5946d2ad80d7052a8f3b96aac3d/recipes/elisp-def";
@@ -18170,12 +18254,12 @@
elpy = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }:
melpaBuild {
pname = "elpy";
- version = "20180330.350";
+ version = "20180415.1232";
src = fetchFromGitHub {
owner = "jorgenschaefer";
repo = "elpy";
- rev = "17ea784c95b04df2cc78b17102a076b02cf89134";
- sha256 = "0gckilh50n7y7mfhadxlamks1136h3f4fa2670xmmm6mzxamn9wn";
+ rev = "911d1c58df1c0ff9ce8057d07b13c06759f2e0e4";
+ sha256 = "0cyk2467gcxz0vf63p0db9y6rij9hb7251lv6s054mzy3kbcn7zm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy";
@@ -18787,11 +18871,11 @@
emms = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "emms";
- version = "20180328.753";
+ version = "20180412.639";
src = fetchgit {
url = "https://git.savannah.gnu.org/git/emms.git";
- rev = "ffd8c0e8a7649d4e3a0d4f9d65e114346145a2de";
- sha256 = "0ijhwvkngkgg0npz5rnzynpx60rshizw8lpf137lvqx5b07ianr9";
+ rev = "9b7b50a89bc4f9df7f9edd6e939508288f0ffa9b";
+ sha256 = "0v271gk6q77zs0gdp9asbqd8alrn6ifxzzjkqb3hd4xdafv35sf3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms";
@@ -18891,12 +18975,12 @@
emms-player-mpv = callPackage ({ emms, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "emms-player-mpv";
- version = "20180210.310";
+ version = "20180415.1958";
src = fetchFromGitHub {
owner = "dochang";
repo = "emms-player-mpv";
- rev = "6d526fe618c3cebf7fbc5f0d3f0a225de16a76c7";
- sha256 = "0jq67lngpz7iqwqfsl95r5p26cnnq7ldcj534nm86hwm6jfij564";
+ rev = "c7efefd0b41fa910436a91eb3bca4db3a85ad940";
+ sha256 = "0h40nhrzndzhdq3ra8bzqg3gczbmjf010n0nan6dril427qvxdjw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9679cb8d4b3b9dce1e0bff16647ea3f3e02c4189/recipes/emms-player-mpv";
@@ -19239,12 +19323,12 @@
enh-ruby-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "enh-ruby-mode";
- version = "20180331.256";
+ version = "20180403.1251";
src = fetchFromGitHub {
owner = "zenspider";
repo = "enhanced-ruby-mode";
- rev = "7f892339f8bb48b1dc86f3d36ab47b65cf28f8c7";
- sha256 = "1l1fr215z83v417lnbbf7z68fjbzf3k9c7d8cyzh0zijyp8y1dpw";
+ rev = "fd50e71913e4dc714f71020701ab398a18b524b6";
+ sha256 = "0al8bbhfjxqh40hkpiaziz5vsfy2m5saj7wcvs6xivz1ph5ass0b";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cd1ac1ce69b77b11f34c4175611a852e7ec0806c/recipes/enh-ruby-mode";
@@ -19624,12 +19708,12 @@
erc-hl-nicks = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erc-hl-nicks";
- version = "20160202.1150";
+ version = "20180415.1246";
src = fetchFromGitHub {
owner = "leathekd";
repo = "erc-hl-nicks";
- rev = "be181920ce6af0ab5d00d1c638e4e598b3998643";
- sha256 = "1k0g3bwp3w0dd6zwdv6k2wpqs2krjayilrzsr1hli649ljcx55d7";
+ rev = "756c4438a8245ccd3e389bf6c9850ee8453783ec";
+ sha256 = "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/erc-hl-nicks";
@@ -19645,12 +19729,12 @@
erc-image = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erc-image";
- version = "20180206.941";
+ version = "20180407.1545";
src = fetchFromGitHub {
owner = "kidd";
repo = "erc-image.el";
- rev = "9f4d7b93a3c7e12ac935b50943177923a8c01d22";
- sha256 = "0dd2v91rp3lai10258bszpd9wsa1lvx08xspsnijv64axh73yf7r";
+ rev = "4ad26a06c8faf106172a0f8e472c677adca60542";
+ sha256 = "0280pijlnm071c2lh9z55w1xzgphfjq4zbl29r7igscy7q5dc60z";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/erc-image";
@@ -20006,8 +20090,8 @@
src = fetchFromGitHub {
owner = "erlang";
repo = "otp";
- rev = "f99860259ee557851acc865519a315f04d1d4d51";
- sha256 = "02vba3597wlxv7jf8samds6pp2x3z0w39nh2jnszfnqgqwl16b8d";
+ rev = "40dc6b9fed7d51a204e0d69b7bba7e8cb6496ae5";
+ sha256 = "1ndzx4alfwc437d4j0bifgc0pignxs0nvwp4i2fdrpljcf0x0nxa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang";
@@ -20023,12 +20107,12 @@
eros = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "eros";
- version = "20161221.826";
+ version = "20180414.2318";
src = fetchFromGitHub {
owner = "xiongtx";
repo = "eros";
- rev = "a42e45c9b2397156c684330b0fc90ee0eba773f5";
- sha256 = "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4";
+ rev = "dd8910279226259e100dab798b073a52f9b4233a";
+ sha256 = "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eros";
@@ -20086,11 +20170,11 @@
ert-junit = callPackage ({ ert ? null, fetchgit, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ert-junit";
- version = "20180208.935";
+ version = "20180407.1243";
src = fetchgit {
url = "https://bitbucket.org/olanilsson/ert-junit";
- rev = "e0cd3c21292e4a80fa8a9648981b61e62a996e80";
- sha256 = "0i6962j2k6qmdlrw2m5jv2pyxvciyawd954q462nv64cddaa5581";
+ rev = "8d7d703332e3a41bfc59de44fa8832435ff1633b";
+ sha256 = "1mbbv18pviirf220wjzfjlig8i3jwcl1bpv5awzvyzg2lm3h1nbc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/27c627eacab54896a1363dbabc56250a65343dd8/recipes/ert-junit";
@@ -20211,12 +20295,12 @@
esa = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "esa";
- version = "20170427.845";
+ version = "20180403.825";
src = fetchFromGitHub {
owner = "nabinno";
repo = "esa.el";
- rev = "8bd011cd1861113f54ad155d3c62725e1dcd37e7";
- sha256 = "1a5mrz3m0gy5r7dcw31s488jgfhrp4axcnsmma40q2x3harp0hsk";
+ rev = "417e0ac55abe9b17e0b7165d0df26bc018aff42e";
+ sha256 = "0hib8q9fslvw02i1y19z78fv6yy88q09lhfdfmbdyn6yal21855q";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/esa";
@@ -20229,27 +20313,6 @@
license = lib.licenses.free;
};
}) {};
- escreen = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "escreen";
- version = "20170613.1534";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "escreen";
- rev = "153dc05b2b7e6e2d4cbd7b6cbe8b10d6a70f73f3";
- sha256 = "0xz3dkvgrbgv91dxgdfcir9zld5qsqpzrmp4q6fxqa548advn9ak";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/c64c21a42fd8436bd60e490980ad4ed824b212d1/recipes/escreen";
- sha256 = "0yis27362jc63jkzdndz1wpysmf1b51rrbv3swvi6b36da5i6b54";
- name = "escreen";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/escreen";
- license = lib.licenses.free;
- };
- }) {};
esh-autosuggest = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "esh-autosuggest";
@@ -20526,12 +20589,12 @@
eslintd-fix = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "eslintd-fix";
- version = "20171128.453";
+ version = "20180407.911";
src = fetchFromGitHub {
owner = "aaronjensen";
repo = "eslintd-fix";
- rev = "3efb041c9ad0116e745efaede7f7972bc2179a72";
- sha256 = "16siwr2d930kifdhzgbyiszphp6i5ggbyi76ya6gkzy6wh1s9b56";
+ rev = "97e8aa9b106e3e4b3a44c775ca972bdd2feda9ec";
+ sha256 = "1g6bv58m1052x2f5ffs17ryyqv0ay8vii5bwqs7dyfhlpppsn6c8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c72d2b3ee9b8066d51d09e165e58e9846ca879cc/recipes/eslintd-fix";
@@ -20631,12 +20694,12 @@
ess = callPackage ({ fetchFromGitHub, fetchurl, julia-mode, lib, melpaBuild }:
melpaBuild {
pname = "ess";
- version = "20180401.319";
+ version = "20180416.631";
src = fetchFromGitHub {
owner = "emacs-ess";
repo = "ESS";
- rev = "6d0dafab3ac7a97e530d4082f874dcc24b558a68";
- sha256 = "1919sdjhkrj66r1bn9nyccj20s3b5wa8p63avk1mgyyfa3a1bnza";
+ rev = "27b55440d15ff532da86dfae6d030e76d1e6d518";
+ sha256 = "1sjnky11lhmiqcqrmdfi8xaf40jlm43kzbnviq031apwfxrvifi5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/12997b9e2407d782b3d2fcd2843f7c8b22442c0a/recipes/ess";
@@ -20988,12 +21051,12 @@
evil = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, goto-chg, lib, melpaBuild, undo-tree }:
melpaBuild {
pname = "evil";
- version = "20180320.1359";
+ version = "20180408.1423";
src = fetchFromGitHub {
owner = "emacs-evil";
repo = "evil";
- rev = "fe3ae258901ba9b16e6d051427e1c0bd5e588e48";
- sha256 = "1wazvyrpsf0j5v04fsjzqkff906jvhvp8a9bbr5d8qmn4l103qdc";
+ rev = "49ebf2dce325bc7fe0941dc4112226c291ff9670";
+ sha256 = "0vjbyh77d4z9ahk0w8fmb4fdd98hq19ijy11b1y4n029yl1yrwvr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/440482c0edac8ee8bd4fe22f6bc5c1607f34c7ad/recipes/evil";
@@ -21135,12 +21198,12 @@
evil-collection = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-collection";
- version = "20180331.1020";
+ version = "20180416.146";
src = fetchFromGitHub {
owner = "emacs-evil";
repo = "evil-collection";
- rev = "2ebc7a93c6376188d4d86347dddbbba942457bb3";
- sha256 = "19avjdm9ddxgipggg46kwbqpjmz39dpai7kx9xdk3ba4dhkcz5ic";
+ rev = "aca031a7f313d4380a1dbaa2158a9908a2ce9415";
+ sha256 = "1mzgi8bdd767g6xfkznpm5v8gjx8wp99drlxggi0vgp1rm3zslsz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a9b93a8e3750e4e7767498e418f46d553d814604/recipes/evil-collection";
@@ -21387,12 +21450,12 @@
evil-goggles = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-goggles";
- version = "20180210.938";
+ version = "20180414.2306";
src = fetchFromGitHub {
owner = "edkolev";
repo = "evil-goggles";
- rev = "deab4966d75321a9172947ee5cdf2329eb2c5a6b";
- sha256 = "1b4w40x23kbzry80d4rxxynasmrkbry9jj5jkc4l4rcj8lk3vbbi";
+ rev = "bc318ad4b7711837c21405d49a0ce4097f3a70a9";
+ sha256 = "0vy6skhp6skr3hvkc0dzfn1dridwzybjm9mg2h90srvg76c8966p";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/811b1261705b4c525e165fa9ee23ae191727a623/recipes/evil-goggles";
@@ -21576,12 +21639,12 @@
evil-magit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
melpaBuild {
pname = "evil-magit";
- version = "20180313.931";
+ version = "20180410.804";
src = fetchFromGitHub {
owner = "emacs-evil";
repo = "evil-magit";
- rev = "69dfa5a06e8a4024803223b9873ea5d591a97294";
- sha256 = "1kd09z4qxcanvxnawhczwp3y61kn4gnaaji9chqrny633r8j64jk";
+ rev = "9bd91561e7d0bfe3198d0860bae1785a543f2eee";
+ sha256 = "1jhna9lyic4c28kcdhbqid6gyv9gawznf2ga470vnfnyghd4f757";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/50315ec837d2951bf5b2bb75809a35dd7ffc8fe8/recipes/evil-magit";
@@ -21720,22 +21783,22 @@
license = lib.licenses.free;
};
}) {};
- evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ evil-nerd-commenter = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-nerd-commenter";
- version = "20171206.441";
+ version = "20180411.640";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "evil-nerd-commenter";
- rev = "41d43709210711c07de69497c5f7db646b7e7a96";
- sha256 = "04xjbsgydfb3mi2jg5fkkvp0rvjpx3mdx8anxzjqzdry7nir3m14";
+ rev = "34d411715ead5829d6d8969511047feb703b067e";
+ sha256 = "0ax846dy2hbrbvkj7nzfkcl5i1x9rga8bvg0ln55ivhq0iiy1lkv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
sha256 = "1pa5gh065hqn5mhs47qvjllwdwwafl0clk555mb6w7svq58r6i8d";
name = "evil-nerd-commenter";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/evil-nerd-commenter";
license = lib.licenses.free;
@@ -22126,8 +22189,8 @@
src = fetchFromGitHub {
owner = "emacs-evil";
repo = "evil";
- rev = "fe3ae258901ba9b16e6d051427e1c0bd5e588e48";
- sha256 = "1wazvyrpsf0j5v04fsjzqkff906jvhvp8a9bbr5d8qmn4l103qdc";
+ rev = "49ebf2dce325bc7fe0941dc4112226c291ff9670";
+ sha256 = "0vjbyh77d4z9ahk0w8fmb4fdd98hq19ijy11b1y4n029yl1yrwvr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/87da8c50f9167ad9c3844b23becb6904f809611d/recipes/evil-test-helpers";
@@ -22399,8 +22462,8 @@
src = fetchFromGitHub {
owner = "ninrod";
repo = "exato";
- rev = "70f7ca2a4c6de0392e5e54ac4f16c96daa106be6";
- sha256 = "0ns43whqcq3cv9vh8wbakj5fgs0lsn8f3q1rgl4rw4mfgbvv85pm";
+ rev = "88266fa7fcfbef704032f671b94f756f2f98bd4f";
+ sha256 = "0nmm7pvs81429a4zpal6aidfd1n58yavv3skscrav5r0wnlbz773";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/939efbcb9b40a2df5ef14e653fb242a8e37c72f9/recipes/exato";
@@ -22420,8 +22483,8 @@
src = fetchFromGitHub {
owner = "purcell";
repo = "exec-path-from-shell";
- rev = "4d0af1274797ce61f5d8c209339d5b9cdc49aca6";
- sha256 = "1h45vxyw0pa99fldnvca96rz1w1hl7mrgx5m51rknxascfvk6fqx";
+ rev = "54ea2f9c3c81d18b96e4d33c4c547e02eee420dc";
+ sha256 = "193d9wf8x1cl1q5bzpdm9508a37m6nwlsjzn2mxbiqkb8p9psj73";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/exec-path-from-shell";
@@ -22738,12 +22801,12 @@
eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "eziam-theme";
- version = "20180208.628";
+ version = "20180414.329";
src = fetchFromGitHub {
owner = "thblt";
repo = "eziam-theme-emacs";
- rev = "8891dc05b54c0ea848ee3bf7b42e759f73c1bb1a";
- sha256 = "1wi1qqzf630ffz0kkk12f81jmm8ii7cckf1wds3phpb67msn5ial";
+ rev = "96595833110cd64c391e0ccd5230782a8f0a4e08";
+ sha256 = "0nvwgxlrbfhchb7z2qnw1lj66xpzn2b6yb6mhx0k31xdfr173wch";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme";
@@ -23299,6 +23362,27 @@
license = lib.licenses.free;
};
}) {};
+ fill-function-arguments = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "fill-function-arguments";
+ version = "20180331.1023";
+ src = fetchFromGitHub {
+ owner = "davidshepherd7";
+ repo = "fill-function-arguments";
+ rev = "50ea2e4ec943993f54ef72a5deccd62dad5bb7a4";
+ sha256 = "0s6kw87p1w3xwk354lbj5br07x0l63x3dcgfcxcvmy7k820f0iq6";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/b78eab67517b19516e5d265018afcbff0acfa9ec/recipes/fill-function-arguments";
+ sha256 = "1gigzzz2csl3a55jmjx391a5k3ymixnwpblsn0pfgkkk4p3674q0";
+ name = "fill-function-arguments";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/fill-function-arguments";
+ license = lib.licenses.free;
+ };
+ }) {};
fillcode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fillcode";
@@ -23365,12 +23449,12 @@
find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "find-file-in-project";
- version = "20180331.546";
+ version = "20180405.713";
src = fetchFromGitHub {
owner = "technomancy";
repo = "find-file-in-project";
- rev = "ad6c8fce30ac927b4c2297894b6436e1cf724501";
- sha256 = "1mq544h03laphwvcff2qaxdbb7krmnw1vxmnc9jchz8ascx2x28n";
+ rev = "5691beb79f78c6a0ef1a18460df9fd1571ec3361";
+ sha256 = "0mvli1r7ml596y6v9qsip76j78f58q6jnwb18j8c7rngsrg08rc4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project";
@@ -23754,8 +23838,8 @@
src = fetchFromGitHub {
owner = "mschuldt";
repo = "flame";
- rev = "2cfb860a483197e92a4c20d7b9b055d586e76fe0";
- sha256 = "1h6mm2zjv03y2d6dv4gq7iaz6r2glgcljzgmi6m4jp6flvyqh09g";
+ rev = "a749b2a77b87e505572d0f1f5d59fac76348bb73";
+ sha256 = "1l9jbzavyi75li64jqfs000s1m8iw9xvsv8mg0bw1div6bc7vq7s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b7a14c14368de722855286c088020a5657f7cf8b/recipes/flame";
@@ -24169,12 +24253,12 @@
flycheck = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pkg-info, seq }:
melpaBuild {
pname = "flycheck";
- version = "20180326.836";
+ version = "20180415.1527";
src = fetchFromGitHub {
owner = "flycheck";
repo = "flycheck";
- rev = "0a588ed2aaf8ea7088ba8abdc91af47d4d41a85a";
- sha256 = "0rvhk4mi4nh66r7rch69rvi0rbmrnxwqnk2rv8d1his0i7z53rq6";
+ rev = "1eecec814debc6994b1aa8b6760cbfbbdf71e219";
+ sha256 = "1in3sanhyd0cmivq7c5xxqpb5frzq77zp7rdyyki9pczpf9yv58a";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/649f9c3576e81409ae396606798035173cc6669f/recipes/flycheck";
@@ -24841,12 +24925,12 @@
flycheck-gradle = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-gradle";
- version = "20180322.2332";
+ version = "20180403.33";
src = fetchFromGitHub {
owner = "jojojames";
repo = "flycheck-gradle";
- rev = "28f6d78330334ba58f209af79cc5d699e6557f42";
- sha256 = "1lhcizpkn2sih4m01mlgp3aln8jmx7r7jk5iv636268qmvq9ff8d";
+ rev = "a14b45183e50993e8b28a4c57ad5db82b789faef";
+ sha256 = "1n3i0fh0rvy29gykqamxayfbbv5jy3h6l375pw4ckydcqlp0dgxk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/382d9afd2bbb0c137719c308a67d185b86d84331/recipes/flycheck-gradle";
@@ -24946,11 +25030,11 @@
flycheck-jest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-jest";
- version = "20180307.1";
+ version = "20180410.2028";
src = fetchFromGitHub {
owner = "jojojames";
repo = "flycheck-jest";
- rev = "2f524e275338e46edb9c1c9ab543020f9031b030";
+ rev = "08f27c5ed97c83c445f99fab58f0b6c826f14449";
sha256 = "1ipr1yyk5vf2i8q7923r18a216sgf759x5f6j5776jcjkhp98c98";
};
recipeFile = fetchurl {
@@ -25219,12 +25303,12 @@
flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-objc-clang";
- version = "20171231.453";
+ version = "20180410.422";
src = fetchFromGitHub {
owner = "GyazSquare";
repo = "flycheck-objc-clang";
- rev = "07f17d1dbe878fdcabac791a8916ddf643571a68";
- sha256 = "03624xn6g1ybcjw634c7nd5s2yllwfffk2gzn5hm70vfz06q7wb9";
+ rev = "f4a76ac199b67ff383ab5e70434c9b98b48c92d5";
+ sha256 = "0ryanx4vmy9jwqjnwvma6dm136y4fh227cyhz206km6595bbn3nc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4ff4412f507371b93cfb85fc744e54110cd87338/recipes/flycheck-objc-clang";
@@ -25450,12 +25534,12 @@
flycheck-pycheckers = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-pycheckers";
- version = "20180328.1126";
+ version = "20180402.1039";
src = fetchFromGitHub {
owner = "msherry";
repo = "flycheck-pycheckers";
- rev = "6996cfa743ae0f2d76a24eaa1d0e1201fb04e72b";
- sha256 = "16phmjs6h3iygz3h6wdmp6cmd4ckki685206l3wanmppsp91s4jy";
+ rev = "facb6e6cff7baaf38cf4e76a3e27a508225fc3f7";
+ sha256 = "061iahihq348ncbx9zh8ihca6j2fkc1nygk5f7v2q4j2g7kmfv8n";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/af36dca316b318d25d65c9e842f15f736e19ea63/recipes/flycheck-pycheckers";
@@ -25517,8 +25601,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/flycheck-rtags";
@@ -25618,12 +25702,12 @@
flycheck-swift3 = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-swift3";
- version = "20171231.452";
+ version = "20180411.652";
src = fetchFromGitHub {
owner = "GyazSquare";
repo = "flycheck-swift3";
- rev = "34973cd28ca5e63f8f6328a17fd7b78cc913b93d";
- sha256 = "1iy6j05dzpi7pi87y6rpjzmlnl2s9izqpbzknis2kx9072qddm3q";
+ rev = "06a6f98d7e498860b345bbd03e96bfe59608f508";
+ sha256 = "0h1n4x0fvqfb6jcapbab1ck6bj4d7irbn9zz2hxv2rlrkqxfsmh3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1fb8c731c118327dc0bbb726e046fec46bcfb82/recipes/flycheck-swift3";
@@ -25657,6 +25741,27 @@
license = lib.licenses.free;
};
}) {};
+ flycheck-tcl = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
+ melpaBuild {
+ pname = "flycheck-tcl";
+ version = "20180327.559";
+ src = fetchFromGitHub {
+ owner = "nwidger";
+ repo = "flycheck-tcl";
+ rev = "7ca23f4673e178b9f5dcc8a82b86cf05b15d7236";
+ sha256 = "17mmj0yx7d7cwyq35ll1lw4j0yyha172375apvanrkpgpzjpnvrq";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/fafc86df6c15348711f16302bb86c0ee08c08454/recipes/flycheck-tcl";
+ sha256 = "0rmc7rk0n4mgk11jgza1dn1nkjyi7rqs79d3p0cj1081znyj56f3";
+ name = "flycheck-tcl";
+ };
+ packageRequires = [ emacs flycheck ];
+ meta = {
+ homepage = "https://melpa.org/#/flycheck-tcl";
+ license = lib.licenses.free;
+ };
+ }) {};
flycheck-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup }:
melpaBuild {
pname = "flycheck-tip";
@@ -26462,8 +26567,8 @@
src = fetchFromGitHub {
owner = "d12frosted";
repo = "flyspell-correct";
- rev = "a8ac817f7b646d8ba761b64e1b2f65d0a9ebd277";
- sha256 = "1xqjj4ff811w205f1qs9zd68h6nsbh60pj6mhv2w4kpf3hmmj310";
+ rev = "6a3392859531c36091a656fedcaebc0f995dbca5";
+ sha256 = "138y5zmqwrac0r32z14adz8gs047wlqikn4bzkyl0blnlr1fkhnf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fa06fbe3bc40ae5e3f6d10dee93a9d49e9288ba5/recipes/flyspell-correct";
@@ -26483,8 +26588,8 @@
src = fetchFromGitHub {
owner = "d12frosted";
repo = "flyspell-correct";
- rev = "a8ac817f7b646d8ba761b64e1b2f65d0a9ebd277";
- sha256 = "1xqjj4ff811w205f1qs9zd68h6nsbh60pj6mhv2w4kpf3hmmj310";
+ rev = "6a3392859531c36091a656fedcaebc0f995dbca5";
+ sha256 = "138y5zmqwrac0r32z14adz8gs047wlqikn4bzkyl0blnlr1fkhnf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7b9302d8f804c77eb81fee7ed27f13cb1176f6/recipes/flyspell-correct-helm";
@@ -26504,8 +26609,8 @@
src = fetchFromGitHub {
owner = "d12frosted";
repo = "flyspell-correct";
- rev = "a8ac817f7b646d8ba761b64e1b2f65d0a9ebd277";
- sha256 = "1xqjj4ff811w205f1qs9zd68h6nsbh60pj6mhv2w4kpf3hmmj310";
+ rev = "6a3392859531c36091a656fedcaebc0f995dbca5";
+ sha256 = "138y5zmqwrac0r32z14adz8gs047wlqikn4bzkyl0blnlr1fkhnf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7b9302d8f804c77eb81fee7ed27f13cb1176f6/recipes/flyspell-correct-ivy";
@@ -26525,8 +26630,8 @@
src = fetchFromGitHub {
owner = "d12frosted";
repo = "flyspell-correct";
- rev = "a8ac817f7b646d8ba761b64e1b2f65d0a9ebd277";
- sha256 = "1xqjj4ff811w205f1qs9zd68h6nsbh60pj6mhv2w4kpf3hmmj310";
+ rev = "6a3392859531c36091a656fedcaebc0f995dbca5";
+ sha256 = "138y5zmqwrac0r32z14adz8gs047wlqikn4bzkyl0blnlr1fkhnf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7b9302d8f804c77eb81fee7ed27f13cb1176f6/recipes/flyspell-correct-popup";
@@ -26581,27 +26686,6 @@
license = lib.licenses.free;
};
}) {};
- fm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "fm";
- version = "20130126.1618";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "fm";
- rev = "555bcebdf47ea3b1d9d1e152af7237b9daa62d59";
- sha256 = "1fk4zsb4jliwz10sqz5bpqgj1p479mc506dmvy4zq3vqnpbypqvs";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/e4a74b87c05b408433545a2236000ac081af36bf/recipes/fm";
- sha256 = "118d8fbhlv6i2rsyfqdhi841p96j7q4fab5qdg95ip40wq02dg4f";
- name = "fm";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/fm";
- license = lib.licenses.free;
- };
- }) {};
fm-bookmarks = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fm-bookmarks";
@@ -26707,27 +26791,6 @@
license = lib.licenses.free;
};
}) {};
- fold-dwim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "fold-dwim";
- version = "20140208.837";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "fold-dwim";
- rev = "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b";
- sha256 = "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/fold-dwim";
- sha256 = "1c8sh6i453jpfhwaqdvlqibnb9lmzfd7q6bvnk1b1q0df7igl53d";
- name = "fold-dwim";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/fold-dwim";
- license = lib.licenses.free;
- };
- }) {};
fold-dwim-org = callPackage ({ fetchFromGitHub, fetchurl, fold-dwim, lib, melpaBuild }:
melpaBuild {
pname = "fold-dwim-org";
@@ -26882,8 +26945,8 @@
src = fetchFromGitHub {
owner = "cadadr";
repo = "elisp";
- rev = "8118551aaf0472900cdfdc13449b55b33ab56289";
- sha256 = "153cch134c6rvqfcpikidlpxcbxk8nys2ig1xxpbn9ncn4fqkaf3";
+ rev = "35424f7360f5110833b7a9f4f53907b9e222be85";
+ sha256 = "1xi56c8f2wcmldr76ylrcqsy0wf75pv74b0455ki84fq1fk4n08s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a7ea18a56370348715dec91f75adc162c800dd10/recipes/forecast";
@@ -27067,12 +27130,12 @@
fountain-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fountain-mode";
- version = "20180316.914";
+ version = "20180410.732";
src = fetchFromGitHub {
owner = "rnkn";
repo = "fountain-mode";
- rev = "8269066a9035fcf50eb835de3745a62c1cb96660";
- sha256 = "1s1wyhjdyp12iz3zk333z5wlbxl5x3hki9q16164fk9ifhkrppxd";
+ rev = "1efbdbba6cb52c8bc2e70ca2636935d2b1ea8d98";
+ sha256 = "16hlywji8ny8b7dc6wq9vfxp6b1fbm1m4f3mzxgngs3gjv6vic82";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/913386ac8d5049d37154da3ab32bde408a226511/recipes/fountain-mode";
@@ -27155,8 +27218,8 @@
src = fetchFromGitHub {
owner = "davidshepherd7";
repo = "frames-only-mode";
- rev = "4dbc6871d8220cb95d287dd35475725a1b7662ab";
- sha256 = "19y23jdfp9i950vl8ahywfh6gkf8cmy0nd3fk931xkx0x5kp64h9";
+ rev = "0f42139a41e97bb0a2ebc320d41cec071c034ca0";
+ sha256 = "0bfgqlfdjmxz8fq34ad9m6avja5z5pvw9cjxlfxd3k716ga1nc06";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e628416ad9420b3ac5bbfacf930a86d98958ac8/recipes/frames-only-mode";
@@ -27348,12 +27411,12 @@
fstar-mode = callPackage ({ company, company-quickhelp, dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, quick-peek, yasnippet }:
melpaBuild {
pname = "fstar-mode";
- version = "20180319.2121";
+ version = "20180324.2211";
src = fetchFromGitHub {
owner = "FStarLang";
repo = "fstar-mode.el";
- rev = "2b8c41cb18d2433bd2379522e1441c51eae0b5e0";
- sha256 = "1im2arr9885zx6j4njlj7ngmhmi1varnllxbw3xj37bl0abgcngi";
+ rev = "9b948a4ff5d54b5f72c7b004146121ab7d1b9018";
+ sha256 = "1r6dgi029hybsbkjbgb2bhsr4ashpfcx3x3sp3gb1ypg2nlck463";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c58ace42342c3d3ff5a56d86a16206f2ecb45f77/recipes/fstar-mode";
@@ -27524,12 +27587,12 @@
futhark-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "futhark-mode";
- version = "20171026.722";
+ version = "20180416.830";
src = fetchFromGitHub {
owner = "HIPERFIT";
repo = "futhark";
- rev = "59fb36049fc1de0db5557db2ceaace367c2f9da1";
- sha256 = "0pix26f019ny5yjnk838awk007z3rb56zviqk66c3bfwb8abj5md";
+ rev = "314e43c80fc31e15741136e61f3ee5f793ba190c";
+ sha256 = "1i9rs9cb9l7hp678rf4w9r47zqy1pakyy7alfli192mm650w07l1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0607f01aad7e77d53595ad8db95d32acfd29b148/recipes/futhark-mode";
@@ -27668,22 +27731,22 @@
license = lib.licenses.free;
};
}) {};
- gams-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ gams-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "gams-mode";
- version = "20180326.2325";
+ version = "20180416.206";
src = fetchFromGitHub {
owner = "ShiroTakeda";
repo = "gams-mode";
- rev = "2d6b5c29d84a42421ddc2f7f1e9c3a141d81c31c";
- sha256 = "0cri329g0b7ywqarg4jlmry574z7v15gdd9j7jnikq1s2jjgnb85";
+ rev = "3022e9f8411628e6a210fb5843d858b15a7513f5";
+ sha256 = "06hc8yy1g2vyvib8yrhwzs8fvgxnrxlw6iyzi7phjp9fgr3cp504";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c895a716636b00c2a158d33aab18f664a8601833/recipes/gams-mode";
sha256 = "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci";
name = "gams-mode";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/gams-mode";
license = lib.licenses.free;
@@ -27837,12 +27900,12 @@
geiser = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "geiser";
- version = "20180329.548";
+ version = "20180413.1646";
src = fetchFromGitHub {
owner = "jaor";
repo = "geiser";
- rev = "23bc15197dfed3773283b2cacbda47678635f22a";
- sha256 = "0cjb4lj9xbmw3g1mnghd2ig00d5gjksz1an8j12hkmydzj1psmdv";
+ rev = "ec3d0ea34081789da44f0b11b2cf05627a1e9b8e";
+ sha256 = "0g79vz9b73p7g2zy8ml0glwiivq48d64yq3kd6wmq1qpx3zflrf2";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b0fe32d24cedd5307b4cccfb08a7095d81d639a0/recipes/geiser";
@@ -27858,12 +27921,12 @@
general = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "general";
- version = "20180327.1753";
+ version = "20180406.944";
src = fetchFromGitHub {
owner = "noctuid";
repo = "general.el";
- rev = "ce3bc12bd6b928310f7a13f855e5c86183d1e0c2";
- sha256 = "08jbmln6mpqc6xmf0d606baai25y26l67a68i2cfns09gk8k8pqi";
+ rev = "d8fb9f69c9d66279316b096929454ebf242aa721";
+ sha256 = "025dakpmp2232n15rjz6kbs0vn1gazi4qkaagkm8fra703sx4v4v";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d86383b443622d78f6d8ff7b8ac74c8d72879d26/recipes/general";
@@ -28152,12 +28215,12 @@
ghub = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }:
melpaBuild {
pname = "ghub";
- version = "20180328.830";
+ version = "20180414.1654";
src = fetchFromGitHub {
owner = "magit";
repo = "ghub";
- rev = "d5408b61322a8207a8362e0ebb421306ec582379";
- sha256 = "1pj9xfqd05i6y0fz4g7ba6jk7s86xj6j5ph6wfynwyz4w63zgw0d";
+ rev = "27e7b17473d17b684ddf873e4281f2595c05ca65";
+ sha256 = "00yjgz8c03l8v99gi2ly08iwp10bv5s6hhhlvw1kyg00mflgn4m9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/70a4dbd62fd6ebb4e056d0e97fa1a958437ddc91/recipes/ghub";
@@ -28404,12 +28467,12 @@
git-commit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }:
melpaBuild {
pname = "git-commit";
- version = "20180401.314";
+ version = "20180411.1649";
src = fetchFromGitHub {
owner = "magit";
repo = "magit";
- rev = "570c2a777ec222918492255463742d44a78befee";
- sha256 = "0741c3zd48ybfs67331hxj026lp7frzrzml0kzspbx2121d56yzh";
+ rev = "16785d7962cf84df12cf1e498b2c96519e84d235";
+ sha256 = "0ifzqqsyqk5x3d8zvq0yspcfhlndl7ppv6yxzz8w27pgb4h0jqwn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/git-commit";
@@ -28656,12 +28719,12 @@
git-ps1-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "git-ps1-mode";
- version = "20170102.1944";
+ version = "20180413.247";
src = fetchFromGitHub {
owner = "10sr";
repo = "git-ps1-mode-el";
- rev = "e41c630f5d04cb1a4d38a4b500d7a154a96a4655";
- sha256 = "11bg953nk5x501vkr0jrz710pz3qxla27bgrd4gp503fbygnixkz";
+ rev = "6a06bf57cbe614ab26032b153d3dcf4fb4bfa7ee";
+ sha256 = "1lgvzla1bg7gmkj41hmzhiqcbdmdw9ycpzfvpl6xl0sm0fk3j3rj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ea177b5ea168828881bd8dcd29ef6b4cb81317f0/recipes/git-ps1-mode";
@@ -28947,6 +29010,27 @@
license = lib.licenses.free;
};
}) {};
+ github-stars = callPackage ({ emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }:
+ melpaBuild {
+ pname = "github-stars";
+ version = "20180328.433";
+ src = fetchFromGitHub {
+ owner = "xuchunyang";
+ repo = "github-stars.el";
+ rev = "15cbf15cdd3fbd2139b5c128a173bb8f6a4ef496";
+ sha256 = "10hyjkdbf5b792vfm072g9wizkszwghxs2x5k1hi1q0c4gw5w518";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/58df7d536f9711e10ecaa6e0a37b9ad255e8fca5/recipes/github-stars";
+ sha256 = "1vljmrjid5xxmq5yfmsaq09js7zd75nmm4gd0kwm3lf71pb3lp6f";
+ name = "github-stars";
+ };
+ packageRequires = [ emacs ghub ];
+ meta = {
+ homepage = "https://melpa.org/#/github-stars";
+ license = lib.licenses.free;
+ };
+ }) {};
github-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "github-theme";
@@ -28989,6 +29073,27 @@
license = lib.licenses.free;
};
}) {};
+ gitignore-templates = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "gitignore-templates";
+ version = "20180327.626";
+ src = fetchFromGitHub {
+ owner = "xuchunyang";
+ repo = "gitignore-templates.el";
+ rev = "b0705b8de4cbdd631c64c4e0024d62ba4ad68052";
+ sha256 = "1f0lcyw7yrdfmv0h8b87kz0pdrzhy28fzv688z4aaw964qn8jz0k";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/4c9aa71eac2e68eb1925ed00a2c659c4375bd39c/recipes/gitignore-templates";
+ sha256 = "17zx52pmpd4yqlnj39v7ym728i710mdl0by3lc8zk6ljfz77933w";
+ name = "gitignore-templates";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/gitignore-templates";
+ license = lib.licenses.free;
+ };
+ }) {};
gitlab = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, request, s }:
melpaBuild {
pname = "gitlab";
@@ -29143,8 +29248,8 @@
src = fetchFromGitHub {
owner = "magit";
repo = "ghub";
- rev = "d5408b61322a8207a8362e0ebb421306ec582379";
- sha256 = "1pj9xfqd05i6y0fz4g7ba6jk7s86xj6j5ph6wfynwyz4w63zgw0d";
+ rev = "27e7b17473d17b684ddf873e4281f2595c05ca65";
+ sha256 = "00yjgz8c03l8v99gi2ly08iwp10bv5s6hhhlvw1kyg00mflgn4m9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/70a4dbd62fd6ebb4e056d0e97fa1a958437ddc91/recipes/glab";
@@ -30172,8 +30277,8 @@
src = fetchFromGitHub {
owner = "google";
repo = "styleguide";
- rev = "5508c2f7dfaba43b30d413c943560476c2e5a46c";
- sha256 = "12f6zw4byx7m6v81q2szabpy0ky8cpyn1drcjyi6yvra11z6747a";
+ rev = "1b206ee36263b16ec18f7b2f86a2b770b7490844";
+ sha256 = "0vwx5h7b0f4yv5aqznw8zq2fnwwdmrcfa270v16dzdfr5a7n3pj3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b4e7f5f641251e17add561991d3bcf1fde23467b/recipes/google-c-style";
@@ -30441,12 +30546,12 @@
govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }:
melpaBuild {
pname = "govc";
- version = "20180129.905";
+ version = "20180402.2025";
src = fetchFromGitHub {
owner = "vmware";
repo = "govmomi";
- rev = "1f0870fcda76974a214b4dd7df54df00d0ba0713";
- sha256 = "17zphy7kkwqiqc9zsrkfv4x63jqbz6vnxrx1snar987dk3iwpfph";
+ rev = "d3ae3004773719bcc413ff8e3396f2ce6bf0827b";
+ sha256 = "0l06li4d7mppj7r7xvx4dpvi0asdcazwj3nil6kd1in2pfq3hh4y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc";
@@ -30571,8 +30676,8 @@
src = fetchFromGitHub {
owner = "Groovy-Emacs-Modes";
repo = "groovy-emacs-modes";
- rev = "88e851a7685a4f6f65786f088423163ba33be84b";
- sha256 = "1ac4dbk890nq9w0slc17106b8rsavhh63rq0n9wplixl8i2ccr4g";
+ rev = "0aea74def58791b2343a8f0139c2f2a6a0941877";
+ sha256 = "0aih46rk2zzxhbx4k65w1lmg3ibxnkimdfpyxc5qfdcr4kyfg06i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/grails-mode";
@@ -30893,12 +30998,12 @@
grep-context = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "grep-context";
- version = "20180317.742";
+ version = "20180415.435";
src = fetchFromGitHub {
owner = "mkcms";
repo = "grep-context";
- rev = "a17c57e66687a54e195e08afe776bdd60cb6c0a7";
- sha256 = "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62";
+ rev = "4c63d0f2654dee1e249c2054d118d674a757bd45";
+ sha256 = "0n2bc9q6bvbfpaqivp3ajy9ad1wr7hfdd98qhnspsap67p73kfn4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/41dbaf627ae4ef86c222d2b6b5d3523fdb9a4637/recipes/grep-context";
@@ -30996,12 +31101,12 @@
groovy-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "groovy-mode";
- version = "20180326.303";
+ version = "20180412.538";
src = fetchFromGitHub {
owner = "Groovy-Emacs-Modes";
repo = "groovy-emacs-modes";
- rev = "88e851a7685a4f6f65786f088423163ba33be84b";
- sha256 = "1ac4dbk890nq9w0slc17106b8rsavhh63rq0n9wplixl8i2ccr4g";
+ rev = "0aea74def58791b2343a8f0139c2f2a6a0941877";
+ sha256 = "0aih46rk2zzxhbx4k65w1lmg3ibxnkimdfpyxc5qfdcr4kyfg06i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/groovy-mode";
@@ -31206,12 +31311,12 @@
guix = callPackage ({ bui, dash, edit-indirect, emacs, fetchFromGitHub, fetchurl, geiser, lib, magit-popup, melpaBuild }:
melpaBuild {
pname = "guix";
- version = "20180329.1312";
+ version = "20180414.1025";
src = fetchFromGitHub {
owner = "alezost";
repo = "guix.el";
- rev = "62a50ea1bae7e90a622e9722269ebe449e01145a";
- sha256 = "09fhl2qzai6jc23nq4mnnf6dwhll1g7llxycb25cx4n79qr0db1q";
+ rev = "00c87a9cafa3d74840be02efa2516286515b6f93";
+ sha256 = "0mbri7p7hm5bfqw8i8wl5yc5av13sd77bs15af44nv8p5gqx7wng";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b3d8c73e8a946b8265487a0825d615d80aa3337d/recipes/guix";
@@ -31710,12 +31815,12 @@
haskell-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "haskell-mode";
- version = "20171022.26";
+ version = "20180406.2222";
src = fetchFromGitHub {
owner = "haskell";
repo = "haskell-mode";
- rev = "9018ad5cac0b1b1b5e0a51586027fb0ca4076b1a";
- sha256 = "0aj6mjv1i8m18klj9mp690fkmwc81wxh2q69cxjf78fdpgbrhcwl";
+ rev = "d71cca7f5ddc8178f5fe331563edcefe91cc0bcb";
+ sha256 = "1amg9k50nw90b1dci6bylhrdkfmwminxcx3hlxxwvfvdgszfs2s4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7f18b4dcbad4192b0153a316cff6533272898f1a/recipes/haskell-mode";
@@ -31981,12 +32086,12 @@
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
melpaBuild {
pname = "helm";
- version = "20180331.2328";
+ version = "20180413.335";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
- rev = "412e85cad7ed4073152b6e339d8e7c9247ddeba4";
- sha256 = "075v6ml40z0j1sblj5q7a7cqrlbvvh7rbwllmz8a7ghcan17n1x6";
+ rev = "b72baa1183fabf5213e4d50a38358288f7af5a86";
+ sha256 = "0q89c9axk8a7w3hncl7wak0z3yg022vwf3lwfmww6xkn9daxldjx";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
@@ -32170,12 +32275,12 @@
helm-bbdb = callPackage ({ bbdb, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild {
pname = "helm-bbdb";
- version = "20180319.639";
+ version = "20180412.807";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-bbdb";
- rev = "7582e93871d6ab9aeebd87f5f63c43d3207b71fe";
- sha256 = "11nv31rlf6f9aha39pgzapah3drb547gfymha3ihpdsk2xy68ij5";
+ rev = "1f182900207cff383d62d91e839b48dd4874f2a5";
+ sha256 = "0m08zb1i6m8i0n590f1717p8dxb7w9d4mh3wnkd829zjhycradrd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7025c319fcabc64576c0c6554d0d572cef697693/recipes/helm-bbdb";
@@ -32590,12 +32695,12 @@
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "helm-core";
- version = "20180331.1241";
+ version = "20180414.2257";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
- rev = "412e85cad7ed4073152b6e339d8e7c9247ddeba4";
- sha256 = "075v6ml40z0j1sblj5q7a7cqrlbvvh7rbwllmz8a7ghcan17n1x6";
+ rev = "b72baa1183fabf5213e4d50a38358288f7af5a86";
+ sha256 = "0q89c9axk8a7w3hncl7wak0z3yg022vwf3lwfmww6xkn9daxldjx";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
@@ -32695,12 +32800,12 @@
helm-descbinds = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild {
pname = "helm-descbinds";
- version = "20160916.713";
+ version = "20180411.2215";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-descbinds";
- rev = "6d5ddc11e6cef86548bd6b3e0d840112d602659c";
- sha256 = "03b79wdcp4im0fwadzhyc8jxl2wqvg8gmpflnznrwz3l71bi4sqq";
+ rev = "cc000b1bf580577d032c9f0563168b6bbdd6d290";
+ sha256 = "1z5z0yfj1h3852zn4sh0p9dl3viyfiqpw28jczqgm8rcng94rvbw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/447610a05422cd2f35399e43d98bf46410ff0408/recipes/helm-descbinds";
@@ -32884,12 +32989,12 @@
helm-emms = callPackage ({ cl-lib ? null, emacs, emms, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild {
pname = "helm-emms";
- version = "20180328.2125";
+ version = "20180405.2228";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-emms";
- rev = "b564ed61f596db98b9e9cc68c97f0c058208b9c0";
- sha256 = "090iq5phlq5lgf7asqprra0pz1lhgdxqmyzd7kqlbjssd3wzaig8";
+ rev = "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec";
+ sha256 = "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/db836b671705607f6cd9bce8229884b1f29b4a76/recipes/helm-emms";
@@ -33829,12 +33934,12 @@
helm-ls-git = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild {
pname = "helm-ls-git";
- version = "20170727.1238";
+ version = "20180415.2336";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-ls-git";
- rev = "d116bb96b6ea946f633ed7735fbf38a63e611a3a";
- sha256 = "0z09qvb6yyz2vnxkcg6xhaawja1ynxfwzx5j2aqyiicwqbyf3kvg";
+ rev = "c63c27f10d0cc409ab528d20700bccc52abbab26";
+ sha256 = "1xmrg49b7r3ry85gizllnll4v6wk3qxmhwrd7d0jifx5df9v13f9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b487b4c0db9092bb7e32aad9265b79a9d18c8478/recipes/helm-ls-git";
@@ -34141,22 +34246,22 @@
license = lib.licenses.free;
};
}) {};
- helm-pass = callPackage ({ auth-source-pass, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, password-store }:
+ helm-pass = callPackage ({ auth-source-pass, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, password-store }:
melpaBuild {
pname = "helm-pass";
- version = "20180325.1453";
+ version = "20180415.2038";
src = fetchFromGitHub {
owner = "jabranham";
repo = "helm-pass";
- rev = "c451b9739ef742df06af9d098f6b0fb48e807f66";
- sha256 = "1ndhyb796svisq5wdshxlz4nzjsphmwiwf9kp5f077bi6lx25xkn";
+ rev = "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb";
+ sha256 = "13far24blzmcjyxkwnsqbx0g865p233bx21885nw59rp28frg538";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d8100599d69a760cd4548004a552cc0adcdb3bed/recipes/helm-pass";
sha256 = "11yknsch0avdl8jmj54xk45nba3qh8bhsdrc2rds084i7d5gmqia";
name = "helm-pass";
};
- packageRequires = [ auth-source-pass helm password-store ];
+ packageRequires = [ auth-source-pass emacs helm password-store ];
meta = {
homepage = "https://melpa.org/#/helm-pass";
license = lib.licenses.free;
@@ -34270,12 +34375,12 @@
helm-projectile = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, projectile }:
melpaBuild {
pname = "helm-projectile";
- version = "20180324.1632";
+ version = "20180407.1842";
src = fetchFromGitHub {
owner = "bbatsov";
repo = "helm-projectile";
- rev = "9a4128ffdc96f36ba21f61cabeee1c4640a3d8ce";
- sha256 = "1parnynpdmxvz1plx852h7vja688lqc32yhi87g5fq4vyvms2877";
+ rev = "213339b896eebff6d61778b2b1816301ab583081";
+ sha256 = "1wjlm3i0ygcgy37nn1ljaxx9w7nw3pfczrmv5ibm2dyna88kafr5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc4e3a5af7ba86d277c73a1966a91c87d3d855a/recipes/helm-projectile";
@@ -34589,8 +34694,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/helm-rtags";
@@ -34858,12 +34963,12 @@
helm-system-packages = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, seq }:
melpaBuild {
pname = "helm-system-packages";
- version = "20180321.755";
+ version = "20180412.2325";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-system-packages";
- rev = "e6ce15c5c83148279549c4d9aa16848c1b96cbb4";
- sha256 = "10fcg02cjcw83myv6vy2dpc2llp049q9wzxzb67g83jlry1zlz76";
+ rev = "986b7bd360a705053500c4ce2c9bea03dd7b24a6";
+ sha256 = "19iklhpxgh5xx6h4dysf58nd46lmyb46xj601lf7kbwl6yq0y61f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0c46cfb0fcda0500e15d04106150a072a1a75ccc/recipes/helm-system-packages";
@@ -35131,12 +35236,12 @@
helpful = callPackage ({ dash, dash-functional, elisp-refs, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }:
melpaBuild {
pname = "helpful";
- version = "20180331.1143";
+ version = "20180407.351";
src = fetchFromGitHub {
owner = "Wilfred";
repo = "helpful";
- rev = "f2d6751c48d8318f93124e380f0beba5a1c802cb";
- sha256 = "180ws8d4ifyv3ycj5mci3lhipzybxp4r7g5siacqbkw3ns0cwksp";
+ rev = "5e9f90776ddfa64e11823c98406362bfabc03a3c";
+ sha256 = "1zwnh03ifkmq5r78m714yxha9d0j7bflb78f5jak58f3ympnms76";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful";
@@ -35551,12 +35656,12 @@
highlight-indent-guides = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "highlight-indent-guides";
- version = "20170516.1355";
+ version = "20180404.1216";
src = fetchFromGitHub {
owner = "DarthFennec";
repo = "highlight-indent-guides";
- rev = "b51744bde1287979f2d948f46501bd6ed0897f69";
- sha256 = "17xbd1kiww762dibws48gwn682g1bxy5rb7np5alqhiiw1l13wdw";
+ rev = "a968436711520d4728c0b6c64279eb5eae7e0e5d";
+ sha256 = "0cbdhxmd2a2pygnr4fb246dxyqggv2h8f5q2sflbq05jb81k5fal";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c8acca65a5c134d4405900a43b422c4f4e18b586/recipes/highlight-indent-guides";
@@ -36093,27 +36198,6 @@
license = lib.licenses.free;
};
}) {};
- hl-sexp = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "hl-sexp";
- version = "20101130.443";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "hl-sexp";
- rev = "0606100422321c18db51ceda80f25cd7717c2e01";
- sha256 = "1fsyj9cmqcz5nfxsfcyvpq2vqrhgl99xvq7ligviawl3x77376kw";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hl-sexp";
- sha256 = "109qzk39s5l30fmrfxhkx1y6ldbw9d5xnahwdvasc8fal5j6f1bm";
- name = "hl-sexp";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/hl-sexp";
- license = lib.licenses.free;
- };
- }) {};
hl-todo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "hl-todo";
@@ -36323,6 +36407,27 @@
license = lib.licenses.free;
};
}) {};
+ horoscope = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "horoscope";
+ version = "20180408.2341";
+ src = fetchFromGitHub {
+ owner = "mschuldt";
+ repo = "horoscope.el";
+ rev = "f4c683e991adce0a8f9023f15050f306f9b9a9ed";
+ sha256 = "17k4j4q19l4ahxlzzic1jlbbh7l378j9vgnrcrvpm0lxa9ipclk0";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/180248c19160940a208b32fa7a9660a838f68de5/recipes/horoscope";
+ sha256 = "1y2nzhdl7ghi5l3iyzb04xics7gr5981jmb5z5y8y1z04xhqpfs6";
+ name = "horoscope";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/horoscope";
+ license = lib.licenses.free;
+ };
+ }) {};
hound = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild {
pname = "hound";
@@ -36535,12 +36640,12 @@
htmlize = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "htmlize";
- version = "20180328.2341";
+ version = "20180412.1244";
src = fetchFromGitHub {
owner = "hniksic";
repo = "emacs-htmlize";
- rev = "726c77b909f825b27e734a5460e3e2b63cfc60b0";
- sha256 = "02v14p01qkj1i38r181d6azcdj00331bkdlgcidg6brljl6jzz41";
+ rev = "315a8f23cfd3e87642ff9e30ae3300c7a84244d5";
+ sha256 = "0pjiid5a16xx9n5bvfff612mpli00y9nbzjapn9f1y79yl99yvxy";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/075aa00a0757c6cd1ad392f0300bf5f1b937648d/recipes/htmlize";
@@ -36724,12 +36829,12 @@
hy-mode = callPackage ({ dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "hy-mode";
- version = "20180308.2201";
+ version = "20180411.1231";
src = fetchFromGitHub {
owner = "hylang";
repo = "hy-mode";
- rev = "ca874a29eace152027f982b9720e3962c57a06b1";
- sha256 = "0s1z53v95dnygjp48gmny6a9wq4740rmsaa7p99hlvgqnksx0mzq";
+ rev = "d72192e36aeeae1c7784c95569cc330981465714";
+ sha256 = "1ld1q06i2srnwz1vkwf023vmcranb76xvskhclb8bmwk7gimz95s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fc9ab5cf16b61bb27559cd8ec5cf665a5aab2154/recipes/hy-mode";
@@ -37517,27 +37622,6 @@
license = lib.licenses.free;
};
}) {};
- ido-ubiquitous = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }:
- melpaBuild {
- pname = "ido-ubiquitous";
- version = "20180216.949";
- src = fetchFromGitHub {
- owner = "DarwinAwardWinner";
- repo = "ido-completing-read-plus";
- rev = "2f4050ebd9591a3c2c73cbae1014c908226c43ec";
- sha256 = "1jg3k8ivfjfqh5gw0zzwknvpa8hq21n9p2k913wvxyazv0b1gvqx";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous";
- sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz";
- name = "ido-ubiquitous";
- };
- packageRequires = [ cl-lib ido-completing-read-plus ];
- meta = {
- homepage = "https://melpa.org/#/ido-ubiquitous";
- license = lib.licenses.free;
- };
- }) {};
ido-vertical-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ido-vertical-mode";
@@ -38147,12 +38231,12 @@
indium = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, seq, websocket }:
melpaBuild {
pname = "indium";
- version = "20180307.1359";
+ version = "20180410.457";
src = fetchFromGitHub {
owner = "NicolasPetton";
repo = "Indium";
- rev = "e9db390fa273b02d4e637ab94244358792caead9";
- sha256 = "1cddcnmgdjdm9aqn5nr6g2p93rd4rb0xllyf7rimgf64xnqa96hm";
+ rev = "3b758dff8a5153d6ad8c0d08385e5bcdd69232e4";
+ sha256 = "1yv2nz8x7i0dv2g9485hqq8b5qq397fa5yxv5d8bn5msvj81vl6c";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4292058cc6e31cabc0de575134427bce7fcef541/recipes/indium";
@@ -38189,12 +38273,12 @@
inf-clojure = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "inf-clojure";
- version = "20180316.1140";
+ version = "20180402.1403";
src = fetchFromGitHub {
owner = "clojure-emacs";
repo = "inf-clojure";
- rev = "69137983d368af0dc76cfa2e9e33338b796df5f4";
- sha256 = "02admpcd7gc1zpxha2xcdydbwcr1gbc2z09dnh3yss7ddjzmgbr6";
+ rev = "59868ff0433f7631c362ce25879bd4271d350ebc";
+ sha256 = "1xh901krzwmvkj0rdq0hjbf41vsf92mr0w9vjb9ki660wnnjw8wc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5d6112e06d1efcb7cb5652b0bec8d282d7f67bd9/recipes/inf-clojure";
@@ -38231,12 +38315,12 @@
inf-mongo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "inf-mongo";
- version = "20160815.216";
+ version = "20180408.638";
src = fetchFromGitHub {
owner = "tobiassvn";
repo = "inf-mongo";
- rev = "649dc6ea8e468f1d8109568548eb222c71486dbf";
- sha256 = "19n0ddzgbqhbz3qjpvvw4nasrn2qvkczrdd8kk9h28v8xix5grzp";
+ rev = "2e498d1c88bd1904eeec18ed06b1a0cf8bdc2a92";
+ sha256 = "1m6skisj6r3fbxadpwwgf3a3934b2qvwb7zj975qksxq56ij0wkq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9b27d5354d4b30cc9dd3be730d79e5a5bc1f74/recipes/inf-mongo";
@@ -38567,12 +38651,12 @@
insert-shebang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "insert-shebang";
- version = "20170825.438";
+ version = "20180403.514";
src = fetchFromGitHub {
owner = "psachin";
repo = "insert-shebang";
- rev = "adfa473f07443b231914d277c20a3419b30399b6";
- sha256 = "10zy3vg5fr30hhv0q3jldffhjacg1yrv5d9gfkdz55ry277l3xz1";
+ rev = "7bfea92ba1dae9d13d442e2f84f9fb6c05a0a9bd";
+ sha256 = "01f2p58qsny7p9l6vrra0i2m2g1k05p39m0bzi906zm5awx7l0rr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c257f4f5011cd7d0b2a5ef3adf13f9871bf0be92/recipes/insert-shebang";
@@ -38692,12 +38776,12 @@
intero = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild }:
melpaBuild {
pname = "intero";
- version = "20180331.1851";
+ version = "20180409.1854";
src = fetchFromGitHub {
owner = "commercialhaskell";
repo = "intero";
- rev = "b1d3715e2009cb59c6b35c8cfa3357831fe28d39";
- sha256 = "1yi1101709k3j3zmiw6hllmcfya6k04g03hk15v6h5ghc7sy4mq1";
+ rev = "37af01509e55341ffcc81b56d1f30032a055d1e5";
+ sha256 = "0fqm6r73lk2ysv2zif6mi7zkdzsxar8dxgc5g6j64426hp6jc5m0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1b56ca344ad944e03b669a9974e9b734b5b445bb/recipes/intero";
@@ -39007,12 +39091,12 @@
irony = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }:
melpaBuild {
pname = "irony";
- version = "20180308.1256";
+ version = "20180408.429";
src = fetchFromGitHub {
owner = "Sarcasm";
repo = "irony-mode";
- rev = "847cf4e84f554fdcce49587747f0c18dae12b3ba";
- sha256 = "004b9av02q9165rfr6b3c7qfbry72s9bdkfs3n40f4fp25dcwq0q";
+ rev = "94856c65ea9242aee5f57a66212ad12f5f39252b";
+ sha256 = "1n6malmrxfzrzc9m44ycgp122x3hqkm6yhgiyna53z7bmx6whq70";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d2b6a8d57b192325dcd30fddc9ff8dd1516ad680/recipes/irony";
@@ -39301,12 +39385,12 @@
ivy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ivy";
- version = "20180326.1231";
+ version = "20180415.905";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "swiper";
- rev = "f8cdaa7f3c733b88865650d10d9138bcb40a9ba8";
- sha256 = "0gfaj5ygjmvrmghyqghp7i6wf5abiayb28av4291plpyl0liz78h";
+ rev = "1181d0f7acb9e77a15fa7e62cb1027979185c853";
+ sha256 = "0vsl346axdlkcv96cxlciw7bmvxwl2ficjgw9nxrsvhsjsy7md02";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/06c24112a5e17c423a4d92607356b25eb90a9a7b/recipes/ivy";
@@ -39452,8 +39536,8 @@
src = fetchFromGitHub {
owner = "abo-abo";
repo = "swiper";
- rev = "f8cdaa7f3c733b88865650d10d9138bcb40a9ba8";
- sha256 = "0gfaj5ygjmvrmghyqghp7i6wf5abiayb28av4291plpyl0liz78h";
+ rev = "1181d0f7acb9e77a15fa7e62cb1027979185c853";
+ sha256 = "0vsl346axdlkcv96cxlciw7bmvxwl2ficjgw9nxrsvhsjsy7md02";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/06c24112a5e17c423a4d92607356b25eb90a9a7b/recipes/ivy-hydra";
@@ -39490,12 +39574,12 @@
ivy-mpdel = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, libmpdel, melpaBuild, mpdel }:
melpaBuild {
pname = "ivy-mpdel";
- version = "20180319.757";
+ version = "20180401.1207";
src = fetchFromGitHub {
owner = "mpdel";
repo = "ivy-mpdel";
- rev = "6948fba6872b4f9b6cca9c73b968bd8cd5aae62f";
- sha256 = "152gmqjc4sq3210ckb974b7xqqc3admshgjnazgz32239v0l5gyk";
+ rev = "f9f745792abfed85d535b4cb5b2a95f944bbad1d";
+ sha256 = "1sxd9hny0n751irf87bab0g3ygq6j4g32gdy4yk27y3r00i9g4b6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb25443752e18e47afc63d5497cc5052c388a607/recipes/ivy-mpdel";
@@ -39641,8 +39725,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ivy-rtags";
@@ -39700,12 +39784,12 @@
ivy-xref = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "ivy-xref";
- version = "20180201.1919";
+ version = "20180405.1721";
src = fetchFromGitHub {
owner = "alexmurray";
repo = "ivy-xref";
- rev = "4d2c437b479733e4159a356c9909ed3e110403a1";
- sha256 = "19gzsphcmkzyihcijb0609ykv98ak24p3z4k0ifil5r40iss1d1n";
+ rev = "5c21aa14c81df1b75a4c7090729a41f755b74916";
+ sha256 = "0qw3yqbs340k4mv0wy42nrn7r1wx537ypnr2idrll4v8fppfz24n";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a4cd8724e8a4119b61950a97b88219bf56ce3945/recipes/ivy-xref";
@@ -40538,12 +40622,12 @@
jq-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "jq-mode";
- version = "20180213.755";
+ version = "20180407.1048";
src = fetchFromGitHub {
owner = "ljos";
repo = "jq-mode";
- rev = "d1fca4613ec90c2c0b8241f4603eba733dd1ac73";
- sha256 = "0sgpl03dqm4lv081l3ff3xp38c39q5i2miyvpsqdjmgnixg3nm8c";
+ rev = "72ea5e35e0a66c7275cf4fe4af25a619761653d7";
+ sha256 = "0xgkmadbbs3zid11pn6silb25kyng424ikgx0wib48yzcra0kdw4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/318705966e26e58f87b53c115c519db95874ac1c/recipes/jq-mode";
@@ -40790,12 +40874,12 @@
js2-refactor = callPackage ({ dash, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, multiple-cursors, s, yasnippet }:
melpaBuild {
pname = "js2-refactor";
- version = "20180322.338";
+ version = "20180410.201";
src = fetchFromGitHub {
owner = "magnars";
repo = "js2-refactor.el";
- rev = "7701772b2335d811361481bbb188da17afb9d0b8";
- sha256 = "10hl01rn8s2q2j2m66mzg3sdaqdl6ivqr9sr1rpv1fn41dy0dlqj";
+ rev = "391e06c80e9197581c9d0b04edb5a65ffc149dcf";
+ sha256 = "1w6pjhvcc8i7rmg85nxbnch3yxfcz81i7d1kdpbyra0i2ls7ikvm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8935264dfea9bacc89fef312215624d1ad9fc437/recipes/js2-refactor";
@@ -41359,8 +41443,8 @@
src = fetchFromGitHub {
owner = "listx";
repo = "kakapo-mode";
- rev = "67d516138172fd60782df94454b3d0bd247e84f3";
- sha256 = "0r2n410arr48skcwm39c6mjhzsia117lb8xd7pc4854y0rbrvrvs";
+ rev = "292e07203c676361a1d918deb5acf2123cd70eaf";
+ sha256 = "00rl5y7wra7kyp867ps2inx0vng9jrmym0sm4jhnk6pqj50c8i9y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a43f0f1f6a0773240a51d379ec786c20a9389e7b/recipes/kakapo-mode";
@@ -41458,12 +41542,12 @@
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "kaolin-themes";
- version = "20180323.1118";
+ version = "20180416.401";
src = fetchFromGitHub {
owner = "ogdenwebb";
repo = "emacs-kaolin-themes";
- rev = "245a02265d06a499b600ef591fcfb9a7bf2c1b39";
- sha256 = "05b6q9cxwj8hdmkqbisd0p49z5n9dacxw3rcs9a8nww27frnxzx3";
+ rev = "2afd1be2a431b59e82ce22353b57bb7def851da5";
+ sha256 = "19y5j2jha3q3i0l06bzywgxbc8q34sc1rh76j0wfvm6r6yxq1bwa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
@@ -41987,8 +42071,8 @@
src = fetchFromGitHub {
owner = "kivy";
repo = "kivy";
- rev = "86b6e19d8a02788fe8850b690bcecdff848f3c4e";
- sha256 = "1bgjfi6gddx2dwpisnvsig1j4zz9hdf83dy700jxy4gbsrn8d30m";
+ rev = "94d623f914745aab67715356db6731860a3e37e1";
+ sha256 = "1hs69p79f27rdy8v4dld46qdnsszm7f4xx0nqlvz1pgy0wm3lq71";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/688e2a114073958c413e56e1d117d48db9d16fb8/recipes/kivy-mode";
@@ -42445,12 +42529,12 @@
langtool = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "langtool";
- version = "20170917.2154";
+ version = "20180409.316";
src = fetchFromGitHub {
owner = "mhayashi1120";
repo = "Emacs-langtool";
- rev = "bae4bdd240583b2253b4ff03af5295146e285103";
- sha256 = "0zwaddpmvkq7v5nnyzacmx0ql5zjlisvkqwa2knw3pihngr160cd";
+ rev = "d93286722cff3fecf8641a4a6c3b0691f30362fe";
+ sha256 = "17xa055705n4jb7nafqvqgl0a6fdaxp3b3q8q0gsv5vzycsc74ga";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/503845e79e67c921f1fde31447f3dd4da2b6f993/recipes/langtool";
@@ -42738,12 +42822,12 @@
lcr = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "lcr";
- version = "20180224.1243";
+ version = "20180414.1256";
src = fetchFromGitHub {
owner = "jyp";
repo = "lcr";
- rev = "6caa2bac7056dcf42c4cb88a1d5fbe1c9d71a9b4";
- sha256 = "0xvl0dqxwim6nmm6f9ddyp0r6j1n719zlgm2a3f49dskhnkn798z";
+ rev = "49a59d80a4b55cc421cb55430ff8258887382c3d";
+ sha256 = "1fds0s0if9m155v5hk5l0ihc6wr331qif5bc013w04hrlkn4v5jh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/29374d3da932675b7b3e28ab8906690dad9c9cbe/recipes/lcr";
@@ -42756,27 +42840,6 @@
license = lib.licenses.free;
};
}) {};
- ldap-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "ldap-mode";
- version = "20091203.1015";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "ldap-mode";
- rev = "8761a835e90b990fb5fe70173ecdcd6f4b776cb0";
- sha256 = "03mv2r6k9syr7bk4vmdafmpa8kz19hv5h68ahj2bmdcmwlvwhkf3";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/169243eedf4ee97fe01811a686f0798f2573fa0a/recipes/ldap-mode";
- sha256 = "0lkfpbzsry9jigrx5zp14bkrvqnavnk4y3s0whnbigc4fgpf94rq";
- name = "ldap-mode";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/ldap-mode";
- license = lib.licenses.free;
- };
- }) {};
lean-mode = callPackage ({ dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s }:
melpaBuild {
pname = "lean-mode";
@@ -42822,12 +42885,12 @@
ledger-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ledger-mode";
- version = "20180317.2003";
+ version = "20180416.105";
src = fetchFromGitHub {
owner = "ledger";
repo = "ledger-mode";
- rev = "74b242f9cfd9e3a0735c4041b3941ddb65642fc9";
- sha256 = "1fyyhrr4600q706v05pnc25j4apmz8m52jdb1s7jnwph89zwm18c";
+ rev = "fa09a3bdd25a532b8ee1335e22b7427eb0d231e9";
+ sha256 = "0hp7p6nmxp4ass17vnlx0r73k9gc4z8aknsmpwpyw1radx26vy1k";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1549048b6f57fbe9d1f7fcda74b78a7294327b7b/recipes/ledger-mode";
@@ -43137,12 +43200,12 @@
libmpdel = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "libmpdel";
- version = "20180328.2353";
+ version = "20180403.816";
src = fetchFromGitHub {
owner = "mpdel";
repo = "libmpdel";
- rev = "abb748b6cb35de4652df80ce8539bfc63189619d";
- sha256 = "0ccqcn85131pywzga4644f0azxrsl5ay69m6jz27zzvshs7gzzjv";
+ rev = "6e9b1bd6c3439c8e15be0f85eff94f95d1e987f6";
+ sha256 = "03qcr2nc8x8h3cgb7fzk7r69b5fqpq63a3x8vd4fr6nps8bsb8gd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb25443752e18e47afc63d5497cc5052c388a607/recipes/libmpdel";
@@ -43263,12 +43326,12 @@
link-hint = callPackage ({ avy, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "link-hint";
- version = "20170923.855";
+ version = "20180407.1440";
src = fetchFromGitHub {
owner = "noctuid";
repo = "link-hint.el";
- rev = "0294df85aee10b47fcf6c2c9bfe7e1038660fa21";
- sha256 = "0ixfrp6pfljgy5ja79cka0fa6a9ganwhh5myz6czqj4ykjzlyi2c";
+ rev = "b350015ec4ebea9e84f73dcac808dd79b2882966";
+ sha256 = "10gqpqq1xgjji7plljjkqzi0p63q65avjya0fsalrwvakzsx6xlv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d24b48fe0bc127ae6ac4084be8059aacb8445afd/recipes/link-hint";
@@ -43439,12 +43502,12 @@
lispy = callPackage ({ ace-window, emacs, fetchFromGitHub, fetchurl, hydra, iedit, lib, melpaBuild, swiper, zoutline }:
melpaBuild {
pname = "lispy";
- version = "20180329.524";
+ version = "20180415.1117";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "lispy";
- rev = "1ef2ad809922aff9ff4c50ea61c39dfd1c5dd7e0";
- sha256 = "055ckkikzgl7dwsp28h6qxbhxi0gxwg6r82g3w9y9xffjnsv2d3y";
+ rev = "582c9994688fcbbda454207e4112ad4a0cd80970";
+ sha256 = "02frf3r2m0hfz3xf3vvcccxi4gvkl9fz5asrgrc0f6v45850mdv2";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e23c062ff32d7aeae486c01e29c56a74727dcf1d/recipes/lispy";
@@ -43481,12 +43544,12 @@
lispyville = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, lispy, melpaBuild }:
melpaBuild {
pname = "lispyville";
- version = "20180327.1343";
+ version = "20180414.1952";
src = fetchFromGitHub {
owner = "noctuid";
repo = "lispyville";
- rev = "647de2c3fa3e4cabc791f6d40edcd243b23c4d53";
- sha256 = "0gqph6hbywkzikqxqfvb1fj12srns54jddhkvkrspi71s7g7cff4";
+ rev = "d2491462647fc6cffcc8f40c2a518a4948f2afcb";
+ sha256 = "029jg6nggk5qvrskvlgb52ymgbakd56cnva1mgb10invr0wpswqq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b5d96d3603dc328467fcce29d3ac1b0a02833d51/recipes/lispyville";
@@ -43541,27 +43604,6 @@
license = lib.licenses.free;
};
}) {};
- list-register = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "list-register";
- version = "20091203.1015";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "list-register";
- rev = "f8bec5dc3765174de1089549947d9ca9a1cdbe5f";
- sha256 = "1pr7vmjmyildg44n7psg0zmj8a3kfsw5xmgh600fhs95wqxn3sag";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/list-register";
- sha256 = "0kza9xfhmxc8qia5yixx5z2y9j4wb1530rcvgxn545b903fs55kv";
- name = "list-register";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/list-register";
- license = lib.licenses.free;
- };
- }) {};
list-unicode-display = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "list-unicode-display";
@@ -44381,12 +44423,12 @@
lsp-javascript-typescript = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }:
melpaBuild {
pname = "lsp-javascript-typescript";
- version = "20180203.52";
+ version = "20180403.743";
src = fetchFromGitHub {
owner = "emacs-lsp";
repo = "lsp-javascript";
- rev = "8df90bc27852da2cf05951870d94ce7920d8c09f";
- sha256 = "0pqk8p0z30p0j7lc5i2mvy7vmg8k5hphgwp4djhgm1ickm9pcx20";
+ rev = "2c1f2f4cb24c30fcefb2d07dad3f40b058c90c1f";
+ sha256 = "0pjzywlg981pvg4015w11b1dzrvqm1h3fjdl6qp6pv7iq2x9hxdp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/999a4b0cd84e821c7e785ae4e487f32cff5c346b/recipes/lsp-javascript-typescript";
@@ -44402,12 +44444,12 @@
lsp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "lsp-mode";
- version = "20180330.2309";
+ version = "20180416.622";
src = fetchFromGitHub {
owner = "emacs-lsp";
repo = "lsp-mode";
- rev = "7dd173015d2c355e1dd2cc7a62ad75825e89e235";
- sha256 = "155n00m2bk4ayimn8nwn1ikzq53d2mda550k6z7cfw9il1bk9qkz";
+ rev = "34a669b76ac0aa45b4917f882687ca7577814249";
+ sha256 = "091ph46y6mb9rf0saar0vb230z1kf8w74f3dkcm7hs7b1k7khj3f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-mode";
@@ -44465,12 +44507,12 @@
lsp-python = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }:
melpaBuild {
pname = "lsp-python";
- version = "20171021.254";
+ version = "20180404.819";
src = fetchFromGitHub {
owner = "emacs-lsp";
repo = "lsp-python";
- rev = "035fed681ef18a774dcb82e361bd6b5b8778623f";
- sha256 = "0mhs7v1mc23h0rlcyinl3pf1qavjl4s6j5vrf9vc65sggsnw0x1d";
+ rev = "e2fb53d191344dd73e26ffaaa4ac95cd6686dbd9";
+ sha256 = "0s0w6sx7k7ys9i1w8zcf3hp9v3qzmcm4gl5pdnwr08ln73d3as9g";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-python";
@@ -44507,12 +44549,12 @@
lsp-ui = callPackage ({ dash, dash-functional, emacs, fetchFromGitHub, fetchurl, flycheck, lib, lsp-mode, markdown-mode, melpaBuild }:
melpaBuild {
pname = "lsp-ui";
- version = "20180330.1806";
+ version = "20180412.1807";
src = fetchFromGitHub {
owner = "emacs-lsp";
repo = "lsp-ui";
- rev = "d4724353e87d5d79634d0d000aee15119899971a";
- sha256 = "1zbywpv3dypp0r4qksaj538nfv1ml25v0q2bi2m23yh29kfs2yi4";
+ rev = "146efa7414a91090c494e24fac364011bc884f31";
+ sha256 = "0076kjv1wpw079mbv35v0j609xhis7xrvx6jg54hnb7y5h5rkqqz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e4fa7cdf71f49f6998b26d81de9522248bc58e6/recipes/lsp-ui";
@@ -44871,12 +44913,12 @@
magit = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, ghub, git-commit, let-alist, lib, magit-popup, melpaBuild, with-editor }:
melpaBuild {
pname = "magit";
- version = "20180401.314";
+ version = "20180416.852";
src = fetchFromGitHub {
owner = "magit";
repo = "magit";
- rev = "570c2a777ec222918492255463742d44a78befee";
- sha256 = "0741c3zd48ybfs67331hxj026lp7frzrzml0kzspbx2121d56yzh";
+ rev = "16785d7962cf84df12cf1e498b2c96519e84d235";
+ sha256 = "0ifzqqsyqk5x3d8zvq0yspcfhlndl7ppv6yxzz8w27pgb4h0jqwn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b0a9a6277974a7a38c0c46d9921b54747a85501a/recipes/magit";
@@ -45069,12 +45111,12 @@
magit-org-todos = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
melpaBuild {
pname = "magit-org-todos";
- version = "20180319.859";
+ version = "20180412.1542";
src = fetchFromGitHub {
owner = "danielma";
repo = "magit-org-todos.el";
- rev = "df206287737b9671f2e36ae7b1474ebbe9940d2a";
- sha256 = "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn";
+ rev = "0bfa36bbc50e62de0a3406031cb93e2f57dcdc55";
+ sha256 = "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/84480cad490cab2f087a484ed7b9d3d3064bbd29/recipes/magit-org-todos";
@@ -45115,8 +45157,8 @@
src = fetchFromGitHub {
owner = "magit";
repo = "magit-popup";
- rev = "32e6da899abd6657c098534c5775fc7177047f49";
- sha256 = "0nrvs7gwd9kn4n808akrydn7zggvy9zyk38yrcmm561kw0h0h903";
+ rev = "a0b22e30d135d4f83a9227b3fa13b1377f9be0df";
+ sha256 = "0sn9gi0qm3q6c63f1jd67pkc54r2gqk8bzh21x48n2x2v4f84s63";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0263ca6aea7bf6eae26a637454affbda6bd106df/recipes/magit-popup";
@@ -45216,12 +45258,12 @@
magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, ghub-plus, git-commit, lib, magit, markdown-mode, melpaBuild, s }:
melpaBuild {
pname = "magithub";
- version = "20180330.1737";
+ version = "20180410.1351";
src = fetchFromGitHub {
owner = "vermiculus";
repo = "magithub";
- rev = "aeb554d9851dca009b7850843fbd0227fa33ab21";
- sha256 = "1yzfifdaaqpzngkdwf12951925vqx0rb1wih5s8r0lxdivw9w483";
+ rev = "76b0156323c9953a8c6f36ff483a2d528d8df9bc";
+ sha256 = "0xg0284ca7w1clfyrd7lhiick6izj00bi9zn0hdq01h9lifardxw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/magithub";
@@ -45237,12 +45279,12 @@
magma-mode = callPackage ({ cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "magma-mode";
- version = "20160304.408";
+ version = "20180413.727";
src = fetchFromGitHub {
owner = "ThibautVerron";
repo = "magma-mode";
- rev = "528c96a269980dcc6b65e2e973510ff07e6b9fc4";
- sha256 = "1pq6ckxp3dcb2f6xfsd4jwd43r9d0920m30ammp39glgc39p9lsq";
+ rev = "d8e41b3c0bc7d37be78fdbcabf6c13c9e182dfaa";
+ sha256 = "1wlwgbj3hslfxl21nz5s7g0p4kdpc5ph58jp7mrz0dws5cw3sj02";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/59764a0aab7c3f32b5a872a3d10a7e144f273a7e/recipes/magma-mode";
@@ -45363,12 +45405,12 @@
makefile-executor = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "makefile-executor";
- version = "20180315.632";
+ version = "20180410.30";
src = fetchFromGitHub {
owner = "thiderman";
repo = "makefile-executor.el";
- rev = "06b2efa4539c319ab36806b0bd8ea87e214aaa74";
- sha256 = "08rjj3bdnvmaxiwnys4cjd19wkkk06wv0l58hpn3c7vi077ps3cc";
+ rev = "054c5460616d1903499d49190ac79074e9bd1c52";
+ sha256 = "0axqm8hd2hz1a4qh02p7kyvrb0mab8iswpypij3q05s5yxidv1vv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/08f8b4d680e4907dbd8ea46a75d98aa0e93c2bb9/recipes/makefile-executor";
@@ -45552,12 +45594,12 @@
mandoku = callPackage ({ fetchFromGitHub, fetchurl, git, github-clone, lib, magit, melpaBuild, org }:
melpaBuild {
pname = "mandoku";
- version = "20180223.2121";
+ version = "20180403.406";
src = fetchFromGitHub {
owner = "mandoku";
repo = "mandoku";
- rev = "d44fd7e27c28f4cde7a739994744f3eecaab3b6f";
- sha256 = "16rlnzcwav4f66iib9ys7zb6lmxs4hn0cr035i9xp6a8rgxjgw21";
+ rev = "f230c871de8aab1be7b7a9718cd930548a90baa8";
+ sha256 = "1zqshxwbsyz60bag6dcabmx8a49nmnpad5kvpy1c6gvqhjr8axvw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1aac4ae2c908de2c44624fb22a3f5ccf0b7a4912/recipes/mandoku";
@@ -46280,12 +46322,12 @@
meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "meghanada";
- version = "20180218.538";
+ version = "20180405.1845";
src = fetchFromGitHub {
owner = "mopemope";
repo = "meghanada-emacs";
- rev = "ca20c57c9c389d4dd9fe88d9a3da33d5af78e4d0";
- sha256 = "1k9dpvvz7qcscq9z76xvsas96lj0xsnp725z3w97sahqsi0sdxq8";
+ rev = "5479b42efe3ed504e3a0824e039e8365ebc0b788";
+ sha256 = "1jn4cpd6y310c8kkk7w0lpchac0rd3f8ri3lmy369gi1sb2xsk94";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
@@ -46620,8 +46662,8 @@
src = fetchFromGitHub {
owner = "purpleidea";
repo = "mgmt";
- rev = "3c8d424a431abc0a19b456a8aa4fcdb739151f3d";
- sha256 = "0kp82xy6a8vkq5l0fcjw5f5yzg33ig28kc9zv1qs7a2czswnmydx";
+ rev = "754480a9b6f2d62093fb7a264a5c4ac42fc57997";
+ sha256 = "1z7gaij17yxk3ikxljlb54cvdcz0lhnm8wl0bpzpiycpnfkqxcy4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4cf3dd70ae73c2b049e201a3547bbeb9bb117983/recipes/mgmtconfig-mode";
@@ -47077,12 +47119,12 @@
mixed-pitch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "mixed-pitch";
- version = "20180314.1441";
+ version = "20180410.917";
src = fetchFromGitHub {
owner = "jabranham";
repo = "mixed-pitch";
- rev = "b76567bd0c55f72942e686b7de97a222d333b333";
- sha256 = "186s9ligb1b3hh54pdhfkvpzva5dkj87ydslyi3jjf7yrhvxgw9k";
+ rev = "b6b1601c7a3eb9ab23e33192bc479bccc4dd5e7b";
+ sha256 = "0g3mcbsjgcwg196ygj21i454ifyf0898r0xlkar1fqdl8lckb8zj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/20e85b11dc864500d44b25e36c5e7c4c67c1ebe2/recipes/mixed-pitch";
@@ -47457,8 +47499,8 @@
version = "20180120.1514";
src = fetchgit {
url = "https://git.daemons.it/drymer/molecule.el/";
- rev = "758dad6f5701c3a2e1146ba5895c08ef734a93d2";
- sha256 = "0syirvzjgbf1yvcvp00a19m4gi49yh1g95ba896mh741wrkilhb4";
+ rev = "f3a1b19d2e0312bbb9ada00146994df84576abd2";
+ sha256 = "0didxv3v3qnn3szxfnm1cmgpx0bhmjccdja3fhbhhdmp948904cy";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7421b67dc51abf13bb028e467bb4c83f857a342e/recipes/molecule";
@@ -47600,12 +47642,12 @@
monokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "monokai-theme";
- version = "20180314.501";
+ version = "20180402.221";
src = fetchFromGitHub {
owner = "oneKelvinSmith";
repo = "monokai-emacs";
- rev = "da23ef64d4848636e47a026259526575381bd164";
- sha256 = "08py8dmwlqhc16fjcjf24dmpfbv2xpq8b0l43cx8f44f6791r2qf";
+ rev = "1143c072f5153ae1a69807e5e8af163069b947d2";
+ sha256 = "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bc9ce95a02fc4bcf7bc7547849c1c15d6db5089/recipes/monokai-theme";
@@ -47663,12 +47705,12 @@
moody = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "moody";
- version = "20180321.750";
+ version = "20180403.549";
src = fetchFromGitHub {
owner = "tarsius";
repo = "moody";
- rev = "db27ba168503bd6e6c98c313e73699dc403a10aa";
- sha256 = "1y0zg0flcv3sawyqvwilh1ysvbn1bsnkn0b2n89lj00zyb5dj5z8";
+ rev = "adf652f35cba1bb3d0f254e1905e2deeeb0fbdba";
+ sha256 = "1zspq29n60r0kd9fy7d50zdypljigwcjb0qa5gkwiipnhpcnf9bp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/63521fe6a1e540544a07231cc94144439e8caea7/recipes/moody";
@@ -48041,12 +48083,12 @@
mpdel = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, libmpdel, melpaBuild }:
melpaBuild {
pname = "mpdel";
- version = "20180328.2359";
+ version = "20180405.148";
src = fetchFromGitHub {
owner = "mpdel";
repo = "mpdel";
- rev = "3786dd31a9f0a3355c967889323742cfe61f4141";
- sha256 = "0fqdhjmywyw9yd97glrw12j962kmq062djgz2ymv6kspy2g1xv9y";
+ rev = "82f98b94d0bfcb48b8ed9985ef8bf9202c8917f7";
+ sha256 = "1fhcf1mm7pjjy9nyjr3lkqhn0xsp8bpykzk2pxdzfkidb1ca47bf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb25443752e18e47afc63d5497cc5052c388a607/recipes/mpdel";
@@ -48338,8 +48380,8 @@
src = fetchFromGitHub {
owner = "sagarjha";
repo = "multi-run";
- rev = "87d9eed414999fd94685148d39e5308c099e65ca";
- sha256 = "0m4wk6sf01b7bq5agmyfcm9kpmwmd90wbvh7fkhs61mrs86s2zw8";
+ rev = "3c5e44afd69aac2e0a5be118cf6249b757e2889a";
+ sha256 = "0jknx6b973wlhmg01nymncqr2809kmjhchv75v92fas5yvn1pb3w";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e05ad99477bb97343232ded7083fddb810ae1781/recipes/multi-run";
@@ -48439,12 +48481,12 @@
multiple-cursors = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "multiple-cursors";
- version = "20180320.747";
+ version = "20180406.1350";
src = fetchFromGitHub {
owner = "magnars";
repo = "multiple-cursors.el";
- rev = "0e49fecc18fc57e45398be886c91850b12abf112";
- sha256 = "007qpgd6z20wa581r2zycfjzgw5dq0fawrffk4h3spf1pmjvn8m3";
+ rev = "75dd6bf83af4eff83dc22e278c47264c1a41cd66";
+ sha256 = "0cw6xcc1m4r0gdqrlj5w6kbyjwqbhhpvrrr7p4b1mhd4c2a7lhiv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f015e6b88be2a5ded363bd882a558e94d1f391/recipes/multiple-cursors";
@@ -49278,12 +49320,12 @@
neon-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "neon-mode";
- version = "20170711.501";
+ version = "20180406.456";
src = fetchFromGitHub {
owner = "Fuco1";
repo = "neon-mode";
- rev = "9c23289c0c8ed17d1596cfb95a5ade57df7db5f7";
- sha256 = "0q5niz0di1r0wl0lsq8hcsz854xdwpzw798sl42qc1r5mdpz3ghz";
+ rev = "99d15e46beaf1e7d71e39a00cce810df1f33229d";
+ sha256 = "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c6b2a4898bf21413c4d9e6714af129bbb0a23e1a/recipes/neon-mode";
@@ -49571,12 +49613,12 @@
nimbus-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "nimbus-theme";
- version = "20180401.917";
+ version = "20180410.307";
src = fetchFromGitHub {
owner = "m-cat";
repo = "nimbus-theme";
- rev = "49f1bed0cedcc901414fbd983c3859e9c6432342";
- sha256 = "090r2ldxql3v286gkkjvd6mrp1a0hkypm86kpsy5zd77bxz0gn3v";
+ rev = "6b0c1ef6e6cec93b0d17a714406830edab8cb995";
+ sha256 = "1h5c5fsg610mqi7m0ddnkvc0l4952hdjic3hpbnmjaicnhszdgfw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fc0e6b456b76e2379c64a86ad844362c58146dc6/recipes/nimbus-theme";
@@ -49596,8 +49638,8 @@
src = fetchFromGitHub {
owner = "martine";
repo = "ninja";
- rev = "e234a7bdb6c42f4539c0ab09b624f191287c2c10";
- sha256 = "01hsabhvp1yilzdss3mkvrskkvxw41xxch6lkwlcrr6h5f70szi2";
+ rev = "ca041d88f4d610332aa48c801342edfafb622ccb";
+ sha256 = "05wipm7cvhyf1fsd5awi44yzndllfsmg0i3xzdmml545ypdimk3m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/aed2f32a02cb38c49163d90b1b503362e2e4a480/recipes/ninja-mode";
@@ -49634,12 +49676,12 @@
nix-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "nix-mode";
- version = "20180215.1331";
+ version = "20180403.1741";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix-mode";
- rev = "0ac0271f6c8acdbfddfdbb1211a1972ae562ec17";
- sha256 = "157vy4xkvaqd76km47sh41wykbjmfrzvg40jxgppnalq9pjxfinp";
+ rev = "cc23fd6a0e394aeeed603e2bfeb4a5ebc63db660";
+ sha256 = "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode";
@@ -49802,12 +49844,12 @@
no-littering = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "no-littering";
- version = "20180331.155";
+ version = "20180414.503";
src = fetchFromGitHub {
owner = "emacscollective";
repo = "no-littering";
- rev = "b67f52072096f7e9efe98d2cc106ba39652c7545";
- sha256 = "108zjw83rh7yfrf999lx4dd7vh5281qigrnli50q75j4qhnmsfm7";
+ rev = "9bffebc0f4858a06ba374f1d48a7dffd3537b93e";
+ sha256 = "02dhplz597r5qp1mljy1npx2kzg07l938d2xivwy9cd6jlkj35ya";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering";
@@ -50054,8 +50096,8 @@
version = "20180324.1609";
src = fetchgit {
url = "https://git.notmuchmail.org/git/notmuch";
- rev = "c117306f2dfcdf705ef3433962d227d1cb39eb90";
- sha256 = "1xkzy39b50xa6nzgbdkjcx0yivg6sw2pia39lli70bg76c13lc3a";
+ rev = "5d510221d17862a252955d98046508bebcd14573";
+ sha256 = "1pls4wny8f5pdfgmdg4c3cpsdy046hwmlaqlf90x5x9hp2jyibnz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d05fbde3aabfec4efdd19a33fd2b1297905acb5a/recipes/notmuch";
@@ -50096,8 +50138,8 @@
src = fetchFromGitHub {
owner = "wasamasa";
repo = "nov.el";
- rev = "e7bb37334ca85ce0e3f5c980464f652266a11218";
- sha256 = "1lymf4ir9kja0dpifbx230cq3n1li25kcdn3x3bh8fskiil1pqm0";
+ rev = "b4959103619d94a7a1d5fe1d9a15887fc2b12b8f";
+ sha256 = "18kqw9c2a6si1q55r7w8mmwhqfnajdxvrv9dckwxkc4pbgpjkk8j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cf543955ba2d5d0074fa2a5ba176f9415f6e006d/recipes/nov";
@@ -50497,12 +50539,12 @@
ob-async = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "ob-async";
- version = "20171114.1936";
+ version = "20180410.2058";
src = fetchFromGitHub {
owner = "astahlman";
repo = "ob-async";
- rev = "99a6f24191cacb343d6090ecc8c1c67f768b2e22";
- sha256 = "1cw62nsdnmllpkn4mqi80vp6s17yf6an418gvr06z8cxqndw07h1";
+ rev = "703159f106ba918ccd4e3c053eb887840aea8e5f";
+ sha256 = "06aax8k3p9h49sdy47v73a851b6xwkvz97xgcrplhrpi2w77p7ll";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ob-async";
@@ -50601,12 +50643,12 @@
ob-clojurescript = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "ob-clojurescript";
- version = "20180318.1519";
+ version = "20180406.1128";
src = fetchFromGitLab {
owner = "statonjr";
repo = "ob-clojurescript";
- rev = "f6771b692af7d7aa78990161d4ef843009b9ace4";
- sha256 = "0nca5hizg3p8f92dc330algf2ad6lf5m27n151095zd71fj3q187";
+ rev = "17ee1558aa94c7b0246fd03f684884122806cfe7";
+ sha256 = "1an4m7mpr345xw4fanyf2vznxm1dxbv35987caq1wq9039mzfaxr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0c9ccc0d2d034944cb9688d5e184fa5df95f6b31/recipes/ob-clojurescript";
@@ -50832,12 +50874,12 @@
ob-http = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "ob-http";
- version = "20170920.2251";
+ version = "20180416.822";
src = fetchFromGitHub {
owner = "zweifisch";
repo = "ob-http";
- rev = "c4da6d47b3f96c31c00f9eaaf712b59afe00daef";
- sha256 = "0rhxp7gw4d5yp6yvjcp80in22wckj4zl9siykalj0jm97hkwqmzz";
+ rev = "b68a0187e4f67e57891a3faae384d650a1cf31fc";
+ sha256 = "0107xn1z2im8672lwsw4r7blza1gamgihy9aahxyf27jc0a2zvfx";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/950b02f76a04f453992b8720032e8c4cec9a039a/recipes/ob-http";
@@ -52080,12 +52122,12 @@
org-alert = callPackage ({ alert, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "org-alert";
- version = "20170724.2116";
+ version = "20180413.2111";
src = fetchFromGitHub {
owner = "groksteve";
repo = "org-alert";
- rev = "3b7417ac12f2710e88f8dff538670621064ef8bc";
- sha256 = "1hyl4b2r7wzdfr2m7x8pgpylia3z15fihn679xdiyc32rzy7k5vk";
+ rev = "85fd01f5bde7cb3adb167a8e37e52865d49c9579";
+ sha256 = "1isb6ym8c22f9y2wph6zy90x9nl4g51fal68vfklg8bq1pywzj7a";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2976b7f9271bc46679a5774ff5f388b81a9f0cf8/recipes/org-alert";
@@ -52227,12 +52269,12 @@
org-brain = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "org-brain";
- version = "20180319.353";
+ version = "20180411.1157";
src = fetchFromGitHub {
owner = "Kungsgeten";
repo = "org-brain";
- rev = "3749aa100569e9d32609aa8368f12ced4dc1f757";
- sha256 = "0mld8lalq9lkihfv0vr9qsihdav6anvamihlcg2d69kcg088yqgj";
+ rev = "6857c9dcf11135eef40b8f1f86d10a71cecc86ac";
+ sha256 = "092rl3vfkbj7vcn49bibc1s3m0479l0isbhb2w7xb06dh8k8j9ih";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/47480fbae06e4110d50bc89db7df05fa80afc7d3/recipes/org-brain";
@@ -52269,12 +52311,12 @@
org-caldav = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "org-caldav";
- version = "20170615.724";
+ version = "20180403.1336";
src = fetchFromGitHub {
owner = "dengste";
repo = "org-caldav";
- rev = "07e6ccda6756754a115d567f2ad3a760514b731d";
- sha256 = "0gaqkbdqkb7v6k2bg21c8c7c38g9rkgk8gy79s4gi6hzd4j717mp";
+ rev = "8d3492c27a09f437d2d94f2736c56d7652e87aa0";
+ sha256 = "19q83xgbdabkidx26xvff1x7kixk2wllplnwfsy7kggdj9wqpm9l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-caldav";
@@ -52731,12 +52773,12 @@
org-evil = callPackage ({ dash, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, monitor, org }:
melpaBuild {
pname = "org-evil";
- version = "20171102.556";
+ version = "20180416.953";
src = fetchFromGitHub {
owner = "GuiltyDolphin";
repo = "org-evil";
- rev = "90a82ec72fb688ef98d1343c02dc3c6da9e4bbee";
- sha256 = "0fl9m1bgcmvxpdmb05lbna9snfrd8gbrn16c2w72b3asxx7acq94";
+ rev = "4e1f949a6fb225e79e69cb8684c0629671b6b8e3";
+ sha256 = "1nrcwjl50nycyraac2zwlx3346az7521icf1h718hqqw4r799ggk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/17a4772d409aa5dbda5fb84d86c237fd2653c70b/recipes/org-evil";
@@ -52854,6 +52896,27 @@
license = lib.licenses.free;
};
}) {};
+ org-index = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "org-index";
+ version = "20180414.208";
+ src = fetchFromGitHub {
+ owner = "marcihm";
+ repo = "org-index";
+ rev = "0dfe0a67979279345378ca006ab4f727df378aca";
+ sha256 = "16wjzskq000grkanaw9zca2qbw9yzpndhfd2g0b0if2mf1g31mkv";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/54946e733901986304f7a7a5139b2818ebf97eb3/recipes/org-index";
+ sha256 = "1dp52xqrhby2xyi6p2d0ggp5irqsqwicp62ndg5wszyd33clxab5";
+ name = "org-index";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/org-index";
+ license = lib.licenses.free;
+ };
+ }) {};
org-iv = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, impatient-mode, lib, melpaBuild, org }:
melpaBuild {
pname = "org-iv";
@@ -52896,22 +52959,22 @@
license = lib.licenses.free;
};
}) {};
- org-journal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ org-journal = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-journal";
- version = "20180327.819";
+ version = "20180402.536";
src = fetchFromGitHub {
owner = "bastibe";
repo = "org-journal";
- rev = "d225d093e2e87574b67d79206764b6cf5cf7a00e";
- sha256 = "0c8bms5pypwk08cv8a6pchrxf5nx97sygpa4pmaxlvccsa45n8a2";
+ rev = "f24d6c5e71954fd1a748e719b9b4b51f77879800";
+ sha256 = "10cqri6k3lvsngwg060nj4n15ip54h3ldlyxgnknmp6wl0vjsjr3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/org-journal";
sha256 = "1npzqxn1ssigq7k1nrxz3xymxaazby0ddgxq6lgw2a1zjmjm4h2b";
name = "org-journal";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/org-journal";
license = lib.licenses.free;
@@ -52920,12 +52983,12 @@
org-kanban = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-kanban";
- version = "20180313.1339";
+ version = "20180410.1258";
src = fetchFromGitHub {
owner = "gizmomogwai";
repo = "org-kanban";
- rev = "c240a1894b7ae4ed292657b4d3cf03db8274f451";
- sha256 = "12l9yb5dzhv9fgcl8nba5dh403bafx1klq2sw0n1v7zv82dic57i";
+ rev = "d5f6c82c1f4072f5800b01b724ee980ea0373d0a";
+ sha256 = "1xqx3iqv627wkpyz8b3frxgdm2y2zicfd5ansxw9yg2q7dxs6bff";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a9f3a10c126fa43a6fa60ee7f8e50c7a9661dbc1/recipes/org-kanban";
@@ -53004,12 +53067,12 @@
org-mime = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-mime";
- version = "20180313.524";
+ version = "20180407.1820";
src = fetchFromGitHub {
owner = "org-mime";
repo = "org-mime";
- rev = "10098b001c3926f0fb128c85fc64d9016a195868";
- sha256 = "0xb37lg7rlgfwkhvwwsb9wv7k5yig8n8bnxq97hxrbx56dh70mhr";
+ rev = "41ea9818b4e35555fac5d287a3f8bbf84c694005";
+ sha256 = "148mw7wik58756k072p3frlb0hdy6sc2jsqgjzhp5pqsmd1chg7w";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/521678fa13884dae69c2b4b7a2af718b2eea4b28/recipes/org-mime";
@@ -53563,12 +53626,12 @@
org-ref = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, helm-bibtex, htmlize, hydra, ivy, key-chord, lib, melpaBuild, pdf-tools, s }:
melpaBuild {
pname = "org-ref";
- version = "20180330.1356";
+ version = "20180409.813";
src = fetchFromGitHub {
owner = "jkitchin";
repo = "org-ref";
- rev = "85b8e0ac858ca2c37844e606a81bff428848adb4";
- sha256 = "1bbggn2kg7jw3bxmyyvr6bnlmiq0ylz76kyywfr8frbwic6g3rzc";
+ rev = "57e14a9e1c91c47fc46eb63b51e0b6585dfec977";
+ sha256 = "129g1yzx5qkmy4s44czmmdk5ffvv9kdn0kpxcky56ndsyvnkz35p";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/550e4dcef2f74fbd96474561c1cb6c4fd80091fe/recipes/org-ref";
@@ -53722,12 +53785,12 @@
org-static-blog = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-static-blog";
- version = "20180323.128";
+ version = "20180402.237";
src = fetchFromGitHub {
owner = "bastibe";
repo = "org-static-blog";
- rev = "8ea4456b0ca5642fff5868e54fe23f3b5109a579";
- sha256 = "0zh1vb6q8xwaawizv9rq86ahpvxsmrjrzhgh6k4xv6rx8k7k1i7g";
+ rev = "0ce09a3c27f6ea862b6dd121cb16a192cee0e9c4";
+ sha256 = "07hx4d8a2m7kj151zjc0920l6h0c0d7jgvravp2n5rgcb76yrlnp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e0768d41a3de625c04ac8644ef2e05f17ee99908/recipes/org-static-blog";
@@ -54058,12 +54121,12 @@
org-wc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-wc";
- version = "20180124.229";
+ version = "20180415.2219";
src = fetchFromGitHub {
owner = "tesujimath";
repo = "org-wc";
- rev = "6ff202a4612fe65b4e96bd551893fe8df67b0f51";
- sha256 = "1yqiqscj7cmnqd4s1lgbf7jbhcqlf3bwr52sabz7mqfs4iwdryhl";
+ rev = "d22b4cff3e1157ca468b186eb789ca62b9214abd";
+ sha256 = "0ysnydpm6lviak3mrqifim4zs2lffbjiv9nvb33qs8mi1dq2igji";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/852e0a5cee285cc9b5e2cd9e18061fc0fe91d5a6/recipes/org-wc";
@@ -54631,27 +54694,6 @@
license = lib.licenses.free;
};
}) {};
- osx-plist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "osx-plist";
- version = "20101130.448";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "osx-plist";
- rev = "5e6de2622fdfe552d4902904f05ea03bc5a6ebd0";
- sha256 = "0830kkmvc3ss7ygqfwz3j75s7mhxfxyadaksrp0v2cc4y6wn6nfv";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/f3686dc818bd12be247bad915c01736a95690041/recipes/osx-plist";
- sha256 = "0zaqmhf5nm6jflwgxnknhi8zn97vhsia2xv8jm677l0h23pk2va8";
- name = "osx-plist";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/osx-plist";
- license = lib.licenses.free;
- };
- }) {};
osx-pseudo-daemon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "osx-pseudo-daemon";
@@ -54715,6 +54757,27 @@
license = lib.licenses.free;
};
}) {};
+ other-emacs-eval = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "other-emacs-eval";
+ version = "20180408.648";
+ src = fetchFromGitHub {
+ owner = "xuchunyang";
+ repo = "other-emacs-eval";
+ rev = "8ace5acafef65daabf0c6619eff60733d7f5d792";
+ sha256 = "1pry1xw2p01b18ks5n0xs895qqqci7v2nrwjiil2vr3m1ys92ymc";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/75b6391726b0d5069e036930c2c5fa177c4e3422/recipes/other-emacs-eval";
+ sha256 = "07sr5bb6x9w450cvfg32darg6jlwg11n7c1qhhk0ijcrnlsm09n7";
+ name = "other-emacs-eval";
+ };
+ packageRequires = [ async emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/other-emacs-eval";
+ license = lib.licenses.free;
+ };
+ }) {};
outline-magic = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "outline-magic";
@@ -55075,12 +55138,12 @@
ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "ox-hugo";
- version = "20180328.2041";
+ version = "20180403.1111";
src = fetchFromGitHub {
owner = "kaushalmodi";
repo = "ox-hugo";
- rev = "ab0ccf2e8e0298d919d8dd497e2631376e1f1ca9";
- sha256 = "1wz34ip94kn4b6igbr9nph0nysqmfr2dg6ysxkk3xn9bpzms6gq4";
+ rev = "15a6df059f5eac0964c075c1386ce1c83cfe979d";
+ sha256 = "11vndvwq64s7kc8a706favp7x7jc59sqwgs00sknfzznmpyy0xki";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo";
@@ -55495,12 +55558,12 @@
package-build = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "package-build";
- version = "20180330.2032";
+ version = "20180414.938";
src = fetchFromGitHub {
owner = "melpa";
repo = "package-build";
- rev = "50c41597d15fb5f39ec65d8009e10ea8fb11d67a";
- sha256 = "0l84iilg7jmr5q16h1jjmssq68f9xz45kvhgdspvrh6j723js12l";
+ rev = "cf202c0a93bd5aabea59d16ad7ddf8c292c05990";
+ sha256 = "18icx58yqig4c7zdvjz8jrhilbv5ygdyl56473mz1zyhvb3q42xy";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/948fb86b710aafe6bc71f95554655dfdfcab0cca/recipes/package-build";
@@ -55537,12 +55600,12 @@
package-lint = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "package-lint";
- version = "20180323.1852";
+ version = "20180416.100";
src = fetchFromGitHub {
owner = "purcell";
repo = "package-lint";
- rev = "5ac4122cf1e24649b387bec8630740cd4ec85b72";
- sha256 = "030jcapghpf1smmsb17q79dmgfmjqh5x3kvzlqcgmcgfdj2jvx7m";
+ rev = "6929545b6c116bd3eb12d3481a78f381c759e6fc";
+ sha256 = "19fj94i4ai1gzj2y2b2klw7xdsh4aki8zr4840lffn4a0f16nc7n";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9744d8521b4ac5aeb1f28229c0897af7260c6f78/recipes/package-lint";
@@ -55789,12 +55852,12 @@
pamparam = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, lib, lispy, melpaBuild, worf }:
melpaBuild {
pname = "pamparam";
- version = "20180321.1041";
+ version = "20180415.48";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "pamparam";
- rev = "bc3df2f1190c773f03fdd43fac5125da37f03de9";
- sha256 = "00jdc99gm8qplhs6jwlr6daa6rkpazbs1wicbdbiag9g7h8y7q5h";
+ rev = "8fa25d06fb2ae6d992e738a10d8b2150e109d9bf";
+ sha256 = "0p50cfmwgwahb1czqvgx2kvnd3k46zl0pybvxlyf45y4c4kr8wjp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/067b5e3594641447478db8c1ffcb36d63018b1b2/recipes/pamparam";
@@ -55898,8 +55961,8 @@
src = fetchFromGitHub {
owner = "cadadr";
repo = "elisp";
- rev = "8118551aaf0472900cdfdc13449b55b33ab56289";
- sha256 = "153cch134c6rvqfcpikidlpxcbxk8nys2ig1xxpbn9ncn4fqkaf3";
+ rev = "35424f7360f5110833b7a9f4f53907b9e222be85";
+ sha256 = "1xi56c8f2wcmldr76ylrcqsy0wf75pv74b0455ki84fq1fk4n08s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a7ea18a56370348715dec91f75adc162c800dd10/recipes/paper-theme";
@@ -56186,12 +56249,12 @@
pasp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pasp-mode";
- version = "20170803.1301";
+ version = "20180404.1000";
src = fetchFromGitHub {
owner = "santifa";
repo = "pasp-mode";
- rev = "6511193677d6113fec1171f476c0db3be242ee15";
- sha256 = "1fk87iiqnyfwblw8fgqhw2mg61w2pl7id1dm8lb75pqrjq8kvjbg";
+ rev = "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92";
+ sha256 = "1ar4vws3izzmir7m870mccci620ns3c5j26dcmwaxavhgw45wcmf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f3c1bbfc6b3a60f8bb4f0ee77ec4108e9d3f458b/recipes/pasp-mode";
@@ -57003,12 +57066,12 @@
persistent-scratch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "persistent-scratch";
- version = "20170110.546";
+ version = "20180414.1044";
src = fetchFromGitHub {
owner = "Fanael";
repo = "persistent-scratch";
- rev = "551c655fa349e6f48e4e29f427fff7594f76ac1d";
- sha256 = "1iqfr8s4cvnnmqw5yxyr6b6nghbsc95mgjlc61qxa8wa1mpv31rz";
+ rev = "85d753a27c198cc3611845ca144150d3baf4e3d8";
+ sha256 = "08iypb0pbscbqcvg6p81rmazr5b7kdavjg2z9l37jha4vcb3nbcj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1e32702bfa15490b692d5db59e22d2c07b292d1/recipes/persistent-scratch";
@@ -57591,12 +57654,12 @@
php-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "php-mode";
- version = "20180328.1051";
+ version = "20180412.1002";
src = fetchFromGitHub {
owner = "ejmr";
repo = "php-mode";
- rev = "2c83fbe9af2ac07806e973ed6baa34582fb70f4e";
- sha256 = "18a8q4jfdz2hh1dswv069qzqh68d2qzal7mprj64kz17a1p62d3w";
+ rev = "ef69a8b63f70a89694087ab0f97545d103ad952c";
+ sha256 = "0njhhlpv93rkskhzj6wyxyvvx839saix6d96x0ipairxv1arcj3j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7cdbc35fee67b87b87ec72aa00e6dca77aef17c4/recipes/php-mode";
@@ -57717,12 +57780,12 @@
pianobar = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pianobar";
- version = "20171117.1522";
+ version = "20180409.1906";
src = fetchFromGitHub {
owner = "agrif";
repo = "pianobar.el";
- rev = "68fe0ed839f6775535081b3ae0a946ccaf11234a";
- sha256 = "0ycwahbn7fny3slmh5xkfv7vk4qj95jydygdk6pzzx6drsdhnyza";
+ rev = "9eb9b7fcb4790b11726302cbcec1b7951fbc8b0e";
+ sha256 = "0y41hfml5l28i40fk279m6yngylkwrlv5wldhq3y1sp4ryahwl6p";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b5659b4c7be20572aabe75caba866301393db012/recipes/pianobar";
@@ -57969,12 +58032,12 @@
pipenv = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "pipenv";
- version = "20180222.359";
+ version = "20180402.2127";
src = fetchFromGitHub {
owner = "pwalsh";
repo = "pipenv.el";
- rev = "364eaf1c823a28db97fe55e7fe85106107a23234";
- sha256 = "1f3xx606xvsmcc73mqml0w07xbkkm2xjirc4pfkb2883cfsk3fq1";
+ rev = "7f1fb3dd1704e535e67860c58080e55fc89e07f4";
+ sha256 = "1z1hdh6m10gam86zyhdfjksj2jxjrichdcz8qs3290lxy59f7agq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d46738976f5dfaf899ee778b1ba6dcee455fd271/recipes/pipenv";
@@ -58469,12 +58532,12 @@
pocket-api = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild {
pname = "pocket-api";
- version = "20170818.533";
+ version = "20180402.1809";
src = fetchFromGitHub {
owner = "lujun9972";
repo = "pocket-api.el";
- rev = "26e4583311ebc472f7bba59a1189f04938f2c03e";
- sha256 = "04cf97mwkp5rw0dvnspdbrycywjdv4mljl6lbjhbvlijj745d5xm";
+ rev = "3eb9430b9db90bc02e736e433eb86389f7655189";
+ sha256 = "0k6a9zzdi02g677cc699llk04i06yb7ddnlnmxndap5jszfyqwfi";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/04e3be76aef4d1b6d5bb3eda533b5deffcc8a5bc/recipes/pocket-api";
@@ -58584,12 +58647,12 @@
poet-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "poet-theme";
- version = "20180324.1909";
+ version = "20180415.2212";
src = fetchFromGitHub {
owner = "kunalb";
repo = "poet";
- rev = "53e0ec4006d5b5d24f263e1cfd1c1154c47bac9e";
- sha256 = "1qizsg2mh8nx8wx5ibd2fnpdxxiq57b02vrcx71pnbdqi6fv7zr9";
+ rev = "70b514373ea32c20ce4e46809b3336af1a69d2c8";
+ sha256 = "0jsgd4fgz6xliyfq46xn3ky7hr5ma4577h8kgshsbdidzwmp6xrr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/40bbe29dee56f7989d8e87c03f4842e2b191acc3/recipes/poet-theme";
@@ -58668,12 +58731,12 @@
pollen-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pollen-mode";
- version = "20160808.2000";
+ version = "20180404.612";
src = fetchFromGitHub {
owner = "lijunsong";
repo = "pollen-mode";
- rev = "de762bd7f9760185dae8ef025ca9a9126ae78de0";
- sha256 = "19bi50nlmwnh4kz3b1hrgc7ks0g84bld9aifws2l3wyc3xsj8cqa";
+ rev = "df4eab5b490cb478a092e6bab6b07f9e2f9c6fad";
+ sha256 = "0x8bnf0n109ard5zdmma04w0wv5jb1r7qh5smsa1kjvws98gnp57";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/97bda0616abe3bb632fc4231e5317d9472dfd14f/recipes/pollen-mode";
@@ -60011,12 +60074,12 @@
promise = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "promise";
- version = "20170215.2204";
+ version = "20180409.252";
src = fetchFromGitHub {
owner = "chuntaro";
repo = "emacs-promise";
- rev = "d3cad4e1f7825404828cd9f5b887f18d3fd83c56";
- sha256 = "1cn1xcp6yfxp642yibknngf456v29s2qq3y8bsc67ydxjkr5w4gz";
+ rev = "f623fa7466983fd1ba7034371f599434c03da723";
+ sha256 = "1ffk5scab9whn27xz4wyik5vl235ngvhx30fd05abq97d6l7hndl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3eaf5ac668008759677b9cc6f11406abd573012a/recipes/promise";
@@ -60162,8 +60225,8 @@
src = fetchFromGitHub {
owner = "google";
repo = "protobuf";
- rev = "7bf47a6b5d10382a4b427677cf7ca9288f4e2833";
- sha256 = "1rmq32csqd5zxhw7v9c8hd08ylr84s2dgnci0xss73s5cfyrd0g3";
+ rev = "320d56c833f835f40c56bdaf2a375768cdd1b334";
+ sha256 = "0waqwqcwwv99rl0ays9maqv0y6l06vx6k8ygap21i69dn7mrj5nl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b4e7f5f641251e17add561991d3bcf1fde23467b/recipes/protobuf-mode";
@@ -60200,12 +60263,12 @@
psc-ide = callPackage ({ cl-lib ? null, company, dash, dash-functional, emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild, s, seq }:
melpaBuild {
pname = "psc-ide";
- version = "20180101.1421";
+ version = "20180404.215";
src = fetchFromGitHub {
owner = "epost";
repo = "psc-ide-emacs";
- rev = "085e9d5541ccf35e876a6135daaddaa0a58f3bb2";
- sha256 = "0q7xqrjvllngz658w32zm9jbz1njqwpaqgiv3b377nfnay9rsh3p";
+ rev = "de22a50eb031d11c4771e62f8c705298bc5636d6";
+ sha256 = "1sn2lw37382kl5d69c8wdghcr10cwwx7g5dgxgnmmfhspbkz6v95";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/384ffc463cc6edb4806f8da68bd251e662718e65/recipes/psc-ide";
@@ -60249,48 +60312,27 @@
license = lib.licenses.free;
};
}) {};
- psession = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ psession = callPackage ({ async, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "psession";
- version = "20180331.1138";
+ version = "20180409.1056";
src = fetchFromGitHub {
owner = "thierryvolpiatto";
repo = "psession";
- rev = "1360c92372fc2cdb05a3a06dbabf311471cca460";
- sha256 = "02lksnjd6c4b2az09jhkhfcimld96cl8kdv75j39jvf4qdqhmrg8";
+ rev = "faea8e5b3873a4c62a03c76a057cd0fd6fb0434e";
+ sha256 = "1i1rjk72cwvfgxvqsiw2sqfwhsc8n4q89p94c96f3wm10rvlv7k2";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/669342d2b3e6cb622f196571d776a98ec8f3b1d3/recipes/psession";
sha256 = "18va6kvpia5an74vkzccs72z02vg4vq9mjzr5ih7xbcqxna7yv3a";
name = "psession";
};
- packageRequires = [ cl-lib emacs ];
+ packageRequires = [ async cl-lib emacs ];
meta = {
homepage = "https://melpa.org/#/psession";
license = lib.licenses.free;
};
}) {};
- psvn = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "psvn";
- version = "20151103.1042";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "psvn";
- rev = "23048d302858fc3a52c118652bd83491a4956410";
- sha256 = "1jz1g0igpnsjn2r144205bffj10iyp8izm8678mzkhnricxkn0d6";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/3690f9af15a6470b76d953c349eed82833b79a7c/recipes/psvn";
- sha256 = "1wdww25pjla7c8zf04mvgia1ws8cal9rb7z8g3vn2s3gp68py12n";
- name = "psvn";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/psvn";
- license = lib.licenses.free;
- };
- }) {};
psysh = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "psysh";
@@ -61031,8 +61073,8 @@
src = fetchFromGitHub {
owner = "PyCQA";
repo = "pylint";
- rev = "955acfec0e51c7705960693ed077c0696dd91581";
- sha256 = "0d220lp9187shwvaqnq2306f6ajg9bdyn3vz9f4z8qz1ya6ris9j";
+ rev = "56b5da6efd3a7ac934adbadf4d85abfc1d324d71";
+ sha256 = "09c14bsfglvlbz0y7sx0di50p1iw033g5y8f3qxbwrxba3213pkv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a073c91d6f4d31b82f6bfee785044c4e3ae96d3f/recipes/pylint";
@@ -61048,12 +61090,12 @@
pynt = callPackage ({ deferred, ein, emacs, epc, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pynt";
- version = "20180331.2118";
+ version = "20180410.1715";
src = fetchFromGitHub {
owner = "ebanner";
repo = "pynt";
- rev = "742ed8313088a29abcbd2d3fe74922823666e554";
- sha256 = "0fpnv6vv4blrfr6v4nrqvgcrq7c6w8jj67n0mskyp4a7p7l44qcy";
+ rev = "313dd24248f26ee1257b8b20885c593d8fb19d58";
+ sha256 = "05ik3807pv6g8rc66wyybwgnscjwgl2dn9yssn35rvb95cavqq77";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fdb297084188a957a46dcd036e65d9d893044bea/recipes/pynt";
@@ -61328,12 +61370,12 @@
pyvenv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pyvenv";
- version = "20180331.802";
+ version = "20180415.614";
src = fetchFromGitHub {
owner = "jorgenschaefer";
repo = "pyvenv";
- rev = "ea3e28a4d6fe90d56c5d356161b0b2cb59529950";
- sha256 = "0cn8dksg429cb6vmm7pqrmxgckiw0zpxcx68bcm87pdnp7186f58";
+ rev = "d7f89bd4fd3d3be7f6ef82caed51b4e7d1d754fa";
+ sha256 = "1dmj4yfbwlp9259is8av9ggsx08dfhqj2jd18hvvpxbhfqcybi8j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e37236b89b9705ba7a9d134b1fb2c3c003953a9b/recipes/pyvenv";
@@ -61367,6 +61409,27 @@
license = lib.licenses.free;
};
}) {};
+ ql = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "ql";
+ version = "20180404.943";
+ src = fetchFromGitHub {
+ owner = "ieure";
+ repo = "ql-el";
+ rev = "c885d125d8972374b408f6eddf031e44dc6fa0c6";
+ sha256 = "1l1jdvz1913m03ikcf9g3dsraaajqac1kzfy9c9xhzx8w7bbl80c";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/475bd8fd66c6d5b5c7e74aa2c4e094d313cc8303/recipes/ql";
+ sha256 = "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z";
+ name = "ql";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/ql";
+ license = lib.licenses.free;
+ };
+ }) {};
qml-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "qml-mode";
@@ -61409,27 +61472,6 @@
license = lib.licenses.free;
};
}) {};
- quack = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "quack";
- version = "20160410.207";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "quack";
- rev = "c1c8e448d295cc1b5752104a63a5759a9c5fdf6d";
- sha256 = "0vhzwr2adkprjibi3x4lnsvjxishysma7fhpwzgg28l21qjqc0nm";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/cb571caa41ea51ebbfe952526785287d913d2836/recipes/quack";
- sha256 = "1l7jw8sx2llbzp3sg5755qdhhyq8jdaggxzzn7icjxxrmj1ji6ii";
- name = "quack";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/quack";
- license = lib.licenses.free;
- };
- }) {};
quasi-monochrome-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "quasi-monochrome-theme";
@@ -61458,8 +61500,8 @@
src = fetchFromGitHub {
owner = "quelpa";
repo = "quelpa";
- rev = "260bad5748dc9b02ad4d98bfef755fa9abd07af2";
- sha256 = "0g48fkc8qf9dfr61qlxw5sf0cw03mpr6zl7sn4fjglf5rlx7kdzh";
+ rev = "1e57420158c158275c5a098951aca25651a41bc7";
+ sha256 = "1lnvzl9a7pa0v1jzcf6n4qik4swmsm99y7bz9cscmy6i1hcd35b5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7dc3ba4f3efbf66142bf946d9cd31ff0c7a0b60e/recipes/quelpa";
@@ -61706,12 +61748,12 @@
racket-mode = callPackage ({ emacs, faceup, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "racket-mode";
- version = "20180313.719";
+ version = "20180401.1803";
src = fetchFromGitHub {
owner = "greghendershott";
repo = "racket-mode";
- rev = "62c40b5a166f3d15d4ab82f5ccc0bbbd0fe90334";
- sha256 = "0v3myl2sfpk8b4n9xsnpwn37f7bzxyh99lm3ya1qj8p3qvmqszgv";
+ rev = "aea74aceddf112cdfb918aa5ddb9842f0d56c744";
+ sha256 = "0cqzj8qjcqwakikklx0yb193gyqvj5fvcr2acmlqzy8xwr0v65jd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7ad88d92cf02e718c9318d197dd458a2ecfc0f46/recipes/racket-mode";
@@ -62472,8 +62514,8 @@
src = fetchFromGitHub {
owner = "vic";
repo = "rebecca-theme";
- rev = "1fe3662d1b02caea96e9a780252b2c45f7a49b1d";
- sha256 = "0qcfnc9slhm4y2bpld0ckbv3wijr9y7h6555sy23z3dlmz7xs1wm";
+ rev = "9ac0c71c2858b76dc5499f62c7c7fb7f9e8f16bc";
+ sha256 = "0a0qf118gj2fag3j57zmli47939rn1jayvs2fwa4l280ipfvp2m7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/19f40f30113c7dabd76a2d0e52898e6d6be69a35/recipes/rebecca-theme";
@@ -62703,8 +62745,8 @@
src = fetchFromGitHub {
owner = "RedPRL";
repo = "sml-redprl";
- rev = "c28a1d98dcb4f766e19ba7ce78824ca57d022a7b";
- sha256 = "1kr6j75b428xr1pqy1ad0gqahh5dj5zh4pddc6rymr969yai02z0";
+ rev = "8b9309f6344cddf9b5ef4b9c1fde9d910672e913";
+ sha256 = "04n4nhxh3v8wjav67i1wl0qi626s2xpi001bn8qbxqipnfpidk9y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/06e7371d703ffdc5b6ea555f2ed289e57e71e377/recipes/redprl";
@@ -63475,12 +63517,12 @@
rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "rg";
- version = "20180401.1308";
+ version = "20180404.315";
src = fetchFromGitHub {
owner = "dajva";
repo = "rg.el";
- rev = "1d037789386ca626123cef6eab8b5ab467a8ca3b";
- sha256 = "18q55bx6wfmzvzxl97w38b5kk9ihblyk8p9g9q4d1xangsclqqzz";
+ rev = "d50bd106275f3ef7f77d0147857412fb065eef47";
+ sha256 = "0zjhak534j1n03z6p9wjmgc48yy40icrp2x8y9vbvg4hgx8xh9lm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
@@ -63685,12 +63727,12 @@
rjsx-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }:
melpaBuild {
pname = "rjsx-mode";
- version = "20180314.845";
+ version = "20180409.902";
src = fetchFromGitHub {
owner = "felipeochoa";
repo = "rjsx-mode";
- rev = "f7d31589acd8a2dfcf4ca8851d2384e4f90364d0";
- sha256 = "057pgylflzd69ydqz41g8wisvixypdrfn8yv81mfixh3iyq740y8";
+ rev = "a0231e76808e94eb842c502fc9e10b53d3307ea8";
+ sha256 = "0i6yzxfwyvbmfy1x5pymmjdli91ya6jgfq6wdjnwyrknbf6p76w7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b83be7efdef2457e1320fe3dec46484fbd20263c/recipes/rjsx-mode";
@@ -63920,8 +63962,8 @@
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
- rev = "a595d13f60c13d67a28467b3941d5ed558102e91";
- sha256 = "0yp6h6nsbji7dmc9pnf9qi7zsqxrxa1bln90bn0y71xf6z11kbp4";
+ rev = "4747d5b695bee40c3b0a2e3591ac8897571edd66";
+ sha256 = "1qy71bx8nki73mqslw54hq5bn1asz5qg1b2848nrsj8zb2yd85x5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/rtags";
@@ -64441,12 +64483,12 @@
s = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "s";
- version = "20180227.51";
+ version = "20180406.108";
src = fetchFromGitHub {
owner = "magnars";
repo = "s.el";
- rev = "5968b951bd646c003f2825f31cdf9da94d6f1cae";
- sha256 = "1ai8r6dmlvaa702yr74dbph97kp5xar3h147ahpk3vj1gh5irvnr";
+ rev = "03410e6a7a2b11e47e1fea3b7d9899c7df26435e";
+ sha256 = "074ny8y68fhnknkjxvrijrk534xzdiwip8wkifxfbwv3va315x83";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/s";
@@ -64777,12 +64819,12 @@
sayid = callPackage ({ cider, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sayid";
- version = "20170509.1215";
+ version = "20180404.1139";
src = fetchFromGitHub {
owner = "bpiel";
repo = "sayid";
- rev = "20a92323c3edc060c521aa93edab9dad47646b4f";
- sha256 = "0h0wn5c1n2y3cyslz3kbhksvwy1rnwvb1995949b6qkkzwf0cb4l";
+ rev = "8ea70573e6eb1a0d1a450fd501f38c2cf26ce27f";
+ sha256 = "02yp3h16yzys27lxcxn7qzb23z95vjdaxhinz0swdixgr5qwwc77";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid";
@@ -64823,8 +64865,8 @@
src = fetchFromGitHub {
owner = "openscad";
repo = "openscad";
- rev = "e7c0851d4023817b2a11df2583d6f406f3b58883";
- sha256 = "1rmjlgx83ck511ikahmn9xkg1qwakm0x3k7yzc2r5jkl40605833";
+ rev = "9bd8e87da64ffbdb1a41763a92e7feaf78652010";
+ sha256 = "1sasl3r7fx3vy8w636sx7ahih7w6ihwzhnczi2vyxf5hyf478js9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2d27782b9ac8474fbd4f51535351207c9c84984c/recipes/scad-mode";
@@ -65594,12 +65636,12 @@
sentence-navigation = callPackage ({ ample-regexps, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sentence-navigation";
- version = "20171215.1007";
+ version = "20180408.919";
src = fetchFromGitHub {
owner = "noctuid";
repo = "emacs-sentence-navigation";
- rev = "b2fc2de3aaf1e2e7fd12d6d75a5b6c4b23614022";
- sha256 = "0s7xqs3r9ygc6vcba8ghsd7rbrgy7dkis3y1d36ik4w5dqh9qlvi";
+ rev = "7c5d2edeaed01196aec25031782e89adeaa089f0";
+ sha256 = "15za4fg7c8fsih86wz1npyx6gdmw0xhizklfsyfh84416dsmgswp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3d097cf9b6c9c1606505d3988a2afdd7b066abc8/recipes/sentence-navigation";
@@ -65615,12 +65657,12 @@
seoul256-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "seoul256-theme";
- version = "20180331.1939";
+ version = "20180412.1643";
src = fetchFromGitHub {
owner = "anandpiyer";
repo = "seoul256-emacs";
- rev = "237cea479c5635fda908c0229beada080ca6c17f";
- sha256 = "1dd8vvvkm6h1ljxv15v4mcsb9nxf0d4v5yk6wnpx185l2936gykc";
+ rev = "fb7dd994f9fed518693475b2b6de67d518417783";
+ sha256 = "0arg66j25ixvmbhlgdjw12gzwsa5wmif7qw1mzfzd0sghgdbmj0v";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/seoul256-theme";
@@ -66959,12 +67001,12 @@
slack = callPackage ({ alert, circe, emojify, fetchFromGitHub, fetchurl, lib, melpaBuild, oauth2, request, websocket }:
melpaBuild {
pname = "slack";
- version = "20180315.253";
+ version = "20180410.2035";
src = fetchFromGitHub {
owner = "yuya373";
repo = "emacs-slack";
- rev = "b7e8aaee092a45ad96ea680a812cdb615463ad6e";
- sha256 = "1hlynbydgi194j9x2na66zdnf7i2r7iklyxly4jbq7jqqh1zybgr";
+ rev = "411b1ec8385c431d2ad1a56525a981d8d63e1700";
+ sha256 = "0ghnhcr9z7av9iwhdq1ww3fc0i11637xrri8l4w69dx3j435virg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f0258cc41de809b67811a5dde3d475c429df0695/recipes/slack";
@@ -67022,12 +67064,12 @@
slime = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, macrostep, melpaBuild }:
melpaBuild {
pname = "slime";
- version = "20180330.423";
+ version = "20180413.1720";
src = fetchFromGitHub {
owner = "slime";
repo = "slime";
- rev = "a83b6ececbbe77cfdb7d54d7d24870a1071fb8c2";
- sha256 = "18hdgxjng6mq2fgy2dmisnyg547l3kwk3z7069h101xwh8dji3w5";
+ rev = "26695c66162dcbb9dfd083c6e3b329c468e14ed9";
+ sha256 = "1fj096yhvxnj47qvc0b3pw3vf7icxv2jdfa3nvap9aksj453xndb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/14c60acbfde13d5e9256cea83d4d0d33e037d4b9/recipes/slime";
@@ -67190,12 +67232,12 @@
sly = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sly";
- version = "20180221.1414";
+ version = "20180412.355";
src = fetchFromGitHub {
owner = "capitaomorte";
repo = "sly";
- rev = "486bfbe95612bcdc0960c490207970a188e0fbb9";
- sha256 = "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l";
+ rev = "7d12c47bc573c5497487cfba60ccb30bd66514d7";
+ sha256 = "15wkra725r1sqzgpqgjs6shw5njlv116xinw4di9b41ih9qg98k1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/79e7213183df892c5058a766b5805a1854bfbaec/recipes/sly";
@@ -68323,12 +68365,12 @@
solidity-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "solidity-mode";
- version = "20180328.1608";
+ version = "20180409.853";
src = fetchFromGitHub {
owner = "ethereum";
repo = "emacs-solidity";
- rev = "55049577992638a6c6c5e68ddc4bcbc6a9af7e60";
- sha256 = "0f6f3sry2ym2fivpn42r1dz2cy5hbdgb41p9qpmix0qyf31vh034";
+ rev = "051128d7b7f217263c1aee5cb602338803d44ecb";
+ sha256 = "1lfa1jbl5rfmvsk2cvsa5z4glvvg3qnhphksvkhinaha23369vhg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb9df5ec0692352b6494d435d11166f4ea26c99e/recipes/solidity-mode";
@@ -68645,12 +68687,12 @@
spaceline = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline, s }:
melpaBuild {
pname = "spaceline";
- version = "20180330.1332";
+ version = "20180412.526";
src = fetchFromGitHub {
owner = "TheBB";
repo = "spaceline";
- rev = "efa2ebdec8bc1d8fa067f25fa54648f5a4d22aeb";
- sha256 = "1669r27rv4a7xlp2prjvl8hijnhzdw71lgsvxp65iwz7dl0912wk";
+ rev = "ca85233b443216f8519c401c58af6807b6d31740";
+ sha256 = "1ssbvp8xc1i7bf51rb2n0pkbhqs741dq0i0akwc3qqjg2sblckk1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/46e4c876aeeb0bb0d0e81dcbb8363a5db9c3ff61/recipes/spaceline";
@@ -69314,6 +69356,27 @@
license = lib.licenses.free;
};
}) {};
+ srcery-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "srcery-theme";
+ version = "20180414.636";
+ src = fetchFromGitHub {
+ owner = "roosta";
+ repo = "emacs-srcery";
+ rev = "6eea761e039a9511cb49b2cd3967b498b06db979";
+ sha256 = "0gqh4vn8f9d1jy1z8qw6qq5lgmbqywb9nbg1c3jrffgxcn1r414b";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/1df48441ecf6abd272ff154722b9ce0e2546c284/recipes/srcery-theme";
+ sha256 = "1r8srxhznli3sskwppk7fyapyx0qixagkwm0fllgsbm4nwkzq9pn";
+ name = "srcery-theme";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/srcery-theme";
+ license = lib.licenses.free;
+ };
+ }) {};
srefactor = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "srefactor";
@@ -69338,12 +69401,12 @@
ssass-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ssass-mode";
- version = "20171201.509";
+ version = "20180413.2303";
src = fetchFromGitHub {
owner = "AdamNiederer";
repo = "ssass-mode";
- rev = "a95c4c9f99895cc582849b35e90ae13f1587ddce";
- sha256 = "1ldw72ggk22ih5j9fyb3bl0ngyfdkzfcyg97mp0mb40w8ly68qav";
+ rev = "511fb0b7c41b5a479f9ea4b65f38b14454cb1401";
+ sha256 = "199v7n8l9784hv2iqhqwf2na9gw20l22bf9dmi22sjmfsk8l9s7l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3137f98aaa871a52f477b63d9c3b7b63f7271344/recipes/ssass-mode";
@@ -69380,12 +69443,12 @@
ssh-agency = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ssh-agency";
- version = "20180127.1301";
+ version = "20180403.1638";
src = fetchFromGitHub {
owner = "magit";
repo = "ssh-agency";
- rev = "31b2b41e33d315fff54ace8bc2234abc38adf7cc";
- sha256 = "02kw4h3hzpad39ir6y8cg8lnldd01cl0lm8p22kf4bf5f7f3sdlw";
+ rev = "bd4f655adce484bfceee4bb816429b96bc35113f";
+ sha256 = "0d3ppp4qs4n3rh0sla1x1kkrwl4fhlz1gvc9472vnlhva38ffxsn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b9a9e4bd0205908bfb99762c7daaf3be276bb03a/recipes/ssh-agency";
@@ -69422,12 +69485,12 @@
ssh-deploy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ssh-deploy";
- version = "20180323.2320";
+ version = "20180411.2201";
src = fetchFromGitHub {
owner = "cjohansson";
repo = "emacs-ssh-deploy";
- rev = "5a89d59a5371aac9ee9eae22996ae2065f7f2a6b";
- sha256 = "1zmlw75sdlvb99ijylan4bc2z2wm23x5zlql2bmjnfvjb1z2mh39";
+ rev = "d0be94676f44078fd29668c6e1a790cc0cc02f88";
+ sha256 = "0gc3pjzjgvznla5bl9n0yahsj8whs8jnicah5kv5zjgv99wslvb7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ssh-deploy";
@@ -70218,12 +70281,12 @@
sunburn-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sunburn-theme";
- version = "20180317.1051";
+ version = "20180414.2312";
src = fetchFromGitHub {
owner = "mvarela";
repo = "Sunburn-Theme";
- rev = "63fbc5a609100e78d8304c99646ae8f689e17bf2";
- sha256 = "04dwqssci9xvcaw1wrhf45hsqskmj0s38lyc0fmbbg1vx53npnk3";
+ rev = "995b389b7aa18b511718e9dcc68d7e1d9a2891a9";
+ sha256 = "0skmxv4qmdncp79jd0kh5rsx7ff98r8kmzii9l9d0da3xmkvgx1d";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bfd68b90234222dbf5907a29d506b6c4e61a372b/recipes/sunburn-theme";
@@ -70512,12 +70575,12 @@
swiper = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "swiper";
- version = "20180326.919";
+ version = "20180402.1857";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "swiper";
- rev = "f8cdaa7f3c733b88865650d10d9138bcb40a9ba8";
- sha256 = "0gfaj5ygjmvrmghyqghp7i6wf5abiayb28av4291plpyl0liz78h";
+ rev = "1181d0f7acb9e77a15fa7e62cb1027979185c853";
+ sha256 = "0vsl346axdlkcv96cxlciw7bmvxwl2ficjgw9nxrsvhsjsy7md02";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e64cad81615ef3ec34fab1f438b0c55134833c97/recipes/swiper";
@@ -70659,12 +70722,12 @@
symbol-overlay = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "symbol-overlay";
- version = "20180306.648";
+ version = "20180412.339";
src = fetchFromGitHub {
owner = "wolray";
repo = "symbol-overlay";
- rev = "bb02b971b06fb8e612c62bd2517b49884bc603a0";
- sha256 = "18ib707rky1k5qw5m4zfd88y1lvgqfilc336ha3v88i7fz8bbzh9";
+ rev = "b76f510037eb8e0ea018272495f356c71ff5b758";
+ sha256 = "0dlb7rm4adm2ccqga5a1w6m2jvs4ics9ihf76hqyx4px9m9ca1ll";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c2a468ebe1a3e5a35ef40c59a62befbf8960bd7b/recipes/symbol-overlay";
@@ -70907,22 +70970,22 @@
license = lib.licenses.free;
};
}) {};
- system-packages = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ system-packages = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "system-packages";
- version = "20180331.1102";
+ version = "20180415.2039";
src = fetchFromGitHub {
owner = "jabranham";
repo = "system-packages";
- rev = "fff67d190440fb076104f0f52d55a5e098207e31";
- sha256 = "0ia4nnyhk84dkahsan8l8dslmqiv0afs5abc1w2fnql7zhsiac6q";
+ rev = "9e5532bbed819e6736922d2da2615a2fa4433cea";
+ sha256 = "1blncv4cdf3ayq9d5ymdiacavma23smrmwh46130pscbjb4iyppy";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8c423d8c1ff251bd34df20bdb8b425c2f55ae1b1/recipes/system-packages";
sha256 = "0cq1vb4m8phdmv3c0dj6m76fss5vp1a0hikn7a1q5l2mmns40wj1";
name = "system-packages";
};
- packageRequires = [ cl-lib ];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/system-packages";
license = lib.licenses.free;
@@ -70952,12 +71015,12 @@
systemd = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "systemd";
- version = "20180101.1803";
+ version = "20180414.1111";
src = fetchFromGitHub {
owner = "holomorph";
repo = "systemd-mode";
- rev = "228f0b99ca3e1f3139ae8cacd15f9698d5b6da90";
- sha256 = "0cdqpzkx01qm0pk66hs6yhzv5iccrzzgfv3bh5c8i91v55d66bff";
+ rev = "e97f78ee11f4d4738aaa646e48bb39565d88abd6";
+ sha256 = "16ffz0m964g8j6hi1drjvzaz2nxjm1z7r1y1j0g9bmn1dksz7vl8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ca810e512c357d1d0130aeeb9b46b38c595e3351/recipes/systemd";
@@ -71263,6 +71326,27 @@
license = lib.licenses.free;
};
}) {};
+ taskpaper-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "taskpaper-mode";
+ version = "20180416.754";
+ src = fetchFromGitHub {
+ owner = "saf-dmitry";
+ repo = "taskpaper-mode";
+ rev = "0e4f11d3aa07ea1602df0566f28bb2dc172f70f5";
+ sha256 = "048hw8kbvdxihd9qsr16gzjlvjm3plvwlqb216mxbx60ig8vlhfx";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/f969b1cd58dfd22041a8a2b116db0f48e321e546/recipes/taskpaper-mode";
+ sha256 = "0gayhzakiwlrkysmh24499pyzdfy3rmf8d68vamih7igxpl57gim";
+ name = "taskpaper-mode";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://melpa.org/#/taskpaper-mode";
+ license = lib.licenses.free;
+ };
+ }) {};
tawny-mode = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "tawny-mode";
@@ -71434,12 +71518,12 @@
telephone-line = callPackage ({ cl-generic, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }:
melpaBuild {
pname = "telephone-line";
- version = "20180329.1924";
+ version = "20180404.1614";
src = fetchFromGitHub {
owner = "dbordak";
repo = "telephone-line";
- rev = "220a1a4a89ca95be9ae1fab356b92296fff5b73a";
- sha256 = "0dkmysgqpmcqchhsng2lkgb3w2nb8cpnk2sk6330h5drhp61d35c";
+ rev = "c9aca6ce030fac893793558c74a957e7bd0e6034";
+ sha256 = "081mj24h301vljb0d8bn5d9ibrgm1im2r5slzadd699h4zyyldcc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9c998b70365fb0a210c3b9639db84034c7d45097/recipes/telephone-line";
@@ -72194,8 +72278,8 @@
src = fetchFromGitHub {
owner = "apache";
repo = "thrift";
- rev = "8fb719efb1533e3a8038c155cbb209b492a29910";
- sha256 = "01pi4qh3a6m5j4j0sk5z7h7l7m19w82scm8x3kycdwkmfgn5fxsi";
+ rev = "c564651dd404d7e9ff6bf7e5b343f429b9e52082";
+ sha256 = "19i37mhyvg80d6j2zdxi5iljv28fbx5mjnayc6p14rqhk93xm856";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/857ab7e3a5c290265d88ebacb9685b3faee586e5/recipes/thrift";
@@ -72253,12 +72337,12 @@
tidal = callPackage ({ emacs, fetchFromGitHub, fetchurl, haskell-mode, lib, melpaBuild }:
melpaBuild {
pname = "tidal";
- version = "20171207.1452";
+ version = "20180410.1245";
src = fetchFromGitHub {
owner = "tidalcycles";
repo = "Tidal";
- rev = "b96bc7842e15f6b8973df8966307db7a1c4b7406";
- sha256 = "0g02k411xbwqv66qi2pw7r0slkvgfgvr7q41kf1czqnrmg5k4wzg";
+ rev = "f8af7bdbda547ebd12cf5c0ee1327f33cd9aa93f";
+ sha256 = "0y7a4bxsgpbg1sbsi4xdp4k9x3l0vh7acm5i3k87acpcpfb9aq5y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/16a26659a16199b5bb066be6e5c4a40419bda018/recipes/tidal";
@@ -72274,12 +72358,12 @@
tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s, typescript-mode }:
melpaBuild {
pname = "tide";
- version = "20180327.2043";
+ version = "20180416.755";
src = fetchFromGitHub {
owner = "ananthakumaran";
repo = "tide";
- rev = "0db094ba1748e3add4e152fa34d64b25eb07bdd2";
- sha256 = "113lg22aaagh3bbabxp65460cfwa9whjg3yzafd5n8azkinq8s6k";
+ rev = "e9a19bf500ee9c1a31d420055c159da44ada92db";
+ sha256 = "0kfcllkkhknqx69h407v5v6b0p8g0xpd5ashh2smhz9zdnxwx1m8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a21e063011ebbb03ac70bdcf0a379f9e383bdfab/recipes/tide";
@@ -73192,12 +73276,12 @@
treemacs = callPackage ({ ace-window, cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, ht, hydra, lib, melpaBuild, pfuture, s }:
melpaBuild {
pname = "treemacs";
- version = "20180314.435";
+ version = "20180410.1230";
src = fetchFromGitHub {
owner = "Alexander-Miller";
repo = "treemacs";
- rev = "535e9131f1500b355b0c35a7a1118aaad56cce53";
- sha256 = "0i34lm9lbp5vw4r4hlp4iw7brhvaq075j64zlca152brbfpli1jm";
+ rev = "51f4aeccdae03885cb118ac5a4894550172abe79";
+ sha256 = "0kqd7zhhy0h52skvkyxjyrh23s2p4qrlf0bdgqi2xh8mqqxd4cq1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/91038c1ab2f463102263dcc3701c0fdaad55de4c/recipes/treemacs";
@@ -73217,8 +73301,8 @@
src = fetchFromGitHub {
owner = "Alexander-Miller";
repo = "treemacs";
- rev = "535e9131f1500b355b0c35a7a1118aaad56cce53";
- sha256 = "0i34lm9lbp5vw4r4hlp4iw7brhvaq075j64zlca152brbfpli1jm";
+ rev = "51f4aeccdae03885cb118ac5a4894550172abe79";
+ sha256 = "0kqd7zhhy0h52skvkyxjyrh23s2p4qrlf0bdgqi2xh8mqqxd4cq1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/91038c1ab2f463102263dcc3701c0fdaad55de4c/recipes/treemacs-evil";
@@ -73238,8 +73322,8 @@
src = fetchFromGitHub {
owner = "Alexander-Miller";
repo = "treemacs";
- rev = "535e9131f1500b355b0c35a7a1118aaad56cce53";
- sha256 = "0i34lm9lbp5vw4r4hlp4iw7brhvaq075j64zlca152brbfpli1jm";
+ rev = "51f4aeccdae03885cb118ac5a4894550172abe79";
+ sha256 = "0kqd7zhhy0h52skvkyxjyrh23s2p4qrlf0bdgqi2xh8mqqxd4cq1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/91038c1ab2f463102263dcc3701c0fdaad55de4c/recipes/treemacs-projectile";
@@ -73715,12 +73799,12 @@
typescript-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "typescript-mode";
- version = "20180326.434";
+ version = "20180409.422";
src = fetchFromGitHub {
owner = "ananthakumaran";
repo = "typescript.el";
- rev = "d8501770f6ebd50bbbaada2c65b19c85564c1d1e";
- sha256 = "0hhn3bf9msmp3gbcqpsij1sqwm0zsdxpjyjqaz1r997i4lrqw2r2";
+ rev = "5350c45aec10bcdffe16ec9273d04298e576f1e1";
+ sha256 = "0121gik1ksmwyx8lrr1pgpim0kyay189rg3cfa9l4hpwm425prp6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d3f534a1e2cee4ad2e32e32802c5080207417b3d/recipes/typescript-mode";
@@ -73967,12 +74051,12 @@
undercover = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, shut-up }:
melpaBuild {
pname = "undercover";
- version = "20170502.912";
+ version = "20180403.752";
src = fetchFromGitHub {
owner = "sviridov";
repo = "undercover.el";
- rev = "d947e6410a3b269c657645b499a413d90d4b69ca";
- sha256 = "0c4i8qfa6mzbnjmdk9zqgw324fxyjnq5dm6bmxfadsnvnhjmn7y5";
+ rev = "3fc54ef92f0b4b7d26d962d6ed29a81d526a3a66";
+ sha256 = "0iqj1a6nj1ka5ahcy4rrn7k427bs1ifv0v0i7gj79m7isjj15qc4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d58ad9eb863494f609114e3c6af8c14c891b83a5/recipes/undercover";
@@ -74419,12 +74503,12 @@
uptimes = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "uptimes";
- version = "20170830.533";
+ version = "20180416.623";
src = fetchFromGitHub {
owner = "davep";
repo = "uptimes.el";
- rev = "c2c1b44b16a0fd873193b17c580ef3dfdacea580";
- sha256 = "1rq4m77fydkawdwkbw8125ihmvv6aisr03nwb1857k3hxhrg0gwv";
+ rev = "5e81f8bb419836602819045e7d5a74b76ad3e69c";
+ sha256 = "04l452k249s3ilfj0da0k7rrfyjnxxdsipa2al46xqjds8l3h2rn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/72099e35ce3e34ec6afc6a3f87a4da07ec91499a/recipes/uptimes";
@@ -75112,12 +75196,12 @@
vertigo = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "vertigo";
- version = "20160429.2105";
+ version = "20180408.920";
src = fetchFromGitHub {
owner = "noctuid";
repo = "vertigo.el";
- rev = "70b56a57c3a37735cc9e92ffaa6dc27c64437738";
- sha256 = "044vy6yi9yfk3h2gd3a718w50py02h1b5fr0i7a08rjlq4l3srka";
+ rev = "117450dfad5d5ad45d40995cdf9a626cf9c2b136";
+ sha256 = "1bxf2kzdj4xmy6wmajwvn40msp2q4szp25ylah49biw92dwi2bzw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1957e7fa03b6b8eb2f3250bd814d707bce3cfa3/recipes/vertigo";
@@ -75466,27 +75550,6 @@
license = lib.licenses.free;
};
}) {};
- vkill = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "vkill";
- version = "20091203.1022";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "vkill";
- rev = "8ffe640ed03ddcc23db1c74c76d1acbf25250ad9";
- sha256 = "0hb845pnh2yska6alca8hbbxh65x7g81pr7852h8fddm0qd1agkd";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/1fe8711711d5c7e1dfdf81b8153a193e6940a16c/recipes/vkill";
- sha256 = "09siqsip6d2h3jrxbdbhylkqm42dx3d2dqlkkdw3a81c7ga9lpwm";
- name = "vkill";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/vkill";
- license = lib.licenses.free;
- };
- }) {};
vlf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "vlf";
@@ -75616,12 +75679,12 @@
vue-mode = callPackage ({ edit-indirect, fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode, ssass-mode, vue-html-mode }:
melpaBuild {
pname = "vue-mode";
- version = "20180104.1611";
+ version = "20180410.1157";
src = fetchFromGitHub {
owner = "CodeFalling";
repo = "vue-mode";
- rev = "b489a63dabe0f2fee2730121ecabb1b4f4c11761";
- sha256 = "09fkyyj0lg3q9q0874q0jpvx1h8rf26g96sn9a2xw0j3fl5ab1n4";
+ rev = "eab311f535ac922086466dba3e6f0d428fcff3f2";
+ sha256 = "0j7qbrx0z6kvm9r2swyb2khhn9gciq4yjxg199ckg7k5p8iqlzlq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2e5e0a9fff332aeec09f6d3d758e2b67dfdf8397/recipes/vue-mode";
@@ -75804,12 +75867,12 @@
wanderlust = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, semi }:
melpaBuild {
pname = "wanderlust";
- version = "20180316.1534";
+ version = "20180331.105";
src = fetchFromGitHub {
owner = "wanderlust";
repo = "wanderlust";
- rev = "f0c8c4e55be6569c4c56a1d041f5c53769e4d5ac";
- sha256 = "11p5kqp16bvas26i0zgdazqhgz6jb6j612q032g6d4476yb8df26";
+ rev = "afecc04e806c8338e553bdbdb716328fa9f2227a";
+ sha256 = "1sf1mck6pk2xnlfcr4rh47brpgl6dsla7zir8lxpa0224dvy0bvw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/426172b72026d1adeb1bf3fcc6b0407875047333/recipes/wanderlust";
@@ -76035,12 +76098,12 @@
web-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "web-mode";
- version = "20180401.810";
+ version = "20180416.240";
src = fetchFromGitHub {
owner = "fxbois";
repo = "web-mode";
- rev = "1a61f347cc1ac3cf2a68f917b7100fdcb21b488c";
- sha256 = "1yswl44kgz34nn5r5z0wck85ilyniysql2pwc94pn32lpzypa4ah";
+ rev = "370fba5fefc819b863909330fa17b6b0e8b20080";
+ sha256 = "0rsksx6gbff2l26rcfrxjq51pnl3l61r0vsnwq9ax70djrpk804m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6f0565555eaa356141422c5175d6cca4e9eb5c00/recipes/web-mode";
@@ -76203,12 +76266,12 @@
websocket = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "websocket";
- version = "20171113.2045";
+ version = "20180402.2042";
src = fetchFromGitHub {
owner = "ahyatt";
repo = "emacs-websocket";
- rev = "7d2adf218743c52578c8e8fd5584a5e54732e256";
- sha256 = "0k8n710ip4av51n6l9ap1254qkifj987a6k86pgj3y6bw76ry08f";
+ rev = "e9d148fbb6425c35dc7f76cccdec70aba7fafacf";
+ sha256 = "1gyp67sdi4pwrzdkgslnd9l0sjw7nbkqlh7j4zi423yrb5zxh4wi";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/websocket";
@@ -76539,12 +76602,12 @@
whizzml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "whizzml-mode";
- version = "20171015.938";
+ version = "20180411.1636";
src = fetchFromGitHub {
owner = "whizzml";
repo = "whizzml-mode";
- rev = "9060fdce07c137abc2c494cb72641b9b9d6fbe22";
- sha256 = "10yi3n6pyqirlzxdkv7nvp0d0n1fkjrgwhn0kp5i27dnp3fi0i2b";
+ rev = "cfe081c957ad6e70e1fd32c7836008851198431a";
+ sha256 = "1qipmr0v6l6r2ggdp7lbrc14hwfjs6j835ii53y99knmbp7cnci1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/11f26b15c326c3b8541bac510579b32493916042/recipes/whizzml-mode";
@@ -76627,8 +76690,8 @@
src = fetchFromGitHub {
owner = "foretagsplatsen";
repo = "emacs-js";
- rev = "900cf8213df6e58bdd3244b446ea02c67b7555d8";
- sha256 = "1yn2hadcpcsgnf0wy7x8zcfw97c90dpp2ipdml176191vz41n7nb";
+ rev = "aafd8a262599571f2de06e3aa75933d8a09e2d35";
+ sha256 = "0663631mxw4mrzlb144fbvry6yffg9hic9jbns147zfgvsp1xcf7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/78d7a15152f45a193384741fa00d0649c4bba91e/recipes/widgetjs";
@@ -77004,8 +77067,8 @@
version = "20160419.1232";
src = fetchhg {
url = "https://bitbucket.com/ArneBab/wisp";
- rev = "d04938232934";
- sha256 = "1sjadb0kh3hrdsvwywi04agrzrs21sxzh1v1km0z3x6f15nr048c";
+ rev = "dbb4f5d19925";
+ sha256 = "1ng4p0yf8lp3nhdz8l3m4zhl13x3bpb9prckw8nghqf2hc96l2dj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";
@@ -77042,12 +77105,12 @@
with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "with-editor";
- version = "20180318.1253";
+ version = "20180414.757";
src = fetchFromGitHub {
owner = "magit";
repo = "with-editor";
- rev = "ff3e96929d4532e33422a5980a6e3ca9f2fcf032";
- sha256 = "1fhn2wd0wszbnfpvnjmlw8gxqzy8f4q7dg7r16jpa1cmk0fpcdi0";
+ rev = "ad5bb005ed3afec2d8b9b2bc1df19fb9b5e2dd84";
+ sha256 = "0hq2dy8djxf45ajk9di1grhgzly0qrijcjfdah8xj5zkwvn9cvlh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor";
@@ -77252,12 +77315,12 @@
worf = callPackage ({ ace-link, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, swiper, zoutline }:
melpaBuild {
pname = "worf";
- version = "20180316.926";
+ version = "20180408.36";
src = fetchFromGitHub {
owner = "abo-abo";
repo = "worf";
- rev = "543bfe21727c0ea96ee0c1022ed334103c0acdf0";
- sha256 = "0ia74ijp6cdhxjfygvjb5kx36iyakbdws9lsz20761xlp8vw0dfq";
+ rev = "90f0e5f7a596ead7fc3b5106684ab118ee857340";
+ sha256 = "1yfvknn4nbc6qig0pa4gks1085l91v79cg8hjg7776plz0cwmn08";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f00f8765e35c21dd1a4b5c01c239ed4d15170ab7/recipes/worf";
@@ -77522,27 +77585,6 @@
license = lib.licenses.free;
};
}) {};
- x-dict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "x-dict";
- version = "20091203.1023";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "x-dict";
- rev = "920b2430bff9fb8c4bb7944aa358622545c00cee";
- sha256 = "0i7bgbhk4lvdkdjh6z4xs69mbdi49985j82cjikzyyskjcqd2klq";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/0567fcc7b7aff08094095292fb701da3be8403c3/recipes/x-dict";
- sha256 = "1w51xhiaxk50wlch262dxs2ybjvjj8qzx01xlgiimvggb8h5arlc";
- name = "x-dict";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/x-dict";
- license = lib.licenses.free;
- };
- }) {};
x-path-walker = callPackage ({ fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }:
melpaBuild {
pname = "x-path-walker";
@@ -77609,12 +77651,12 @@
xah-css-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "xah-css-mode";
- version = "20180219.2311";
+ version = "20180405.1521";
src = fetchFromGitHub {
owner = "xahlee";
repo = "xah-css-mode";
- rev = "cf452fd0f2e742812a4c69e41cb5403f22b0a16a";
- sha256 = "1wjj3sj90az5y4a7cy0pblwxi0xbj5gg72jdr9wbm95si582vk58";
+ rev = "5b630c3a706d7b692e04e44c571ff9c1076be2c3";
+ sha256 = "0di2pyd1b4a0lyz1xi260dha3n6wa8d4nlb59inaxcj4nfw7sv15";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-css-mode";
@@ -77630,12 +77672,12 @@
xah-elisp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "xah-elisp-mode";
- version = "20180328.1205";
+ version = "20180402.2139";
src = fetchFromGitHub {
owner = "xahlee";
repo = "xah-elisp-mode";
- rev = "78d6c6d675804c601737e2cffc46d6663bb203b5";
- sha256 = "1p0irlff1qfkfqmcjj9l028x7a6d6dx72q732ix1mwb51vl3fb0b";
+ rev = "95ec296ec6e059e0f802b919fcaeae521714fd68";
+ sha256 = "19hjw9bcq2qsc0m47303r5r1nr144sbsrs0lwzzadxvfyfwpm1q4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-elisp-mode";
@@ -77672,12 +77714,12 @@
xah-fly-keys = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "xah-fly-keys";
- version = "20180331.2108";
+ version = "20180412.2300";
src = fetchFromGitHub {
owner = "xahlee";
repo = "xah-fly-keys";
- rev = "4bb464eb0ea68cdd3f4c544371c876418b47107d";
- sha256 = "0i8q15rygavs336nfvbg4riwsgyk10s796qff3bmcxi7l0v8byzq";
+ rev = "e7181d40cc4bf30eed2672cb97255a8451031002";
+ sha256 = "0lhakj8hr2wg7n3nqc5bqwgxb9lf6yvknryll9xw9lq4q9yha7rg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-fly-keys";
@@ -78152,27 +78194,6 @@
license = lib.licenses.free;
};
}) {};
- xterm-frobs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "xterm-frobs";
- version = "20161207.1609";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "xterm-frobs";
- rev = "0832d588598dbf6bd8aa8e05c611d7c098c3f9d8";
- sha256 = "0snrylgv2d6r3d6nv05vqs6ng3sgrxkvqpx7m4ga2y7a1m5lmxkw";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/b7bb3be63b798967f5525cf118579a1cc756ee1a/recipes/xterm-frobs";
- sha256 = "02v8kh2g6a2fpxy911630zsg985hyakvqbd6v2xyfbz0vnd6i1lf";
- name = "xterm-frobs";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/xterm-frobs";
- license = lib.licenses.free;
- };
- }) {};
xterm-keybinder = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }:
melpaBuild {
pname = "xterm-keybinder";
@@ -78194,27 +78215,6 @@
license = lib.licenses.free;
};
}) {};
- xterm-title = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "xterm-title";
- version = "20091203.1023";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "xterm-title";
- rev = "b6ea73d297d191d48bba7dd1e2adc23bbdfa1c3c";
- sha256 = "06cbr7y3wp7j8lnbys57g6md4fdx9xhlnxl73pj7xpfa5i2x9ifl";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/bc25d156c8631b552a463f5088a99a3370166e03/recipes/xterm-title";
- sha256 = "08z8qg9x6vjpybbhxa8x46qnp3951miz1264fivg776y76cg3ck6";
- name = "xterm-title";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/xterm-title";
- license = lib.licenses.free;
- };
- }) {};
xtest = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "xtest";
@@ -78348,8 +78348,8 @@
src = fetchFromGitHub {
owner = "drdv";
repo = "yahtzee";
- rev = "c2912e845d74a22436bdf720eb9bc543d0e0c45c";
- sha256 = "1swnr1nrlyd7ij4m05dvqwdfmpj41b3ibfqmb45qm073f27gvj65";
+ rev = "673f033c05b4984f5159526db2d7f4a32dd57b6d";
+ sha256 = "1iwmwff538zw95mlrq4jhwaikx2hs6jqcx94rypn6znymrfsf0hp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/200169fdabce0ae3a2ecb6f4f3255c15ec3ed094/recipes/yahtzee";
@@ -78386,12 +78386,12 @@
yaml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "yaml-mode";
- version = "20180212.1556";
+ version = "20180408.2307";
src = fetchFromGitHub {
owner = "yoshiki";
repo = "yaml-mode";
- rev = "3fc5a33760b0bbb6e67adbce48ab3dc4ae34b847";
- sha256 = "1ijq7ay5lx77nibzqc1kih64v4bg4790as1zg26igp7ivg66l1m6";
+ rev = "40067a10ac1360f0b9533f0bbbb2eea128e2574d";
+ sha256 = "0v7646vdsbbhxh9ywsypq2ycdsrf6m7wv788qaircbjgn1pk4v7i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/yaml-mode";
@@ -78470,12 +78470,12 @@
yankpad = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "yankpad";
- version = "20180328.532";
+ version = "20180415.350";
src = fetchFromGitHub {
owner = "Kungsgeten";
repo = "yankpad";
- rev = "e2ffe7d90bd5a88b794afa1b462f773d8b772db2";
- sha256 = "0a5b8bdzi0h00bk2980mp5mfm1hb7hk5i6jlijmiin89bgs19xpc";
+ rev = "a804f145d17b4b68490ee62ba9a9c4fc7faad130";
+ sha256 = "1m9zal19s7v6djrma1xbqwx1n271y0ik44wx9sscmrynmhdlis04";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e64746d10f9e0158621a7c4dc41dc2eca6ad573c/recipes/yankpad";
@@ -78638,12 +78638,12 @@
yasnippet-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "yasnippet-snippets";
- version = "20180324.1124";
+ version = "20180408.446";
src = fetchFromGitHub {
owner = "AndreaCrotti";
repo = "yasnippet-snippets";
- rev = "79fc648da3550ada25ec38cebe394c7e5ca8f7b9";
- sha256 = "0sdd021wdighn71mgb9ih4qa8i0msx8sg390kjhqgqfvg8xzrfd4";
+ rev = "4bbe565b7c9c7286f7ac465f0cc79c3fe5796c0b";
+ sha256 = "0rak66wmj0x4zmksckniamslvcaxsz0dgysrzv22jijmjjqpfd2z";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/25b8d4efe2e7833eb95dfdf33aa3ecc34af7a687/recipes/yasnippet-snippets";
@@ -79421,12 +79421,12 @@
ztree = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ztree";
- version = "20180215.1021";
+ version = "20180409.1322";
src = fetchFromGitHub {
owner = "fourier";
repo = "ztree";
- rev = "67a1d90595353ab57fd424651c567df9851b9494";
- sha256 = "01qv400zp4bdfah62l3ixkc3kvkwrjj5ngc36m6w783q0zmr105r";
+ rev = "487957664cedc61d70feccc881092eef6746977b";
+ sha256 = "1hvqx1dfh253iin59j9i1x85xfnhljgwsrvn9pq3lxfvy82zjlc0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f151e057c05407748991f23c021e94c178b87248/recipes/ztree";
@@ -79502,4 +79502,4 @@
license = lib.licenses.free;
};
}) {};
- }
+ }
\ No newline at end of file
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index d23c735aba4..c21db447e39 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -94,8 +94,8 @@ self:
# Expects bash to be at /bin/bash
flycheck-rtags = markBroken super.flycheck-rtags;
- # upstream issue: missing file header
- fold-dwim = markBroken super.fold-dwim;
+ # upstream issue: missing dependency
+ fold-dwim-org = markBroken super.fold-dwim-org;
# build timeout
graphene = markBroken super.graphene;
@@ -106,9 +106,6 @@ self:
# Expects bash to be at /bin/bash
helm-rtags = markBroken super.helm-rtags;
- # upstream issue: missing file header
- helm-words = markBroken super.helm-words;
-
# upstream issue: missing file header
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
@@ -152,9 +149,6 @@ self:
# upstream issue: missing dependency
org-readme = markBroken super.org-readme;
- # upstream issue: missing file header
- perl-completion = markBroken super.perl-completion;
-
# upstream issue: truncated file
powershell = markBroken super.powershell;
@@ -164,12 +158,6 @@ self:
# upstream issue: missing file header
qiita = markBroken super.qiita;
- # upstream issue: missing package version
- quack = markBroken super.quack;
-
- # upstream issue: missing file header
- railgun = markBroken super.railgun;
-
# upstream issue: missing file footer
seoul256-theme = markBroken super.seoul256-theme;
@@ -204,9 +192,6 @@ self:
# upstream issue: missing file header
window-numbering = markBroken super.window-numbering;
- # upstream issue: missing file header
- zeitgeist = markBroken super.zeitgeist;
-
w3m = super.w3m.override (args: {
melpaBuild = drv: args.melpaBuild (drv // {
prePatch =
diff --git a/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix b/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
index 83f6a56da0a..ff9967e51b3 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
@@ -2408,6 +2408,27 @@
license = lib.licenses.free;
};
}) {};
+ banner-comment = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "banner-comment";
+ version = "2.5";
+ src = fetchFromGitHub {
+ owner = "WJCFerguson";
+ repo = "banner-comment";
+ rev = "9b1c9a94f8b6789c890a7e7eedd6f60ad5aa4d52";
+ sha256 = "02wsnmzbb60d4a8bsb5kywdwcfsqb6chcchs5v2d0s3sacakbmnl";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/4bb69f15cb6be38a86abf4d15450a29c9a819068/recipes/banner-comment";
+ sha256 = "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc";
+ name = "banner-comment";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/banner-comment";
+ license = lib.licenses.free;
+ };
+ }) {};
base16-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "base16-theme";
@@ -2576,22 +2597,22 @@
license = lib.licenses.free;
};
}) {};
- beeminder = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ beeminder = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "beeminder";
- version = "1.0.0";
+ version = "1.1.0";
src = fetchFromGitHub {
owner = "Sodaware";
repo = "beeminder.el";
- rev = "54cc1277f2a7667a7b0d999dc49ceffcf2862b44";
- sha256 = "01d10algmi9a4xd7mzf7n3zxfs2qf5as66wx17mff5cd8dahxj1q";
+ rev = "3e95a669474e27cd51a16caea030456377f83062";
+ sha256 = "1bj9yzjvglnb0f4glh8fg478xlm5nqmd9jqm1casdj5m30i4kafn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/beeminder";
sha256 = "1cb8xmgsv23b464hpchm9f9i64p3fyf7aillrwk1aa2l1008kyww";
name = "beeminder";
};
- packageRequires = [];
+ packageRequires = [ org ];
meta = {
homepage = "https://melpa.org/#/beeminder";
license = lib.licenses.free;
@@ -3608,12 +3629,12 @@
caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "caml";
- version = "4.6.1";
+ version = "4.7.0beta2";
src = fetchFromGitHub {
owner = "ocaml";
repo = "ocaml";
- rev = "81dc8e8fcf923baa5e5208f9bc4228930c7c3d56";
- sha256 = "0pn25c3v8xnihnyzk1w297ci5ca05hcdv46m21522sgpcinbvkc7";
+ rev = "c0bd6a27e138911560f43dc75d5fde2ade4d6cfe";
+ sha256 = "0z08mpvfa5jvbdxkx9wlarn1zpp01aaxasmy63cz452jr8zg0nll";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
@@ -4233,6 +4254,27 @@
license = lib.licenses.free;
};
}) {};
+ citeproc = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, queue, s, string-inflection }:
+ melpaBuild {
+ pname = "citeproc";
+ version = "0.1.1";
+ src = fetchFromGitHub {
+ owner = "andras-simonyi";
+ repo = "citeproc-el";
+ rev = "6d68f52ebd150e035b33dcaa59d9e2aceab69b84";
+ sha256 = "04xz3y3j8k1pv5v6v9wqscqlpmgqi85fs3igrv8c9y0xagild29k";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/20aa56e9a4809cee1082224b1b4e65921a48bda1/recipes/citeproc";
+ sha256 = "1qphg2bg7vvjzgvnsscbyf40llxxh4aa2s2ffk8vsbfd4p8208cq";
+ name = "citeproc";
+ };
+ packageRequires = [ dash emacs f queue s string-inflection ];
+ meta = {
+ homepage = "https://melpa.org/#/citeproc";
+ license = lib.licenses.free;
+ };
+ }) {};
cl-format = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cl-format";
@@ -5514,12 +5556,12 @@
company-web = callPackage ({ cl-lib ? null, company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, web-completion-data }:
melpaBuild {
pname = "company-web";
- version = "2.0";
+ version = "2.1";
src = fetchFromGitHub {
owner = "osv";
repo = "company-web";
- rev = "935c65de0411ebbcb4f2223f31e756e093eaae07";
- sha256 = "0kw0fc1lg7qd23fx26y9m543sql32n1dlvr4rg7bmq6im7dwz4hy";
+ rev = "f0cc9187c9c34f72ad71f5649a69c74f996bae9a";
+ sha256 = "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/company-web";
@@ -6459,12 +6501,12 @@
cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cython-mode";
- version = "0.28.1";
+ version = "0.28.2";
src = fetchFromGitHub {
owner = "cython";
repo = "cython";
- rev = "89cfbb4a3a0540abeec1703fd3ee31eba9293936";
- sha256 = "1ndabmdzqfhkg3z9zaavp5bz8l86n4g9lwi0ji0vs7q7rpsykqdw";
+ rev = "93e3bb9b7558d597d10c4cb8aa1dd887ed37dc2b";
+ sha256 = "1cywxcfrb2j33ncldylimqhj7r7yzlb6ghy5i8c9784vfvxd56yh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode";
@@ -6522,12 +6564,12 @@
daemons = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "daemons";
- version = "1.1.0";
+ version = "1.2.0";
src = fetchFromGitHub {
owner = "cbowdon";
repo = "daemons.el";
- rev = "75b54be70a909282b20c872b5f01d30e18e19f84";
- sha256 = "0jv1i66b035yvj2mj83ihylk6vv7skljnr6kxa15zzj4daw9462c";
+ rev = "9e6868e2559ea7d70fbad8c419798124f406cc40";
+ sha256 = "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1f780485e72ae2885f698fdab0156855f70831f1/recipes/daemons";
@@ -6569,7 +6611,7 @@
owner = "fommil";
repo = "emacs-darcula-theme";
rev = "2ecd466ffa7a3157b9ddcd7545b6fb8ad308c976";
- sha256 = "1h5lssnc1am54hkprnp61bsj5fnm8j556q2gbhljfjgrdwnqv8ky";
+ sha256 = "1y8rsc63nl4n43pvn283f1vcpqyjnv6xl60fwyscwrqaz19bsnl1";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/23c8f10205187babb17e3abc3dc40eb1938e6640/recipes/darcula-theme";
@@ -6627,12 +6669,12 @@
dash = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dash";
- version = "2.13.0";
+ version = "2.14.1";
src = fetchFromGitHub {
owner = "magnars";
repo = "dash.el";
- rev = "4ae329aa2160411c8b47794de067fcf29bc38a22";
- sha256 = "12gvpn0a07kgbj2lrzw1vv4njp1w4gl38rl68yh0jp3rhvacbsg0";
+ rev = "a74f4cfcdc8d0642a9f602ad494f0354f27dacc9";
+ sha256 = "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash";
@@ -6648,12 +6690,12 @@
dash-functional = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dash-functional";
- version = "2.13.0";
+ version = "2.14.1";
src = fetchFromGitHub {
owner = "magnars";
repo = "dash.el";
- rev = "4ae329aa2160411c8b47794de067fcf29bc38a22";
- sha256 = "12gvpn0a07kgbj2lrzw1vv4njp1w4gl38rl68yh0jp3rhvacbsg0";
+ rev = "a74f4cfcdc8d0642a9f602ad494f0354f27dacc9";
+ sha256 = "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash-functional";
@@ -7236,12 +7278,12 @@
dired-fdclone = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dired-fdclone";
- version = "1.5.2";
+ version = "1.5.4";
src = fetchFromGitHub {
owner = "knu";
repo = "dired-fdclone.el";
- rev = "8144c013d46c55b0471f31cdc3b5ead303286cbf";
- sha256 = "0lrc4082ghg77x5jl26hj8c7cp48yjvqhv4g3j0pznpzb4qyfnq0";
+ rev = "903d7a736d240ef7352989a4e5d0ff9129c2ee3c";
+ sha256 = "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8a0ddc10b11772d72a473e8d24ab4641bf4239a4/recipes/dired-fdclone";
@@ -7283,7 +7325,7 @@
owner = "xuhdev";
repo = "dired-icon";
rev = "dbace8d2250f84487d31b39050fcdc260fcde804";
- sha256 = "1d9105ibaw858gqp19rx2m6xm3hl57vzsmdqir883cy46qpvwhki";
+ sha256 = "0r9qmr2l5kjwh1frp0k87nyaf13f7f9fjjf9yf9z92djqapfm9dd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8a96249947cba52cd75515b3dc83b0842fedf624/recipes/dired-icon";
@@ -7346,7 +7388,7 @@
owner = "xuhdev";
repo = "dired-quick-sort";
rev = "fe39cfb2d4a7ba6b30f98134548b4e4bac67c469";
- sha256 = "1a9r1kz5irpvb2byabbf27sy7rjzaygfpqimpag41sj955wlgy9a";
+ sha256 = "014frvpszixn8cx7rdx704glmjbslv3py3kw0pb0xqf50k4scynf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4d278178128deb03a7b1d2e586dc38da2c7af857/recipes/dired-quick-sort";
@@ -8250,12 +8292,12 @@
easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }:
melpaBuild {
pname = "easy-hugo";
- version = "3.2.23";
+ version = "3.2.24";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-hugo";
- rev = "161354d0f06e2cdbe63610fb11880ae54e050181";
- sha256 = "12dxb0kzb02h6zal65n6bviy3zdkqjfbzsf7ncsbbmq8f1xrajmc";
+ rev = "fbcd7dfd737e6ec90f7bee6a911ff66e86577a64";
+ sha256 = "1yabqf8mksadfab7pfk87a3yimda3x6la2kvrxf76kbzbl23h3dx";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo";
@@ -8271,12 +8313,12 @@
easy-jekyll = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "easy-jekyll";
- version = "1.6.12";
+ version = "1.6.13";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-jekyll";
- rev = "faeff895ab2aa0ee9c6df18046817e8a3f0b62a1";
- sha256 = "1dp1r16rr5gqbh3aw900v2jz146c3qnlbjf5k75fazdglkbnagxk";
+ rev = "742366a2eb8bdb3d91e108e701ca8a1e83084671";
+ sha256 = "1i3pxg5mskbk2zmcavbd78sr9l45qqcjjfp3p0i8q5kbm9zjr5fm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3f281145bad12c27bdbef32ccc07b6a5f13b577/recipes/easy-jekyll";
@@ -8794,12 +8836,12 @@
ein = callPackage ({ auto-complete, cl-generic, dash, deferred, fetchFromGitHub, fetchurl, lib, melpaBuild, request, request-deferred, s, skewer-mode, websocket }:
melpaBuild {
pname = "ein";
- version = "0.13.0";
+ version = "0.14.1";
src = fetchFromGitHub {
owner = "millejoh";
repo = "emacs-ipython-notebook";
- rev = "213cea559e7a8fb50e303ea25e1626fefddaf4bd";
- sha256 = "18ysd78pfyymqd0f6ipma9p9x61pw21f0jwk118r5yi00wnry9za";
+ rev = "fcf9bff0af071f5e2020ac77d9a9473325e4c5bb";
+ sha256 = "1xk7k4av9hy0i7zqwpzis0rjp5myvxs52k45ah00zg8wi5hybq1x";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/215e163755fe391ce1f049622e7b9bf9a8aea95a/recipes/ein";
@@ -9140,12 +9182,12 @@
elfeed-protocol = callPackage ({ cl-lib ? null, elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "elfeed-protocol";
- version = "0.5.2";
+ version = "0.5.3";
src = fetchFromGitHub {
owner = "fasheng";
repo = "elfeed-protocol";
- rev = "e809a0f1c5b9713ec8d1932fa6412c57bc10150b";
- sha256 = "0ly7g9a85r5vm8fr45km43vdl9jbzdqyiy9a7d95wx63p6aip7vs";
+ rev = "611a1f57373e3692abf5122652ea7f6f96d3f6ec";
+ sha256 = "0z9xij39p6m2855ksk40qaf830d04smhl3ag9gjb4fhzvw671k76";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3f1eef8add7cd2cfefe6fad6d8e69d65696e9677/recipes/elfeed-protocol";
@@ -9840,12 +9882,12 @@
emms-player-mpv = callPackage ({ emms, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "emms-player-mpv";
- version = "0.0.13";
+ version = "0.1.0";
src = fetchFromGitHub {
owner = "dochang";
repo = "emms-player-mpv";
- rev = "6d526fe618c3cebf7fbc5f0d3f0a225de16a76c7";
- sha256 = "0jq67lngpz7iqwqfsl95r5p26cnnq7ldcj534nm86hwm6jfij564";
+ rev = "ccc0090ba1ebaad6bd3b079d6d810e9a051218b3";
+ sha256 = "1jy7zc26ypwl46ag26gbspbn7p4lf3jxgb34l8blqzk8qn8fxz0c";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9679cb8d4b3b9dce1e0bff16647ea3f3e02c4189/recipes/emms-player-mpv";
@@ -10256,12 +10298,12 @@
erc-hl-nicks = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erc-hl-nicks";
- version = "1.3.2";
+ version = "1.3.3";
src = fetchFromGitHub {
owner = "leathekd";
repo = "erc-hl-nicks";
- rev = "be181920ce6af0ab5d00d1c638e4e598b3998643";
- sha256 = "1k0g3bwp3w0dd6zwdv6k2wpqs2krjayilrzsr1hli649ljcx55d7";
+ rev = "756c4438a8245ccd3e389bf6c9850ee8453783ec";
+ sha256 = "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/erc-hl-nicks";
@@ -10777,22 +10819,22 @@
license = lib.licenses.free;
};
}) {};
- eslintd-fix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ eslintd-fix = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "eslintd-fix";
- version = "1.0.0";
+ version = "1.1.0";
src = fetchFromGitHub {
owner = "aaronjensen";
repo = "eslintd-fix";
- rev = "555fdad8ebee4ca0d990b8c80151c77c8bd6b773";
- sha256 = "0xmlr98gyq56vas02nnjdfv7x6zjddy4b1qpy3zz770jnpnrgq33";
+ rev = "97e8aa9b106e3e4b3a44c775ca972bdd2feda9ec";
+ sha256 = "1g6bv58m1052x2f5ffs17ryyqv0ay8vii5bwqs7dyfhlpppsn6c8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c72d2b3ee9b8066d51d09e165e58e9846ca879cc/recipes/eslintd-fix";
sha256 = "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v";
name = "eslintd-fix";
};
- packageRequires = [];
+ packageRequires = [ dash emacs ];
meta = {
homepage = "https://melpa.org/#/eslintd-fix";
license = lib.licenses.free;
@@ -11344,22 +11386,22 @@
license = lib.licenses.free;
};
}) {};
- evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ evil-nerd-commenter = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-nerd-commenter";
- version = "3.1.3";
+ version = "3.2.3";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "evil-nerd-commenter";
- rev = "41d43709210711c07de69497c5f7db646b7e7a96";
- sha256 = "04xjbsgydfb3mi2jg5fkkvp0rvjpx3mdx8anxzjqzdry7nir3m14";
+ rev = "34d411715ead5829d6d8969511047feb703b067e";
+ sha256 = "0ax846dy2hbrbvkj7nzfkcl5i1x9rga8bvg0ln55ivhq0iiy1lkv";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
sha256 = "1pa5gh065hqn5mhs47qvjllwdwwafl0clk555mb6w7svq58r6i8d";
name = "evil-nerd-commenter";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/evil-nerd-commenter";
license = lib.licenses.free;
@@ -12047,12 +12089,12 @@
eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "eziam-theme";
- version = "0.4.5";
+ version = "1.0";
src = fetchFromGitHub {
owner = "thblt";
repo = "eziam-theme-emacs";
- rev = "4a79230739cfaa607f39fbfe53339692b83c3933";
- sha256 = "0cdaayp2ca6wcqh11snmc50p4gl6sika58jxvn5dklsipzxv75v8";
+ rev = "a2bdda95f840c15240975c32b66d4d1e0682a1e1";
+ sha256 = "1z0m3pzhyif1rx8g4gzg1wfdqdkxdaahjjq8hx2fj4k4l16bia99";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme";
@@ -12358,6 +12400,27 @@
license = lib.licenses.free;
};
}) {};
+ fill-function-arguments = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "fill-function-arguments";
+ version = "0.9";
+ src = fetchFromGitHub {
+ owner = "davidshepherd7";
+ repo = "fill-function-arguments";
+ rev = "e819fca19a138ae67201220e41fe1d4384fb2a42";
+ sha256 = "102aalb7bfvjgf1klqsx6mn5a4vfjq63kwn7wqs9cmlib1mp8vnf";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/b78eab67517b19516e5d265018afcbff0acfa9ec/recipes/fill-function-arguments";
+ sha256 = "1gigzzz2csl3a55jmjx391a5k3ymixnwpblsn0pfgkkk4p3674q0";
+ name = "fill-function-arguments";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/fill-function-arguments";
+ license = lib.licenses.free;
+ };
+ }) {};
finalize = callPackage ({ cl-generic, cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "finalize";
@@ -12403,12 +12466,12 @@
find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "find-file-in-project";
- version = "5.6.0";
+ version = "5.6.4";
src = fetchFromGitHub {
owner = "technomancy";
repo = "find-file-in-project";
- rev = "ad6c8fce30ac927b4c2297894b6436e1cf724501";
- sha256 = "1mq544h03laphwvcff2qaxdbb7krmnw1vxmnc9jchz8ascx2x28n";
+ rev = "5691beb79f78c6a0ef1a18460df9fd1571ec3361";
+ sha256 = "0mvli1r7ml596y6v9qsip76j78f58q6jnwb18j8c7rngsrg08rc4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project";
@@ -13208,12 +13271,12 @@
flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-objc-clang";
- version = "2.0.1";
+ version = "2.0.2";
src = fetchFromGitHub {
owner = "GyazSquare";
repo = "flycheck-objc-clang";
- rev = "07f17d1dbe878fdcabac791a8916ddf643571a68";
- sha256 = "03624xn6g1ybcjw634c7nd5s2yllwfffk2gzn5hm70vfz06q7wb9";
+ rev = "f4a76ac199b67ff383ab5e70434c9b98b48c92d5";
+ sha256 = "0ryanx4vmy9jwqjnwvma6dm136y4fh227cyhz206km6595bbn3nc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4ff4412f507371b93cfb85fc744e54110cd87338/recipes/flycheck-objc-clang";
@@ -13334,12 +13397,12 @@
flycheck-pycheckers = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-pycheckers";
- version = "0.7.1";
+ version = "0.8";
src = fetchFromGitHub {
owner = "msherry";
repo = "flycheck-pycheckers";
- rev = "bb814165f12ad25d93f6c224502887c89089e750";
- sha256 = "14g3ia2nr12068rq1695lz5xnm30x8ngbcq1pxqf0pmaka4akf8l";
+ rev = "facb6e6cff7baaf38cf4e76a3e27a508225fc3f7";
+ sha256 = "061iahihq348ncbx9zh8ihca6j2fkc1nygk5f7v2q4j2g7kmfv8n";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/af36dca316b318d25d65c9e842f15f736e19ea63/recipes/flycheck-pycheckers";
@@ -13439,12 +13502,12 @@
flycheck-swift3 = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-swift3";
- version = "2.0.1";
+ version = "2.0.2";
src = fetchFromGitHub {
owner = "GyazSquare";
repo = "flycheck-swift3";
- rev = "34973cd28ca5e63f8f6328a17fd7b78cc913b93d";
- sha256 = "1iy6j05dzpi7pi87y6rpjzmlnl2s9izqpbzknis2kx9072qddm3q";
+ rev = "06a6f98d7e498860b345bbd03e96bfe59608f508";
+ sha256 = "0h1n4x0fvqfb6jcapbab1ck6bj4d7irbn9zz2hxv2rlrkqxfsmh3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1fb8c731c118327dc0bbb726e046fec46bcfb82/recipes/flycheck-swift3";
@@ -14024,27 +14087,6 @@
license = lib.licenses.free;
};
}) {};
- fm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "fm";
- version = "1.0";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "fm";
- rev = "6266840de17ac396dd7275a71da72cd5120c35a6";
- sha256 = "0r2j238iyxnww60xpbxggjmz6y2waayw4m51f0l39hszbhags2cv";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/e4a74b87c05b408433545a2236000ac081af36bf/recipes/fm";
- sha256 = "118d8fbhlv6i2rsyfqdhi841p96j7q4fab5qdg95ip40wq02dg4f";
- name = "fm";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/fm";
- license = lib.licenses.free;
- };
- }) {};
fn = callPackage ({ cl-lib ? null, dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fn";
@@ -14087,27 +14129,6 @@
license = lib.licenses.free;
};
}) {};
- fold-dwim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "fold-dwim";
- version = "1.2";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "fold-dwim";
- rev = "4764b0246a722d37eb8ec9f204ffaccaad1755d0";
- sha256 = "1k8z30imlxvqm7lv12kgqdfgc5znxyvl9jxi8j2ymmwlgy11f726";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/fold-dwim";
- sha256 = "1c8sh6i453jpfhwaqdvlqibnb9lmzfd7q6bvnk1b1q0df7igl53d";
- name = "fold-dwim";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/fold-dwim";
- license = lib.licenses.free;
- };
- }) {};
fold-dwim-org = callPackage ({ fetchFromGitHub, fetchurl, fold-dwim, lib, melpaBuild }:
melpaBuild {
pname = "fold-dwim-org";
@@ -14518,12 +14539,12 @@
futhark-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "futhark-mode";
- version = "0.3.1";
+ version = "0.4.1";
src = fetchFromGitHub {
owner = "HIPERFIT";
repo = "futhark";
- rev = "631c493b97b3e2f928892fb25fa29daca4927f83";
- sha256 = "1a6qr5r62q84m1jcs1xj36p7jr9c042gh38lb7cmfcxf2x693h68";
+ rev = "784e3147196bfe82ea9499628467335ea1d036f9";
+ sha256 = "07dqqpacvap034jzvdvnpjyryzicbvjx2imnsghsxw9m52jsb9wn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0607f01aad7e77d53595ad8db95d32acfd29b148/recipes/futhark-mode";
@@ -14641,22 +14662,22 @@
license = lib.licenses.free;
};
}) {};
- gams-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ gams-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "gams-mode";
- version = "6.4";
+ version = "6.5";
src = fetchFromGitHub {
owner = "ShiroTakeda";
repo = "gams-mode";
- rev = "2d6b5c29d84a42421ddc2f7f1e9c3a141d81c31c";
- sha256 = "0cri329g0b7ywqarg4jlmry574z7v15gdd9j7jnikq1s2jjgnb85";
+ rev = "3022e9f8411628e6a210fb5843d858b15a7513f5";
+ sha256 = "06hc8yy1g2vyvib8yrhwzs8fvgxnrxlw6iyzi7phjp9fgr3cp504";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c895a716636b00c2a158d33aab18f664a8601833/recipes/gams-mode";
sha256 = "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci";
name = "gams-mode";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/gams-mode";
license = lib.licenses.free;
@@ -15103,7 +15124,7 @@
license = lib.licenses.free;
};
}) {};
- git-commit-insert-issue = callPackage ({ bitbucket, fetchFromGitLab, fetchurl, github-issues, gitlab, helm, lib, melpaBuild, projectile, s }:
+ git-commit-insert-issue = callPackage ({ bitbucket, fetchFromGitLab, fetchurl, github-issues, gitlab, lib, melpaBuild, projectile, s }:
melpaBuild {
pname = "git-commit-insert-issue";
version = "0.3.1";
@@ -15111,14 +15132,14 @@
owner = "emacs-stuff";
repo = "git-commit-insert-issue";
rev = "5f08c17bf93b17915415d435ee41923d924fe20b";
- sha256 = "11my5apnyhdqh0pmq9wdjd1iah415a5nw87sk586cb3vxnbn5qas";
+ sha256 = "1gffjf6byasisa9jdcv9n4n5zqalvzfsxv7z75zl0g3ph7wc7bbm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/git-commit-insert-issue";
sha256 = "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax";
name = "git-commit-insert-issue";
};
- packageRequires = [ bitbucket github-issues gitlab helm projectile s ];
+ packageRequires = [ bitbucket github-issues gitlab projectile s ];
meta = {
homepage = "https://melpa.org/#/git-commit-insert-issue";
license = lib.licenses.free;
@@ -15552,7 +15573,7 @@
owner = "joewreschnig";
repo = "gitlab-ci-mode";
rev = "313431fa5b8b5ce4512909dfc15675bb99395f6f";
- sha256 = "0zdj3f0a5fg4vwhbv851jv4fs1dqfz2w4jsxqbri2zhzdjxc97vn";
+ sha256 = "0wjz87nhcwzp201jxv3qlj88hn7p8nvq20924y06gra2d656znar";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d7915ddcf21fdec539a86bb86c209cf0bbd378cb/recipes/gitlab-ci-mode";
@@ -15573,7 +15594,7 @@
owner = "joewreschnig";
repo = "gitlab-ci-mode-flycheck";
rev = "388fd05f3ea88ed3ebafb09868fc021f6ecc7625";
- sha256 = "0idpg4265rfx5i0i8cgfs6w3gncc766mbg81ldxqjhzvq3n28z39";
+ sha256 = "111clb37329c7v0lv1lwypb8bv7qb9f495f2cy45j2n711vymdna";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d7915ddcf21fdec539a86bb86c209cf0bbd378cb/recipes/gitlab-ci-mode-flycheck";
@@ -16668,6 +16689,27 @@
license = lib.licenses.free;
};
}) {};
+ grep-context = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "grep-context";
+ version = "0.1.0";
+ src = fetchFromGitHub {
+ owner = "mkcms";
+ repo = "grep-context";
+ rev = "4c63d0f2654dee1e249c2054d118d674a757bd45";
+ sha256 = "0n2bc9q6bvbfpaqivp3ajy9ad1wr7hfdd98qhnspsap67p73kfn4";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/41dbaf627ae4ef86c222d2b6b5d3523fdb9a4637/recipes/grep-context";
+ sha256 = "175s9asbnk2wlgpzc5izcd3vlfvdj064n38myy9qf4awn12c2y1g";
+ name = "grep-context";
+ };
+ packageRequires = [ cl-lib dash emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/grep-context";
+ license = lib.licenses.free;
+ };
+ }) {};
grin = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild {
pname = "grin";
version = "1.0";
@@ -17010,7 +17052,7 @@
owner = "iain";
repo = "hamburger-menu-mode";
rev = "fd37f013c2f2619a88d3ed5311a9d1308cc82614";
- sha256 = "196ydb57h4mjagjaiflvb20my561i6mdc6v6694ibdik2yns2inm";
+ sha256 = "1nykpp8afa0c0wiax1qn8wf5hfjaixk5kn4yhcw40z00pb8i2z5f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e8017730403cc0e613e3939017f85074753c3778/recipes/hamburger-menu";
@@ -17319,12 +17361,12 @@
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
melpaBuild {
pname = "helm";
- version = "2.9.0";
+ version = "2.9.2";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
- rev = "3dda0089ace4696cd5cfd397d5f5710fd3374e69";
- sha256 = "1r7jwp3l0n77zxvsl3h0rf4jff2ah0kpn3cgxyinl98js95w8fgy";
+ rev = "d5b9404176c41b16dffe522d45d08bdc7cb60e28";
+ sha256 = "0mr5jllsargsbw6xrqpacxi40nx472sd5qhbaf5a6ydc6l1qyqyk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
@@ -17655,12 +17697,12 @@
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "helm-core";
- version = "2.9.0";
+ version = "2.9.2";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
- rev = "3dda0089ace4696cd5cfd397d5f5710fd3374e69";
- sha256 = "1r7jwp3l0n77zxvsl3h0rf4jff2ah0kpn3cgxyinl98js95w8fgy";
+ rev = "d5b9404176c41b16dffe522d45d08bdc7cb60e28";
+ sha256 = "0mr5jllsargsbw6xrqpacxi40nx472sd5qhbaf5a6ydc6l1qyqyk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
@@ -18306,12 +18348,12 @@
helm-org-rifle = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }:
melpaBuild {
pname = "helm-org-rifle";
- version = "1.5.0";
+ version = "1.5.1";
src = fetchFromGitHub {
owner = "alphapapa";
repo = "helm-org-rifle";
- rev = "68f01726795ca3054cfc6327dcdb22c9c83dfdfa";
- sha256 = "0vak9phqgxz5dk1zj3i4cs94y797h77qadirsf33gl073cg95l8a";
+ rev = "ecf5ad53bef572e38d8c8d93b516f8eab8c4dfe5";
+ sha256 = "14020ws87m64bfxqw30c9hc88zb7w4kxs5svd2a10y00lgrg2m93";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615/recipes/helm-org-rifle";
@@ -18768,12 +18810,12 @@
helm-system-packages = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, seq }:
melpaBuild {
pname = "helm-system-packages";
- version = "1.8.0";
+ version = "1.9.0";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-system-packages";
- rev = "beb7e488454402a122b9dec9a019ea190b9b7dc3";
- sha256 = "0wclsv69v84d7bknnlralham94s7iqal7aczsvfxgj97hpwgywfz";
+ rev = "f1aeafd3de4d434fb89b9f65b863c9a53a7d2feb";
+ sha256 = "194f2in1k4g9fm66q63ayqmrg5shj807nq4phmkgfm02p1hj7v5w";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0c46cfb0fcda0500e15d04106150a072a1a75ccc/recipes/helm-system-packages";
@@ -19332,27 +19374,6 @@
license = lib.licenses.free;
};
}) {};
- hl-sexp = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "hl-sexp";
- version = "1.0.0";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "hl-sexp";
- rev = "0606100422321c18db51ceda80f25cd7717c2e01";
- sha256 = "1fsyj9cmqcz5nfxsfcyvpq2vqrhgl99xvq7ligviawl3x77376kw";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hl-sexp";
- sha256 = "109qzk39s5l30fmrfxhkx1y6ldbw9d5xnahwdvasc8fal5j6f1bm";
- name = "hl-sexp";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/hl-sexp";
- license = lib.licenses.free;
- };
- }) {};
hl-todo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "hl-todo";
@@ -19983,27 +20004,6 @@
license = lib.licenses.free;
};
}) {};
- ido-ubiquitous = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }:
- melpaBuild {
- pname = "ido-ubiquitous";
- version = "4.7";
- src = fetchFromGitHub {
- owner = "DarwinAwardWinner";
- repo = "ido-completing-read-plus";
- rev = "51861afe385f59f3262ee40acbe772ccb3dd52e7";
- sha256 = "0hspgk8m4acyhpcldwg3xqla9xp3fjrhf37cnjp45j1b3h94x3iy";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous";
- sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz";
- name = "ido-ubiquitous";
- };
- packageRequires = [ cl-lib ido-completing-read-plus ];
- meta = {
- homepage = "https://melpa.org/#/ido-ubiquitous";
- license = lib.licenses.free;
- };
- }) {};
ido-vertical-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ido-vertical-mode";
@@ -21098,12 +21098,12 @@
ivy-mpdel = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, libmpdel, melpaBuild, mpdel }:
melpaBuild {
pname = "ivy-mpdel";
- version = "0.3.0";
+ version = "0.4.0";
src = fetchFromGitHub {
owner = "mpdel";
repo = "ivy-mpdel";
- rev = "271673afc60fdb78052cbee390f2f4e6db0f83ec";
- sha256 = "02ijq7z3j3hzaazpgdf38n02w1yid2702nc7n46bg0zs2dl10p53";
+ rev = "f9f745792abfed85d535b4cb5b2a95f944bbad1d";
+ sha256 = "1sxd9hny0n751irf87bab0g3ygq6j4g32gdy4yk27y3r00i9g4b6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb25443752e18e47afc63d5497cc5052c388a607/recipes/ivy-mpdel";
@@ -21978,12 +21978,12 @@
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "kaolin-themes";
- version = "1.3.1";
+ version = "1.3.2";
src = fetchFromGitHub {
owner = "ogdenwebb";
repo = "emacs-kaolin-themes";
- rev = "8a229fcd1d73876920a063f0eba906a5080275a7";
- sha256 = "0w35862sjyizj7grb9ixjns8kpxq2wgdgn1n06jdhmnnaqdyq911";
+ rev = "0a80628e083db6e9d4b4af73be5d917d7d667330";
+ sha256 = "1brb0l39xkl19h9xslvmms9vcziygfp244xs5r3n4dqn43c7rr68";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
@@ -22461,12 +22461,12 @@
langtool = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "langtool";
- version = "1.6.0";
+ version = "2.0.0";
src = fetchFromGitHub {
owner = "mhayashi1120";
repo = "Emacs-langtool";
- rev = "d976e4f0cadb2309b798540429558936f8f45889";
- sha256 = "1qlgd5i8jngsq754jm44gb46p5y6j2cccacg72aklvwajay0adyh";
+ rev = "d93286722cff3fecf8641a4a6c3b0691f30362fe";
+ sha256 = "17xa055705n4jb7nafqvqgl0a6fdaxp3b3q8q0gsv5vzycsc74ga";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/503845e79e67c921f1fde31447f3dd4da2b6f993/recipes/langtool";
@@ -22508,7 +22508,7 @@
owner = "latex-math-preview";
repo = "latex-math-preview";
rev = "c1c87c4c5501f98b97af19f7e3454a2369265edc";
- sha256 = "118xrgrnwsmsysmframf6bmb0gkrdrm3jbkgivzxs41cw92fhbzw";
+ sha256 = "1mp6bpl8992pi40vs6b86q922h4z8879mrjalldv5dyz57ym5fsq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9e413b7684e9199510b00035825aa861d670e072/recipes/latex-math-preview";
@@ -23631,12 +23631,12 @@
magit-org-todos = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
melpaBuild {
pname = "magit-org-todos";
- version = "0.1.1";
+ version = "0.1.2";
src = fetchFromGitHub {
owner = "danielma";
repo = "magit-org-todos.el";
- rev = "d772f5220037cb7ad049250df2671e488c65da94";
- sha256 = "19m1p8z016mqxj2b29961rnbjclxcpspx5bkmqhrwhfysyvcjqg5";
+ rev = "0bfa36bbc50e62de0a3406031cb93e2f57dcdc55";
+ sha256 = "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/84480cad490cab2f087a484ed7b9d3d3064bbd29/recipes/magit-org-todos";
@@ -24289,12 +24289,12 @@
meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "meghanada";
- version = "0.9.2";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "mopemope";
repo = "meghanada-emacs";
- rev = "ca20c57c9c389d4dd9fe88d9a3da33d5af78e4d0";
- sha256 = "1k9dpvvz7qcscq9z76xvsas96lj0xsnp725z3w97sahqsi0sdxq8";
+ rev = "5479b42efe3ed504e3a0824e039e8365ebc0b788";
+ sha256 = "1jn4cpd6y310c8kkk7w0lpchac0rd3f8ri3lmy369gi1sb2xsk94";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
@@ -24939,12 +24939,12 @@
monokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "monokai-theme";
- version = "3.5.2";
+ version = "3.5.3";
src = fetchFromGitHub {
owner = "oneKelvinSmith";
repo = "monokai-emacs";
- rev = "da23ef64d4848636e47a026259526575381bd164";
- sha256 = "08py8dmwlqhc16fjcjf24dmpfbv2xpq8b0l43cx8f44f6791r2qf";
+ rev = "1143c072f5153ae1a69807e5e8af163069b947d2";
+ sha256 = "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bc9ce95a02fc4bcf7bc7547849c1c15d6db5089/recipes/monokai-theme";
@@ -25820,12 +25820,12 @@
neon-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "neon-mode";
- version = "1.2.2";
+ version = "1.3.0";
src = fetchFromGitHub {
owner = "Fuco1";
repo = "neon-mode";
- rev = "044040df9e83a015ddfe58940b503b6197fc29ce";
- sha256 = "0cxfn1v3jww8ih4yn77jw4lp8kjlc19m2vffwm8jli0dg8fzrfqa";
+ rev = "99d15e46beaf1e7d71e39a00cce810df1f33229d";
+ sha256 = "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c6b2a4898bf21413c4d9e6714af129bbb0a23e1a/recipes/neon-mode";
@@ -25967,12 +25967,12 @@
nix-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "nix-mode";
- version = "1.2.1";
+ version = "1.2.2";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix-mode";
- rev = "d5e839692a1273b128003eaed543318e7e5965a7";
- sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
+ rev = "cc23fd6a0e394aeeed603e2bfeb4a5ebc63db660";
+ sha256 = "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode";
@@ -26077,7 +26077,7 @@
owner = "esessoms";
repo = "nofrils-theme";
rev = "7825f88cb881a84eaa5cd1689772819a18eb2943";
- sha256 = "009did3i3i8yi0virq606l02w1mw0gdyiqablqg7m368gx0gfvh5";
+ sha256 = "1aslhxk5mp6khf66ac4c441vywhiqpb4kyajagb8b1p10z8hrqva";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c59ddaa5e41d3c25c446b1ed1905d7f88b448e0a/recipes/nofrils-acme-theme";
@@ -26132,11 +26132,11 @@
}) {};
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
pname = "notmuch";
- version = "0.26";
+ version = "0.26.1";
src = fetchgit {
url = "https://git.notmuchmail.org/git/notmuch";
- rev = "3c4e64d976eb561ac5157df1bbe5882e3e65b583";
- sha256 = "00a9ggrc63n88g7vp57c09r859pl2dbxnqgf543ks94lm0jzyz3f";
+ rev = "ea690a44d1a5af3da496b0d9482471cbd9623231";
+ sha256 = "0c9ihkwg2p2sq1zkribbc4k60sl5zdi3sgcy0v2amydsk5kkfy3r";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d05fbde3aabfec4efdd19a33fd2b1297905acb5a/recipes/notmuch";
@@ -27336,6 +27336,27 @@
license = lib.licenses.free;
};
}) {};
+ org-index = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "org-index";
+ version = "5.8.8";
+ src = fetchFromGitHub {
+ owner = "marcihm";
+ repo = "org-index";
+ rev = "0dfe0a67979279345378ca006ab4f727df378aca";
+ sha256 = "16wjzskq000grkanaw9zca2qbw9yzpndhfd2g0b0if2mf1g31mkv";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/54946e733901986304f7a7a5139b2818ebf97eb3/recipes/org-index";
+ sha256 = "1dp52xqrhby2xyi6p2d0ggp5irqsqwicp62ndg5wszyd33clxab5";
+ name = "org-index";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/org-index";
+ license = lib.licenses.free;
+ };
+ }) {};
org-jira = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request, s }:
melpaBuild {
pname = "org-jira";
@@ -27357,22 +27378,22 @@
license = lib.licenses.free;
};
}) {};
- org-journal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ org-journal = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-journal";
- version = "1.13.0";
+ version = "1.13.3";
src = fetchFromGitHub {
owner = "bastibe";
repo = "org-journal";
- rev = "5fddd231b9848f09daab3f0928e4d6e570b15174";
- sha256 = "1xl5nkndvlxv5in6x2lq9lkvafqh7zwyyzr6vrcdp1wv4qb207m2";
+ rev = "f24d6c5e71954fd1a748e719b9b4b51f77879800";
+ sha256 = "10cqri6k3lvsngwg060nj4n15ip54h3ldlyxgnknmp6wl0vjsjr3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/org-journal";
sha256 = "1npzqxn1ssigq7k1nrxz3xymxaazby0ddgxq6lgw2a1zjmjm4h2b";
name = "org-journal";
};
- packageRequires = [];
+ packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/org-journal";
license = lib.licenses.free;
@@ -27811,12 +27832,12 @@
org-static-blog = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-static-blog";
- version = "1.1.1";
+ version = "1.1.2";
src = fetchFromGitHub {
owner = "bastibe";
repo = "org-static-blog";
- rev = "8ea4456b0ca5642fff5868e54fe23f3b5109a579";
- sha256 = "0zh1vb6q8xwaawizv9rq86ahpvxsmrjrzhgh6k4xv6rx8k7k1i7g";
+ rev = "ab4ad93a23e5402b5276c061945872dd6d586e75";
+ sha256 = "07j4gyw22372nlfbaf94w6a7pza01zp6ivsg9iq2hcnx5pniv7hz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e0768d41a3de625c04ac8644ef2e05f17ee99908/recipes/org-static-blog";
@@ -28342,27 +28363,6 @@
license = lib.licenses.free;
};
}) {};
- osx-plist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
- melpaBuild {
- pname = "osx-plist";
- version = "1.0.0";
- src = fetchFromGitHub {
- owner = "emacsmirror";
- repo = "osx-plist";
- rev = "5e6de2622fdfe552d4902904f05ea03bc5a6ebd0";
- sha256 = "0830kkmvc3ss7ygqfwz3j75s7mhxfxyadaksrp0v2cc4y6wn6nfv";
- };
- recipeFile = fetchurl {
- url = "https://raw.githubusercontent.com/milkypostman/melpa/f3686dc818bd12be247bad915c01736a95690041/recipes/osx-plist";
- sha256 = "0zaqmhf5nm6jflwgxnknhi8zn97vhsia2xv8jm677l0h23pk2va8";
- name = "osx-plist";
- };
- packageRequires = [];
- meta = {
- homepage = "https://melpa.org/#/osx-plist";
- license = lib.licenses.free;
- };
- }) {};
osx-pseudo-daemon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "osx-pseudo-daemon";
@@ -30990,22 +30990,22 @@
license = lib.licenses.free;
};
}) {};
- psession = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ psession = callPackage ({ async, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "psession";
- version = "1.3";
+ version = "1.4";
src = fetchFromGitHub {
owner = "thierryvolpiatto";
repo = "psession";
- rev = "3488f7777486aa6c85ebc04d011860163d3cf0fc";
- sha256 = "0v9pg9ywwdqmahmmhg4gwzmibznlbmiyz4hf90brb59ns013jb53";
+ rev = "c48b0574e1477437b4427e78d018f858b49fd0ff";
+ sha256 = "1ffgnkdvrryc84cw1m5k37zx22dd5l7z882zgfh1p3dfzh8rqpqb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/669342d2b3e6cb622f196571d776a98ec8f3b1d3/recipes/psession";
sha256 = "18va6kvpia5an74vkzccs72z02vg4vq9mjzr5ih7xbcqxna7yv3a";
name = "psession";
};
- packageRequires = [ cl-lib emacs ];
+ packageRequires = [ async cl-lib emacs ];
meta = {
homepage = "https://melpa.org/#/psession";
license = lib.licenses.free;
@@ -31082,7 +31082,7 @@
owner = "elzair";
repo = "punctuality-logger";
rev = "708cae8e67dbae293c7c4be0ca5e49d76fac6714";
- sha256 = "1v48i37iqrrwbyy3bscicfq66vbbml4sg0f0n950bnk0qagjx8py";
+ sha256 = "1bkkgs2agy00wivilljkj3a9fsb2ba935icjmhbk46zjc6yf3y6q";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/76ac7178ee5381e08ae881f3fc6061106eeb1c1d/recipes/punctuality-logger";
@@ -31439,7 +31439,7 @@
owner = "python-mode-devs";
repo = "python-mode";
rev = "a0a534639bc6142c2c2f44bd7ca5878ad5f79518";
- sha256 = "0sj2hfjwpcdg9djsgl3y5aa3gnvl4s87477x6a9d14m11db3p7ml";
+ sha256 = "173i3k0nvjri1g1mkgkc2i9c9mpnsvxf1ldmm12yhadl5gl2ah07";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/82861e1ab114451af5e1106d53195afd3605448a/recipes/python-mode";
@@ -31564,6 +31564,27 @@
license = lib.licenses.free;
};
}) {};
+ ql = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "ql";
+ version = "1.0";
+ src = fetchFromGitHub {
+ owner = "ieure";
+ repo = "ql-el";
+ rev = "c885d125d8972374b408f6eddf031e44dc6fa0c6";
+ sha256 = "1l1jdvz1913m03ikcf9g3dsraaajqac1kzfy9c9xhzx8w7bbl80c";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/475bd8fd66c6d5b5c7e74aa2c4e094d313cc8303/recipes/ql";
+ sha256 = "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z";
+ name = "ql";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://melpa.org/#/ql";
+ license = lib.licenses.free;
+ };
+ }) {};
qml-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "qml-mode";
@@ -32560,12 +32581,12 @@
rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "rg";
- version = "1.4.2";
+ version = "1.5.0";
src = fetchFromGitHub {
owner = "dajva";
repo = "rg.el";
- rev = "562ac6fd6291f828ee6116db62982c77ddd52956";
- sha256 = "0r5pqjmjwn5qpm8kns1730a6cq3bqxjp8ha63w0n1hnrd4gb24sw";
+ rev = "d50bd106275f3ef7f77d0147857412fb065eef47";
+ sha256 = "0zjhak534j1n03z6p9wjmgc48yy40icrp2x8y9vbvg4hgx8xh9lm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
@@ -33295,12 +33316,12 @@
sayid = callPackage ({ cider, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sayid";
- version = "0.0.15";
+ version = "0.0.16";
src = fetchFromGitHub {
owner = "bpiel";
repo = "sayid";
- rev = "b44b6d346604f8d1ef9b9180be359ce1e601a298";
- sha256 = "0ggk60l132qgscgqbx4fdhzx6nlv2k7gbrjapkdl15slz2kyq03d";
+ rev = "8ea70573e6eb1a0d1a450fd501f38c2cf26ce27f";
+ sha256 = "02yp3h16yzys27lxcxn7qzb23z95vjdaxhinz0swdixgr5qwwc77";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid";
@@ -33962,7 +33983,7 @@
license = lib.licenses.free;
};
}) {};
- shrink-path = callPackage ({ dash, f, fetchFromGitLab, fetchurl, lib, melpaBuild, s }:
+ shrink-path = callPackage ({ dash, emacs, f, fetchFromGitLab, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "shrink-path";
version = "0.3.1";
@@ -33970,14 +33991,14 @@
owner = "bennya";
repo = "shrink-path.el";
rev = "9b8cfb59a2dcee8b39b680ab9adad5ecb1f53c0b";
- sha256 = "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki";
+ sha256 = "021bpgpzysag1s11m9pyq2bk6a0mf9ayx10yxhf5cw56x3d0jj1b";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/86b0d105e8a57d5f0bcde779441dc80b85e170ea/recipes/shrink-path";
sha256 = "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb";
name = "shrink-path";
};
- packageRequires = [ dash f s ];
+ packageRequires = [ dash emacs f s ];
meta = {
homepage = "https://melpa.org/#/shrink-path";
license = lib.licenses.free;
@@ -34889,12 +34910,12 @@
solidity-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "solidity-mode";
- version = "0.1.8";
+ version = "0.1.9";
src = fetchFromGitHub {
owner = "ethereum";
repo = "emacs-solidity";
- rev = "b5d95ef678305ca70b17e94fc2ee4289a8328048";
- sha256 = "04l3hvfpgqiaxdxh8s2cg2rx4cy50i7a411q81g8661fx60c6h6p";
+ rev = "d0ff4dea49540f37301d869f2797fca2492f55d5";
+ sha256 = "1wcy5z4wggn3zs9h1kyvm0ji51ppjcqdmym3mmxbrhan6a0kq724";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb9df5ec0692352b6494d435d11166f4ea26c99e/recipes/solidity-mode";
@@ -35348,6 +35369,27 @@
license = lib.licenses.free;
};
}) {};
+ srcery-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
+ melpaBuild {
+ pname = "srcery-theme";
+ version = "0.1.0";
+ src = fetchFromGitHub {
+ owner = "roosta";
+ repo = "emacs-srcery";
+ rev = "385809e78a2494ee617782430415048d91a11444";
+ sha256 = "1r6k042jipqz04nlr9gfpq6p80k33k4aqxsn03p1sicnpakzpixg";
+ };
+ recipeFile = fetchurl {
+ url = "https://raw.githubusercontent.com/milkypostman/melpa/1df48441ecf6abd272ff154722b9ce0e2546c284/recipes/srcery-theme";
+ sha256 = "1r8srxhznli3sskwppk7fyapyx0qixagkwm0fllgsbm4nwkzq9pn";
+ name = "srcery-theme";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://melpa.org/#/srcery-theme";
+ license = lib.licenses.free;
+ };
+ }) {};
srefactor = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "srefactor";
@@ -36168,12 +36210,12 @@
system-packages = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "system-packages";
- version = "1.0.1";
+ version = "1.0.2";
src = fetchFromGitHub {
owner = "jabranham";
repo = "system-packages";
- rev = "557b1eb96479cc6c73b9b7d509dd60b0ee71934d";
- sha256 = "01r8754ckbzsvlmnbpwpx2j33q693cmg5a59i5d77adn24ssk4f4";
+ rev = "fff67d190440fb076104f0f52d55a5e098207e31";
+ sha256 = "0ia4nnyhk84dkahsan8l8dslmqiv0afs5abc1w2fnql7zhsiac6q";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8c423d8c1ff251bd34df20bdb8b425c2f55ae1b1/recipes/system-packages";
@@ -36882,12 +36924,12 @@
tidal = callPackage ({ emacs, fetchFromGitHub, fetchurl, haskell-mode, lib, melpaBuild }:
melpaBuild {
pname = "tidal";
- version = "0.9.6";
+ version = "0.9.8";
src = fetchFromGitHub {
owner = "tidalcycles";
repo = "Tidal";
- rev = "b96bc7842e15f6b8973df8966307db7a1c4b7406";
- sha256 = "0g02k411xbwqv66qi2pw7r0slkvgfgvr7q41kf1czqnrmg5k4wzg";
+ rev = "f8af7bdbda547ebd12cf5c0ee1327f33cd9aa93f";
+ sha256 = "0y7a4bxsgpbg1sbsi4xdp4k9x3l0vh7acm5i3k87acpcpfb9aq5y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/16a26659a16199b5bb066be6e5c4a40419bda018/recipes/tidal";
@@ -37790,12 +37832,12 @@
uptimes = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "uptimes";
- version = "3.5";
+ version = "3.6";
src = fetchFromGitHub {
owner = "davep";
repo = "uptimes.el";
- rev = "07bcd6517243c9c9f61172202d33718bd9b2a850";
- sha256 = "0n416p47j4cl84lq8wcgmkagkws7a9n4g9307v1s91s2gqmfia3n";
+ rev = "5e81f8bb419836602819045e7d5a74b76ad3e69c";
+ sha256 = "04l452k249s3ilfj0da0k7rrfyjnxxdsipa2al46xqjds8l3h2rn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/72099e35ce3e34ec6afc6a3f87a4da07ec91499a/recipes/uptimes";
@@ -38194,7 +38236,7 @@
owner = "iankelling";
repo = "visible-mark";
rev = "c1852e13b6b61982738b56977a452ec9026faf1b";
- sha256 = "15zdbvv6c114mv6hdq375l7ax70sss06p9d7m86hgssc3kiv9vsv";
+ sha256 = "1rsi9irv9i03627cmfaqz03f9cvpm7555ga8n2gs622lzp6bb3jf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/76ac7178ee5381e08ae881f3fc6061106eeb1c1d/recipes/visible-mark";
@@ -40238,7 +40280,7 @@
owner = "egh";
repo = "zotxt-emacs";
rev = "43c0c6d23b31126bac6b14bb85608180fd9c866f";
- sha256 = "0qksa67aazs9vx7v14nlakr34z6l0h6mhfzi2c0vhrr0c210r6hp";
+ sha256 = "1hz1m4190yi6knz3y088ql8wy3pmsl8lsznqby2vpnn9p74fvl37";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b633453e77a719f6b6b6564e66c1c1260db38aa6/recipes/zotxt";
diff --git a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix
index be01b125cb7..33473ecad3f 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix
@@ -96,8 +96,8 @@ self:
# Expects bash to be at /bin/bash
flycheck-rtags = markBroken super.flycheck-rtags;
- # upstream issue: missing file header
- fold-dwim = markBroken super.fold-dwim;
+ # upstream issue: missing dependency
+ fold-dwim-org = markBroken super.fold-dwim-org;
# build timeout
graphene = markBroken super.graphene;
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 4af93ceb0bc..c0223e17a56 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -1,10 +1,10 @@
{ callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
- version = "20180402";
+ version = "20180416";
src = fetchurl {
- url = "https://orgmode.org/elpa/org-20180402.tar";
- sha256 = "0gb8hh26jzjqy262ll8jl3ym0cpw6s17id2gizv5qvw18knxs751";
+ url = "https://orgmode.org/elpa/org-20180416.tar";
+ sha256 = "05rbkrs93zd9kvldwvypb8fwwaysajy5n7b2k9c8xm2cx2nayv8m";
};
packageRequires = [];
meta = {
@@ -14,10 +14,10 @@
}) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib";
- version = "20180402";
+ version = "20180416";
src = fetchurl {
- url = "https://orgmode.org/elpa/org-plus-contrib-20180402.tar";
- sha256 = "09q5nr0ka7z719mi626wj5d51bcvdb08gk4zf94dzpks0gsqiikr";
+ url = "https://orgmode.org/elpa/org-plus-contrib-20180416.tar";
+ sha256 = "1f5zdfsa1fcf66hk3w57wh5385069yg0b86h57jgkcbmxkcmj6ij";
};
packageRequires = [];
meta = {
diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix
index 0e4a6a5bf20..b01532ae288 100644
--- a/pkgs/applications/editors/focuswriter/default.nix
+++ b/pkgs/applications/editors/focuswriter/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "focuswriter-${version}";
- version = "1.6.11";
+ version = "1.6.12";
src = fetchurl {
url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
- sha256 = "0izbsm2vx24pnd92gf7ky8x47g324a8d16hy1s8kk3x1inxd80z1";
+ sha256 = "0vcr9dhfsdls2x493klv7w5kn08iqqfg2jwjcbz274mcnd07bpqj";
};
nativeBuildInputs = [ pkgconfig qmake qttools ];
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index 23478758efe..bedc299ee67 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
+{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file, libintl }:
with stdenv.lib;
@@ -14,9 +14,7 @@ stdenv.mkDerivation rec {
sha256 = "66baaff43f12caebcf0efec9a5533044dc52837f799c73a1fd7312caa86099c2";
};
- NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
-
- nativeBuildInputs = [ pkgconfig intltool ];
+ nativeBuildInputs = [ pkgconfig intltool libintl ];
buildInputs = [ gtk2 which file ];
doCheck = true;
diff --git a/pkgs/applications/editors/ghostwriter/default.nix b/pkgs/applications/editors/ghostwriter/default.nix
index aeae711c1c0..7a0399ea0f8 100644
--- a/pkgs/applications/editors/ghostwriter/default.nix
+++ b/pkgs/applications/editors/ghostwriter/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "ghostwriter";
- version = "1.6.1";
+ version = "1.6.2";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "wereturtle";
repo = pname;
rev = "v${version}";
- sha256 = "1ihdr4xk0j83q83xknbikxb7yf9qhlkgvc89w33lhj090cv376gd";
+ sha256 = "0251563zy0q69fzfacvalpx43y15cshb0bhshyd4w37061gh1c12";
};
nativeBuildInputs = [ qmake pkgconfig ];
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 84ba32c4125..aedfb1fec3d 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -239,12 +239,12 @@ in
clion = buildClion rec {
name = "clion-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.1"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
- sha256 = "1mwajah0qghkw2f4hap5f35x826h8318a0bjbn9lpknffgfi0zc3"; /* updated by script */
+ sha256 = "170xgm3dzakvlwxx5kpy4zilq140kzcaxx9g3dm1w0i83g4l5j48"; /* updated by script */
};
wmClass = "jetbrains-clion";
update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -265,12 +265,12 @@ in
goland = buildGoland rec {
name = "goland-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.1"; /* updated by script */
description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz";
- sha256 = "0r008q3dn30zbn9zzyjj6pz3myxrb9i1s96kinj9vy0cj7gb0aai"; /* updated by script */
+ sha256 = "11bkbh661fpypr1v89xba4nmf02l4map9jdlj2ky6d77l9295ip3"; /* updated by script */
};
wmClass = "jetbrains-goland";
update-channel = "goland_release";
@@ -278,12 +278,12 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.2"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
- sha256 = "08dlyf2zfgcbbbnadx5x0n877diyglg9h7h39njcw4ajh4aninyq"; /* updated by script */
+ sha256 = "0s5vbdg8ajaac1jqh8ypy20fp061aqjhiyi20kdcsb0856nw5frg"; /* updated by script */
};
wmClass = "jetbrains-idea-ce";
update-channel = "IDEA_Release";
@@ -291,12 +291,12 @@ in
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.2"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
- sha256 = "1483w692n29v22f5vchh8fbizwn74wlznd5pvlscxs4ly9af7935"; /* updated by script */
+ sha256 = "1rrqc9sj0ibkkj627hzwdh7l5z8zm6cmaz0yzx6xhyi989ivfy2r"; /* updated by script */
};
wmClass = "jetbrains-idea";
update-channel = "IDEA_Release";
@@ -317,12 +317,12 @@ in
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.1"; /* updated by script */
description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0f3chibs7lp3kgkd0ah6d7z1lf3n4scalmadpxcn0fd6bap5mnjb"; /* updated by script */
+ sha256 = "1s26jczag12p3v3r6fdk02mmg55npzn0mzkmgcvh40fr7q7mq2pr"; /* updated by script */
};
wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm_Release";
@@ -330,12 +330,12 @@ in
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.1"; /* updated by script */
description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
- sha256 = "0lq5bqnfxj02sbd4yaf3ma6nps7cnf0d11dzqjv9m6b41y55dp0k"; /* updated by script */
+ sha256 = "0k7529xhhnvjz7ycs5ab4qc4cr35g1v2qxlswy1aqcgzh2zg4c85"; /* updated by script */
};
wmClass = "jetbrains-pycharm";
update-channel = "PyCharm_Release";
@@ -356,12 +356,12 @@ in
ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}";
- version = "2017.3.3"; /* updated by script */
+ version = "2017.3.4"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
- sha256 = "1b0y8pcg8wwprm1swrl4laajnmx2c359bi7ahsyfjfprlzwx7wck"; /* updated by script */
+ sha256 = "094m45jhrh4n64q5lrgfyvrimqjll6kcl2cx3cbsa3pp7x16abqn"; /* updated by script */
};
wmClass = "jetbrains-rubymine";
update-channel = "rm2017.3";
@@ -369,12 +369,12 @@ in
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
- version = "2018.1"; /* updated by script */
+ version = "2018.1.2"; /* updated by script */
description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
- sha256 = "1lx852gycrzajh58k1r2wfpwwjna6y3fsd5srw5fgzw58f120vn4"; /* updated by script */
+ sha256 = "14fmny9i0cgkplna0li5q2c5wiqk71k6c5h480ia85jaqi2vm8jh"; /* updated by script */
};
wmClass = "jetbrains-webstorm";
update-channel = "WS_Release";
diff --git a/pkgs/applications/kde/okteta.nix b/pkgs/applications/editors/okteta/default.nix
similarity index 58%
rename from pkgs/applications/kde/okteta.nix
rename to pkgs/applications/editors/okteta/default.nix
index 0ac8ddebc75..770eb63dc69 100644
--- a/pkgs/applications/kde/okteta.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -1,16 +1,22 @@
{
- mkDerivation, lib,
+ mkDerivation, lib, fetchurl,
extra-cmake-modules, kdoctools,
qtscript, kconfig, kinit, karchive, kcrash,
kcmutils, kconfigwidgets, knewstuff, kparts, qca-qt5,
shared-mime-info
}:
-mkDerivation {
+let
+ version = "17.12.3";
+in mkDerivation rec {
name = "okteta";
+ src = fetchurl {
+ url = "mirror://kde/stable/applications/${version}/src/${name}-${version}.tar.xz";
+ sha256 = "03wsv83l1cay2dpcsksad124wzan7kh8zxdw1h0yicn398kdbck4";
+ };
meta = {
license = with lib.licenses; [ gpl2 ];
- maintainers = with lib.maintainers; [ peterhoeg ];
+ maintainers = with lib.maintainers; [ peterhoeg bkchr ];
};
nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
buildInputs = [ shared-mime-info ];
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 6b7881c490c..0943513a4d1 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -6,7 +6,7 @@
let
verMajor = "1";
verMinor = "1";
- verPatch = "423";
+ verPatch = "442";
version = "${verMajor}.${verMinor}.${verPatch}";
ginVer = "1.5";
gwtVer = "2.7.0";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
owner = "rstudio";
repo = "rstudio";
rev = "v${version}";
- sha256 = "02kpmzh0vr0gb5dhiwcm4gwjbc3biwz0km655mgzmx9j64cyd3nf";
+ sha256 = "0drqh2brfs9w8dfh4r7j3fsqdsg63s6pvj2bbg5xwwc0yf220ahs";
};
# Hack RStudio to only use the input R.
diff --git a/pkgs/applications/editors/sublime/3/packages.nix b/pkgs/applications/editors/sublime/3/packages.nix
index 84394e85c88..01445ade473 100644
--- a/pkgs/applications/editors/sublime/3/packages.nix
+++ b/pkgs/applications/editors/sublime/3/packages.nix
@@ -5,14 +5,14 @@ let
in
rec {
sublime3-dev = common {
- buildVersion = "3161";
- x32sha256 = "0qrm2qmfsj71lr83c8zas2n3xk8hk9k4w8ygnasjhggmyjm3wy0q";
- x64sha256 = "0cgadylm68s2jly10r038q1fvmbzmpc2nvqy86vlyq9avgqbm5pc";
+ buildVersion = "3162";
+ x32sha256 = "190il02hqvv64w17w7xc1fz2wkbhk5a5y96jb25dvafmslm46d4i";
+ x64sha256 = "1nsjhjs6zajhx7m3dk7i450krg6pb03zffm1n3m1v0xb9zr37xz3";
} {};
sublime3 = common {
buildVersion = "3143";
x32sha256 = "0dgpx4wij2m77f478p746qadavab172166bghxmj7fb61nvw9v5i";
- x64sha256 = "06b554d2cvpxc976rvh89ix3kqc7klnngvk070xrs8wbyb221qcw";
+ x64sha256 = "06b554d2cvpxc976rvh89ix3kqc7klnngvk070xrs8wbyb221qcw";
} {};
}
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 7c6d186b883..d687712fc08 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -3,18 +3,18 @@
stdenv.mkDerivation rec {
name = "typora-${version}";
- version = "0.9.44";
+ version = "0.9.47";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
- sha256 = "9442c090bf2619d270890228abd7dabb9e217c0b200615f8ed3cb255efd122d5";
+ sha256 = "431741948f5a2faba04984c495bea56b4a800c6dbb7e21e24ad3124fb8ffcbc9";
}
else
fetchurl {
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
- sha256 = "ae228ca946d03940b85df30c995c4de3f942a780e32d4dcab872dec671c66ef3";
+ sha256 = "a95c8c1e296d8587a4dc6182af3b24253c3c2abc991badb7c758cd6d1bf5b1b6";
}
;
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 00b2b23c6f4..5b4f631987f 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
- version = "8.0.1605";
+ version = "8.0.1655";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "0a8zf43q806py14vq1frm350wycn47cmanj1hn1i7bqx1gdgcal9";
+ sha256 = "1c6raqjaxgsjazn4l7wqg2cscd5i4bz9m2g2xhn9ba1injs7mps1";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 0f81b0bdd64..9ffa31f2f2e 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -4,6 +4,7 @@ args@{ source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, ge
, composableDerivation, writeText, lib, config, glib, gtk2, gtk3, python, perl, tcl, ruby
, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
, libICE
+, vimPlugins
# apple frameworks
, CoreServices, CoreData, Cocoa, Foundation, libobjc, cf-private
@@ -80,6 +81,11 @@ composableDerivation {
flags = {
ftNix = {
patches = [ ./ft-nix-support.patch ];
+ preConfigure = ''
+ cp ${vimPlugins.vim-nix.src}/ftplugin/nix.vim runtime/ftplugin/nix.vim
+ cp ${vimPlugins.vim-nix.src}/indent/nix.vim runtime/indent/nix.vim
+ cp ${vimPlugins.vim-nix.src}/syntax/nix.vim runtime/syntax/nix.vim
+ '';
};
}
// edf {
diff --git a/pkgs/applications/editors/vim/ft-nix-support.patch b/pkgs/applications/editors/vim/ft-nix-support.patch
index 416ec18cf2c..274d855731f 100644
--- a/pkgs/applications/editors/vim/ft-nix-support.patch
+++ b/pkgs/applications/editors/vim/ft-nix-support.patch
@@ -6,7 +6,7 @@ index a8e6261..2b008fc 100644
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a setf z8a
-+" NIX
++" Nix
+au BufNewFile,BufRead *.nix setf nix
+
augroup END
@@ -18,72 +18,3 @@ index a8e6261..2b008fc 100644
unlet s:cpo_save
+
+
-diff --git a/runtime/syntax/nix.vim b/runtime/syntax/nix.vim
-new file mode 100644
-index 0000000..a2f9918
---- /dev/null
-+++ b/runtime/syntax/nix.vim
-@@ -0,0 +1,56 @@
-+" Vim syntax file
-+" Language: nix
-+" Maintainer: Marc Weber
-+" Modify and commit if you feel that way
-+" Last Change: 2011 Jun
-+"
-+" this syntax file can be still be enhanced very much..
-+" Don't ask, do it :-)
-+" This file (github.com/MarcWeber/vim-addon-nix) is periodically synced with
-+" the patch found in vim_configurable (nixpkgs)
-+
-+" Quit when a (custom) syntax file was already loaded
-+if exists("b:current_syntax")
-+ finish
-+endif
-+
-+
-+sy cluster nixStrings contains=nixStringParam,nixStringIndented
-+
-+syn keyword nixKeyword let throw inherit import true false null with
-+syn keyword nixConditional if else then
-+syn keyword nixBrace ( ) { } =
-+syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists
-+ \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList
-+ \ __head __tail __add __sub __lessThan __substring __stringLength
-+
-+syn region nixStringIndented start=+''+ skip=+'''\|''${\|"+ end=+''+ contains=nixStringParam
-+" syn region nixString start=+"+ skip=+\\"+ end=+"+
-+syn match nixAttr "\w\+\ze\s*="
-+syn match nixFuncArg "\zs\w\+\ze\s*:"
-+syn region nixStringParam start=+\${+ end=+}+ contains=@nixStrings
-+syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
-+syn match nixEndOfLineComment "#.*$"
-+
-+hi def link nixKeyword Keyword
-+hi def link nixConditional Conditional
-+hi def link nixBrace Special
-+hi def link nixString String
-+hi def link nixStringIndented String
-+hi def link nixBuiltin Special
-+hi def link nixStringParam Macro
-+hi def link nixMultiLineComment Comment
-+hi def link nixEndOfLineComment Comment
-+hi def link nixAttr Identifier
-+hi def link nixFuncArg Identifier
-+
-+syn sync maxlines=20000
-+syn sync minlines=50000
-+
-+let b:current_syntax = "nix"
-+
-+" thanks to domenkozar
-+" scan backwards to find begining of multiline statements
-+syn sync ccomment nixMultiLineComment minlines=10 maxlines=500
-+syn sync ccomment nixStringIndented minlines=10 maxlines=500
-+syn sync ccomment nixString maxlines=10
-diff --git a/runtime/ftplugin/nix.vim b/runtime/ftplugin/nix.vim
-new file mode 100644
---- /dev/null
-+++ b/runtime/ftplugin/nix.vim
-@@ -0,0 +1,2 @@
-+" coding conventions
-+setlocal sw=2 ts=2 expandtab
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index 7a6fa1961e2..5c10f6fb3bb 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -2,7 +2,7 @@
makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
let
- version = "1.22.1";
+ version = "1.22.2";
channel = "stable";
plat = {
@@ -12,9 +12,9 @@ let
}.${stdenv.system};
sha256 = {
- "i686-linux" = "1w1ywf21vcwmfq5ngag1y076nxbdqg3qav90ilxgd3dkv5j6fkjr";
- "x86_64-linux" = "14phpsrkkv09dgr7phqhgjzfhm3zzbh3w2yhyng0cj3vwzysikcs";
- "x86_64-darwin" = "0fqsr4ramanl7v1damf01zkmg75s9nlfkj6298h9sjvhc93pfcll";
+ "i686-linux" = "17iqqg6vdccbl1k4k2ks3kkgg7619j6qdvca4k27pjfqm17mvw5n";
+ "x86_64-linux" = "1ng2jhhaghsf7a2dmrimazh817jh0ag88whija179ywgrg3i6xam";
+ "x86_64-darwin" = "083hizigzxm45hcy6yqwznj9ibqdaxg2xv8rsyas4ig9x55irrcj";
}.${stdenv.system};
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
diff --git a/pkgs/applications/editors/vscode-with-extensions/default.nix b/pkgs/applications/editors/vscode/with-extensions.nix
similarity index 100%
rename from pkgs/applications/editors/vscode-with-extensions/default.nix
rename to pkgs/applications/editors/vscode/with-extensions.nix
diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index 987b544c556..b2404df8e56 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
, cairo, readline, ffmpeg, makeWrapper, wxGTK30, netcdf, blas
-, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages
+, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS
}:
stdenv.mkDerivation {
@@ -12,9 +12,14 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo
- readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.connector-c blas ]
+ readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.connector-c blas
+ libLAS ]
++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
+ # On Darwin the installer tries to symlink the help files into a system
+ # directory
+ patches = [ ./no_symbolic_links.patch ];
+
configureFlags = [
"--with-proj-share=${proj}/share/proj"
"--without-opengl"
@@ -29,8 +34,12 @@ stdenv.mkDerivation {
"--with-mysql-includes=${mysql.connector-c}/include/mysql"
"--with-mysql-libs=${mysql.connector-c}/lib/mysql"
"--with-blas"
+ "--with-liblas=${libLAS}/bin/liblas-config"
];
+ # Otherwise a very confusing "Can't load GDAL library" error
+ makeFlags = stdenv.lib.optional stdenv.isDarwin "GDAL_DYNAMIC=";
+
/* Ensures that the python script run at build time are actually executable;
* otherwise, patchShebangs ignores them. */
postConfigure = ''
@@ -69,6 +78,7 @@ stdenv.mkDerivation {
--set GRASS_PYTHON ${python2Packages.python}/bin/${python2Packages.python.executable} \
--suffix LD_LIBRARY_PATH ':' '${gdal}/lib'
ln -s $out/grass-*/lib $out/lib
+ ln -s $out/grass-*/include $out/include
'';
enableParallelBuilding = true;
@@ -78,5 +88,6 @@ stdenv.mkDerivation {
description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [mpickering];
};
}
diff --git a/pkgs/applications/gis/grass/no_symbolic_links.patch b/pkgs/applications/gis/grass/no_symbolic_links.patch
new file mode 100644
index 00000000000..ef09b97b703
--- /dev/null
+++ b/pkgs/applications/gis/grass/no_symbolic_links.patch
@@ -0,0 +1,37 @@
+diff --git a/include/Make/Install.make b/include/Make/Install.make
+index 0aba138..8ba74bc 100644
+--- a/include/Make/Install.make
++++ b/include/Make/Install.make
+@@ -116,11 +116,6 @@ real-install: | $(INST_DIR) $(UNIX_BIN)
+ -$(INSTALL) config.status $(INST_DIR)/config.status
+ -$(CHMOD) -R a+rX $(INST_DIR) 2>/dev/null
+
+-ifneq ($(findstring darwin,$(ARCH)),)
+- @# enable OSX Help Viewer
+- @/bin/ln -sfh "$(INST_DIR)/docs/html" /Library/Documentation/Help/GRASS-$(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR)
+-endif
+-
+ $(INST_DIR) $(UNIX_BIN):
+ $(MAKE_DIR_CMD) $@
+
+diff --git a/macosx/app/build_html_user_index.sh b/macosx/app/build_html_user_index.sh
+index 04e63eb..c9d9c2c 100755
+--- a/macosx/app/build_html_user_index.sh
++++ b/macosx/app/build_html_user_index.sh
+@@ -140,7 +140,6 @@ else
+ # echo "| $BASENAME | $SHORTDESC |
" >> $FULLINDEX
+ # make them local to user to simplify page links
+ echo "| $BASENAME | $SHORTDESC |
" >> $FULLINDEX
+- ln -sf "$HTMLDIRG/$i" global_$i
+ done
+ done
+ fi
+@@ -183,8 +182,3 @@ echo "
+