Merge remote-tracking branch 'upstream/master' into staging

This commit is contained in:
John Ericson 2020-04-13 22:17:15 -04:00
commit c8a6ea5161
58 changed files with 1094 additions and 271 deletions

View File

@ -25,6 +25,12 @@ If applicable, add screenshots to help explain your problem.
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.
**Notify maintainers**
<!--
Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something.
-->
**Metadata** **Metadata**
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result. Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.

View File

@ -193,14 +193,7 @@ rec {
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz" (showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
(showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux"
*/ */
showOption = parts: let showOption = parts: concatMapStringsSep "." escapeNixIdentifier parts;
escapeOptionPart = part:
let
escaped = lib.strings.escapeNixString part;
in if escaped == "\"${part}\""
then part
else escaped;
in (concatStringsSep ".") (map escapeOptionPart parts);
showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files); showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files);
unknownModule = "<unknown-file>"; unknownModule = "<unknown-file>";

View File

@ -315,6 +315,21 @@ rec {
*/ */
escapeNixString = s: escape ["$"] (builtins.toJSON s); escapeNixString = s: escape ["$"] (builtins.toJSON s);
/* Quotes a string if it can't be used as an identifier directly.
Type: string -> string
Example:
escapeNixIdentifier "hello"
=> "hello"
escapeNixIdentifier "0abc"
=> "\"0abc\""
*/
escapeNixIdentifier = s:
# Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91
if builtins.match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
then s else escapeNixString s;
# Obsolete - use replaceStrings instead. # Obsolete - use replaceStrings instead.
replaceChars = builtins.replaceStrings or ( replaceChars = builtins.replaceStrings or (
del: new: s: del: new: s:

75
lib/tests/maintainers.nix Normal file
View File

@ -0,0 +1,75 @@
# to run these tests:
# nix-build nixpkgs/lib/tests/maintainers.nix
# If nothing is output, all tests passed
{ pkgs ? import ../.. {} }:
let
inherit (pkgs) lib;
inherit (lib) types;
maintainerModule = { config, ... }: {
options = {
name = lib.mkOption {
type = types.str;
};
email = lib.mkOption {
type = types.str;
};
github = lib.mkOption {
type = types.nullOr types.str;
default = null;
};
githubId = lib.mkOption {
type = types.nullOr types.ints.unsigned;
default = null;
};
keys = lib.mkOption {
type = types.listOf (types.submodule {
options.longkeyid = lib.mkOption { type = types.str; };
options.fingerprint = lib.mkOption { type = types.str; };
});
default = [];
};
};
};
checkMaintainer = handle: uncheckedAttrs:
let
prefix = [ "lib" "maintainers" handle ];
checkedAttrs = (lib.modules.evalModules {
inherit prefix;
modules = [
maintainerModule
{
_file = toString ../../maintainers/maintainer-list.nix;
config = uncheckedAttrs;
}
];
}).config;
checkGithubId = lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) ''
echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.'
# Calling this too often would hit non-authenticated API limits, but this
# shouldn't happen since such errors will get fixed rather quickly
info=$(curl -sS https://api.github.com/users/${checkedAttrs.github})
id=$(jq -r '.id' <<< "$info")
echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:"
echo -e " githubId = $id;\n"
'';
in lib.deepSeq checkedAttrs checkGithubId;
missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers);
success = pkgs.runCommandNoCC "checked-maintainers-success" {} ">$out";
failure = pkgs.runCommandNoCC "checked-maintainers-failure" {
nativeBuildInputs = [ pkgs.curl pkgs.jq ];
outputHash = "sha256:${lib.fakeSha256}";
outputHAlgo = "sha256";
outputHashMode = "flat";
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
} ''
${lib.concatStringsSep "\n" missingGithubIds}
exit 1
'';
in if missingGithubIds == [] then success else failure

View File

@ -3,7 +3,10 @@
# This script is used to test that the module system is working as expected. # This script is used to test that the module system is working as expected.
# By default it test the version of nixpkgs which is defined in the NIX_PATH. # By default it test the version of nixpkgs which is defined in the NIX_PATH.
cd ./modules # https://stackoverflow.com/a/246128/6605742
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd "$DIR"/modules
pass=0 pass=0
fail=0 fail=0

View File

@ -1,7 +1,7 @@
{ pkgs ? import ((import ../.).cleanSource ../..) {} }: { pkgs ? import ../.. {} }:
pkgs.runCommandNoCC "nixpkgs-lib-tests" { pkgs.runCommandNoCC "nixpkgs-lib-tests" {
buildInputs = [ pkgs.nix (import ./check-eval.nix) ]; buildInputs = [ pkgs.nix (import ./check-eval.nix) (import ./maintainers.nix { inherit pkgs; }) ];
NIX_PATH = "nixpkgs=${toString pkgs.path}"; NIX_PATH = "nixpkgs=${toString pkgs.path}";
} '' } ''
datadir="${pkgs.nix}/share" datadir="${pkgs.nix}/share"
@ -17,8 +17,8 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
cacheDir=$TEST_ROOT/binary-cache cacheDir=$TEST_ROOT/binary-cache
nix-store --init nix-store --init
cd ${pkgs.path}/lib/tests cp -r ${../.} lib
bash ./modules.sh bash lib/tests/modules.sh
touch $out touch $out
'' ''

View File

@ -100,6 +100,7 @@
abbradar = { abbradar = {
email = "ab@fmap.me"; email = "ab@fmap.me";
github = "abbradar"; github = "abbradar";
githubId = 1174810;
name = "Nikolay Amiantov"; name = "Nikolay Amiantov";
}; };
abhi18av = { abhi18av = {
@ -135,6 +136,7 @@
acairncross = { acairncross = {
email = "acairncross@gmail.com"; email = "acairncross@gmail.com";
github = "acairncross"; github = "acairncross";
githubId = 1517066;
name = "Aiken Cairncross"; name = "Aiken Cairncross";
}; };
acowley = { acowley = {
@ -146,6 +148,7 @@
adamt = { adamt = {
email = "mail@adamtulinius.dk"; email = "mail@adamtulinius.dk";
github = "adamtulinius"; github = "adamtulinius";
githubId = 749381;
name = "Adam Tulinius"; name = "Adam Tulinius";
}; };
adelbertc = { adelbertc = {
@ -229,6 +232,7 @@
aforemny = { aforemny = {
email = "alexanderforemny@googlemail.com"; email = "alexanderforemny@googlemail.com";
github = "aforemny"; github = "aforemny";
githubId = 610962;
name = "Alexander Foremny"; name = "Alexander Foremny";
}; };
afranchuk = { afranchuk = {
@ -276,6 +280,7 @@
ak = { ak = {
email = "ak@formalprivacy.com"; email = "ak@formalprivacy.com";
github = "alexanderkjeldaas"; github = "alexanderkjeldaas";
githubId = 339369;
name = "Alexander Kjeldaas"; name = "Alexander Kjeldaas";
}; };
akavel = { akavel = {
@ -383,6 +388,7 @@
alunduil = { alunduil = {
email = "alunduil@gmail.com"; email = "alunduil@gmail.com";
github = "alunduil"; github = "alunduil";
githubId = 169249;
name = "Alex Brandt"; name = "Alex Brandt";
}; };
alva = { alva = {
@ -404,6 +410,7 @@
ambrop72 = { ambrop72 = {
email = "ambrop7@gmail.com"; email = "ambrop7@gmail.com";
github = "ambrop72"; github = "ambrop72";
githubId = 2626481;
name = "Ambroz Bizjak"; name = "Ambroz Bizjak";
}; };
amiddelk = { amiddelk = {
@ -473,11 +480,13 @@
andreabedini = { andreabedini = {
email = "andrea@kzn.io"; email = "andrea@kzn.io";
github = "andreabedini"; github = "andreabedini";
githubId = 69135;
name = "Andrea Bedini"; name = "Andrea Bedini";
}; };
andres = { andres = {
email = "ksnixos@andres-loeh.de"; email = "ksnixos@andres-loeh.de";
github = "kosmikus"; github = "kosmikus";
githubId = 293191;
name = "Andres Loeh"; name = "Andres Loeh";
}; };
andrestylianos = { andrestylianos = {
@ -507,6 +516,7 @@
andsild = { andsild = {
email = "andsild@gmail.com"; email = "andsild@gmail.com";
github = "andsild"; github = "andsild";
githubId = 3808928;
name = "Anders Sildnes"; name = "Anders Sildnes";
}; };
aneeshusa = { aneeshusa = {
@ -560,6 +570,7 @@
antono = { antono = {
email = "self@antono.info"; email = "self@antono.info";
github = "antono"; github = "antono";
githubId = 7622;
name = "Antono Vasiljev"; name = "Antono Vasiljev";
}; };
antonxy = { antonxy = {
@ -742,7 +753,8 @@
}; };
auntie = { auntie = {
email = "auntieNeo@gmail.com"; email = "auntieNeo@gmail.com";
github = "auntie"; github = "auntieNeo";
githubId = 574938;
name = "Jonathan Glines"; name = "Jonathan Glines";
}; };
avaq = { avaq = {
@ -760,6 +772,7 @@
averelld = { averelld = {
email = "averell+nixos@rxd4.com"; email = "averell+nixos@rxd4.com";
github = "averelld"; github = "averelld";
githubId = 687218;
name = "averelld"; name = "averelld";
}; };
avitex = { avitex = {
@ -815,11 +828,13 @@
backuitist = { backuitist = {
email = "biethb@gmail.com"; email = "biethb@gmail.com";
github = "backuitist"; github = "backuitist";
githubId = 1017537;
name = "Bruno Bieth"; name = "Bruno Bieth";
}; };
badi = { badi = {
email = "abdulwahidc@gmail.com"; email = "abdulwahidc@gmail.com";
github = "badi"; github = "badi";
githubId = 35324;
name = "Badi' Abdul-Wahid"; name = "Badi' Abdul-Wahid";
}; };
balajisivaraman = { balajisivaraman = {
@ -943,6 +958,7 @@
berdario = { berdario = {
email = "berdario@gmail.com"; email = "berdario@gmail.com";
github = "berdario"; github = "berdario";
githubId = 752835;
name = "Dario Bertini"; name = "Dario Bertini";
}; };
bergey = { bergey = {
@ -1024,6 +1040,7 @@
bluescreen303 = { bluescreen303 = {
email = "mathijs@bluescreen303.nl"; email = "mathijs@bluescreen303.nl";
github = "bluescreen303"; github = "bluescreen303";
githubId = 16330;
name = "Mathijs Kwik"; name = "Mathijs Kwik";
}; };
bobakker = { bobakker = {
@ -1053,6 +1070,7 @@
boothead = { boothead = {
email = "ben@perurbis.com"; email = "ben@perurbis.com";
github = "boothead"; github = "boothead";
githubId = 87764;
name = "Ben Ford"; name = "Ben Ford";
}; };
borisbabic = { borisbabic = {
@ -1473,6 +1491,7 @@
coconnor = { coconnor = {
email = "coreyoconnor@gmail.com"; email = "coreyoconnor@gmail.com";
github = "coreyoconnor"; github = "coreyoconnor";
githubId = 34317;
name = "Corey O'Connor"; name = "Corey O'Connor";
}; };
codsl = { codsl = {
@ -1566,6 +1585,7 @@
cransom = { cransom = {
email = "cransom@hubns.net"; email = "cransom@hubns.net";
github = "cransom"; github = "cransom";
githubId = 1957293;
name = "Casey Ransom"; name = "Casey Ransom";
}; };
CrazedProgrammer = { CrazedProgrammer = {
@ -1725,6 +1745,7 @@
davidrusu = { davidrusu = {
email = "davidrusu.me@gmail.com"; email = "davidrusu.me@gmail.com";
github = "davidrusu"; github = "davidrusu";
githubId = 1832378;
name = "David Rusu"; name = "David Rusu";
}; };
davidtwco = { davidtwco = {
@ -1818,6 +1839,7 @@
DerGuteMoritz = { DerGuteMoritz = {
email = "moritz@twoticketsplease.de"; email = "moritz@twoticketsplease.de";
github = "DerGuteMoritz"; github = "DerGuteMoritz";
githubId = 19733;
name = "Moritz Heidkamp"; name = "Moritz Heidkamp";
}; };
dermetfan = { dermetfan = {
@ -1835,6 +1857,7 @@
desiderius = { desiderius = {
email = "didier@devroye.name"; email = "didier@devroye.name";
github = "desiderius"; github = "desiderius";
githubId = 1311761;
name = "Didier J. Devroye"; name = "Didier J. Devroye";
}; };
devhell = { devhell = {
@ -1864,6 +1887,7 @@
dgonyeo = { dgonyeo = {
email = "derek@gonyeo.com"; email = "derek@gonyeo.com";
github = "dgonyeo"; github = "dgonyeo";
githubId = 2439413;
name = "Derek Gonyeo"; name = "Derek Gonyeo";
}; };
dhkl = { dhkl = {
@ -1983,6 +2007,7 @@
doublec = { doublec = {
email = "chris.double@double.co.nz"; email = "chris.double@double.co.nz";
github = "doublec"; github = "doublec";
githubId = 16599;
name = "Chris Double"; name = "Chris Double";
}; };
dpaetzel = { dpaetzel = {
@ -2048,6 +2073,7 @@
dxf = { dxf = {
email = "dingxiangfei2009@gmail.com"; email = "dingxiangfei2009@gmail.com";
github = "dingxiangfei2009"; github = "dingxiangfei2009";
githubId = 6884440;
name = "Ding Xiang Fei"; name = "Ding Xiang Fei";
}; };
dysinger = { dysinger = {
@ -2113,6 +2139,7 @@
edanaher = { edanaher = {
email = "nixos@edanaher.net"; email = "nixos@edanaher.net";
github = "edanaher"; github = "edanaher";
githubId = 984691;
name = "Evan Danaher"; name = "Evan Danaher";
}; };
edef = { edef = {
@ -2262,6 +2289,7 @@
emmanuelrosa = { emmanuelrosa = {
email = "emmanuel_rosa@aol.com"; email = "emmanuel_rosa@aol.com";
github = "emmanuelrosa"; github = "emmanuelrosa";
githubId = 13485450;
name = "Emmanuel Rosa"; name = "Emmanuel Rosa";
}; };
endgame = { endgame = {
@ -2279,7 +2307,7 @@
Enteee = { Enteee = {
email = "nix@duckpond.ch"; email = "nix@duckpond.ch";
github = "Enteee"; github = "Enteee";
githubid = 5493775; githubId = 5493775;
name = "Ente"; name = "Ente";
}; };
enzime = { enzime = {
@ -2337,6 +2365,7 @@
ericsagnes = { ericsagnes = {
email = "eric.sagnes@gmail.com"; email = "eric.sagnes@gmail.com";
github = "ericsagnes"; github = "ericsagnes";
githubId = 367880;
name = "Eric Sagnes"; name = "Eric Sagnes";
}; };
ericson2314 = { ericson2314 = {
@ -2376,6 +2405,7 @@
ertes = { ertes = {
email = "esz@posteo.de"; email = "esz@posteo.de";
github = "ertes"; github = "ertes";
githubId = 1855930;
name = "Ertugrul Söylemez"; name = "Ertugrul Söylemez";
}; };
esclear = { esclear = {
@ -2485,6 +2515,7 @@
fare = { fare = {
email = "fahree@gmail.com"; email = "fahree@gmail.com";
github = "fare"; github = "fare";
githubId = 8073;
name = "Francois-Rene Rideau"; name = "Francois-Rene Rideau";
}; };
farlion = { farlion = {
@ -2496,6 +2527,7 @@
fdns = { fdns = {
email = "fdns02@gmail.com"; email = "fdns02@gmail.com";
github = "fdns"; github = "fdns";
githubId = 541748;
name = "Felipe Espinoza"; name = "Felipe Espinoza";
}; };
ffinkdevs = { ffinkdevs = {
@ -2622,6 +2654,7 @@
fragamus = { fragamus = {
email = "innovative.engineer@gmail.com"; email = "innovative.engineer@gmail.com";
github = "fragamus"; github = "fragamus";
githubId = 119691;
name = "Michael Gough"; name = "Michael Gough";
}; };
@ -2640,11 +2673,13 @@
freezeboy = { freezeboy = {
email = "freezeboy@users.noreply.github.com"; email = "freezeboy@users.noreply.github.com";
github = "freezeboy"; github = "freezeboy";
githubId = 13279982;
name = "freezeboy"; name = "freezeboy";
}; };
Fresheyeball = { Fresheyeball = {
email = "fresheyeball@gmail.com"; email = "fresheyeball@gmail.com";
github = "fresheyeball"; github = "Fresheyeball";
githubId = 609279;
name = "Isaac Shapira"; name = "Isaac Shapira";
}; };
fridh = { fridh = {
@ -2748,6 +2783,7 @@
garbas = { garbas = {
email = "rok@garbas.si"; email = "rok@garbas.si";
github = "garbas"; github = "garbas";
githubId = 20208;
name = "Rok Garbas"; name = "Rok Garbas";
}; };
garrison = { garrison = {
@ -2759,6 +2795,7 @@
gavin = { gavin = {
email = "gavin.rogers@holo.host"; email = "gavin.rogers@holo.host";
github = "gavinrogers"; github = "gavinrogers";
githubId = 2430469;
name = "Gavin Rogers"; name = "Gavin Rogers";
}; };
gazally = { gazally = {
@ -2906,6 +2943,7 @@
gridaphobe = { gridaphobe = {
email = "eric@seidel.io"; email = "eric@seidel.io";
github = "gridaphobe"; github = "gridaphobe";
githubId = 201997;
name = "Eric Seidel"; name = "Eric Seidel";
}; };
guibert = { guibert = {
@ -3035,6 +3073,7 @@
name = "Guanpeng Xu"; name = "Guanpeng Xu";
}; };
hexa = { hexa = {
email = "hexa@darmstadt.ccc.de";
github = "mweinelt"; github = "mweinelt";
githubId = 131599; githubId = 131599;
name = "Martin Weinelt"; name = "Martin Weinelt";
@ -3053,6 +3092,7 @@
email = "me@hkjn.me"; email = "me@hkjn.me";
name = "Henrik Jonsson"; name = "Henrik Jonsson";
github = "hkjn"; github = "hkjn";
githubId = 287215;
keys = [{ keys = [{
longkeyid = "rsa4096/0x03EFBF839A5FDC15"; longkeyid = "rsa4096/0x03EFBF839A5FDC15";
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15"; fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
@ -3225,6 +3265,7 @@
name = "Michele Catalano"; name = "Michele Catalano";
}; };
isgy = { isgy = {
name = "isgy";
email = "isgy@teiyg.com"; email = "isgy@teiyg.com";
github = "isgy"; github = "isgy";
githubId = 13622947; githubId = 13622947;
@ -3263,7 +3304,7 @@
email = "ivar.scholten@protonmail.com"; email = "ivar.scholten@protonmail.com";
github = "IvarWithoutBones"; github = "IvarWithoutBones";
githubId = 41924494; githubId = 41924494;
Name = "Ivar"; name = "Ivar";
}; };
ivegotasthma = { ivegotasthma = {
email = "ivegotasthma@protonmail.com"; email = "ivegotasthma@protonmail.com";
@ -3302,6 +3343,7 @@
jasoncarr = { jasoncarr = {
email = "jcarr250@gmail.com"; email = "jcarr250@gmail.com";
github = "jasoncarr0"; github = "jasoncarr0";
githubId = 6874204;
name = "Jason Carr"; name = "Jason Carr";
}; };
j-keck = { j-keck = {
@ -3313,6 +3355,7 @@
j03 = { j03 = {
email = "github@johannesloetzsch.de"; email = "github@johannesloetzsch.de";
github = "johannesloetzsch"; github = "johannesloetzsch";
githubId = 175537;
name = "Johannes Lötzsch"; name = "Johannes Lötzsch";
}; };
jagajaga = { jagajaga = {
@ -3439,7 +3482,8 @@
}; };
jeschli = { jeschli = {
email = "jeschli@gmail.com"; email = "jeschli@gmail.com";
github = "jeschli"; github = "Jeschli";
githubId = 10786794;
name = "Markus Hihn"; name = "Markus Hihn";
}; };
jethro = { jethro = {
@ -3451,6 +3495,7 @@
jfb = { jfb = {
email = "james@yamtime.com"; email = "james@yamtime.com";
github = "tftio"; github = "tftio";
githubId = 143075;
name = "James Felix Black"; name = "James Felix Black";
}; };
jflanglois = { jflanglois = {
@ -3510,6 +3555,7 @@
jitwit = { jitwit = {
email = "jrn@bluefarm.ca"; email = "jrn@bluefarm.ca";
github = "jitwit"; github = "jitwit";
githubId = 51518420;
name = "jitwit"; name = "jitwit";
}; };
jlesquembre = { jlesquembre = {
@ -3551,6 +3597,7 @@
joamaki = { joamaki = {
email = "joamaki@gmail.com"; email = "joamaki@gmail.com";
github = "joamaki"; github = "joamaki";
githubId = 1102396;
name = "Jussi Maki"; name = "Jussi Maki";
}; };
joelburget = { joelburget = {
@ -3573,6 +3620,7 @@
email = "admin@cryto.net"; email = "admin@cryto.net";
name = "Sven Slootweg"; name = "Sven Slootweg";
github = "joepie91"; github = "joepie91";
githubId = 1663259;
}; };
joesalisbury = { joesalisbury = {
email = "salisbury.joseph@gmail.com"; email = "salisbury.joseph@gmail.com";
@ -3646,6 +3694,7 @@
jonathanmarler = { jonathanmarler = {
email = "johnnymarler@gmail.com"; email = "johnnymarler@gmail.com";
github = "marler8997"; github = "marler8997";
githubId = 304904;
name = "Jonathan Marler"; name = "Jonathan Marler";
}; };
jonathanreeve = { jonathanreeve = {
@ -3751,6 +3800,7 @@
juliendehos = { juliendehos = {
email = "dehos@lisic.univ-littoral.fr"; email = "dehos@lisic.univ-littoral.fr";
github = "juliendehos"; github = "juliendehos";
githubId = 11947756;
name = "Julien Dehos"; name = "Julien Dehos";
}; };
jumper149 = { jumper149 = {
@ -3784,6 +3834,7 @@
jyp = { jyp = {
email = "jeanphilippe.bernardy@gmail.com"; email = "jeanphilippe.bernardy@gmail.com";
github = "jyp"; github = "jyp";
githubId = 27747;
name = "Jean-Philippe Bernardy"; name = "Jean-Philippe Bernardy";
}; };
jzellner = { jzellner = {
@ -3797,7 +3848,7 @@
email = "KAction@disroot.org"; email = "KAction@disroot.org";
github = "kaction"; github = "kaction";
githubId = 44864956; githubId = 44864956;
key = [{ keys = [{
longkeyid = "ed25519/0x749FD4DFA2E94236"; longkeyid = "ed25519/0x749FD4DFA2E94236";
fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236"; fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236";
}]; }];
@ -3833,6 +3884,7 @@
kampfschlaefer = { kampfschlaefer = {
email = "arnold@arnoldarts.de"; email = "arnold@arnoldarts.de";
github = "kampfschlaefer"; github = "kampfschlaefer";
githubId = 3831860;
name = "Arnold Krille"; name = "Arnold Krille";
}; };
karantan = { karantan = {
@ -3990,6 +4042,7 @@
email = "adrian@kummerlaender.eu"; email = "adrian@kummerlaender.eu";
name = "Adrian Kummerlaender"; name = "Adrian Kummerlaender";
github = "KnairdA"; github = "KnairdA";
githubId = 498373;
}; };
knedlsepp = { knedlsepp = {
email = "josef.kemetmueller@gmail.com"; email = "josef.kemetmueller@gmail.com";
@ -4012,6 +4065,7 @@
kolbycrouch = { kolbycrouch = {
email = "kjc.devel@gmail.com"; email = "kjc.devel@gmail.com";
github = "kolbycrouch"; github = "kolbycrouch";
githubId = 6346418;
name = "Kolby Crouch"; name = "Kolby Crouch";
}; };
konimex = { konimex = {
@ -4023,6 +4077,7 @@
koral = { koral = {
email = "koral@mailoo.org"; email = "koral@mailoo.org";
github = "k0ral"; github = "k0ral";
githubId = 524268;
name = "Koral"; name = "Koral";
}; };
kovirobi = { kovirobi = {
@ -4064,7 +4119,7 @@
kristian-brucaj = { kristian-brucaj = {
email = "kbrucaj@gmail.com"; email = "kbrucaj@gmail.com";
github = "kristian-brucaj"; github = "kristian-brucaj";
githubID = "8893110"; githubId = 8893110;
name = "Kristian Brucaj"; name = "Kristian Brucaj";
}; };
kristoff3r = { kristoff3r = {
@ -4124,6 +4179,7 @@
laikq = { laikq = {
email = "gwen@quasebarth.de"; email = "gwen@quasebarth.de";
github = "laikq"; github = "laikq";
githubId = 55911173;
name = "Gwendolyn Quasebarth"; name = "Gwendolyn Quasebarth";
}; };
lasandell = { lasandell = {
@ -4141,6 +4197,7 @@
lassulus = { lassulus = {
email = "lassulus@gmail.com"; email = "lassulus@gmail.com";
github = "Lassulus"; github = "Lassulus";
githubId = 621759;
name = "Lassulus"; name = "Lassulus";
}; };
lattfein = { lattfein = {
@ -4195,6 +4252,7 @@
lebastr = { lebastr = {
email = "lebastr@gmail.com"; email = "lebastr@gmail.com";
github = "lebastr"; github = "lebastr";
githubId = 887072;
name = "Alexander Lebedev"; name = "Alexander Lebedev";
}; };
ledif = { ledif = {
@ -4230,6 +4288,7 @@
leonardoce = { leonardoce = {
email = "leonardo.cecchi@gmail.com"; email = "leonardo.cecchi@gmail.com";
github = "leonardoce"; github = "leonardoce";
githubId = 1572058;
name = "Leonardo Cecchi"; name = "Leonardo Cecchi";
}; };
leshainc = { leshainc = {
@ -4393,6 +4452,7 @@
lovek323 = { lovek323 = {
email = "jason@oconal.id.au"; email = "jason@oconal.id.au";
github = "lovek323"; github = "lovek323";
githubId = 265084;
name = "Jason O'Conal"; name = "Jason O'Conal";
}; };
lovesegfault = { lovesegfault = {
@ -4432,6 +4492,7 @@
ltavard = { ltavard = {
email = "laure.tavard@univ-grenoble-alpes.fr"; email = "laure.tavard@univ-grenoble-alpes.fr";
github = "ltavard"; github = "ltavard";
githubId = 8555953;
name = "Laure Tavard"; name = "Laure Tavard";
}; };
luc65r = { luc65r = {
@ -4495,6 +4556,7 @@
lumi = { lumi = {
email = "lumi@pew.im"; email = "lumi@pew.im";
github = "lumi-me-not"; github = "lumi-me-not";
githubId = 26020062;
name = "lumi"; name = "lumi";
}; };
luz = { luz = {
@ -4678,6 +4740,7 @@
matthewbauer = { matthewbauer = {
email = "mjbauer95@gmail.com"; email = "mjbauer95@gmail.com";
github = "matthewbauer"; github = "matthewbauer";
githubId = 19036;
name = "Matthew Bauer"; name = "Matthew Bauer";
}; };
matthiasbeyer = { matthiasbeyer = {
@ -4695,6 +4758,7 @@
matti-kariluoma = { matti-kariluoma = {
email = "matti@kariluo.ma"; email = "matti@kariluo.ma";
github = "matti-kariluoma"; github = "matti-kariluoma";
githubId = 279868;
name = "Matti Kariluoma"; name = "Matti Kariluoma";
}; };
maurer = { maurer = {
@ -4820,6 +4884,7 @@
melsigl = { melsigl = {
email = "melanie.bianca.sigl@gmail.com"; email = "melanie.bianca.sigl@gmail.com";
github = "melsigl"; github = "melsigl";
githubId = 15093162;
name = "Melanie B. Sigl"; name = "Melanie B. Sigl";
}; };
melkor333 = { melkor333 = {
@ -4888,6 +4953,7 @@
michaelpj = { michaelpj = {
email = "michaelpj@gmail.com"; email = "michaelpj@gmail.com";
github = "michaelpj"; github = "michaelpj";
githubId = 1699466;
name = "Michael Peyton Jones"; name = "Michael Peyton Jones";
}; };
michalrus = { michalrus = {
@ -4899,6 +4965,7 @@
michelk = { michelk = {
email = "michel@kuhlmanns.info"; email = "michel@kuhlmanns.info";
github = "michelk"; github = "michelk";
githubId = 1404919;
name = "Michel Kuhlmann"; name = "Michel Kuhlmann";
}; };
michojel = { michojel = {
@ -4972,6 +5039,7 @@
mirdhyn = { mirdhyn = {
email = "mirdhyn@gmail.com"; email = "mirdhyn@gmail.com";
github = "mirdhyn"; github = "mirdhyn";
githubId = 149558;
name = "Merlin Gaillard"; name = "Merlin Gaillard";
}; };
mirrexagon = { mirrexagon = {
@ -5007,6 +5075,7 @@
mkf = { mkf = {
email = "m@mikf.pl"; email = "m@mikf.pl";
github = "mkf"; github = "mkf";
githubId = 7753506;
name = "Michał Krzysztof Feiler"; name = "Michał Krzysztof Feiler";
keys = [{ keys = [{
longkeyid = "rsa4096/0xE35C2D7C2C6AC724"; longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
@ -5056,6 +5125,7 @@
mmlb = { mmlb = {
email = "manny@peekaboo.mmlb.icu"; email = "manny@peekaboo.mmlb.icu";
github = "mmlb"; github = "mmlb";
githubId = 708570;
name = "Manuel Mendez"; name = "Manuel Mendez";
}; };
mnacamura = { mnacamura = {
@ -5085,6 +5155,7 @@
Mogria = { Mogria = {
email = "m0gr14@gmail.com"; email = "m0gr14@gmail.com";
github = "mogria"; github = "mogria";
githubId = 754512;
name = "Mogria"; name = "Mogria";
}; };
monsieurp = { monsieurp = {
@ -5142,6 +5213,7 @@
MP2E = { MP2E = {
email = "MP2E@archlinux.us"; email = "MP2E@archlinux.us";
github = "MP2E"; github = "MP2E";
githubId = 167708;
name = "Cray Elliott"; name = "Cray Elliott";
}; };
mpcsh = { mpcsh = {
@ -5165,6 +5237,7 @@
mpscholten = { mpscholten = {
email = "marc@mpscholten.de"; email = "marc@mpscholten.de";
github = "mpscholten"; github = "mpscholten";
githubId = 2072185;
name = "Marc Scholten"; name = "Marc Scholten";
}; };
mpsyco = { mpsyco = {
@ -5182,6 +5255,7 @@
mredaelli = { mredaelli = {
email = "massimo@typish.io"; email = "massimo@typish.io";
github = "mredaelli"; github = "mredaelli";
githubId = 3073833;
name = "Massimo Redaelli"; name = "Massimo Redaelli";
}; };
mrkkrp = { mrkkrp = {
@ -5249,6 +5323,7 @@
MtP = { MtP = {
email = "marko.nixos@poikonen.de"; email = "marko.nixos@poikonen.de";
github = "MtP76"; github = "MtP76";
githubId = 2176611;
name = "Marko Poikonen"; name = "Marko Poikonen";
}; };
mtreskin = { mtreskin = {
@ -5314,6 +5389,7 @@
nand0p = { nand0p = {
email = "nando@hex7.com"; email = "nando@hex7.com";
github = "nand0p"; github = "nand0p";
githubId = 1916245;
name = "Fernando Jose Pando"; name = "Fernando Jose Pando";
}; };
Nate-Devv = { Nate-Devv = {
@ -5587,6 +5663,7 @@
olynch = { olynch = {
email = "owen@olynch.me"; email = "owen@olynch.me";
github = "olynch"; github = "olynch";
githubId = 4728903;
name = "Owen Lynch"; name = "Owen Lynch";
}; };
omnipotententity = { omnipotententity = {
@ -5610,6 +5687,7 @@
orbitz = { orbitz = {
email = "mmatalka@gmail.com"; email = "mmatalka@gmail.com";
github = "orbitz"; github = "orbitz";
githubId = 75299;
name = "Malcolm Matalka"; name = "Malcolm Matalka";
}; };
orivej = { orivej = {
@ -5745,6 +5823,7 @@
pcarrier = { pcarrier = {
email = "pc@rrier.ca"; email = "pc@rrier.ca";
github = "pcarrier"; github = "pcarrier";
githubId = 8641;
name = "Pierre Carrier"; name = "Pierre Carrier";
}; };
periklis = { periklis = {
@ -5890,6 +5969,7 @@
plchldr = { plchldr = {
email = "mail@oddco.de"; email = "mail@oddco.de";
github = "plchldr"; github = "plchldr";
githubId = 11639001;
name = "Jonas Beyer"; name = "Jonas Beyer";
}; };
plcplc = { plcplc = {
@ -5913,6 +5993,7 @@
pmeunier = { pmeunier = {
email = "pierre-etienne.meunier@inria.fr"; email = "pierre-etienne.meunier@inria.fr";
github = "P-E-Meunier"; github = "P-E-Meunier";
githubId = 17021304;
name = "Pierre-Étienne Meunier"; name = "Pierre-Étienne Meunier";
}; };
pmiddend = { pmiddend = {
@ -5942,6 +6023,7 @@
polyrod = { polyrod = {
email = "dc1mdp@gmail.com"; email = "dc1mdp@gmail.com";
github = "polyrod"; github = "polyrod";
githubId = 24878306;
name = "Maurizio Di Pietro"; name = "Maurizio Di Pietro";
}; };
pombeirp = { pombeirp = {
@ -6121,11 +6203,13 @@
raboof = { raboof = {
email = "arnout@bzzt.net"; email = "arnout@bzzt.net";
github = "raboof"; github = "raboof";
githubId = 131856;
name = "Arnout Engelen"; name = "Arnout Engelen";
}; };
rafaelgg = { rafaelgg = {
email = "rafael.garcia.gallego@gmail.com"; email = "rafael.garcia.gallego@gmail.com";
github = "rafaelgg"; github = "rafaelgg";
githubId = 1016742;
name = "Rafael García"; name = "Rafael García";
}; };
raquelgb = { raquelgb = {
@ -6297,6 +6381,7 @@
rickynils = { rickynils = {
email = "rickynils@gmail.com"; email = "rickynils@gmail.com";
github = "rickynils"; github = "rickynils";
githubId = 16779;
name = "Rickard Nilsson"; name = "Rickard Nilsson";
}; };
rika = { rika = {
@ -6380,11 +6465,13 @@
rob = { rob = {
email = "rob.vermaas@gmail.com"; email = "rob.vermaas@gmail.com";
github = "rbvermaa"; github = "rbvermaa";
githubId = 353885;
name = "Rob Vermaas"; name = "Rob Vermaas";
}; };
robberer = { robberer = {
email = "robberer@freakmail.de"; email = "robberer@freakmail.de";
github = "robberer"; github = "robberer";
githubId = 6204883;
name = "Longrin Wischnewski"; name = "Longrin Wischnewski";
}; };
robbinch = { robbinch = {
@ -6504,6 +6591,7 @@
rvolosatovs = { rvolosatovs = {
email = "rvolosatovs@riseup.net"; email = "rvolosatovs@riseup.net";
github = "rvolosatovs"; github = "rvolosatovs";
githubId = 12877905;
name = "Roman Volosatovs"; name = "Roman Volosatovs";
}; };
ryanartecona = { ryanartecona = {
@ -6515,6 +6603,7 @@
ryansydnor = { ryansydnor = {
email = "ryan.t.sydnor@gmail.com"; email = "ryan.t.sydnor@gmail.com";
github = "ryansydnor"; github = "ryansydnor";
githubId = 1832096;
name = "Ryan Sydnor"; name = "Ryan Sydnor";
}; };
ryantm = { ryantm = {
@ -6606,6 +6695,7 @@
sander = { sander = {
email = "s.vanderburg@tudelft.nl"; email = "s.vanderburg@tudelft.nl";
github = "svanderburg"; github = "svanderburg";
githubId = 1153271;
name = "Sander van der Burg"; name = "Sander van der Burg";
}; };
sargon = { sargon = {
@ -6641,6 +6731,7 @@
scalavision = { scalavision = {
email = "scalavision@gmail.com"; email = "scalavision@gmail.com";
github = "scalavision"; github = "scalavision";
githubId = 3958212;
name = "Tom Sorlie"; name = "Tom Sorlie";
}; };
schmitthenner = { schmitthenner = {
@ -6650,8 +6741,10 @@
name = "Fabian Schmitthenner"; name = "Fabian Schmitthenner";
}; };
schmittlauch = { schmittlauch = {
name = "Trolli Schmittlauch";
email = "t.schmittlauch+nixos@orlives.de"; email = "t.schmittlauch+nixos@orlives.de";
github = "schmittlauch"; github = "schmittlauch";
githubId = 1479555;
}; };
schneefux = { schneefux = {
email = "schneefux+nixos_pkg@schneefux.xyz"; email = "schneefux+nixos_pkg@schneefux.xyz";
@ -6690,6 +6783,7 @@
scubed2 = { scubed2 = {
email = "scubed2@gmail.com"; email = "scubed2@gmail.com";
github = "scubed2"; github = "scubed2";
githubId = 7401858;
name = "Sterling Stein"; name = "Sterling Stein";
}; };
sdier = { sdier = {
@ -6749,7 +6843,7 @@
servalcatty = { servalcatty = {
email = "servalcat@pm.me"; email = "servalcat@pm.me";
github = "servalcatty"; github = "servalcatty";
githubid = 51969817; githubId = 51969817;
name = "Serval"; name = "Serval";
keys = [{ keys = [{
longkeyid = "rsa4096/0x4A2AAAA382F8294C"; longkeyid = "rsa4096/0x4A2AAAA382F8294C";
@ -6795,6 +6889,7 @@
shazow = { shazow = {
email = "andrey.petrov@shazow.net"; email = "andrey.petrov@shazow.net";
github = "shazow"; github = "shazow";
githubId = 6292;
name = "Andrey Petrov"; name = "Andrey Petrov";
}; };
sheenobu = { sheenobu = {
@ -6818,16 +6913,19 @@
shlevy = { shlevy = {
email = "shea@shealevy.com"; email = "shea@shealevy.com";
github = "shlevy"; github = "shlevy";
githubId = 487050;
name = "Shea Levy"; name = "Shea Levy";
}; };
shmish111 = { shmish111 = {
email = "shmish111@gmail.com"; email = "shmish111@gmail.com";
github = "shmish111"; github = "shmish111";
githubId = 934267;
name = "David Smith"; name = "David Smith";
}; };
shnarazk = { shnarazk = {
email = "shujinarazaki@protonmail.com"; email = "shujinarazaki@protonmail.com";
github = "shnarazk"; github = "shnarazk";
githubId = 997855;
name = "Narazaki Shuji"; name = "Narazaki Shuji";
}; };
shou = { shou = {
@ -6915,6 +7013,7 @@
sjmackenzie = { sjmackenzie = {
email = "setori88@gmail.com"; email = "setori88@gmail.com";
github = "sjmackenzie"; github = "sjmackenzie";
githubId = 158321;
name = "Stewart Mackenzie"; name = "Stewart Mackenzie";
}; };
sjourdois = { sjourdois = {
@ -7048,6 +7147,7 @@
sprock = { sprock = {
email = "rmason@mun.ca"; email = "rmason@mun.ca";
github = "sprock"; github = "sprock";
githubId = 6391601;
name = "Roger Mason"; name = "Roger Mason";
}; };
spwhitt = { spwhitt = {
@ -7059,6 +7159,7 @@
srghma = { srghma = {
email = "srghma@gmail.com"; email = "srghma@gmail.com";
github = "srghma"; github = "srghma";
githubId = 7573215;
name = "Sergei Khoma"; name = "Sergei Khoma";
}; };
srgom = { srgom = {
@ -7276,6 +7377,7 @@
taha = { taha = {
email = "xrcrod@gmail.com"; email = "xrcrod@gmail.com";
github = "tgharib"; github = "tgharib";
githubId = 6457015;
name = "Taha Gharib"; name = "Taha Gharib";
}; };
tailhook = { tailhook = {
@ -7359,6 +7461,7 @@
tckmn = { tckmn = {
email = "andy@tck.mn"; email = "andy@tck.mn";
github = "tckmn"; github = "tckmn";
githubId = 2389333;
name = "Andy Tockman"; name = "Andy Tockman";
}; };
teh = { teh = {
@ -7388,11 +7491,13 @@
tesq0 = { tesq0 = {
email = "mikolaj.galkowski@gmail.com"; email = "mikolaj.galkowski@gmail.com";
github = "tesq0"; github = "tesq0";
githubId = 26417242;
name = "Mikolaj Galkowski"; name = "Mikolaj Galkowski";
}; };
teto = { teto = {
email = "mcoudron@hotmail.com"; email = "mcoudron@hotmail.com";
github = "teto"; github = "teto";
githubId = 886074;
name = "Matthieu Coudron"; name = "Matthieu Coudron";
}; };
tex = { tex = {
@ -7434,6 +7539,7 @@
the-kenny = { the-kenny = {
email = "moritz@tarn-vedra.de"; email = "moritz@tarn-vedra.de";
github = "the-kenny"; github = "the-kenny";
githubId = 31167;
name = "Moritz Ulrich"; name = "Moritz Ulrich";
}; };
thedavidmeister = { thedavidmeister = {
@ -7521,11 +7627,13 @@
timbertson = { timbertson = {
email = "tim@gfxmonk.net"; email = "tim@gfxmonk.net";
github = "timbertson"; github = "timbertson";
githubId = 14172;
name = "Tim Cuthbertson"; name = "Tim Cuthbertson";
}; };
timma = { timma = {
email = "kunduru.it.iitb@gmail.com"; email = "kunduru.it.iitb@gmail.com";
github = "ktrsoft"; github = "ktrsoft";
githubId = 12712927;
name = "Timma"; name = "Timma";
}; };
timokau = { timokau = {
@ -7577,6 +7685,7 @@
tnias = { tnias = {
email = "phil@grmr.de"; email = "phil@grmr.de";
github = "tnias"; github = "tnias";
githubId = 9853194;
name = "Philipp Bartsch"; name = "Philipp Bartsch";
}; };
tobim = { tobim = {
@ -7672,6 +7781,7 @@
tscholak = { tscholak = {
email = "torsten.scholak@googlemail.com"; email = "torsten.scholak@googlemail.com";
github = "tscholak"; github = "tscholak";
githubId = 1568873;
name = "Torsten Scholak"; name = "Torsten Scholak";
}; };
tstrobel = { tstrobel = {
@ -7693,6 +7803,7 @@
tvestelind = { tvestelind = {
email = "tomas.vestelind@fripost.org"; email = "tomas.vestelind@fripost.org";
github = "tvestelind"; github = "tvestelind";
githubId = 699403;
name = "Tomas Vestelind"; name = "Tomas Vestelind";
}; };
tvorog = { tvorog = {
@ -7704,11 +7815,13 @@
tweber = { tweber = {
email = "tw+nixpkgs@360vier.de"; email = "tw+nixpkgs@360vier.de";
github = "thorstenweber83"; github = "thorstenweber83";
githubId = 9413924;
name = "Thorsten Weber"; name = "Thorsten Weber";
}; };
twey = { twey = {
email = "twey@twey.co.uk"; email = "twey@twey.co.uk";
github = "twey"; github = "Twey";
githubId = 101639;
name = "James Twey Kay"; name = "James Twey Kay";
}; };
twhitehead = { twhitehead = {
@ -7772,6 +7885,7 @@
uwap = { uwap = {
email = "me@uwap.name"; email = "me@uwap.name";
github = "uwap"; github = "uwap";
githubId = 2212422;
name = "uwap"; name = "uwap";
}; };
va1entin = { va1entin = {
@ -7789,12 +7903,13 @@
valebes = { valebes = {
email = "valebes@gmail.com"; email = "valebes@gmail.com";
github = "valebes"; github = "valebes";
githubid = 10956211; githubId = 10956211;
name = "Valerio Besozzi"; name = "Valerio Besozzi";
}; };
valeriangalliat = { valeriangalliat = {
email = "val@codejam.info"; email = "val@codejam.info";
github = "valeriangalliat"; github = "valeriangalliat";
githubId = 3929133;
name = "Valérian Galliat"; name = "Valérian Galliat";
}; };
valodim = { valodim = {
@ -7842,6 +7957,7 @@
vcanadi = { vcanadi = {
email = "vito.canadi@gmail.com"; email = "vito.canadi@gmail.com";
github = "vcanadi"; github = "vcanadi";
githubId = 8889722;
name = "Vitomir Čanadi"; name = "Vitomir Čanadi";
}; };
vcunat = { vcunat = {
@ -7904,6 +8020,7 @@
viric = { viric = {
email = "viric@viric.name"; email = "viric@viric.name";
github = "viric"; github = "viric";
githubId = 66664;
name = "Lluís Batlle i Rossell"; name = "Lluís Batlle i Rossell";
}; };
virusdave = { virusdave = {
@ -7915,6 +8032,7 @@
vizanto = { vizanto = {
email = "danny@prime.vc"; email = "danny@prime.vc";
github = "vizanto"; github = "vizanto";
githubId = 326263;
name = "Danny Wilson"; name = "Danny Wilson";
}; };
vklquevs = { vklquevs = {
@ -7944,6 +8062,7 @@
vmchale = { vmchale = {
email = "tmchale@wisc.edu"; email = "tmchale@wisc.edu";
github = "vmchale"; github = "vmchale";
githubId = 13259982;
name = "Vanessa McHale"; name = "Vanessa McHale";
}; };
volhovm = { volhovm = {
@ -8067,6 +8186,7 @@
wscott = { wscott = {
email = "wsc9tt@gmail.com"; email = "wsc9tt@gmail.com";
github = "wscott"; github = "wscott";
githubId = 31487;
name = "Wayne Scott"; name = "Wayne Scott";
}; };
wucke13 = { wucke13 = {
@ -8120,6 +8240,7 @@
xnaveira = { xnaveira = {
email = "xnaveira@gmail.com"; email = "xnaveira@gmail.com";
github = "xnaveira"; github = "xnaveira";
githubId = 2534411;
name = "Xavier Naveira"; name = "Xavier Naveira";
}; };
xnwdd = { xnwdd = {
@ -8161,6 +8282,7 @@
y0no = { y0no = {
email = "y0no@y0no.fr"; email = "y0no@y0no.fr";
github = "y0no"; github = "y0no";
githubId = 2242427;
name = "Yoann Ono"; name = "Yoann Ono";
}; };
yarny = { yarny = {
@ -8242,6 +8364,7 @@
yvesf = { yvesf = {
email = "yvesf+nix@xapek.org"; email = "yvesf+nix@xapek.org";
github = "yvesf"; github = "yvesf";
githubId = 179548;
name = "Yves Fischer"; name = "Yves Fischer";
}; };
yvt = { yvt = {
@ -8271,6 +8394,7 @@
zalakain = { zalakain = {
email = "ping@umazalakain.info"; email = "ping@umazalakain.info";
github = "umazalakain"; github = "umazalakain";
githubId = 1319905;
name = "Uma Zalakain"; name = "Uma Zalakain";
}; };
zaninime = { zaninime = {
@ -8431,6 +8555,7 @@
name = "Nicholas Gerstle"; name = "Nicholas Gerstle";
email = "ngerstle@gmail.com"; email = "ngerstle@gmail.com";
github = "ngerstle"; github = "ngerstle";
githubId = 1023752;
}; };
xavierzwirtz = { xavierzwirtz = {
email = "me@xavierzwirtz.com"; email = "me@xavierzwirtz.com";

View File

@ -4,56 +4,102 @@ with lib;
let let
cfg = config.services.traefik; cfg = config.services.traefik;
configFile = jsonValue = with types;
if cfg.configFile == null then let
valueType = nullOr (oneOf [
bool
int
float
str
(lazyAttrsOf valueType)
(listOf valueType)
]) // {
description = "JSON value";
emptyValue.value = { };
};
in valueType;
dynamicConfigFile = if cfg.dynamicConfigFile == null then
pkgs.runCommand "config.toml" { pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.remarshal ]; buildInputs = [ pkgs.remarshal ];
preferLocalBuild = true; preferLocalBuild = true;
} '' } ''
remarshal -if json -of toml \ remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ < ${
pkgs.writeText "dynamic_config.json"
(builtins.toJSON cfg.dynamicConfigOptions)
} \
> $out > $out
'' ''
else cfg.configFile; else
cfg.dynamicConfigFile;
staticConfigFile = if cfg.staticConfigFile == null then
pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.yj ];
preferLocalBuild = true;
} ''
yj -jt -i \
< ${
pkgs.writeText "static_config.json" (builtins.toJSON
(recursiveUpdate cfg.staticConfigOptions {
providers.file.filename = "${dynamicConfigFile}";
}))
} \
> $out
''
else
cfg.staticConfigFile;
in { in {
options.services.traefik = { options.services.traefik = {
enable = mkEnableOption "Traefik web server"; enable = mkEnableOption "Traefik web server";
configFile = mkOption { staticConfigFile = mkOption {
default = null; default = null;
example = literalExample "/path/to/config.toml"; example = literalExample "/path/to/static_config.toml";
type = types.nullOr types.path; type = types.nullOr types.path;
description = '' description = ''
Path to verbatim traefik.toml to use. Path to traefik's static configuration to use.
(Using that option has precedence over <literal>configOptions</literal>) (Using that option has precedence over <literal>staticConfigOptions</literal> and <literal>dynamicConfigOptions</literal>)
''; '';
}; };
configOptions = mkOption { staticConfigOptions = mkOption {
description = '' description = ''
Config for Traefik. Static configuration for Traefik.
''; '';
type = types.attrs; type = jsonValue;
default = { default = { entryPoints.http.address = ":80"; };
defaultEntryPoints = ["http"];
entryPoints.http.address = ":80";
};
example = { example = {
defaultEntrypoints = [ "http" ]; entryPoints.web.address = ":8080";
web.address = ":8080";
entryPoints.http.address = ":80"; entryPoints.http.address = ":80";
file = {}; api = { };
frontends = {
frontend1 = {
backend = "backend1";
routes.test_1.rule = "Host:localhost";
}; };
}; };
backends.backend1 = {
servers.server1.url = "http://localhost:8000"; dynamicConfigFile = mkOption {
default = null;
example = literalExample "/path/to/dynamic_config.toml";
type = types.nullOr types.path;
description = ''
Path to traefik's dynamic configuration to use.
(Using that option has precedence over <literal>dynamicConfigOptions</literal>)
'';
}; };
dynamicConfigOptions = mkOption {
description = ''
Dynamic configuration for Traefik.
'';
type = jsonValue;
default = { };
example = {
http.routers.router1 = {
rule = "Host(`localhost`)";
service = "service1";
};
http.services.service1.loadBalancer.servers =
[{ url = "http://localhost:8080"; }];
}; };
}; };
@ -84,16 +130,15 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [ "d '${cfg.dataDir}' 0700 traefik traefik - -" ];
"d '${cfg.dataDir}' 0700 traefik traefik - -"
];
systemd.services.traefik = { systemd.services.traefik = {
description = "Traefik web server"; description = "Traefik web server";
after = [ "network-online.target" ]; after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}''; ExecStart =
"${cfg.package}/bin/traefik --configfile=${staticConfigFile}";
Type = "simple"; Type = "simple";
User = "traefik"; User = "traefik";
Group = cfg.group; Group = cfg.group;
@ -120,6 +165,6 @@ in {
isSystemUser = true; isSystemUser = true;
}; };
users.groups.traefik = {}; users.groups.traefik = { };
}; };
} }

View File

@ -303,6 +303,8 @@ in
timezone = handleTest ./timezone.nix {}; timezone = handleTest ./timezone.nix {};
tinydns = handleTest ./tinydns.nix {}; tinydns = handleTest ./tinydns.nix {};
tor = handleTest ./tor.nix {}; tor = handleTest ./tor.nix {};
# traefik test relies on docker-containers
traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {};
transmission = handleTest ./transmission.nix {}; transmission = handleTest ./transmission.nix {};
trac = handleTest ./trac.nix {}; trac = handleTest ./trac.nix {};
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};

87
nixos/tests/traefik.nix Normal file
View File

@ -0,0 +1,87 @@
# Test Traefik as a reverse proxy of a local web service
# and a Docker container.
import ./make-test-python.nix ({ pkgs, ... }: {
name = "traefik";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ joko ];
};
nodes = {
client = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.curl ];
};
traefik = { config, pkgs, ... }: {
docker-containers.nginx = {
extraDockerOptions = [
"-l" "traefik.enable=true"
"-l" "traefik.http.routers.nginx.entrypoints=web"
"-l" "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)"
];
image = "nginx-container";
imageFile = pkgs.dockerTools.examples.nginx;
};
networking.firewall.allowedTCPPorts = [ 80 ];
services.traefik = {
enable = true;
dynamicConfigOptions = {
http.routers.simplehttp = {
rule = "Host(`simplehttp.traefik.test`)";
entryPoints = [ "web" ];
service = "simplehttp";
};
http.services.simplehttp = {
loadBalancer.servers = [{
url = "http://127.0.0.1:8000";
}];
};
};
staticConfigOptions = {
global = {
checkNewVersion = false;
sendAnonymousUsage = false;
};
entryPoints.web.address = ":80";
providers.docker.exposedByDefault = false;
};
};
systemd.services.simplehttp = {
script = "${pkgs.python3}/bin/python -m http.server 8000";
serviceConfig.Type = "simple";
wantedBy = [ "multi-user.target" ];
};
users.users.traefik.extraGroups = [ "docker" ];
};
};
testScript = ''
start_all()
traefik.wait_for_unit("docker-nginx.service")
traefik.wait_until_succeeds("docker ps | grep nginx-container")
traefik.wait_for_unit("simplehttp.service")
traefik.wait_for_unit("traefik.service")
traefik.wait_for_open_port(80)
traefik.wait_for_unit("multi-user.target")
client.wait_for_unit("multi-user.target")
with subtest("Check that a container can be reached via Traefik"):
assert "Hello from NGINX" in client.succeed(
"curl -sSf -H Host:nginx.traefik.test http://traefik/"
)
with subtest("Check that dynamic configuration works"):
assert "Directory listing for " in client.succeed(
"curl -sSf -H Host:simplehttp.traefik.test http://traefik/"
)
'';
})

View File

@ -1,14 +1,51 @@
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen { stdenv
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2 , fetchgit
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg , alsaLib
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile , aubio
, libusb, libuuid, libxml2, libxslt, lilv, lrdf, lv2, makeWrapper , boost
, perl, pkgconfig, python2, rubberband, serd, sord, sratom , cairomm
, taglib, vamp-plugin-sdk, dbus, fftw, pango, suil, libarchive , curl
, wafHook }: , doxygen
, fftwSinglePrec
, flac
, glibc
, glibmm
, graphviz
, gtkmm2
, libjack2
, liblo
, libogg
, libsamplerate
, libsigcxx
, libsndfile
, libusb1
, fluidsynth_1
, hidapi
, libltc
, qm-dsp
, libxml2
, lilv
, lrdf
, lv2
, makeWrapper
, perl
, pkg-config
, itstool
, python2
, rubberband
, serd
, sord
, sratom
, taglib
, vamp-plugin-sdk
, dbus
, fftw
, pango
, suil
, libarchive
, wafHook
}:
let let
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
@ -18,10 +55,7 @@ let
# Version to build. # Version to build.
tag = "5.12"; tag = "5.12";
in stdenv.mkDerivation rec {
in
stdenv.mkDerivation rec {
name = "ardour-${tag}"; name = "ardour-${tag}";
src = fetchgit { src = fetchgit {
@ -30,46 +64,84 @@ stdenv.mkDerivation rec {
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
}; };
nativeBuildInputs = [ wafHook ]; nativeBuildInputs = [
buildInputs = wafHook
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac makeWrapper
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo pkg-config
libmad libogg librdf_raptor librdf_rasqal libsamplerate itstool
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lrdf lv2 doxygen
makeWrapper pango perl pkgconfig python2 rubberband serd sord graphviz # for dot
sratom suil taglib vamp-plugin-sdk libarchive perl
python2
]; ];
# ardour's wscript has a "tarball" target but that required the git revision buildInputs = [
# be available. Since this is an unzipped tarball fetched from github we alsaLib
# have to do that ourself. aubio
patchPhase = '' boost
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc cairomm
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript curl
patchShebangs ./tools/ dbus
''; fftw
fftwSinglePrec
flac
glibmm
gtkmm2
libjack2
liblo
libogg
libsamplerate
libsigcxx
libsndfile
libusb1
fluidsynth_1
hidapi
libltc
qm-dsp
libxml2
lilv
lrdf
lv2
pango
rubberband
serd
sord
sratom
suil
taglib
vamp-plugin-sdk
libarchive
];
wafConfigureFlags = [ wafConfigureFlags = [
"--optimize" "--optimize"
"--docs" "--docs"
"--use-external-libs"
"--freedesktop"
"--with-backends=jack,alsa,dummy" "--with-backends=jack,alsa,dummy"
]; ];
NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
# ardour's wscript has a "tarball" target but that required the git revision
# be available. Since this is an unzipped tarball fetched from github we
# have to do that ourself.
postPatch = ''
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
patchShebangs ./tools/
'';
postInstall = '' postInstall = ''
# Install desktop file # wscript does not install these for some reason
mkdir -p "$out/share/applications" install -vDm 644 "build/gtk2_ardour/ardour.xml" \
cat > "$out/share/applications/ardour.desktop" << EOF -t "$out/share/mime/packages"
[Desktop Entry] install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
Name=Ardour 5 -t "$out/share/applications"
GenericName=Digital Audio Workstation for size in 16 22 32 48 256 512; do
Comment=Multitrack harddisk recorder install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
Exec=$out/bin/ardour5 "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png done
Terminal=false install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
Type=Application
X-MultipleArgs=false
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
EOF
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
src = fetchzip { src = fetchzip {
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip"; url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
sha256 = { sha256 = {
aarch64-linux = "1lcpj1mgkvksq1d08ibh59y0dmdh7zm77wi5ziqhg3p5g9nxyasd"; aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
armv7l-linux = "0sljy06302x567jqw5lagbyhpc3j140jk4wccacxjrbb6hcx3l42"; armv7l-linux = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
x86_64-darwin = "1b058s9kny026q395nj99v8hggxkgv43nnjkmx1a2siajw0db94c"; x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv"; x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
}; };
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
dontBuild = true; dontBuild = true;
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;
preferLocalBuild = true;
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@ -1,6 +1,15 @@
{ mkDerivation, fetchFromGitHub, lib { mkDerivation
, pkgconfig, cmake , lib
, exiv2, qtbase, qtimageformats, qtsvg , fetchFromGitHub
, cmake
, pkgconfig
, exiv2
, mpv
, qtbase
, qtimageformats
, qtsvg
}: }:
mkDerivation rec { mkDerivation rec {
@ -14,33 +23,32 @@ mkDerivation rec {
sha256 = "0cmya06j466v0pirhxbzbj1vbz0346y7rbc1gbv4n9xcp6c6bln6"; sha256 = "0cmya06j466v0pirhxbzbj1vbz0346y7rbc1gbv4n9xcp6c6bln6";
}; };
cmakeFlags = [
# Video support appears to be broken; the following gets printed upon
# attempting to view an mp4, webm, or mkv (and probably all video formats):
#
# [VideoPlayerInitProxy] Error - could not load player library
# "qimgv_player_mpv"
#
# GIFs are unaffected. If this ever gets addressed, all that is necessary is
# to add `mpv` to the arguments list and to `buildInputs`, and to remove
# `cmakeFlags`.
"-DVIDEO_SUPPORT=OFF"
];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig
cmake cmake
pkgconfig
]; ];
buildInputs = [ buildInputs = [
exiv2 exiv2
mpv
qtbase qtbase
qtimageformats qtimageformats
qtsvg qtsvg
]; ];
postPatch = ''
sed -i "s@/usr/bin/mpv@${mpv}/bin/mpv@" \
qimgv/settings.cpp
'';
# Wrap the library path so it can see `libqimgv_player_mpv.so`, which is used
# to play video files within qimgv itself.
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib"
];
meta = with lib; { meta = with lib; {
description = "Qt5 image viewer with optional video support"; description = "A Qt5 image viewer with optional video support";
homepage = "https://github.com/easymodo/qimgv"; homepage = "https://github.com/easymodo/qimgv";
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -19,13 +19,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "ulauncher"; pname = "ulauncher";
version = "5.6.1"; version = "5.7.3";
disabled = python3Packages.isPy27; disabled = python3Packages.isPy27;
src = fetchurl { src = fetchurl {
url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz"; url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
sha256 = "14k68lp58wldldhaq4cf0ffkhi81czv4ps9xa86iw1j5b1gd2vbl"; sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh";
}; };
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [
@ -71,7 +71,6 @@ python3Packages.buildPythonApplication rec {
patches = [ patches = [
./fix-path.patch ./fix-path.patch
./fix-permissions.patch # ulauncher PR #523
./0001-Adjust-get_data_path-for-NixOS.patch ./0001-Adjust-get_data_path-for-NixOS.patch
./fix-extensions.patch ./fix-extensions.patch
]; ];

View File

@ -1,12 +0,0 @@
diff --git a/ulauncher/utils/Theme.py b/ulauncher/utils/Theme.py
index 9cde624..4e36c4f 100644
--- a/ulauncher/utils/Theme.py
+++ b/ulauncher/utils/Theme.py
@@ -138,6 +138,9 @@ class Theme:
rmtree(new_theme_dir)
copytree(self.path, new_theme_dir)
+ # change file permissions (because Nix store is read-only)
+ os.chmod(new_theme_dir, 0o755)
+
return os.path.join(new_theme_dir, 'generated.css')

View File

@ -2,13 +2,13 @@
let let
pname = "deltachat-electron"; pname = "deltachat-electron";
version = "1.1.0"; version = "1.2.0";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = url =
"https://download.delta.chat/desktop/r${version}/DeltaChat-${version}.AppImage"; "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
sha256 = "0pbn45cyv0h3fp7s9v9q93v12ah2gj7daaq0r3z140im6zv0rkrc"; sha256 = "Cyb34bfQEdwOA6XYZO+1Ri/2e/PRat15aUMn7IElmUI=";
}; };
appimageContents = appimageTools.extract { inherit name src; }; appimageContents = appimageTools.extract { inherit name src; };

View File

@ -1,7 +1,6 @@
{ stdenv, fetchFromGitHub { stdenv, fetchFromGitHub
, makeWrapper, makeDesktopItem, mkYarnPackage , makeWrapper, makeDesktopItem, mkYarnPackage
, electron_7, riot-web, gtk3 , electron_7, riot-web
, wrapGAppsHook, glib
}: }:
# Notes for maintainers: # Notes for maintainers:
# * versions of `riot-web` and `riot-desktop` should be kept in sync. # * versions of `riot-web` and `riot-desktop` should be kept in sync.
@ -27,14 +26,7 @@ in mkYarnPackage rec {
packageJSON = ./riot-desktop-package.json; packageJSON = ./riot-desktop-package.json;
yarnNix = ./riot-desktop-yarndeps.nix; yarnNix = ./riot-desktop-yarndeps.nix;
nativeBuildInputs = [ wrapGAppsHook ]; nativeBuildInputs = [ makeWrapper ];
extraBuildInputs = [
glib
gtk3
];
dontWrapGApps = true;
installPhase = '' installPhase = ''
# resources # resources
@ -54,13 +46,10 @@ in mkYarnPackage rec {
# desktop item # desktop item
mkdir -p "$out/share" mkdir -p "$out/share"
ln -s "${desktopItem}/share/applications" "$out/share/applications" ln -s "${desktopItem}/share/applications" "$out/share/applications"
'';
postFixup = ''
# executable wrapper # executable wrapper
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \ makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
--add-flags "$out/share/riot/electron" \ --add-flags "$out/share/riot/electron"
"''${gappsWrapperArgs[@]}"
''; '';
# Do not attempt generating a tarball for riot-web again. # Do not attempt generating a tarball for riot-web again.

View File

@ -1,15 +1,16 @@
{ stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee { stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }: , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
, appstream, desktop-file-utils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bookworm"; pname = "bookworm";
version = "unstable-2018-11-19"; version = "1.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "babluboy"; owner = "babluboy";
repo = pname; repo = pname;
rev = "4c3061784ff42151cac77d12bf2a28bf831fdfc5"; rev = version;
sha256 = "0yrqxa60xlvz249kx966z5krx8i7h17ac0hjgq9p8f0irzy5yp0n"; sha256 = "0w0rlyahpgx0l6inkbj106agbnr2czil0vdcy1zzv70apnjz488j";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -35,6 +36,8 @@ stdenv.mkDerivation rec {
python2 python2
sqlite sqlite
webkitgtk webkitgtk
appstream
desktop-file-utils
]; ];
postPatch = '' postPatch = ''

View File

@ -16,6 +16,9 @@
++ [crateFeatures] ++ [crateFeatures]
++ extraRustcOpts ++ extraRustcOpts
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc" ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
# since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
# https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro"
; ;
rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}";

View File

@ -457,6 +457,18 @@ let
"test ignore_main ... ok" "test ignore_main ... ok"
]; ];
}; };
procMacroInPrelude = {
procMacro = true;
edition = "2018";
src = symlinkJoin {
name = "proc-macro-in-prelude";
paths = [
(mkFile "src/lib.rs" ''
use proc_macro::TokenTree;
'')
];
};
};
}; };
brotliCrates = (callPackage ./brotli-crates.nix {}); brotliCrates = (callPackage ./brotli-crates.nix {});
tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases; tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases;

View File

@ -3,7 +3,6 @@
, fetchpatch , fetchpatch
, which , which
, cmake , cmake
, clang
, llvmPackages , llvmPackages
, libunwind , libunwind
, gettext , gettext
@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
which which
cmake cmake
clang llvmPackages.clang
]; ];
buildInputs = [ buildInputs = [

View File

@ -1,4 +1,4 @@
# See pkgs/build-support/setup-hooks/role.bash # See pkgs/build-support/setup-hooks/role.bash
getHostRole getHostRole
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/@targetConfig@"

View File

@ -1,4 +1,13 @@
{ stdenv, version, fetch, cmake, python3, llvm, libcxxabi }: { stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
let
useLLVM = stdenv.hostPlatform.useLLVM or false;
bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
inherit (stdenv.hostPlatform) isMusl;
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "compiler-rt"; pname = "compiler-rt";
inherit version; inherit version;
@ -11,27 +20,26 @@ stdenv.mkDerivation rec {
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
]; ];
cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [ cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_C_FLAGS=-nodefaultlibs" ] ++ stdenv.lib.optionals (useLLVM || bareMetal || isMusl) [
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
"-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF"
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
"-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_PROFILE=OFF"
] ++ stdenv.lib.optionals (useLLVM || bareMetal) [
"-DCMAKE_C_COMPILER_WORKS=ON"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BAREMETAL_BUILD=ON" "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
] ++ stdenv.lib.optionals (useLLVM) [
"-DCOMPILER_RT_BUILD_BUILTINS=ON"
"-DCMAKE_C_FLAGS=-nodefaultlibs"
#https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
"-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" ] ++ stdenv.lib.optionals (bareMetal) [
] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
"-DCOMPILER_RT_BUILD_XRAY=OFF"
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
"-DCOMPILER_RT_BUILD_PROFILE=OFF"
] ++ stdenv.lib.optionals (stdenv.hostPlatform.parsed.kernel.name == "none") [
"-DCOMPILER_RT_BAREMETAL_BUILD=ON"
"-DCOMPILER_RT_OS_DIR=baremetal" "-DCOMPILER_RT_OS_DIR=baremetal"
]; ];
@ -50,7 +58,7 @@ stdenv.mkDerivation rec {
postPatch = stdenv.lib.optionalString stdenv.isDarwin '' postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace cmake/config-ix.cmake \ substituteInPlace cmake/config-ix.cmake \
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
'' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) '' '' + stdenv.lib.optionalString (useLLVM) ''
substituteInPlace lib/builtins/int_util.c \ substituteInPlace lib/builtins/int_util.c \
--replace "#include <stdlib.h>" "" --replace "#include <stdlib.h>" ""
substituteInPlace lib/builtins/clear_cache.c \ substituteInPlace lib/builtins/clear_cache.c \
@ -62,7 +70,7 @@ stdenv.mkDerivation rec {
# Hack around weird upsream RPATH bug # Hack around weird upsream RPATH bug
postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
ln -s "$out/lib"/*/* "$out/lib" ln -s "$out/lib"/*/* "$out/lib"
'' + stdenv.lib.optionalString (stdenv.hostPlatform.useLLVM or false) '' '' + stdenv.lib.optionalString (useLLVM) ''
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "10.0.0"; release_version = "10.0.0";
version = release_version; # differentiating these (variables) is important for rc's version = release_version; # differentiating these (variables) is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
@ -60,7 +61,12 @@ let
libstdcxxHook libstdcxxHook
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -1,5 +1,13 @@
{ stdenv, version, fetch, cmake, python3, llvm, libcxxabi }: { stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
with stdenv.lib;
let
useLLVM = stdenv.hostPlatform.useLLVM or false;
bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
inherit (stdenv.hostPlatform) isMusl;
in
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "compiler-rt"; pname = "compiler-rt";
inherit version; inherit version;
@ -8,16 +16,39 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake python3 llvm ]; nativeBuildInputs = [ cmake python3 llvm ];
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
configureFlags = [ NIX_CFLAGS_COMPILE = [
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
];
cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
] ++ stdenv.lib.optionals (useLLVM || bareMetal || isMusl) [
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
"-DCOMPILER_RT_BUILD_XRAY=OFF"
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
"-DCOMPILER_RT_BUILD_PROFILE=OFF"
] ++ stdenv.lib.optionals (useLLVM || bareMetal) [
"-DCMAKE_C_COMPILER_WORKS=ON"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BAREMETAL_BUILD=ON"
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
] ++ stdenv.lib.optionals (useLLVM) [
"-DCOMPILER_RT_BUILD_BUILTINS=ON"
"-DCMAKE_C_FLAGS=-nodefaultlibs"
#https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
"-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
] ++ stdenv.lib.optionals (bareMetal) [
"-DCOMPILER_RT_OS_DIR=baremetal"
]; ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [ patches = [
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
] ++ optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
++ optional (stdenv.hostPlatform.libc == "glibc") ./compiler-rt-sys-ustat.patch; ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "glibc") ./compiler-rt-sys-ustat.patch;
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
@ -27,11 +58,23 @@ stdenv.mkDerivation {
postPatch = stdenv.lib.optionalString stdenv.isDarwin '' postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace cmake/config-ix.cmake \ substituteInPlace cmake/config-ix.cmake \
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
'' + stdenv.lib.optionalString (useLLVM) ''
substituteInPlace lib/builtins/int_util.c \
--replace "#include <stdlib.h>" ""
substituteInPlace lib/builtins/clear_cache.c \
--replace "#include <assert.h>" ""
substituteInPlace lib/builtins/cpu_model.c \
--replace "#include <assert.h>" ""
''; '';
# Hack around weird upsream RPATH bug # Hack around weird upsream RPATH bug
postInstall = stdenv.lib.optionalString stdenv.isDarwin '' postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
ln -s "$out/lib"/*/* "$out/lib" ln -s "$out/lib"/*/* "$out/lib"
'' + stdenv.lib.optionalString (useLLVM) ''
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o
ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "5.0.2"; release_version = "5.0.2";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
@ -56,7 +57,12 @@ let
extraPackages = [ extraPackages = [
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -1,5 +1,13 @@
{ stdenv, version, fetch, cmake, python3, llvm, libcxxabi }: { stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
with stdenv.lib;
let
useLLVM = stdenv.hostPlatform.useLLVM or false;
bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
inherit (stdenv.hostPlatform) isMusl;
in
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "compiler-rt"; pname = "compiler-rt";
inherit version; inherit version;
@ -8,15 +16,38 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake python3 llvm ]; nativeBuildInputs = [ cmake python3 llvm ];
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
configureFlags = [ NIX_CFLAGS_COMPILE = [
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
];
cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
] ++ stdenv.lib.optionals (useLLVM || bareMetal || isMusl) [
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
"-DCOMPILER_RT_BUILD_XRAY=OFF"
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
"-DCOMPILER_RT_BUILD_PROFILE=OFF"
] ++ stdenv.lib.optionals (useLLVM || bareMetal) [
"-DCMAKE_C_COMPILER_WORKS=ON"
"-DCMAKE_CXX_COMPILER_WORKS=ON"
"-DCOMPILER_RT_BAREMETAL_BUILD=ON"
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
] ++ stdenv.lib.optionals (useLLVM) [
"-DCOMPILER_RT_BUILD_BUILTINS=ON"
"-DCMAKE_C_FLAGS=-nodefaultlibs"
#https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
"-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
] ++ stdenv.lib.optionals (bareMetal) [
"-DCOMPILER_RT_OS_DIR=baremetal"
]; ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [ patches = [
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
] ++ optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch; ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch;
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
@ -26,11 +57,23 @@ stdenv.mkDerivation {
postPatch = stdenv.lib.optionalString stdenv.isDarwin '' postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace cmake/config-ix.cmake \ substituteInPlace cmake/config-ix.cmake \
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
'' + stdenv.lib.optionalString (useLLVM) ''
substituteInPlace lib/builtins/int_util.c \
--replace "#include <stdlib.h>" ""
substituteInPlace lib/builtins/clear_cache.c \
--replace "#include <assert.h>" ""
substituteInPlace lib/builtins/cpu_model.c \
--replace "#include <assert.h>" ""
''; '';
# Hack around weird upsream RPATH bug # Hack around weird upsream RPATH bug
postInstall = stdenv.lib.optionalString stdenv.isDarwin '' postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
ln -s "$out/lib"/*/* "$out/lib" ln -s "$out/lib"/*/* "$out/lib"
'' + stdenv.lib.optionalString (useLLVM) ''
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o
ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "6.0.1"; release_version = "6.0.1";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
@ -56,7 +57,12 @@ let
extraPackages = [ extraPackages = [
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -20,7 +20,7 @@ stdenv.mkDerivation {
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
]; ];
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [ cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
@ -68,7 +68,7 @@ stdenv.mkDerivation {
''; '';
# Hack around weird upsream RPATH bug # Hack around weird upsream RPATH bug
postInstall = stdenv.lib.optionalString stdenv.isDarwin '' postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
ln -s "$out/lib"/*/* "$out/lib" ln -s "$out/lib"/*/* "$out/lib"
'' + stdenv.lib.optionalString (useLLVM) '' '' + stdenv.lib.optionalString (useLLVM) ''
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "7.1.0"; release_version = "7.1.0";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
@ -63,7 +64,12 @@ let
extraPackages = [ extraPackages = [
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -20,7 +20,7 @@ stdenv.mkDerivation {
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
]; ];
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [ cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "8.0.1"; release_version = "8.0.1";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
@ -63,7 +64,12 @@ let
extraPackages = [ extraPackages = [
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
]; ];
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [ cmakeFlags = [
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"

View File

@ -1,4 +1,4 @@
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook { lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross , buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross
@ -7,6 +7,7 @@
let let
release_version = "9.0.1"; release_version = "9.0.1";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
targetConfig = stdenv.targetPlatform.config;
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
@ -63,7 +64,12 @@ let
extraPackages = [ extraPackages = [
targetLlvmLibraries.compiler-rt targetLlvmLibraries.compiler-rt
]; ];
extraBuildCommands = mkExtraBuildCommands cc; extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
'' + mkExtraBuildCommands cc;
}; };
libcxxClang = wrapCCWith rec { libcxxClang = wrapCCWith rec {

View File

@ -0,0 +1,53 @@
{ stdenv
, fetchFromGitHub
, fetchpatch
, kissfft
}:
stdenv.mkDerivation rec {
pname = "qm-dsp";
version = "1.7.1";
src = fetchFromGitHub {
owner = "c4dm";
repo = pname;
rev = "v${version}";
sha256 = "e1PtCIzp7zIz+KKRxEGlAXTNqZ35vPgQ4opJKHIPa+4=";
};
patches = [
# Make installable
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-install.patch";
sha256 = "7JDg9yOECWG7Ql5lIoC4L++R1gUlKfztvED5Ey4YLxw=";
})
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-flags.patch";
sha256 = "2HRSbSFxC8DPXOgcflyBYeJI3NwO/1CFmyRdvYo09og=";
postFetch = ''
sed -i 's~/Makefile~/build/linux/Makefile.linux32~g' "$out"
'';
})
];
buildInputs = [
kissfft
];
makefile = "build/linux/Makefile.linux32";
makeFlags = [
"PREFIX=${placeholder "out"}"
"LIBDIR=${placeholder "out"}/lib"
];
NIX_CFLAGS_COMPILE = "-I${kissfft}/include/kissfft";
meta = with stdenv.lib; {
description = "A C++ library of functions for DSP and Music Informatics purposes";
homepage = "https://code.soundsoftware.ac.uk/projects/qm-dsp";
license = licenses.gpl2Plus;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View File

@ -28,6 +28,9 @@ assert enableShared || enableStatic;
assert enablePython -> stdenv.hostPlatform == stdenv.buildPlatform; assert enablePython -> stdenv.hostPlatform == stdenv.buildPlatform;
assert enableNumpy -> enablePython; assert enableNumpy -> enablePython;
# Boost <1.69 can't be build with clang >8, because pth was removed
assert with stdenv.lib; ((toolset == "clang" && !(versionOlder stdenv.cc.version "8.0.0")) -> !(versionOlder version "1.69"));
with stdenv.lib; with stdenv.lib;
let let

View File

@ -0,0 +1,49 @@
{ stdenv
, fetchFromGitHub
, cmake
, boost
, eigen
, hdf5
, mpiSupport ? hdf5.mpiSupport
, mpi ? hdf5.mpi
}:
assert mpiSupport -> mpi != null;
stdenv.mkDerivation rec {
pname = "highfive";
version = "2.2";
src = fetchFromGitHub {
owner = "BlueBrain";
repo = "HighFive";
rev = "4c70d818ed18231563fe49ff197d1c41054be592";
sha256 = "02xy3c2ix3nw8109aw75ixj651knzc5rjqwqrxximm4hzwx09frk";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ boost eigen hdf5 ];
passthru = {
inherit mpiSupport mpi;
};
cmakeFlags = [
"-DHIGHFIVE_USE_BOOST=ON"
"-DHIGHFIVE_USE_EIGEN=ON"
"-DHIGHFIVE_EXAMPLES=OFF"
"-DHIGHFIVE_UNIT_TESTS=OFF"
"-DHIGHFIVE_USE_INSTALL_DEPS=ON"
]
++ (stdenv.lib.optionals mpiSupport [ "-DHIGHFIVE_PARALLEL_HDF5=ON" ]);
meta = with stdenv.lib; {
inherit version;
description = "Header-only C++ HDF5 interface";
license = licenses.boost;
homepage = "https://bluebrain.github.io/HighFive/";
platforms = platforms.unix;
maintainers = with maintainers; [ robertodr ];
};
}

View File

@ -0,0 +1,45 @@
{ stdenv
, fetchFromGitHub
, fetchpatch
}:
stdenv.mkDerivation rec {
pname = "kissfft";
version = "131";
src = fetchFromGitHub {
owner = "mborgerding";
repo = pname;
rev = "v${version}";
sha256 = "4lmRyBzW4H5wXb0EpgAp/hbaE2SslB6rAJyyLLbCtSs=";
};
patches = [
# Allow installation into our prefix
# Fix installation on Darwin
# Create necessary directories
# Make datatype configurable
(fetchpatch {
url = "https://github.com/mborgerding/kissfft/pull/38.patch";
sha256 = "Rsrob1M+lxwEag6SV5FqaTeyiJaOpspZxVtkeihX4TI=";
})
# Install headers as well
(fetchpatch {
url = "https://github.com/mborgerding/kissfft/commit/71df949992d2dbbe15ce707cf56c3fa1e43b1080.patch";
sha256 = "9ap6ZWyioBiut9UQM3v6W1Uv+iP3Kmt27xWhIfWfBI4=";
})
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"DATATYPE=double"
];
meta = with stdenv.lib; {
description = "A mixed-radix Fast Fourier Transform based up on the KISS principle";
homepage = "https://github.com/mborgerding/kissfft";
license = licenses.bsd3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View File

@ -4,12 +4,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "liburing"; pname = "liburing";
version = "0.4pre514_${builtins.substring 0 8 src.rev}"; version = "0.6pre600_${builtins.substring 0 8 src.rev}";
src = fetchgit { src = fetchgit {
url = "http://git.kernel.dk/${pname}"; url = "http://git.kernel.dk/${pname}";
rev = "2454d6301d83a714d0775662b512fd46dbf82a0d"; rev = "f2e1f3590f7bed3040bd1691676b50839f7d5c39";
sha256 = "0qdycr0w0rymnizc4p5rh2qcnzr05afris4ggaawdg4zr07jms7k"; sha256 = "0wg0pgcbilbb2wg08hsvd18q1m8vdk46b3piz7qb1pvgyq01idj2";
}; };
separateDebugInfo = true; separateDebugInfo = true;

View File

@ -11,12 +11,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gensim"; pname = "gensim";
version = "3.8.1"; version = "3.8.2";
disabled = !isPy3k; disabled = !isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "33277fc0a8d7b0c7ce70fcc74bb82ad39f944c009b334856c6e86bf552b1dfdc"; sha256 = "1x9gvz954h10wgq02wybi21llwwjj9r1gal2qr82q7g1h9g0dqs6";
}; };
propagatedBuildInputs = [ smart_open numpy six scipy ]; propagatedBuildInputs = [ smart_open numpy six scipy ];

View File

@ -4,11 +4,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gphoto2"; pname = "gphoto2";
version = "2.2.1"; version = "2.2.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "118zm25c8mlajfl0pzssnwz4b8lamj9dgymla9rn4nla7l244a0r"; sha256 = "0sd3w0gpnb58hg8mv20nfqf4g1plr9rkn51h088xdsd6i97r9x99";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -5,12 +5,12 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "3.3.0"; version = "3.3.1";
pname = "gspread"; pname = "gspread";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1nlmg7lnj162nql1acw9z7n1043sk49j11arlfn766i9ykvq6hng"; sha256 = "0mpvhndr38hb5x95xk2mqqasvcy6pa7ck8801bvpg5y3lwn5nka0";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [ requests ];

View File

@ -0,0 +1,45 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, docopt
, requests
, beautifulsoup4
, black
, mypy
, flake8
}:
buildPythonPackage rec {
pname = "hydra-check";
version = "1.1.1";
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "nix-community";
repo = "hydra-check";
rev = version;
sha256 = "1dmsscsib8ckp496gsfqxmq8d35zs71n99xmziq9iprvy7n5clq2";
};
propagatedBuildInputs = [
docopt
requests
beautifulsoup4
];
checkInputs = [ mypy ];
checkPhase = ''
echo -e "\x1b[32m## run mypy\x1b[0m"
mypy hydracheck
'';
meta = with lib;{
description = "check hydra for the build status of a package";
homepage = "https://github.com/nix-community/hydra-check";
license = licenses.mit;
maintainers = with maintainers; [ makefu ];
};
}

View File

@ -22,12 +22,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pikepdf"; pname = "pikepdf";
version = "1.10.2"; version = "1.11.0";
disabled = ! isPy3k; disabled = ! isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1y94ay2jz4m55nlyrg283xsjqsxigmj7vzrzf1mskbpjb20335fb"; sha256 = "0v9sraihad0vz8dv3zc5xm5f2ixwbpr2kfpya5s0mgnrn6l19nds";
}; };
buildInputs = [ buildInputs = [

View File

@ -0,0 +1,49 @@
{ base58
, buildPythonPackage
, fetchPypi
, isPy27
, lib
, morphys
, pytest
, pytestcov
, pytestrunner
, six
, variants
, varint
}:
buildPythonPackage rec {
pname = "py-multihash";
version = "0.2.3";
src = fetchPypi {
inherit pname version ;
sha256 = "f0ade4de820afdc4b4aaa40464ec86c9da5cae3a4578cda2daab4b0eb7e5b18d";
};
nativeBuildInputs = [
pytestrunner
];
propagatedBuildInputs = [
base58
morphys
six
variants
varint
];
checkInputs = [
pytest
pytestcov
];
disabled = isPy27;
meta = with lib; {
description = "Self describing hashes - for future proofing";
homepage = "https://github.com/multiformats/py-multihash";
license = licenses.mit;
maintainers = with maintainers; [ rakesh4g ];
};
}

View File

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "PyChromecast"; pname = "PyChromecast";
version = "4.2.0"; version = "4.2.3";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "05h7ncymyh1715v2jkj312qza5qlqrz6yfpgyv4kdf1m07zh7pxh"; sha256 = "1nqy9zvzxzncfmmbsj4ccb36gymh4pp1n1l9fdhv8fi0ai9b7dyp";
}; };
disabled = !isPy3k; disabled = !isPy3k;

View File

@ -3,21 +3,21 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pypandoc"; pname = "pypandoc";
version = "unstable-2018-06-18"; version = "1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bebraw"; owner = "bebraw";
repo = pname; repo = pname;
rev = "87912f0f17e0a71c1160008df708c876d32e5819"; rev = version;
sha256 = "0l6knkxxhmni4lx8hyvbb71svnhza08ivyklqlk5fw637gznc0hx"; sha256 = "1lpslfns6zxx7b0xr13bzg921lwrj5am8za0b2dviywk6iiib0ld";
}; };
postPatch = '' postPatch = ''
# set pandoc path statically # set pandoc path statically
sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py
# Fix tests: requires network access # Skip test that requires network access
substituteInPlace tests.py --replace "pypandoc.convert(url, 'html')" "'GPL2 license'" sed -i '/test_basic_conversion_from_http_url/i\\ @unittest.skip\("no network access during checkPhase"\)' tests.py
''; '';
preCheck = '' preCheck = ''

View File

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-nomad"; pname = "python-nomad";
version = "1.1.0"; version = "1.2.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1rf6ad35vg3yi1p4l383xwx0ammdvr1k71bxg93bgcvljypx4cyn"; sha256 = "0ivkfdrmb4wpyawvwrgm3jvx6hn49vqjpwbkmkmamigghqqwacx3";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [ requests ];

View File

@ -1,4 +1,4 @@
{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core }@args: { stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core }@args:
let let
mkElectron = import ./generic.nix args; mkElectron = import ./generic.nix args;

View File

@ -1,4 +1,4 @@
{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core}: { stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core}:
version: hashes: version: hashes:
let let
@ -34,7 +34,7 @@ let
}; };
linux = { linux = {
buildInputs = [ gtk3 ]; buildInputs = [ glib gtk3 ];
nativeBuildInputs = [ nativeBuildInputs = [
unzip unzip
@ -44,13 +44,16 @@ let
dontWrapGApps = true; # electron is in lib, we need to wrap it manually dontWrapGApps = true; # electron is in lib, we need to wrap it manually
buildCommand = '' dontUnpack = true;
dontBuild = true;
installPhase = ''
mkdir -p $out/lib/electron $out/bin mkdir -p $out/lib/electron $out/bin
unzip -d $out/lib/electron $src unzip -d $out/lib/electron $src
ln -s $out/lib/electron/electron $out/bin ln -s $out/lib/electron/electron $out/bin
'';
fixupPhase postFixup = ''
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libuuid at-spi2-atk at-spi2-core ]}:$out/lib/electron" \ --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libuuid at-spi2-atk at-spi2-core ]}:$out/lib/electron" \

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec{ stdenv.mkDerivation rec{
pname = "cypress"; pname = "cypress";
version = "4.2.0"; version = "4.3.0";
src = fetchzip { src = fetchzip {
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip"; url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
sha256 = "0ksa7c0bpq13xxgk0qizg3kfyjihcqan5wm6f45v7kgz3wwxc4nz"; sha256 = "0lrjha3zrsclpk8bhmv14vy1y5liahjkvcd87zm6cik1rnscaspw";
}; };
# don't remove runtime deps # don't remove runtime deps

View File

@ -9,16 +9,16 @@ stdenv.mkDerivation rec {
pname = "spring"; pname = "spring";
version = "104.0.1-${buildId}-g${shortRev}"; version = "104.0.1-${buildId}-g${shortRev}";
# usually the latest in https://github.com/spring/spring/commits/maintenance # usually the latest in https://github.com/spring/spring/commits/maintenance
rev = "176577006b3367a6ca3cafb8e7779af76429d655"; rev = "f266c8107b3e5dda5a78061ef00ca0ed8736d6f2";
shortRev = builtins.substring 0 7 rev; shortRev = builtins.substring 0 7 rev;
buildId = "1485"; buildId = "1486";
# taken from https://github.com/spring/spring/commits/maintenance # taken from https://github.com/spring/spring/commits/maintenance
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "spring"; owner = "spring";
repo = "spring"; repo = "spring";
inherit rev; inherit rev;
sha256 = "0p2bwbvy0chcd2mmhqwx04szkyjvz1p3aink5g63s3r4ghcqlrbr"; sha256 = "1nx68d894yfmqc6df72hmk75ph26fqdvlmmq58cca0vbwpz9hf5v";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -7,7 +7,7 @@ with stdenv;
let let
majorVersion = "0"; majorVersion = "0";
minorVersion = "219"; minorVersion = "220";
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "MAME"; name = "MAME";
@ -26,7 +26,7 @@ in mkDerivation {
owner = "mamedev"; owner = "mamedev";
repo = "mame"; repo = "mame";
rev = "mame${majorVersion}${minorVersion}"; rev = "mame${majorVersion}${minorVersion}";
sha256 = "048ar1j2vsrvqqc3spy9qcch2lbxn0ycd9lv4ig5wfnvjkdjdvgr"; sha256 = "0ddmq3lagk7f1wkgybckcci4sigcqn1gzafggnnqjzq2q8viww0c";
}; };
hardeningDisable = [ "fortify" ]; hardeningDisable = [ "fortify" ];

View File

@ -1,39 +1,37 @@
{ stdenv, buildGoPackage, fetchFromGitHub, bash, go-bindata}: { stdenv, buildGoModule, fetchFromGitHub, go-bindata, nixosTests }:
buildGoPackage rec { buildGoModule rec {
pname = "traefik"; pname = "traefik";
version = "1.7.14"; version = "2.2.0";
goPackagePath = "github.com/containous/traefik";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containous"; owner = "containous";
repo = "traefik"; repo = "traefik";
rev = "v${version}"; rev = "v${version}";
sha256 = "1j3p09j8rpdkp8v4d4mz224ddakkvhzchvccm9qryrqc2fq4022v"; sha256 = "1dcazssabqxr9wv3dds3z7ks3y628qa07vgnn3hpdwxzm2b2ma92";
}; };
nativeBuildInputs = [ go-bindata bash ]; modSha256 = "0w3ssxvsmq8i6hbfmn4ig2x13i2nlqy5q1khcblf9pq5vhk202qx";
subPackages = [ "cmd/traefik" ];
buildPhase = '' nativeBuildInputs = [ go-bindata ];
runHook preBuild
( passthru.tests = { inherit (nixosTests) traefik; };
cd go/src/github.com/containous/traefik
bash ./script/make.sh generate preBuild = ''
go generate
CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary) CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary)
go build -ldflags "\
makeFlagsArray+=("-ldflags=\
-X github.com/containous/traefik/version.Version=${version} \ -X github.com/containous/traefik/version.Version=${version} \
-X github.com/containous/traefik/version.Codename=$CODENAME \ -X github.com/containous/traefik/version.Codename=$CODENAME")
" -a -o $bin/bin/traefik ./cmd/traefik
)
runHook postBuild
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://traefik.io"; homepage = "https://traefik.io";
description = "A modern reverse proxy"; description = "A modern reverse proxy";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ hamhut1066 vdemeester ]; maintainers = with maintainers; [ vdemeester ];
}; };
} }

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "lf"; pname = "lf";
version = "13"; version = "14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gokcehan"; owner = "gokcehan";
repo = "lf"; repo = "lf";
rev = "r${version}"; rev = "r${version}";
sha256 = "1ld3q75v8rvp169w5p85z1vznqs9bhck6bm2f6fykxx16hmpb6ga"; sha256 = "0kl9yrgph1i0jbxhlg3k0411436w80xw1s8dzd7v7h2raygkb4is";
}; };
modSha256 = "14fvn8yjm9cnpsmzgxw2dypr3h8h36mxrbk7zma42w8rsp46jpz7"; modSha256 = "1c6c6qg8yrhdhqsnqj3jw3x2hi8vrhfm47cp9xlkfnjfrz3nk6jp";
# TODO: Setting buildFlags probably isn't working properly. I've tried a few # TODO: Setting buildFlags probably isn't working properly. I've tried a few
# variants, e.g.: # variants, e.g.:
@ -27,6 +27,7 @@ buildGoModule rec {
postInstall = '' postInstall = ''
install -D --mode=444 lf.1 $out/share/man/man1/lf.1 install -D --mode=444 lf.1 $out/share/man/man1/lf.1
install -D --mode=444 lf.desktop $out/share/applications/lf.desktop
''; '';
meta = with lib; { meta = with lib; {
@ -38,6 +39,7 @@ buildGoModule rec {
are handled by external tools. are handled by external tools.
''; '';
homepage = "https://godoc.org/github.com/gokcehan/lf"; homepage = "https://godoc.org/github.com/gokcehan/lf";
changelog = "https://github.com/gokcehan/lf/releases/tag/r${version}";
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ primeos ]; maintainers = with maintainers; [ primeos ];

View File

@ -681,6 +681,11 @@ mapAliases ({
clang_35 = llvm_4; clang_35 = llvm_4;
clang_4 = llvm_4; clang_4 = llvm_4;
# added 2019-04-13
# *-polly pointed to llvmPackages_latest
llvm-polly = throw "clang is now built with polly-plugin by default";
clang-polly = throw "clang is now built with polly-plugin by default";
/* Cleanup before 20.09 */ /* Cleanup before 20.09 */
oraclejdk8psu = throw '' oraclejdk8psu = throw ''
The *psu versions of oraclejdk aren't provided by upstream anymore and were therefore removed! The *psu versions of oraclejdk aren't provided by upstream anymore and were therefore removed!

View File

@ -8003,8 +8003,6 @@ in
useMacosReexportHack = true; useMacosReexportHack = true;
}; };
}; };
llvm-polly = llvmPackages_latest.llvm-polly;
clang-polly = llvmPackages_latest.clang.override { cc = llvmPackages_latest.clang-polly-unwrapped; };
clang_10 = llvmPackages_10.clang; clang_10 = llvmPackages_10.clang;
clang_9 = llvmPackages_9.clang; clang_9 = llvmPackages_9.clang;
@ -8184,7 +8182,11 @@ in
})); }));
libstdcxxHook = makeSetupHook libstdcxxHook = makeSetupHook
{ substitutions = { gcc = gcc-unwrapped; }; } { substitutions = {
gcc = gcc-unwrapped;
targetConfig = stdenv.targetPlatform.config;
};
}
../development/compilers/gcc/libstdc++-hook.sh; ../development/compilers/gcc/libstdc++-hook.sh;
crossLibcStdenv = overrideCC stdenv crossLibcStdenv = overrideCC stdenv
@ -8801,7 +8803,7 @@ in
stdenv = gcc7Stdenv; stdenv = gcc7Stdenv;
}); });
llvmPackages_latest = llvmPackages_9; # llvmPackages_10: when out of RC llvmPackages_latest = llvmPackages_10;
lorri = callPackage ../tools/misc/lorri { lorri = callPackage ../tools/misc/lorri {
inherit (darwin.apple_sdk.frameworks) CoreServices Security; inherit (darwin.apple_sdk.frameworks) CoreServices Security;
@ -12077,6 +12079,12 @@ in
libusb = libusb1; libusb = libusb1;
}; };
highfive = callPackage ../development/libraries/highfive { };
highfive-mpi = appendToName "mpi" (highfive.override {
hdf5 = hdf5-mpi;
});
hiredis = callPackage ../development/libraries/hiredis { }; hiredis = callPackage ../development/libraries/hiredis { };
hiredis-vip = callPackage ../development/libraries/hiredis-vip { }; hiredis-vip = callPackage ../development/libraries/hiredis-vip { };
@ -12119,6 +12127,8 @@ in
hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { }; hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
hydra-check = with python3.pkgs; toPythonApplication hydra-check;
hyena = callPackage ../development/libraries/hyena { }; hyena = callPackage ../development/libraries/hyena { };
hyperscan = callPackage ../development/libraries/hyperscan { }; hyperscan = callPackage ../development/libraries/hyperscan { };
@ -14199,6 +14209,8 @@ in
readosm = callPackage ../development/libraries/readosm { }; readosm = callPackage ../development/libraries/readosm { };
kissfft = callPackage ../development/libraries/kissfft { };
lambdabot = callPackage ../development/tools/haskell/lambdabot { lambdabot = callPackage ../development/tools/haskell/lambdabot {
haskellLib = haskell.lib; haskellLib = haskell.lib;
}; };
@ -14227,6 +14239,8 @@ in
lvtk = callPackage ../development/libraries/audio/lvtk { }; lvtk = callPackage ../development/libraries/audio/lvtk { };
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
qradiolink = callPackage ../applications/radio/qradiolink { }; qradiolink = callPackage ../applications/radio/qradiolink { };
qrupdate = callPackage ../development/libraries/qrupdate { }; qrupdate = callPackage ../development/libraries/qrupdate { };
@ -18420,9 +18434,7 @@ in
aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { }; aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
ardour = callPackage ../applications/audio/ardour { ardour = callPackage ../applications/audio/ardour { };
inherit (gnome2) libgnomecanvas libgnomecanvasmm;
};
arelle = with python3Packages; toPythonApplication arelle; arelle = with python3Packages; toPythonApplication arelle;

View File

@ -1129,6 +1129,8 @@ in {
py-lru-cache = callPackage ../development/python-modules/py-lru-cache { }; py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
py-multihash = callPackage ../development/python-modules/py-multihash { };
py-radix = callPackage ../development/python-modules/py-radix { }; py-radix = callPackage ../development/python-modules/py-radix { };
pydbus = callPackage ../development/python-modules/pydbus { }; pydbus = callPackage ../development/python-modules/pydbus { };
@ -4008,6 +4010,8 @@ in {
hypothesis = callPackage ../development/python-modules/hypothesis { }; hypothesis = callPackage ../development/python-modules/hypothesis { };
hydra-check = callPackage ../development/python-modules/hydra-check { };
colored = callPackage ../development/python-modules/colored { }; colored = callPackage ../development/python-modules/colored { };
xdg = callPackage ../development/python-modules/xdg { }; xdg = callPackage ../development/python-modules/xdg { };