Merge remote-tracking branch 'origin/master' into gcc-7

This commit is contained in:
Franz Pletz 2018-02-05 13:11:33 +01:00
commit c135ecd7ef
No known key found for this signature in database
GPG Key ID: 846FDED7792617B4
359 changed files with 18222 additions and 10415 deletions

View File

@ -79,19 +79,24 @@ an example for a minimal `hello` crate:
Now, the file produced by the call to `carnix`, called `hello.nix`, looks like: Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
``` ```
with import <nixpkgs> {}; # Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
{ lib, buildPlatform, buildRustCrate, fetchgit }:
let kernel = buildPlatform.parsed.kernel.name; let kernel = buildPlatform.parsed.kernel.name;
# ... (content skipped) # ... (content skipped)
in
rec {
hello = f: hello_0_1_0 { features = hello_0_1_0_features { hello_0_1_0 = f; }; };
hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "hello"; crateName = "hello";
version = "0.1.0"; version = "0.1.0";
authors = [ "Authorname <user@example.com>" ]; authors = [ "pe@pijul.org <pe@pijul.org>" ];
src = ./.; src = ./.;
inherit dependencies buildDependencies features; inherit dependencies buildDependencies features;
}; };
in hello_0_1_0 = { features?(hello_0_1_0_features {}) }: hello_0_1_0_ {};
rec { hello_0_1_0_features = f: updateFeatures f (rec {
hello_0_1_0 = hello_0_1_0_ rec {}; hello_0_1_0.default = (f.hello_0_1_0.default or true);
}) [ ];
} }
``` ```
@ -103,33 +108,44 @@ dependencies, for instance by adding a single line `libc="*"` to our
following nix file: following nix file:
``` ```
with import <nixpkgs> {}; # Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
{ lib, buildPlatform, buildRustCrate, fetchgit }:
let kernel = buildPlatform.parsed.kernel.name; let kernel = buildPlatform.parsed.kernel.name;
# ... (content skipped) # ... (content skipped)
in
rec {
hello = f: hello_0_1_0 { features = hello_0_1_0_features { hello_0_1_0 = f; }; };
hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { hello_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "hello"; crateName = "hello";
version = "0.1.0"; version = "0.1.0";
authors = [ "Jörg Thalheim <joerg@thalheim.io>" ]; authors = [ "pe@pijul.org <pe@pijul.org>" ];
src = ./.; src = ./.;
inherit dependencies buildDependencies features; inherit dependencies buildDependencies features;
}; };
libc_0_2_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { libc_0_2_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
crateName = "libc"; crateName = "libc";
version = "0.2.34"; version = "0.2.36";
authors = [ "The Rust Project Developers" ]; authors = [ "The Rust Project Developers" ];
sha256 = "11jmqdxmv0ka10ay0l8nzx0nl7s2lc3dbrnh1mgbr2grzwdyxi2s"; sha256 = "01633h4yfqm0s302fm0dlba469bx8y6cs4nqc8bqrmjqxfxn515l";
inherit dependencies buildDependencies features; inherit dependencies buildDependencies features;
}; };
in hello_0_1_0 = { features?(hello_0_1_0_features {}) }: hello_0_1_0_ {
rec { dependencies = mapFeatures features ([ libc_0_2_36 ]);
hello_0_1_0 = hello_0_1_0_ rec {
dependencies = [ libc_0_2_34 ];
}; };
libc_0_2_34_features."default".from_hello_0_1_0__default = true; hello_0_1_0_features = f: updateFeatures f (rec {
libc_0_2_34 = libc_0_2_34_ rec { hello_0_1_0.default = (f.hello_0_1_0.default or true);
features = mkFeatures libc_0_2_34_features; libc_0_2_36.default = true;
}) [ libc_0_2_36_features ];
libc_0_2_36 = { features?(libc_0_2_36_features {}) }: libc_0_2_36_ {
features = mkFeatures (features.libc_0_2_36 or {});
}; };
libc_0_2_34_features."use_std".self_default = hasDefault libc_0_2_34_features; libc_0_2_36_features = f: updateFeatures f (rec {
libc_0_2_36.default = (f.libc_0_2_36.default or true);
libc_0_2_36.use_std =
(f.libc_0_2_36.use_std or false) ||
(f.libc_0_2_36.default or false) ||
(libc_0_2_36.default or false);
}) [];
} }
``` ```
@ -146,7 +162,7 @@ or build inputs by overriding the hello crate in a seperate file.
``` ```
with import <nixpkgs> {}; with import <nixpkgs> {};
(import ./hello.nix).hello_0_1_0.override { ((import ./hello.nix).hello {}).override {
crateOverrides = defaultCrateOverrides // { crateOverrides = defaultCrateOverrides // {
hello = attrs: { buildInputs = [ openssl ]; }; hello = attrs: { buildInputs = [ openssl ]; };
}; };
@ -166,7 +182,7 @@ patches the derivation:
``` ```
with import <nixpkgs> {}; with import <nixpkgs> {};
(import ./hello.nix).hello_0_1_0.override { ((import ./hello.nix).hello {}).override {
crateOverrides = defaultCrateOverrides // { crateOverrides = defaultCrateOverrides // {
hello = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") { hello = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") {
postPatch = '' postPatch = ''
@ -187,7 +203,7 @@ crate, we could do:
``` ```
with import <nixpkgs> {}; with import <nixpkgs> {};
(import hello.nix).hello_0_1_0.override { ((import hello.nix).hello {}).override {
crateOverrides = defaultCrateOverrides // { crateOverrides = defaultCrateOverrides // {
libc = attrs: { buildInputs = []; }; libc = attrs: { buildInputs = []; };
}; };
@ -199,23 +215,35 @@ Three more parameters can be overridden:
- The version of rustc used to compile the crate: - The version of rustc used to compile the crate:
``` ```
hello_0_1_0.override { rust = pkgs.rust; }; (hello {}).override { rust = pkgs.rust; };
``` ```
- Whether to build in release mode or debug mode (release mode by - Whether to build in release mode or debug mode (release mode by
default): default):
``` ```
hello_0_1_0.override { release = false; }; (hello {}).override { release = false; };
``` ```
- Whether to print the commands sent to rustc when building - Whether to print the commands sent to rustc when building
(equivalent to `--verbose` in cargo: (equivalent to `--verbose` in cargo:
``` ```
hello_0_1_0.override { verbose = false; }; (hello {}).override { verbose = false; };
``` ```
One can also supply features switches. For example, if we want to
compile `diesel_cli` only with the `postgres` feature, and no default
features, we would write:
```
(callPackage ./diesel.nix {}).diesel {
default = false;
postgres = true;
}
```
## Using the Rust nightlies overlay ## Using the Rust nightlies overlay

View File

@ -1,7 +1,7 @@
{ lib }: { lib }:
let let
inherit (builtins) attrNames isFunction; inherit (builtins) attrNames;
in in
@ -72,7 +72,7 @@ rec {
makeOverridable = f: origArgs: makeOverridable = f: origArgs:
let let
ff = f origArgs; ff = f origArgs;
overrideWith = newArgs: origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs); overrideWith = newArgs: origArgs // (if lib.isFunction newArgs then newArgs origArgs else newArgs);
in in
if builtins.isAttrs ff then (ff // { if builtins.isAttrs ff then (ff // {
override = newArgs: makeOverridable f (overrideWith newArgs); override = newArgs: makeOverridable f (overrideWith newArgs);
@ -81,7 +81,7 @@ rec {
${if ff ? overrideAttrs then "overrideAttrs" else null} = fdrv: ${if ff ? overrideAttrs then "overrideAttrs" else null} = fdrv:
makeOverridable (args: (f args).overrideAttrs fdrv) origArgs; makeOverridable (args: (f args).overrideAttrs fdrv) origArgs;
}) })
else if builtins.isFunction ff then { else if lib.isFunction ff then {
override = newArgs: makeOverridable f (overrideWith newArgs); override = newArgs: makeOverridable f (overrideWith newArgs);
__functor = self: ff; __functor = self: ff;
overrideDerivation = throw "overrideDerivation not yet supported for functors"; overrideDerivation = throw "overrideDerivation not yet supported for functors";
@ -112,8 +112,8 @@ rec {
*/ */
callPackageWith = autoArgs: fn: args: callPackageWith = autoArgs: fn: args:
let let
f = if builtins.isFunction fn then fn else import fn; f = if lib.isFunction fn then fn else import fn;
auto = builtins.intersectAttrs (builtins.functionArgs f) autoArgs; auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs;
in makeOverridable f (auto // args); in makeOverridable f (auto // args);
@ -122,8 +122,8 @@ rec {
individual attributes. */ individual attributes. */
callPackagesWith = autoArgs: fn: args: callPackagesWith = autoArgs: fn: args:
let let
f = if builtins.isFunction fn then fn else import fn; f = if lib.isFunction fn then fn else import fn;
auto = builtins.intersectAttrs (builtins.functionArgs f) autoArgs; auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs;
origArgs = auto // args; origArgs = auto // args;
pkgs = f origArgs; pkgs = f origArgs;
mkAttrOverridable = name: pkg: makeOverridable (newArgs: (f newArgs).${name}) origArgs; mkAttrOverridable = name: pkg: makeOverridable (newArgs: (f newArgs).${name}) origArgs;

View File

@ -2,10 +2,10 @@
let let
inherit (builtins) trace attrNamesToStr isAttrs isFunction isList isInt inherit (builtins) trace attrNamesToStr isAttrs isList isInt
isString isBool head substring attrNames; isString isBool head substring attrNames;
inherit (lib) all id mapAttrsFlatten elem; inherit (lib) all id mapAttrsFlatten elem isFunction;
in in

View File

@ -51,12 +51,12 @@ let
inherit (builtins) add addErrorContext attrNames inherit (builtins) add addErrorContext attrNames
concatLists deepSeq elem elemAt filter genericClosure genList concatLists deepSeq elem elemAt filter genericClosure genList
getAttr hasAttr head isAttrs isBool isFunction isInt isList getAttr hasAttr head isAttrs isBool isInt isList
isString length lessThan listToAttrs pathExists readFile isString length lessThan listToAttrs pathExists readFile
replaceStrings seq stringLength sub substring tail; replaceStrings seq stringLength sub substring tail;
inherit (trivial) id const concat or and boolToString mergeAttrs inherit (trivial) id const concat or and boolToString mergeAttrs
flip mapNullable inNixShell min max importJSON warn info flip mapNullable inNixShell min max importJSON warn info
nixpkgsVersion mod; nixpkgsVersion mod functionArgs setFunctionArgs isFunction;
inherit (fixedPoints) fix fix' extends composeExtensions inherit (fixedPoints) fix fix' extends composeExtensions
makeExtensible makeExtensibleWithCustomName; makeExtensible makeExtensibleWithCustomName;

View File

@ -1,6 +1,6 @@
{ lib }: { lib }:
let let
inherit (builtins) isFunction head tail isList isAttrs isInt attrNames; inherit (builtins) head tail isList isAttrs isInt attrNames;
in in
@ -53,7 +53,7 @@ rec {
f: # the function applied to the arguments f: # the function applied to the arguments
initial: # you pass attrs, the functions below are passing a function taking the fix argument initial: # you pass attrs, the functions below are passing a function taking the fix argument
let let
takeFixed = if isFunction initial then initial else (fixed : initial); # transform initial to an expression always taking the fixed argument takeFixed = if lib.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 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);
@ -63,7 +63,7 @@ rec {
let args = takeFixed fixed; let args = takeFixed fixed;
mergeFun = args.${n}; mergeFun = args.${n};
in if isAttrs x then (mergeFun args x) in if isAttrs x then (mergeFun args x)
else assert isFunction x; else assert lib.isFunction x;
mergeFun args (x ( args // { inherit fixed; })); mergeFun args (x ( args // { inherit fixed; }));
in overridableDelayableArgs f newArgs; in overridableDelayableArgs f newArgs;
in in
@ -374,7 +374,7 @@ rec {
if isAttrs x then if isAttrs x then
if x ? outPath then "derivation" if x ? outPath then "derivation"
else "attrs" else "attrs"
else if isFunction x then "function" else if lib.isFunction x then "function"
else if isList x then "list" else if isList x then "list"
else if x == true then "bool" else if x == true then "bool"
else if x == false then "bool" else if x == false then "bool"

View File

@ -14,6 +14,8 @@ let
libAttr = lib.attrsets; libAttr = lib.attrsets;
flipMapAttrs = flip libAttr.mapAttrs; flipMapAttrs = flip libAttr.mapAttrs;
inherit (lib) isFunction;
in in
rec { rec {
@ -110,7 +112,7 @@ rec {
else if isString v then "\"" + v + "\"" else if isString v then "\"" + v + "\""
else if null == v then "null" else if null == v then "null"
else if isFunction v then else if isFunction v then
let fna = functionArgs v; let fna = lib.functionArgs v;
showFnas = concatStringsSep "," (libAttr.mapAttrsToList showFnas = concatStringsSep "," (libAttr.mapAttrsToList
(name: hasDefVal: if hasDefVal then "(${name})" else name) (name: hasDefVal: if hasDefVal then "(${name})" else name)
fna); fna);

View File

@ -200,6 +200,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "Eclipse Public License 1.0"; fullName = "Eclipse Public License 1.0";
}; };
epl20 = spdx {
spdxId = "EPL-2.0";
fullName = "Eclipse Public License 2.0";
};
epson = { epson = {
fullName = "Seiko Epson Corporation Software License Agreement for Linux"; fullName = "Seiko Epson Corporation Software License Agreement for Linux";
url = https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html; url = https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html;

View File

@ -231,6 +231,7 @@
fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>"; fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
falsifian = "James Cook <james.cook@utoronto.ca>"; falsifian = "James Cook <james.cook@utoronto.ca>";
fare = "Francois-Rene Rideau <fahree@gmail.com>"; fare = "Francois-Rene Rideau <fahree@gmail.com>";
f-breidenstein = "Felix Breidenstein <mail@felixbreidenstein.de>";
fgaz = "Francesco Gazzetta <francygazz@gmail.com>"; fgaz = "Francesco Gazzetta <francygazz@gmail.com>";
FireyFly = "Jonas Höglund <nix@firefly.nu>"; FireyFly = "Jonas Höglund <nix@firefly.nu>";
flokli = "Florian Klink <flokli@flokli.de>"; flokli = "Florian Klink <flokli@flokli.de>";
@ -328,6 +329,7 @@
joelmo = "Joel Moberg <joel.moberg@gmail.com>"; joelmo = "Joel Moberg <joel.moberg@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>"; joelteon = "Joel Taylor <me@joelt.io>";
johbo = "Johannes Bornhold <johannes@bornhold.name>"; johbo = "Johannes Bornhold <johannes@bornhold.name>";
johnazoidberg = "Daniel Schäfer <git@danielschaefer.me>";
johnmh = "John M. Harris, Jr. <johnmh@openblox.org>"; johnmh = "John M. Harris, Jr. <johnmh@openblox.org>";
johnramsden = "John Ramsden <johnramsden@riseup.net>"; johnramsden = "John Ramsden <johnramsden@riseup.net>";
joko = "Ioannis Koutras <ioannis.koutras@gmail.com>"; joko = "Ioannis Koutras <ioannis.koutras@gmail.com>";
@ -459,6 +461,7 @@
mounium = "Katona László <muoniurn@gmail.com>"; mounium = "Katona László <muoniurn@gmail.com>";
MP2E = "Cray Elliott <MP2E@archlinux.us>"; MP2E = "Cray Elliott <MP2E@archlinux.us>";
mpcsh = "Mark Cohen <m@mpc.sh>"; mpcsh = "Mark Cohen <m@mpc.sh>";
mpickering = "Matthew Pickering <matthewtpickering@gmail.com>";
mpscholten = "Marc Scholten <marc@mpscholten.de>"; mpscholten = "Marc Scholten <marc@mpscholten.de>";
mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>"; mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>";
mrVanDalo = "Ingolf Wanger <contact@ingolf-wagner.de>"; mrVanDalo = "Ingolf Wanger <contact@ingolf-wagner.de>";
@ -541,6 +544,7 @@
pmahoney = "Patrick Mahoney <pat@polycrystal.org>"; pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
pmeunier = "Pierre-Étienne Meunier <pierre-etienne.meunier@inria.fr>"; pmeunier = "Pierre-Étienne Meunier <pierre-etienne.meunier@inria.fr>";
pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>"; pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
pneumaticat = "Kevin Liu <kevin@potatofrom.space>";
polyrod = "Maurizio Di Pietro <dc1mdp@gmail.com>"; polyrod = "Maurizio Di Pietro <dc1mdp@gmail.com>";
pradeepchhetri = "Pradeep Chhetri <pradeep.chhetri89@gmail.com>"; pradeepchhetri = "Pradeep Chhetri <pradeep.chhetri89@gmail.com>";
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>"; prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
@ -561,6 +565,7 @@
rasendubi = "Alexey Shmalko <rasen.dubi@gmail.com>"; rasendubi = "Alexey Shmalko <rasen.dubi@gmail.com>";
raskin = "Michael Raskin <7c6f434c@mail.ru>"; raskin = "Michael Raskin <7c6f434c@mail.ru>";
ravloony = "Tom Macdonald <ravloony@gmail.com>"; ravloony = "Tom Macdonald <ravloony@gmail.com>";
razvan = "Răzvan Flavius Panda <razvan.panda@gmail.com>";
rbasso = "Rafael Basso <rbasso@sharpgeeks.net>"; rbasso = "Rafael Basso <rbasso@sharpgeeks.net>";
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>"; redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
redvers = "Redvers Davies <red@infect.me>"; redvers = "Redvers Davies <red@infect.me>";
@ -617,6 +622,7 @@
sellout = "Greg Pfeil <greg@technomadic.org>"; sellout = "Greg Pfeil <greg@technomadic.org>";
sepi = "Raffael Mancini <raffael@mancini.lu>"; sepi = "Raffael Mancini <raffael@mancini.lu>";
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>"; seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
sfrijters = "Stefan Frijters <sfrijters@gmail.com>";
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>"; shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
shawndellysse = "Shawn Dellysse <sdellysse@gmail.com>"; shawndellysse = "Shawn Dellysse <sdellysse@gmail.com>";
sheenobu = "Sheena Artrip <sheena.artrip@gmail.com>"; sheenobu = "Sheena Artrip <sheena.artrip@gmail.com>";

View File

@ -155,7 +155,7 @@ rec {
# a module will resolve strictly the attributes used as argument but # a module will resolve strictly the attributes used as argument but
# not their values. The values are forwarding the result of the # not their values. The values are forwarding the result of the
# evaluation of the option. # evaluation of the option.
requiredArgs = builtins.attrNames (builtins.functionArgs f); requiredArgs = builtins.attrNames (lib.functionArgs f);
context = name: ''while evaluating the module argument `${name}' in "${key}":''; context = name: ''while evaluating the module argument `${name}' in "${key}":'';
extraArgs = builtins.listToAttrs (map (name: { extraArgs = builtins.listToAttrs (map (name: {
inherit name; inherit name;

View File

@ -1,8 +1,8 @@
{ lib }: { lib }:
let let
inherit (lib) lists; inherit (lib) lists;
parse = import ./parse.nix { inherit lib; }; inherit (lib.systems) parse;
inherit (import ./inspect.nix { inherit lib; }) predicates; inherit (lib.systems.inspect) predicates;
inherit (lib.attrsets) matchAttrs; inherit (lib.attrsets) matchAttrs;
all = [ all = [

View File

@ -4,6 +4,16 @@
# http://llvm.org/docs/doxygen/html/Triple_8cpp_source.html especially # http://llvm.org/docs/doxygen/html/Triple_8cpp_source.html especially
# Triple::normalize. Parsing should essentially act as a more conservative # Triple::normalize. Parsing should essentially act as a more conservative
# version of that last function. # version of that last function.
#
# Most of the types below come in "open" and "closed" pairs. The open ones
# specify what information we need to know about systems in general, and the
# closed ones are sub-types representing the whitelist of systems we support in
# practice.
#
# Code in the remainder of nixpkgs shouldn't rely on the closed ones in
# e.g. exhaustive cases. Its more a sanity check to make sure nobody defines
# systems that overlap with existing ones and won't notice something amiss.
#
{ lib }: { lib }:
with lib.lists; with lib.lists;
with lib.types; with lib.types;
@ -11,29 +21,52 @@ with lib.attrsets;
with (import ./inspect.nix { inherit lib; }).predicates; with (import ./inspect.nix { inherit lib; }).predicates;
let let
setTypesAssert = type: pred: inherit (lib.options) mergeOneOption;
setTypes = type:
mapAttrs (name: value: mapAttrs (name: value:
assert pred value; assert type.check value;
setType type ({ inherit name; } // value)); setType type.name ({ inherit name; } // value));
setTypes = type: setTypesAssert type (_: true);
in in
rec { rec {
isSignificantByte = isType "significant-byte"; ################################################################################
significantBytes = setTypes "significant-byte" {
types.openSignifiantByte = mkOptionType {
name = "significant-byte";
description = "Endianness";
merge = mergeOneOption;
};
types.significantByte = enum (attrValues significantBytes);
significantBytes = setTypes types.openSignifiantByte {
bigEndian = {}; bigEndian = {};
littleEndian = {}; littleEndian = {};
}; };
isCpuType = isType "cpu-type"; ################################################################################
cpuTypes = with significantBytes; setTypesAssert "cpu-type"
(x: elem x.bits [8 16 32 64 128] # Reasonable power of 2
types.bitWidth = enum [ 8 16 32 64 128 ];
################################################################################
types.openCpuType = mkOptionType {
name = "cpu-type";
description = "instruction set architecture name and information";
merge = mergeOneOption;
check = x: types.bitWidth.check x.bits
&& (if 8 < x.bits && (if 8 < x.bits
then isSignificantByte x.significantByte then types.significantByte.check x.significantByte
else !(x ? significantByte))) else !(x ? significantByte));
{ };
types.cpuType = enum (attrValues cpuTypes);
cpuTypes = with significantBytes; setTypes types.openCpuType {
arm = { bits = 32; significantByte = littleEndian; family = "arm"; }; arm = { bits = 32; significantByte = littleEndian; family = "arm"; };
armv5tel = { bits = 32; significantByte = littleEndian; family = "arm"; }; armv5tel = { bits = 32; significantByte = littleEndian; family = "arm"; };
armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; }; armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; };
@ -50,16 +83,34 @@ rec {
wasm64 = { bits = 64; significantByte = littleEndian; family = "wasm"; }; wasm64 = { bits = 64; significantByte = littleEndian; family = "wasm"; };
}; };
isVendor = isType "vendor"; ################################################################################
vendors = setTypes "vendor" {
types.openVendor = mkOptionType {
name = "vendor";
description = "vendor for the platform";
merge = mergeOneOption;
};
types.vendor = enum (attrValues vendors);
vendors = setTypes types.openVendor {
apple = {}; apple = {};
pc = {}; pc = {};
unknown = {}; unknown = {};
}; };
isExecFormat = isType "exec-format"; ################################################################################
execFormats = setTypes "exec-format" {
types.openExecFormat = mkOptionType {
name = "exec-format";
description = "executable container used by the kernel";
merge = mergeOneOption;
};
types.execFormat = enum (attrValues execFormats);
execFormats = setTypes types.openExecFormat {
aout = {}; # a.out aout = {}; # a.out
elf = {}; elf = {};
macho = {}; macho = {};
@ -68,15 +119,33 @@ rec {
unknown = {}; unknown = {};
}; };
isKernelFamily = isType "kernel-family"; ################################################################################
kernelFamilies = setTypes "kernel-family" {
types.openKernelFamily = mkOptionType {
name = "exec-format";
description = "executable container used by the kernel";
merge = mergeOneOption;
};
types.kernelFamily = enum (attrValues kernelFamilies);
kernelFamilies = setTypes types.openKernelFamily {
bsd = {}; bsd = {};
}; };
isKernel = x: isType "kernel" x; ################################################################################
kernels = with execFormats; with kernelFamilies; setTypesAssert "kernel"
(x: isExecFormat x.execFormat && all isKernelFamily (attrValues x.families)) types.openKernel = mkOptionType {
{ name = "kernel";
description = "kernel name and information";
merge = mergeOneOption;
check = x: types.execFormat.check x.execFormat
&& all types.kernelFamily.check (attrValues x.families);
};
types.kernel = enum (attrValues kernels);
kernels = with execFormats; with kernelFamilies; setTypes types.openKernel {
darwin = { execFormat = macho; families = { }; }; darwin = { execFormat = macho; families = { }; };
freebsd = { execFormat = elf; families = { inherit bsd; }; }; freebsd = { execFormat = elf; families = { inherit bsd; }; };
hurd = { execFormat = elf; families = { }; }; hurd = { execFormat = elf; families = { }; };
@ -93,8 +162,17 @@ rec {
win32 = kernels.windows; win32 = kernels.windows;
}; };
isAbi = isType "abi"; ################################################################################
abis = setTypes "abi" {
types.openAbi = mkOptionType {
name = "abi";
description = "binary interface for compiled code and syscalls";
merge = mergeOneOption;
};
types.abi = enum (attrValues abis);
abis = setTypes types.openAbi {
cygnus = {}; cygnus = {};
gnu = {}; gnu = {};
msvc = {}; msvc = {};
@ -106,13 +184,25 @@ rec {
unknown = {}; unknown = {};
}; };
isSystem = isType "system"; ################################################################################
mkSystem = { cpu, vendor, kernel, abi }:
assert isCpuType cpu && isVendor vendor && isKernel kernel && isAbi abi; types.system = mkOptionType {
setType "system" { name = "system";
inherit cpu vendor kernel abi; description = "fully parsed representation of llvm- or nix-style platform tuple";
merge = mergeOneOption;
check = { cpu, vendor, kernel, abi }:
types.cpuType.check cpu
&& types.vendor.check vendor
&& types.kernel.check kernel
&& types.abi.check abi;
}; };
isSystem = isType "system";
mkSystem = components:
assert types.system.check components;
setType "system" components;
mkSkeletonFromList = l: { mkSkeletonFromList = l: {
"2" = # We only do 2-part hacks for things Nix already supports "2" = # We only do 2-part hacks for things Nix already supports
if elemAt l 1 == "cygwin" if elemAt l 1 == "cygwin"
@ -174,4 +264,6 @@ rec {
optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}"; optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}";
in "${cpu.name}-${vendor.name}-${kernel.name}${optAbi}"; in "${cpu.name}-${vendor.name}-${kernel.name}${optAbi}";
################################################################################
} }

View File

@ -52,7 +52,7 @@ rec {
# Pull in some builtins not included elsewhere. # Pull in some builtins not included elsewhere.
inherit (builtins) inherit (builtins)
pathExists readFile isBool isFunction pathExists readFile isBool
isInt add sub lessThan isInt add sub lessThan
seq deepSeq genericClosure; seq deepSeq genericClosure;
@ -99,4 +99,29 @@ rec {
*/ */
warn = msg: builtins.trace "WARNING: ${msg}"; warn = msg: builtins.trace "WARNING: ${msg}";
info = msg: builtins.trace "INFO: ${msg}"; info = msg: builtins.trace "INFO: ${msg}";
# | Add metadata about expected function arguments to a function.
# The metadata should match the format given by
# builtins.functionArgs, i.e. a set from expected argument to a bool
# representing whether that argument has a default or not.
# setFunctionArgs : (a → b) → Map String Bool → (a → b)
#
# This function is necessary because you can't dynamically create a
# function of the { a, b ? foo, ... }: format, but some facilities
# like callPackage expect to be able to query expected arguments.
setFunctionArgs = f: args:
{ # TODO: Should we add call-time "type" checking like built in?
__functor = self: f;
__functionArgs = args;
};
# | Extract the expected function arguments from a function.
# This works both with nix-native { a, b ? foo, ... }: style
# functions and functions with args set with 'setFunctionArgs'. It
# has the same return type and semantics as builtins.functionArgs.
# setFunctionArgs : (a → b) → Map String Bool.
functionArgs = f: f.__functionArgs or (builtins.functionArgs f);
isFunction = f: builtins.isFunction f ||
(f ? __functor && isFunction (f.__functor f));
} }

View File

@ -12,7 +12,7 @@ let
substFunction = x: substFunction = x:
if builtins.isAttrs x then lib.mapAttrs (name: substFunction) x if builtins.isAttrs x then lib.mapAttrs (name: substFunction) x
else if builtins.isList x then map substFunction x else if builtins.isList x then map substFunction x
else if builtins.isFunction x then "<function>" else if lib.isFunction x then "<function>"
else x; else x;
# Clean up declaration sites to not refer to the NixOS source tree. # Clean up declaration sites to not refer to the NixOS source tree.

View File

@ -88,6 +88,28 @@ following incompatible changes:</para>
<option>services.pgmanage</option>. <option>services.pgmanage</option>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Package attributes starting with a digit have been prefixed with an
underscore sign. This is to avoid quoting in the configuration and
other issues with command-line tools like <literal>nix-env</literal>.
The change affects the following packages:
<itemizedlist>
<listitem>
<para><literal>2048-in-terminal</literal><literal>_2048-in-terminal</literal></para>
</listitem>
<listitem>
<para><literal>90secondportraits</literal><literal>_90secondportraits</literal></para>
</listitem>
<listitem>
<para><literal>2bwm</literal><literal>_2bwm</literal></para>
</listitem>
<listitem>
<para><literal>389-ds-base</literal><literal>_389-ds-base</literal></para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<emphasis role="strong"> <emphasis role="strong">
@ -160,6 +182,20 @@ following incompatible changes:</para>
<literal>lib.mkOverride</literal> can be used. <literal>lib.mkOverride</literal> can be used.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The following changes apply if the <literal>stateVersion</literal> is changed to 18.03 or higher.
For <literal>stateVersion = "17.09"</literal> or lower the old behavior is preserved.
</para>
<itemizedlist>
<listitem>
<para>
<literal>matrix-synapse</literal> uses postgresql by default instead of sqlite.
Migration instructions can be found <link xlink:href="https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst#porting-from-sqlite"> here </link>.
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -3,7 +3,7 @@
let pkgs = import ../.. { inherit system config; }; in let pkgs = import ../.. { inherit system config; }; in
with pkgs.lib; with pkgs.lib;
with import ../lib/qemu-flags.nix; with import ../lib/qemu-flags.nix { inherit pkgs; };
rec { rec {

View File

@ -1,4 +1,5 @@
# QEMU flags shared between various Nix expressions. # QEMU flags shared between various Nix expressions.
{ pkgs }:
{ {
@ -7,4 +8,14 @@
"-net vde,vlan=${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}" "-net vde,vlan=${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
]; ];
qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
qemuBinary = qemuPkg: {
"i686-linux" = "${qemuPkg}/bin/qemu-kvm";
"x86_64-linux" = "${qemuPkg}/bin/qemu-kvm -cpu kvm64";
"armv7l-linux" = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
"aarch64-linux" = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
}.${pkgs.stdenv.system} or (throw "Unknown QEMU binary for '${pkgs.stdenv.system}'");
} }

View File

@ -85,7 +85,7 @@ rec {
testScript' = testScript' =
# Call the test script with the computed nodes. # Call the test script with the computed nodes.
if builtins.isFunction testScript if lib.isFunction testScript
then testScript { inherit nodes; } then testScript { inherit nodes; }
else testScript; else testScript;

View File

@ -302,6 +302,7 @@
kodi = 283; kodi = 283;
restya-board = 284; restya-board = 284;
mighttpd2 = 285; mighttpd2 = 285;
hass = 286;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -572,6 +573,7 @@
kodi = 283; kodi = 283;
restya-board = 284; restya-board = 284;
mighttpd2 = 285; mighttpd2 = 285;
hass = 286;
# When adding a gid, make sure it doesn't match an existing # When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal # uid. Users and groups with the same name should have equal

View File

@ -4,10 +4,10 @@ with lib;
let let
isConfig = x: isConfig = x:
builtins.isAttrs x || builtins.isFunction x; builtins.isAttrs x || lib.isFunction x;
optCall = f: x: optCall = f: x:
if builtins.isFunction f if lib.isFunction f
then f x then f x
else f; else f;
@ -38,7 +38,7 @@ let
overlayType = mkOptionType { overlayType = mkOptionType {
name = "nixpkgs-overlay"; name = "nixpkgs-overlay";
description = "nixpkgs overlay"; description = "nixpkgs overlay";
check = builtins.isFunction; check = lib.isFunction;
merge = lib.mergeOneOption; merge = lib.mergeOneOption;
}; };
@ -69,7 +69,6 @@ in
[ (self: super: { [ (self: super: {
openssh = super.openssh.override { openssh = super.openssh.override {
hpnSupport = true; hpnSupport = true;
withKerberos = true;
kerberos = self.libkrb5; kerberos = self.libkrb5;
}; };
}; };

View File

@ -84,6 +84,7 @@
./programs/info.nix ./programs/info.nix
./programs/java.nix ./programs/java.nix
./programs/kbdlight.nix ./programs/kbdlight.nix
./programs/less.nix
./programs/light.nix ./programs/light.nix
./programs/man.nix ./programs/man.nix
./programs/mosh.nix ./programs/mosh.nix
@ -314,6 +315,7 @@
./services/misc/gogs.nix ./services/misc/gogs.nix
./services/misc/gollum.nix ./services/misc/gollum.nix
./services/misc/gpsd.nix ./services/misc/gpsd.nix
./services/misc/home-assistant.nix
./services/misc/ihaskell.nix ./services/misc/ihaskell.nix
./services/misc/irkerd.nix ./services/misc/irkerd.nix
./services/misc/jackett.nix ./services/misc/jackett.nix
@ -424,6 +426,7 @@
./services/network-filesystems/yandex-disk.nix ./services/network-filesystems/yandex-disk.nix
./services/network-filesystems/xtreemfs.nix ./services/network-filesystems/xtreemfs.nix
./services/networking/amuled.nix ./services/networking/amuled.nix
./services/networking/aria2.nix
./services/networking/asterisk.nix ./services/networking/asterisk.nix
./services/networking/atftpd.nix ./services/networking/atftpd.nix
./services/networking/avahi-daemon.nix ./services/networking/avahi-daemon.nix

View File

@ -17,7 +17,7 @@ let
# you should use files). # you should use files).
moduleFiles = moduleFiles =
# FIXME: use typeOf (Nix 1.6.1). # FIXME: use typeOf (Nix 1.6.1).
filter (x: !isAttrs x && !builtins.isFunction x) modules; filter (x: !isAttrs x && !lib.isFunction x) modules;
# Partition module files because between NixOS and non-NixOS files. NixOS # Partition module files because between NixOS and non-NixOS files. NixOS
# files may change if the repository is updated. # files may change if the repository is updated.

View File

@ -0,0 +1,118 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.less;
configFile = ''
#command
${concatStringsSep "\n"
(mapAttrsToList (command: action: "${command} ${action}") cfg.commands)
}
${if cfg.clearDefaultCommands then "#stop" else ""}
#line-edit
${concatStringsSep "\n"
(mapAttrsToList (command: action: "${command} ${action}") cfg.lineEditingKeys)
}
#env
${concatStringsSep "\n"
(mapAttrsToList (variable: values: "${variable}=${values}") cfg.envVariables)
}
'';
lessKey = pkgs.runCommand "lesskey"
{ src = pkgs.writeText "lessconfig" configFile; }
"${pkgs.less}/bin/lesskey -o $out $src";
in
{
options = {
programs.less = {
enable = mkEnableOption "less";
commands = mkOption {
type = types.attrsOf types.str;
default = {};
example = {
"h" = "noaction 5\e(";
"l" = "noaction 5\e)";
};
description = "Defines new command keys.";
};
clearDefaultCommands = mkOption {
type = types.bool;
default = false;
description = ''
Clear all default commands.
You should remember to set the quit key.
Otherwise you will not be able to leave less without killing it.
'';
};
lineEditingKeys = mkOption {
type = types.attrsOf types.str;
default = {};
example = {
"\e" = "abort";
};
description = "Defines new line-editing keys.";
};
envVariables = mkOption {
type = types.attrsOf types.str;
default = {};
example = {
LESS = "--quit-if-one-screen";
};
description = "Defines environment variables.";
};
lessopen = mkOption {
type = types.nullOr types.str;
default = "|${pkgs.lesspipe}/bin/lesspipe.sh %s";
description = ''
Before less opens a file, it first gives your input preprocessor a chance to modify the way the contents of the file are displayed.
'';
};
lessclose = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
When less closes a file opened in such a way, it will call another program, called the input postprocessor, which may perform any desired clean-up action (such as deleting the replacement file created by LESSOPEN).
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.less ];
environment.variables = {
"LESSKEY_SYSTEM" = toString lessKey;
} // optionalAttrs (cfg.lessopen != null) {
"LESSOPEN" = cfg.lessopen;
} // optionalAttrs (cfg.lessclose != null) {
"LESSCLOSE" = cfg.lessclose;
};
warnings = optional (
cfg.clearDefaultCommands && (all (x: x != "quit") (attrValues cfg.commands))
) ''
config.programs.less.clearDefaultCommands clears all default commands of less but there is no alternative binding for exiting.
Consider adding a binding for 'quit'.
'';
};
meta.maintainers = with maintainers; [ johnazoidberg ];
}

View File

@ -26,8 +26,9 @@ let
# Ensure privacy for newly created home directories. # Ensure privacy for newly created home directories.
UMASK 077 UMASK 077
# Uncomment this to allow non-root users to change their account # Uncomment this and install chfn SUID to allow non-root
#information. This should be made configurable. # users to change their account GECOS information.
# This should be made configurable.
#CHFN_RESTRICT frwh #CHFN_RESTRICT frwh
''; '';
@ -103,13 +104,12 @@ in
security.wrappers = { security.wrappers = {
su.source = "${pkgs.shadow.su}/bin/su"; su.source = "${pkgs.shadow.su}/bin/su";
chfn.source = "${pkgs.shadow.out}/bin/chfn"; sg.source = "${pkgs.shadow.out}/bin/sg";
newgrp.source = "${pkgs.shadow.out}/bin/newgrp";
newuidmap.source = "${pkgs.shadow.out}/bin/newuidmap"; newuidmap.source = "${pkgs.shadow.out}/bin/newuidmap";
newgidmap.source = "${pkgs.shadow.out}/bin/newgidmap"; newgidmap.source = "${pkgs.shadow.out}/bin/newgidmap";
} // (if config.users.mutableUsers then { } // (if config.users.mutableUsers then {
passwd.source = "${pkgs.shadow.out}/bin/passwd"; passwd.source = "${pkgs.shadow.out}/bin/passwd";
sg.source = "${pkgs.shadow.out}/bin/sg";
newgrp.source = "${pkgs.shadow.out}/bin/newgrp";
} else {}); } else {});
}; };
} }

View File

@ -0,0 +1,116 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.home-assistant;
configFile = pkgs.writeText "configuration.yaml" (builtins.toJSON cfg.config);
availableComponents = pkgs.home-assistant.availableComponents;
# Returns whether component is used in config
useComponent = component: hasAttrByPath (splitString "." component) cfg.config;
# List of components used in config
extraComponents = filter useComponent availableComponents;
package = if cfg.autoExtraComponents
then (cfg.package.override { inherit extraComponents; })
else cfg.package;
in {
meta.maintainers = with maintainers; [ dotlambda ];
options.services.home-assistant = {
enable = mkEnableOption "Home Assistant";
configDir = mkOption {
default = "/var/lib/hass";
type = types.path;
description = "The config directory, where your <filename>configuration.yaml</filename> is located.";
};
config = mkOption {
default = null;
type = with types; nullOr attrs;
example = literalExample ''
{
homeassistant = {
name = "Home";
time_zone = "UTC";
};
frontend = { };
http = { };
feedreader.urls = [ "https://nixos.org/blogs.xml" ];
}
'';
description = ''
Your <filename>configuration.yaml</filename> as a Nix attribute set.
Beware that setting this option will delete your previous <filename>configuration.yaml</filename>.
'';
};
package = mkOption {
default = pkgs.home-assistant;
defaultText = "pkgs.home-assistant";
type = types.package;
example = literalExample ''
pkgs.home-assistant.override {
extraPackages = ps: with ps; [ colorlog ];
}
'';
description = ''
Home Assistant package to use.
Override <literal>extraPackages</literal> in order to add additional dependencies.
'';
};
autoExtraComponents = mkOption {
default = true;
type = types.bool;
description = ''
If set to <literal>true</literal>, the components used in <literal>config</literal>
are set as the specified package's <literal>extraComponents</literal>.
This in turn adds all packaged dependencies to the derivation.
You might still see import errors in your log.
In this case, you will need to package the necessary dependencies yourself
or ask for someone else to package them.
If a dependency is packaged but not automatically added to this list,
you might need to specify it in <literal>extraPackages</literal>.
'';
};
};
config = mkIf cfg.enable {
systemd.services.home-assistant = {
description = "Home Assistant";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = lib.optionalString (cfg.config != null) ''
rm -f ${cfg.configDir}/configuration.yaml
ln -s ${configFile} ${cfg.configDir}/configuration.yaml
'';
serviceConfig = {
ExecStart = ''
${package}/bin/hass --config "${cfg.configDir}"
'';
User = "hass";
Group = "hass";
Restart = "on-failure";
ProtectSystem = "strict";
ReadWritePaths = "${cfg.configDir}";
PrivateTmp = true;
};
};
users.extraUsers.hass = {
home = cfg.configDir;
createHome = true;
group = "hass";
uid = config.ids.uids.hass;
};
users.extraGroups.hass.gid = config.ids.gids.hass;
};
}

View File

@ -4,6 +4,8 @@ with lib;
let let
cfg = config.services.matrix-synapse; cfg = config.services.matrix-synapse;
pg = config.services.postgresql;
usePostgresql = cfg.database_type == "psycopg2";
logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig; logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}''; mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}'';
mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}''; mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}'';
@ -38,7 +40,7 @@ database: {
name: "${cfg.database_type}", name: "${cfg.database_type}",
args: { args: {
${concatStringsSep ",\n " ( ${concatStringsSep ",\n " (
mapAttrsToList (n: v: "\"${n}\": ${v}") cfg.database_args mapAttrsToList (n: v: "\"${n}\": ${builtins.toJSON v}") cfg.database_args
)} )}
} }
} }
@ -155,7 +157,7 @@ in {
tls_certificate_path = mkOption { tls_certificate_path = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
example = "/var/lib/matrix-synapse/homeserver.tls.crt"; example = "${cfg.dataDir}/homeserver.tls.crt";
description = '' description = ''
PEM encoded X509 certificate for TLS. PEM encoded X509 certificate for TLS.
You can replace the self-signed certificate that synapse You can replace the self-signed certificate that synapse
@ -167,7 +169,7 @@ in {
tls_private_key_path = mkOption { tls_private_key_path = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
example = "/var/lib/matrix-synapse/homeserver.tls.key"; example = "${cfg.dataDir}/homeserver.tls.key";
description = '' description = ''
PEM encoded private key for TLS. Specify null if synapse is not PEM encoded private key for TLS. Specify null if synapse is not
speaking TLS directly. speaking TLS directly.
@ -176,7 +178,7 @@ in {
tls_dh_params_path = mkOption { tls_dh_params_path = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
example = "/var/lib/matrix-synapse/homeserver.tls.dh"; example = "${cfg.dataDir}/homeserver.tls.dh";
description = '' description = ''
PEM dh parameters for ephemeral keys PEM dh parameters for ephemeral keys
''; '';
@ -184,6 +186,7 @@ in {
server_name = mkOption { server_name = mkOption {
type = types.str; type = types.str;
example = "example.com"; example = "example.com";
default = config.networking.hostName;
description = '' description = ''
The domain name of the server, with optional explicit port. The domain name of the server, with optional explicit port.
This is used by remote servers to connect to this server, This is used by remote servers to connect to this server,
@ -339,16 +342,39 @@ in {
}; };
database_type = mkOption { database_type = mkOption {
type = types.enum [ "sqlite3" "psycopg2" ]; type = types.enum [ "sqlite3" "psycopg2" ];
default = "sqlite3"; default = if versionAtLeast config.system.stateVersion "18.03"
then "psycopg2"
else "sqlite3";
description = '' description = ''
The database engine name. Can be sqlite or psycopg2. The database engine name. Can be sqlite or psycopg2.
''; '';
}; };
create_local_database = mkOption {
type = types.bool;
default = true;
description = ''
Whether to create a local database automatically.
'';
};
database_name = mkOption {
type = types.str;
default = "matrix-synapse";
description = "Database name.";
};
database_user = mkOption {
type = types.str;
default = "matrix-synapse";
description = "Database user name.";
};
database_args = mkOption { database_args = mkOption {
type = types.attrs; type = types.attrs;
default = { default = {
database = "${cfg.dataDir}/homeserver.db"; sqlite3 = { database = "${cfg.dataDir}/homeserver.db"; };
psycopg2 = {
user = cfg.database_user;
database = cfg.database_name;
}; };
}."${cfg.database_type}";
description = '' description = ''
Arguments to pass to the engine. Arguments to pass to the engine.
''; '';
@ -623,15 +649,36 @@ in {
gid = config.ids.gids.matrix-synapse; gid = config.ids.gids.matrix-synapse;
} ]; } ];
services.postgresql.enable = mkIf usePostgresql (mkDefault true);
systemd.services.matrix-synapse = { systemd.services.matrix-synapse = {
description = "Synapse Matrix homeserver"; description = "Synapse Matrix homeserver";
after = [ "network.target" ]; after = [ "network.target" "postgresql.service" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''
${cfg.package}/bin/homeserver \ ${cfg.package}/bin/homeserver \
--config-path ${configFile} \ --config-path ${configFile} \
--keys-directory ${cfg.dataDir} \ --keys-directory ${cfg.dataDir} \
--generate-keys --generate-keys
'' + optionalString (usePostgresql && cfg.create_local_database) ''
if ! test -e "${cfg.dataDir}/db-created"; then
${pkgs.sudo}/bin/sudo -u ${pg.superUser} \
${pg.package}/bin/createuser \
--login \
--no-createdb \
--no-createrole \
--encrypted \
${cfg.database_user}
${pkgs.sudo}/bin/sudo -u ${pg.superUser} \
${pg.package}/bin/createdb \
--owner=${cfg.database_user} \
--encoding=UTF8 \
--lc-collate=C \
--lc-ctype=C \
--template=template0 \
${cfg.database_name}
touch "${cfg.dataDir}/db-created"
fi
''; '';
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";

View File

@ -8,7 +8,7 @@ let
nix = cfg.package.out; nix = cfg.package.out;
isNix112 = versionAtLeast (getVersion nix) "1.12pre"; isNix20 = versionAtLeast (getVersion nix) "2.0pre";
makeNixBuildUser = nr: makeNixBuildUser = nr:
{ name = "nixbld${toString nr}"; { name = "nixbld${toString nr}";
@ -26,32 +26,40 @@ let
nixConf = nixConf =
let let
# If we're using sandbox for builds, then provide /bin/sh in # In Nix < 2.0, If we're using sandbox for builds, then provide
# the sandbox as a bind-mount to bash. This means we also need to # /bin/sh in the sandbox as a bind-mount to bash. This means we
# include the entire closure of bash. # also need to include the entire closure of bash. Nix >= 2.0
# provides a /bin/sh by default.
sh = pkgs.stdenv.shell; sh = pkgs.stdenv.shell;
binshDeps = pkgs.writeReferencesToFile sh; binshDeps = pkgs.writeReferencesToFile sh;
in in
pkgs.runCommand "nix.conf" {extraOptions = cfg.extraOptions; } '' pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; inherit binshDeps; } ''
extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done) ${optionalString (!isNix20) ''
extraPaths=$(for i in $(cat binshDeps); do if test -d $i; then echo $i; fi; done)
''}
cat > $out <<END cat > $out <<END
# WARNING: this file is generated from the nix.* options in # WARNING: this file is generated from the nix.* options in
# your NixOS configuration, typically # your NixOS configuration, typically
# /etc/nixos/configuration.nix. Do not edit it! # /etc/nixos/configuration.nix. Do not edit it!
build-users-group = nixbld build-users-group = nixbld
build-max-jobs = ${toString (cfg.maxJobs)} ${if isNix20 then "max-jobs" else "build-max-jobs"} = ${toString (cfg.maxJobs)}
build-cores = ${toString (cfg.buildCores)} ${if isNix20 then "cores" else "build-cores"} = ${toString (cfg.buildCores)}
build-use-sandbox = ${if (builtins.isBool cfg.useSandbox) then boolToString cfg.useSandbox else cfg.useSandbox} ${if isNix20 then "sandbox" else "build-use-sandbox"} = ${if (builtins.isBool cfg.useSandbox) then boolToString cfg.useSandbox else cfg.useSandbox}
build-sandbox-paths = ${toString cfg.sandboxPaths} /bin/sh=${sh} $(echo $extraPaths) ${if isNix20 then "extra-sandbox-paths" else "build-sandbox-paths"} = ${toString cfg.sandboxPaths} ${optionalString (!isNix20) "/bin/sh=${sh} $(echo $extraPaths)"}
binary-caches = ${toString cfg.binaryCaches} ${if isNix20 then "substituters" else "binary-caches"} = ${toString cfg.binaryCaches}
trusted-binary-caches = ${toString cfg.trustedBinaryCaches} ${if isNix20 then "trusted-substituters" else "trusted-binary-caches"} = ${toString cfg.trustedBinaryCaches}
binary-cache-public-keys = ${toString cfg.binaryCachePublicKeys} ${if isNix20 then "trusted-public-keys" else "binary-cache-public-keys"} = ${toString cfg.binaryCachePublicKeys}
auto-optimise-store = ${boolToString cfg.autoOptimiseStore} auto-optimise-store = ${boolToString cfg.autoOptimiseStore}
${optionalString cfg.requireSignedBinaryCaches '' ${if isNix20 then ''
signed-binary-caches = * require-sigs = ${if cfg.requireSignedBinaryCaches then "true" else "false"}
'' else ''
signed-binary-caches = ${if cfg.requireSignedBinaryCaches then "*" else ""}
''} ''}
trusted-users = ${toString cfg.trustedUsers} trusted-users = ${toString cfg.trustedUsers}
allowed-users = ${toString cfg.allowedUsers} allowed-users = ${toString cfg.allowedUsers}
${optionalString (isNix20 && !cfg.distributedBuilds) ''
builders =
''}
$extraOptions $extraOptions
END END
''; '';
@ -377,8 +385,9 @@ in
systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ]; systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
systemd.services.nix-daemon = systemd.services.nix-daemon =
{ path = [ nix pkgs.openssl.bin pkgs.utillinux config.programs.ssh.package ] { path = [ nix pkgs.utillinux ]
++ optionals cfg.distributedBuilds [ pkgs.gzip ]; ++ optionals cfg.distributedBuilds [ config.programs.ssh.package pkgs.gzip ]
++ optionals (!isNix20) [ pkgs.openssl.bin ];
environment = cfg.envVars environment = cfg.envVars
// { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; } // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; }
@ -396,10 +405,9 @@ in
}; };
nix.envVars = nix.envVars =
{ NIX_CONF_DIR = "/etc/nix"; optionalAttrs (!isNix20) {
} NIX_CONF_DIR = "/etc/nix";
// optionalAttrs (!isNix112) {
# Enable the copy-from-other-stores substituter, which allows # Enable the copy-from-other-stores substituter, which allows
# builds to be sped up by copying build results from remote # builds to be sped up by copying build results from remote
# Nix stores. To do this, mount the remote file system on a # Nix stores. To do this, mount the remote file system on a
@ -407,12 +415,8 @@ in
NIX_OTHER_STORES = "/run/nix/remote-stores/*/nix"; NIX_OTHER_STORES = "/run/nix/remote-stores/*/nix";
} }
// optionalAttrs cfg.distributedBuilds { // optionalAttrs (cfg.distributedBuilds && !isNix20) {
NIX_BUILD_HOOK = NIX_BUILD_HOOK = "${nix}/libexec/nix/build-remote.pl";
if isNix112 then
"${nix}/libexec/nix/build-remote"
else
"${nix}/libexec/nix/build-remote.pl";
}; };
# Set up the environment variables for running Nix. # Set up the environment variables for running Nix.
@ -420,7 +424,7 @@ in
{ NIX_PATH = concatStringsSep ":" cfg.nixPath; { NIX_PATH = concatStringsSep ":" cfg.nixPath;
}; };
environment.extraInit = environment.extraInit = optionalString (!isNix20)
'' ''
# Set up secure multi-user builds: non-root users build through the # Set up secure multi-user builds: non-root users build through the
# Nix daemon. # Nix daemon.

View File

@ -43,7 +43,7 @@ in
type = with types; listOf str; type = with types; listOf str;
default = [ "::1" "127.0.0.1" ]; default = [ "::1" "127.0.0.1" ];
description = '' description = ''
What addresses the server should listen on. What addresses the server should listen on. (UDP+TCP 53)
''; '';
}; };
# TODO: perhaps options for more common stuff like cache size or forwarding # TODO: perhaps options for more common stuff like cache size or forwarding
@ -99,9 +99,9 @@ in
Restart = "on-failure"; Restart = "on-failure";
}; };
# Trust anchor goes from dns-root-data by default.
script = '' script = ''
exec '${package}/bin/kresd' --config '${configFile}' \ exec '${package}/bin/kresd' --config '${configFile}' --forks=1
-k '${pkgs.dns-root-data}/root.key'
''; '';
requires = [ "kresd.socket" ]; requires = [ "kresd.socket" ];

View File

@ -47,6 +47,18 @@ in
${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1" ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
''} ''}
if [ -f "$HOME/.config/kdeglobals" ]
then
# Remove extraneous font style names.
# See also: https://phabricator.kde.org/D9070
${getBin pkgs.gnused}/bin/sed -i "$HOME/.config/kdeglobals" \
-e '/^fixed=/ s/,Regular$//' \
-e '/^font=/ s/,Regular$//' \
-e '/^menuFont=/ s/,Regular$//' \
-e '/^smallestReadableFont=/ s/,Regular$//' \
-e '/^toolBarFont=/ s/,Regular$//'
fi
exec "${getBin plasma5.plasma-workspace}/bin/startkde" exec "${getBin plasma5.plasma-workspace}/bin/startkde"
''; '';
}; };

View File

@ -25,12 +25,12 @@ in
{ name = "2bwm"; { name = "2bwm";
start = start =
'' ''
${pkgs."2bwm"}/bin/2bwm & ${pkgs._2bwm}/bin/2bwm &
waitPID=$! waitPID=$!
''; '';
}; };
environment.systemPackages = [ pkgs."2bwm" ]; environment.systemPackages = [ pkgs._2bwm ];
}; };

View File

@ -206,7 +206,8 @@ in
"xhci_hcd" "xhci_hcd"
"xhci_pci" "xhci_pci"
"usbhid" "usbhid"
"hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" "hid_logitech_hidpp" "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat"
"hid_logitech_hidpp" "hid_logitech_dj"
] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ ] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
# Misc. x86 keyboard stuff. # Misc. x86 keyboard stuff.

View File

@ -230,9 +230,7 @@ let
RemainAfterExit = true; RemainAfterExit = true;
}; };
script = '' script = ''
ip tuntap add dev "${i.name}" \ ip tuntap add dev "${i.name}" mode "${i.virtualType}" user "${i.virtualOwner}"
${optionalString (i.virtualType != null) "mode ${i.virtualType}"} \
user "${i.virtualOwner}"
''; '';
postStop = '' postStop = ''
ip link del ${i.name} || true ip link del ${i.name} || true

View File

@ -74,17 +74,13 @@ in
networks."99-main" = genericNetwork mkDefault; networks."99-main" = genericNetwork mkDefault;
} }
(mkMerge (flip map interfaces (i: { (mkMerge (flip map interfaces (i: {
netdevs = mkIf i.virtual ( netdevs = mkIf i.virtual ({
let
devType = if i.virtualType != null then i.virtualType
else (if hasPrefix "tun" i.name then "tun" else "tap");
in {
"40-${i.name}" = { "40-${i.name}" = {
netdevConfig = { netdevConfig = {
Name = i.name; Name = i.name;
Kind = devType; Kind = i.virtualType;
}; };
"${devType}Config" = optionalAttrs (i.virtualOwner != null) { "${i.virtualType}Config" = optionalAttrs (i.virtualOwner != null) {
User = i.virtualOwner; User = i.virtualOwner;
}; };
}; };

View File

@ -273,11 +273,13 @@ let
}; };
virtualType = mkOption { virtualType = mkOption {
default = null; default = if hasPrefix "tun" name then "tun" else "tap";
type = with types; nullOr (enum [ "tun" "tap" ]); defaultText = literalExample ''if hasPrefix "tun" name then "tun" else "tap"'';
type = with types; enum [ "tun" "tap" ];
description = '' description = ''
The explicit type of interface to create. Accepts tun or tap strings. The type of interface to create.
Also accepts null to implicitly detect the type of device. The default is TUN for an interface name starting
with "tun", otherwise TAP.
''; '';
}; };

View File

@ -4,13 +4,10 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
with import ../../lib/qemu-flags.nix { inherit pkgs; };
let let
kernel = config.boot.kernelPackages.kernel; kernel = config.boot.kernelPackages.kernel;
# FIXME: figure out a common place for this instead of copy pasting
serialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
in in
{ {
@ -28,8 +25,8 @@ in
systemd.services.backdoor = systemd.services.backdoor =
{ wantedBy = [ "multi-user.target" ]; { wantedBy = [ "multi-user.target" ];
requires = [ "dev-hvc0.device" "dev-${serialDevice}.device" ]; requires = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
after = [ "dev-hvc0.device" "dev-${serialDevice}.device" ]; after = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
script = script =
'' ''
export USER=root export USER=root
@ -46,7 +43,7 @@ in
cd /tmp cd /tmp
exec < /dev/hvc0 > /dev/hvc0 exec < /dev/hvc0 > /dev/hvc0
while ! exec 2> /dev/${serialDevice}; do sleep 0.1; done while ! exec 2> /dev/${qemuSerialDevice}; do sleep 0.1; done
echo "connecting to host..." >&2 echo "connecting to host..." >&2
stty -F /dev/hvc0 raw -echo # prevent nl -> cr/nl conversion stty -F /dev/hvc0 raw -echo # prevent nl -> cr/nl conversion
echo echo
@ -55,10 +52,10 @@ in
serviceConfig.KillSignal = "SIGHUP"; serviceConfig.KillSignal = "SIGHUP";
}; };
# Prevent agetty from being instantiated on ${serialDevice}, since it # Prevent agetty from being instantiated on the serial device, since it
# interferes with the backdoor (writes to ${serialDevice} will randomly fail # interferes with the backdoor (writes to it will randomly fail
# with EIO). Likewise for hvc0. # with EIO). Likewise for hvc0.
systemd.services."serial-getty@${serialDevice}".enable = false; systemd.services."serial-getty@${qemuSerialDevice}".enable = false;
systemd.services."serial-getty@hvc0".enable = false; systemd.services."serial-getty@hvc0".enable = false;
boot.initrd.preDeviceCommands = boot.initrd.preDeviceCommands =
@ -94,7 +91,7 @@ in
# Panic if an error occurs in stage 1 (rather than waiting for # Panic if an error occurs in stage 1 (rather than waiting for
# user intervention). # user intervention).
boot.kernelParams = boot.kernelParams =
[ "console=${serialDevice}" "panic=1" "boot.panic_on_fail" ]; [ "console=${qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
# `xwininfo' is used by the test driver to query open windows. # `xwininfo' is used by the test driver to query open windows.
environment.systemPackages = [ pkgs.xorg.xwininfo ]; environment.systemPackages = [ pkgs.xorg.xwininfo ];

View File

@ -10,21 +10,11 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
with import ../../lib/qemu-flags.nix { inherit pkgs; };
let let
qemu = config.system.build.qemu or pkgs.qemu_test; qemu = config.system.build.qemu or pkgs.qemu_test;
qemuKvm = {
"i686-linux" = "${qemu}/bin/qemu-kvm";
"x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64";
"armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
"aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
}.${pkgs.stdenv.system};
# FIXME: figure out a common place for this instead of copy pasting
serialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
vmName = vmName =
if config.networking.hostName == "" if config.networking.hostName == ""
@ -34,7 +24,7 @@ let
cfg = config.virtualisation; cfg = config.virtualisation;
qemuGraphics = if cfg.graphics then "" else "-nographic"; qemuGraphics = if cfg.graphics then "" else "-nographic";
kernelConsole = if cfg.graphics then "" else "console=${serialDevice}"; kernelConsole = if cfg.graphics then "" else "console=${qemuSerialDevice}";
ttys = [ "tty1" "tty2" "tty3" "tty4" "tty5" "tty6" ]; ttys = [ "tty1" "tty2" "tty3" "tty4" "tty5" "tty6" ];
# Shell script to start the VM. # Shell script to start the VM.
@ -83,7 +73,7 @@ let
'')} '')}
# Start QEMU. # Start QEMU.
exec ${qemuKvm} \ exec ${qemuBinary qemu} \
-name ${vmName} \ -name ${vmName} \
-m ${toString config.virtualisation.memorySize} \ -m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \ -smp ${toString config.virtualisation.cores} \

View File

@ -227,6 +227,7 @@ in rec {
tests.blivet = callTest tests/blivet.nix {}; tests.blivet = callTest tests/blivet.nix {};
tests.boot = callSubTests tests/boot.nix {}; tests.boot = callSubTests tests/boot.nix {};
tests.boot-stage1 = callTest tests/boot-stage1.nix {}; tests.boot-stage1 = callTest tests/boot-stage1.nix {};
tests.borgbackup = callTest tests/borgbackup.nix {};
tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {}; tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable; tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
tests.cjdns = callTest tests/cjdns.nix {}; tests.cjdns = callTest tests/cjdns.nix {};
@ -266,6 +267,7 @@ in rec {
tests.graphite = callTest tests/graphite.nix {}; tests.graphite = callTest tests/graphite.nix {};
tests.hardened = callTest tests/hardened.nix { }; tests.hardened = callTest tests/hardened.nix { };
tests.hibernate = callTest tests/hibernate.nix {}; tests.hibernate = callTest tests/hibernate.nix {};
tests.home-assistant = callTest tests/home-assistant.nix { };
tests.hound = callTest tests/hound.nix {}; tests.hound = callTest tests/hound.nix {};
tests.i3wm = callTest tests/i3wm.nix {}; tests.i3wm = callTest tests/i3wm.nix {};
tests.initrd-network-ssh = callTest tests/initrd-network-ssh {}; tests.initrd-network-ssh = callTest tests/initrd-network-ssh {};
@ -290,6 +292,7 @@ in rec {
tests.login = callTest tests/login.nix {}; tests.login = callTest tests/login.nix {};
#tests.logstash = callTest tests/logstash.nix {}; #tests.logstash = callTest tests/logstash.nix {};
tests.mathics = callTest tests/mathics.nix {}; tests.mathics = callTest tests/mathics.nix {};
tests.matrix-synapse = callTest tests/matrix-synapse.nix {};
tests.mesos = callTest tests/mesos.nix {}; tests.mesos = callTest tests/mesos.nix {};
tests.misc = callTest tests/misc.nix {}; tests.misc = callTest tests/misc.nix {};
tests.mongodb = callTest tests/mongodb.nix {}; tests.mongodb = callTest tests/mongodb.nix {};

View File

@ -1,7 +1,6 @@
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
with import ../lib/qemu-flags.nix;
with pkgs.lib; with pkgs.lib;
let let

View File

@ -0,0 +1,21 @@
import ./make-test.nix ({ pkgs, ...}: {
name = "borgbackup";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mic92 ];
};
nodes = {
machine = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.borgbackup ];
};
};
testScript = ''
my $borg = "BORG_PASSPHRASE=supersecret borg";
$machine->succeed("$borg init --encryption=repokey /tmp/backup");
$machine->succeed("mkdir /tmp/data/ && echo 'data' >/tmp/data/file");
$machine->succeed("$borg create --stats /tmp/backup::test /tmp/data");
$machine->succeed("$borg extract /tmp/backup::test");
$machine->succeed('c=$(cat data/file) && echo "c = $c" >&2 && [[ "$c" == "data" ]]');
'';
})

View File

@ -1,7 +1,6 @@
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
with import ../lib/qemu-flags.nix;
with pkgs.lib; with pkgs.lib;
let let

View File

@ -1,7 +1,6 @@
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
with import ../lib/qemu-flags.nix;
with pkgs.lib; with pkgs.lib;
let let

View File

@ -0,0 +1,46 @@
import ./make-test.nix ({ pkgs, ... }:
let
configDir = "/var/lib/foobar";
in {
name = "home-assistant";
nodes = {
hass =
{ config, pkgs, ... }:
{
services.home-assistant = {
inherit configDir;
enable = true;
config = {
homeassistant = {
name = "Home";
time_zone = "UTC";
latitude = "0.0";
longitude = "0.0";
elevation = 0;
};
frontend = { };
http = { };
};
};
};
};
testScript = ''
startAll;
$hass->waitForUnit("home-assistant.service");
# Since config is specified using a Nix attribute set,
# configuration.yaml is a link to the Nix store
$hass->succeed("test -L ${configDir}/configuration.yaml");
# Check that Home Assistant's web interface and API can be reached
$hass->waitForOpenPort(8123);
$hass->succeed("curl --fail http://localhost:8123/states");
$hass->succeed("curl --fail http://localhost:8123/api/ | grep 'API running'");
$hass->fail("cat ${configDir}/home-assistant.log | grep -qF ERROR");
'';
})

View File

@ -1,7 +1,6 @@
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
with import ../lib/qemu-flags.nix;
with pkgs.lib; with pkgs.lib;
let let

View File

@ -1,7 +1,6 @@
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
with import ../../lib/testing.nix { inherit system; }; with import ../../lib/testing.nix { inherit system; };
with import ../../lib/qemu-flags.nix;
with pkgs.lib; with pkgs.lib;
let let

View File

@ -2,4 +2,4 @@ f: { system ? builtins.currentSystem, ... } @ args:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
makeTest (if builtins.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f) makeTest (if pkgs.lib.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f)

View File

@ -0,0 +1,30 @@
import ./make-test.nix ({ pkgs, ... } : {
name = "matrix-synapse";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ corngood ];
};
nodes = {
server_postgres = args: {
services.matrix-synapse.enable = true;
services.matrix-synapse.database_type = "psycopg2";
};
server_sqlite = args: {
services.matrix-synapse.enable = true;
services.matrix-synapse.database_type = "sqlite3";
};
};
testScript = ''
startAll;
$server_postgres->waitForUnit("matrix-synapse.service");
$server_postgres->waitUntilSucceeds("curl -Lk https://localhost:8448/");
$server_postgres->requireActiveUnit("postgresql.service");
$server_sqlite->waitForUnit("matrix-synapse.service");
$server_sqlite->waitUntilSucceeds("curl -Lk https://localhost:8448/");
$server_sqlite->mustSucceed("[ -e /var/lib/matrix-synapse/homeserver.db ]");
'';
})

View File

@ -433,6 +433,49 @@ let
$client2->succeed("ip addr show dev vlan >&2"); $client2->succeed("ip addr show dev vlan >&2");
''; '';
}; };
virtual = {
name = "Virtual";
machine = {
networking.interfaces."tap0" = {
ip4 = [ { address = "192.168.1.1"; prefixLength = 24; } ];
ip6 = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
virtual = true;
};
networking.interfaces."tun0" = {
ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ];
ip6 = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
virtual = true;
};
};
testScript = ''
my $targetList = <<'END';
tap0: tap UNKNOWN_FLAGS:800 user 0
tun0: tun UNKNOWN_FLAGS:800 user 0
END
# Wait for networking to come up
$machine->start;
$machine->waitForUnit("network.target");
# Test interfaces set up
my $list = $machine->succeed("ip tuntap list | sort");
"$list" eq "$targetList" or die(
"The list of virtual interfaces does not match the expected one:\n",
"Result:\n", "$list\n",
"Expected:\n", "$targetList\n"
);
# Test interfaces clean up
$machine->succeed("systemctl stop network-addresses-tap0");
$machine->succeed("systemctl stop network-addresses-tun0");
my $residue = $machine->succeed("ip tuntap list");
$residue eq "" or die(
"Some virtual interface has not been properly cleaned:\n",
"$residue\n"
);
'';
};
}; };
in mapAttrs (const (attrs: makeTest (attrs // { in mapAttrs (const (attrs: makeTest (attrs // {

View File

@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
buildInputs = [ glib ncurses mpd_clientlib ]; buildInputs = [ glib ncurses mpd_clientlib ];
nativeBuildInputs = [ meson ninja pkgconfig gettext ]; nativeBuildInputs = [ meson ninja pkgconfig gettext ];
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)"; description = "Curses-based interface for MPD (music player daemon)";
homepage = https://www.musicpd.org/clients/ncmpc/; homepage = https://www.musicpd.org/clients/ncmpc/;

View File

@ -1,14 +1,16 @@
{ stdenv, fetchurl }: { stdenv, fetchurl, libmad }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "normalize-${version}"; name = "normalize-${version}";
version = "0.7.7"; version = "0.7.7";
src = fetchurl { src = fetchurl {
url = "mirror://savannah/normalize/normalize-0.7.7.tar.gz"; url = "mirror://savannah/normalize/${name}.tar.gz";
sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0"; sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0";
}; };
buildInputs = [ libmad ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://normalize.nongnu.org/; homepage = http://normalize.nongnu.org/;
description = "Audio file normalizer"; description = "Audio file normalizer";

View File

@ -29,11 +29,11 @@
# handle that. # handle that.
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qmmp-1.1.10"; name = "qmmp-1.2.0";
src = fetchurl { src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2"; url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
sha256 = "16hb3s48filq0q18m7x9vmhpirk4fh0aqj8kwbapv8mkcnzq2mqy"; sha256 = "17kci7srgbkk62dgxlmg3lv2y7z04jsinpgx6jmxjpnpblpcj840";
}; };
buildInputs = buildInputs =

View File

@ -27,9 +27,9 @@ in rec {
preview = mkStudio { preview = mkStudio {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.1.0.8"; # "Android Studio 3.1 Canary 9" version = "3.1.0.9"; # "Android Studio 3.1 Beta 1"
build = "173.4559767"; build = "173.4567466";
sha256Hash = "0wy3bqd4wvvcwlqcv06mwlqgc119pjpc102ix3yacqvki9qyi1r0"; sha256Hash = "01c6a46pk5zbhwk2w038nm68fkx86nafiw1v2i5rdr93mxvx9cag";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";

View File

@ -95,10 +95,10 @@
ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }: ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "ahungry-theme"; pname = "ahungry-theme";
version = "1.8.0"; version = "1.10.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ahungry-theme-1.8.0.tar"; url = "https://elpa.gnu.org/packages/ahungry-theme-1.10.0.tar";
sha256 = "14dhnrlbjzrxk5ligf0z2im5bgnxpjqqzqcrmqg5355xrgpbpb7v"; sha256 = "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -765,15 +765,15 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }: el-search = callPackage ({ cl-print, elpaBuild, emacs, fetchurl, lib, stream }:
elpaBuild { elpaBuild {
pname = "el-search"; pname = "el-search";
version = "1.5.1"; version = "1.5.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/el-search-1.5.1.tar"; url = "https://elpa.gnu.org/packages/el-search-1.5.3.tar";
sha256 = "0bbq59d8x4ncrmpfq54w6rwpp604f1x834b81l7wflwxv7ni5msx"; sha256 = "095gpanpf88j65cbf4r6c787qxi07kqpvdsh0dsdpg9m3ivmxbra";
}; };
packageRequires = [ emacs stream ]; packageRequires = [ cl-print emacs stream ];
meta = { meta = {
homepage = "https://elpa.gnu.org/packages/el-search.html"; homepage = "https://elpa.gnu.org/packages/el-search.html";
license = lib.licenses.free; license = lib.licenses.free;
@ -1386,10 +1386,10 @@
mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "mines"; pname = "mines";
version = "1.5"; version = "1.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/mines-1.5.tar"; url = "https://elpa.gnu.org/packages/mines-1.6.tar";
sha256 = "1wpkn47iza78hzj396z5c05hsimnhhhmr1cq598azd6h8c1zca7g"; sha256 = "1199s1v4my0qpvc5aaxzbqayjn59vilxbqnywvyhvm7hz088aps2";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -1637,10 +1637,10 @@
}) {}; }) {};
paced = callPackage ({ async, elpaBuild, emacs, fetchurl, lib }: elpaBuild { paced = callPackage ({ async, elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "paced"; pname = "paced";
version = "1.0"; version = "1.0.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/paced-1.0.tar"; url = "https://elpa.gnu.org/packages/paced-1.0.1.tar";
sha256 = "0ld7cnlk6pn41hx2yfga5w7vfgg4ql6k25ffnf400nsn7y6wcapd"; sha256 = "1y2sl3iqz2vjgkbc859sm3h9jhnrgla9ynazy9d5rql0nsb6sn8p";
}; };
packageRequires = [ async emacs ]; packageRequires = [ async emacs ];
meta = { meta = {
@ -1754,6 +1754,19 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
rbit = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "rbit";
version = "0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/rbit-0.1.el";
sha256 = "0h0f9jx4xmkbyxk39wibrvnj65b1ylkz4sk4np7qcavfjs6dz3lm";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/rbit.html";
license = lib.licenses.free;
};
}) {};
rcirc-color = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { rcirc-color = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "rcirc-color"; pname = "rcirc-color";
version = "0.3"; version = "0.3";

File diff suppressed because it is too large Load Diff

View File

@ -131,9 +131,6 @@ self:
# upstream issue: mismatched filename # upstream issue: mismatched filename
link-hint = markBroken super.link-hint; link-hint = markBroken super.link-hint;
# part of a larger package
llvm-mode = dontConfigure super.llvm-mode;
# upstream issue: missing file header # upstream issue: missing file header
maxframe = markBroken super.maxframe; maxframe = markBroken super.maxframe;

View File

@ -548,12 +548,12 @@
ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild { melpaBuild {
pname = "ac-php"; pname = "ac-php";
version = "2.0.1"; version = "2.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "519b5cd886f484693fd69b226e307d56137b321b"; rev = "b9f455d863d3e92fcf32eaa722447c6d62ee1297";
sha256 = "1pig5kang3yvzzahgn8rfpy3gvpfz7myvf7ic0yc6rivvbl03k18"; sha256 = "1mwx61yxsxzd9d6jas61rsc68vc7mrlzkxxyyzcq21qvikadigrk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php"; url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php";
@ -569,12 +569,12 @@
ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }: ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }:
melpaBuild { melpaBuild {
pname = "ac-php-core"; pname = "ac-php-core";
version = "2.0.1"; version = "2.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "519b5cd886f484693fd69b226e307d56137b321b"; rev = "b9f455d863d3e92fcf32eaa722447c6d62ee1297";
sha256 = "1pig5kang3yvzzahgn8rfpy3gvpfz7myvf7ic0yc6rivvbl03k18"; sha256 = "1mwx61yxsxzd9d6jas61rsc68vc7mrlzkxxyyzcq21qvikadigrk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core"; url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
@ -1094,12 +1094,12 @@
ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ahungry-theme"; pname = "ahungry-theme";
version = "1.8.0"; version = "1.10.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ahungry"; owner = "ahungry";
repo = "color-theme-ahungry"; repo = "color-theme-ahungry";
rev = "32ce7765c95559f6a0552cdaeedb6eb97bb7a476"; rev = "45bf75f17752c8e8dd4c8a4531c0aa419cdccb84";
sha256 = "0c1xwqknhjx6y29fwca949r8d2fqb17mca5qc79pdxdlp3l606fg"; sha256 = "03xypgq6vy7819r42g23kgn7p775bc0v9blzhi0zp5c61p4cw8v3";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme"; url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme";
@ -1217,22 +1217,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild, memoize }: all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize }:
melpaBuild { melpaBuild {
pname = "all-the-icons"; pname = "all-the-icons";
version = "3.1.1"; version = "3.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "domtronn"; owner = "domtronn";
repo = "all-the-icons.el"; repo = "all-the-icons.el";
rev = "bb69345ead914345faad582723a2b61618f13289"; rev = "52d1f2d36468146c93aaf11399f581401a233306";
sha256 = "0h8a2jvn2wfi3bqd35scmhm8wh20mlk09sy68m1whi9binzkm8rf"; sha256 = "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/604c01aa15927bd122260529ff0f4bb6a8168b7e/recipes/all-the-icons"; url = "https://raw.githubusercontent.com/milkypostman/melpa/604c01aa15927bd122260529ff0f4bb6a8168b7e/recipes/all-the-icons";
sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q"; sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q";
name = "all-the-icons"; name = "all-the-icons";
}; };
packageRequires = [ emacs font-lock-plus memoize ]; packageRequires = [ emacs memoize ];
meta = { meta = {
homepage = "https://melpa.org/#/all-the-icons"; homepage = "https://melpa.org/#/all-the-icons";
license = lib.licenses.free; license = lib.licenses.free;
@ -3376,12 +3376,12 @@
bug-reference-github = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: bug-reference-github = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "bug-reference-github"; pname = "bug-reference-github";
version = "0.2.0"; version = "1.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "arnested"; owner = "arnested";
repo = "bug-reference-github"; repo = "bug-reference-github";
rev = "671d32083aad5cf813a5e61075b70889bc95dec5"; rev = "f570a0532bfb44f095b42cf68ab1f69799101137";
sha256 = "07jzg58a3jxs4mmsgb35f5f8awazlvzak9wrhif6xb60jq1wrp0v"; sha256 = "09rbxgrk7jp9xajya6nccj0ak7fc48wyxq4sfmjmy3q1qfszdsc3";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5dfce86371692dddef78a6c1d772138b487b82cb/recipes/bug-reference-github"; url = "https://raw.githubusercontent.com/milkypostman/melpa/5dfce86371692dddef78a6c1d772138b487b82cb/recipes/bug-reference-github";
@ -4361,12 +4361,12 @@
circe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: circe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "circe"; pname = "circe";
version = "2.6"; version = "2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jorgenschaefer"; owner = "jorgenschaefer";
repo = "circe"; repo = "circe";
rev = "59f1096238e6c30303a6fe9fc1c635f49e5946c6"; rev = "661a2cdb3a3d9bc11ee511a4f90116c88e0d3484";
sha256 = "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"; sha256 = "19fcvmm915dz9l2w1rna4yik96rb3hrk7042012g961xn4sgs0ih";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/circe"; url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/circe";
@ -5486,12 +5486,12 @@
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }: company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "company-php"; pname = "company-php";
version = "2.0.1"; version = "2.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "519b5cd886f484693fd69b226e307d56137b321b"; rev = "b9f455d863d3e92fcf32eaa722447c6d62ee1297";
sha256 = "1pig5kang3yvzzahgn8rfpy3gvpfz7myvf7ic0yc6rivvbl03k18"; sha256 = "1mwx61yxsxzd9d6jas61rsc68vc7mrlzkxxyyzcq21qvikadigrk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php"; url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php";
@ -6059,12 +6059,12 @@
counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "counsel-etags"; pname = "counsel-etags";
version = "1.3.8"; version = "1.3.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "redguardtoo"; owner = "redguardtoo";
repo = "counsel-etags"; repo = "counsel-etags";
rev = "e05fdb306eee197d63976d24bf0e16db241c6c06"; rev = "2219bf8d9a4584abc905c7470455777553496056";
sha256 = "1m6m2ygafy38483rd8qfq4zwmw1x7m5zpnvqdmsckiqik3s2z98n"; sha256 = "0kcxcbf1rm7cm74s5z87pv0bflx42h4j2lnb8b3r0nznj94ywnj3";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags"; url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags";
@ -6542,12 +6542,12 @@
cwl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }: cwl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }:
melpaBuild { melpaBuild {
pname = "cwl-mode"; pname = "cwl-mode";
version = "0.2.4"; version = "0.2.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tom-tan"; owner = "tom-tan";
repo = "cwl-mode"; repo = "cwl-mode";
rev = "c5110c1e035535a1133a7107c0d2d55e5fe3c5b9"; rev = "bdeb9c0734126f940db80bfb8b1dc735dab671c7";
sha256 = "088998r78bpy77pb2rhbr6a2fks5mcy3qyvyzlqwwl0v2gnscl59"; sha256 = "0x9rvyhgy7ijq2r9pin94jz7nisrw6z91jch7d27lkhrmyb1rwk3";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2309764cd56d9631dd97981a78b50b9fe793a280/recipes/cwl-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/2309764cd56d9631dd97981a78b50b9fe793a280/recipes/cwl-mode";
@ -7277,12 +7277,12 @@
dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "dimmer"; pname = "dimmer";
version = "0.2.2"; version = "0.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gonewest818"; owner = "gonewest818";
repo = "dimmer.el"; repo = "dimmer.el";
rev = "031be18db14c5c45758d64584b0f94d77e8f32da"; rev = "12fc52a6570ec25020281735f5a0ca780a9105af";
sha256 = "0csj6194cjds4lzyk850jfndg38447w0dk6xza4vafwx2nd9lfvf"; sha256 = "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer"; url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer";
@ -8901,13 +8901,13 @@
pname = "eide"; pname = "eide";
version = "2.1.2"; version = "2.1.2";
src = fetchgit { src = fetchgit {
url = "git://git.tuxfamily.org/gitroot/eide/emacs-ide.git"; url = "https://git.tuxfamily.org/eide/emacs-ide.git";
rev = "5f046ea74eee7af9afbd815c2bfd11fa9c72e6b3"; rev = "5f046ea74eee7af9afbd815c2bfd11fa9c72e6b3";
sha256 = "1bd9vqqzhbkpfr80r91r65gv6mqnjqfnyclylivg79sfkkahil9n"; sha256 = "1bd9vqqzhbkpfr80r91r65gv6mqnjqfnyclylivg79sfkkahil9n";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eide"; url = "https://raw.githubusercontent.com/milkypostman/melpa/34b70a5616e27ff9904a2803c86e049acfe9b26d/recipes/eide";
sha256 = "1i5brijz7pnqdk411j091fb8clapsbsihaak70g12fa5qic835fv"; sha256 = "168f4mz10byq1kdcfd029gkb3j6jk6lc4kdr4g204823x073f0ni";
name = "eide"; name = "eide";
}; };
packageRequires = []; packageRequires = [];
@ -9094,22 +9094,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
el-spice = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, thingatpt-plus }: el-spice = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "el-spice"; pname = "el-spice";
version = "0.2.2"; version = "0.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vedang"; owner = "vedang";
repo = "el-spice"; repo = "el-spice";
rev = "53921ffe9a84d9395eea90709309d3d5529921ea"; rev = "972dace20ec61cd27b9322432d0c7a688c6f061a";
sha256 = "0390pfgfgj7hwfmkwikwhip0hmwkgx784l529cqvalc31jchi94i"; sha256 = "1wrb46y4s4v0lwwyriz2qn1j1l804jyb4dmadf462jxln85rml70";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4666eee9f6837d6d9dba77e04aa4c8c4a93b47b5/recipes/el-spice"; url = "https://raw.githubusercontent.com/milkypostman/melpa/4666eee9f6837d6d9dba77e04aa4c8c4a93b47b5/recipes/el-spice";
sha256 = "0i0l3y9w1q9pf5zhvmsq4h427imix67jgcfwq21b6j82dzg5l4hg"; sha256 = "0i0l3y9w1q9pf5zhvmsq4h427imix67jgcfwq21b6j82dzg5l4hg";
name = "el-spice"; name = "el-spice";
}; };
packageRequires = [ thingatpt-plus ]; packageRequires = [];
meta = { meta = {
homepage = "https://melpa.org/#/el-spice"; homepage = "https://melpa.org/#/el-spice";
license = lib.licenses.free; license = lib.licenses.free;
@ -9157,6 +9157,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
elbank = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }:
melpaBuild {
pname = "elbank";
version = "1.0";
src = fetchFromGitHub {
owner = "NicolasPetton";
repo = "Elbank";
rev = "e4b532373a32889b8ab3389bd3e726dff5dd0bcf";
sha256 = "0kqiwa5gr8q0rhr598v9p7dx88i3359j49j04crqwnc5y107s1xk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/05d252ee84adae2adc88fd325540f76b6cdaf010/recipes/elbank";
sha256 = "1ry84aiajyrnrspf7w4yjm0rmdam8ijrz0s7291yr8c70hslc997";
name = "elbank";
};
packageRequires = [ emacs seq ];
meta = {
homepage = "https://melpa.org/#/elbank";
license = lib.licenses.free;
};
}) {};
elcord = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: elcord = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "elcord"; pname = "elcord";
@ -9514,15 +9535,15 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
elpy = callPackage ({ company, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }: elpy = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }:
melpaBuild { melpaBuild {
pname = "elpy"; pname = "elpy";
version = "1.17.0"; version = "1.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jorgenschaefer"; owner = "jorgenschaefer";
repo = "elpy"; repo = "elpy";
rev = "99f0b6401bff25d40b9f58123533271f7870a286"; rev = "30cb5e3c344edef572b6cffac94c6ff80bf6595f";
sha256 = "06n0vr8y5s8y7q9v96z030l1i9n29p622p36biyi5cjcmgf5h09j"; sha256 = "17iwdaly9kw17ih86rk9w1iswn8r6vvj9sh71picsxg6gqdrqnrk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy"; url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy";
@ -9531,6 +9552,7 @@
}; };
packageRequires = [ packageRequires = [
company company
emacs
find-file-in-project find-file-in-project
highlight-indentation highlight-indentation
pyvenv pyvenv
@ -9608,12 +9630,12 @@
elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "elx"; pname = "elx";
version = "1.2.0"; version = "1.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacscollective"; owner = "emacscollective";
repo = "elx"; repo = "elx";
rev = "127fd4fca8ac6470cfda62f47bb1c29859862cfc"; rev = "9f32e91ebbaebd7f1125107dce2aa979827b26c0";
sha256 = "0j7j7wh89a34scilw11pbdb86nf515ig38pjkwyarfvj93gigc04"; sha256 = "1hc4jw2fy25ri2hh3xw7sp67yfl2jvrgj1a25xa6svchjq3h1yf2";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx"; url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx";
@ -9763,8 +9785,8 @@
sha256 = "07gvx0bbpf6j3g8kpk9908wf8fx1yb3075v6407wjxxighl0n5zz"; sha256 = "07gvx0bbpf6j3g8kpk9908wf8fx1yb3075v6407wjxxighl0n5zz";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9cc47c05fb0d282531c9560252090586e9f6196e/recipes/emacsql-sqlite"; url = "https://raw.githubusercontent.com/milkypostman/melpa/3cfa28c7314fa57fa9a3aaaadf9ef83f8ae541a9/recipes/emacsql-sqlite";
sha256 = "1vywq3ypcs61s60y7x0ac8rdm9yj43iwzxh8gk9zdyrcn9qpis0i"; sha256 = "1y81nabzzb9f7b8azb9giy23ckywcbrrg4b88gw5qyjizbb3h70x";
name = "emacsql-sqlite"; name = "emacsql-sqlite";
}; };
packageRequires = [ cl-generic cl-lib emacs emacsql ]; packageRequires = [ cl-generic cl-lib emacs emacsql ];
@ -11345,12 +11367,12 @@
evil-matchit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: evil-matchit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "evil-matchit"; pname = "evil-matchit";
version = "2.2.5"; version = "2.2.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "redguardtoo"; owner = "redguardtoo";
repo = "evil-matchit"; repo = "evil-matchit";
rev = "ceb13ad1b34eb0debe2472c024841bdddce9e593"; rev = "50bb88241983f0bf06d35a455a87c04eddc11c83";
sha256 = "1wal8kwz1gx0cw1a91rf0d9wl490kjiilv6kwd779zf5041hnhwf"; sha256 = "1qn5nydh2pinjlyyplrdxrn2r828im6mgij95ahs8z14y9yxwcif";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/aeab4a998bffbc784e8fb23927d348540baf9951/recipes/evil-matchit"; url = "https://raw.githubusercontent.com/milkypostman/melpa/aeab4a998bffbc784e8fb23927d348540baf9951/recipes/evil-matchit";
@ -12372,12 +12394,12 @@
find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "find-file-in-project"; pname = "find-file-in-project";
version = "5.4.6"; version = "5.4.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "technomancy"; owner = "technomancy";
repo = "find-file-in-project"; repo = "find-file-in-project";
rev = "31ebfd65d254904ba3e5ec96507c0b01d7768940"; rev = "7be14de3c737e70606d208d8d443b89e58cd646d";
sha256 = "1xy7a6crng5x7k0x810ijrm882gm597ljwzi4cj2i93js625cw2b"; sha256 = "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project"; url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project";
@ -17162,12 +17184,12 @@
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }: helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
melpaBuild { melpaBuild {
pname = "helm"; pname = "helm";
version = "2.8.7"; version = "2.8.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacs-helm"; owner = "emacs-helm";
repo = "helm"; repo = "helm";
rev = "5b2057c7755f6ea20e1ea011c6fb992d12650161"; rev = "5b7237acc11ed0fbee10af9cf6345da7c3d9dd26";
sha256 = "0hf27j1rv3xnnari70k7p1b51pdyv6zsp1r6b8xk4qwp8y0crpx9"; sha256 = "18ay4c5mvr5b5i8qfn1h75yy5znzm1l6h5rhhzhhaiidvb2arr69";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm"; url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
@ -17390,22 +17412,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
helm-cider = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, seq }: helm-cider = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "helm-cider"; pname = "helm-cider";
version = "0.3.0"; version = "0.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "clojure-emacs"; owner = "clojure-emacs";
repo = "helm-cider"; repo = "helm-cider";
rev = "a24ef274e382c1a158a76eae2570f1f007031cb8"; rev = "9a948b834dd31b3f60d4701d6dd0ecfab0adbb72";
sha256 = "062abfb4sfpcc6fx3nrf3j0bisglrhyrg7rxwhhcqm9jhalksmdl"; sha256 = "0wssd9jv6xighjhfh3p8if1anz3rcrjr71a4j063v6gyknb7fv27";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-cider"; url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-cider";
sha256 = "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x"; sha256 = "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x";
name = "helm-cider"; name = "helm-cider";
}; };
packageRequires = [ cider emacs helm-core seq ]; packageRequires = [ cider emacs helm-core ];
meta = { meta = {
homepage = "https://melpa.org/#/helm-cider"; homepage = "https://melpa.org/#/helm-cider";
license = lib.licenses.free; license = lib.licenses.free;
@ -17498,12 +17520,12 @@
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "helm-core"; pname = "helm-core";
version = "2.8.7"; version = "2.8.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacs-helm"; owner = "emacs-helm";
repo = "helm"; repo = "helm";
rev = "5b2057c7755f6ea20e1ea011c6fb992d12650161"; rev = "5b7237acc11ed0fbee10af9cf6345da7c3d9dd26";
sha256 = "0hf27j1rv3xnnari70k7p1b51pdyv6zsp1r6b8xk4qwp8y0crpx9"; sha256 = "18ay4c5mvr5b5i8qfn1h75yy5znzm1l6h5rhhzhhaiidvb2arr69";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core"; url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
@ -18587,6 +18609,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
helm-system-packages = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, seq }:
melpaBuild {
pname = "helm-system-packages";
version = "1.7.0";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm-system-packages";
rev = "22ff951b092a3fbde8eadf284a24e86bb4694f6a";
sha256 = "0argxi8dppgyfljwn654a7183lva74wnnwzkk3xlrvgngmir56kp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0c46cfb0fcda0500e15d04106150a072a1a75ccc/recipes/helm-system-packages";
sha256 = "01mndx2zzh7r7gmpn6gd1vy1w3l6dnhvgn7n2p39viji1r8b39s4";
name = "helm-system-packages";
};
packageRequires = [ emacs helm seq ];
meta = {
homepage = "https://melpa.org/#/helm-system-packages";
license = lib.licenses.free;
};
}) {};
helm-themes = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: helm-themes = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "helm-themes"; pname = "helm-themes";
@ -19532,6 +19575,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
ibuffer-tramp = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ibuffer-tramp";
version = "1.0.0";
src = fetchFromGitHub {
owner = "svend";
repo = "ibuffer-tramp";
rev = "bcad0bda3a67f55d1be936bf8fa9ef735fe1e3f3";
sha256 = "1ry7nbhqhjy6gkxd10s97nbm6flk5nm0l5q8071fprx8xxphqj8f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a1a7449b15cb2a89cf06ea3de2cfdc6bc387db3b/recipes/ibuffer-tramp";
sha256 = "11a9b9g1jk2r3fldi012zka4jzy68kfn4991xp046qm2fbc7la32";
name = "ibuffer-tramp";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/ibuffer-tramp";
license = lib.licenses.free;
};
}) {};
ibuffer-vc = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: ibuffer-vc = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ibuffer-vc"; pname = "ibuffer-vc";
@ -19640,12 +19704,12 @@
ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, s }: ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, s }:
melpaBuild { melpaBuild {
pname = "ido-completing-read-plus"; pname = "ido-completing-read-plus";
version = "4.5"; version = "4.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "DarwinAwardWinner"; owner = "DarwinAwardWinner";
repo = "ido-completing-read-plus"; repo = "ido-completing-read-plus";
rev = "e8cfebac1df2bfca52003f28ed84cb1a39dc8345"; rev = "51861afe385f59f3262ee40acbe772ccb3dd52e7";
sha256 = "14g5v823wsr0sgrawqw9kwilm68w0k4plz3b00jd7z903np9cxih"; sha256 = "0hspgk8m4acyhpcldwg3xqla9xp3fjrhf37cnjp45j1b3h94x3iy";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-completing-read+"; url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-completing-read+";
@ -19742,22 +19806,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
ido-ubiquitous = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: ido-ubiquitous = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ido-ubiquitous"; pname = "ido-ubiquitous";
version = "4.5"; version = "4.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "DarwinAwardWinner"; owner = "DarwinAwardWinner";
repo = "ido-completing-read-plus"; repo = "ido-completing-read-plus";
rev = "e8cfebac1df2bfca52003f28ed84cb1a39dc8345"; rev = "51861afe385f59f3262ee40acbe772ccb3dd52e7";
sha256 = "14g5v823wsr0sgrawqw9kwilm68w0k4plz3b00jd7z903np9cxih"; sha256 = "0hspgk8m4acyhpcldwg3xqla9xp3fjrhf37cnjp45j1b3h94x3iy";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous"; url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous";
sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz"; sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz";
name = "ido-ubiquitous"; name = "ido-ubiquitous";
}; };
packageRequires = [ cl-lib emacs ido-completing-read-plus ]; packageRequires = [ cl-lib ido-completing-read-plus ];
meta = { meta = {
homepage = "https://melpa.org/#/ido-ubiquitous"; homepage = "https://melpa.org/#/ido-ubiquitous";
license = lib.licenses.free; license = lib.licenses.free;
@ -20104,14 +20168,14 @@
pname = "impatient-mode"; pname = "impatient-mode";
version = "1.0.0"; version = "1.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "netguy204"; owner = "skeeto";
repo = "imp.el"; repo = "impatient-mode";
rev = "eba1efce3dd20b5f5017ab64bae0cfb3b181c2b0"; rev = "eba1efce3dd20b5f5017ab64bae0cfb3b181c2b0";
sha256 = "0vr4i3ayp1n8zg3v9rfv81qnr0vrdbkzphwd5kyadjgy4sbfjykj"; sha256 = "0vr4i3ayp1n8zg3v9rfv81qnr0vrdbkzphwd5kyadjgy4sbfjykj";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb1fbd03f17d2069a461260ad5e2ad4e5441919b/recipes/impatient-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/aaa64c4d43139075d77f4518de94bcbe475d21fc/recipes/impatient-mode";
sha256 = "05vp04zh5w0ss959galdrnridv268dzqymqzqfpkfjbg8kryzfxg"; sha256 = "07z5ds3zgzkxvxwaalp9i5x2rl5sq4jjk8ygk1rfmsl52l5y1z6j";
name = "impatient-mode"; name = "impatient-mode";
}; };
packageRequires = [ cl-lib htmlize simple-httpd ]; packageRequires = [ cl-lib htmlize simple-httpd ];
@ -21254,12 +21318,12 @@
js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "js-auto-format-mode"; pname = "js-auto-format-mode";
version = "1.0.6"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ybiquitous"; owner = "ybiquitous";
repo = "js-auto-format-mode"; repo = "js-auto-format-mode";
rev = "37e83641fd5eab45e813e4bc74a835fe7229c160"; rev = "6bd44162ac422304803f606278bb0c08ab940a5d";
sha256 = "0hmrhp3lijd77kl0b98nbl1p8fmgjfry2hhvh5vickx3315w7qgw"; sha256 = "1hy4wyw7yi93ngagg9qmkljjqaypfnzks3vny1pn6d5nw2acb1vx";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode";
@ -21695,12 +21759,12 @@
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "kaolin-themes"; pname = "kaolin-themes";
version = "1.2.0"; version = "1.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ogdenwebb"; owner = "ogdenwebb";
repo = "emacs-kaolin-themes"; repo = "emacs-kaolin-themes";
rev = "88a25b89a480f1193cc1c5502f3a5d0b68cb7227"; rev = "56bafd9b1b022ebfd98cad022792957164ec56fb";
sha256 = "03bbpaih29yx8s16v59mca8v6sak6294zq7d534613la28n4h6w7"; sha256 = "02nmrdc2ldvfzyn3s9qrvq61nl93krc1vyr4ad1vkmbyqrwszyvd";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes"; url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
@ -22472,12 +22536,12 @@
linum-relative = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: linum-relative = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "linum-relative"; pname = "linum-relative";
version = "0.5"; version = "0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "coldnew"; owner = "coldnew";
repo = "linum-relative"; repo = "linum-relative";
rev = "b8a99dcfe38a491172a8193053fb7849634b43c0"; rev = "896df4b40c1e1eb59f55fcee48a1543f0ccd724e";
sha256 = "11bjnqqwvr9zrvz5dlm8a0yw4zg9ysh3jdiq5a6iw09d3f0h1v2s"; sha256 = "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/97ae01be4892a7c35aa0f82213433a2944041d87/recipes/linum-relative"; url = "https://raw.githubusercontent.com/milkypostman/melpa/97ae01be4892a7c35aa0f82213433a2944041d87/recipes/linum-relative";
@ -22689,12 +22753,12 @@
live-py-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: live-py-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "live-py-mode"; pname = "live-py-mode";
version = "2.20.1"; version = "2.21.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "donkirkby"; owner = "donkirkby";
repo = "live-py-plugin"; repo = "live-py-plugin";
rev = "eed38dc66430802e754c48bb44aaf524d7b1596c"; rev = "465c3f807c3ccd9af0af7032aec40c039d950ac0";
sha256 = "1rl279h18z9fka4zdaqm2h4jxpq3wykja3x7jyhj4bnrqvkw66gh"; sha256 = "1idn0bjxw5sgjb7p958fdxn8mg2rs8yjqsz8k56r9jjzr7z9jdfx";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c7615237e80b46b5c50cb51a3ed5b07d92566fb7/recipes/live-py-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c7615237e80b46b5c50cb51a3ed5b07d92566fb7/recipes/live-py-mode";
@ -27526,12 +27590,12 @@
org-wild-notifier = callPackage ({ alert, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: org-wild-notifier = callPackage ({ alert, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild { melpaBuild {
pname = "org-wild-notifier"; pname = "org-wild-notifier";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "akhramov"; owner = "akhramov";
repo = "org-wild-notifier.el"; repo = "org-wild-notifier.el";
rev = "f5bf3b13c630265051904cb4c9a0613ead86847c"; rev = "28f6af12a9efbcab53e310363c451f53ce8ea3f2";
sha256 = "0z2flnqimwndq8w7ahi57n7a87l5iknn3dpwirxynq4brzazzi7j"; sha256 = "00v4f26np4i947xgqr03wylz4ichc168znlwxn4l6np1s85i3mzb";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/114552a24f73f13b253e3db4885039b680f6ef33/recipes/org-wild-notifier"; url = "https://raw.githubusercontent.com/milkypostman/melpa/114552a24f73f13b253e3db4885039b680f6ef33/recipes/org-wild-notifier";
@ -27997,12 +28061,12 @@
ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild { melpaBuild {
pname = "ox-hugo"; pname = "ox-hugo";
version = "0.7"; version = "0.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kaushalmodi"; owner = "kaushalmodi";
repo = "ox-hugo"; repo = "ox-hugo";
rev = "b47f6f79603adb4f505500ed83150afca7601cfc"; rev = "9751d34e1133b89a533a978c085b0715f85db648";
sha256 = "1xlkmiwgxsai0hsx9r1gx88bdj72vxaq0icr399ksnwba58rwmr1"; sha256 = "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo"; url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo";
@ -28394,12 +28458,12 @@
paren-face = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: paren-face = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "paren-face"; pname = "paren-face";
version = "1.0.2"; version = "1.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tarsius"; owner = "tarsius";
repo = "paren-face"; repo = "paren-face";
rev = "0a7cbd65bb578cc52a9dc495a4fcaf23a57507bf"; rev = "166975683225367c866e6ae6f6acb88d24e21a35";
sha256 = "0wsnng874dbyikd4dgx2rxmcp0774ix5v29dq372zynq6lamqkl7"; sha256 = "02mh8w2na6qa94p3bh6pvdvmg36p2vrbp5hpjnwjcayrb92dskgy";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d398398d1d5838dc4985a06515ee668f0f566aab/recipes/paren-face"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d398398d1d5838dc4985a06515ee668f0f566aab/recipes/paren-face";
@ -30834,12 +30898,12 @@
pyvenv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: pyvenv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "pyvenv"; pname = "pyvenv";
version = "1.10"; version = "1.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jorgenschaefer"; owner = "jorgenschaefer";
repo = "pyvenv"; repo = "pyvenv";
rev = "91c47b8d2608ccbcac2eba91f0e36b422101ce55"; rev = "f925bcb46ea64b699f7cd06933c48e0d5db88b73";
sha256 = "09c0f7ln1in8h03idbzggvmqkxj6i9jdjbmg1nnyarhffmgbcvnh"; sha256 = "1a346qdimr1dvj53q033aqnahwd2dhyn9jadrs019nm0bzgw7g63";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e37236b89b9705ba7a9d134b1fb2c3c003953a9b/recipes/pyvenv"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e37236b89b9705ba7a9d134b1fb2c3c003953a9b/recipes/pyvenv";
@ -31254,12 +31318,12 @@
rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "rdf-prefix"; pname = "rdf-prefix";
version = "1.9"; version = "1.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "simenheg"; owner = "simenheg";
repo = "rdf-prefix"; repo = "rdf-prefix";
rev = "25cc3c8902f16191496b549705b00ffc7dff51f1"; rev = "164136d05505275d42d1ca3a390f55fcc89694b8";
sha256 = "00ycsqzgn5rq8r4r86z1j43i2a7wj4r3c2vcggdaizyf4parmgmy"; sha256 = "18jp3yynnk2248mzwf8h62awfw8fh25m5ah5di0dg62xw56l9nig";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix"; url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix";
@ -33757,12 +33821,12 @@
smart-mode-line = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rich-minority }: smart-mode-line = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rich-minority }:
melpaBuild { melpaBuild {
pname = "smart-mode-line"; pname = "smart-mode-line";
version = "2.10.1"; version = "2.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Malabarba"; owner = "Malabarba";
repo = "smart-mode-line"; repo = "smart-mode-line";
rev = "8fd76a66abe4d37925e3d6152c6bd1e8648a293a"; rev = "5aca51956fae55d7310c1f96b5d128201087864a";
sha256 = "1176fxrzzk4fyp4wjyp0xyqrga74j5csr5x37mlgplh9790248dx"; sha256 = "1wpavjkxszq1xr49q0qvqniq751s69axgnsdv37n73k3zl527vqw";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/smart-mode-line"; url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/smart-mode-line";
@ -33778,12 +33842,12 @@
smart-mode-line-powerline-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline, smart-mode-line }: smart-mode-line-powerline-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline, smart-mode-line }:
melpaBuild { melpaBuild {
pname = "smart-mode-line-powerline-theme"; pname = "smart-mode-line-powerline-theme";
version = "2.10.1"; version = "2.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Malabarba"; owner = "Malabarba";
repo = "smart-mode-line"; repo = "smart-mode-line";
rev = "8fd76a66abe4d37925e3d6152c6bd1e8648a293a"; rev = "5aca51956fae55d7310c1f96b5d128201087864a";
sha256 = "1176fxrzzk4fyp4wjyp0xyqrga74j5csr5x37mlgplh9790248dx"; sha256 = "1wpavjkxszq1xr49q0qvqniq751s69axgnsdv37n73k3zl527vqw";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/60072b183151e519d141ec559b4902d20c87904c/recipes/smart-mode-line-powerline-theme"; url = "https://raw.githubusercontent.com/milkypostman/melpa/60072b183151e519d141ec559b4902d20c87904c/recipes/smart-mode-line-powerline-theme";
@ -34030,12 +34094,12 @@
snakemake-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }: snakemake-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }:
melpaBuild { melpaBuild {
pname = "snakemake-mode"; pname = "snakemake-mode";
version = "1.2.1"; version = "1.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kyleam"; owner = "kyleam";
repo = "snakemake-mode"; repo = "snakemake-mode";
rev = "22b3efd741e26f59e18c9fd28691d8b84c9130ab"; rev = "6cf6d20db2e5253ce3f86e302651faa28f220aa7";
sha256 = "0hjp5ci7miggw0gs2y8q867gi7p3dq2yyfkckkh52isrp0yvz0wf"; sha256 = "0dmvd5f5rb5kkzjkhzz17b40hlld23sy5wyzr8vq763f6pzs37kk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3a5b51fee1c9e6ce7e21555faa355d118d34b8d/recipes/snakemake-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c3a5b51fee1c9e6ce7e21555faa355d118d34b8d/recipes/snakemake-mode";
@ -35121,12 +35185,12 @@
swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }:
melpaBuild { melpaBuild {
pname = "swift-mode"; pname = "swift-mode";
version = "4.0.1"; version = "4.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chrisbarrett"; owner = "chrisbarrett";
repo = "swift-mode"; repo = "swift-mode";
rev = "8c45f69a078c41619a7a3db6d54a732c3fad8e3f"; rev = "7739e4954cc614ecd6b37e935f82ad057e256d56";
sha256 = "1isy71vkws3ywm4iwa85dk12810az3h85n6bimd36dfqbhfwdrli"; sha256 = "09mvwfi3nv4hkdvh76d7737nl3zaxn4a5vpmv2645q9s4vcq8zj8";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode";
@ -36295,12 +36359,12 @@
tracking = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: tracking = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "tracking"; pname = "tracking";
version = "2.6"; version = "2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jorgenschaefer"; owner = "jorgenschaefer";
repo = "circe"; repo = "circe";
rev = "59f1096238e6c30303a6fe9fc1c635f49e5946c6"; rev = "661a2cdb3a3d9bc11ee511a4f90116c88e0d3484";
sha256 = "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"; sha256 = "19fcvmm915dz9l2w1rna4yik96rb3hrk7042012g961xn4sgs0ih";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/tracking"; url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/tracking";
@ -37792,12 +37856,12 @@
webpaste = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: webpaste = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild { melpaBuild {
pname = "webpaste"; pname = "webpaste";
version = "2.0.0"; version = "2.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "etu"; owner = "etu";
repo = "webpaste.el"; repo = "webpaste.el";
rev = "aed3e00b6332a068d53ce482f5139a95c3dcd245"; rev = "2da60b8857d107721b089346121a7d51296a58bf";
sha256 = "1p4sgn0rh8a5f0f6f1njq329zwgs6yp8j3zqs0yfz4kaikw1xw10"; sha256 = "1r945qz7z5z80qvzlqvz985mz51zy3pj3fk36y0flc380y4ap6hd";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/13847d91c1780783e516943adee8a3530c757e17/recipes/webpaste"; url = "https://raw.githubusercontent.com/milkypostman/melpa/13847d91c1780783e516943adee8a3530c757e17/recipes/webpaste";
@ -39048,22 +39112,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
yatemplate = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: yatemplate = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild { melpaBuild {
pname = "yatemplate"; pname = "yatemplate";
version = "2.0"; version = "3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mineo"; owner = "mineo";
repo = "yatemplate"; repo = "yatemplate";
rev = "90c14d2e2b8247eeba464a52560af484f8542558"; rev = "c1de31d2b16d98af197a4392b6481346ab4e8d57";
sha256 = "00q3803nz89r91v1rwld98j1wgfc7kc6ni5a3h3zjwz1issyv5is"; sha256 = "0lp5ym2smmvmlxpdyv4kh75qsz8dsdz9afd8nxaq8y4fazzabblx";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8ba3cdb74f121cbf36b6d9d5a434c363905ce526/recipes/yatemplate"; url = "https://raw.githubusercontent.com/milkypostman/melpa/8ba3cdb74f121cbf36b6d9d5a434c363905ce526/recipes/yatemplate";
sha256 = "05gd9sxdiqpw2p1kdagwgxd94wiw1fmmcsp9v4p74i9sqmf6qn6q"; sha256 = "05gd9sxdiqpw2p1kdagwgxd94wiw1fmmcsp9v4p74i9sqmf6qn6q";
name = "yatemplate"; name = "yatemplate";
}; };
packageRequires = [ yasnippet ]; packageRequires = [ emacs yasnippet ];
meta = { meta = {
homepage = "https://melpa.org/#/yatemplate"; homepage = "https://melpa.org/#/yatemplate";
license = lib.licenses.free; license = lib.licenses.free;
@ -39074,8 +39138,8 @@
version = "1.80"; version = "1.80";
src = fetchhg { src = fetchhg {
url = "https://www.yatex.org/hgrepos/yatex/"; url = "https://www.yatex.org/hgrepos/yatex/";
rev = "5bb46b7ab3de"; rev = "b1896ef49747";
sha256 = "1ap043fq9yl2n4slrjkjld9b743ac7ygj52z9af709v6sa660ahg"; sha256 = "1a8qc1krskl5qdy4fikilrrzrwmrghs4h1yaj5lclzywpc67zi8b";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";

View File

@ -1,10 +1,10 @@
{ callPackage }: { { callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org"; pname = "org";
version = "20180122"; version = "20180129";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-20180122.tar"; url = "https://orgmode.org/elpa/org-20180129.tar";
sha256 = "0a3a5v5x43xknqc6m5rcgdsqlw047w1djq372akfn5wafsk8a916"; sha256 = "0cwxqr34c77qmv7flcpd46qwkn0nzli21s3m9km00mwc8xy308n4";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -14,10 +14,10 @@
}) {}; }) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib"; pname = "org-plus-contrib";
version = "20180122"; version = "20180129";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20180122.tar"; url = "https://orgmode.org/elpa/org-plus-contrib-20180129.tar";
sha256 = "1ss6h03xkvgk2qm1dx4dxxxalbswjc1jl9v87q99nls8iavmqa8x"; sha256 = "1bk7jmizlvfbq2bbis3kal8nllxj752a8dkq7j68q6kfbc6w1z24";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {

View File

@ -20,11 +20,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "nano-${version}"; name = "nano-${version}";
version = "2.9.2"; version = "2.9.3";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/nano/${name}.tar.xz"; url = "mirror://gnu/nano/${name}.tar.xz";
sha256 = "0m9xm085pi0fhmmshgppipjimr1jkxksbyg8pa5cwaap3d2vgk2f"; sha256 = "04j05nbnp8vjjwja90d83p4s6ywyl6qhggflcjzw0p9d9gyvr0vp";
}; };
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext; nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tiled-${version}"; name = "tiled-${version}";
version = "1.1.1"; version = "1.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bjorn"; owner = "bjorn";
repo = "tiled"; repo = "tiled";
rev = "v${version}"; rev = "v${version}";
sha256 = "1c6n5xshadxv5qwv8kfrj1kbfnkvx6nyxc9p4mpzkjrkxw1b1qf1"; sha256 = "1bzp89914rlrwf2whky3fx10rwxqiwbw9acyqllvam3l4hmv4nlz";
}; };
nativeBuildInputs = [ pkgconfig qmake ]; nativeBuildInputs = [ pkgconfig qmake ];
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
bsd2 # libtiled and tmxviewer bsd2 # libtiled and tmxviewer
gpl2Plus # all the rest gpl2Plus # all the rest
]; ];
maintainers = with maintainers; [ dywedir ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.0.1428"; version = "8.0.1451";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "0pqqh7g96w8jfc5kvv2il6fcbhccwhk4k5skk52g1c1ixsblwz3y"; sha256 = "1vxd5mr8c62qyf7ax7gi2wka48282yplckq91154yd55xcqw36zx";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -2,7 +2,7 @@
makeWrapper, libXScrnSaver, libxkbfile, libsecret }: makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
let let
version = "1.19.2"; version = "1.19.3";
channel = "stable"; channel = "stable";
plat = { plat = {
@ -12,9 +12,9 @@ let
}.${stdenv.system}; }.${stdenv.system};
sha256 = { sha256 = {
"i686-linux" = "05qfcmwl1r43slwkb2rxh99hwpzd8c622la0ffd9p2jg4lbkgs1p"; "i686-linux" = "0qaijcsjy9sysim19gyqmagg8rmxgamf0l74qj3ap0wsv2v7xixr";
"x86_64-linux" = "0kjwmw68av9mnqcg1vaazm3k240y9jvbng6n7ycgzxwddzx0qlac"; "x86_64-linux" = "1kvkcrr1hgnssy2z45h8fdgr9j6w94myr2hvlknwcahzxrnrwr7k";
"x86_64-darwin" = "1mjmi5r9qlc6ggh3w566454ar06by15xsm6dymr8zv4sb352w70h"; "x86_64-darwin" = "19vkv97yq0alnq4dvs62a2vx3f1mvfz1ic63114s9sd6smikrg0g";
}.${stdenv.system}; }.${stdenv.system};
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fetchpatch, pkgconfig, libtool { lib, stdenv, fetchFromGitHub, fetchpatch, pkgconfig, libtool
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg
, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp
, ApplicationServices , ApplicationServices
@ -15,7 +15,7 @@ let
cfg = { cfg = {
version = "7.0.7-22"; version = "7.0.7-22";
sha256 = "12c48cfhc2a3zvhgxdywrfy8b4m2vx85vn2qj69iyni5x849xpj9"; sha256 = "1ad7mwx48xrkvm3v060n2f67kmi0qk7gfql1shiwbkkjvzzaaiam";
patches = []; patches = [];
}; };
in in
@ -24,13 +24,10 @@ stdenv.mkDerivation rec {
name = "imagemagick-${version}"; name = "imagemagick-${version}";
inherit (cfg) version; inherit (cfg) version;
src = fetchurl { src = fetchFromGitHub {
urls = [ owner = "ImageMagick";
"mirror://imagemagick/releases/ImageMagick-${version}.tar.xz" repo = "ImageMagick";
# the original source above removes tarballs quickly rev = cfg.version;
"http://distfiles.macports.org/ImageMagick/ImageMagick-${version}.tar.xz"
"https://bintray.com/homebrew/mirror/download_file?file_path=imagemagick-${version}.tar.xz"
];
inherit (cfg) sha256; inherit (cfg) sha256;
}; };

View File

@ -5,12 +5,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.15.0"; version = "3.16.0";
name = "calibre-${version}"; name = "calibre-${version}";
src = fetchurl { src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz"; url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "1zvk499g3ddl82f6655ddqzl7r62hj1fq3qjsxpn07an2lizail7"; sha256 = "0dsnn974lfd6xbnyjhgxl2hd07kjhm1w9plqi28mx8nqa8bwqira";
}; };
patches = [ patches = [

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dunst-${version}"; name = "dunst-${version}";
version = "1.3.0"; version = "1.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dunst-project"; owner = "dunst-project";
repo = "dunst"; repo = "dunst";
rev = "v${version}"; rev = "v${version}";
sha256 = "1085v4193yfj8ksngp4mk5n0nwzr3s5y3cs3c74ymaldfl20x91k"; sha256 = "0i518v2z9fklzl5w60gkwwmg30yz3bd0k4rxjrxjabx73pvxm1mz";
}; };
nativeBuildInputs = [ perl pkgconfig which systemd ]; nativeBuildInputs = [ perl pkgconfig which systemd ];

View File

@ -2,7 +2,7 @@
with python3Packages; with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
version = "0.6.0"; version = "0.7.1";
name = "kitty-${version}"; name = "kitty-${version}";
format = "other"; format = "other";
@ -10,7 +10,7 @@ buildPythonApplication rec {
owner = "kovidgoyal"; owner = "kovidgoyal";
repo = "kitty"; repo = "kitty";
rev = "v${version}"; rev = "v${version}";
sha256 = "1p86gry91m4kicy79fc1qfr0hcsd5xnvxzmm4q956x883h6h766r"; sha256 = "0c02xy5psb7v7xfncz4bflrbinifpcm1yn8hvh0zaf7p4vr837p7";
}; };
buildInputs = [ fontconfig glfw ncurses libunistring harfbuzz libX11 libXrandr libXinerama libXcursor libxkbcommon libXi libXext ]; buildInputs = [ fontconfig glfw ncurses libunistring harfbuzz libX11 libXrandr libXinerama libXcursor libxkbcommon libXi libXext ];

View File

@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } :
stdenv.mkDerivation rec {
name = "osm2xmap-${version}";
version = "2.0";
src = fetchFromGitHub {
sha256 = "1d3f18wzk240yp0q8i2vskhcfj5ar61s4hw83vgps0wr2aglph3w";
repo = "osm2xmap";
owner = "sembruk";
rev = "v${version}";
};
makeFlags = [
"GIT_VERSION=$(version)"
"GIT_TIMESTAMP="
"SHAREDIR=$(out)/share/"
"INSTALL_BINDIR=$(out)/bin"
"INSTALL_MANDIR=$(out)/share/man/man1"
"INSTALL_SHAREDIR=$(out)/share/"
];
installFlags = [ "DESTDIR=$(out)" ];
buildInputs = [ libroxml proj libyamlcpp boost ];
meta = with stdenv.lib; {
homepage = "https://github.com/sembruk/osm2xmap";
description = "Converter from OpenStreetMap data format to OpenOrienteering Mapper format.";
license = licenses.gpl3;
maintainers = [ maintainers.mpickering ];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -2,14 +2,14 @@
with pythonPackages; with pythonPackages;
buildPythonApplication rec { buildPythonApplication rec {
version = "1.19.0"; version = "1.21.0";
name = "rtv-${version}"; name = "rtv-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "michael-lazar"; owner = "michael-lazar";
repo = "rtv"; repo = "rtv";
rev = "v${version}"; rev = "v${version}";
sha256 = "19rnw9cac06ns10vqn2cj0v61ycrj9g1ysa3hncamwxxibmkycp7"; sha256 = "0srm01nrb23hdmj3ripsa9p8nv2cgss3m6and9rdr875qw5ii130";
}; };
# Tests try to access network # Tests try to access network

View File

@ -1,19 +1,19 @@
{ stdenv, fetchurl, intltool, pkgconfig, glib, libnotify, gtk3, libgee { stdenv, fetchurl, gettext, pkgconfig, glib, libnotify, gtk3, libgee
, keybinder3, json_glib, zeitgeist, vala_0_34, hicolor_icon_theme, gobjectIntrospection , keybinder3, json_glib, zeitgeist, vala_0_38, hicolor_icon_theme, gobjectIntrospection
}: }:
let let
version = "0.2.99.2"; version = "0.2.99.3";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "synapse-${version}"; name = "synapse-${version}";
src = fetchurl { src = fetchurl {
url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${name}.tar.xz"; url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${name}.tar.xz";
sha256 = "04cnsmwf9xa52dh7rpb4ia715c0ls8jg1p7llc9yf3lbg1m0bvzv"; sha256 = "0rwd42164xqfi40r13yr29cx6zy3bckgxk00y53b376nl5yqacvy";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig intltool vala_0_34 pkgconfig gettext vala_0_38
# For setup hook # For setup hook
gobjectIntrospection gobjectIntrospection
]; ];

View File

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory. # This file is autogenerated from update.sh in the same directory.
{ {
beta = { beta = {
sha256 = "09ris0aj743x3mh7q45z55byxwmw7h6klhibbcazb1axj85ahbil"; sha256 = "1ki9ii3r9iv6k7df2zr14ysm6w3fkvhvcwaw3qjm4b4q6ymznshl";
sha256bin64 = "18833sqqfssjvcmf6v7wj9h9gsc07wr09cms5c0k7f8v9dqysc7r"; sha256bin64 = "0i1g0hv2vji8jx9c973x8nr1ynzsvqjaqcncxj77x6vj9wp0v41p";
version = "64.0.3282.119"; version = "64.0.3282.140";
}; };
dev = { dev = {
sha256 = "04vrcsvlanjljah3pbgfz49ygwr9i6zymr1a09kldrnykv770c5l"; sha256 = "1b3gyj55xyqsb439szisfn8c4mnpws3pfzrndrl5kgdd239qrfqz";
sha256bin64 = "016s8lh94i0m3zyld32vzqfw1c0s97sa143dyww7x26b2mp93lcc"; sha256bin64 = "1hmkinzn4gpikjfd8c9j30px3i0x6y8dddn9pyvjzsk6dzfcvknz";
version = "65.0.3322.3"; version = "65.0.3325.31";
}; };
stable = { stable = {
sha256 = "09ris0aj743x3mh7q45z55byxwmw7h6klhibbcazb1axj85ahbil"; sha256 = "1ki9ii3r9iv6k7df2zr14ysm6w3fkvhvcwaw3qjm4b4q6ymznshl";
sha256bin64 = "18a61myi3wlrk9zr7jjad1zi8k0ls9cnl2nyhjibjlwiz3npwbm5"; sha256bin64 = "1zsgcnilip9rxbs51xvnchp87gh4fmgxzrcf9dhfrnldhji17ikj";
version = "64.0.3282.119"; version = "64.0.3282.140";
}; };
} }

View File

@ -38,12 +38,25 @@
## other ## other
# If you want the resulting program to call itself # As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at
# "Firefox"/"Torbrowser" instead of "Nightly" or whatever, enable this # https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
# option. However, in Firefox's case, those binaries may not be # have permission to use the official firefox branding.
# distributed without permission from the Mozilla Foundation, see #
# http://www.mozilla.org/foundation/trademarks/. # Fur purposes of documentation the statement of @sylvestre:
, enableOfficialBranding ? isTorBrowserLike # > As the person who did part of the work described in the LWN article
# > and release manager working for Mozilla, I can confirm the statement
# > that I made in
# > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006
# >
# > @garbas shared with me the list of patches applied for the Nix package.
# > As they are just for portability and tiny modifications, they don't
# > alter the experience of the product. In parallel, Rok also shared the
# > build options. They seem good (even if I cannot judge the quality of the
# > packaging of the underlying dependencies like sqlite, png, etc).
# > Therefor, as long as you keep the patch queue sane and you don't alter
# > the experience of Firefox users, you won't have any issues using the
# > official branding.
, enableOfficialBranding ? true
}: }:
assert stdenv.cc ? libc && stdenv.cc.libc != null; assert stdenv.cc ? libc && stdenv.cc.libc != null;
@ -88,8 +101,20 @@ stdenv.mkDerivation (rec {
rm -f js/src/configure rm -f js/src/configure
rm -f .mozconfig* rm -f .mozconfig*
'' + lib.optionalString (stdenv.lib.versionAtLeast version "58.0.0") ''
cat >.mozconfig <<END_MOZCONFIG
${lib.concatStringsSep "\n" (map (flag: "ac_add_options ${flag}") configureFlags)}
${lib.optionalString googleAPISupport "ac_add_options --with-google-api-keyfile=$TMPDIR/ga"}
END_MOZCONFIG
'' + lib.optionalString googleAPISupport ''
# Google API key used by Chromium and Firefox.
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
# please get your own set of keys.
echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
configureFlagsArray+=("--with-google-api-keyfile=$TMPDIR/ga")
'' + ''
# this will run autoconf213 # this will run autoconf213
make -f client.mk configure-files ${if (stdenv.lib.versionAtLeast version "58.0.0") then "./mach configure" else "make -f client.mk configure-files"}
configureScript="$(realpath ./configure)" configureScript="$(realpath ./configure)"
@ -99,11 +124,6 @@ stdenv.mkDerivation (rec {
test -f layout/style/ServoBindings.toml && sed -i -e '/"-DMOZ_STYLO"/ a , "-cxx-isystem", "'$cxxLib'", "-isystem", "'$archLib'"' layout/style/ServoBindings.toml test -f layout/style/ServoBindings.toml && sed -i -e '/"-DMOZ_STYLO"/ a , "-cxx-isystem", "'$cxxLib'", "-isystem", "'$archLib'"' layout/style/ServoBindings.toml
cd obj-* cd obj-*
'' + lib.optionalString googleAPISupport ''
# Google API key used by Chromium and Firefox.
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
# please get your own set of keys.
echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" >ga
''; '';
configureFlags = [ configureFlags = [
@ -166,7 +186,6 @@ stdenv.mkDerivation (rec {
++ flag gssSupport "negotiateauth" ++ flag gssSupport "negotiateauth"
++ lib.optional (!ffmpegSupport) "--disable-gstreamer" ++ lib.optional (!ffmpegSupport) "--disable-gstreamer"
++ flag webrtcSupport "webrtc" ++ flag webrtcSupport "webrtc"
++ lib.optional googleAPISupport "--with-google-api-keyfile=ga"
++ flag crashreporterSupport "crashreporter" ++ flag crashreporterSupport "crashreporter"
++ lib.optional drmSupport "--enable-eme=widevine" ++ lib.optional drmSupport "--enable-eme=widevine"

View File

@ -6,10 +6,10 @@ rec {
firefox = common rec { firefox = common rec {
pname = "firefox"; pname = "firefox";
version = "57.0.4"; version = "58.0.1";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "58846037aebbf14b85e6b3a46dbe617c780c6916e437ea4ee32a2502a6b55e3689921a0be28b920dedf2f966195df04ac8e45411caeb2601a168ec08b4827cf0"; sha512 = "08xgv1qm2xx5wjczqg1ldf0yqm939zsghhr4acbkwnymv5apfak3vx0kcr9iwqkmdqjdjmggxz439kjn510f92fik33zjfsjn7sd9k5";
}; };
patches = patches =

View File

@ -29,13 +29,13 @@ let
in python3Packages.buildPythonApplication rec { in python3Packages.buildPythonApplication rec {
name = "qutebrowser-${version}${versionPostfix}"; name = "qutebrowser-${version}${versionPostfix}";
namePrefix = ""; namePrefix = "";
version = "1.1.0"; version = "1.1.1";
versionPostfix = ""; versionPostfix = "";
# the release tarballs are different from the git checkout! # the release tarballs are different from the git checkout!
src = fetchurl { src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz"; url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz";
sha256 = "1w02z5akr1v2517rbqrnv65vfsqvgw310g2nhanbwdg606crzr94"; sha256 = "09fa77rg1yrl8cksavxmgm9z2246s4d8wjbkl5jm1gsam345f7mz";
}; };
# Needs tox # Needs tox

View File

@ -15,15 +15,15 @@ let
# instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is # 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 # currently https://storage.googleapis.com/minikube/k8s_releases.json
localkube-version = "1.8.0"; localkube-version = "1.9.0";
localkube-binary = fetchurl { localkube-binary = fetchurl {
url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64"; url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64";
sha256 = "09mv1g9i0d14brvvp2wxgmfqvgp0na5dbm4z76a660q1fxszvgqc"; sha256 = "1z5c061mx2flg6hq05d00bvkn722gxv8y9rfpjyk23nk697k31fh";
}; };
in buildGoPackage rec { in buildGoPackage rec {
pname = "minikube"; pname = "minikube";
name = "${pname}-${version}"; name = "${pname}-${version}";
version = "0.24.1"; version = "0.25.0";
goPackagePath = "k8s.io/minikube"; goPackagePath = "k8s.io/minikube";
@ -31,7 +31,7 @@ in buildGoPackage rec {
owner = "kubernetes"; owner = "kubernetes";
repo = "minikube"; repo = "minikube";
rev = "v${version}"; rev = "v${version}";
sha256 = "18b5ic4lcn84hq2ji5alyx58x9vi0b03544i5xzfgn3h2k78kynk"; sha256 = "0nsdi8mr8p69z696ksfb5ahzqqnvjn4a2z6cp0kyby8sakcjhsby";
}; };
patches = [ patches = [

View File

@ -100,8 +100,8 @@ in rec {
terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues; terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues;
terraform_0_11 = pluggable (generic { terraform_0_11 = pluggable (generic {
version = "0.11.1"; version = "0.11.3";
sha256 = "04qyhlif3b3kjs3m6c3mx45sgr5r13x55aic638zzlrhbpmqiih1"; sha256 = "0637x7jcm62pdnivmh4rggly6dmlvdh3jpsd1z4vba15gbm203nz";
patches = [ ./provider-path.patch ]; patches = [ ./provider-path.patch ];
passthru = { inherit plugins; }; passthru = { inherit plugins; };
}); });

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "terragrunt-${version}"; name = "terragrunt-${version}";
version = "0.13.23"; version = "0.14.0";
goPackagePath = "github.com/gruntwork-io/terragrunt"; goPackagePath = "github.com/gruntwork-io/terragrunt";
@ -10,7 +10,7 @@ buildGoPackage rec {
rev = "v${version}"; rev = "v${version}";
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = "terragrunt"; repo = "terragrunt";
sha256 = "1xx3kw38vr563x3bn0rrg1iq4r51rl0qci2magwwng62cgh3zaiy"; sha256 = "1fz4ny7jmwr1xp68bmzlb6achird7jwbb6n6zim6c1w0qybxiqg9";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;

View File

@ -5,8 +5,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/aws/aws-sdk-go"; url = "https://github.com/aws/aws-sdk-go";
rev = "d0cb8551ac28d362e77ea475e5b7b2ebaec06b6b"; rev = "00cca3f093a8236a93fbbeeae7d28ad83811683c";
sha256 = "1546kb49wb1qjx6pz7aj4iygmqsjps70npb5csm5q08wxk63vhls"; sha256 = "1x2frsin6d9drx9k65pv0r0l0asj16fzj815s2a9db2mxh8jycsp";
}; };
} }
{ {
@ -41,8 +41,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/hashicorp/go-getter"; url = "https://github.com/hashicorp/go-getter";
rev = "994f50a6f071b07cfbea9eca9618c9674091ca51"; rev = "285374cdfad63de2c43d7562f49ced6dde5a7ba0";
sha256 = "1v2whvi9rnrkz4ji3b3sinvv3ahr5s4iyzchz00wjw0q2kdvj1zj"; sha256 = "0xmwxfb0vm20ga1j1r3lavxm15vwqdkisdkshw1nia7byhwmb4xm";
}; };
} }
{ {
@ -68,8 +68,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/mattn/go-zglob"; url = "https://github.com/mattn/go-zglob";
rev = "4b74c24375b3b1ee226867156e01996f4e19a8d6"; rev = "4959821b481786922ac53e7ef25c61ae19fb7c36";
sha256 = "1qc502an4q3wgvrd9zw6zprgm28d90d2f98bdamdf4js03jj22xn"; sha256 = "0rwkdw143kphpmingsrw1zp030zf3p08f64h347jpdm4lz8z5449";
}; };
} }
{ {
@ -95,8 +95,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/mitchellh/mapstructure"; url = "https://github.com/mitchellh/mapstructure";
rev = "06020f85339e21b2478f756a78e295255ffa4d6a"; rev = "b4575eea38cca1123ec2dc90c26529b5c5acfcff";
sha256 = "12zb5jh7ri4vna3f24y9g10nzrnz9wbvwnk29wjk3vg0ljia64s9"; sha256 = "1x80f3kcb1wd2mdxks3wcsp26q9g7ahr8b18z1anl5igg6zl61kf";
}; };
} }
{ {
@ -104,8 +104,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/stretchr/testify"; url = "https://github.com/stretchr/testify";
rev = "2aa2c176b9dab406a6970f6a55f513e8a8c8b18f"; rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71";
sha256 = "1j92x4291flz3i4pk6bi3y59nnsi6lj34zmyfp7axf68fd8vm5ml"; sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd";
}; };
} }
{ {
@ -122,8 +122,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/urfave/cli"; url = "https://github.com/urfave/cli";
rev = "39908eb08fee7c10d842622a114a5c133fb0a3c6"; rev = "75104e932ac2ddb944a6ea19d9f9f26316ff1145";
sha256 = "1s0whq54xmcljdg94g6sghpf6mkhf6fdxxb18zg0yzzj6fz9yj8j"; sha256 = "13iagavgqq3sn9m3sck0chydwy5rcbhj0ylvc1169vs8q2m13yh9";
}; };
} }
] ]

View File

@ -40,13 +40,13 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "signal-desktop-${version}"; name = "signal-desktop-${version}";
version = "1.1.0"; version = "1.3.0";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
fetchurl { fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1v0ydfdgcnkh6rk7gmqbjrzpz56mw2gjmakz58gpn167ln7l1vkl"; sha256 = "047l3yyqvzyi5969r0n9cwdarsxfbssj415ysh57w7vkdp01axsr";
} }
else else
throw "Signal for Desktop is not currently supported on ${stdenv.system}"; throw "Signal for Desktop is not currently supported on ${stdenv.system}";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchgit, pkgconfig { stdenv, fetchurl, fetchgit, fetchpatch, pkgconfig
, qt4, qmake4Hook, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap , qt4, qmake4Hook, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
, alsaLib, python , alsaLib, python
, jackSupport ? false, libjack2 ? null , jackSupport ? false, libjack2 ? null
@ -17,7 +17,7 @@ let
generic = overrides: source: stdenv.mkDerivation (source // overrides // { generic = overrides: source: stdenv.mkDerivation (source // overrides // {
name = "${overrides.type}-${source.version}"; name = "${overrides.type}-${source.version}";
patches = optional jackSupport ./mumble-jack-support.patch; patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch;
nativeBuildInputs = [ pkgconfig python ] nativeBuildInputs = [ pkgconfig python ]
++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmake ]; }."qt${toString source.qtVersion}" ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmake ]; }."qt${toString source.qtVersion}"
@ -116,6 +116,13 @@ let
url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz"; url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
sha256 = "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh"; sha256 = "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh";
}; };
# Fix compile error against boost 1.66 (#33655):
patches = singleton (fetchpatch {
url = "https://github.com/mumble-voip/mumble/commit/"
+ "ea861fe86743c8402bbad77d8d1dd9de8dce447e.patch";
sha256 = "1r50dc8dcl6jmbj4abhnay9div7y56kpmajzqd7ql0pm853agwbh";
});
}; };
gitSource = rec { gitSource = rec {

View File

@ -1,42 +1,21 @@
{ stdenv, fetchurl, fetchpatch }: { stdenv, fetchurl, fetchpatch }:
rec { rec {
version = "3.1.2"; version = "3.1.3";
src = fetchurl { src = fetchurl {
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz"; url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
sha256 = "1hm1q04hz15509f0p9bflw4d6jzfvpm1d36dxjwihk1wzakn5ypc"; sha256 = "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m";
}; };
patches = [ upstreamPatchTarball = fetchurl {
(fetchurl {
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz"; url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
sha256 = "09i3dcl37p22dp75vlnsvx7bm05ggafnrf1zwhf2kbij4ngvxvpd"; sha256 = "167vk463bb3xl9c4gsbxms111dk1ip7pq8y361xc0xfa427q9hhd";
}) };
(fetchpatch {
name = "CVE-2017-16548.patch";
url = "https://git.samba.org/rsync.git/?p=rsync.git;a=commitdiff_plain;h=47a63d90e71d3e19e0e96052bb8c6b9cb140ecc1;hp=bc112b0e7feece62ce98708092306639a8a53cce";
sha256 = "1dcdnfhbc5gd0ph7pds0xr2v8rpb2a4p7l9c1wml96nhnyww1pg1";
})
(fetchpatch {
name = "CVE-2017-17433.patch";
url = "https://git.samba.org/?p=rsync.git;a=patch;h=3e06d40029cfdce9d0f73d87cfd4edaf54be9c51";
sha256 = "1kvnh6znp37a447h9fm2pk7v4phx20bk60j4wbsd92xlpp7vck52";
})
(fetchpatch {
name = "CVE-2017-17434-patch1.patch";
url = "https://git.samba.org/?p=rsync.git;a=patch;h=5509597decdbd7b91994210f700329d8a35e70a1";
sha256 = "16gg670s6b4gn3fywkkagixkpkpf31a3fiqx2a544640pblbgvyx";
})
(fetchpatch {
name = "CVE-2017-17434-patch2.patch";
url = "https://git.samba.org/?p=rsync.git;a=patch;h=70aeb5fddd1b2f8e143276f8d5a085db16c593b9";
sha256 = "182pc5bk1i57ganyn51bcs6vi2fib7zcw4kz3iyqkzihnjds10a6";
})
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://rsync.samba.org/; description = "Fast incremental file transfer utility";
homepage = https://rsync.samba.org/;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.unix; platforms = platforms.unix;
}; };

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
mainSrc = base.src; mainSrc = base.src;
patchesSrc = base.patches; patchesSrc = base.upstreamPatchTarball;
srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc; srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc;
patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff"; patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";

View File

@ -2,10 +2,10 @@
, hicolor_icon_theme, libsoup, gnome3 }: , hicolor_icon_theme, libsoup, gnome3 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "homebank-5.1.6"; name = "homebank-5.1.7";
src = fetchurl { src = fetchurl {
url = "http://homebank.free.fr/public/${name}.tar.gz"; url = "http://homebank.free.fr/public/${name}.tar.gz";
sha256 = "1q4h890g6a6pm6kfiavbq9sbpsnap0f854sja2y5q3x0j0ay2q98"; sha256 = "19szz86jxya8v4r3pa5czng9q2kn5hhbk273x1wqvdv40z0577jp";
}; };
nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ pkgconfig wrapGAppsHook ];

View File

@ -65,6 +65,6 @@ let
runScript = target; runScript = target;
}; };
in buildFHSUserEnv { in buildFHSUserEnv {
name = attrs.toolName; name = "${attrs.toolName}-${attrs.version}";
runScript = "${pkg.outPath}/bin/${attrs.toolName}"; runScript = "${pkg.outPath}/bin/${attrs.toolName}";
} // { inherit (pkg) meta name; } } // { inherit (pkg) meta name; }

View File

@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
sha256 = "0irh9b4haz0pzzxrb4hwcss91a0xb499kjrcrmr2s59p3zq8bbd9"; sha256 = "0irh9b4haz0pzzxrb4hwcss91a0xb499kjrcrmr2s59p3zq8bbd9";
}; };
buildInputs = [ gmp cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ gmp ];
enableParallelBuilding = true; enableParallelBuilding = true;
preConfigure = '' preConfigure = ''

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "symbiyosys-${version}"; name = "symbiyosys-${version}";
version = "2018.01.10"; version = "2018.02.04";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cliffordwolf"; owner = "yosyshq";
repo = "symbiyosys"; repo = "symbiyosys";
rev = "25936009bbc2cffd289c607ddf42a578527aa59c"; rev = "236f6412c1c1afe95d752eaf907f66f19c343134";
sha256 = "06idd8vbn4s2k6bja4f6lxjc4qwgbak2fhfxj8f18ki1xb3yqfh6"; sha256 = "06bsvvkn9yhz9jvgf7a6pf407ab9m5qrr42niww666z967xdw4p0";
}; };
buildInputs = [ python3 yosys ]; buildInputs = [ python3 yosys ];

View File

@ -100,6 +100,8 @@ rec {
gitflow = callPackage ./gitflow { }; gitflow = callPackage ./gitflow { };
grv = callPackage ./grv { };
hub = callPackage ./hub { hub = callPackage ./hub {
inherit (darwin) Security; inherit (darwin) Security;
}; };

View File

@ -0,0 +1,29 @@
{ stdenv, buildGoPackage, fetchFromGitHub, curl, libgit2_0_25, ncurses, pkgconfig, readline }:
let
version = "0.1.1";
in
buildGoPackage {
name = "grv-${version}";
buildInputs = [ ncurses readline curl libgit2_0_25 ];
nativeBuildInputs = [ pkgconfig ];
goPackagePath = "github.com/rgburke/grv";
goDeps = ./deps.nix;
src = fetchFromGitHub {
owner = "rgburke";
repo = "grv";
rev = "v${version}";
sha256 = "0q9gvxfw48d4kjpb2jx7lg577vazjg0n961y6ija5saja5n16mk2";
};
meta = with stdenv.lib; {
description = " GRV is a terminal interface for viewing git repositories";
homepage = https://github.com/rgburke/grv;
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ andir ];
};
}

View File

@ -0,0 +1,102 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/Sirupsen/logrus";
fetch = {
type = "git";
url = "https://github.com/Sirupsen/logrus";
rev = "768a92a02685ee7535069fc1581341b41bab9b72";
sha256 = "1m67cxb6p0zgq0xba63qb4vvy6z5d78alya0vnx5djfixygiij53";
};
}
{
goPackagePath = "github.com/bradfitz/slice";
fetch = {
type = "git";
url = "https://github.com/bradfitz/slice";
rev = "d9036e2120b5ddfa53f3ebccd618c4af275f47da";
sha256 = "189h48w3ppvx2kqyxq0s55kxv629lljjxbyqjnlrgg8fy6ya8wgy";
};
}
{
goPackagePath = "github.com/gobwas/glob";
fetch = {
type = "git";
url = "https://github.com/gobwas/glob";
rev = "51eb1ee00b6d931c66d229ceeb7c31b985563420";
sha256 = "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp";
};
}
{
goPackagePath = "github.com/mattn/go-runewidth";
fetch = {
type = "git";
url = "https://github.com/mattn/go-runewidth";
rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d";
sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg";
};
}
{
goPackagePath = "github.com/rgburke/goncurses";
fetch = {
type = "git";
url = "https://github.com/rgburke/goncurses";
rev = "9a788ac9d81e61c6a2ca6205ee8d72d738ed12b9";
sha256 = "0xqwxscdszbybriyzqmsd2zkzda9anckx56q8gksfy3gwj286gpb";
};
}
{
goPackagePath = "github.com/rjeczalik/notify";
fetch = {
type = "git";
url = "https://github.com/rjeczalik/notify";
rev = "27b537f07230b3f917421af6dcf044038dbe57e2";
sha256 = "05alsqjz2x8jzz2yp8r20zwglcg7y1ywq60zy6icj18qs3abmlp0";
};
}
{
goPackagePath = "github.com/tchap/go-patricia";
fetch = {
type = "git";
url = "https://github.com/tchap/go-patricia";
rev = "5ad6cdb7538b0097d5598c7e57f0a24072adf7dc";
sha256 = "0351x63zqympgfsnjl78cgvqhvipl3kfs1i15hfaw91hqin6dykr";
};
}
{
goPackagePath = "go4.org";
fetch = {
type = "git";
url = "https://github.com/camlistore/go4";
rev = "fba789b7e39ba524b9e60c45c37a50fae63a2a09";
sha256 = "01irxqy8na646b4zbw7v3zwy3yx9m7flhim5c3z4lzq5hiy2h75i";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "1875d0a70c90e57f11972aefd42276df65e895b9";
sha256 = "1kprrdzr4i4biqn7r9gfxzsmijya06i9838skprvincdb1pm0q2q";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "3dbebcf8efb6a5011a60c2b4591c1022a759af8a";
sha256 = "02pwjyimpm13km3fk0rg2l9p37w7qycdwp74piawwgcgh80qnww9";
};
}
{
goPackagePath = "gopkg.in/libgit2/git2go.v25";
fetch = {
type = "git";
url = "https://gopkg.in/libgit2/git2go.v25";
rev = "334260d743d713a55ff3c097ec6707f2bb39e9d5";
sha256 = "0hfya9z2pg29zbc0s92hj241rnbk7d90jzj34q0dp8b7akz6r1rc";
};
}
]

View File

@ -1,17 +1,20 @@
{ stdenv, fetchurl, cmake, qtbase }: { stdenv, fetchgit, cmake, qtbase }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qgit-2.6"; name = "qgit-2.7";
src = fetchurl { src = fetchgit {
url = "http://libre.tibirna.org/attachments/download/12/${name}.tar.gz"; url = "http://repo.or.cz/qgit4/redivivus.git";
sha256 = "1brrhac6s6jrw3djhgailg5d5s0vgrfvr0sczqgzpp3i6pxf8qzl"; rev = name;
sha256 = "0c0zxykpgkxb8gpgzz5i6b8nrzg7cdxikvpg678x7gsnxhlwjv3a";
}; };
buildInputs = [ qtbase ]; buildInputs = [ qtbase ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
license = licenses.gpl2; license = licenses.gpl2;
homepage = http://libre.tibirna.org/projects/qgit/wiki/QGit; homepage = http://libre.tibirna.org/projects/qgit/wiki/QGit;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "src-${version}"; name = "src-${version}";
version = "1.13"; version = "1.17";
src = fetchurl { src = fetchurl {
url = "http://www.catb.org/~esr/src/${name}.tar.gz"; url = "http://www.catb.org/~esr/src/${name}.tar.gz";
sha256 = "0l13ld8nxm1c720ns22lyx3q1bq2c2zn78vi5w92b7nl6p2nncy8"; sha256 = "17885hpq8nxhqzwl50nrgdk1q9dq4cxjxldgkk8shdf08s5hcqhk";
}; };
buildInputs = [ python rcs git makeWrapper ]; buildInputs = [ python rcs git makeWrapper ];

View File

@ -208,4 +208,16 @@ rec {
tiniRev = "949e6facb77383876aeff8a6944dde66b3089574"; tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw"; tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
}; };
docker_18_01 = dockerGen rec {
version = "18.01.0-ce";
rev = "03596f51b120095326d2004d676e97228a21014d"; # git commit
sha256 = "1zffaxwkfz8ca76f5ql5z76mcjx37jbgv2kk75i68487yg16x0md";
runcRev = "b2567b37d7b75eb4cf325b77297b140ea686ce8f";
runcSha256 = "0zarsrbfcm1yp6mdl6rcrigdf7nb70xmv2cbggndz0qqyrw0mk0l";
containerdRev = "89623f28b87a6004d4b785663257362d1658a729";
containerdSha256 = "0irx7ps6rhq7z69cr3gspxdr7ywrv6dz62gkr1z2723cki9hsxma";
tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
};
} }

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub
, pkgconfig, SDL2, SDL, SDL2_ttf, openssl, spice_protocol, fontconfig
, libX11, freefont_ttf
}:
stdenv.mkDerivation rec {
name = "looking-glass-client-${version}";
version = "a10";
src = fetchFromGitHub {
owner = "gnif";
repo = "LookingGlass";
rev = version;
sha256 = "10jxnkrvskjzkg86iz3hnb5v91ykzx6pvcnpy1v4436g5f2d62wn";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL SDL2 SDL2_ttf openssl spice_protocol fontconfig
libX11 freefont_ttf
];
enableParallelBuilding = true;
sourceRoot = "source/client";
installPhase = ''
mkdir -p $out
mv bin $out/
'';
meta = with stdenv.lib; {
description = "A KVM Frame Relay (KVMFR) implementation";
longDescription = ''
Looking Glass is an open source application that allows the use of a KVM
(Kernel-based Virtual Machine) configured for VGA PCI Pass-through
without an attached physical monitor, keyboard or mouse. This is the final
step required to move away from dual booting with other operating systems
for legacy programs that require high performance graphics.
'';
homepage = https://looking-glass.hostfission.com/;
license = licenses.gpl2Plus;
maintainers = [ maintainers.pneumaticat ];
platforms = platforms.linux;
};
}

View File

@ -21,10 +21,10 @@ let
buildType = "release"; buildType = "release";
# Manually sha256sum the extensionPack file, must be hex! # Manually sha256sum the extensionPack file, must be hex!
# Do not forget to update the hash in ./guest-additions/default.nix! # Do not forget to update the hash in ./guest-additions/default.nix!
extpack = "98e9df4f23212c3de827af9d770b391cf2dba8d21f4de597145512c1479302cd"; extpack = "70584a70b666e9332ae2c6be0e64da4b8e3a27124801156577f205750bdde4f5";
extpackRev = "119785"; extpackRev = "120293";
main = "053xpf0kxrig4jq5djfz9drhkxy1x5a4p9qvgxc0b3hnk6yn1869"; main = "1rx45ivwk89ghjc5zdd7c7j92w0w3930xj7l1zhwrvshxs454w7y";
version = "5.2.4"; version = "5.2.6";
# See https://github.com/NixOS/nixpkgs/issues/672 for details # See https://github.com/NixOS/nixpkgs/issues/672 for details
extensionPack = requireFile rec { extensionPack = requireFile rec {

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "0qhsr6vc48ld2p9q3a6n6rfg57rsn163axr3r1m2yqr2snr4pnk0"; sha256 = "1px9jp6lv7ff7kn4ns5r4dq7xl4wiz3h4ckgdhgvxs040njpdzy5";
}; };
KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";

View File

@ -41,7 +41,6 @@ with luaPackages; stdenv.mkDerivation rec {
#cmakeFlags = "-DGENERATE_MANPAGES=ON"; #cmakeFlags = "-DGENERATE_MANPAGES=ON";
cmakeFlags = "-DOVERRIDE_VERSION=${version}"; cmakeFlags = "-DOVERRIDE_VERSION=${version}";
LD_LIBRARY_PATH = "${stdenv.lib.makeLibraryPath [ cairo pango gobjectIntrospection ]}";
GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so"; LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"; LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua";
@ -52,7 +51,6 @@ with luaPackages; stdenv.mkDerivation rec {
--add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \ --add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \
--add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \ --add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \
--prefix PATH : "${stdenv.lib.makeBinPath [ compton unclutter procps iproute coreutils curl alsaUtils findutils xterm ]}" --prefix PATH : "${stdenv.lib.makeBinPath [ compton unclutter procps iproute coreutils curl alsaUtils findutils xterm ]}"
wrapProgram $out/bin/awesome-client \ wrapProgram $out/bin/awesome-client \

View File

@ -1,15 +1,5 @@
From 00c5af939567429d40877845dc52b54fde2d8a50 Mon Sep 17 00:00:00 2001
From: "Alexander V. Nikolaev" <avn@avnik.info>
Date: Thu, 26 Nov 2015 10:53:12 +0200
Subject: [PATCH 1/3] Substitution vars for absolute paths
---
libqtile/pangocffi.py | 6 +++---
libqtile/xcursors.py | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
index 27691d1..25f690d 100644 index 1e8f5c04..e860d43a 100644
--- a/libqtile/pangocffi.py --- a/libqtile/pangocffi.py
+++ b/libqtile/pangocffi.py +++ b/libqtile/pangocffi.py
@@ -58,9 +58,9 @@ except ImportError: @@ -58,9 +58,9 @@ except ImportError:
@ -26,18 +16,15 @@ index 27691d1..25f690d 100644
def CairoContext(cairo_t): def CairoContext(cairo_t):
diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py
index e0e55e1..59b6428 100644 index f1133555..3e61204a 100644
--- a/libqtile/xcursors.py --- a/libqtile/xcursors.py
+++ b/libqtile/xcursors.py +++ b/libqtile/xcursors.py
@@ -114,7 +114,7 @@ class Cursors(dict): @@ -112,7 +112,7 @@ class Cursors(dict):
def _setup_xcursor_binding(self): def _setup_xcursor_binding(self):
try: try:
- xcursor = ffi.dlopen('libxcb-cursor.so') - xcursor = ffi.dlopen('libxcb-cursor.so')
+ xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so') + xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so')
except OSError: except OSError:
self.log.warning("xcb-cursor not found, fallback to font pointer") logger.warning("xcb-cursor not found, fallback to font pointer")
return False return False
--
2.6.3

View File

@ -1,57 +1,52 @@
From f299a0aa0eefcf16bb4990f00ac3946727f43ef3 Mon Sep 17 00:00:00 2001 diff --git a/bin/qshell b/bin/qshell
From: "Alexander V. Nikolaev" <avn@avnik.info> index 2ba7e61c..0ac2a2ef 100755
Date: Fri, 27 Nov 2015 10:49:48 +0200 --- a/bin/qshell
Subject: [PATCH 2/3] Restore PATH and PYTHONPATH +++ b/bin/qshell
@@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
--- sys.path.insert(0, base_dir)
bin/qtile | 1 +
bin/qtile-run | 1 +
bin/qtile-session | 2 ++
libqtile/utils.py | 7 +++++++
4 files changed, 11 insertions(+)
if __name__ == '__main__':
+ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
from libqtile.scripts import qshell
qshell.main()
diff --git a/bin/qtile b/bin/qtile diff --git a/bin/qtile b/bin/qtile
index 66034fe..ce3fcd1 100755 index 3e82814d..335b5cea 100755
--- a/bin/qtile --- a/bin/qtile
+++ b/bin/qtile +++ b/bin/qtile
@@ -131,6 +131,7 @@ def make_qtile(): @@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
sys.path.insert(0, base_dir)
if __name__ == '__main__':
if __name__ == "__main__":
+ __import__("importlib").import_module("libqtile.utils").restore_os_environment() + __import__("importlib").import_module("libqtile.utils").restore_os_environment()
rename_process() from libqtile.scripts import qtile
q = make_qtile() qtile.main()
try:
diff --git a/bin/qtile-run b/bin/qtile-run diff --git a/bin/qtile-run b/bin/qtile-run
index ccedb96..646a476 100755 index e4b121be..1c203bc9 100755
--- a/bin/qtile-run --- a/bin/qtile-run
+++ b/bin/qtile-run +++ b/bin/qtile-run
@@ -50,6 +50,7 @@ def main(): @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
proc.wait() sys.path.insert(0, base_dir)
if __name__ == "__main__": if __name__ == '__main__':
+ __import__("importlib").import_module("libqtile.utils").restore_os_environment() + __import__("importlib").import_module("libqtile.utils").restore_os_environment()
try: from libqtile.scripts import qtile_run
main() qtile_run.main()
except KeyboardInterrupt: diff --git a/bin/qtile-top b/bin/qtile-top
diff --git a/bin/qtile-session b/bin/qtile-session index 5316e0e7..272c6430 100755
index 84f6a2d..da31b12 100755 --- a/bin/qtile-top
--- a/bin/qtile-session +++ b/bin/qtile-top
+++ b/bin/qtile-session @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -25,6 +25,8 @@ sys.path.insert(0, base_dir)
Qtile session manager.
"""
+__import__("importlib").import_module("libqtile.utils").restore_os_environment() if __name__ == '__main__':
+ + __import__("importlib").import_module("libqtile.utils").restore_os_environment()
from libqtile.log_utils import init_log from libqtile.scripts import qtile_top
import logging qtile_top.main()
import os
diff --git a/libqtile/utils.py b/libqtile/utils.py diff --git a/libqtile/utils.py b/libqtile/utils.py
index 284089b..ec3539e 100644 index 36ed0a58..bca9eab3 100644
--- a/libqtile/utils.py --- a/libqtile/utils.py
+++ b/libqtile/utils.py +++ b/libqtile/utils.py
@@ -227,3 +227,11 @@ def describe_attributes(obj, attrs, func=None): @@ -240,3 +240,11 @@ def describe_attributes(obj, attrs, func=None):
pairs.append('%s=%s' % (attr, value)) pairs.append('%s=%s' % (attr, value))
return ', '.join(pairs) return ', '.join(pairs)

View File

@ -1,17 +1,8 @@
From b560c11078fecc35df2c62f34beda06c4e80a10d Mon Sep 17 00:00:00 2001
From: "Alexander V. Nikolaev" <avn@avnik.info>
Date: Fri, 27 Nov 2015 10:54:35 +0200
Subject: [PATCH 3/3] Restart executable
---
libqtile/manager.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libqtile/manager.py b/libqtile/manager.py diff --git a/libqtile/manager.py b/libqtile/manager.py
index b1a38e2..110f7d8 100644 index 36518a74..9b6bdd02 100644
--- a/libqtile/manager.py --- a/libqtile/manager.py
+++ b/libqtile/manager.py +++ b/libqtile/manager.py
@@ -1339,7 +1339,7 @@ class Qtile(command.CommandObject): @@ -1386,7 +1386,7 @@ class Qtile(command.CommandObject):
argv = [s for s in argv if not s.startswith('--with-state')] argv = [s for s in argv if not s.startswith('--with-state')]
argv.append('--with-state=' + buf.getvalue().decode()) argv.append('--with-state=' + buf.getvalue().decode())
@ -19,7 +10,4 @@ index b1a38e2..110f7d8 100644
+ self.cmd_execute(os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:]) + self.cmd_execute(os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:])
def cmd_spawn(self, cmd): def cmd_spawn(self, cmd):
""" """Run cmd in a shell.
--
2.6.3

View File

@ -7,13 +7,13 @@ in
python27Packages.buildPythonApplication rec { python27Packages.buildPythonApplication rec {
name = "qtile-${version}"; name = "qtile-${version}";
version = "0.10.4"; version = "0.10.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qtile"; owner = "qtile";
repo = "qtile"; repo = "qtile";
rev = "v${version}"; rev = "v${version}";
sha256 = "0rwklzgkp3x242xql6qmfpfnhr788hd3jc1l80pc5ybxlwyfx59i"; sha256 = "18szgplyym0b65vnaa8nqzadq6q0mhsiky9g5hqhn7xzf4kykmj8";
}; };
patches = [ patches = [

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides { stdenv, fetchurl, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
, wayland, wlc, dbus_libs, dbus_glib, cairo, libxkbcommon, pam, python3Packages, lemonbar , wayland, wlc, cairo, libxkbcommon, pam, python3Packages, lemonbar, gdk_pixbuf
}: }:
let let
@ -9,13 +9,10 @@ let
fakegit = writeShellScriptBin "git" '' fakegit = writeShellScriptBin "git" ''
echo "" echo ""
''; '';
way-cooler = ((callPackage ./way-cooler.nix {}).way_cooler_0_6_2.override { way-cooler = (((callPackage ./way-cooler.nix {}).way_cooler { builtin-lua = true; }).override {
crateOverrides = defaultCrateOverrides // { crateOverrides = defaultCrateOverrides // {
way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit ]; }; way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit gdk_pixbuf wayland ]; };
dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
gobject-sys = attrs: { buildInputs = [ dbus_glib ]; };
cairo-rs = attrs: { buildInputs = [ cairo ]; };
};}).overrideAttrs (oldAttrs: rec { };}).overrideAttrs (oldAttrs: rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -23,51 +20,35 @@ let
mkdir -p $out/etc mkdir -p $out/etc
cp -r config $out/etc/way-cooler cp -r config $out/etc/way-cooler
''; '';
# prior v0.7 https://github.com/way-cooler/way-cooler/issues/395
postFixup = '' postFixup = ''
makeWrapper $out/bin/way_cooler $out/bin/way-cooler \ cd $out/bin
mv way_cooler way-cooler
'';
});
wc-bg = ((callPackage ./wc-bg.nix {}).wc_bg {}).overrideAttrs (oldAttrs: rec {
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
makeWrapper $out/bin/wc_bg $out/bin/wc-bg \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}" --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
''; '';
}); });
wc-bg = ((callPackage ./wc-bg.nix {}).way_cooler_bg_0_2_1.override { wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab {}).overrideAttrs (oldAttrs: rec {
crateOverrides = defaultCrateOverrides // {
dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
};}).overrideAttrs (oldAttrs: rec {
postFixup = ''
cd $out/bin
mv way_cooler_bg way-cooler-bg
'';
});
wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab_0_2_0.override {
crateOverrides = defaultCrateOverrides // {
wc-grab = attrs: {
src = fetchFromGitHub {
owner = "way-cooler";
repo = "way-cooler-grab";
rev = "v0.2.0";
sha256 = "1pc8rhvzdi6bi8g5w03i0ygbcpks9051c3d3yc290rgmmmmkmnwq";
};
};
dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
};}).overrideAttrs (oldAttrs: rec {
postFixup = '' postFixup = ''
cd $out/bin cd $out/bin
mv wc_grab wc-grab mv wc_grab wc-grab
''; '';
}); });
wc-lock = ((callPackage ./wc-lock.nix {}).wc_lock_0_1_0.override { wc-lock = (((callPackage ./wc-lock.nix {}).wc_lock {}).override {
crateOverrides = defaultCrateOverrides // { wc-lock = attrs: { crateOverrides = defaultCrateOverrides // {
buildInputs = [ pam ]; wc-lock = attrs: { buildInputs = [ pam ]; };
};};}).overrideAttrs (oldAttrs: rec { };}).overrideAttrs (oldAttrs: rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
postFixup = '' postFixup = ''
makeWrapper $out/bin/wc_lock $out/bin/wc-lock \ makeWrapper $out/bin/wc_lock $out/bin/wc-lock \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon ]}" --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon wayland ]}"
''; '';
}); });
# https://github.com/way-cooler/way-cooler/issues/446 # https://github.com/way-cooler/way-cooler/issues/446
@ -102,7 +83,7 @@ let
${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d ${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d
''; '';
in symlinkJoin rec { in symlinkJoin rec {
version = "0.6.2"; version = "0.8.0";
name = "way-cooler-with-extensions-${version}"; name = "way-cooler-with-extensions-${version}";
paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ]; paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ];

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