Merge branch 'master' into patch-2
This commit is contained in:
commit
ba126daace
@ -18,3 +18,8 @@ matrix:
|
||||
env:
|
||||
global:
|
||||
- GITHUB_TOKEN=5edaaf1017f691ed34e7f80878f8f5fbd071603f
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: never
|
||||
on_failure: change
|
||||
|
@ -823,10 +823,10 @@ alternative implemention for Integer called
|
||||
[integer-simple](http://hackage.haskell.org/package/integer-simple).
|
||||
|
||||
To get a GHC compiler build with `integer-simple` instead of `integer-gmp` use
|
||||
the attribute: `pkgs.haskell.compiler.integer-simple."${ghcVersion}"`.
|
||||
the attribute: `haskell.compiler.integer-simple."${ghcVersion}"`.
|
||||
For example:
|
||||
|
||||
$ nix-build -E '(import <nixpkgs> {}).pkgs.haskell.compiler.integer-simple.ghc802'
|
||||
$ nix-build -E '(import <nixpkgs> {}).haskell.compiler.integer-simple.ghc802'
|
||||
...
|
||||
$ result/bin/ghc-pkg list | grep integer
|
||||
integer-simple-0.1.1.1
|
||||
@ -838,7 +838,6 @@ The following command displays the complete list of GHC compilers build with `in
|
||||
haskell.compiler.integer-simple.ghc7103 ghc-7.10.3
|
||||
haskell.compiler.integer-simple.ghc722 ghc-7.2.2
|
||||
haskell.compiler.integer-simple.ghc742 ghc-7.4.2
|
||||
haskell.compiler.integer-simple.ghc763 ghc-7.6.3
|
||||
haskell.compiler.integer-simple.ghc783 ghc-7.8.3
|
||||
haskell.compiler.integer-simple.ghc784 ghc-7.8.4
|
||||
haskell.compiler.integer-simple.ghc801 ghc-8.0.1
|
||||
@ -846,10 +845,10 @@ The following command displays the complete list of GHC compilers build with `in
|
||||
haskell.compiler.integer-simple.ghcHEAD ghc-8.1.20170106
|
||||
|
||||
To get a package set supporting `integer-simple` use the attribute:
|
||||
`pkgs.haskell.packages.integer-simple."${ghcVersion}"`. For example
|
||||
`haskell.packages.integer-simple."${ghcVersion}"`. For example
|
||||
use the following to get the `scientific` package build with `integer-simple`:
|
||||
|
||||
$ nix-build -A pkgs.haskell.packages.integer-simple.ghc802.scientific
|
||||
$ nix-build -A haskell.packages.integer-simple.ghc802.scientific
|
||||
|
||||
|
||||
## Other resources
|
||||
|
@ -1,4 +1,4 @@
|
||||
{lib, pkgs} :
|
||||
{lib, pkgs}:
|
||||
let inherit (lib) nv nvs; in
|
||||
{
|
||||
|
||||
@ -19,7 +19,7 @@ let inherit (lib) nv nvs; in
|
||||
# * vim_configurable
|
||||
#
|
||||
# A minimal example illustrating most features would look like this:
|
||||
# let base = composableDerivation { (fixed : let inherit (fixed.fixed) name in {
|
||||
# let base = composableDerivation { (fixed: let inherit (fixed.fixed) name in {
|
||||
# src = fetchurl {
|
||||
# }
|
||||
# buildInputs = [A];
|
||||
@ -79,7 +79,7 @@ let inherit (lib) nv nvs; in
|
||||
# consider adding addtional elements by derivation.merge { removeAttrs = ["elem"]; };
|
||||
removeAttrs ? ["cfg" "flags"]
|
||||
|
||||
}: (lib.defaultOverridableDelayableArgs ( a: mkDerivation a)
|
||||
}: (lib.defaultOverridableDelayableArgs ( a: mkDerivation a)
|
||||
{
|
||||
inherit applyPreTidy removeAttrs;
|
||||
}).merge;
|
||||
|
@ -24,10 +24,10 @@ rec {
|
||||
traceValSeq = v: traceVal (builtins.deepSeq v v);
|
||||
|
||||
# this can help debug your code as well - designed to not produce thousands of lines
|
||||
traceShowVal = x : trace (showVal x) x;
|
||||
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 :
|
||||
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 "<no name>"}, { ${attrNamesToStr x} }"
|
||||
else "x is attr set { ${attrNamesToStr x} }"
|
||||
@ -43,9 +43,9 @@ rec {
|
||||
|
||||
# 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));
|
||||
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:
|
||||
@ -71,7 +71,7 @@ rec {
|
||||
|
||||
# create a test assuming that list elements are true
|
||||
# usage: { testX = allTrue [ true ]; }
|
||||
testAllTrue = expr : { inherit expr; expected = map (x: true) expr; };
|
||||
testAllTrue = expr: { inherit expr; expected = map (x: true) expr; };
|
||||
|
||||
strict = v:
|
||||
trace "Warning: strict is deprecated and will be removed in the next release"
|
||||
|
@ -16,23 +16,23 @@ rec {
|
||||
|
||||
defaultMergeArg = x : y: if builtins.isAttrs y then
|
||||
y
|
||||
else
|
||||
else
|
||||
(y x);
|
||||
defaultMerge = x: y: x // (defaultMergeArg x y);
|
||||
foldArgs = merger: f: init: x:
|
||||
let arg=(merger init (defaultMergeArg init x));
|
||||
# now add the function with composed args already applied to the final attrs
|
||||
base = (setAttrMerge "passthru" {} (f arg)
|
||||
( z : z // rec {
|
||||
function = foldArgs merger f arg;
|
||||
args = (lib.attrByPath ["passthru" "args"] {} z) // x;
|
||||
foldArgs = merger: f: init: x:
|
||||
let arg = (merger init (defaultMergeArg init x));
|
||||
# now add the function with composed args already applied to the final attrs
|
||||
base = (setAttrMerge "passthru" {} (f arg)
|
||||
( z: z // rec {
|
||||
function = foldArgs merger f arg;
|
||||
args = (lib.attrByPath ["passthru" "args"] {} z) // x;
|
||||
} ));
|
||||
withStdOverrides = base // {
|
||||
override = base.passthru.function;
|
||||
} ;
|
||||
withStdOverrides = base // {
|
||||
override = base.passthru.function;
|
||||
};
|
||||
in
|
||||
withStdOverrides;
|
||||
|
||||
withStdOverrides;
|
||||
|
||||
|
||||
# predecessors: proposed replacement for applyAndFun (which has a bug cause it merges twice)
|
||||
# the naming "overridableDelayableArgs" tries to express that you can
|
||||
@ -49,35 +49,35 @@ rec {
|
||||
#
|
||||
# examples: see test cases "res" below;
|
||||
overridableDelayableArgs =
|
||||
f : # the function applied to the arguments
|
||||
initial : # you pass attrs, the functions below are passing a function taking the fix argument
|
||||
f: # the function applied to the arguments
|
||||
initial: # you pass attrs, the functions below are passing a function taking the fix argument
|
||||
let
|
||||
takeFixed = if isFunction initial then initial else (fixed : initial); # transform initial to an expression always taking the fixed argument
|
||||
tidy = args :
|
||||
tidy = args:
|
||||
let # apply all functions given in "applyPreTidy" in sequence
|
||||
applyPreTidyFun = fold ( n : a : x : n ( a x ) ) lib.id (maybeAttr "applyPreTidy" [] args);
|
||||
applyPreTidyFun = fold ( n: a: x: n ( a x ) ) lib.id (maybeAttr "applyPreTidy" [] args);
|
||||
in removeAttrs (applyPreTidyFun args) ( ["applyPreTidy"] ++ (maybeAttr "removeAttrs" [] args) ); # tidy up args before applying them
|
||||
fun = n : x :
|
||||
let newArgs = fixed :
|
||||
let args = takeFixed fixed;
|
||||
mergeFun = args.${n};
|
||||
in if isAttrs x then (mergeFun args x)
|
||||
else assert isFunction x;
|
||||
mergeFun args (x ( args // { inherit fixed; }));
|
||||
in overridableDelayableArgs f newArgs;
|
||||
fun = n: x:
|
||||
let newArgs = fixed:
|
||||
let args = takeFixed fixed;
|
||||
mergeFun = args.${n};
|
||||
in if isAttrs x then (mergeFun args x)
|
||||
else assert isFunction x;
|
||||
mergeFun args (x ( args // { inherit fixed; }));
|
||||
in overridableDelayableArgs f newArgs;
|
||||
in
|
||||
(f (tidy (lib.fix takeFixed))) // {
|
||||
merge = fun "mergeFun";
|
||||
replace = fun "keepFun";
|
||||
};
|
||||
defaultOverridableDelayableArgs = f :
|
||||
defaultOverridableDelayableArgs = f:
|
||||
let defaults = {
|
||||
mergeFun = mergeAttrByFunc; # default merge function. merge strategie (concatenate lists, strings) is given by mergeAttrBy
|
||||
keepFun = a : b : { inherit (a) removeAttrs mergeFun keepFun mergeAttrBy; } // b; # even when using replace preserve these values
|
||||
keepFun = a: b: { inherit (a) removeAttrs mergeFun keepFun mergeAttrBy; } // b; # even when using replace preserve these values
|
||||
applyPreTidy = []; # list of functions applied to args before args are tidied up (usage case : prepareDerivationArgs)
|
||||
mergeAttrBy = mergeAttrBy // {
|
||||
applyPreTidy = a : b : a ++ b;
|
||||
removeAttrs = a : b: a ++ b;
|
||||
applyPreTidy = a: b: a ++ b;
|
||||
removeAttrs = a: b: a ++ b;
|
||||
};
|
||||
removeAttrs = ["mergeFun" "keepFun" "mergeAttrBy" "removeAttrs" "fixed" ]; # before applying the arguments to the function make sure these names are gone
|
||||
};
|
||||
@ -86,7 +86,7 @@ rec {
|
||||
|
||||
|
||||
# rec { # an example of how composedArgsAndFun can be used
|
||||
# a = composedArgsAndFun (x : x) { a = ["2"]; meta = { d = "bar";}; };
|
||||
# a = composedArgsAndFun (x: x) { a = ["2"]; meta = { d = "bar";}; };
|
||||
# # meta.d will be lost ! It's your task to preserve it (eg using a merge function)
|
||||
# b = a.passthru.function { a = [ "3" ]; meta = { d2 = "bar2";}; };
|
||||
# # instead of passing/ overriding values you can use a merge function:
|
||||
@ -119,7 +119,7 @@ rec {
|
||||
else if val == true || val == false then false
|
||||
else null;
|
||||
|
||||
|
||||
|
||||
# Return true only if there is an attribute and it is true.
|
||||
checkFlag = attrSet: name:
|
||||
if name == "true" then true else
|
||||
@ -134,29 +134,29 @@ rec {
|
||||
( attrByPath [name] (if checkFlag attrSet name then true else
|
||||
if argList == [] then null else
|
||||
let x = builtins.head argList; in
|
||||
if (head x) == name then
|
||||
if (head x) == name then
|
||||
(head (tail x))
|
||||
else (getValue attrSet
|
||||
else (getValue attrSet
|
||||
(tail argList) name)) attrSet );
|
||||
|
||||
|
||||
|
||||
# Input : attrSet, [[name default] ...], [ [flagname reqs..] ... ]
|
||||
# Output : are reqs satisfied? It's asserted.
|
||||
checkReqs = attrSet : argList : condList :
|
||||
checkReqs = attrSet: argList: condList:
|
||||
(
|
||||
fold lib.and true
|
||||
(map (x: let name = (head x) ; in
|
||||
|
||||
((checkFlag attrSet name) ->
|
||||
fold lib.and true
|
||||
(map (x: let name = (head x); in
|
||||
|
||||
((checkFlag attrSet name) ->
|
||||
(fold lib.and true
|
||||
(map (y: let val=(getValue attrSet argList y); in
|
||||
(val!=null) && (val!=false))
|
||||
(tail x))))) condList)) ;
|
||||
|
||||
(val!=null) && (val!=false))
|
||||
(tail x))))) condList));
|
||||
|
||||
|
||||
# This function has O(n^2) performance.
|
||||
uniqList = {inputList, acc ? []} :
|
||||
let go = xs : acc :
|
||||
uniqList = { inputList, acc ? [] }:
|
||||
let go = xs: acc:
|
||||
if xs == []
|
||||
then []
|
||||
else let x = head xs;
|
||||
@ -164,26 +164,26 @@ rec {
|
||||
in y ++ go (tail xs) (y ++ acc);
|
||||
in go inputList acc;
|
||||
|
||||
uniqListExt = {inputList, outputList ? [],
|
||||
getter ? (x : x), compare ? (x: y: x==y)}:
|
||||
uniqListExt = { inputList,
|
||||
outputList ? [],
|
||||
getter ? (x: x),
|
||||
compare ? (x: y: x==y) }:
|
||||
if inputList == [] then outputList else
|
||||
let x=head inputList;
|
||||
isX = y: (compare (getter y) (getter x));
|
||||
newOutputList = outputList ++
|
||||
(if any isX outputList then [] else [x]);
|
||||
in uniqListExt {outputList=newOutputList;
|
||||
inputList = (tail inputList);
|
||||
inherit getter compare;
|
||||
};
|
||||
let x = head inputList;
|
||||
isX = y: (compare (getter y) (getter x));
|
||||
newOutputList = outputList ++
|
||||
(if any isX outputList then [] else [x]);
|
||||
in uniqListExt { outputList = newOutputList;
|
||||
inputList = (tail inputList);
|
||||
inherit getter compare;
|
||||
};
|
||||
|
||||
|
||||
|
||||
condConcat = name: list: checker:
|
||||
if list == [] then name else
|
||||
if checker (head list) then
|
||||
condConcat
|
||||
(name + (head (tail list)))
|
||||
(tail (tail list))
|
||||
if checker (head list) then
|
||||
condConcat
|
||||
(name + (head (tail list)))
|
||||
(tail (tail list))
|
||||
checker
|
||||
else condConcat
|
||||
name (tail (tail list)) checker;
|
||||
@ -202,12 +202,12 @@ rec {
|
||||
in
|
||||
work startSet [] [];
|
||||
|
||||
innerModifySumArgs = f: x: a: b: if b == null then (f a b) // x else
|
||||
innerModifySumArgs = f: x: a: b: if b == null then (f a b) // x else
|
||||
innerModifySumArgs f x (a // b);
|
||||
modifySumArgs = f: x: innerModifySumArgs f x {};
|
||||
|
||||
|
||||
innerClosePropagation = acc : xs :
|
||||
innerClosePropagation = acc: xs:
|
||||
if xs == []
|
||||
then acc
|
||||
else let y = head xs;
|
||||
@ -227,31 +227,31 @@ rec {
|
||||
closePropagation = list: (uniqList {inputList = (innerClosePropagation [] list);});
|
||||
|
||||
# calls a function (f attr value ) for each record item. returns a list
|
||||
mapAttrsFlatten = f : r : map (attr: f attr r.${attr}) (attrNames r);
|
||||
mapAttrsFlatten = f: r: map (attr: f attr r.${attr}) (attrNames r);
|
||||
|
||||
# attribute set containing one attribute
|
||||
nvs = name : value : listToAttrs [ (nameValuePair name value) ];
|
||||
nvs = name: value: listToAttrs [ (nameValuePair name value) ];
|
||||
# adds / replaces an attribute of an attribute set
|
||||
setAttr = set : name : v : set // (nvs name v);
|
||||
setAttr = set: name: v: set // (nvs name v);
|
||||
|
||||
# setAttrMerge (similar to mergeAttrsWithFunc but only merges the values of a particular name)
|
||||
# setAttrMerge "a" [] { a = [2];} (x : x ++ [3]) -> { a = [2 3]; }
|
||||
# setAttrMerge "a" [] { } (x : x ++ [3]) -> { a = [ 3]; }
|
||||
setAttrMerge = name : default : attrs : f :
|
||||
# setAttrMerge "a" [] { a = [2];} (x: x ++ [3]) -> { a = [2 3]; }
|
||||
# setAttrMerge "a" [] { } (x: x ++ [3]) -> { a = [ 3]; }
|
||||
setAttrMerge = name: default: attrs: f:
|
||||
setAttr attrs name (f (maybeAttr name default attrs));
|
||||
|
||||
# Using f = a : b = b the result is similar to //
|
||||
# Using f = a: b = b the result is similar to //
|
||||
# merge attributes with custom function handling the case that the attribute
|
||||
# exists in both sets
|
||||
mergeAttrsWithFunc = f : set1 : set2 :
|
||||
fold (n: set : if set ? ${n}
|
||||
mergeAttrsWithFunc = f: set1: set2:
|
||||
fold (n: set: if set ? ${n}
|
||||
then setAttr set n (f set.${n} set2.${n})
|
||||
else set )
|
||||
(set2 // set1) (attrNames set2);
|
||||
|
||||
# merging two attribute set concatenating the values of same attribute names
|
||||
# eg { a = 7; } { a = [ 2 3 ]; } becomes { a = [ 7 2 3 ]; }
|
||||
mergeAttrsConcatenateValues = mergeAttrsWithFunc ( a : b : (toList a) ++ (toList b) );
|
||||
mergeAttrsConcatenateValues = mergeAttrsWithFunc ( a: b: (toList a) ++ (toList b) );
|
||||
|
||||
# merges attributes using //, if a name exisits in both attributes
|
||||
# an error will be triggered unless its listed in mergeLists
|
||||
@ -262,10 +262,10 @@ rec {
|
||||
# ! deprecated, use mergeAttrByFunc instead
|
||||
mergeAttrsNoOverride = { mergeLists ? ["buildInputs" "propagatedBuildInputs"],
|
||||
overrideSnd ? [ "buildPhase" ]
|
||||
} : attrs1 : attrs2 :
|
||||
fold (n: set :
|
||||
}: attrs1: attrs2:
|
||||
fold (n: set:
|
||||
setAttr set n ( if set ? ${n}
|
||||
then # merge
|
||||
then # merge
|
||||
if elem n mergeLists # attribute contains list, merge them by concatenating
|
||||
then attrs2.${n} ++ attrs1.${n}
|
||||
else if elem n overrideSnd
|
||||
@ -286,14 +286,14 @@ rec {
|
||||
# { mergeAttrsBy = [...]; buildInputs = [ a b c d ]; }
|
||||
# is used by prepareDerivationArgs, defaultOverridableDelayableArgs and can be used when composing using
|
||||
# foldArgs, composedArgsAndFun or applyAndFun. Example: composableDerivation in all-packages.nix
|
||||
mergeAttrByFunc = x : y :
|
||||
mergeAttrByFunc = x: y:
|
||||
let
|
||||
mergeAttrBy2 = { mergeAttrBy=lib.mergeAttrs; }
|
||||
mergeAttrBy2 = { mergeAttrBy = lib.mergeAttrs; }
|
||||
// (maybeAttr "mergeAttrBy" {} x)
|
||||
// (maybeAttr "mergeAttrBy" {} y); in
|
||||
fold lib.mergeAttrs {} [
|
||||
x y
|
||||
(mapAttrs ( a : v : # merge special names using given functions
|
||||
(mapAttrs ( a: v: # merge special names using given functions
|
||||
if x ? ${a}
|
||||
then if y ? ${a}
|
||||
then v x.${a} y.${a} # both have attr, use merge func
|
||||
@ -313,9 +313,9 @@ rec {
|
||||
#
|
||||
# This function is best explained by an example:
|
||||
#
|
||||
# {version ? "2.x"} :
|
||||
# {version ? "2.x"}:
|
||||
#
|
||||
# mkDerivation (mergeAttrsByVersion "package-name" version
|
||||
# mkDerivation (mergeAttrsByVersion "package-name" version
|
||||
# { # version specific settings
|
||||
# "git" = { src = ..; preConfigre = "autogen.sh"; buildInputs = [automake autoconf libtool]; };
|
||||
# "2.x" = { src = ..; };
|
||||
@ -346,21 +346,24 @@ rec {
|
||||
# See misc.nix -> versionedDerivation
|
||||
# discussion: nixpkgs: pull/310
|
||||
mergeAttrsByVersion = name: version: attrsByVersion: base:
|
||||
mergeAttrsByFuncDefaultsClean [ { name = "${name}-${version}"; } base (maybeAttr version (throw "bad version ${version} for ${name}") attrsByVersion)];
|
||||
mergeAttrsByFuncDefaultsClean [ { name = "${name}-${version}"; }
|
||||
base
|
||||
(maybeAttr version (throw "bad version ${version} for ${name}") attrsByVersion)
|
||||
];
|
||||
|
||||
# sane defaults (same name as attr name so that inherit can be used)
|
||||
mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
|
||||
listToAttrs (map (n : nameValuePair n lib.concat)
|
||||
listToAttrs (map (n: nameValuePair n lib.concat)
|
||||
[ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" "patches" ])
|
||||
// listToAttrs (map (n : nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
|
||||
// listToAttrs (map (n : nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
|
||||
// listToAttrs (map (n: nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
|
||||
// listToAttrs (map (n: nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
|
||||
;
|
||||
|
||||
# prepareDerivationArgs tries to make writing configurable derivations easier
|
||||
# example:
|
||||
# prepareDerivationArgs {
|
||||
# mergeAttrBy = {
|
||||
# myScript = x : y : x ++ "\n" ++ y;
|
||||
# myScript = x: y: x ++ "\n" ++ y;
|
||||
# };
|
||||
# cfg = {
|
||||
# readlineSupport = true;
|
||||
@ -392,10 +395,10 @@ rec {
|
||||
# TODO use args.mergeFun here as well?
|
||||
prepareDerivationArgs = args:
|
||||
let args2 = { cfg = {}; flags = {}; } // args;
|
||||
flagName = name : "${name}Support";
|
||||
cfgWithDefaults = (listToAttrs (map (n : nameValuePair (flagName n) false) (attrNames args2.flags)))
|
||||
flagName = name: "${name}Support";
|
||||
cfgWithDefaults = (listToAttrs (map (n: nameValuePair (flagName n) false) (attrNames args2.flags)))
|
||||
// args2.cfg;
|
||||
opts = attrValues (mapAttrs (a : v :
|
||||
opts = attrValues (mapAttrs (a: v:
|
||||
let v2 = if v ? set || v ? unset then v else { set = v; };
|
||||
n = if cfgWithDefaults.${flagName a} then "set" else "unset";
|
||||
attr = maybeAttr n {} v2; in
|
||||
|
@ -71,6 +71,7 @@
|
||||
bjg = "Brian Gough <bjg@gnu.org>";
|
||||
bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
|
||||
bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";
|
||||
bobakker = "Bo Bakker <bobakk3r@gmail.com>";
|
||||
bobvanderlinden = "Bob van der Linden <bobvanderlinden@gmail.com>";
|
||||
bodil = "Bodil Stokke <nix@bodil.org>";
|
||||
boothead = "Ben Ford <ben@perurbis.com>";
|
||||
@ -203,6 +204,7 @@
|
||||
havvy = "Ryan Scheel <ryan.havvy@gmail.com>";
|
||||
hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
|
||||
hce = "Hans-Christian Esperer <hc@hcesperer.org>";
|
||||
heel = "Sergii Paryzhskyi <parizhskiy@gmail.com>";
|
||||
henrytill = "Henry Till <henrytill@gmail.com>";
|
||||
hinton = "Tom Hinton <t@larkery.com>";
|
||||
hrdinka = "Christoph Hrdinka <c.nix@hrdinka.at>";
|
||||
|
@ -114,7 +114,7 @@ rec {
|
||||
/* Massage a module into canonical form, that is, a set consisting
|
||||
of ‘options’, ‘config’ and ‘imports’ attributes. */
|
||||
unifyModuleSyntax = file: key: m:
|
||||
let metaSet = if m ? meta
|
||||
let metaSet = if m ? meta
|
||||
then { meta = m.meta; }
|
||||
else {};
|
||||
in
|
||||
@ -595,7 +595,7 @@ rec {
|
||||
functionality
|
||||
|
||||
This show a warning if any a.b.c or d.e.f is set, and set the value of
|
||||
x.y.z to the result of the merge function
|
||||
x.y.z to the result of the merge function
|
||||
*/
|
||||
mkMergedOptionModule = from: to: mergeFn:
|
||||
{ config, options, ... }:
|
||||
@ -611,12 +611,12 @@ rec {
|
||||
let val = getAttrFromPath f config;
|
||||
opt = getAttrFromPath f options;
|
||||
in
|
||||
optionalString
|
||||
optionalString
|
||||
(val != "_mkMergedOptionModule")
|
||||
"The option `${showOption f}' defined in ${showFiles opt.files} has been changed to `${showOption to}' that has a different type. Please read `${showOption to}' documentation and update your configuration accordingly."
|
||||
) from);
|
||||
} // setAttrByPath to (mkMerge
|
||||
(optional
|
||||
(optional
|
||||
(any (f: (getAttrFromPath f config) != "_mkMergedOptionModule") from)
|
||||
(mergeFn config)));
|
||||
};
|
||||
|
@ -80,7 +80,7 @@ runTests {
|
||||
y = x.merge {};
|
||||
in (y.merge) { a = 10; };
|
||||
|
||||
resRem7 = res6.replace (a : removeAttrs a ["a"]);
|
||||
resRem7 = res6.replace (a: removeAttrs a ["a"]);
|
||||
|
||||
resReplace6 = let x = defaultOverridableDelayableArgs id { a = 7; mergeAttrBy = { a = add; }; };
|
||||
x2 = x.merge { a = 20; }; # now we have 27
|
||||
@ -88,10 +88,10 @@ runTests {
|
||||
|
||||
# fixed tests (delayed args): (when using them add some comments, please)
|
||||
resFixed1 =
|
||||
let x = defaultOverridableDelayableArgs id ( x : { a = 7; c = x.fixed.b; });
|
||||
y = x.merge (x : { name = "name-${builtins.toString x.fixed.c}"; });
|
||||
let x = defaultOverridableDelayableArgs id ( x: { a = 7; c = x.fixed.b; });
|
||||
y = x.merge (x: { name = "name-${builtins.toString x.fixed.c}"; });
|
||||
in (y.merge) { b = 10; };
|
||||
strip = attrs : removeAttrs attrs ["merge" "replace"];
|
||||
strip = attrs: removeAttrs attrs ["merge" "replace"];
|
||||
in all id
|
||||
[ ((strip res1) == { })
|
||||
((strip res2) == { a = 7; })
|
||||
|
@ -81,7 +81,7 @@ rec {
|
||||
# name: name of the type
|
||||
# type: type function.
|
||||
# wrapped: the type wrapped in case of compound types.
|
||||
# payload: values of the type, two payloads of the same type must be
|
||||
# payload: values of the type, two payloads of the same type must be
|
||||
# combinable with the binOp binary operation.
|
||||
# binOp: binary operation that merge two payloads of the same type.
|
||||
functor ? defaultFunctor name
|
||||
|
@ -1,14 +0,0 @@
|
||||
*~
|
||||
,*
|
||||
.*.swp
|
||||
.*.swo
|
||||
result
|
||||
result-*
|
||||
/doc/NEWS.html
|
||||
/doc/NEWS.txt
|
||||
/doc/manual.html
|
||||
/doc/manual.pdf
|
||||
.version-suffix
|
||||
|
||||
.DS_Store
|
||||
.git
|
@ -1,12 +0,0 @@
|
||||
FROM busybox
|
||||
|
||||
RUN dir=`mktemp -d` && trap 'rm -rf "$dir"' EXIT && \
|
||||
wget -O- https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2 | bzcat | tar x -C $dir && \
|
||||
mkdir -m 0755 /nix && USER=root sh $dir/*/install && \
|
||||
echo ". /root/.nix-profile/etc/profile.d/nix.sh" >> /etc/profile
|
||||
|
||||
ADD . /root/nix/nixpkgs
|
||||
ONBUILD ENV NIX_PATH nixpkgs=/root/nix/nixpkgs:nixos=/root/nix/nixpkgs/nixos
|
||||
ONBUILD ENV PATH /root/.nix-profile/bin:/root/.nix-profile/sbin:/bin:/sbin:/usr/bin:/usr/sbin
|
||||
ONBUILD ENV ENV /etc/profile
|
||||
ENV ENV /etc/profile
|
@ -74,13 +74,13 @@ def cli(jobset):
|
||||
# TODO: dependency failed without propagated builds
|
||||
for tr in d('img[alt="Failed"]').parents('tr'):
|
||||
a = pq(tr)('a')[1]
|
||||
print "- [ ] [{}]({})".format(a.text, a.get('href'))
|
||||
print("- [ ] [{}]({})".format(a.text, a.get('href')))
|
||||
|
||||
sys.stdout.flush()
|
||||
|
||||
maintainers = get_maintainers(a.text)
|
||||
if maintainers:
|
||||
print " - maintainers: {}".format(", ".join(map(lambda u: '@' + u, 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?
|
||||
|
||||
|
@ -177,7 +177,7 @@ foreach my $u (@{$spec->{users}}) {
|
||||
}
|
||||
|
||||
# Create a home directory.
|
||||
if ($u->{createHome} && ! -e $u->{home}) {
|
||||
if ($u->{createHome}) {
|
||||
make_path($u->{home}, { mode => 0700 }) if ! -e $u->{home};
|
||||
chown $u->{uid}, $u->{gid}, $u->{home};
|
||||
}
|
||||
|
30
nixos/modules/hardware/sensor/iio.nix
Normal file
30
nixos/modules/hardware/sensor/iio.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
hardware.sensor.iio = {
|
||||
enable = mkOption {
|
||||
description = "Enable this option to support IIO sensors.";
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.hardware.sensor.iio.enable {
|
||||
|
||||
boot.initrd.availableKernelModules = [ "hid-sensor-hub" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [ iio-sensor-proxy ];
|
||||
|
||||
services.dbus.packages = with pkgs; [ iio-sensor-proxy ];
|
||||
services.udev.packages = with pkgs; [ iio-sensor-proxy ];
|
||||
systemd.packages = with pkgs; [ iio-sensor-proxy ];
|
||||
};
|
||||
}
|
@ -29,6 +29,7 @@
|
||||
./hardware/ckb.nix
|
||||
./hardware/cpu/amd-microcode.nix
|
||||
./hardware/cpu/intel-microcode.nix
|
||||
./hardware/sensor/iio.nix
|
||||
./hardware/ksm.nix
|
||||
./hardware/mcelog.nix
|
||||
./hardware/network/b43.nix
|
||||
@ -328,6 +329,7 @@
|
||||
./services/monitoring/prometheus/default.nix
|
||||
./services/monitoring/prometheus/alertmanager.nix
|
||||
./services/monitoring/prometheus/blackbox-exporter.nix
|
||||
./services/monitoring/prometheus/fritzbox-exporter.nix
|
||||
./services/monitoring/prometheus/json-exporter.nix
|
||||
./services/monitoring/prometheus/nginx-exporter.nix
|
||||
./services/monitoring/prometheus/node-exporter.nix
|
||||
|
@ -312,7 +312,7 @@
|
||||
Overflows in boot critical code (e.g., the root filesystem module) can
|
||||
render the system unbootable. Work around by setting
|
||||
<programlisting>
|
||||
boot.kernel.kernelParams = [ "pax_size_overflow_report_only" ];
|
||||
boot.kernelParams = [ "pax_size_overflow_report_only" ];
|
||||
</programlisting>
|
||||
</para></listitem>
|
||||
|
||||
|
@ -4,20 +4,29 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.couchdb;
|
||||
configFile = pkgs.writeText "couchdb.ini"
|
||||
useVersion2 = strings.versionAtLeast (strings.getVersion cfg.package) "2.0";
|
||||
configFile = pkgs.writeText "couchdb.ini" (
|
||||
''
|
||||
[couchdb]
|
||||
database_dir = ${cfg.databaseDir}
|
||||
uri_file = ${cfg.uriFile}
|
||||
view_index_dir = ${cfg.viewIndexDir}
|
||||
|
||||
'' + (if useVersion2 then
|
||||
''
|
||||
[chttpd]
|
||||
'' else
|
||||
''
|
||||
[httpd]
|
||||
'') +
|
||||
''
|
||||
port = ${toString cfg.port}
|
||||
bind_address = ${cfg.bindAddress}
|
||||
|
||||
[log]
|
||||
file = ${cfg.logFile}
|
||||
'';
|
||||
'');
|
||||
executable = if useVersion2 then "${cfg.package}/bin/couchdb"
|
||||
else ''${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} -a ${cfg.configFile}'';
|
||||
|
||||
in {
|
||||
|
||||
@ -130,7 +139,6 @@ in {
|
||||
|
||||
configFile = mkOption {
|
||||
type = types.string;
|
||||
default = "/var/lib/couchdb/couchdb.ini";
|
||||
description = ''
|
||||
Configuration file for persisting runtime changes. File
|
||||
needs to be readable and writable from couchdb user/group.
|
||||
@ -147,6 +155,9 @@ in {
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
services.couchdb.configFile = mkDefault
|
||||
(if useVersion2 then "/var/lib/couchdb/local.ini" else "/var/lib/couchdb/couchdb.ini");
|
||||
|
||||
systemd.services.couchdb = {
|
||||
description = "CouchDB Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -170,11 +181,20 @@ in {
|
||||
fi
|
||||
'';
|
||||
|
||||
environment = mkIf useVersion2 {
|
||||
# we are actually specifying 4 configuration files:
|
||||
# 1. the preinstalled default.ini
|
||||
# 2. the module configuration
|
||||
# 3. the extraConfig from the module options
|
||||
# 4. the locally writable config file, which couchdb itself writes to
|
||||
ERL_FLAGS= ''-couch_ini ${cfg.package}/etc/default.ini ${configFile} ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} ${cfg.configFile}'';
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
PermissionsStartOnly = true;
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} -a ${cfg.configFile}";
|
||||
ExecStart = executable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -18,7 +18,7 @@ let
|
||||
footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}";
|
||||
createList = d: l: ''
|
||||
${pkgs.coreutils}/bin/mkdir -p ${listCtl d l}
|
||||
echo ${listAddress d l} > ${listCtl d l}/listadress
|
||||
echo ${listAddress d l} > ${listCtl d l}/listaddress
|
||||
echo "${lib.concatStringsSep "\n" (customHeaders d l)}" > ${listCtl d l}/customheaders
|
||||
echo ${footer d l} > ${listCtl d l}/footer
|
||||
echo ${subjectPrefix l} > ${listCtl d l}/prefix
|
||||
|
@ -41,7 +41,7 @@ let
|
||||
|
||||
entry = "${manual.manual}/share/doc/nixos/index.html";
|
||||
|
||||
help = pkgs.writeScriptBin "nixos-help"
|
||||
helpScript = pkgs.writeScriptBin "nixos-help"
|
||||
''
|
||||
#! ${pkgs.stdenv.shell} -e
|
||||
browser="$BROWSER"
|
||||
@ -58,6 +58,15 @@ let
|
||||
exec "$browser" ${entry}
|
||||
'';
|
||||
|
||||
desktopItem = pkgs.makeDesktopItem {
|
||||
name = "nixos-manual";
|
||||
desktopName = "NixOS Manual";
|
||||
genericName = "View NixOS documentation in a web browser";
|
||||
# TODO: find a better icon (Nix logo + help overlay?)
|
||||
icon = "system-help";
|
||||
exec = "${helpScript}/bin/nixos-help";
|
||||
categories = "System";
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
@ -105,7 +114,8 @@ in
|
||||
system.build.manual = manual;
|
||||
|
||||
environment.systemPackages =
|
||||
[ manual.manual help ]
|
||||
[ manual.manual helpScript ]
|
||||
++ optional config.services.xserver.enable desktopItem
|
||||
++ optional config.programs.man.enable manual.manpages;
|
||||
|
||||
boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"];
|
||||
|
@ -0,0 +1,76 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.fritzboxExporter;
|
||||
in {
|
||||
options = {
|
||||
services.prometheus.fritzboxExporter = {
|
||||
enable = mkEnableOption "prometheus fritzbox exporter";
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 9133;
|
||||
description = ''
|
||||
Port to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
gatewayAddress = mkOption {
|
||||
type = types.str;
|
||||
default = "fritz.box";
|
||||
description = ''
|
||||
The hostname or IP of the FRITZ!Box.
|
||||
'';
|
||||
};
|
||||
|
||||
gatewayPort = mkOption {
|
||||
type = types.int;
|
||||
default = 49000;
|
||||
description = ''
|
||||
The port of the FRITZ!Box UPnP service.
|
||||
'';
|
||||
};
|
||||
|
||||
extraFlags = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Extra commandline options when launching the fritzbox exporter.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Open port in firewall for incoming connections.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port;
|
||||
|
||||
systemd.services.prometheus-fritzbox-exporter = {
|
||||
description = "Prometheus exporter for FRITZ!Box via UPnP";
|
||||
unitConfig.Documentation = "https://github.com/ndecker/fritzbox_exporter";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = "nobody";
|
||||
Restart = "always";
|
||||
PrivateTmp = true;
|
||||
WorkingDirectory = /tmp;
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-fritzbox-exporter}/bin/fritzbox_exporter \
|
||||
-listen-address :${toString cfg.port} \
|
||||
-gateway-address ${cfg.gatewayAddress} \
|
||||
-gateway-port ${toString cfg.gatewayPort} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -2,14 +2,10 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
apparmorEnabled = config.security.apparmor.enable;
|
||||
|
||||
cfg = config.services.dnscrypt-proxy;
|
||||
|
||||
stateDirectory = "/var/lib/dnscrypt-proxy";
|
||||
|
||||
localAddress = "${cfg.localAddress}:${toString cfg.localPort}";
|
||||
|
||||
# The minisign public key used to sign the upstream resolver list.
|
||||
# This is somewhat more flexible than preloading the key as an
|
||||
# embedded string.
|
||||
@ -18,31 +14,33 @@ let
|
||||
sha256 = "18lnp8qr6ghfc2sd46nn1rhcpr324fqlvgsp4zaigw396cd7vnnh";
|
||||
};
|
||||
|
||||
# Internal flag indicating whether the upstream resolver list is used
|
||||
useUpstreamResolverList = cfg.resolverList == null && cfg.customResolver == null;
|
||||
# Internal flag indicating whether the upstream resolver list is used.
|
||||
useUpstreamResolverList = cfg.customResolver == null;
|
||||
|
||||
resolverList =
|
||||
if (cfg.resolverList != null)
|
||||
then cfg.resolverList
|
||||
else "${stateDirectory}/dnscrypt-resolvers.csv";
|
||||
# The final local address.
|
||||
localAddress = "${cfg.localAddress}:${toString cfg.localPort}";
|
||||
|
||||
resolverArgs = if (cfg.customResolver != null)
|
||||
then
|
||||
[ "--resolver-address=${cfg.customResolver.address}:${toString cfg.customResolver.port}"
|
||||
"--provider-name=${cfg.customResolver.name}"
|
||||
"--provider-key=${cfg.customResolver.key}"
|
||||
]
|
||||
else
|
||||
[ "--resolvers-list=${resolverList}"
|
||||
"--resolver-name=${cfg.resolverName}"
|
||||
];
|
||||
# The final resolvers list path.
|
||||
resolverList = "${stateDirectory}/dnscrypt-resolvers.csv";
|
||||
|
||||
# Build daemon command line
|
||||
|
||||
resolverArgs =
|
||||
if (cfg.customResolver == null)
|
||||
then
|
||||
[ "-L ${resolverList}"
|
||||
"-R ${cfg.resolverName}"
|
||||
]
|
||||
else with cfg.customResolver;
|
||||
[ "-N ${name}"
|
||||
"-k ${key}"
|
||||
"-r ${address}:${toString port}"
|
||||
];
|
||||
|
||||
# The final command line arguments passed to the daemon
|
||||
daemonArgs =
|
||||
[ "--local-address=${localAddress}" ]
|
||||
++ optional cfg.tcpOnly "--tcp-only"
|
||||
++ optional cfg.ephemeralKeys "-E"
|
||||
++ resolverArgs;
|
||||
[ "-a ${localAddress}" ]
|
||||
++ resolverArgs
|
||||
++ cfg.extraArgs;
|
||||
in
|
||||
|
||||
{
|
||||
@ -52,6 +50,9 @@ in
|
||||
};
|
||||
|
||||
options = {
|
||||
# Before adding another option, consider whether it could
|
||||
# equally well be passed via extraArgs.
|
||||
|
||||
services.dnscrypt-proxy = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
@ -84,19 +85,11 @@ in
|
||||
default = "dnscrypt.eu-nl";
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
The name of the upstream DNSCrypt resolver to use, taken from
|
||||
<filename>${resolverList}</filename>. The default resolver is
|
||||
located in Holland, supports DNS security extensions, and
|
||||
<emphasis>claims</emphasis> to not keep logs.
|
||||
'';
|
||||
};
|
||||
|
||||
resolverList = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
description = ''
|
||||
List of DNSCrypt resolvers. The default is to use the list of
|
||||
public resolvers provided by upstream.
|
||||
The name of the DNSCrypt resolver to use, taken from
|
||||
<filename>${resolverList}</filename>. The default
|
||||
resolver is located in Holland, supports DNS security
|
||||
extensions, and <emphasis>claims</emphasis> to not
|
||||
keep logs.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -133,25 +126,15 @@ in
|
||||
}; }));
|
||||
};
|
||||
|
||||
tcpOnly = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
extraArgs = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
description = ''
|
||||
Force sending encrypted DNS queries to the upstream resolver over
|
||||
TCP instead of UDP (on port 443). Use only if the UDP port is blocked.
|
||||
'';
|
||||
};
|
||||
|
||||
ephemeralKeys = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Compute a new key pair for every query. Enabling this option
|
||||
increases CPU usage, but makes it more difficult for the upstream
|
||||
resolver to track your usage of their service across IP addresses.
|
||||
The default is to re-use the public key pair for all queries, making
|
||||
tracking trivial.
|
||||
Additional command-line arguments passed verbatim to the daemon.
|
||||
See <citerefentry><refentrytitle>dnscrypt-proxy</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> for details.
|
||||
'';
|
||||
example = [ "-X libdcplugin_example_cache.so,--min-ttl=60" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -187,16 +170,13 @@ in
|
||||
documentation = [ "man:dnscrypt-proxy(8)" ];
|
||||
|
||||
before = [ "nss-lookup.target" ];
|
||||
|
||||
after = [ "network.target" ]
|
||||
++ optional apparmorEnabled "apparmor.service";
|
||||
|
||||
requires = [ "dnscrypt-proxy.socket "]
|
||||
++ optional apparmorEnabled "apparmor.service";
|
||||
after = [ "network.target" ];
|
||||
requires = [ "dnscrypt-proxy.socket "];
|
||||
|
||||
serviceConfig = {
|
||||
NonBlocking = "true";
|
||||
ExecStart = "${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy ${toString daemonArgs}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
|
||||
User = "dnscrypt-proxy";
|
||||
|
||||
@ -207,7 +187,9 @@ in
|
||||
};
|
||||
}
|
||||
|
||||
(mkIf apparmorEnabled {
|
||||
(mkIf config.security.apparmor.enable {
|
||||
systemd.services.dnscrypt-proxy.after = [ "apparmor.service" ];
|
||||
|
||||
security.apparmor.profiles = singleton (pkgs.writeText "apparmor-dnscrypt-proxy" ''
|
||||
${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy {
|
||||
/dev/null rw,
|
||||
@ -272,15 +254,18 @@ in
|
||||
path = with pkgs; [ curl diffutils dnscrypt-proxy minisign ];
|
||||
script = ''
|
||||
cd ${stateDirectory}
|
||||
domain=download.dnscrypt.org
|
||||
domain=raw.githubusercontent.com
|
||||
get="curl -fSs --resolve $domain:443:$(hostip -r 8.8.8.8 $domain | head -1)"
|
||||
$get -o dnscrypt-resolvers.csv.tmp \
|
||||
https://$domain/dnscrypt-proxy/dnscrypt-resolvers.csv
|
||||
https://$domain/jedisct1/dnscrypt-proxy/master/dnscrypt-resolvers.csv
|
||||
$get -o dnscrypt-resolvers.csv.minisig.tmp \
|
||||
https://$domain/dnscrypt-proxy/dnscrypt-resolvers.csv.minisig
|
||||
https://$domain/jedisct1/dnscrypt-proxy/master/dnscrypt-resolvers.csv.minisig
|
||||
mv dnscrypt-resolvers.csv.minisig{.tmp,}
|
||||
minisign -q -V -p ${upstreamResolverListPubKey} \
|
||||
-m dnscrypt-resolvers.csv.tmp -x dnscrypt-resolvers.csv.minisig
|
||||
if ! minisign -q -V -p ${upstreamResolverListPubKey} \
|
||||
-m dnscrypt-resolvers.csv.tmp -x dnscrypt-resolvers.csv.minisig ; then
|
||||
echo "failed to verify resolver list!" >&2
|
||||
exit 1
|
||||
fi
|
||||
[[ -f dnscrypt-resolvers.csv ]] && mv dnscrypt-resolvers.csv{,.old}
|
||||
mv dnscrypt-resolvers.csv{.tmp,}
|
||||
if cmp dnscrypt-resolvers.csv{,.old} ; then
|
||||
@ -312,5 +297,24 @@ in
|
||||
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "dnscrypt-proxy" "port" ] [ "services" "dnscrypt-proxy" "localPort" ])
|
||||
|
||||
(mkChangedOptionModule
|
||||
[ "services" "dnscrypt-proxy" "tcpOnly" ]
|
||||
[ "services" "dnscrypt-proxy" "extraArgs" ]
|
||||
(config:
|
||||
let val = getAttrFromPath [ "services" "dnscrypt-proxy" "tcpOnly" ] config; in
|
||||
optional val "-T"))
|
||||
|
||||
(mkChangedOptionModule
|
||||
[ "services" "dnscrypt-proxy" "ephemeralKeys" ]
|
||||
[ "services" "dnscrypt-proxy" "extraArgs" ]
|
||||
(config:
|
||||
let val = getAttrFromPath [ "services" "dnscrypt-proxy" "ephemeralKeys" ] config; in
|
||||
optional val "-E"))
|
||||
|
||||
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" "resolverList" ] ''
|
||||
The current resolver listing from upstream is always used
|
||||
unless a custom resolver is specified.
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
@ -26,17 +26,7 @@ in
|
||||
This will switch to a new virtual terminal, turn off console
|
||||
switching and disable SysRq mechanism (when
|
||||
<option>services.physlock.disableSysRq</option> is set)
|
||||
until the root or <option>services.physlock.user</option>
|
||||
password is given.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
User whose password will be used to unlock the screen on par
|
||||
with the root password.
|
||||
until the root or user password is given.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -105,7 +95,7 @@ in
|
||||
++ cfg.lockOn.extraTargets;
|
||||
serviceConfig.Type = "forking";
|
||||
script = ''
|
||||
${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}${optionalString (cfg.user != null) " -u ${cfg.user}"}
|
||||
${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}
|
||||
'';
|
||||
};
|
||||
|
||||
|
23
nixos/modules/services/web-apps/pump.io-configure.js
Normal file
23
nixos/modules/services/web-apps/pump.io-configure.js
Normal file
@ -0,0 +1,23 @@
|
||||
var fs = require('fs');
|
||||
|
||||
var opts = JSON.parse(fs.readFileSync("/dev/stdin").toString());
|
||||
var config = opts.config;
|
||||
|
||||
var readSecret = function(filename) {
|
||||
return fs.readFileSync(filename).toString().trim();
|
||||
};
|
||||
|
||||
if (opts.secretFile) {
|
||||
config.secret = readSecret(opts.secretFile);
|
||||
}
|
||||
if (opts.dbPasswordFile) {
|
||||
config.params.dbpass = readSecret(opts.dbPasswordFile);
|
||||
}
|
||||
if (opts.smtpPasswordFile) {
|
||||
config.smtppass = readSecret(opts.smtpPasswordFile);
|
||||
}
|
||||
if (opts.spamClientSecretFile) {
|
||||
config.spamclientsecret = readSecret(opts.opts.spamClientSecretFile);
|
||||
}
|
||||
|
||||
fs.writeFileSync(opts.outputFile, JSON.stringify(config));
|
@ -5,71 +5,74 @@ with lib;
|
||||
let
|
||||
cfg = config.services.pumpio;
|
||||
dataDir = "/var/lib/pump.io";
|
||||
runDir = "/run/pump.io";
|
||||
user = "pumpio";
|
||||
|
||||
optionalSet = condition: value: if condition then value else {};
|
||||
|
||||
configScript = ./pump.io-configure.js;
|
||||
configOptions = {
|
||||
driver = if cfg.driver == "disk" then null else cfg.driver;
|
||||
params = ({ } //
|
||||
(if cfg.driver == "disk" then {
|
||||
dir = dataDir;
|
||||
} else { }) //
|
||||
(if cfg.driver == "mongodb" || cfg.driver == "redis" then {
|
||||
host = cfg.dbHost;
|
||||
port = cfg.dbPort;
|
||||
dbname = cfg.dbName;
|
||||
dbuser = cfg.dbUser;
|
||||
dbpass = cfg.dbPassword;
|
||||
} else { }) //
|
||||
(if cfg.driver == "memcached" then {
|
||||
host = cfg.dbHost;
|
||||
port = cfg.dbPort;
|
||||
} else { }) //
|
||||
cfg.driverParams);
|
||||
outputFile = "${runDir}/config.json";
|
||||
config =
|
||||
(optionalSet (cfg.driver != "disk") {
|
||||
driver = cfg.driver;
|
||||
}) //
|
||||
{
|
||||
params = (optionalSet (cfg.driver == "disk") { dir = dataDir; }) //
|
||||
(optionalSet (cfg.driver == "mongodb" || cfg.driver == "redis") {
|
||||
host = cfg.dbHost;
|
||||
port = cfg.dbPort;
|
||||
dbname = cfg.dbName;
|
||||
dbuser = cfg.dbUser;
|
||||
dbpass = cfg.dbPassword;
|
||||
}) //
|
||||
(optionalSet (cfg.driver == "memcached") {
|
||||
host = cfg.dbHost;
|
||||
port = cfg.dbPort;
|
||||
}) // cfg.driverParams;
|
||||
secret = cfg.secret;
|
||||
|
||||
secret = cfg.secret;
|
||||
address = cfg.address;
|
||||
port = cfg.port;
|
||||
|
||||
address = cfg.address;
|
||||
port = cfg.port;
|
||||
noweb = false;
|
||||
urlPort = cfg.urlPort;
|
||||
hostname = cfg.hostname;
|
||||
favicon = cfg.favicon;
|
||||
|
||||
noweb = false;
|
||||
urlPort = cfg.urlPort;
|
||||
hostname = cfg.hostname;
|
||||
favicon = cfg.favicon;
|
||||
site = cfg.site;
|
||||
owner = cfg.owner;
|
||||
ownerURL = cfg.ownerURL;
|
||||
|
||||
site = cfg.site;
|
||||
owner = cfg.owner;
|
||||
ownerURL = cfg.ownerURL;
|
||||
key = cfg.sslKey;
|
||||
cert = cfg.sslCert;
|
||||
bounce = false;
|
||||
|
||||
key = cfg.sslKey;
|
||||
cert = cfg.sslCert;
|
||||
bounce = false;
|
||||
spamhost = cfg.spamHost;
|
||||
spamclientid = cfg.spamClientId;
|
||||
spamclientsecret = cfg.spamClientSecret;
|
||||
|
||||
spamhost = cfg.spamHost;
|
||||
spamclientid = cfg.spamClientId;
|
||||
spamclientsecret = cfg.spamClientSecret;
|
||||
requireEmail = cfg.requireEmail;
|
||||
smtpserver = cfg.smtpHost;
|
||||
smtpport = cfg.smtpPort;
|
||||
smtpuser = cfg.smtpUser;
|
||||
smtppass = cfg.smtpPassword;
|
||||
smtpusessl = cfg.smtpUseSSL;
|
||||
smtpfrom = cfg.smtpFrom;
|
||||
|
||||
requireEmail = cfg.requireEmail;
|
||||
smtpserver = cfg.smtpHost;
|
||||
smtpport = cfg.smtpPort;
|
||||
smtpuser = cfg.smtpUser;
|
||||
smtppass = cfg.smtpPassword;
|
||||
smtpusessl = cfg.smtpUseSSL;
|
||||
smtpfrom = cfg.smtpFrom;
|
||||
nologger = false;
|
||||
enableUploads = cfg.enableUploads;
|
||||
datadir = dataDir;
|
||||
debugClient = false;
|
||||
firehose = cfg.firehose;
|
||||
disableRegistration = cfg.disableRegistration;
|
||||
|
||||
nologger = false;
|
||||
uploaddir = "${dataDir}/uploads";
|
||||
debugClient = false;
|
||||
firehose = cfg.firehose;
|
||||
disableRegistration = cfg.disableRegistration;
|
||||
} //
|
||||
(if cfg.port < 1024 then {
|
||||
serverUser = user; # have pump.io listen then drop privileges
|
||||
} else { }) //
|
||||
cfg.extraConfig;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
inherit (cfg) secretFile dbPasswordFile smtpPasswordFile spamClientSecretFile;
|
||||
} //
|
||||
(optionalSet (cfg.port < 1024) {
|
||||
serverUser = user; # have pump.io listen then drop privileges
|
||||
}) // cfg.extraConfig;
|
||||
}; in {
|
||||
options = {
|
||||
|
||||
services.pumpio = {
|
||||
@ -77,7 +80,8 @@ in
|
||||
enable = mkEnableOption "Pump.io social streams server";
|
||||
|
||||
secret = mkOption {
|
||||
type = types.str;
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "my dog has fleas";
|
||||
description = ''
|
||||
A session-generating secret, server-wide password. Warning:
|
||||
@ -85,6 +89,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
secretFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/pump.io-secret";
|
||||
description = ''
|
||||
A file containing the session-generating secret,
|
||||
server-wide password.
|
||||
'';
|
||||
};
|
||||
|
||||
site = mkOption {
|
||||
type = types.str;
|
||||
example = "Awesome Sauce";
|
||||
@ -125,7 +139,7 @@ in
|
||||
|
||||
hostname = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
The hostname of the server, used for generating
|
||||
URLs. Defaults to "localhost" which doesn't do much for you.
|
||||
@ -152,6 +166,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
enableUploads = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
If you want to disable file uploads, set this to false. Uploaded files will be stored
|
||||
in ${dataDir}/uploads.
|
||||
'';
|
||||
};
|
||||
|
||||
sslKey = mkOption {
|
||||
type = types.path;
|
||||
example = "${dataDir}/myserver.key";
|
||||
@ -253,6 +276,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
dbPasswordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/pump.io-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to dbUser.
|
||||
'';
|
||||
};
|
||||
|
||||
smtpHost = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
@ -291,6 +323,17 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
smtpPasswordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/pump.io-smtppassword";
|
||||
description = ''
|
||||
A file containing the password used to connect to SMTP
|
||||
server. Might not be necessary for some servers.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
smtpUseSSL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -332,24 +375,55 @@ in
|
||||
stored in cleartext in the Nix store!
|
||||
'';
|
||||
};
|
||||
spamClientSecretFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/pump.io-spamclientsecret";
|
||||
description = ''
|
||||
A file containing the OAuth key for the spam server.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
warnings = let warn = k: optional (cfg.${k} != null)
|
||||
"config.services.pumpio.${k} is insecure. Use ${k}File instead.";
|
||||
in concatMap warn [ "secret" "dbPassword" "smtpPassword" "spamClientSecret" ];
|
||||
|
||||
assertions = [
|
||||
{ assertion = !(isNull cfg.secret && isNull cfg.secretFile);
|
||||
message = "pump.io needs a secretFile configured";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services."pump.io" =
|
||||
{ description = "pump.io social network stream server";
|
||||
{ description = "Pump.io - stream server that does most of what people really want from a social network";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig.ExecStart = "${pkgs.pumpio}/bin/pump -c /etc/pump.io.json";
|
||||
serviceConfig.User = if cfg.port < 1024 then "root" else user;
|
||||
serviceConfig.Group = user;
|
||||
};
|
||||
|
||||
environment.etc."pump.io.json" = {
|
||||
mode = "0440";
|
||||
gid = config.ids.gids.pumpio;
|
||||
text = builtins.toJSON configOptions;
|
||||
preStart = ''
|
||||
mkdir -p ${dataDir}/uploads
|
||||
mkdir -p ${runDir}
|
||||
chown pumpio:pumpio ${dataDir}/uploads ${runDir}
|
||||
chmod 770 ${dataDir}/uploads ${runDir}
|
||||
|
||||
${pkgs.nodejs}/bin/node ${configScript} <<EOF
|
||||
${builtins.toJSON configOptions}
|
||||
EOF
|
||||
|
||||
chgrp pumpio ${configOptions.outputFile}
|
||||
chmod 640 ${configOptions.outputFile}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.pumpio}/bin/pump -c ${configOptions.outputFile}";
|
||||
PermissionsStartOnly = true;
|
||||
User = if cfg.port < 1024 then "root" else user;
|
||||
Group = user;
|
||||
};
|
||||
environment = { NODE_ENV = "production"; };
|
||||
};
|
||||
|
||||
users.extraGroups.pumpio.gid = config.ids.gids.pumpio;
|
||||
|
@ -4,11 +4,6 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
# Upgrading? We have a test! nix-build ./nixos/tests/wordpress.nix
|
||||
version = "4.7.2";
|
||||
fullversion = "${version}";
|
||||
|
||||
# Our bare-bones wp-config.php file using the above settings
|
||||
wordpressConfig = pkgs.writeText "wp-config.php" ''
|
||||
<?php
|
||||
@ -71,12 +66,7 @@ let
|
||||
# The wordpress package itself
|
||||
wordpressRoot = pkgs.stdenv.mkDerivation rec {
|
||||
name = "wordpress";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "WordPress";
|
||||
repo = "WordPress";
|
||||
rev = "${fullversion}";
|
||||
sha256 = "0vph12708drf8ww0xd05hpdvbyy7n5gj9ca598lhdhy2i1j6wy32";
|
||||
};
|
||||
src = config.package;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
# copy all the wordpress files we downloaded
|
||||
@ -122,6 +112,14 @@ in
|
||||
enablePHP = true;
|
||||
|
||||
options = {
|
||||
package = mkOption {
|
||||
type = types.path;
|
||||
default = pkgs.wordpress;
|
||||
description = ''
|
||||
Path to the wordpress sources.
|
||||
Upgrading? We have a test! nix-build ./nixos/tests/wordpress.nix
|
||||
'';
|
||||
};
|
||||
dbHost = mkOption {
|
||||
default = "localhost";
|
||||
description = "The location of the database server.";
|
||||
|
@ -25,7 +25,7 @@ in
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
description = "Whether to enable jboss";
|
||||
description = "Whether to enable JBoss. WARNING : this package is outdated and is known to have vulnerabilities.";
|
||||
};
|
||||
|
||||
tempDir = mkOption {
|
||||
|
@ -434,8 +434,8 @@ in
|
||||
chmod +x $out/bin/cryptsetup-askpass
|
||||
|
||||
${optionalString luks.yubikeySupport ''
|
||||
copy_bin_and_libs ${pkgs.ykpers}/bin/ykchalresp
|
||||
copy_bin_and_libs ${pkgs.ykpers}/bin/ykinfo
|
||||
copy_bin_and_libs ${pkgs.yubikey-personalization}/bin/ykchalresp
|
||||
copy_bin_and_libs ${pkgs.yubikey-personalization}/bin/ykinfo
|
||||
copy_bin_and_libs ${pkgs.openssl.bin}/bin/openssl
|
||||
|
||||
cc -O3 -I${pkgs.openssl.dev}/include -L${pkgs.openssl.out}/lib ${./pbkdf2-sha512.c} -o pbkdf2-sha512 -lcrypto
|
||||
|
@ -71,6 +71,7 @@ in
|
||||
environment.etc."lxc/lxc.conf".text = cfg.systemConfig;
|
||||
environment.etc."lxc/lxc-usernet".text = cfg.usernetConfig;
|
||||
environment.etc."lxc/default.conf".text = cfg.defaultConfig;
|
||||
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" ];
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||
, stableBranch ? false
|
||||
, supportedSystems ? [ "x86_64-linux" "i686-linux" ]
|
||||
, supportedSystems ? [ "x86_64-linux" "i686-linux" "aarch64-linux" ]
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||
, stableBranch ? false
|
||||
, supportedSystems ? [ "x86_64-linux" "i686-linux" ]
|
||||
, supportedSystems ? [ "x86_64-linux" "i686-linux" "aarch64-linux" ]
|
||||
}:
|
||||
|
||||
with import ../lib;
|
||||
|
@ -51,16 +51,6 @@ import ./make-test.nix ({ pkgs, ...} : let
|
||||
Vd5WD2HJhLb9u0UxVp9vfWIUDgydopV5ZmWCQ5YvNepb1w==
|
||||
-----END CERTIFICATE-----
|
||||
'';
|
||||
|
||||
makePump = { opts ? { } }:
|
||||
{
|
||||
enable = true;
|
||||
sslCert = pkgs.writeText "snakeoil.cert" snakeOilCert;
|
||||
sslKey = pkgs.writeText "snakeoil.pem" snakeOilKey;
|
||||
secret = "test";
|
||||
site = "test";
|
||||
} // opts;
|
||||
|
||||
in {
|
||||
name = "pumpio";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
@ -72,9 +62,14 @@ in {
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services = {
|
||||
pumpio = makePump { opts = {
|
||||
pumpio = {
|
||||
port = 443;
|
||||
}; };
|
||||
enable = true;
|
||||
sslCert = pkgs.writeText "snakeoil.cert" snakeOilCert;
|
||||
sslKey = pkgs.writeText "snakeoil.pem" snakeOilKey;
|
||||
secretFile = pkgs.writeText "secretFile" "test123";
|
||||
site = "test";
|
||||
};
|
||||
mongodb.enable = true;
|
||||
mongodb.extraConfig = ''
|
||||
storage.journal.enabled: false
|
||||
|
@ -10,14 +10,10 @@ import ./make-test.nix ({ pkgs, ... }:
|
||||
{ web =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.mysql.enable = true;
|
||||
services.mysql.package = pkgs.mysql;
|
||||
services.mysql.initialScript = pkgs.writeText "start.sql" ''
|
||||
CREATE DATABASE wordpress;
|
||||
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress';
|
||||
GRANT ALL on wordpress.* TO 'wordpress'@'localhost';
|
||||
'';
|
||||
|
||||
services.mysql = {
|
||||
enable = true;
|
||||
package = pkgs.mysql;
|
||||
};
|
||||
services.httpd = {
|
||||
enable = true;
|
||||
logPerVirtualHost = true;
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, cmake, libsndfile, flex, bison
|
||||
{ stdenv, fetchFromGitHub, cmake, libsndfile, flex, bison, boost
|
||||
, alsaLib ? null
|
||||
, libpulseaudio ? null
|
||||
, tcltk ? null
|
||||
@ -11,26 +11,30 @@
|
||||
# , wiiuse ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "csound-6.04";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "csound-6.08.1";
|
||||
version = "6.08.1";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/csound/Csound6.04.tar.gz;
|
||||
sha256 = "1030w38lxdwjz1irr32m9cl0paqmgr02lab2m7f7j1yihwxj1w0g";
|
||||
src = fetchFromGitHub {
|
||||
owner = "csound";
|
||||
repo = "csound";
|
||||
rev = version;
|
||||
sha256 = "03xnva17sw35ga3n96x1zdfgw913dga1hccly85wzfn0kxz4rld9";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake libsndfile flex bison alsaLib libpulseaudio tcltk ];
|
||||
nativeBuildInputs = [ cmake flex bison ];
|
||||
buildInputs = [ libsndfile alsaLib libpulseaudio tcltk boost ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
|
||||
homepage = http://www.csounds.com/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [stdenv.lib.maintainers.marcweber];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = [maintainers.marcweber];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src =
|
||||
fetchurl {
|
||||
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
||||
url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
||||
sha256 = "0l008x06d257vcw6gq3q90hvv93cq6mxpj11by1np6bzzg61qv8x";
|
||||
};
|
||||
|
||||
|
@ -0,0 +1,25 @@
|
||||
Disable openpty() and forkpty() prototypes when needed.
|
||||
--- a/yasr/yasr.h
|
||||
+++ b/yasr/yasr.h
|
||||
@@ -308,8 +308,10 @@ extern void opt_set(int num, void *val);
|
||||
extern void opt_queue_empty(int ll);
|
||||
extern void opt_write(FILE * fp);
|
||||
|
||||
+#ifndef HAVE_OPENPTY
|
||||
/* openpty.c prototypes */
|
||||
extern int openpty(int *, int *, char *, struct termios *, struct winsize *);
|
||||
+#endif
|
||||
|
||||
/* cfmakeraw.c prototypes */
|
||||
extern void cfmakeraw(struct termios *);
|
||||
@@ -317,8 +319,10 @@ extern void cfmakeraw(struct termios *);
|
||||
/* login_tty.c prototypes */
|
||||
extern int login_tty(int);
|
||||
|
||||
+#ifndef HAVE_FORKPTY
|
||||
/* forkpty.c prototypes */
|
||||
extern int forkpty(int *, char *, struct termios *, struct winsize *);
|
||||
+#endif
|
||||
|
||||
/* tbc - Would it be more efficient to ensure that "blank" grids always held
|
||||
ascii 0x20 rather than ascii 0x00? */
|
11
pkgs/applications/audio/yasr/20_maxpathlen
Normal file
11
pkgs/applications/audio/yasr/20_maxpathlen
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/yasr/config.c.orig 2011-11-28 03:56:58.764995828 +0100
|
||||
+++ a/yasr/config.c 2011-11-28 03:57:00.048967703 +0100
|
||||
@@ -60,7 +60,7 @@
|
||||
int args, arg[16], *argp;
|
||||
int i, key, ln = 0, mode = 0;
|
||||
char *home, *ptr, *s;
|
||||
- char confname[MAXPATHLEN];
|
||||
+ char confname[strlen(PACKAGE_DATA_DIR) + 10 + 1];
|
||||
|
||||
if ((home = getenv("HOME")) != NULL)
|
||||
{
|
18
pkgs/applications/audio/yasr/30_conf
Normal file
18
pkgs/applications/audio/yasr/30_conf
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/yasr.conf b/yasr.conf
|
||||
index 1e07fc6..72f5922 100644
|
||||
--- a/yasr.conf
|
||||
+++ b/yasr.conf
|
||||
@@ -59,11 +59,11 @@ synthesizer=emacspeak server
|
||||
#synthesizer=speech dispatcher
|
||||
#synthesizer port=S0
|
||||
#synthesizer port=l0
|
||||
-synthesizer port=|/usr/local/bin/eflite
|
||||
+synthesizer port=|eflite
|
||||
# Below line appropriate for Speech Dispatcher in its default configuration
|
||||
#synthesizer port=127.0.0.1:6560
|
||||
key echo=off
|
||||
-shell=/bin/bash
|
||||
+shell=/bin/sh
|
||||
special=off
|
||||
up and down arrows=speak line
|
||||
DisableKey=6925
|
14
pkgs/applications/audio/yasr/40_dectalk_extended_chars
Normal file
14
pkgs/applications/audio/yasr/40_dectalk_extended_chars
Normal file
@ -0,0 +1,14 @@
|
||||
Index: yasr-0.6.9/yasr/tts.c
|
||||
===================================================================
|
||||
--- yasr-0.6.9.orig/yasr/tts.c 2008-02-03 00:10:07.000000000 +1100
|
||||
+++ yasr-0.6.9/yasr/tts.c 2012-02-05 10:59:06.059007839 +1100
|
||||
@@ -281,6 +281,9 @@
|
||||
char *p = synth[tts.synth].unspeakable;
|
||||
|
||||
if (ch < 32) return 1;
|
||||
+ /* characters with high bit set cause DECTALK to crash */
|
||||
+ if (tts.synth == TTS_DECTALK && ch & 0x80)
|
||||
+ return 1;
|
||||
while (*p)
|
||||
{
|
||||
if (*p++ == ch) return 1;
|
28
pkgs/applications/audio/yasr/default.nix
Normal file
28
pkgs/applications/audio/yasr/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{stdenv,fetchurl}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "yasr-${version}";
|
||||
|
||||
version = "0.6.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://sourceforge.net/projects/yasr/files/yasr/${version}/${name}.tar.gz";
|
||||
sha256 = "1prv9r9y6jb5ga5578ldiw507fa414m60xhlvjl29278p3x7rwa1";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./10_fix_openpty_forkpty_declarations
|
||||
./20_maxpathlen
|
||||
./30_conf
|
||||
./40_dectalk_extended_chars
|
||||
]; # taken from the debian yasr package
|
||||
|
||||
meta = {
|
||||
homepage = "http://yasr.sourceforge.net";
|
||||
description = "A general-purpose console screen reader";
|
||||
longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems.";
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = with stdenv.lib.maintainers; [ jhhuh ];
|
||||
};
|
||||
}
|
@ -3,11 +3,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bluefish-2.2.9";
|
||||
name = "bluefish-2.2.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
|
||||
sha256 = "1l7pg6h485yj84i34jr09y8qzc1yr4ih6w5jdhmnrg156db7nwav";
|
||||
sha256 = "1ciygj79q6i3ga5x1j8aivc05nh6rhhnm7hrq8q8xd9vd4ms3v5g";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ intltool pkgconfig wrapGAppsHook ];
|
||||
|
@ -1,4 +1,6 @@
|
||||
{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender, zlib, jdk, glib, gtk2, libXtst, webkitgtk2, makeWrapper, ... }:
|
||||
{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender
|
||||
, zlib, jdk, glib, gtk2, libXtst, gsettings_desktop_schemas, webkitgtk2
|
||||
, makeWrapper, ... }:
|
||||
|
||||
{ name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }:
|
||||
|
||||
@ -15,7 +17,10 @@ stdenv.mkDerivation rec {
|
||||
categories = "Application;Development;";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
fontconfig freetype glib gsettings_desktop_schemas gtk2 jdk libX11
|
||||
libXrender libXtst makeWrapper zlib
|
||||
] ++ stdenv.lib.optional (webkitgtk2 != null) webkitgtk2;
|
||||
|
||||
buildCommand = ''
|
||||
# Unpack tarball.
|
||||
@ -37,6 +42,7 @@ stdenv.mkDerivation rec {
|
||||
makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
|
||||
--prefix PATH : ${jdk}/bin \
|
||||
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk2 libXtst ] ++ stdenv.lib.optional (webkitgtk2 != null) webkitgtk2)} \
|
||||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
|
||||
--add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
|
||||
|
||||
# Create desktop item.
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
|
||||
, freetype, fontconfig, libX11, libXext, libXrender, zlib
|
||||
, glib, gtk2, libXtst, jdk
|
||||
, glib, gtk2, libXtst, jdk, gsettings_desktop_schemas
|
||||
, webkitgtk2 ? null # for internal web browser
|
||||
, buildEnv, writeText, runCommand
|
||||
, callPackage
|
||||
@ -12,7 +12,8 @@ rec {
|
||||
|
||||
buildEclipse = import ./build-eclipse.nix {
|
||||
inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
|
||||
jdk glib gtk2 libXtst webkitgtk2 makeWrapper;
|
||||
jdk glib gtk2 libXtst gsettings_desktop_schemas webkitgtk2
|
||||
makeWrapper;
|
||||
};
|
||||
|
||||
### Eclipse CPP
|
||||
|
@ -645,10 +645,10 @@
|
||||
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }:
|
||||
elpaBuild {
|
||||
pname = "el-search";
|
||||
version = "1.2.3";
|
||||
version = "1.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.2.3.tar";
|
||||
sha256 = "1d7iqr4fr0kr171fnjcm2n0bgcwzdh6jl585mwjf2zqnqszv13h0";
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.3.tar";
|
||||
sha256 = "0hg7jppdsaxy285bdaban1i096bjx21pqmczz7w9f3nr34n28pyn";
|
||||
};
|
||||
packageRequires = [ emacs stream ];
|
||||
meta = {
|
||||
@ -821,10 +821,10 @@
|
||||
gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "gnorb";
|
||||
version = "1.1.2";
|
||||
version = "1.1.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/gnorb-1.1.2.tar";
|
||||
sha256 = "18d5wdv33lcg96m3ljnv9zn98in27apm7bjycgq0asd2f31dvcvx";
|
||||
url = "https://elpa.gnu.org/packages/gnorb-1.1.5.tar";
|
||||
sha256 = "128ag8zkfxspf6szxfd7dcscm1zzzcibx7p9dpbpk036cr7m5i1p";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1477,6 +1477,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
anything-tramp = callPackage ({ anything, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "anything-tramp";
|
||||
version = "0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "masasam";
|
||||
repo = "emacs-anything-tramp";
|
||||
rev = "75df15ac263701f921649fefb29f03f6b7d49b9f";
|
||||
sha256 = "0al2k5az5x6idnhkhckjxr4vh52f0n9fi20ranwid9ac8k6kspvz";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/bf5be5351cb187dff8388865ac424f8e5be71639/recipes/anything-tramp";
|
||||
sha256 = "1dpah5c35j552ixbd9mw2400vnfbibwhk1ihyz2n8b1c06syfny1";
|
||||
name = "anything-tramp";
|
||||
};
|
||||
packageRequires = [ anything emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/anything-tramp";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
anzu = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "anzu";
|
||||
@ -2284,12 +2305,12 @@
|
||||
base16-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "base16-theme";
|
||||
version = "2.0";
|
||||
version = "2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "belak";
|
||||
repo = "base16-emacs";
|
||||
rev = "b50e90a39344402d169b8fdd5d18cc43fb16a256";
|
||||
sha256 = "13b9ccm7yw95zc8v8sri762fgqdp2hp107nj5b40yv90g3y4fwby";
|
||||
rev = "f6d3d45a88d8fa2d70eaa26d8ebcef741b370dd1";
|
||||
sha256 = "19jbvz07qc325mqdzk0q1ycvpibndw0mb7s7bpr0f0nblla0l0sv";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/30862f6be74882cfb57fb031f7318d3fd15551e3/recipes/base16-theme";
|
||||
@ -4458,12 +4479,12 @@
|
||||
company-ansible = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "company-ansible";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "krzysztof-magosa";
|
||||
repo = "company-ansible";
|
||||
rev = "2e3264670c861ecbe862f7618241367ab497b5ff";
|
||||
sha256 = "0a0pb3amsxj6m8ka12ny1w9qjy3dg7vsxdsy1wg3qzanj2pdsk4l";
|
||||
rev = "f08c19e95e67c852512c30b6825dae3dbd3005a0";
|
||||
sha256 = "0qypfla1j7c34syphh21nyswr363v6vwi87614wx9d1rz5v4h24n";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7b44cd4bd9f9a7c942ca3f3bd88b2ce61ffff130/recipes/company-ansible";
|
||||
@ -5115,12 +5136,12 @@
|
||||
copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "copy-as-format";
|
||||
version = "0.0.4";
|
||||
version = "0.0.5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sshaw";
|
||||
repo = "copy-as-format";
|
||||
rev = "a77b914ba99729ef618e9e86543da24a46be315a";
|
||||
sha256 = "181d0fxzy228vvgjmfhfnxh9djyjhq4bpf4lklv0mxhzay03pzdx";
|
||||
rev = "161feb918b104e87f1a284f5c4e5e507e0c177f8";
|
||||
sha256 = "0y1j6f9xs877r4bv6dmcl2jsl27v0n6rsmpml719id2cfnh9sn4g";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format";
|
||||
@ -5721,22 +5742,22 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
darktooth-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
darktooth-theme = callPackage ({ autothemer, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "darktooth-theme";
|
||||
version = "0.2.100";
|
||||
version = "0.3.5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "emacsfodder";
|
||||
repo = "emacs-theme-darktooth";
|
||||
rev = "380fdcff12f44faf099bc5a38984d88784b495a2";
|
||||
sha256 = "1pragypiv59rrvq2xjzmldkf1v007viwwcvr3f5iyv31n0bmd0cn";
|
||||
rev = "dde50661210d8610cd03526a6c9a922bb0e494a6";
|
||||
sha256 = "1mab28rm175ylg17ziha2kndcqb9a23f8wrpydypa8k7iirhadp6";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b7f62ac1566ced7332e83253f79078dc30cb7889/recipes/darktooth-theme";
|
||||
sha256 = "1vss0mg1vz4wvsal1r0ya8lid2c18ig11ip5v9nc80b5slbixzvs";
|
||||
name = "darktooth-theme";
|
||||
};
|
||||
packageRequires = [];
|
||||
packageRequires = [ autothemer ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/darktooth-theme";
|
||||
license = lib.licenses.free;
|
||||
@ -6349,6 +6370,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
dired-hide-dotfiles = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "dired-hide-dotfiles";
|
||||
version = "0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattiasb";
|
||||
repo = "dired-hide-dotfiles";
|
||||
rev = "32cf3b6f90dc56f6ff271c28d827aab303bc6221";
|
||||
sha256 = "1fpzgmvbgfgl6wdrynlpvvdlbm8npgrmnzfz2133zvf5x3zfzq6r";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ba64a50f85fdb0ad54149dfed4051b4c1a719cbb/recipes/dired-hide-dotfiles";
|
||||
sha256 = "0yy131cvj9a9sz02ari7pzwf22r5y7acyg757h3jvih317v6jyp0";
|
||||
name = "dired-hide-dotfiles";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/dired-hide-dotfiles";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
dired-icon = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "dired-icon";
|
||||
@ -6496,6 +6538,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
direnv = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }:
|
||||
melpaBuild {
|
||||
pname = "direnv";
|
||||
version = "1.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "wbolster";
|
||||
repo = "emacs-direnv";
|
||||
rev = "cc8fbcc9c71f120c45c3363ed6ad202352e9a6d5";
|
||||
sha256 = "03m4c2x7d7hmsgx3ma4z0ra5y6s7fyfsxmzwz618pfa94nbx3qny";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/5419809ee62b920463e359c8e1314cd0763657c1/recipes/direnv";
|
||||
sha256 = "0zzmi5m6fh42kyf8dyjrjyrl03pkbipnh4mnssrhp83ljczxkyhd";
|
||||
name = "direnv";
|
||||
};
|
||||
packageRequires = [ dash emacs with-editor ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/direnv";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
direx = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "direx";
|
||||
@ -8099,12 +8162,12 @@
|
||||
elmacro = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
|
||||
melpaBuild {
|
||||
pname = "elmacro";
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Silex";
|
||||
repo = "elmacro";
|
||||
rev = "d712c8efc01646117097e061e1b14933b822b9c7";
|
||||
sha256 = "00fry1gjsrx4dv9d9rjf5pd8w3709mn0052al0l948vhwz4wys9z";
|
||||
rev = "9ed19a362b63d9c7436a78feb91bc694194cfefe";
|
||||
sha256 = "00qqa9p9z50gxna4qrsvph4nj41gldl1qj210ywk3lgwn0jjm0k9";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/566cc5bc0f71c5a4191ad93b917dc268f6e1a2da/recipes/elmacro";
|
||||
@ -9419,6 +9482,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
eslintd-fix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "eslintd-fix";
|
||||
version = "1.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "aaronjensen";
|
||||
repo = "eslintd-fix";
|
||||
rev = "555fdad8ebee4ca0d990b8c80151c77c8bd6b773";
|
||||
sha256 = "0xmlr98gyq56vas02nnjdfv7x6zjddy4b1qpy3zz770jnpnrgq33";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c72d2b3ee9b8066d51d09e165e58e9846ca879cc/recipes/eslintd-fix";
|
||||
sha256 = "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v";
|
||||
name = "eslintd-fix";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/eslintd-fix";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
espuds = callPackage ({ dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
|
||||
melpaBuild {
|
||||
pname = "espuds";
|
||||
@ -9947,12 +10031,12 @@
|
||||
evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "evil-nerd-commenter";
|
||||
version = "3.0.1";
|
||||
version = "3.0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "redguardtoo";
|
||||
repo = "evil-nerd-commenter";
|
||||
rev = "7c274dbb7ed4102ee06b998fa6f529c0f816fe9d";
|
||||
sha256 = "0997szqya4ljjgmsx1w9zbj6h21wq6l46qk1bs0027zvqwcylsv8";
|
||||
rev = "cac2f7945fc90f43d1282dfe4aca24ded9f7cd03";
|
||||
sha256 = "1zjnscnj0zrxpdjikxwg4fw7m6yb39060cmn24xzs0hmnmbxnw9m";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
|
||||
@ -12647,12 +12731,12 @@
|
||||
gams-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "gams-mode";
|
||||
version = "6.1.2";
|
||||
version = "6.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ShiroTakeda";
|
||||
repo = "gams-mode";
|
||||
rev = "a803f9e4509b8f8fed17ef25737d941bbe846c96";
|
||||
sha256 = "1avbdfw3hvwqnrlg3hv8p64m9gqgvwl9ggqzn6rhxh1zlr7i5cwy";
|
||||
rev = "ce51aa1afec78bf96aedb4badf33463383b7593e";
|
||||
sha256 = "182qrzs88wvkbbalmbdwpmzchkijvg1s6582qihgh29nn8lrl0l5";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c895a716636b00c2a158d33aab18f664a8601833/recipes/gams-mode";
|
||||
@ -13046,12 +13130,12 @@
|
||||
git-commit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }:
|
||||
melpaBuild {
|
||||
pname = "git-commit";
|
||||
version = "2.10.2";
|
||||
version = "2.10.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "magit";
|
||||
rev = "ade30b02b7a732c4b145f8e7e2af1e17af0a9f4d";
|
||||
sha256 = "0fgid2z4rqlqlzxp0ix1kmv78m2zfs60hgnhgwn4ny007q5138qv";
|
||||
rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e";
|
||||
sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/git-commit";
|
||||
@ -16306,6 +16390,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
helm-tramp = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "helm-tramp";
|
||||
version = "0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "masasam";
|
||||
repo = "emacs-helm-tramp";
|
||||
rev = "87d323306a79bf5d71b0f556a7aefdfe5824f523";
|
||||
sha256 = "08rzgfzd70xf1hh54py325p9kf5war40qi5w21anzs4wwg86rz1v";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4a69f0a17c4efbaea012be8e878af4060fa0c93b/recipes/helm-tramp";
|
||||
sha256 = "1113qxl34sf27a88vpvckrfrigp8vnm42nmfrcxz156maa1g9cbv";
|
||||
name = "helm-tramp";
|
||||
};
|
||||
packageRequires = [ emacs helm ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/helm-tramp";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
helm-unicode = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "helm-unicode";
|
||||
@ -17170,12 +17275,12 @@
|
||||
ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ido-completing-read-plus";
|
||||
version = "3.14";
|
||||
version = "3.15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "DarwinAwardWinner";
|
||||
repo = "ido-ubiquitous";
|
||||
rev = "397a43309c0405009cc6961053c54dedebdc83a2";
|
||||
sha256 = "091kq58bb5dxq13d3jap7m4v6ddpin7hkybzy7drqkwn2q005ggb";
|
||||
rev = "950afaed5d36fc4447dd3a517ddb0dd281d8aaf6";
|
||||
sha256 = "0gk1bkllzs3fil2fcj3iha43y43370sgrrs5r6j7hzyhnxqmp965";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-completing-read+";
|
||||
@ -17275,12 +17380,12 @@
|
||||
ido-ubiquitous = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ido-ubiquitous";
|
||||
version = "3.14";
|
||||
version = "3.15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "DarwinAwardWinner";
|
||||
repo = "ido-ubiquitous";
|
||||
rev = "397a43309c0405009cc6961053c54dedebdc83a2";
|
||||
sha256 = "091kq58bb5dxq13d3jap7m4v6ddpin7hkybzy7drqkwn2q005ggb";
|
||||
rev = "950afaed5d36fc4447dd3a517ddb0dd281d8aaf6";
|
||||
sha256 = "0gk1bkllzs3fil2fcj3iha43y43370sgrrs5r6j7hzyhnxqmp965";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-ubiquitous";
|
||||
@ -18550,6 +18655,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
jinja2-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "jinja2-mode";
|
||||
version = "0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "paradoxxxzero";
|
||||
repo = "jinja2-mode";
|
||||
rev = "cfaa7bbe7bb290cc500440124ce89686f3e26f86";
|
||||
sha256 = "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b79196cf0dc0b436ff75eabea369a62f92825d9f/recipes/jinja2-mode";
|
||||
sha256 = "0480fh719r4v7xdwyf4jlg1k36y54i5zrv7gxlhfm66pil75zafx";
|
||||
name = "jinja2-mode";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/jinja2-mode";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
jpop = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "jpop";
|
||||
@ -19796,6 +19922,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
literal-string = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "literal-string";
|
||||
version = "0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "joodie";
|
||||
repo = "literal-string-mode";
|
||||
rev = "46dd2b620df70d681261616f1a26afa4a032e2d5";
|
||||
sha256 = "02a1jvxk2m1lb21p3281cr9xyhzix31cn8a9la53w90sz569i66r";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/6519bb53f409eeb0d557809b338849e473c193c4/recipes/literal-string";
|
||||
sha256 = "0ylv9dpw17w272f92vn5cldklyz1d8daihi1fsh5ylvxqpinyrkn";
|
||||
name = "literal-string";
|
||||
};
|
||||
packageRequires = [ emacs markdown-mode ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/literal-string";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
literate-coffee-mode = callPackage ({ coffee-mode, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "literate-coffee-mode";
|
||||
@ -20135,12 +20282,12 @@
|
||||
magit = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, git-commit, lib, magit-popup, melpaBuild, with-editor }:
|
||||
melpaBuild {
|
||||
pname = "magit";
|
||||
version = "2.10.2";
|
||||
version = "2.10.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "magit";
|
||||
rev = "ade30b02b7a732c4b145f8e7e2af1e17af0a9f4d";
|
||||
sha256 = "0fgid2z4rqlqlzxp0ix1kmv78m2zfs60hgnhgwn4ny007q5138qv";
|
||||
rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e";
|
||||
sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/68bb049b7c4424345f5c1aea82e950a5e47e9e47/recipes/magit";
|
||||
@ -20289,12 +20436,12 @@
|
||||
magit-popup = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "magit-popup";
|
||||
version = "2.10.2";
|
||||
version = "2.10.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "magit";
|
||||
rev = "ade30b02b7a732c4b145f8e7e2af1e17af0a9f4d";
|
||||
sha256 = "0fgid2z4rqlqlzxp0ix1kmv78m2zfs60hgnhgwn4ny007q5138qv";
|
||||
rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e";
|
||||
sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/magit-popup";
|
||||
@ -20951,8 +21098,8 @@
|
||||
src = fetchFromGitHub {
|
||||
owner = "the-lambda-church";
|
||||
repo = "merlin";
|
||||
rev = "afc398a9e6787b9a8ece385f23bd94ae0ef71805";
|
||||
sha256 = "0899yjw3zm8c0xrv1nk3vcn4rzng68kw5dlns4w6pmzv0pc3cq7q";
|
||||
rev = "89f9643c08211a770454919551a7fd8605d1fca8";
|
||||
sha256 = "13x0zjd297ssqmbvba32zk2p588kznd5ag4wh3nqb6fdgyzy4d63";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b1b9bfd3164e62758dc0a3362d85c6627ed7cbf8/recipes/merlin";
|
||||
@ -21238,6 +21385,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
mmm-jinja2 = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode }:
|
||||
melpaBuild {
|
||||
pname = "mmm-jinja2";
|
||||
version = "0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "glynnforrest";
|
||||
repo = "mmm-jinja2";
|
||||
rev = "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f";
|
||||
sha256 = "0big2i3bg4cm14f68ncaiz2h6dk6zqiisrz4l0bv10q9kaa9q2sj";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/721b9a6f16fb8efd4d339ac7953cc07d7a234b53/recipes/mmm-jinja2";
|
||||
sha256 = "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi";
|
||||
name = "mmm-jinja2";
|
||||
};
|
||||
packageRequires = [ mmm-mode ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/mmm-jinja2";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
mmm-mako = callPackage ({ fetchhg, fetchurl, lib, melpaBuild, mmm-mode }:
|
||||
melpaBuild {
|
||||
pname = "mmm-mako";
|
||||
@ -22392,11 +22560,11 @@
|
||||
}) {};
|
||||
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
|
||||
pname = "notmuch";
|
||||
version = "0.24pre0";
|
||||
version = "0.24";
|
||||
src = fetchgit {
|
||||
url = "git://git.notmuchmail.org/git/notmuch";
|
||||
rev = "990f8cd03203c7a19cef4e3edbec823cc99fa701";
|
||||
sha256 = "06135xc3i839hw4sa9gmvnb7qq4llv67q8h537vfgb9gixr40f1q";
|
||||
rev = "e60b44ecf8bd5934959727496c7ef3016ff80cf6";
|
||||
sha256 = "1q81ibvhjvnz4hbwmdna3a1xjkik21avy5im89fnkhq068kwac2j";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
|
||||
@ -22769,12 +22937,12 @@
|
||||
ocp-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ocp-indent";
|
||||
version = "1.5.3";
|
||||
version = "1.6.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "OCamlPro";
|
||||
repo = "ocp-indent";
|
||||
rev = "8c349c5531d3bc90b00df875b6cd3c64110f59f1";
|
||||
sha256 = "1c4fdm6r3r3fqjflqjncfmx0ps52b5f17vq957g0b3pcaql5n63d";
|
||||
rev = "032599b162624a4b65c82c20be06433f24b00e8f";
|
||||
sha256 = "1h9y597s3ag8w1z32zzv4dfk3ppq557s55bnlfw5a5wqwvia911f";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/e1af061328b15360ed25a232cc6b8fbce4a7b098/recipes/ocp-indent";
|
||||
@ -23815,12 +23983,12 @@
|
||||
org-table-sticky-header = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
|
||||
melpaBuild {
|
||||
pname = "org-table-sticky-header";
|
||||
version = "0.1.0";
|
||||
version = "0.1.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "cute-jumper";
|
||||
repo = "org-table-sticky-header";
|
||||
rev = "1fca19fbccbb21159086970b82af56a81f78e247";
|
||||
sha256 = "1swhsspa5yz68hl2449l9hk1d6r9c32z19z4mrdxw4nimdxhxmqp";
|
||||
rev = "4dba2dc9a3ed63f58aa946aeec84a52d46ca4043";
|
||||
sha256 = "0az4lzd9qk4cx7jjfj36r2fvlkwyrhn3xqhha5d1pydglnhd9amy";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/5dd0e18bf4c3f3263eff8aff6d7c743a554243b5/recipes/org-table-sticky-header";
|
||||
@ -24379,6 +24547,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ox-epub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
|
||||
melpaBuild {
|
||||
pname = "ox-epub";
|
||||
version = "0.1.6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ofosos";
|
||||
repo = "ox-epub";
|
||||
rev = "edc253b6f7397ac89a3a0b2d2a05e650baa483f8";
|
||||
sha256 = "0kvs5kpkly45fqdb7mka1w2yn7pks95gxgiy2ayx12cgvn3inyw6";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3ac31dfef00e83fa6b716ea006f35afb5dc6cd5/recipes/ox-epub";
|
||||
sha256 = "15q6vsmgv76c0qfdxa3prqvgmr6n7k4rd4bpi05574ibi23y0ynh";
|
||||
name = "ox-epub";
|
||||
};
|
||||
packageRequires = [ emacs org ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/ox-epub";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ox-ioslide = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
|
||||
melpaBuild {
|
||||
pname = "ox-ioslide";
|
||||
@ -24842,12 +25031,12 @@
|
||||
parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "parsebib";
|
||||
version = "1.0.5";
|
||||
version = "2.0.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "joostkremers";
|
||||
repo = "parsebib";
|
||||
rev = "9a1f60bed2814dfb5cec2b92efb5951a4b465cce";
|
||||
sha256 = "0n91whyjnrdhb9bqfif01ygmwv5biwpz2pvjv5w5y1d4g0k1x9ml";
|
||||
rev = "748d6a179fcbbc4af77c7b96059a66d579f34dc8";
|
||||
sha256 = "0f8rcifzfp4fs52pjgfly39vqz54kgjb3yqyxlh4adq12zbq11cd";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib";
|
||||
@ -25260,12 +25449,12 @@
|
||||
persp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "persp-mode";
|
||||
version = "2.9.5";
|
||||
version = "2.9.6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bad-ptr";
|
||||
repo = "persp-mode.el";
|
||||
rev = "1116ead88123a11efef346db0045ee8389250bd2";
|
||||
sha256 = "11xncsvzy13xc939qfvlzplsz2izvf16hy45k500h44g2dxcvq3m";
|
||||
rev = "1dfea0de788f6d25ee47b5c62ddbeaf9e8e92f06";
|
||||
sha256 = "11ww8hg9p8qlmr8zpir0m5xzzbvd1faiqjx6vn4b05d4ll03rnhm";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/caad63d14f770f07d09b6174b7b40c5ab06a1083/recipes/persp-mode";
|
||||
@ -28131,22 +28320,22 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
rubocop = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
rubocop = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "rubocop";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bbatsov";
|
||||
repo = "rubocop-emacs";
|
||||
rev = "405e0fd4c57adb125e3d04208bc86081e3e78d4c";
|
||||
sha256 = "10djjp1520xc05qkciaiaiiciscaln6c74h7ymba40mvzlf67y9q";
|
||||
rev = "980bedb455e3551d35a212fae515c054888907c1";
|
||||
sha256 = "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/00f2cf3e8e28bce5c26c86aba54390ffff48d7da/recipes/rubocop";
|
||||
sha256 = "114azl0fasmnq0fxxyiif3363mpg8qz3ynx91in5acqzh902fa3q";
|
||||
name = "rubocop";
|
||||
};
|
||||
packageRequires = [ dash emacs ];
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/rubocop";
|
||||
license = lib.licenses.free;
|
||||
@ -28425,6 +28614,27 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
salt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-jinja2, mmm-mode, yaml-mode }:
|
||||
melpaBuild {
|
||||
pname = "salt-mode";
|
||||
version = "0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "glynnforrest";
|
||||
repo = "salt-mode";
|
||||
rev = "e14ed8f2ce0ab7a783c4341879ec8c003e2b5c81";
|
||||
sha256 = "19gw35qv13f2r4wif5fgqfhrph2r320n81faxx8980zds28x2q0x";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/9dcf1a93a06fc42581521c88cfd988b03bedc000/recipes/salt-mode";
|
||||
sha256 = "1n7i9d6qpjsdcgbzmbf63y4c7ggxh5wsim8fd0casnrq9bl7ssym";
|
||||
name = "salt-mode";
|
||||
};
|
||||
packageRequires = [ mmm-jinja2 mmm-mode yaml-mode ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/salt-mode";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
sass-mode = callPackage ({ fetchFromGitHub, fetchurl, haml-mode, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "sass-mode";
|
||||
@ -28488,22 +28698,22 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
sayid = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
sayid = callPackage ({ cider, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "sayid";
|
||||
version = "0.0.13";
|
||||
version = "0.0.14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bpiel";
|
||||
repo = "sayid";
|
||||
rev = "01bf777cb15a4f236bc44842712e9ca82fed7f55";
|
||||
sha256 = "0lh4mmdm5vizr08lyz2jc131991dqmyx29n8njgpxa1vjzqd08az";
|
||||
rev = "3e5456cade044f01eb0753aabc9e50868000bd14";
|
||||
sha256 = "1asphbijh5y4ax03x1cn02l4ya8v44s23ani91a0d52msdaxbnyw";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid";
|
||||
sha256 = "0chz46wmwmsn4ys59pn7lqs4assqy2hv43rvka7kq61jdl4g6fgs";
|
||||
name = "sayid";
|
||||
};
|
||||
packageRequires = [];
|
||||
packageRequires = [ cider ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/sayid";
|
||||
license = lib.licenses.free;
|
||||
@ -30040,22 +30250,22 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
sparql-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "sparql-mode";
|
||||
version = "0.11.2";
|
||||
version = "2.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ljos";
|
||||
repo = "sparql-mode";
|
||||
rev = "303858e7f91829ec720141482c777460e66f310b";
|
||||
sha256 = "1gk2ps7fn9z8n6r923qzn518gz9mrj7mb6j726cz8qb585ndjbij";
|
||||
rev = "33da09b3895e03e64959005678d448ab82e527b6";
|
||||
sha256 = "17fpfc0hc39y9h12mj62fwfga4mhk0c9fm2qnbnzf4i3ajhp7r2w";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode";
|
||||
sha256 = "1xicrfmgxpb31lz30qj450w8v7dl4ipjp7b2wz54s4kn88nsfj7d";
|
||||
name = "sparql-mode";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
packageRequires = [ cl-lib emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/sparql-mode";
|
||||
license = lib.licenses.free;
|
||||
@ -34335,12 +34545,12 @@
|
||||
zenburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "zenburn-theme";
|
||||
version = "2.4";
|
||||
version = "2.5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bbatsov";
|
||||
repo = "zenburn-emacs";
|
||||
rev = "e5dc3962fd30005914b79b14e9821d298f2c305a";
|
||||
sha256 = "1n7ka608lk0xp7vg4zcw282zna0cwvcwvmhic6ym1ag7lq5cjrhc";
|
||||
rev = "f031c785b469cf4356fddb997eccf60399e34235";
|
||||
sha256 = "029955wp29wdrk1ddmhxixd76vhkp2li3mjaknw9d8iqz819vshc";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/zenburn-theme";
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
let
|
||||
pname = "kdevelop";
|
||||
version = "5.0.3";
|
||||
dirVersion = "5.0.3";
|
||||
version = "5.0.4";
|
||||
dirVersion = "5.0.4";
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${dirVersion}/src/${name}.tar.xz";
|
||||
sha256 = "17a58dfc38b853c6c5987084e8973b4f7f5015a6c2c20f94c2a9f96b0c13f601";
|
||||
sha256 = "191142b2bdb14837c82721fdfeb15e852329f2c4c0d48fd479c57514c3235d55";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,55 +0,0 @@
|
||||
From e84645d1694bdad7f179cd41babce723fe07aa63 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Funk <kfunk@kde.org>
|
||||
Date: Mon, 5 Dec 2016 15:20:53 +0100
|
||||
Subject: Hotfix for restoring build with newer KConfig
|
||||
|
||||
https://phabricator.kde.org/D3386 is a SIC change, handle that
|
||||
---
|
||||
project/projectconfigskeleton.cpp | 4 ++++
|
||||
project/projectconfigskeleton.h | 14 +++++---------
|
||||
2 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/project/projectconfigskeleton.cpp b/project/projectconfigskeleton.cpp
|
||||
index 0e06149..c4c9767 100644
|
||||
--- a/project/projectconfigskeleton.cpp
|
||||
+++ b/project/projectconfigskeleton.cpp
|
||||
@@ -46,6 +46,10 @@ ProjectConfigSkeleton::ProjectConfigSkeleton( const QString & configname )
|
||||
ProjectConfigSkeleton::ProjectConfigSkeleton( KSharedConfigPtr config )
|
||||
: KConfigSkeleton( config ), d( new ProjectConfigSkeletonPrivate )
|
||||
{
|
||||
+ // FIXME: Check if that does the right thing.
|
||||
+ // https://phabricator.kde.org/D3386 broke source compat in kconfig, thus requiring us to make this ctor public
|
||||
+ Q_ASSERT(config);
|
||||
+ d->m_developerTempFile = config->name();
|
||||
}
|
||||
|
||||
void ProjectConfigSkeleton::setDeveloperTempFile( const QString& cfg )
|
||||
diff --git a/project/projectconfigskeleton.h b/project/projectconfigskeleton.h
|
||||
index ed17ed0..c8314df 100644
|
||||
--- a/project/projectconfigskeleton.h
|
||||
+++ b/project/projectconfigskeleton.h
|
||||
@@ -55,16 +55,12 @@ public:
|
||||
|
||||
Path projectFile() const;
|
||||
Path developerFile() const;
|
||||
+
|
||||
+protected:
|
||||
+ explicit ProjectConfigSkeleton( KSharedConfigPtr config );
|
||||
+
|
||||
private:
|
||||
- /**
|
||||
- * There's no way in KDE4 API to find out the file that the config object
|
||||
- * was created from, so we can't apply defaults when using this
|
||||
- * constructors. Thus I'm making this private, so we can find out when
|
||||
- * this constructor is used and see if we need to add appropriate API to
|
||||
- * kdelibs
|
||||
- */
|
||||
- explicit ProjectConfigSkeleton( KSharedConfigPtr config );
|
||||
- struct ProjectConfigSkeletonPrivate * const d;
|
||||
+ struct ProjectConfigSkeletonPrivate * const d;
|
||||
};
|
||||
|
||||
}
|
||||
--
|
||||
cgit v0.11.2
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
let
|
||||
pname = "kdevplatform";
|
||||
version = "5.0.3";
|
||||
dirVersion = "5.0.3";
|
||||
version = "5.0.4";
|
||||
dirVersion = "5.0.4";
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
@ -15,11 +15,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/kdevelop/${dirVersion}/src/${name}.tar.xz";
|
||||
sha256 = "643d1145e1948af221f9ae148d0a10809f3d89af4b97ff0d6c4d571004f46bd4";
|
||||
sha256 = "01abfcd71383048d017fe989ccce0e7590010a3975bbe6e161f55ababe2ad471";
|
||||
};
|
||||
|
||||
patches = [ ./kdevplatform-projectconfigskeleton.patch ];
|
||||
|
||||
nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules makeQtWrapper ];
|
||||
|
||||
propagatedBuildInputs = [ ];
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ fetchurl, stdenv, glib, xorg, cairo, gtk2, pango, makeWrapper, openssl, bzip2,
|
||||
pkexecPath ? "/run/wrappers/bin/pkexec", libredirect,
|
||||
gksuSupport ? false, gksu}:
|
||||
gksuSupport ? false, gksu, unzip, zip, bash }:
|
||||
|
||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||
assert gksuSupport -> gksu != null;
|
||||
@ -33,6 +33,21 @@ in let
|
||||
dontPatchELF = true;
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
# make exec.py in Default.sublime-package use own bash with
|
||||
# an LD_PRELOAD instead of "/bin/bash"
|
||||
patchPhase = ''
|
||||
mkdir Default.sublime-package-fix
|
||||
( cd Default.sublime-package-fix
|
||||
${unzip}/bin/unzip ../Packages/Default.sublime-package > /dev/null
|
||||
substituteInPlace "exec.py" --replace \
|
||||
"[\"/bin/bash\"" \
|
||||
"[\"$out/sublime_bash\""
|
||||
)
|
||||
${zip}/bin/zip -j Default.sublime-package.zip Default.sublime-package-fix/* > /dev/null
|
||||
mv Default.sublime-package.zip Packages/Default.sublime-package
|
||||
rm -r Default.sublime-package-fix
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
for i in sublime_text plugin_host crash_reporter; do
|
||||
patchelf \
|
||||
@ -52,6 +67,12 @@ in let
|
||||
mkdir -p $out
|
||||
cp -prvd * $out/
|
||||
|
||||
# We can't just call /usr/bin/env bash because a relocation error occurs
|
||||
# when trying to run a build from within Sublime Text
|
||||
ln -s ${bash}/bin/bash $out/sublime_bash
|
||||
wrapProgram $out/sublime_bash \
|
||||
--set LD_PRELOAD "${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1"
|
||||
|
||||
wrapProgram $out/sublime_text \
|
||||
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects}
|
||||
@ -66,6 +87,7 @@ in stdenv.mkDerivation {
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s ${sublime}/sublime_text $out/bin/subl
|
||||
ln -s ${sublime}/sublime_text $out/bin/sublime
|
||||
ln -s ${sublime}/sublime_text $out/bin/sublime3
|
||||
mkdir -p $out/share/applications
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
|
||||
{ stdenv, fetchurl, fetchpatch, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
|
||||
, qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
|
||||
, qjson, qca2, txt2tags, openssl
|
||||
, withGrass ? false, grass
|
||||
@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ cmake makeWrapper ];
|
||||
|
||||
patches = [
|
||||
# See https://hub.qgis.org/issues/16071
|
||||
(fetchpatch {
|
||||
name = "fix-build-against-recent-sip";
|
||||
url = "https://github.com/qgis/QGIS/commit/85a0db24f32351f6096cd8282f03ad5c2f4e6ef5.patch";
|
||||
sha256 = "0snspzdrpawd7j5b69i8kk7pmmy6ij8bn02bzg94qznfpf9ihf30";
|
||||
})
|
||||
];
|
||||
|
||||
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
|
||||
#enableParallelBuilding = true;
|
||||
|
||||
|
@ -1,25 +1,26 @@
|
||||
{stdenv, fetchgit, flex, bison, cmake, git, zlib}:
|
||||
{stdenv, fetchFromGitHub, flex, bison, cmake, git, zlib}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "2016-05-19";
|
||||
version = "2017-01-12";
|
||||
name = "pbrt-v3-${version}";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/mmp/pbrt-v3.git";
|
||||
rev = "638249e5cf4596e129695c8df8525d43f11573ff";
|
||||
sha256 = "10ykqrg4zcfb4sfsg3z793c6vld6b6g8bzfyk7ya3yvvc9sdlr5g";
|
||||
};
|
||||
|
||||
fetchSubmodules = true;
|
||||
src = fetchFromGitHub {
|
||||
rev = "35b6da3429526f2026fe5e5ebaf36d593e113028";
|
||||
owner = "mmp";
|
||||
repo = "pbrt-v3";
|
||||
sha256 = "10lvbph13p6ilzqb8sgrvn9gg1zmi8wpy3hhjbqp8dnsa4x0mhj7";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildInputs = [ git flex bison cmake zlib ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://pbrt.org";
|
||||
description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'";
|
||||
platforms = stdenv.lib.platforms.linux ;
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = [ stdenv.lib.maintainers.juliendehos ];
|
||||
platforms = platforms.linux ;
|
||||
license = licenses.bsd2;
|
||||
maintainers = [ maintainers.juliendehos ];
|
||||
priority = 10;
|
||||
};
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ let
|
||||
kate = callPackage ./kate.nix {};
|
||||
kdenlive = callPackage ./kdenlive.nix {};
|
||||
kcalc = callPackage ./kcalc.nix {};
|
||||
kcachegrind = callPackage ./kcachegrind.nix {};
|
||||
kcolorchooser = callPackage ./kcolorchooser.nix {};
|
||||
kcontacts = callPackage ./kcontacts.nix {};
|
||||
kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
|
||||
@ -76,6 +77,7 @@ let
|
||||
kmix = callPackage ./kmix.nix {};
|
||||
kompare = callPackage ./kompare.nix {};
|
||||
konsole = callPackage ./konsole.nix {};
|
||||
krfb = callPackage ./krfb.nix {};
|
||||
kwalletmanager = callPackage ./kwalletmanager.nix {};
|
||||
libkdcraw = callPackage ./libkdcraw.nix {};
|
||||
libkexiv2 = callPackage ./libkexiv2.nix {};
|
||||
|
27
pkgs/applications/kde/kcachegrind.nix
Normal file
27
pkgs/applications/kde/kcachegrind.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
kdeApp, lib, kdeWrapper,
|
||||
cmake, automoc4,
|
||||
kdelibs, perl, python, php
|
||||
}:
|
||||
|
||||
kdeWrapper {
|
||||
unwrapped = kdeApp {
|
||||
name = "kcachegrind";
|
||||
meta = {
|
||||
license = with lib.licenses; [ gpl2 ];
|
||||
maintainers = with lib.maintainers; [ orivej ];
|
||||
};
|
||||
nativeBuildInputs = [ cmake automoc4 ];
|
||||
buildInputs = [ kdelibs perl python php ];
|
||||
enableParallelBuilding = true;
|
||||
};
|
||||
|
||||
targets = [
|
||||
"bin/kcachegrind"
|
||||
"bin/dprof2calltree" # perl
|
||||
"bin/hotshot2calltree" # python
|
||||
"bin/memprof2calltree" # perl
|
||||
"bin/op2calltree" # perl
|
||||
"bin/pprof2calltree" # php
|
||||
];
|
||||
}
|
22
pkgs/applications/kde/krfb.nix
Normal file
22
pkgs/applications/kde/krfb.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
kdeApp, lib, kdeWrapper,
|
||||
extra-cmake-modules, kdoctools,
|
||||
kdelibs4support, kdnssd, libvncserver, libXtst
|
||||
}:
|
||||
|
||||
let
|
||||
unwrapped =
|
||||
kdeApp {
|
||||
name = "krfb";
|
||||
meta = {
|
||||
license = with lib.licenses; [ gpl2 fdl12 ];
|
||||
maintainers = with lib.maintainers; [ jerith666 ];
|
||||
};
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
||||
propagatedBuildInputs = [ kdelibs4support kdnssd libvncserver libXtst ];
|
||||
};
|
||||
in
|
||||
kdeWrapper {
|
||||
inherit unwrapped;
|
||||
targets = [ "bin/krfb" ];
|
||||
}
|
@ -2,11 +2,11 @@
|
||||
|
||||
python2Packages.buildPythonApplication rec {
|
||||
name = "electrum-${version}";
|
||||
version = "2.7.18";
|
||||
version = "2.8.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
|
||||
sha256 = "1l9krc7hqhqrm5bwp999bpykkcq4958qwvx8v0l5mxcxw8k7fkab";
|
||||
sha256 = "1398s9d8j04is24il2xjb6xkj666pj21bsr90xglpsmfa1js9z7g";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python2Packages; [
|
||||
@ -15,22 +15,22 @@ python2Packages.buildPythonApplication rec {
|
||||
jsonrpclib
|
||||
pbkdf2
|
||||
protobuf3_0
|
||||
pyasn1
|
||||
pyasn1-modules
|
||||
pyaes
|
||||
pycrypto
|
||||
pyqt4
|
||||
pysocks
|
||||
qrcode
|
||||
requests
|
||||
slowaes
|
||||
tlslite
|
||||
|
||||
# plugins
|
||||
trezor
|
||||
keepkey
|
||||
trezor
|
||||
|
||||
# TODO plugins
|
||||
# matplotlib
|
||||
# btchip
|
||||
# amodem
|
||||
# btchip
|
||||
# matplotlib
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
@ -43,8 +43,11 @@ python2Packages.buildPythonApplication rec {
|
||||
postInstall = ''
|
||||
# Despite setting usr_share above, these files are installed under
|
||||
# $out/nix ...
|
||||
mv $out/lib/python2.7/site-packages/nix/store/*/share $out
|
||||
mv $out/lib/python2.7/site-packages/nix/store"/"*/share $out
|
||||
rm -rf $out/lib/python2.7/site-packages/nix
|
||||
|
||||
substituteInPlace $out/share/applications/electrum.desktop \
|
||||
--replace "Exec=electrum %u" "Exec=$out/bin/electrum %u"
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "emem";
|
||||
version = "0.2.34";
|
||||
version = "0.2.41";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
inherit jdk;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
|
||||
sha256 = "19dslv632qyz3hcycx22w6x96nwph7cxl1yjprir2w2c692dq06x";
|
||||
sha256 = "0pg7m4fyrcbm8d5nj96xvvh1cvml501rw34hniqq384waifr2kqs";
|
||||
};
|
||||
|
||||
buildInputs = [ ];
|
||||
@ -17,8 +17,7 @@ stdenv.mkDerivation rec {
|
||||
phases = [ "buildPhase" "installPhase" ];
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share/java
|
||||
mkdir -p $out/bin $out/share/java
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
31
pkgs/applications/misc/keepass-plugins/keeagent/default.nix
Normal file
31
pkgs/applications/misc/keepass-plugins/keeagent/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ stdenv, buildEnv, fetchzip, mono }:
|
||||
|
||||
let
|
||||
version = "0.8.1";
|
||||
drv = stdenv.mkDerivation {
|
||||
name = "keeagent-${version}";
|
||||
|
||||
src = fetchzip {
|
||||
url = http://lechnology.com/wp-content/uploads/2016/07/KeeAgent_v0.8.1.zip;
|
||||
sha256 = "16x1qrnzg0xkvi7w29wj3z0ldmql2vcbwxksbsmnidzmygwg98hk";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "KeePass plugin to allow other programs to access SSH keys stored in a KeePass database for authentication";
|
||||
homepage = http://lechnology.com/software/keeagent;
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
pluginFilename = "KeeAgent.plgx";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/dotnet/keepass/
|
||||
cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
|
||||
'';
|
||||
};
|
||||
in
|
||||
# Mono is required to compile plugin at runtime, after loading.
|
||||
buildEnv { name = drv.name; paths = [ mono drv ]; }
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchFromGitHub, wxGTK, libuuid, xercesc, zip , libXt, libXtst
|
||||
, libXi, xextproto, gettext, perl, pkgconfig, libyubikey, ykpers
|
||||
, libXi, xextproto, gettext, perl, pkgconfig, libyubikey, yubikey-personalization
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -14,12 +14,12 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
makefile = "Makefile.linux";
|
||||
makeFlags = "YBPERS_LIBPATH=${ykpers}/lib";
|
||||
makeFlags = "YBPERS_LIBPATH=${yubikey-personalization}/lib";
|
||||
|
||||
buildFlags = "unicoderelease";
|
||||
buildInputs = [ wxGTK libuuid gettext perl zip
|
||||
xercesc libXt libXtst libXi xextproto
|
||||
pkgconfig libyubikey ykpers ];
|
||||
pkgconfig libyubikey yubikey-personalization ];
|
||||
|
||||
postPatch = ''
|
||||
# Fix perl scripts used during the build.
|
||||
|
32
pkgs/applications/misc/qmetro/default.nix
Normal file
32
pkgs/applications/misc/qmetro/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchurl, qmake4Hook, unzip, qt4 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${project}-${version}";
|
||||
project = "qmetro";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${project}/${name}.zip";
|
||||
sha256 = "1zdj87lzcr43gr2h05g17z31pd22n5kxdwbvx7rx656rmhv0sjq5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake4Hook unzip ];
|
||||
|
||||
buildInputs = [ qt4 ];
|
||||
|
||||
postPatch = ''
|
||||
sed -e 's#Exec=/usr/bin/qmetro#Exec=qmetro#' -i rc/qmetro.desktop
|
||||
echo 'LIBS += -lz' >> qmetro.pro
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://sourceforge.net/projects/qmetro/;
|
||||
description = "Worldwide transit maps viewer";
|
||||
license = licenses.gpl3;
|
||||
|
||||
maintainter = with maintainers; [ orivej ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ qtbase qtwebengine ];
|
||||
nativeBuildInputs = [ qmakeHook ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
cp binary/QSyncthingTray $out/bin
|
||||
@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.lgpl3;
|
||||
maintainers = with maintainers; [ zraexy ];
|
||||
platforms = platforms.all;
|
||||
broken = builtins.compareVersions qtbase.version "5.7.0" >= 0;
|
||||
};
|
||||
}
|
||||
|
@ -1,23 +1,25 @@
|
||||
{ stdenv, fetchFromGitHub, yacc, ncurses, libxml2, pkgconfig }:
|
||||
{ stdenv, fetchFromGitHub, yacc, ncurses, libxml2, libzip, libxls, pkgconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
name = "sc-im-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "andmarti1424";
|
||||
repo = "sc-im";
|
||||
rev = "v${version}";
|
||||
sha256 = "1v1cfmfqs5997bqlirp6p7smc3qrinq8dvsi33sk09r33zkzyar0";
|
||||
sha256 = "1vdn9p9srvdksxznrn65pfigwrd7brlq8bac3pjfqsvf8gjnzq61";
|
||||
};
|
||||
|
||||
buildInputs = [ yacc ncurses libxml2 pkgconfig ];
|
||||
buildInputs = [ yacc ncurses libxml2 libzip libxls pkgconfig ];
|
||||
|
||||
buildPhase = ''
|
||||
cd src
|
||||
|
||||
sed -i "s,prefix=/usr,prefix=$out," Makefile
|
||||
sed -i "s,-I/usr/include/libxml2,-I$libxml2," Makefile
|
||||
sed -e "\|^prefix = /usr/local| s|/usr/local|$out|" \
|
||||
-e "\|^#LDLIBS += -lxlsreader| s|^#|| " \
|
||||
-e "\|^#CFLAGS += -DXLS| s|^#|| " \
|
||||
-i Makefile
|
||||
|
||||
make
|
||||
export DESTDIR=$out
|
||||
|
@ -1,76 +0,0 @@
|
||||
{stdenv, fetchurl,
|
||||
zlib, libpng, libjpeg, perl, expat, qt3,
|
||||
libX11, libXext, libSM, libICE,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "taskjuggler-2.4.3";
|
||||
src = fetchurl {
|
||||
url = "http://www.taskjuggler.org/download/${name}.tar.bz2";
|
||||
sha256 = "14gkxa2vwfih5z7fffbavps7m44z5bq950qndigw2icam5ks83jl";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[zlib libpng libX11 libXext libSM libICE perl expat libjpeg]
|
||||
;
|
||||
|
||||
patches = [ ./timezone-glibc.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
for i in $(grep -R "/bin/bash" . | sed 's/:.*//'); do
|
||||
substituteInPlace $i --replace /bin/bash $(type -Pp bash)
|
||||
done
|
||||
for i in $(grep -R "/usr/bin/perl" . | sed 's/:.*//'); do
|
||||
substituteInPlace $i --replace /usr/bin/perl ${perl}/bin/perl
|
||||
done
|
||||
|
||||
# Fix install
|
||||
for i in docs/en/Makefile.in Examples/BigProject/Common/Makefile.in Examples/BigProject/Makefile.in Examples/BigProject/Project1/Makefile.in Examples/BigProject/Project2/Makefile.in Examples/FirstProject/Makefile.in Examples/ShiftSchedule/Makefile.in; do
|
||||
# Do not use variable substitution because there is some text after the last '@'
|
||||
substituteInPlace $i --replace 'docprefix = @PACKAGES_DIR@' 'docprefix = $(docdir)/'
|
||||
done
|
||||
|
||||
# Comment because the ical export need the KDE support.
|
||||
for i in Examples/FirstProject/AccountingSoftware.tjp; do
|
||||
substituteInPlace $i --replace "icalreport" "# icalreport"
|
||||
done
|
||||
|
||||
for i in TestSuite/testdir TestSuite/createrefs \
|
||||
TestSuite/Scheduler/Correct/Expression.sh; do
|
||||
substituteInPlace $i --replace '/bin/rm' 'rm'
|
||||
done
|
||||
|
||||
# Some tests require writing at $HOME
|
||||
HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
configureFlags = "
|
||||
--without-arts --disable-docs
|
||||
--x-includes=${libX11.dev}/include
|
||||
--x-libraries=${libX11.out}/lib
|
||||
--with-qt-dir=${qt3}
|
||||
";
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $out/share/emacs/site-lisp/
|
||||
cp Contrib/emacs/taskjug.el $out/share/emacs/site-lisp/
|
||||
'';
|
||||
|
||||
installFlags =
|
||||
# kde_locale is not defined when installing without kde.
|
||||
"kde_locale=\${out}/share/locale";
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.taskjuggler.org";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
description = "Project management tool";
|
||||
longDescription = ''
|
||||
TaskJuggler is a modern and powerful, Open Source project management
|
||||
tool. Its new approach to project planing and tracking is more
|
||||
flexible and superior to the commonly used Gantt chart editing
|
||||
tools. It has already been successfully used in many projects and
|
||||
scales easily to projects with hundreds of resources and thousands of
|
||||
tasks.
|
||||
'';
|
||||
};
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
From the discussion in http://groups.google.com/group/taskjuggler-users/browse_thread/thread/f65a3efd4dcae2fc/a44c711a9d28ebee?show_docid=a44c711a9d28ebee
|
||||
|
||||
From: Chris Schlaeger <cs@kde.org>
|
||||
Date: Sat, 27 Feb 2010 06:33:35 +0000 (+0100)
|
||||
Subject: Try to fix time zone check for glibc 2.11.
|
||||
X-Git-Url: http://www.taskjuggler.org/cgi-bin/gitweb.cgi?p=taskjuggler.git;a=commitdiff_plain;h=2382ed54f90c3c899badb3f56aaa2b3b5dba361e;hp=c666c5068312fec7db75e17d1c567d94127d1dda
|
||||
|
||||
Try to fix time zone check for glibc 2.11.
|
||||
|
||||
Reported-by: Lee <pFQh8RQn4fqB@dyweni.com>
|
||||
---
|
||||
|
||||
diff --git a/taskjuggler/Utility.cpp b/taskjuggler/Utility.cpp
|
||||
index 5e2bf21..9b7fce2 100644
|
||||
--- a/taskjuggler/Utility.cpp
|
||||
+++ b/taskjuggler/Utility.cpp
|
||||
@@ -206,16 +206,28 @@ setTimezone(const char* tZone)
|
||||
|
||||
/* To validate the tZone value we call tzset(). It will convert the zone
|
||||
* into a three-letter acronym in case the tZone value is good. If not, it
|
||||
- * will just copy the wrong value to tzname[0] (glibc < 2.5) or fall back
|
||||
- * to UTC. */
|
||||
+ * will
|
||||
+ * - copy the wrong value to tzname[0] (glibc < 2.5)
|
||||
+ * - or fall back to UTC (glibc >= 2.5 && < 2.11)
|
||||
+ * - copy the part before the '/' to tzname[0] (glibc >= 2.11).
|
||||
+ */
|
||||
tzset();
|
||||
+ char* region = new(char[strlen(tZone) + 1]);
|
||||
+ region[0] = 0;
|
||||
+ if (strchr(tZone, '/'))
|
||||
+ {
|
||||
+ strcpy(region, tZone);
|
||||
+ *strchr(region, '/') = 0;
|
||||
+ }
|
||||
if (timezone2tz(tZone) == 0 &&
|
||||
- (strcmp(tzname[0], tZone) == 0 ||
|
||||
+ (strcmp(tzname[0], tZone) == 0 || strcmp(tzname[0], region) == 0 ||
|
||||
(strcmp(tZone, "UTC") != 0 && strcmp(tzname[0], "UTC") == 0)))
|
||||
{
|
||||
UtilityError = QString(i18n("Illegal timezone '%1'")).arg(tZone);
|
||||
+ delete region;
|
||||
return false;
|
||||
}
|
||||
+ delete region;
|
||||
|
||||
if (!LtHashTab)
|
||||
return true;
|
@ -13,11 +13,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,share/man/man1}
|
||||
cp -rv doc/man/*.1 $out/share/man/man1
|
||||
cp src/timew $out/bin/
|
||||
'';
|
||||
patches = [ ./install-all-themes.patch ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A command-line time tracker";
|
||||
|
27
pkgs/applications/misc/timewarrior/install-all-themes.patch
Normal file
27
pkgs/applications/misc/timewarrior/install-all-themes.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From e4a14c61bff3a55de42718dc11b282c4d5342995 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Tue, 14 Mar 2017 07:51:02 -0500
|
||||
Subject: [PATCH] doc/themes: install all themes, not just 'dark.theme'.
|
||||
|
||||
---
|
||||
doc/themes/CMakeLists.txt | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/doc/themes/CMakeLists.txt b/doc/themes/CMakeLists.txt
|
||||
index a954576..3a3b453 100644
|
||||
--- a/doc/themes/CMakeLists.txt
|
||||
+++ b/doc/themes/CMakeLists.txt
|
||||
@@ -2,5 +2,8 @@ cmake_minimum_required (VERSION 2.8)
|
||||
|
||||
message ("-- Configuring theme documentation")
|
||||
|
||||
-install (FILES README DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
-install (FILES dark.theme DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
+install (FILES README DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
+install (FILES dark.theme DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
+install (FILES dark_blue.theme DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
+install (FILES dark_green.theme DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
+install (FILES dark_red.theme DESTINATION ${TIMEW_DOCDIR}/doc/themes)
|
||||
--
|
||||
2.12.0
|
||||
|
@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.all;
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ offline peterhoeg ];
|
||||
broken = builtins.compareVersions qtbase.version "5.7.0" >= 0;
|
||||
};
|
||||
}
|
||||
|
@ -1,24 +0,0 @@
|
||||
{stdenv, fetchurl, pkgconfig, libusb1, libyubikey}:
|
||||
|
||||
stdenv.mkDerivation rec
|
||||
{
|
||||
version = "1.17.2";
|
||||
name = "ykpers-${version}";
|
||||
|
||||
src = fetchurl
|
||||
{
|
||||
url = "http://opensource.yubico.com/yubikey-personalization/releases/${name}.tar.gz";
|
||||
sha256 = "1z6ybpdhl74phwzg2lhxhipqf7xnfhg52dykkzb3fbx21m0i4jkh";
|
||||
};
|
||||
|
||||
buildInputs = [pkgconfig libusb1 libyubikey];
|
||||
|
||||
meta =
|
||||
{
|
||||
homepage = "http://opensource.yubico.com/yubikey-personalization/";
|
||||
description = "YubiKey Personalization cross-platform library and tool";
|
||||
license = "bsd";
|
||||
maintainers = [ stdenv.lib.maintainers.calrama ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -94,12 +94,12 @@ let
|
||||
|
||||
flash = stdenv.mkDerivation rec {
|
||||
name = "flashplayer-ppapi-${version}";
|
||||
version = "24.0.0.221";
|
||||
version = "25.0.0.127";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/"
|
||||
+ "${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
||||
sha256 = "0vqvb098wms9v2r1xm9yq4cpn1h9dr1y7izfy2rwg3y7gr8ycv80";
|
||||
sha256 = "1gf0ncclkk3h4vj9kkhbqj1nnnm54gwm5mdcs4p4pl8i339scs14";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
# This file is autogenerated from update.sh in the same directory.
|
||||
{
|
||||
beta = {
|
||||
sha256 = "0mwwscybips1kazl0rva3jdswfzfb7yp90ggqgk27z2ndp0qj8b3";
|
||||
sha256bin64 = "17n0jcysxi99v8hwlg7f69nrs2y5z87644145a8r53l809hkvkrk";
|
||||
version = "57.0.2987.21";
|
||||
sha256 = "0bbr5wr5icrw5101dlhyn20pg28mah7w4vk365i4gf6a1zvyrd8n";
|
||||
sha256bin64 = "0dx9ivjc7avm0zgw0jcx5mmlzapwc2lp1sdjpwgd4y0iai1zr3yw";
|
||||
version = "57.0.2987.98";
|
||||
};
|
||||
dev = {
|
||||
sha256 = "18gsj415cdlllp95q8pv1s3hhjg8cmjb6kwrvbr5mjdvsvj0ianf";
|
||||
sha256bin64 = "0z58rwz00bq61d24h8jynhzxanbh0m9wi04jbczci3681b4zyiyh";
|
||||
version = "58.0.3000.4";
|
||||
sha256 = "1i6qr1ypjww3q59lqg60xpns8xqxxrkd0yrpyx96alb1bp22x85p";
|
||||
sha256bin64 = "1ahp99p4hi8r2bvkdpnkakwkpmmnndjn299axc7cafz85zs6z9vl";
|
||||
version = "58.0.3029.14";
|
||||
};
|
||||
stable = {
|
||||
sha256 = "1q2kg85pd6lv036w7lsss5mhiiva9rx4f0410sbn9bnazhghib4s";
|
||||
sha256bin64 = "1s64smkpjmnlw7ym14v3g3lcpagsgavmnlq6wkgci80kyvwasd3w";
|
||||
version = "56.0.2924.87";
|
||||
sha256 = "0bbr5wr5icrw5101dlhyn20pg28mah7w4vk365i4gf6a1zvyrd8n";
|
||||
sha256bin64 = "1qs8pmfasf3j84pjf4fnf6yb0pfa2hdgicskvfmr1sqy7c7yg348";
|
||||
version = "57.0.2987.98";
|
||||
};
|
||||
}
|
||||
|
@ -30,6 +30,10 @@ common = { pname, version, sha512, updateScript }: stdenv.mkDerivation rec {
|
||||
inherit sha512;
|
||||
};
|
||||
|
||||
# this patch should no longer be needed in 53
|
||||
# from https://bugzilla.mozilla.org/show_bug.cgi?id=1013882
|
||||
patches = lib.optional debugBuild ./fix-debug.patch;
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig gtk2 perl zip libIDL libjpeg zlib bzip2
|
||||
python dbus dbus_glib pango freetype fontconfig xorg.libXi
|
||||
|
@ -0,0 +1,77 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Michelangelo De Simone <mdesimone@mozilla.com>
|
||||
# Date 1479198095 28800
|
||||
# Node ID fde6e9ccfc72fbc0fcd93af7a40436b216e7ea1a
|
||||
# Parent 687eac6845a77d2cac5505da9c8912885c2a9e57
|
||||
Bug 1013882 - TestInterfaceJS should be packaged only if it's available. r=glandium, a=jcristau
|
||||
|
||||
MozReview-Commit-ID: IEHesdoU4Sz
|
||||
|
||||
diff --git a/b2g/installer/package-manifest.in b/b2g/installer/package-manifest.in
|
||||
--- a/b2g/installer/package-manifest.in
|
||||
+++ b/b2g/installer/package-manifest.in
|
||||
@@ -570,17 +570,17 @@
|
||||
@RESPATH@/components/InputMethod.manifest
|
||||
#ifdef MOZ_B2G
|
||||
@RESPATH@/components/inputmethod.xpt
|
||||
#endif
|
||||
|
||||
@RESPATH@/components/SystemUpdate.manifest
|
||||
@RESPATH@/components/SystemUpdateManager.js
|
||||
|
||||
-#ifdef MOZ_DEBUG
|
||||
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
|
||||
@RESPATH@/components/TestInterfaceJS.js
|
||||
@RESPATH@/components/TestInterfaceJS.manifest
|
||||
@RESPATH@/components/TestInterfaceJSMaplike.js
|
||||
#endif
|
||||
|
||||
; Modules
|
||||
@RESPATH@/modules/*
|
||||
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -554,17 +554,17 @@
|
||||
@RESPATH@/components/PresentationControlService.js
|
||||
@RESPATH@/components/PresentationDataChannelSessionTransport.js
|
||||
@RESPATH@/components/PresentationDataChannelSessionTransport.manifest
|
||||
|
||||
; InputMethod API
|
||||
@RESPATH@/components/MozKeyboard.js
|
||||
@RESPATH@/components/InputMethod.manifest
|
||||
|
||||
-#ifdef MOZ_DEBUG
|
||||
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
|
||||
@RESPATH@/components/TestInterfaceJS.js
|
||||
@RESPATH@/components/TestInterfaceJS.manifest
|
||||
@RESPATH@/components/TestInterfaceJSMaplike.js
|
||||
#endif
|
||||
|
||||
; [Extensions]
|
||||
@RESPATH@/components/extensions-toolkit.manifest
|
||||
@RESPATH@/browser/components/extensions-browser.manifest
|
||||
diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
|
||||
--- a/mobile/android/installer/package-manifest.in
|
||||
+++ b/mobile/android/installer/package-manifest.in
|
||||
@@ -381,17 +381,17 @@
|
||||
|
||||
@BINPATH@/components/CaptivePortalDetectComponents.manifest
|
||||
@BINPATH@/components/captivedetect.js
|
||||
|
||||
#ifdef MOZ_WEBSPEECH
|
||||
@BINPATH@/components/dom_webspeechsynth.xpt
|
||||
#endif
|
||||
|
||||
-#ifdef MOZ_DEBUG
|
||||
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
|
||||
@BINPATH@/components/TestInterfaceJS.js
|
||||
@BINPATH@/components/TestInterfaceJS.manifest
|
||||
@BINPATH@/components/TestInterfaceJSMaplike.js
|
||||
#endif
|
||||
|
||||
@BINPATH@/components/nsAsyncShutdown.manifest
|
||||
@BINPATH@/components/nsAsyncShutdown.js
|
||||
|
||||
|
@ -16,10 +16,11 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ libev librsvg libpng libjpeg libtiff gpm openssl xz bzip2 zlib ]
|
||||
++ stdenv.lib.optionals enableX11 [ libX11 libXau libXt ]
|
||||
++ stdenv.lib.optional enableDirectFB [ directfb ];
|
||||
buildInputs = with stdenv.lib;
|
||||
[ libev librsvg libpng libjpeg libtiff openssl xz bzip2 zlib ]
|
||||
++ optionals stdenv.isLinux [ gpm ]
|
||||
++ optionals enableX11 [ libX11 libXau libXt ]
|
||||
++ optional enableDirectFB [ directfb ];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig bzip2 ];
|
||||
|
||||
@ -39,6 +40,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://links.twibright.com/;
|
||||
description = "A small browser with some graphics support";
|
||||
maintainers = with maintainers; [ raskin urkud viric ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -73,25 +73,25 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "flashplayer-${version}";
|
||||
version = "24.0.0.221";
|
||||
version = "25.0.0.127";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
if debug then
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/24/flash_player_npapi_linux_debug.${arch}.tar.gz"
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_npapi_linux_debug.${arch}.tar.gz"
|
||||
else
|
||||
"https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz";
|
||||
sha256 =
|
||||
if debug then
|
||||
if arch == "x86_64" then
|
||||
"10f8m5zc8p4xbhihbl785lws1kpv6smnbhx4ydzf8ai3mlv3y241"
|
||||
"0d37rwbqszl593pggph8pm8jwn05fppys7q8vk1jrk9jaz262iva"
|
||||
else
|
||||
"1rz9rkbvln8wdkfmsnnq936xs6969qma141jc4qx408419q7v3hg"
|
||||
"0lhngdx1q51kfpw3a961h9p9n1fnspk9pmg21i069hvd0h143arx"
|
||||
else
|
||||
if arch == "x86_64" then
|
||||
"1cb4mvslphj3bcchgr7lcswz8kk8si0s60rl5266mi53byplhw08"
|
||||
"1yasj9xzmb6ly9209b1hmrqrzxrr1bafsfjszsr3yf994hql6nzn"
|
||||
else
|
||||
"1vcyp9041171xkcnz05dlk3n7bnbcb9qbh4sy5wfgjkqsyd6i5bl";
|
||||
"02vs12cm6fpl2fif1lij9y15m89wk6aizc8sbjiw6w59wixn3p9d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -57,19 +57,19 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "flashplayer-standalone-${version}";
|
||||
version = "24.0.0.221";
|
||||
version = "25.0.0.127";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
if debug then
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/24/flash_player_sa_linux_debug.x86_64.tar.gz"
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux_debug.x86_64.tar.gz"
|
||||
else
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/24/flash_player_sa_linux.x86_64.tar.gz";
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux.x86_64.tar.gz";
|
||||
sha256 =
|
||||
if debug then
|
||||
"0cy81cml72ayx2wa0fd9vgp2wzny866jasahndg01v0jfxcxw5rz"
|
||||
"07a8x1n997lmkxj74bkygh60shwzxzcvfxpz07pxj1nmvakmin51"
|
||||
else
|
||||
"0xgiycd47mzmwvmhbi0ig3rd7prksfdpcd4h62as1m9gs1ax4d7l";
|
||||
"0rzxfcvjjwbd1m6pyby8km4g5834zy5d5sih7xq3czds9x0a2jp2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -24,12 +24,12 @@ let
|
||||
|
||||
in buildPythonApplication rec {
|
||||
name = "qutebrowser-${version}";
|
||||
version = "0.9.1";
|
||||
version = "0.10.1";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/The-Compiler/qutebrowser/releases/download/v${version}/${name}.tar.gz";
|
||||
sha256 = "0pf91nc0xcykahc3x7ww525c9czm8zpg80nxl8n2mrzc4ilgvass";
|
||||
sha256 = "57f4915f0f2b1509f3aa1cb9c47117fdaad35b4c895e9223c4eb0a6e8af51917";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
@ -27,5 +27,6 @@ buildGoPackage rec {
|
||||
homepage = https://github.com/kubernetes/kops;
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [offline];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, fetchFromGitHub, which, go, go-bindata, makeWrapper, rsync
|
||||
{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go, go-bindata, makeWrapper, rsync
|
||||
, iptables, coreutils
|
||||
, components ? [
|
||||
"cmd/kubeadm"
|
||||
@ -18,16 +18,16 @@ with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kubernetes-${version}";
|
||||
version = "1.5.2";
|
||||
version = "1.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ps9bn5gqknyjv0b9jvp7xg3cyd4anq11j785p22347al0b8w81v";
|
||||
sha256 = "1xhz6m6ly6ffj60id9ms1liijlrik8n2pxyzb5m77ym3zf7rxlpl";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper which go rsync go-bindata ];
|
||||
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
||||
|
||||
outputs = ["out" "man" "pause"];
|
||||
|
||||
@ -59,12 +59,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# Remove references to go compiler
|
||||
while read file; do
|
||||
cat $file | sed "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" > $file.tmp
|
||||
mv $file.tmp $file
|
||||
chmod +x $file
|
||||
done < <(find $out/bin $pause/bin -type f 2>/dev/null)
|
||||
find $out/bin $pause/bin -type f -exec remove-references-to -t ${go} '{}' +
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -1,47 +1,77 @@
|
||||
{ stdenv, lib, fetchurl, makeWrapper, docker-machine-kvm, kubernetes, libvirt, qemu }:
|
||||
{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, go-bindata, kubernetes, libvirt, qemu, docker-machine-kvm, makeWrapper }:
|
||||
|
||||
let
|
||||
arch = if stdenv.isLinux
|
||||
then "linux-amd64"
|
||||
else "darwin-amd64";
|
||||
checksum = if stdenv.isLinux
|
||||
then "0cdcabsx5l4jbpyj3zzyz5bnzks6wl64bmzdsnk41x92ar5y5yal"
|
||||
else "12f3b7s5lwpvzx4wj6i6h62n4zjshqf206fxxwpwx9kpsdaw6xdi";
|
||||
binPath = [ kubernetes ]
|
||||
++ stdenv.lib.optionals stdenv.isLinux [ libvirt qemu docker-machine-kvm ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [];
|
||||
|
||||
# TODO: compile from source
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "minikube";
|
||||
# Normally, minikube bundles localkube in its own binary via go-bindata. Unfortunately, it needs to make that localkube
|
||||
# a static linux binary, and our Linux nixpkgs go compiler doesn't seem to work when asking for a cgo binary that's static
|
||||
# (presumably because we don't have some static system libraries it wants), and cross-compiling cgo on Darwin is a nightmare.
|
||||
#
|
||||
# Note that minikube can download (and cache) versions of localkube it needs on demand. Unfortunately, minikube's knowledge
|
||||
# of where it can download versions of localkube seems to rely on a json file that doesn't get updated as often as we'd like,
|
||||
# so for example it doesn't know about v1.5.3 even though there's a perfectly good version of localkube hosted there. So
|
||||
# instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is
|
||||
# currently https://storage.googleapis.com/minikube/k8s_releases.json. Note that we can't use 1.5.3 with minikube 0.17.1
|
||||
# expects to be able to pass it a command-line argument that it doesn't understand. v1.5.4 and higher should be fine. There
|
||||
# doesn't seem to ae any official release of localkube for 1.5.4 yet so I'm temporarily grabbing a version built from the
|
||||
# minikube CI server.
|
||||
localkube-binary = fetchurl {
|
||||
url = "https://storage.googleapis.com/minikube-builds/1216/localkube";
|
||||
# url = "https://storage.googleapis.com/minikube/k8sReleases/v${kubernetes.version}/localkube-linux-amd64";
|
||||
sha256 = "1vqrsak7n045ci6af3rpgs2qwjnrqk8k7c3ax6wzli4m8vhsiv57";
|
||||
};
|
||||
in buildGoPackage rec {
|
||||
pname = "minikube";
|
||||
name = "${pname}-${version}";
|
||||
version = "0.17.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://storage.googleapis.com/minikube/releases/v${version}/minikube-${arch}";
|
||||
sha256 = "${checksum}";
|
||||
goPackagePath = "k8s.io/minikube";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "minikube";
|
||||
rev = "v${version}";
|
||||
sha256 = "1m61yipn0p3cfavjddhrg1rcmr0hv6k3zxvqqd9fisl79g0sdfsr";
|
||||
};
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
# kubernetes is here only to shut up a loud warning when generating the completions below. minikube checks very eagerly
|
||||
# that kubectl is on the $PATH, even if it doesn't use it at all to generate the completions
|
||||
buildInputs = [ go-bindata makeWrapper kubernetes ];
|
||||
subPackages = [ "cmd/minikube" ];
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
preBuild = ''
|
||||
pushd go/src/${goPackagePath} >/dev/null
|
||||
|
||||
binPath = lib.makeBinPath [ docker-machine-kvm kubernetes libvirt qemu ];
|
||||
mkdir -p out
|
||||
cp ${localkube-binary} out/localkube
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 ${src} $out/bin/${pname}
|
||||
go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets ./out/localkube deploy/addons/...
|
||||
|
||||
ISO_VERSION=$(grep "^ISO_VERSION" Makefile | sed "s/^.*\s//")
|
||||
ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//")
|
||||
|
||||
export buildFlagsArray="-ldflags=\
|
||||
-X k8s.io/minikube/pkg/version.version=v${version} \
|
||||
-X k8s.io/minikube/pkg/version.isoVersion=$ISO_VERSION \
|
||||
-X k8s.io/minikube/pkg/version.isoPath=$ISO_BUCKET"
|
||||
|
||||
popd >/dev/null
|
||||
'';
|
||||
|
||||
fixupPhase = ''
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/bin/minikube"
|
||||
|
||||
wrapProgram $out/bin/${pname} \
|
||||
--prefix PATH : ${binPath}
|
||||
postInstall = ''
|
||||
mkdir -p $bin/share/bash-completion/completions/
|
||||
MINIKUBE_WANTUPDATENOTIFICATION=false HOME=$PWD $bin/bin/minikube completion bash > $bin/share/bash-completion/completions/minikube
|
||||
'';
|
||||
|
||||
postFixup = "wrapProgram $bin/bin/${pname} --prefix PATH : ${stdenv.lib.makeBinPath binPath}";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/kubernetes/minikube;
|
||||
homepage = https://github.com/kubernetes/minikube;
|
||||
description = "A tool that makes it easy to run Kubernetes locally";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ebzzry ];
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ebzzry copumpkin ];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "nomad-${version}";
|
||||
version = "0.5.4";
|
||||
version = "0.5.5";
|
||||
rev = "v${version}";
|
||||
|
||||
goPackagePath = "github.com/hashicorp/nomad";
|
||||
@ -12,7 +12,7 @@ buildGoPackage rec {
|
||||
owner = "hashicorp";
|
||||
repo = "nomad";
|
||||
inherit rev;
|
||||
sha256 = "0x7bi6wq7kpqv3wfhk5mqikj4hsb0f6lx867xz5l9cq3i39b5gj3";
|
||||
sha256 = "17xq88ymm77b6y27l4v49i9hm6yjyrk61rdb2v7nvn8fa4bn6b65";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
34
pkgs/applications/networking/cluster/terraform/0.8.5.nix
Normal file
34
pkgs/applications/networking/cluster/terraform/0.8.5.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "terraform-${version}";
|
||||
version = "0.8.5";
|
||||
|
||||
goPackagePath = "github.com/hashicorp/terraform";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hashicorp";
|
||||
repo = "terraform";
|
||||
rev = "v${version}";
|
||||
sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
# remove all plugins, they are part of the main binary now
|
||||
for i in $bin/bin/*; do
|
||||
if [[ $(basename $i) != terraform ]]; then
|
||||
rm "$i"
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tool for building, changing, and versioning infrastructure";
|
||||
homepage = "https://www.terraform.io/";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [
|
||||
jgeerds
|
||||
zimbatm
|
||||
];
|
||||
};
|
||||
}
|
35
pkgs/applications/networking/cluster/terragrunt/0.9.8.nix
Normal file
35
pkgs/applications/networking/cluster/terragrunt/0.9.8.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "terragrunt-${version}";
|
||||
version = "0.9.8";
|
||||
|
||||
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "gruntwork-io";
|
||||
repo = "terragrunt";
|
||||
sha256 = "0aakr17yzh5jzvlmg3pzpnsfwl31njg27bpck541492shqcqmkiz";
|
||||
};
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
preBuild = ''
|
||||
buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}")
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $bin/bin/terragrunt \
|
||||
--set TERRAGRUNT_TFPATH ${lib.getBin terraform}/bin/terraform
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices.";
|
||||
homepage = https://github.com/gruntwork-io/terragrunt/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
};
|
||||
}
|
@ -17,6 +17,10 @@ buildGoPackage rec {
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
preBuild = ''
|
||||
buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}")
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $bin/bin/terragrunt \
|
||||
--set TERRAGRUNT_TFPATH ${lib.getBin terraform}/bin/terraform
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "esniper-2.32.0";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "esniper-2.33.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/esniper/esniper-2-32-0.tgz";
|
||||
sha256 = "04lka4d0mnrwc369yzvq28n8qi1qbm8810ykx6d0a4kaghiybqsy";
|
||||
url = "mirror://sourceforge/esniper/${stdenv.lib.replaceStrings ["."] ["-"] name}.tgz";
|
||||
sha256 = "1pck2x7mp7ip0b21v2sjvq86fz12gzw6kig4vvbrghz5xw5b3f69";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl curl ];
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
|
||||
, pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }:
|
||||
|
||||
let version = "3.24.0"; in
|
||||
let version = "3.25.0"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "filezilla-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
|
||||
sha256 = "1bacrl8lj90hqbh129hpbgqj78k1i84j83rkzn507jnykj4x8p9x";
|
||||
sha256 = "1b1lb1zvm887xy3q9i5ziqvwk4ww2pd81a1msbwjrxzy5lq5ykhh";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
let
|
||||
|
||||
version = "2.5.1";
|
||||
version = "2.5.2";
|
||||
|
||||
rpath = stdenv.lib.makeLibraryPath [
|
||||
alsaLib
|
||||
@ -45,7 +45,7 @@ let
|
||||
if stdenv.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
|
||||
sha256 = "1rrhgqmz0ajv2135bzykv3dq0mifzf5kiycgrisk2sfxn6nwyyvj";
|
||||
sha256 = "0mg8js18lnnwyvqksrhpym7d04bin16bh7sdmxbm36iijb9ajxmi";
|
||||
}
|
||||
else
|
||||
throw "Slack is not supported on ${stdenv.system}";
|
||||
|
@ -2,14 +2,14 @@
|
||||
, cyrus_sasl, gdbm, gpgme, kerberos, libidn, notmuch, openssl, lmdb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20170128";
|
||||
version = "20170306";
|
||||
name = "neomutt-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = "neomutt-${version}";
|
||||
sha256 = "082ksn4fsj48nkz61ia0hcxz3396p6a4p9q8738w15qkycq23c20";
|
||||
sha256 = "0nlazabwj4czi30m84ppga275hkr51glyndizqzg540q9wp1acz4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ which autoconf automake ];
|
||||
|
@ -10,11 +10,11 @@ assert guiSupport -> (dbus_libs != null);
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qbittorrent-${version}";
|
||||
version = "3.3.10";
|
||||
version = "3.3.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qbittorrent/${name}.tar.xz";
|
||||
sha256 = "1lm8y5k9363gajbw0k9jb1cb7zg0lz5rw2ja0kd36h68rpm7qr9c";
|
||||
sha256 = "0q57ahhlx7r5k1ji87gbp4rvjfvhirlmcx5nbwrfvqmxsigar4j8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig which ];
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, lib, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
|
||||
, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, makeDesktopItem, python, libcap, glib
|
||||
, libssh, zlib, cmake, extra-cmake-modules
|
||||
, withGtk ? false, gtk3 ? null, pango ? null, cairo ? null, gdk_pixbuf ? null
|
||||
, withGtk ? false, gtk3 ? null, librsvg ? null, gsettings_desktop_schemas ? null, wrapGAppsHook ? null
|
||||
, withQt ? false, qt5 ? null
|
||||
, ApplicationServices, SystemConfiguration, gmp
|
||||
}:
|
||||
@ -23,11 +23,15 @@ in stdenv.mkDerivation {
|
||||
sha256 = "049r5962yrajhhz9r4dsnx403dab50d6091y2mw298ymxqszp9s2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison cmake extra-cmake-modules flex
|
||||
] ++ optional withGtk wrapGAppsHook;
|
||||
|
||||
buildInputs = [
|
||||
bison cmake extra-cmake-modules flex gettext pcre perl pkgconfig libpcap lua5 libssh openssl libgcrypt libgpgerror gnutls
|
||||
geoip c-ares python glib zlib
|
||||
] ++ (optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ]))
|
||||
++ (optionals withGtk [ gtk3 pango cairo gdk_pixbuf ])
|
||||
gettext pcre perl pkgconfig libpcap lua5 libssh openssl libgcrypt
|
||||
libgpgerror gnutls geoip c-ares python glib zlib
|
||||
] ++ optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
|
||||
++ optionals withGtk [ gtk3 librsvg gsettings_desktop_schemas ]
|
||||
++ optionals stdenv.isLinux [ libcap libnl ]
|
||||
++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ];
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
let
|
||||
version = "1.3.1";
|
||||
version = "1.3.3";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "money-manager-ex-${version}";
|
||||
@ -10,7 +10,7 @@ in
|
||||
src = fetchgit {
|
||||
url = "https://github.com/moneymanagerex/moneymanagerex.git";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "1cmwmvlzg7r85qq23lbbmq2y91vhf9f5pblpja5ph98bsd218pc0";
|
||||
sha256 = "0r4n93z3scv0i0zqflsxwv7j4yl8jy3gr0m4l30y1q8qv0zj9n74";
|
||||
};
|
||||
|
||||
buildInputs = [ sqlite wxGTK30 gettext ];
|
||||
|
@ -1,4 +1,4 @@
|
||||
{stdenv, fetchurl, readline, perl, libX11, libpng, libXt, zlib}:
|
||||
{stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "emboss-6.6.0";
|
||||
@ -6,16 +6,14 @@ stdenv.mkDerivation {
|
||||
url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz";
|
||||
sha256 = "7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e";
|
||||
};
|
||||
# patch = fetchurl {
|
||||
# url = ftp://emboss.open-bio.org/pub/EMBOSS/fixes/patches/patch-1-9.gz;
|
||||
# sha256 = "1pfn5zdxrr71c3kwpdkzmmsqvdwkmynkvcr707vqh73h9cjhk3c1";
|
||||
# };
|
||||
|
||||
buildInputs = [readline perl libpng libX11 libXt zlib];
|
||||
buildInputs = [ readline perl libharu libpng libX11 libXt zlib ];
|
||||
|
||||
# preConfigure = ''
|
||||
# gzip -d $patch | patch -p1
|
||||
# '';
|
||||
configureFlags = [ "--with-hpdf=${libharu}" "--with-pngdriver=${zlib}" ];
|
||||
|
||||
postConfigure = ''
|
||||
sed -i 's@$(bindir)/embossupdate@true@' Makefile
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "The European Molecular Biology Open Software Suite";
|
||||
|
@ -83,5 +83,6 @@ stdenv.mkDerivation {
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ mudri ];
|
||||
platforms = with platforms; linux;
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "geogebra-${version}";
|
||||
version = "5-0-331-0";
|
||||
version = "5-0-338-0";
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2";
|
||||
sha256 = "135g2xqafgs1gv98vqq2jpfwyi1aflyiynx1gmsgs23jxbr218v2";
|
||||
sha256 = "1namwib3912zjizgl9swan0fwgmq9kvfq5k5y8lz818vh4lv88kx";
|
||||
};
|
||||
|
||||
srcIcon = fetchurl {
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, m4, perl, gfortran, texlive, ffmpeg, tk
|
||||
, imagemagick, liblapack, python, openssl, libpng
|
||||
{ stdenv, fetchurl, m4, perl, gfortran, texlive, ffmpeg, tk, gnused_422
|
||||
, imagemagick, liblapack, python, openssl, libpng
|
||||
, which
|
||||
}:
|
||||
|
||||
@ -9,10 +9,11 @@ stdenv.mkDerivation rec {
|
||||
src = fetchurl {
|
||||
url = "http://old.files.sagemath.org/src-old/${name}.tar.gz";
|
||||
sha256 = "102mrzzi215g1xn5zgcv501x9sghwg758jagx2jixvg1rj2jijj9";
|
||||
|
||||
};
|
||||
|
||||
buildInputs = [ m4 perl gfortran texlive.combined.scheme-basic ffmpeg tk imagemagick liblapack
|
||||
python openssl libpng which];
|
||||
buildInputs = [ m4 perl gfortran texlive.combined.scheme-basic ffmpeg gnused_422 tk imagemagick liblapack
|
||||
python openssl libpng which ];
|
||||
|
||||
patches = [ ./spkg-singular.patch ./spkg-python.patch ./spkg-git.patch ];
|
||||
|
||||
|
@ -66,6 +66,8 @@ rec {
|
||||
|
||||
git-imerge = callPackage ./git-imerge { };
|
||||
|
||||
git-octopus = callPackage ./git-octopus { };
|
||||
|
||||
git-radar = callPackage ./git-radar { };
|
||||
|
||||
git-remote-hg = callPackage ./git-remote-hg { };
|
||||
|
@ -0,0 +1,34 @@
|
||||
{ stdenv, fetchFromGitHub, git, perl, makeWrapper }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "git-octopus-${version}";
|
||||
version = "1.4";
|
||||
|
||||
installFlags = [ "prefix=$(out)" ];
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
# perl provides shasum
|
||||
postInstall = ''
|
||||
for f in $out/bin/*; do
|
||||
wrapProgram $f --prefix PATH : ${makeBinPath [ git perl ]}
|
||||
done
|
||||
'';
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lesfurets";
|
||||
repo = "git-octopus";
|
||||
rev = "v${version}";
|
||||
sha256 = "14p61xk7jankp6gc26xciag9fnvm7r9vcbhclcy23f4ghf4q4sj1";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = https://github.com/lesfurets/git-octopus;
|
||||
description = "The continuous merge workflow";
|
||||
license = licenses.lgpl3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [maintainers.mic92];
|
||||
};
|
||||
}
|
@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gitkraken-${version}";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://release.gitkraken.com/linux/v${version}.tar.gz";
|
||||
sha256 = "56b5657f5c13fa1d8f6b7b9331194cbc8c48c0b913e5f0fb561d0e9af82f7999";
|
||||
sha256 = "0a3ed917e6e937af4dd180144fbb4ad8b99b35b5d8c1f0684a55de38189a812d";
|
||||
};
|
||||
|
||||
libPath = stdenv.lib.makeLibraryPath [
|
||||
@ -69,6 +69,6 @@ stdenv.mkDerivation rec {
|
||||
description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
|
||||
license = licenses.unfree;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ ];
|
||||
maintainers = with maintainers; [ xnwdd ];
|
||||
};
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user