mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 15:56:50 +01:00
Merge remote-tracking branch 'upstream/master' into staging
This commit is contained in:
commit
c8a6ea5161
58 changed files with 1094 additions and 271 deletions
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -25,6 +25,12 @@ If applicable, add screenshots to help explain your problem.
|
|||
**Additional context**
|
||||
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**
|
||||
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
|
||||
|
||||
|
|
|
@ -193,14 +193,7 @@ rec {
|
|||
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
|
||||
(showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux"
|
||||
*/
|
||||
showOption = parts: let
|
||||
escapeOptionPart = part:
|
||||
let
|
||||
escaped = lib.strings.escapeNixString part;
|
||||
in if escaped == "\"${part}\""
|
||||
then part
|
||||
else escaped;
|
||||
in (concatStringsSep ".") (map escapeOptionPart parts);
|
||||
showOption = parts: concatMapStringsSep "." escapeNixIdentifier parts;
|
||||
showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files);
|
||||
unknownModule = "<unknown-file>";
|
||||
|
||||
|
|
|
@ -315,6 +315,21 @@ rec {
|
|||
*/
|
||||
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.
|
||||
replaceChars = builtins.replaceStrings or (
|
||||
del: new: s:
|
||||
|
|
75
lib/tests/maintainers.nix
Normal file
75
lib/tests/maintainers.nix
Normal 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
|
|
@ -3,7 +3,10 @@
|
|||
# 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.
|
||||
|
||||
cd ./modules
|
||||
# https://stackoverflow.com/a/246128/6605742
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
cd "$DIR"/modules
|
||||
|
||||
pass=0
|
||||
fail=0
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ pkgs ? import ((import ../.).cleanSource ../..) {} }:
|
||||
{ pkgs ? import ../.. {} }:
|
||||
|
||||
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}";
|
||||
} ''
|
||||
datadir="${pkgs.nix}/share"
|
||||
|
@ -17,8 +17,8 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
|
|||
cacheDir=$TEST_ROOT/binary-cache
|
||||
nix-store --init
|
||||
|
||||
cd ${pkgs.path}/lib/tests
|
||||
bash ./modules.sh
|
||||
cp -r ${../.} lib
|
||||
bash lib/tests/modules.sh
|
||||
|
||||
touch $out
|
||||
''
|
||||
|
|
|
@ -100,6 +100,7 @@
|
|||
abbradar = {
|
||||
email = "ab@fmap.me";
|
||||
github = "abbradar";
|
||||
githubId = 1174810;
|
||||
name = "Nikolay Amiantov";
|
||||
};
|
||||
abhi18av = {
|
||||
|
@ -135,6 +136,7 @@
|
|||
acairncross = {
|
||||
email = "acairncross@gmail.com";
|
||||
github = "acairncross";
|
||||
githubId = 1517066;
|
||||
name = "Aiken Cairncross";
|
||||
};
|
||||
acowley = {
|
||||
|
@ -146,6 +148,7 @@
|
|||
adamt = {
|
||||
email = "mail@adamtulinius.dk";
|
||||
github = "adamtulinius";
|
||||
githubId = 749381;
|
||||
name = "Adam Tulinius";
|
||||
};
|
||||
adelbertc = {
|
||||
|
@ -229,6 +232,7 @@
|
|||
aforemny = {
|
||||
email = "alexanderforemny@googlemail.com";
|
||||
github = "aforemny";
|
||||
githubId = 610962;
|
||||
name = "Alexander Foremny";
|
||||
};
|
||||
afranchuk = {
|
||||
|
@ -276,6 +280,7 @@
|
|||
ak = {
|
||||
email = "ak@formalprivacy.com";
|
||||
github = "alexanderkjeldaas";
|
||||
githubId = 339369;
|
||||
name = "Alexander Kjeldaas";
|
||||
};
|
||||
akavel = {
|
||||
|
@ -383,6 +388,7 @@
|
|||
alunduil = {
|
||||
email = "alunduil@gmail.com";
|
||||
github = "alunduil";
|
||||
githubId = 169249;
|
||||
name = "Alex Brandt";
|
||||
};
|
||||
alva = {
|
||||
|
@ -404,6 +410,7 @@
|
|||
ambrop72 = {
|
||||
email = "ambrop7@gmail.com";
|
||||
github = "ambrop72";
|
||||
githubId = 2626481;
|
||||
name = "Ambroz Bizjak";
|
||||
};
|
||||
amiddelk = {
|
||||
|
@ -473,11 +480,13 @@
|
|||
andreabedini = {
|
||||
email = "andrea@kzn.io";
|
||||
github = "andreabedini";
|
||||
githubId = 69135;
|
||||
name = "Andrea Bedini";
|
||||
};
|
||||
andres = {
|
||||
email = "ksnixos@andres-loeh.de";
|
||||
github = "kosmikus";
|
||||
githubId = 293191;
|
||||
name = "Andres Loeh";
|
||||
};
|
||||
andrestylianos = {
|
||||
|
@ -507,6 +516,7 @@
|
|||
andsild = {
|
||||
email = "andsild@gmail.com";
|
||||
github = "andsild";
|
||||
githubId = 3808928;
|
||||
name = "Anders Sildnes";
|
||||
};
|
||||
aneeshusa = {
|
||||
|
@ -560,6 +570,7 @@
|
|||
antono = {
|
||||
email = "self@antono.info";
|
||||
github = "antono";
|
||||
githubId = 7622;
|
||||
name = "Antono Vasiljev";
|
||||
};
|
||||
antonxy = {
|
||||
|
@ -742,7 +753,8 @@
|
|||
};
|
||||
auntie = {
|
||||
email = "auntieNeo@gmail.com";
|
||||
github = "auntie";
|
||||
github = "auntieNeo";
|
||||
githubId = 574938;
|
||||
name = "Jonathan Glines";
|
||||
};
|
||||
avaq = {
|
||||
|
@ -760,6 +772,7 @@
|
|||
averelld = {
|
||||
email = "averell+nixos@rxd4.com";
|
||||
github = "averelld";
|
||||
githubId = 687218;
|
||||
name = "averelld";
|
||||
};
|
||||
avitex = {
|
||||
|
@ -815,11 +828,13 @@
|
|||
backuitist = {
|
||||
email = "biethb@gmail.com";
|
||||
github = "backuitist";
|
||||
githubId = 1017537;
|
||||
name = "Bruno Bieth";
|
||||
};
|
||||
badi = {
|
||||
email = "abdulwahidc@gmail.com";
|
||||
github = "badi";
|
||||
githubId = 35324;
|
||||
name = "Badi' Abdul-Wahid";
|
||||
};
|
||||
balajisivaraman = {
|
||||
|
@ -943,6 +958,7 @@
|
|||
berdario = {
|
||||
email = "berdario@gmail.com";
|
||||
github = "berdario";
|
||||
githubId = 752835;
|
||||
name = "Dario Bertini";
|
||||
};
|
||||
bergey = {
|
||||
|
@ -1024,6 +1040,7 @@
|
|||
bluescreen303 = {
|
||||
email = "mathijs@bluescreen303.nl";
|
||||
github = "bluescreen303";
|
||||
githubId = 16330;
|
||||
name = "Mathijs Kwik";
|
||||
};
|
||||
bobakker = {
|
||||
|
@ -1053,6 +1070,7 @@
|
|||
boothead = {
|
||||
email = "ben@perurbis.com";
|
||||
github = "boothead";
|
||||
githubId = 87764;
|
||||
name = "Ben Ford";
|
||||
};
|
||||
borisbabic = {
|
||||
|
@ -1473,6 +1491,7 @@
|
|||
coconnor = {
|
||||
email = "coreyoconnor@gmail.com";
|
||||
github = "coreyoconnor";
|
||||
githubId = 34317;
|
||||
name = "Corey O'Connor";
|
||||
};
|
||||
codsl = {
|
||||
|
@ -1566,6 +1585,7 @@
|
|||
cransom = {
|
||||
email = "cransom@hubns.net";
|
||||
github = "cransom";
|
||||
githubId = 1957293;
|
||||
name = "Casey Ransom";
|
||||
};
|
||||
CrazedProgrammer = {
|
||||
|
@ -1725,6 +1745,7 @@
|
|||
davidrusu = {
|
||||
email = "davidrusu.me@gmail.com";
|
||||
github = "davidrusu";
|
||||
githubId = 1832378;
|
||||
name = "David Rusu";
|
||||
};
|
||||
davidtwco = {
|
||||
|
@ -1818,6 +1839,7 @@
|
|||
DerGuteMoritz = {
|
||||
email = "moritz@twoticketsplease.de";
|
||||
github = "DerGuteMoritz";
|
||||
githubId = 19733;
|
||||
name = "Moritz Heidkamp";
|
||||
};
|
||||
dermetfan = {
|
||||
|
@ -1835,6 +1857,7 @@
|
|||
desiderius = {
|
||||
email = "didier@devroye.name";
|
||||
github = "desiderius";
|
||||
githubId = 1311761;
|
||||
name = "Didier J. Devroye";
|
||||
};
|
||||
devhell = {
|
||||
|
@ -1864,6 +1887,7 @@
|
|||
dgonyeo = {
|
||||
email = "derek@gonyeo.com";
|
||||
github = "dgonyeo";
|
||||
githubId = 2439413;
|
||||
name = "Derek Gonyeo";
|
||||
};
|
||||
dhkl = {
|
||||
|
@ -1983,6 +2007,7 @@
|
|||
doublec = {
|
||||
email = "chris.double@double.co.nz";
|
||||
github = "doublec";
|
||||
githubId = 16599;
|
||||
name = "Chris Double";
|
||||
};
|
||||
dpaetzel = {
|
||||
|
@ -2048,6 +2073,7 @@
|
|||
dxf = {
|
||||
email = "dingxiangfei2009@gmail.com";
|
||||
github = "dingxiangfei2009";
|
||||
githubId = 6884440;
|
||||
name = "Ding Xiang Fei";
|
||||
};
|
||||
dysinger = {
|
||||
|
@ -2113,6 +2139,7 @@
|
|||
edanaher = {
|
||||
email = "nixos@edanaher.net";
|
||||
github = "edanaher";
|
||||
githubId = 984691;
|
||||
name = "Evan Danaher";
|
||||
};
|
||||
edef = {
|
||||
|
@ -2262,6 +2289,7 @@
|
|||
emmanuelrosa = {
|
||||
email = "emmanuel_rosa@aol.com";
|
||||
github = "emmanuelrosa";
|
||||
githubId = 13485450;
|
||||
name = "Emmanuel Rosa";
|
||||
};
|
||||
endgame = {
|
||||
|
@ -2279,7 +2307,7 @@
|
|||
Enteee = {
|
||||
email = "nix@duckpond.ch";
|
||||
github = "Enteee";
|
||||
githubid = 5493775;
|
||||
githubId = 5493775;
|
||||
name = "Ente";
|
||||
};
|
||||
enzime = {
|
||||
|
@ -2337,6 +2365,7 @@
|
|||
ericsagnes = {
|
||||
email = "eric.sagnes@gmail.com";
|
||||
github = "ericsagnes";
|
||||
githubId = 367880;
|
||||
name = "Eric Sagnes";
|
||||
};
|
||||
ericson2314 = {
|
||||
|
@ -2376,6 +2405,7 @@
|
|||
ertes = {
|
||||
email = "esz@posteo.de";
|
||||
github = "ertes";
|
||||
githubId = 1855930;
|
||||
name = "Ertugrul Söylemez";
|
||||
};
|
||||
esclear = {
|
||||
|
@ -2485,6 +2515,7 @@
|
|||
fare = {
|
||||
email = "fahree@gmail.com";
|
||||
github = "fare";
|
||||
githubId = 8073;
|
||||
name = "Francois-Rene Rideau";
|
||||
};
|
||||
farlion = {
|
||||
|
@ -2496,6 +2527,7 @@
|
|||
fdns = {
|
||||
email = "fdns02@gmail.com";
|
||||
github = "fdns";
|
||||
githubId = 541748;
|
||||
name = "Felipe Espinoza";
|
||||
};
|
||||
ffinkdevs = {
|
||||
|
@ -2622,6 +2654,7 @@
|
|||
fragamus = {
|
||||
email = "innovative.engineer@gmail.com";
|
||||
github = "fragamus";
|
||||
githubId = 119691;
|
||||
name = "Michael Gough";
|
||||
};
|
||||
|
||||
|
@ -2640,11 +2673,13 @@
|
|||
freezeboy = {
|
||||
email = "freezeboy@users.noreply.github.com";
|
||||
github = "freezeboy";
|
||||
githubId = 13279982;
|
||||
name = "freezeboy";
|
||||
};
|
||||
Fresheyeball = {
|
||||
email = "fresheyeball@gmail.com";
|
||||
github = "fresheyeball";
|
||||
github = "Fresheyeball";
|
||||
githubId = 609279;
|
||||
name = "Isaac Shapira";
|
||||
};
|
||||
fridh = {
|
||||
|
@ -2748,6 +2783,7 @@
|
|||
garbas = {
|
||||
email = "rok@garbas.si";
|
||||
github = "garbas";
|
||||
githubId = 20208;
|
||||
name = "Rok Garbas";
|
||||
};
|
||||
garrison = {
|
||||
|
@ -2759,6 +2795,7 @@
|
|||
gavin = {
|
||||
email = "gavin.rogers@holo.host";
|
||||
github = "gavinrogers";
|
||||
githubId = 2430469;
|
||||
name = "Gavin Rogers";
|
||||
};
|
||||
gazally = {
|
||||
|
@ -2906,6 +2943,7 @@
|
|||
gridaphobe = {
|
||||
email = "eric@seidel.io";
|
||||
github = "gridaphobe";
|
||||
githubId = 201997;
|
||||
name = "Eric Seidel";
|
||||
};
|
||||
guibert = {
|
||||
|
@ -3035,6 +3073,7 @@
|
|||
name = "Guanpeng Xu";
|
||||
};
|
||||
hexa = {
|
||||
email = "hexa@darmstadt.ccc.de";
|
||||
github = "mweinelt";
|
||||
githubId = 131599;
|
||||
name = "Martin Weinelt";
|
||||
|
@ -3053,6 +3092,7 @@
|
|||
email = "me@hkjn.me";
|
||||
name = "Henrik Jonsson";
|
||||
github = "hkjn";
|
||||
githubId = 287215;
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x03EFBF839A5FDC15";
|
||||
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
|
||||
|
@ -3225,6 +3265,7 @@
|
|||
name = "Michele Catalano";
|
||||
};
|
||||
isgy = {
|
||||
name = "isgy";
|
||||
email = "isgy@teiyg.com";
|
||||
github = "isgy";
|
||||
githubId = 13622947;
|
||||
|
@ -3263,7 +3304,7 @@
|
|||
email = "ivar.scholten@protonmail.com";
|
||||
github = "IvarWithoutBones";
|
||||
githubId = 41924494;
|
||||
Name = "Ivar";
|
||||
name = "Ivar";
|
||||
};
|
||||
ivegotasthma = {
|
||||
email = "ivegotasthma@protonmail.com";
|
||||
|
@ -3302,6 +3343,7 @@
|
|||
jasoncarr = {
|
||||
email = "jcarr250@gmail.com";
|
||||
github = "jasoncarr0";
|
||||
githubId = 6874204;
|
||||
name = "Jason Carr";
|
||||
};
|
||||
j-keck = {
|
||||
|
@ -3313,6 +3355,7 @@
|
|||
j03 = {
|
||||
email = "github@johannesloetzsch.de";
|
||||
github = "johannesloetzsch";
|
||||
githubId = 175537;
|
||||
name = "Johannes Lötzsch";
|
||||
};
|
||||
jagajaga = {
|
||||
|
@ -3439,7 +3482,8 @@
|
|||
};
|
||||
jeschli = {
|
||||
email = "jeschli@gmail.com";
|
||||
github = "jeschli";
|
||||
github = "Jeschli";
|
||||
githubId = 10786794;
|
||||
name = "Markus Hihn";
|
||||
};
|
||||
jethro = {
|
||||
|
@ -3451,6 +3495,7 @@
|
|||
jfb = {
|
||||
email = "james@yamtime.com";
|
||||
github = "tftio";
|
||||
githubId = 143075;
|
||||
name = "James Felix Black";
|
||||
};
|
||||
jflanglois = {
|
||||
|
@ -3510,6 +3555,7 @@
|
|||
jitwit = {
|
||||
email = "jrn@bluefarm.ca";
|
||||
github = "jitwit";
|
||||
githubId = 51518420;
|
||||
name = "jitwit";
|
||||
};
|
||||
jlesquembre = {
|
||||
|
@ -3551,6 +3597,7 @@
|
|||
joamaki = {
|
||||
email = "joamaki@gmail.com";
|
||||
github = "joamaki";
|
||||
githubId = 1102396;
|
||||
name = "Jussi Maki";
|
||||
};
|
||||
joelburget = {
|
||||
|
@ -3573,6 +3620,7 @@
|
|||
email = "admin@cryto.net";
|
||||
name = "Sven Slootweg";
|
||||
github = "joepie91";
|
||||
githubId = 1663259;
|
||||
};
|
||||
joesalisbury = {
|
||||
email = "salisbury.joseph@gmail.com";
|
||||
|
@ -3646,6 +3694,7 @@
|
|||
jonathanmarler = {
|
||||
email = "johnnymarler@gmail.com";
|
||||
github = "marler8997";
|
||||
githubId = 304904;
|
||||
name = "Jonathan Marler";
|
||||
};
|
||||
jonathanreeve = {
|
||||
|
@ -3751,6 +3800,7 @@
|
|||
juliendehos = {
|
||||
email = "dehos@lisic.univ-littoral.fr";
|
||||
github = "juliendehos";
|
||||
githubId = 11947756;
|
||||
name = "Julien Dehos";
|
||||
};
|
||||
jumper149 = {
|
||||
|
@ -3784,6 +3834,7 @@
|
|||
jyp = {
|
||||
email = "jeanphilippe.bernardy@gmail.com";
|
||||
github = "jyp";
|
||||
githubId = 27747;
|
||||
name = "Jean-Philippe Bernardy";
|
||||
};
|
||||
jzellner = {
|
||||
|
@ -3797,7 +3848,7 @@
|
|||
email = "KAction@disroot.org";
|
||||
github = "kaction";
|
||||
githubId = 44864956;
|
||||
key = [{
|
||||
keys = [{
|
||||
longkeyid = "ed25519/0x749FD4DFA2E94236";
|
||||
fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236";
|
||||
}];
|
||||
|
@ -3833,6 +3884,7 @@
|
|||
kampfschlaefer = {
|
||||
email = "arnold@arnoldarts.de";
|
||||
github = "kampfschlaefer";
|
||||
githubId = 3831860;
|
||||
name = "Arnold Krille";
|
||||
};
|
||||
karantan = {
|
||||
|
@ -3990,6 +4042,7 @@
|
|||
email = "adrian@kummerlaender.eu";
|
||||
name = "Adrian Kummerlaender";
|
||||
github = "KnairdA";
|
||||
githubId = 498373;
|
||||
};
|
||||
knedlsepp = {
|
||||
email = "josef.kemetmueller@gmail.com";
|
||||
|
@ -4012,6 +4065,7 @@
|
|||
kolbycrouch = {
|
||||
email = "kjc.devel@gmail.com";
|
||||
github = "kolbycrouch";
|
||||
githubId = 6346418;
|
||||
name = "Kolby Crouch";
|
||||
};
|
||||
konimex = {
|
||||
|
@ -4023,6 +4077,7 @@
|
|||
koral = {
|
||||
email = "koral@mailoo.org";
|
||||
github = "k0ral";
|
||||
githubId = 524268;
|
||||
name = "Koral";
|
||||
};
|
||||
kovirobi = {
|
||||
|
@ -4064,7 +4119,7 @@
|
|||
kristian-brucaj = {
|
||||
email = "kbrucaj@gmail.com";
|
||||
github = "kristian-brucaj";
|
||||
githubID = "8893110";
|
||||
githubId = 8893110;
|
||||
name = "Kristian Brucaj";
|
||||
};
|
||||
kristoff3r = {
|
||||
|
@ -4124,6 +4179,7 @@
|
|||
laikq = {
|
||||
email = "gwen@quasebarth.de";
|
||||
github = "laikq";
|
||||
githubId = 55911173;
|
||||
name = "Gwendolyn Quasebarth";
|
||||
};
|
||||
lasandell = {
|
||||
|
@ -4141,6 +4197,7 @@
|
|||
lassulus = {
|
||||
email = "lassulus@gmail.com";
|
||||
github = "Lassulus";
|
||||
githubId = 621759;
|
||||
name = "Lassulus";
|
||||
};
|
||||
lattfein = {
|
||||
|
@ -4195,6 +4252,7 @@
|
|||
lebastr = {
|
||||
email = "lebastr@gmail.com";
|
||||
github = "lebastr";
|
||||
githubId = 887072;
|
||||
name = "Alexander Lebedev";
|
||||
};
|
||||
ledif = {
|
||||
|
@ -4230,6 +4288,7 @@
|
|||
leonardoce = {
|
||||
email = "leonardo.cecchi@gmail.com";
|
||||
github = "leonardoce";
|
||||
githubId = 1572058;
|
||||
name = "Leonardo Cecchi";
|
||||
};
|
||||
leshainc = {
|
||||
|
@ -4393,6 +4452,7 @@
|
|||
lovek323 = {
|
||||
email = "jason@oconal.id.au";
|
||||
github = "lovek323";
|
||||
githubId = 265084;
|
||||
name = "Jason O'Conal";
|
||||
};
|
||||
lovesegfault = {
|
||||
|
@ -4432,6 +4492,7 @@
|
|||
ltavard = {
|
||||
email = "laure.tavard@univ-grenoble-alpes.fr";
|
||||
github = "ltavard";
|
||||
githubId = 8555953;
|
||||
name = "Laure Tavard";
|
||||
};
|
||||
luc65r = {
|
||||
|
@ -4495,6 +4556,7 @@
|
|||
lumi = {
|
||||
email = "lumi@pew.im";
|
||||
github = "lumi-me-not";
|
||||
githubId = 26020062;
|
||||
name = "lumi";
|
||||
};
|
||||
luz = {
|
||||
|
@ -4678,6 +4740,7 @@
|
|||
matthewbauer = {
|
||||
email = "mjbauer95@gmail.com";
|
||||
github = "matthewbauer";
|
||||
githubId = 19036;
|
||||
name = "Matthew Bauer";
|
||||
};
|
||||
matthiasbeyer = {
|
||||
|
@ -4695,6 +4758,7 @@
|
|||
matti-kariluoma = {
|
||||
email = "matti@kariluo.ma";
|
||||
github = "matti-kariluoma";
|
||||
githubId = 279868;
|
||||
name = "Matti Kariluoma";
|
||||
};
|
||||
maurer = {
|
||||
|
@ -4820,6 +4884,7 @@
|
|||
melsigl = {
|
||||
email = "melanie.bianca.sigl@gmail.com";
|
||||
github = "melsigl";
|
||||
githubId = 15093162;
|
||||
name = "Melanie B. Sigl";
|
||||
};
|
||||
melkor333 = {
|
||||
|
@ -4888,6 +4953,7 @@
|
|||
michaelpj = {
|
||||
email = "michaelpj@gmail.com";
|
||||
github = "michaelpj";
|
||||
githubId = 1699466;
|
||||
name = "Michael Peyton Jones";
|
||||
};
|
||||
michalrus = {
|
||||
|
@ -4899,6 +4965,7 @@
|
|||
michelk = {
|
||||
email = "michel@kuhlmanns.info";
|
||||
github = "michelk";
|
||||
githubId = 1404919;
|
||||
name = "Michel Kuhlmann";
|
||||
};
|
||||
michojel = {
|
||||
|
@ -4972,6 +5039,7 @@
|
|||
mirdhyn = {
|
||||
email = "mirdhyn@gmail.com";
|
||||
github = "mirdhyn";
|
||||
githubId = 149558;
|
||||
name = "Merlin Gaillard";
|
||||
};
|
||||
mirrexagon = {
|
||||
|
@ -5007,6 +5075,7 @@
|
|||
mkf = {
|
||||
email = "m@mikf.pl";
|
||||
github = "mkf";
|
||||
githubId = 7753506;
|
||||
name = "Michał Krzysztof Feiler";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
|
||||
|
@ -5056,6 +5125,7 @@
|
|||
mmlb = {
|
||||
email = "manny@peekaboo.mmlb.icu";
|
||||
github = "mmlb";
|
||||
githubId = 708570;
|
||||
name = "Manuel Mendez";
|
||||
};
|
||||
mnacamura = {
|
||||
|
@ -5085,6 +5155,7 @@
|
|||
Mogria = {
|
||||
email = "m0gr14@gmail.com";
|
||||
github = "mogria";
|
||||
githubId = 754512;
|
||||
name = "Mogria";
|
||||
};
|
||||
monsieurp = {
|
||||
|
@ -5142,6 +5213,7 @@
|
|||
MP2E = {
|
||||
email = "MP2E@archlinux.us";
|
||||
github = "MP2E";
|
||||
githubId = 167708;
|
||||
name = "Cray Elliott";
|
||||
};
|
||||
mpcsh = {
|
||||
|
@ -5165,6 +5237,7 @@
|
|||
mpscholten = {
|
||||
email = "marc@mpscholten.de";
|
||||
github = "mpscholten";
|
||||
githubId = 2072185;
|
||||
name = "Marc Scholten";
|
||||
};
|
||||
mpsyco = {
|
||||
|
@ -5182,6 +5255,7 @@
|
|||
mredaelli = {
|
||||
email = "massimo@typish.io";
|
||||
github = "mredaelli";
|
||||
githubId = 3073833;
|
||||
name = "Massimo Redaelli";
|
||||
};
|
||||
mrkkrp = {
|
||||
|
@ -5249,6 +5323,7 @@
|
|||
MtP = {
|
||||
email = "marko.nixos@poikonen.de";
|
||||
github = "MtP76";
|
||||
githubId = 2176611;
|
||||
name = "Marko Poikonen";
|
||||
};
|
||||
mtreskin = {
|
||||
|
@ -5314,6 +5389,7 @@
|
|||
nand0p = {
|
||||
email = "nando@hex7.com";
|
||||
github = "nand0p";
|
||||
githubId = 1916245;
|
||||
name = "Fernando Jose Pando";
|
||||
};
|
||||
Nate-Devv = {
|
||||
|
@ -5587,6 +5663,7 @@
|
|||
olynch = {
|
||||
email = "owen@olynch.me";
|
||||
github = "olynch";
|
||||
githubId = 4728903;
|
||||
name = "Owen Lynch";
|
||||
};
|
||||
omnipotententity = {
|
||||
|
@ -5610,6 +5687,7 @@
|
|||
orbitz = {
|
||||
email = "mmatalka@gmail.com";
|
||||
github = "orbitz";
|
||||
githubId = 75299;
|
||||
name = "Malcolm Matalka";
|
||||
};
|
||||
orivej = {
|
||||
|
@ -5745,6 +5823,7 @@
|
|||
pcarrier = {
|
||||
email = "pc@rrier.ca";
|
||||
github = "pcarrier";
|
||||
githubId = 8641;
|
||||
name = "Pierre Carrier";
|
||||
};
|
||||
periklis = {
|
||||
|
@ -5890,6 +5969,7 @@
|
|||
plchldr = {
|
||||
email = "mail@oddco.de";
|
||||
github = "plchldr";
|
||||
githubId = 11639001;
|
||||
name = "Jonas Beyer";
|
||||
};
|
||||
plcplc = {
|
||||
|
@ -5913,6 +5993,7 @@
|
|||
pmeunier = {
|
||||
email = "pierre-etienne.meunier@inria.fr";
|
||||
github = "P-E-Meunier";
|
||||
githubId = 17021304;
|
||||
name = "Pierre-Étienne Meunier";
|
||||
};
|
||||
pmiddend = {
|
||||
|
@ -5942,6 +6023,7 @@
|
|||
polyrod = {
|
||||
email = "dc1mdp@gmail.com";
|
||||
github = "polyrod";
|
||||
githubId = 24878306;
|
||||
name = "Maurizio Di Pietro";
|
||||
};
|
||||
pombeirp = {
|
||||
|
@ -6121,11 +6203,13 @@
|
|||
raboof = {
|
||||
email = "arnout@bzzt.net";
|
||||
github = "raboof";
|
||||
githubId = 131856;
|
||||
name = "Arnout Engelen";
|
||||
};
|
||||
rafaelgg = {
|
||||
email = "rafael.garcia.gallego@gmail.com";
|
||||
github = "rafaelgg";
|
||||
githubId = 1016742;
|
||||
name = "Rafael García";
|
||||
};
|
||||
raquelgb = {
|
||||
|
@ -6297,6 +6381,7 @@
|
|||
rickynils = {
|
||||
email = "rickynils@gmail.com";
|
||||
github = "rickynils";
|
||||
githubId = 16779;
|
||||
name = "Rickard Nilsson";
|
||||
};
|
||||
rika = {
|
||||
|
@ -6380,11 +6465,13 @@
|
|||
rob = {
|
||||
email = "rob.vermaas@gmail.com";
|
||||
github = "rbvermaa";
|
||||
githubId = 353885;
|
||||
name = "Rob Vermaas";
|
||||
};
|
||||
robberer = {
|
||||
email = "robberer@freakmail.de";
|
||||
github = "robberer";
|
||||
githubId = 6204883;
|
||||
name = "Longrin Wischnewski";
|
||||
};
|
||||
robbinch = {
|
||||
|
@ -6504,6 +6591,7 @@
|
|||
rvolosatovs = {
|
||||
email = "rvolosatovs@riseup.net";
|
||||
github = "rvolosatovs";
|
||||
githubId = 12877905;
|
||||
name = "Roman Volosatovs";
|
||||
};
|
||||
ryanartecona = {
|
||||
|
@ -6515,6 +6603,7 @@
|
|||
ryansydnor = {
|
||||
email = "ryan.t.sydnor@gmail.com";
|
||||
github = "ryansydnor";
|
||||
githubId = 1832096;
|
||||
name = "Ryan Sydnor";
|
||||
};
|
||||
ryantm = {
|
||||
|
@ -6606,6 +6695,7 @@
|
|||
sander = {
|
||||
email = "s.vanderburg@tudelft.nl";
|
||||
github = "svanderburg";
|
||||
githubId = 1153271;
|
||||
name = "Sander van der Burg";
|
||||
};
|
||||
sargon = {
|
||||
|
@ -6641,6 +6731,7 @@
|
|||
scalavision = {
|
||||
email = "scalavision@gmail.com";
|
||||
github = "scalavision";
|
||||
githubId = 3958212;
|
||||
name = "Tom Sorlie";
|
||||
};
|
||||
schmitthenner = {
|
||||
|
@ -6650,8 +6741,10 @@
|
|||
name = "Fabian Schmitthenner";
|
||||
};
|
||||
schmittlauch = {
|
||||
name = "Trolli Schmittlauch";
|
||||
email = "t.schmittlauch+nixos@orlives.de";
|
||||
github = "schmittlauch";
|
||||
githubId = 1479555;
|
||||
};
|
||||
schneefux = {
|
||||
email = "schneefux+nixos_pkg@schneefux.xyz";
|
||||
|
@ -6690,6 +6783,7 @@
|
|||
scubed2 = {
|
||||
email = "scubed2@gmail.com";
|
||||
github = "scubed2";
|
||||
githubId = 7401858;
|
||||
name = "Sterling Stein";
|
||||
};
|
||||
sdier = {
|
||||
|
@ -6749,7 +6843,7 @@
|
|||
servalcatty = {
|
||||
email = "servalcat@pm.me";
|
||||
github = "servalcatty";
|
||||
githubid = 51969817;
|
||||
githubId = 51969817;
|
||||
name = "Serval";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x4A2AAAA382F8294C";
|
||||
|
@ -6795,6 +6889,7 @@
|
|||
shazow = {
|
||||
email = "andrey.petrov@shazow.net";
|
||||
github = "shazow";
|
||||
githubId = 6292;
|
||||
name = "Andrey Petrov";
|
||||
};
|
||||
sheenobu = {
|
||||
|
@ -6818,16 +6913,19 @@
|
|||
shlevy = {
|
||||
email = "shea@shealevy.com";
|
||||
github = "shlevy";
|
||||
githubId = 487050;
|
||||
name = "Shea Levy";
|
||||
};
|
||||
shmish111 = {
|
||||
email = "shmish111@gmail.com";
|
||||
github = "shmish111";
|
||||
githubId = 934267;
|
||||
name = "David Smith";
|
||||
};
|
||||
shnarazk = {
|
||||
email = "shujinarazaki@protonmail.com";
|
||||
github = "shnarazk";
|
||||
githubId = 997855;
|
||||
name = "Narazaki Shuji";
|
||||
};
|
||||
shou = {
|
||||
|
@ -6915,6 +7013,7 @@
|
|||
sjmackenzie = {
|
||||
email = "setori88@gmail.com";
|
||||
github = "sjmackenzie";
|
||||
githubId = 158321;
|
||||
name = "Stewart Mackenzie";
|
||||
};
|
||||
sjourdois = {
|
||||
|
@ -7048,6 +7147,7 @@
|
|||
sprock = {
|
||||
email = "rmason@mun.ca";
|
||||
github = "sprock";
|
||||
githubId = 6391601;
|
||||
name = "Roger Mason";
|
||||
};
|
||||
spwhitt = {
|
||||
|
@ -7059,6 +7159,7 @@
|
|||
srghma = {
|
||||
email = "srghma@gmail.com";
|
||||
github = "srghma";
|
||||
githubId = 7573215;
|
||||
name = "Sergei Khoma";
|
||||
};
|
||||
srgom = {
|
||||
|
@ -7276,6 +7377,7 @@
|
|||
taha = {
|
||||
email = "xrcrod@gmail.com";
|
||||
github = "tgharib";
|
||||
githubId = 6457015;
|
||||
name = "Taha Gharib";
|
||||
};
|
||||
tailhook = {
|
||||
|
@ -7359,6 +7461,7 @@
|
|||
tckmn = {
|
||||
email = "andy@tck.mn";
|
||||
github = "tckmn";
|
||||
githubId = 2389333;
|
||||
name = "Andy Tockman";
|
||||
};
|
||||
teh = {
|
||||
|
@ -7388,11 +7491,13 @@
|
|||
tesq0 = {
|
||||
email = "mikolaj.galkowski@gmail.com";
|
||||
github = "tesq0";
|
||||
githubId = 26417242;
|
||||
name = "Mikolaj Galkowski";
|
||||
};
|
||||
teto = {
|
||||
email = "mcoudron@hotmail.com";
|
||||
github = "teto";
|
||||
githubId = 886074;
|
||||
name = "Matthieu Coudron";
|
||||
};
|
||||
tex = {
|
||||
|
@ -7434,6 +7539,7 @@
|
|||
the-kenny = {
|
||||
email = "moritz@tarn-vedra.de";
|
||||
github = "the-kenny";
|
||||
githubId = 31167;
|
||||
name = "Moritz Ulrich";
|
||||
};
|
||||
thedavidmeister = {
|
||||
|
@ -7521,11 +7627,13 @@
|
|||
timbertson = {
|
||||
email = "tim@gfxmonk.net";
|
||||
github = "timbertson";
|
||||
githubId = 14172;
|
||||
name = "Tim Cuthbertson";
|
||||
};
|
||||
timma = {
|
||||
email = "kunduru.it.iitb@gmail.com";
|
||||
github = "ktrsoft";
|
||||
githubId = 12712927;
|
||||
name = "Timma";
|
||||
};
|
||||
timokau = {
|
||||
|
@ -7577,6 +7685,7 @@
|
|||
tnias = {
|
||||
email = "phil@grmr.de";
|
||||
github = "tnias";
|
||||
githubId = 9853194;
|
||||
name = "Philipp Bartsch";
|
||||
};
|
||||
tobim = {
|
||||
|
@ -7672,6 +7781,7 @@
|
|||
tscholak = {
|
||||
email = "torsten.scholak@googlemail.com";
|
||||
github = "tscholak";
|
||||
githubId = 1568873;
|
||||
name = "Torsten Scholak";
|
||||
};
|
||||
tstrobel = {
|
||||
|
@ -7693,6 +7803,7 @@
|
|||
tvestelind = {
|
||||
email = "tomas.vestelind@fripost.org";
|
||||
github = "tvestelind";
|
||||
githubId = 699403;
|
||||
name = "Tomas Vestelind";
|
||||
};
|
||||
tvorog = {
|
||||
|
@ -7704,11 +7815,13 @@
|
|||
tweber = {
|
||||
email = "tw+nixpkgs@360vier.de";
|
||||
github = "thorstenweber83";
|
||||
githubId = 9413924;
|
||||
name = "Thorsten Weber";
|
||||
};
|
||||
twey = {
|
||||
email = "twey@twey.co.uk";
|
||||
github = "twey";
|
||||
github = "Twey";
|
||||
githubId = 101639;
|
||||
name = "James ‘Twey’ Kay";
|
||||
};
|
||||
twhitehead = {
|
||||
|
@ -7772,6 +7885,7 @@
|
|||
uwap = {
|
||||
email = "me@uwap.name";
|
||||
github = "uwap";
|
||||
githubId = 2212422;
|
||||
name = "uwap";
|
||||
};
|
||||
va1entin = {
|
||||
|
@ -7789,12 +7903,13 @@
|
|||
valebes = {
|
||||
email = "valebes@gmail.com";
|
||||
github = "valebes";
|
||||
githubid = 10956211;
|
||||
githubId = 10956211;
|
||||
name = "Valerio Besozzi";
|
||||
};
|
||||
valeriangalliat = {
|
||||
email = "val@codejam.info";
|
||||
github = "valeriangalliat";
|
||||
githubId = 3929133;
|
||||
name = "Valérian Galliat";
|
||||
};
|
||||
valodim = {
|
||||
|
@ -7842,6 +7957,7 @@
|
|||
vcanadi = {
|
||||
email = "vito.canadi@gmail.com";
|
||||
github = "vcanadi";
|
||||
githubId = 8889722;
|
||||
name = "Vitomir Čanadi";
|
||||
};
|
||||
vcunat = {
|
||||
|
@ -7904,6 +8020,7 @@
|
|||
viric = {
|
||||
email = "viric@viric.name";
|
||||
github = "viric";
|
||||
githubId = 66664;
|
||||
name = "Lluís Batlle i Rossell";
|
||||
};
|
||||
virusdave = {
|
||||
|
@ -7915,6 +8032,7 @@
|
|||
vizanto = {
|
||||
email = "danny@prime.vc";
|
||||
github = "vizanto";
|
||||
githubId = 326263;
|
||||
name = "Danny Wilson";
|
||||
};
|
||||
vklquevs = {
|
||||
|
@ -7944,6 +8062,7 @@
|
|||
vmchale = {
|
||||
email = "tmchale@wisc.edu";
|
||||
github = "vmchale";
|
||||
githubId = 13259982;
|
||||
name = "Vanessa McHale";
|
||||
};
|
||||
volhovm = {
|
||||
|
@ -8067,6 +8186,7 @@
|
|||
wscott = {
|
||||
email = "wsc9tt@gmail.com";
|
||||
github = "wscott";
|
||||
githubId = 31487;
|
||||
name = "Wayne Scott";
|
||||
};
|
||||
wucke13 = {
|
||||
|
@ -8120,6 +8240,7 @@
|
|||
xnaveira = {
|
||||
email = "xnaveira@gmail.com";
|
||||
github = "xnaveira";
|
||||
githubId = 2534411;
|
||||
name = "Xavier Naveira";
|
||||
};
|
||||
xnwdd = {
|
||||
|
@ -8161,6 +8282,7 @@
|
|||
y0no = {
|
||||
email = "y0no@y0no.fr";
|
||||
github = "y0no";
|
||||
githubId = 2242427;
|
||||
name = "Yoann Ono";
|
||||
};
|
||||
yarny = {
|
||||
|
@ -8242,6 +8364,7 @@
|
|||
yvesf = {
|
||||
email = "yvesf+nix@xapek.org";
|
||||
github = "yvesf";
|
||||
githubId = 179548;
|
||||
name = "Yves Fischer";
|
||||
};
|
||||
yvt = {
|
||||
|
@ -8271,6 +8394,7 @@
|
|||
zalakain = {
|
||||
email = "ping@umazalakain.info";
|
||||
github = "umazalakain";
|
||||
githubId = 1319905;
|
||||
name = "Uma Zalakain";
|
||||
};
|
||||
zaninime = {
|
||||
|
@ -8431,6 +8555,7 @@
|
|||
name = "Nicholas Gerstle";
|
||||
email = "ngerstle@gmail.com";
|
||||
github = "ngerstle";
|
||||
githubId = 1023752;
|
||||
};
|
||||
xavierzwirtz = {
|
||||
email = "me@xavierzwirtz.com";
|
||||
|
|
|
@ -4,56 +4,102 @@ with lib;
|
|||
|
||||
let
|
||||
cfg = config.services.traefik;
|
||||
configFile =
|
||||
if cfg.configFile == null then
|
||||
jsonValue = with types;
|
||||
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" {
|
||||
buildInputs = [ pkgs.remarshal ];
|
||||
preferLocalBuild = true;
|
||||
} ''
|
||||
remarshal -if json -of toml \
|
||||
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \
|
||||
< ${
|
||||
pkgs.writeText "dynamic_config.json"
|
||||
(builtins.toJSON cfg.dynamicConfigOptions)
|
||||
} \
|
||||
> $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 {
|
||||
options.services.traefik = {
|
||||
enable = mkEnableOption "Traefik web server";
|
||||
|
||||
configFile = mkOption {
|
||||
staticConfigFile = mkOption {
|
||||
default = null;
|
||||
example = literalExample "/path/to/config.toml";
|
||||
example = literalExample "/path/to/static_config.toml";
|
||||
type = types.nullOr types.path;
|
||||
description = ''
|
||||
Path to verbatim traefik.toml to use.
|
||||
(Using that option has precedence over <literal>configOptions</literal>)
|
||||
Path to traefik's static configuration to use.
|
||||
(Using that option has precedence over <literal>staticConfigOptions</literal> and <literal>dynamicConfigOptions</literal>)
|
||||
'';
|
||||
};
|
||||
|
||||
configOptions = mkOption {
|
||||
staticConfigOptions = mkOption {
|
||||
description = ''
|
||||
Config for Traefik.
|
||||
Static configuration for Traefik.
|
||||
'';
|
||||
type = types.attrs;
|
||||
default = {
|
||||
defaultEntryPoints = ["http"];
|
||||
entryPoints.http.address = ":80";
|
||||
};
|
||||
type = jsonValue;
|
||||
default = { entryPoints.http.address = ":80"; };
|
||||
example = {
|
||||
defaultEntrypoints = [ "http" ];
|
||||
web.address = ":8080";
|
||||
entryPoints.web.address = ":8080";
|
||||
entryPoints.http.address = ":80";
|
||||
|
||||
file = {};
|
||||
frontends = {
|
||||
frontend1 = {
|
||||
backend = "backend1";
|
||||
routes.test_1.rule = "Host:localhost";
|
||||
api = { };
|
||||
};
|
||||
};
|
||||
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 {
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' 0700 traefik traefik - -"
|
||||
];
|
||||
systemd.tmpfiles.rules = [ "d '${cfg.dataDir}' 0700 traefik traefik - -" ];
|
||||
|
||||
systemd.services.traefik = {
|
||||
description = "Traefik web server";
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}'';
|
||||
ExecStart =
|
||||
"${cfg.package}/bin/traefik --configfile=${staticConfigFile}";
|
||||
Type = "simple";
|
||||
User = "traefik";
|
||||
Group = cfg.group;
|
||||
|
|
|
@ -303,6 +303,8 @@ in
|
|||
timezone = handleTest ./timezone.nix {};
|
||||
tinydns = handleTest ./tinydns.nix {};
|
||||
tor = handleTest ./tor.nix {};
|
||||
# traefik test relies on docker-containers
|
||||
traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {};
|
||||
transmission = handleTest ./transmission.nix {};
|
||||
trac = handleTest ./trac.nix {};
|
||||
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
||||
|
|
87
nixos/tests/traefik.nix
Normal file
87
nixos/tests/traefik.nix
Normal 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/"
|
||||
)
|
||||
'';
|
||||
})
|
|
@ -1,14 +1,51 @@
|
|||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen
|
||||
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
|
||||
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg
|
||||
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
||||
, libusb, libuuid, libxml2, libxslt, lilv, lrdf, lv2, makeWrapper
|
||||
, perl, pkgconfig, python2, rubberband, serd, sord, sratom
|
||||
, taglib, vamp-plugin-sdk, dbus, fftw, pango, suil, libarchive
|
||||
, wafHook }:
|
||||
|
||||
{ stdenv
|
||||
, fetchgit
|
||||
, alsaLib
|
||||
, aubio
|
||||
, boost
|
||||
, cairomm
|
||||
, curl
|
||||
, 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
|
||||
|
||||
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
||||
# 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
|
||||
|
@ -18,10 +55,7 @@ let
|
|||
|
||||
# Version to build.
|
||||
tag = "5.12";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "ardour-${tag}";
|
||||
|
||||
src = fetchgit {
|
||||
|
@ -30,46 +64,84 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wafHook ];
|
||||
buildInputs =
|
||||
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac
|
||||
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
|
||||
libmad libogg librdf_raptor librdf_rasqal libsamplerate
|
||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lrdf lv2
|
||||
makeWrapper pango perl pkgconfig python2 rubberband serd sord
|
||||
sratom suil taglib vamp-plugin-sdk libarchive
|
||||
nativeBuildInputs = [
|
||||
wafHook
|
||||
makeWrapper
|
||||
pkg-config
|
||||
itstool
|
||||
doxygen
|
||||
graphviz # for dot
|
||||
perl
|
||||
python2
|
||||
];
|
||||
|
||||
# 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.
|
||||
patchPhase = ''
|
||||
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
||||
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
|
||||
patchShebangs ./tools/
|
||||
'';
|
||||
buildInputs = [
|
||||
alsaLib
|
||||
aubio
|
||||
boost
|
||||
cairomm
|
||||
curl
|
||||
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 = [
|
||||
"--optimize"
|
||||
"--docs"
|
||||
"--use-external-libs"
|
||||
"--freedesktop"
|
||||
"--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 = ''
|
||||
# Install desktop file
|
||||
mkdir -p "$out/share/applications"
|
||||
cat > "$out/share/applications/ardour.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Name=Ardour 5
|
||||
GenericName=Digital Audio Workstation
|
||||
Comment=Multitrack harddisk recorder
|
||||
Exec=$out/bin/ardour5
|
||||
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-MultipleArgs=false
|
||||
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
|
||||
EOF
|
||||
# wscript does not install these for some reason
|
||||
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
|
||||
-t "$out/share/mime/packages"
|
||||
install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
|
||||
-t "$out/share/applications"
|
||||
for size in 16 22 32 48 256 512; do
|
||||
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
|
||||
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
|
||||
done
|
||||
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
|
|||
src = fetchzip {
|
||||
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
|
||||
sha256 = {
|
||||
aarch64-linux = "1lcpj1mgkvksq1d08ibh59y0dmdh7zm77wi5ziqhg3p5g9nxyasd";
|
||||
armv7l-linux = "0sljy06302x567jqw5lagbyhpc3j140jk4wccacxjrbb6hcx3l42";
|
||||
x86_64-darwin = "1b058s9kny026q395nj99v8hggxkgv43nnjkmx1a2siajw0db94c";
|
||||
aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
|
||||
armv7l-linux = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
|
||||
x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
|
||||
x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
|
|||
dontBuild = true;
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
preferLocalBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
|
|
@ -1,6 +1,15 @@
|
|||
{ mkDerivation, fetchFromGitHub, lib
|
||||
, pkgconfig, cmake
|
||||
, exiv2, qtbase, qtimageformats, qtsvg
|
||||
{ mkDerivation
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
|
||||
, cmake
|
||||
, pkgconfig
|
||||
|
||||
, exiv2
|
||||
, mpv
|
||||
, qtbase
|
||||
, qtimageformats
|
||||
, qtsvg
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
|
@ -14,33 +23,32 @@ mkDerivation rec {
|
|||
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 = [
|
||||
pkgconfig
|
||||
cmake
|
||||
pkgconfig
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
exiv2
|
||||
mpv
|
||||
qtbase
|
||||
qtimageformats
|
||||
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; {
|
||||
description = "Qt5 image viewer with optional video support";
|
||||
description = "A Qt5 image viewer with optional video support";
|
||||
homepage = "https://github.com/easymodo/qimgv";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "ulauncher";
|
||||
version = "5.6.1";
|
||||
version = "5.7.3";
|
||||
|
||||
disabled = python3Packages.isPy27;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
|
||||
sha256 = "14k68lp58wldldhaq4cf0ffkhi81czv4ps9xa86iw1j5b1gd2vbl";
|
||||
sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
|
@ -71,7 +71,6 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
patches = [
|
||||
./fix-path.patch
|
||||
./fix-permissions.patch # ulauncher PR #523
|
||||
./0001-Adjust-get_data_path-for-NixOS.patch
|
||||
./fix-extensions.patch
|
||||
];
|
||||
|
|
|
@ -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')
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
let
|
||||
pname = "deltachat-electron";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
"https://download.delta.chat/desktop/r${version}/DeltaChat-${version}.AppImage";
|
||||
sha256 = "0pbn45cyv0h3fp7s9v9q93v12ah2gj7daaq0r3z140im6zv0rkrc";
|
||||
"https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
|
||||
sha256 = "Cyb34bfQEdwOA6XYZO+1Ri/2e/PRat15aUMn7IElmUI=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extract { inherit name src; };
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ stdenv, fetchFromGitHub
|
||||
, makeWrapper, makeDesktopItem, mkYarnPackage
|
||||
, electron_7, riot-web, gtk3
|
||||
, wrapGAppsHook, glib
|
||||
, electron_7, riot-web
|
||||
}:
|
||||
# Notes for maintainers:
|
||||
# * versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||
|
@ -27,14 +26,7 @@ in mkYarnPackage rec {
|
|||
packageJSON = ./riot-desktop-package.json;
|
||||
yarnNix = ./riot-desktop-yarndeps.nix;
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook ];
|
||||
|
||||
extraBuildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
# resources
|
||||
|
@ -54,13 +46,10 @@ in mkYarnPackage rec {
|
|||
# desktop item
|
||||
mkdir -p "$out/share"
|
||||
ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
||||
--add-flags "$out/share/riot/electron" \
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
--add-flags "$out/share/riot/electron"
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for riot-web again.
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
{ 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 {
|
||||
pname = "bookworm";
|
||||
version = "unstable-2018-11-19";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "babluboy";
|
||||
repo = pname;
|
||||
rev = "4c3061784ff42151cac77d12bf2a28bf831fdfc5";
|
||||
sha256 = "0yrqxa60xlvz249kx966z5krx8i7h17ac0hjgq9p8f0irzy5yp0n";
|
||||
rev = version;
|
||||
sha256 = "0w0rlyahpgx0l6inkbj106agbnr2czil0vdcy1zzv70apnjz488j";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -35,6 +36,8 @@ stdenv.mkDerivation rec {
|
|||
python2
|
||||
sqlite
|
||||
webkitgtk
|
||||
appstream
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
++ [crateFeatures]
|
||||
++ extraRustcOpts
|
||||
++ 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}";
|
||||
|
||||
|
|
|
@ -457,6 +457,18 @@ let
|
|||
"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 {});
|
||||
tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
, fetchpatch
|
||||
, which
|
||||
, cmake
|
||||
, clang
|
||||
, llvmPackages
|
||||
, libunwind
|
||||
, gettext
|
||||
|
@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = [
|
||||
which
|
||||
cmake
|
||||
clang
|
||||
llvmPackages.clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# See pkgs/build-support/setup-hooks/role.bash
|
||||
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@"
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
{ 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 {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
|
@ -11,27 +20,26 @@ stdenv.mkDerivation rec {
|
|||
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
|
||||
];
|
||||
|
||||
cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
|
||||
cmakeFlags = [
|
||||
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
|
||||
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_C_FLAGS=-nodefaultlibs"
|
||||
"-DCMAKE_CXX_COMPILER_WORKS=ON"
|
||||
] ++ 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"
|
||||
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
|
||||
] ++ 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"
|
||||
] ++ stdenv.lib.optionals (bareMetal) [
|
||||
"-DCOMPILER_RT_OS_DIR=baremetal"
|
||||
];
|
||||
|
||||
|
@ -50,7 +58,7 @@ stdenv.mkDerivation rec {
|
|||
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace cmake/config-ix.cmake \
|
||||
--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 \
|
||||
--replace "#include <stdlib.h>" ""
|
||||
substituteInPlace lib/builtins/clear_cache.c \
|
||||
|
@ -62,7 +70,7 @@ stdenv.mkDerivation rec {
|
|||
# Hack around weird upsream RPATH bug
|
||||
postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
|
||||
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.crtend-*.o $out/lib/crtend.o
|
||||
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "10.0.0";
|
||||
version = release_version; # differentiating these (variables) is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -60,7 +61,12 @@ let
|
|||
libstdcxxHook
|
||||
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 {
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
{ 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 {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
|
@ -8,16 +16,39 @@ stdenv.mkDerivation {
|
|||
nativeBuildInputs = [ cmake python3 llvm ];
|
||||
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"
|
||||
"-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" ];
|
||||
|
||||
patches = [
|
||||
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
|
||||
] ++ optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
|
||||
++ optional (stdenv.hostPlatform.libc == "glibc") ./compiler-rt-sys-ustat.patch;
|
||||
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.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
|
||||
# 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 ''
|
||||
substituteInPlace cmake/config-ix.cmake \
|
||||
--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
|
||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
|
||||
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;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "5.0.2";
|
||||
version = release_version; # differentiating these is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -56,7 +57,12 @@ let
|
|||
extraPackages = [
|
||||
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 {
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
{ 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 {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
|
@ -8,15 +16,38 @@ stdenv.mkDerivation {
|
|||
nativeBuildInputs = [ cmake python3 llvm ];
|
||||
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"
|
||||
"-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" ];
|
||||
|
||||
patches = [
|
||||
./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
|
||||
# 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 ''
|
||||
substituteInPlace cmake/config-ix.cmake \
|
||||
--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
|
||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
|
||||
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;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "6.0.1";
|
||||
version = release_version; # differentiating these is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -56,7 +57,12 @@ let
|
|||
extraPackages = [
|
||||
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 {
|
||||
|
|
|
@ -20,7 +20,7 @@ stdenv.mkDerivation {
|
|||
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
|
||||
];
|
||||
|
||||
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [
|
||||
cmakeFlags = [
|
||||
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
|
||||
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
|
@ -68,7 +68,7 @@ stdenv.mkDerivation {
|
|||
'';
|
||||
|
||||
# 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"
|
||||
'' + stdenv.lib.optionalString (useLLVM) ''
|
||||
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "7.1.0";
|
||||
version = release_version; # differentiating these is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -63,7 +64,12 @@ let
|
|||
extraPackages = [
|
||||
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 {
|
||||
|
|
|
@ -20,7 +20,7 @@ stdenv.mkDerivation {
|
|||
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
|
||||
];
|
||||
|
||||
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [
|
||||
cmakeFlags = [
|
||||
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
|
||||
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "8.0.1";
|
||||
version = release_version; # differentiating these is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -63,7 +64,12 @@ let
|
|||
extraPackages = [
|
||||
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 {
|
||||
|
|
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
|
||||
];
|
||||
|
||||
cmakeFlags = stdenv.lib.optionals (useLLVM || stdenv.isDarwin) [
|
||||
cmakeFlags = [
|
||||
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
|
||||
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
|
@ -7,6 +7,7 @@
|
|||
let
|
||||
release_version = "9.0.1";
|
||||
version = release_version; # differentiating these is important for rc's
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
|
||||
|
@ -63,7 +64,12 @@ let
|
|||
extraPackages = [
|
||||
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 {
|
||||
|
|
53
pkgs/development/libraries/audio/qm-dsp/default.nix
Normal file
53
pkgs/development/libraries/audio/qm-dsp/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -28,6 +28,9 @@ assert enableShared || enableStatic;
|
|||
assert enablePython -> stdenv.hostPlatform == stdenv.buildPlatform;
|
||||
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;
|
||||
let
|
||||
|
||||
|
|
49
pkgs/development/libraries/highfive/default.nix
Normal file
49
pkgs/development/libraries/highfive/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
45
pkgs/development/libraries/kissfft/default.nix
Normal file
45
pkgs/development/libraries/kissfft/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "liburing";
|
||||
version = "0.4pre514_${builtins.substring 0 8 src.rev}";
|
||||
version = "0.6pre600_${builtins.substring 0 8 src.rev}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "http://git.kernel.dk/${pname}";
|
||||
rev = "2454d6301d83a714d0775662b512fd46dbf82a0d";
|
||||
sha256 = "0qdycr0w0rymnizc4p5rh2qcnzr05afris4ggaawdg4zr07jms7k";
|
||||
rev = "f2e1f3590f7bed3040bd1691676b50839f7d5c39";
|
||||
sha256 = "0wg0pgcbilbb2wg08hsvd18q1m8vdk46b3piz7qb1pvgyq01idj2";
|
||||
};
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "gensim";
|
||||
version = "3.8.1";
|
||||
version = "3.8.2";
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "33277fc0a8d7b0c7ce70fcc74bb82ad39f944c009b334856c6e86bf552b1dfdc";
|
||||
sha256 = "1x9gvz954h10wgq02wybi21llwwjj9r1gal2qr82q7g1h9g0dqs6";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ smart_open numpy six scipy ];
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "gphoto2";
|
||||
version = "2.2.1";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "118zm25c8mlajfl0pzssnwz4b8lamj9dgymla9rn4nla7l244a0r";
|
||||
sha256 = "0sd3w0gpnb58hg8mv20nfqf4g1plr9rkn51h088xdsd6i97r9x99";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "3.3.0";
|
||||
version = "3.3.1";
|
||||
pname = "gspread";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1nlmg7lnj162nql1acw9z7n1043sk49j11arlfn766i9ykvq6hng";
|
||||
sha256 = "0mpvhndr38hb5x95xk2mqqasvcy6pa7ck8801bvpg5y3lwn5nka0";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
|
45
pkgs/development/python-modules/hydra-check/default.nix
Normal file
45
pkgs/development/python-modules/hydra-check/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -22,12 +22,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pikepdf";
|
||||
version = "1.10.2";
|
||||
version = "1.11.0";
|
||||
disabled = ! isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1y94ay2jz4m55nlyrg283xsjqsxigmj7vzrzf1mskbpjb20335fb";
|
||||
sha256 = "0v9sraihad0vz8dv3zc5xm5f2ixwbpr2kfpya5s0mgnrn6l19nds";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
49
pkgs/development/python-modules/py-multihash/default.nix
Normal file
49
pkgs/development/python-modules/py-multihash/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "PyChromecast";
|
||||
version = "4.2.0";
|
||||
version = "4.2.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "05h7ncymyh1715v2jkj312qza5qlqrz6yfpgyv4kdf1m07zh7pxh";
|
||||
sha256 = "1nqy9zvzxzncfmmbsj4ccb36gymh4pp1n1l9fdhv8fi0ai9b7dyp";
|
||||
};
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
|
|
@ -3,21 +3,21 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypandoc";
|
||||
version = "unstable-2018-06-18";
|
||||
version = "1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bebraw";
|
||||
repo = pname;
|
||||
rev = "87912f0f17e0a71c1160008df708c876d32e5819";
|
||||
sha256 = "0l6knkxxhmni4lx8hyvbb71svnhza08ivyklqlk5fw637gznc0hx";
|
||||
rev = version;
|
||||
sha256 = "1lpslfns6zxx7b0xr13bzg921lwrj5am8za0b2dviywk6iiib0ld";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# set pandoc path statically
|
||||
sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py
|
||||
|
||||
# Fix tests: requires network access
|
||||
substituteInPlace tests.py --replace "pypandoc.convert(url, 'html')" "'GPL2 license'"
|
||||
# Skip test that requires network access
|
||||
sed -i '/test_basic_conversion_from_http_url/i\\ @unittest.skip\("no network access during checkPhase"\)' tests.py
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-nomad";
|
||||
version = "1.1.0";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1rf6ad35vg3yi1p4l383xwx0ammdvr1k71bxg93bgcvljypx4cyn";
|
||||
sha256 = "0ivkfdrmb4wpyawvwrgm3jvx6hn49vqjpwbkmkmamigghqqwacx3";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
|
|
@ -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
|
||||
mkElectron = import ./generic.nix args;
|
||||
|
|
|
@ -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:
|
||||
let
|
||||
|
@ -34,7 +34,7 @@ let
|
|||
};
|
||||
|
||||
linux = {
|
||||
buildInputs = [ gtk3 ];
|
||||
buildInputs = [ glib gtk3 ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
|
@ -44,13 +44,16 @@ let
|
|||
|
||||
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
|
||||
unzip -d $out/lib/electron $src
|
||||
ln -s $out/lib/electron/electron $out/bin
|
||||
'';
|
||||
|
||||
fixupPhase
|
||||
|
||||
postFixup = ''
|
||||
patchelf \
|
||||
--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" \
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec{
|
||||
pname = "cypress";
|
||||
version = "4.2.0";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
|
||||
sha256 = "0ksa7c0bpq13xxgk0qizg3kfyjihcqan5wm6f45v7kgz3wwxc4nz";
|
||||
sha256 = "0lrjha3zrsclpk8bhmv14vy1y5liahjkvcd87zm6cik1rnscaspw";
|
||||
};
|
||||
|
||||
# don't remove runtime deps
|
||||
|
|
|
@ -9,16 +9,16 @@ stdenv.mkDerivation rec {
|
|||
pname = "spring";
|
||||
version = "104.0.1-${buildId}-g${shortRev}";
|
||||
# usually the latest in https://github.com/spring/spring/commits/maintenance
|
||||
rev = "176577006b3367a6ca3cafb8e7779af76429d655";
|
||||
rev = "f266c8107b3e5dda5a78061ef00ca0ed8736d6f2";
|
||||
shortRev = builtins.substring 0 7 rev;
|
||||
buildId = "1485";
|
||||
buildId = "1486";
|
||||
|
||||
# taken from https://github.com/spring/spring/commits/maintenance
|
||||
src = fetchFromGitHub {
|
||||
owner = "spring";
|
||||
repo = "spring";
|
||||
inherit rev;
|
||||
sha256 = "0p2bwbvy0chcd2mmhqwx04szkyjvz1p3aink5g63s3r4ghcqlrbr";
|
||||
sha256 = "1nx68d894yfmqc6df72hmk75ph26fqdvlmmq58cca0vbwpz9hf5v";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ with stdenv;
|
|||
|
||||
let
|
||||
majorVersion = "0";
|
||||
minorVersion = "219";
|
||||
minorVersion = "220";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "MAME";
|
||||
|
@ -26,7 +26,7 @@ in mkDerivation {
|
|||
owner = "mamedev";
|
||||
repo = "mame";
|
||||
rev = "mame${majorVersion}${minorVersion}";
|
||||
sha256 = "048ar1j2vsrvqqc3spy9qcch2lbxn0ycd9lv4ig5wfnvjkdjdvgr";
|
||||
sha256 = "0ddmq3lagk7f1wkgybckcci4sigcqn1gzafggnnqjzq2q8viww0c";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
|
|
@ -1,39 +1,37 @@
|
|||
{ stdenv, buildGoPackage, fetchFromGitHub, bash, go-bindata}:
|
||||
{ stdenv, buildGoModule, fetchFromGitHub, go-bindata, nixosTests }:
|
||||
|
||||
buildGoPackage rec {
|
||||
buildGoModule rec {
|
||||
pname = "traefik";
|
||||
version = "1.7.14";
|
||||
|
||||
goPackagePath = "github.com/containous/traefik";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containous";
|
||||
repo = "traefik";
|
||||
rev = "v${version}";
|
||||
sha256 = "1j3p09j8rpdkp8v4d4mz224ddakkvhzchvccm9qryrqc2fq4022v";
|
||||
sha256 = "1dcazssabqxr9wv3dds3z7ks3y628qa07vgnn3hpdwxzm2b2ma92";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ go-bindata bash ];
|
||||
modSha256 = "0w3ssxvsmq8i6hbfmn4ig2x13i2nlqy5q1khcblf9pq5vhk202qx";
|
||||
subPackages = [ "cmd/traefik" ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
(
|
||||
cd go/src/github.com/containous/traefik
|
||||
bash ./script/make.sh generate
|
||||
nativeBuildInputs = [ go-bindata ];
|
||||
|
||||
passthru.tests = { inherit (nixosTests) traefik; };
|
||||
|
||||
preBuild = ''
|
||||
go generate
|
||||
|
||||
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.Codename=$CODENAME \
|
||||
" -a -o $bin/bin/traefik ./cmd/traefik
|
||||
)
|
||||
runHook postBuild
|
||||
-X github.com/containous/traefik/version.Codename=$CODENAME")
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://traefik.io";
|
||||
description = "A modern reverse proxy";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ hamhut1066 vdemeester ];
|
||||
maintainers = with maintainers; [ vdemeester ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "lf";
|
||||
version = "13";
|
||||
version = "14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gokcehan";
|
||||
repo = "lf";
|
||||
rev = "r${version}";
|
||||
sha256 = "1ld3q75v8rvp169w5p85z1vznqs9bhck6bm2f6fykxx16hmpb6ga";
|
||||
sha256 = "0kl9yrgph1i0jbxhlg3k0411436w80xw1s8dzd7v7h2raygkb4is";
|
||||
};
|
||||
|
||||
modSha256 = "14fvn8yjm9cnpsmzgxw2dypr3h8h36mxrbk7zma42w8rsp46jpz7";
|
||||
modSha256 = "1c6c6qg8yrhdhqsnqj3jw3x2hi8vrhfm47cp9xlkfnjfrz3nk6jp";
|
||||
|
||||
# TODO: Setting buildFlags probably isn't working properly. I've tried a few
|
||||
# variants, e.g.:
|
||||
|
@ -27,6 +27,7 @@ buildGoModule rec {
|
|||
|
||||
postInstall = ''
|
||||
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; {
|
||||
|
@ -38,6 +39,7 @@ buildGoModule rec {
|
|||
are handled by external tools.
|
||||
'';
|
||||
homepage = "https://godoc.org/github.com/gokcehan/lf";
|
||||
changelog = "https://github.com/gokcehan/lf/releases/tag/r${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
|
|
|
@ -681,6 +681,11 @@ mapAliases ({
|
|||
clang_35 = 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 */
|
||||
oraclejdk8psu = throw ''
|
||||
The *psu versions of oraclejdk aren't provided by upstream anymore and were therefore removed!
|
||||
|
|
|
@ -8003,8 +8003,6 @@ in
|
|||
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_9 = llvmPackages_9.clang;
|
||||
|
@ -8184,7 +8182,11 @@ in
|
|||
}));
|
||||
|
||||
libstdcxxHook = makeSetupHook
|
||||
{ substitutions = { gcc = gcc-unwrapped; }; }
|
||||
{ substitutions = {
|
||||
gcc = gcc-unwrapped;
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
};
|
||||
}
|
||||
../development/compilers/gcc/libstdc++-hook.sh;
|
||||
|
||||
crossLibcStdenv = overrideCC stdenv
|
||||
|
@ -8801,7 +8803,7 @@ in
|
|||
stdenv = gcc7Stdenv;
|
||||
});
|
||||
|
||||
llvmPackages_latest = llvmPackages_9; # llvmPackages_10: when out of RC
|
||||
llvmPackages_latest = llvmPackages_10;
|
||||
|
||||
lorri = callPackage ../tools/misc/lorri {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices Security;
|
||||
|
@ -12077,6 +12079,12 @@ in
|
|||
libusb = libusb1;
|
||||
};
|
||||
|
||||
highfive = callPackage ../development/libraries/highfive { };
|
||||
|
||||
highfive-mpi = appendToName "mpi" (highfive.override {
|
||||
hdf5 = hdf5-mpi;
|
||||
});
|
||||
|
||||
hiredis = callPackage ../development/libraries/hiredis { };
|
||||
|
||||
hiredis-vip = callPackage ../development/libraries/hiredis-vip { };
|
||||
|
@ -12119,6 +12127,8 @@ in
|
|||
|
||||
hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
|
||||
|
||||
hydra-check = with python3.pkgs; toPythonApplication hydra-check;
|
||||
|
||||
hyena = callPackage ../development/libraries/hyena { };
|
||||
|
||||
hyperscan = callPackage ../development/libraries/hyperscan { };
|
||||
|
@ -14199,6 +14209,8 @@ in
|
|||
|
||||
readosm = callPackage ../development/libraries/readosm { };
|
||||
|
||||
kissfft = callPackage ../development/libraries/kissfft { };
|
||||
|
||||
lambdabot = callPackage ../development/tools/haskell/lambdabot {
|
||||
haskellLib = haskell.lib;
|
||||
};
|
||||
|
@ -14227,6 +14239,8 @@ in
|
|||
|
||||
lvtk = callPackage ../development/libraries/audio/lvtk { };
|
||||
|
||||
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
|
||||
|
||||
qradiolink = callPackage ../applications/radio/qradiolink { };
|
||||
|
||||
qrupdate = callPackage ../development/libraries/qrupdate { };
|
||||
|
@ -18420,9 +18434,7 @@ in
|
|||
|
||||
aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
|
||||
|
||||
ardour = callPackage ../applications/audio/ardour {
|
||||
inherit (gnome2) libgnomecanvas libgnomecanvasmm;
|
||||
};
|
||||
ardour = callPackage ../applications/audio/ardour { };
|
||||
|
||||
arelle = with python3Packages; toPythonApplication arelle;
|
||||
|
||||
|
|
|
@ -1129,6 +1129,8 @@ in {
|
|||
|
||||
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 { };
|
||||
|
||||
pydbus = callPackage ../development/python-modules/pydbus { };
|
||||
|
@ -4008,6 +4010,8 @@ in {
|
|||
|
||||
hypothesis = callPackage ../development/python-modules/hypothesis { };
|
||||
|
||||
hydra-check = callPackage ../development/python-modules/hydra-check { };
|
||||
|
||||
colored = callPackage ../development/python-modules/colored { };
|
||||
|
||||
xdg = callPackage ../development/python-modules/xdg { };
|
||||
|
|
Loading…
Reference in a new issue