Merge branch 'master' into staging-next
Hydra: ?compare=1468896
This commit is contained in:
commit
0f01215203
8
.dir-locals.el
Normal file
8
.dir-locals.el
Normal file
@ -0,0 +1,8 @@
|
||||
;;; Directory Local Variables
|
||||
;;; For more information see (info "(emacs) Directory Variables")
|
||||
|
||||
((nil
|
||||
(bug-reference-bug-regexp . "\\(\\(?:[Ii]ssue \\|[Ff]ixe[ds] \\|[Rr]esolve[ds]? \\|[Cc]lose[ds]? \\|[Pp]\\(?:ull [Rr]equest\\|[Rr]\\) \\|(\\)#\\([0-9]+\\))?\\)")
|
||||
(bug-reference-url-format . "https://github.com/NixOS/nixpkgs/issues/%s"))
|
||||
(nix-mode
|
||||
(tab-width . 2)))
|
@ -305,7 +305,7 @@
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Cross packagaing cookbook</title>
|
||||
<title>Cross packaging cookbook</title>
|
||||
|
||||
<para>
|
||||
Some frequently problems when packaging for cross compilation are good to
|
||||
|
@ -521,7 +521,7 @@ merge:"diff3"
|
||||
<callout arearefs='ex-dockerTools-buildImage-2'>
|
||||
<para>
|
||||
<varname>tag</varname> specifies the tag of the resulting image. By
|
||||
default it's <literal>latest</literal>.
|
||||
default it's <literal>null</literal>, which indicates that the nix output hash will be used as tag.
|
||||
</para>
|
||||
</callout>
|
||||
<callout arearefs='ex-dockerTools-buildImage-3'>
|
||||
|
@ -30,7 +30,7 @@ Packages, including the Nix packages collection, are distributed through
|
||||
distributed for users of Nix on non-NixOS distributions through the channel
|
||||
`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
|
||||
`nixos-16.03`, which includes all packages and modules for the stable NixOS
|
||||
16.03. The purpose of stable NixOS releases are generally only given
|
||||
16.03. Stable NixOS releases are generally only given
|
||||
security updates. More up to date packages and modules are available via the
|
||||
`nixos-unstable` channel.
|
||||
|
||||
|
@ -195,8 +195,9 @@ rec {
|
||||
{ x = "foo"; y = "bar"; }
|
||||
=> { x = "x-foo"; y = "y-bar"; }
|
||||
*/
|
||||
mapAttrs = f: set:
|
||||
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set));
|
||||
mapAttrs = builtins.mapAttrs or
|
||||
(f: set:
|
||||
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)));
|
||||
|
||||
|
||||
/* Like `mapAttrs', but allows the name of each attribute to be
|
||||
|
@ -177,13 +177,15 @@ rec {
|
||||
|
||||
# PLIST handling
|
||||
toPlist = {}: v: let
|
||||
expr = ind: x: with builtins;
|
||||
if isNull x then "" else
|
||||
if isBool x then bool ind x else
|
||||
if isInt x then int ind x else
|
||||
isFloat = builtins.isFloat or (x: false);
|
||||
expr = ind: x: with builtins;
|
||||
if isNull x then "" else
|
||||
if isBool x then bool ind x else
|
||||
if isInt x then int ind x else
|
||||
if isString x then str ind x else
|
||||
if isList x then list ind x else
|
||||
if isAttrs x then attrs ind x else
|
||||
if isList x then list ind x else
|
||||
if isAttrs x then attrs ind x else
|
||||
if isFloat x then float ind x else
|
||||
abort "generators.toPlist: should never happen (v = ${v})";
|
||||
|
||||
literal = ind: x: ind + x;
|
||||
@ -192,6 +194,7 @@ rec {
|
||||
int = ind: x: literal ind "<integer>${toString x}</integer>";
|
||||
str = ind: x: literal ind "<string>${x}</string>";
|
||||
key = ind: x: literal ind "<key>${x}</key>";
|
||||
float = ind: x: literal ind "<real>${toString x}</real>";
|
||||
|
||||
indent = ind: expr "\t${ind}";
|
||||
|
||||
|
@ -101,7 +101,7 @@ rec {
|
||||
concatMap (x: [x] ++ ["z"]) ["a" "b"]
|
||||
=> [ "a" "z" "b" "z" ]
|
||||
*/
|
||||
concatMap = f: list: concatLists (map f list);
|
||||
concatMap = builtins.concatMap or (f: list: concatLists (map f list));
|
||||
|
||||
/* Flatten the argument into a single list; that is, nested lists are
|
||||
spliced into the top-level lists.
|
||||
|
@ -18,188 +18,6 @@
|
||||
for an example on how to work with this data.
|
||||
*/
|
||||
{
|
||||
Adjective-Object = {
|
||||
email = "mhuan13@gmail.com";
|
||||
github = "Adjective-Object";
|
||||
name = "Maxwell Huang-Hobbs";
|
||||
};
|
||||
AndersonTorres = {
|
||||
email = "torres.anderson.85@gmail.com";
|
||||
github = "AndersonTorres";
|
||||
name = "Anderson Torres";
|
||||
};
|
||||
Anton-Latukha = {
|
||||
email = "anton.latuka+nixpkgs@gmail.com";
|
||||
github = "Anton-Latukha";
|
||||
name = "Anton Latukha";
|
||||
};
|
||||
ariutta = {
|
||||
email = "anders.riutta@gmail.com";
|
||||
github = "ariutta";
|
||||
name = "Anders Riutta";
|
||||
};
|
||||
Baughn = {
|
||||
email = "sveina@gmail.com";
|
||||
github = "Baughn";
|
||||
name = "Svein Ove Aas";
|
||||
};
|
||||
ChengCat = {
|
||||
email = "yu@cheng.cat";
|
||||
github = "ChengCat";
|
||||
name = "Yucheng Zhang";
|
||||
};
|
||||
CrazedProgrammer = {
|
||||
email = "crazedprogrammer@gmail.com";
|
||||
github = "CrazedProgrammer";
|
||||
name = "CrazedProgrammer";
|
||||
};
|
||||
CrystalGamma = {
|
||||
email = "nixos@crystalgamma.de";
|
||||
github = "CrystalGamma";
|
||||
name = "Jona Stubbe";
|
||||
};
|
||||
DamienCassou = {
|
||||
email = "damien@cassou.me";
|
||||
github = "DamienCassou";
|
||||
name = "Damien Cassou";
|
||||
};
|
||||
das_j = {
|
||||
email = "janne@hess.ooo";
|
||||
github = "dasJ";
|
||||
name = "Janne Heß";
|
||||
};
|
||||
DerGuteMoritz = {
|
||||
email = "moritz@twoticketsplease.de";
|
||||
github = "DerGuteMoritz";
|
||||
name = "Moritz Heidkamp";
|
||||
};
|
||||
DerTim1 = {
|
||||
email = "tim.digel@active-group.de";
|
||||
github = "DerTim1";
|
||||
name = "Tim Digel";
|
||||
};
|
||||
DmitryTsygankov = {
|
||||
email = "dmitry.tsygankov@gmail.com";
|
||||
github = "DmitryTsygankov";
|
||||
name = "Dmitry Tsygankov";
|
||||
};
|
||||
Dje4321 = {
|
||||
email = "dje4321@gmail.com";
|
||||
github = "dje4321";
|
||||
name = "Dje4321";
|
||||
};
|
||||
Esteth = {
|
||||
email = "adam.copp@gmail.com";
|
||||
name = "Adam Copp";
|
||||
};
|
||||
FireyFly = {
|
||||
email = "nix@firefly.nu";
|
||||
github = "FireyFly";
|
||||
name = "Jonas Höglund";
|
||||
};
|
||||
Fresheyeball = {
|
||||
email = "fresheyeball@gmail.com";
|
||||
github = "fresheyeball";
|
||||
name = "Isaac Shapira";
|
||||
};
|
||||
Gonzih = {
|
||||
email = "gonzih@gmail.com";
|
||||
github = "Gonzih";
|
||||
name = "Max Gonzih";
|
||||
};
|
||||
Jo = {
|
||||
email = "0x4A6F@shackspace.de";
|
||||
name = "Joachim Ernst";
|
||||
};
|
||||
KibaFox = {
|
||||
email = "kiba.fox@foxypossibilities.com";
|
||||
github = "KibaFox";
|
||||
name = "Kiba Fox";
|
||||
};
|
||||
MP2E = {
|
||||
email = "MP2E@archlinux.us";
|
||||
github = "MP2E";
|
||||
name = "Cray Elliott";
|
||||
};
|
||||
Mogria = {
|
||||
email = "m0gr14@gmail.com";
|
||||
github = "mogria";
|
||||
name = "Mogria";
|
||||
};
|
||||
MostAwesomeDude = {
|
||||
email = "cds@corbinsimpson.com";
|
||||
github = "MostAwesomeDude";
|
||||
name = "Corbin Simpson";
|
||||
};
|
||||
Nate-Devv = {
|
||||
email = "natedevv@gmail.com";
|
||||
name = "Nathan Moore";
|
||||
};
|
||||
NikolaMandic = {
|
||||
email = "nikola@mandic.email";
|
||||
github = "NikolaMandic";
|
||||
name = "Ratko Mladic";
|
||||
};
|
||||
Phlogistique = {
|
||||
email = "noe.rubinstein@gmail.com";
|
||||
github = "Phlogistique";
|
||||
name = "Noé Rubinstein";
|
||||
};
|
||||
Profpatsch = {
|
||||
email = "mail@profpatsch.de";
|
||||
github = "Profpatsch";
|
||||
name = "Profpatsch";
|
||||
};
|
||||
roosemberth = {
|
||||
email = "roosembert.palacios+nixpkgs@gmail.com";
|
||||
github = "roosemberth";
|
||||
name = "Roosembert (Roosemberth) Palacios";
|
||||
};
|
||||
Scriptkiddi = {
|
||||
email = "nixos@scriptkiddi.de";
|
||||
github = "scriptkiddi";
|
||||
name = "Fritz Otlinghaus";
|
||||
};
|
||||
SShrike = {
|
||||
email = "severen@shrike.me";
|
||||
github = "severen";
|
||||
name = "Severen Redwood";
|
||||
};
|
||||
SeanZicari = {
|
||||
email = "sean.zicari@gmail.com";
|
||||
github = "SeanZicari";
|
||||
name = "Sean Zicari";
|
||||
};
|
||||
StijnDW = {
|
||||
email = "stekke@airmail.cc";
|
||||
github = "StijnDW";
|
||||
name = "Stijn DW";
|
||||
};
|
||||
StillerHarpo = {
|
||||
email = "florianengel39@gmail.com";
|
||||
github = "StillerHarpo";
|
||||
name = "Florian Engel";
|
||||
};
|
||||
SuprDewd = {
|
||||
email = "suprdewd@gmail.com";
|
||||
github = "SuprDewd";
|
||||
name = "Bjarki Ágúst Guðmundsson";
|
||||
};
|
||||
TealG = {
|
||||
email = "~@Teal.Gr";
|
||||
github = "TealG";
|
||||
name = "Teal Gaure";
|
||||
};
|
||||
ThomasMader = {
|
||||
email = "thomas.mader@gmail.com";
|
||||
github = "ThomasMader";
|
||||
name = "Thomas Mader";
|
||||
};
|
||||
Zimmi48 = {
|
||||
email = "theo.zimmermann@univ-paris-diderot.fr";
|
||||
github = "Zimmi48";
|
||||
name = "Théo Zimmermann";
|
||||
};
|
||||
a1russell = {
|
||||
email = "adamlr6+pub@gmail.com";
|
||||
github = "a1russell";
|
||||
@ -260,6 +78,11 @@
|
||||
github = "adisbladis";
|
||||
name = "Adam Hose";
|
||||
};
|
||||
Adjective-Object = {
|
||||
email = "mhuan13@gmail.com";
|
||||
github = "Adjective-Object";
|
||||
name = "Maxwell Huang-Hobbs";
|
||||
};
|
||||
adnelson = {
|
||||
email = "ithinkican@gmail.com";
|
||||
github = "adnelson";
|
||||
@ -336,9 +159,9 @@
|
||||
name = "Alexander Krupenkin ";
|
||||
};
|
||||
alexchapman = {
|
||||
name = "Alex Chapman";
|
||||
email = "alex@farfromthere.net";
|
||||
github = "AJChapman";
|
||||
name = "Alex Chapman";
|
||||
};
|
||||
alexfmpe = {
|
||||
email = "alexandre.fmp.esteves@gmail.com";
|
||||
@ -393,6 +216,11 @@
|
||||
github = "AndrewMorsillo";
|
||||
name = "Andrew Morsillo";
|
||||
};
|
||||
AndersonTorres = {
|
||||
email = "torres.anderson.85@gmail.com";
|
||||
github = "AndersonTorres";
|
||||
name = "Anderson Torres";
|
||||
};
|
||||
anderspapitto = {
|
||||
email = "anderspapitto@gmail.com";
|
||||
github = "anderspapitto";
|
||||
@ -443,6 +271,11 @@
|
||||
github = "ankhers";
|
||||
name = "Justin Wood";
|
||||
};
|
||||
Anton-Latukha = {
|
||||
email = "anton.latuka+nixpkgs@gmail.com";
|
||||
github = "Anton-Latukha";
|
||||
name = "Anton Latukha";
|
||||
};
|
||||
antono = {
|
||||
email = "self@antono.info";
|
||||
github = "antono";
|
||||
@ -478,6 +311,11 @@
|
||||
github = "aristidb";
|
||||
name = "Aristid Breitkreuz";
|
||||
};
|
||||
ariutta = {
|
||||
email = "anders.riutta@gmail.com";
|
||||
github = "ariutta";
|
||||
name = "Anders Riutta";
|
||||
};
|
||||
arobyn = {
|
||||
email = "shados@shados.net";
|
||||
github = "shados";
|
||||
@ -577,6 +415,11 @@
|
||||
github = "basvandijk";
|
||||
name = "Bas van Dijk";
|
||||
};
|
||||
Baughn = {
|
||||
email = "sveina@gmail.com";
|
||||
github = "Baughn";
|
||||
name = "Svein Ove Aas";
|
||||
};
|
||||
bbarker = {
|
||||
email = "brandon.barker@gmail.com";
|
||||
github = "bbarker";
|
||||
@ -716,6 +559,11 @@
|
||||
github = "brian-dawn";
|
||||
name = "Brian Dawn";
|
||||
};
|
||||
bricewge = {
|
||||
email = "bricewge@gmail.com";
|
||||
github = "bricewge";
|
||||
name = "Brice Waegeneire";
|
||||
};
|
||||
bstrik = {
|
||||
email = "dutchman55@gmx.com";
|
||||
github = "bstrik";
|
||||
@ -814,6 +662,11 @@
|
||||
email = "me@philscotted.com";
|
||||
name = "Phil Scott";
|
||||
};
|
||||
ChengCat = {
|
||||
email = "yu@cheng.cat";
|
||||
github = "ChengCat";
|
||||
name = "Yucheng Zhang";
|
||||
};
|
||||
chiiruno = {
|
||||
email = "okinan@protonmail.com";
|
||||
github = "chiiruno";
|
||||
@ -954,11 +807,21 @@
|
||||
github = "cransom";
|
||||
name = "Casey Ransom";
|
||||
};
|
||||
CrazedProgrammer = {
|
||||
email = "crazedprogrammer@gmail.com";
|
||||
github = "CrazedProgrammer";
|
||||
name = "CrazedProgrammer";
|
||||
};
|
||||
cryptix = {
|
||||
email = "cryptix@riseup.net";
|
||||
github = "cryptix";
|
||||
name = "Henry Bubert";
|
||||
};
|
||||
CrystalGamma = {
|
||||
email = "nixos@crystalgamma.de";
|
||||
github = "CrystalGamma";
|
||||
name = "Jona Stubbe";
|
||||
};
|
||||
csingley = {
|
||||
email = "csingley@gmail.com";
|
||||
github = "csingley";
|
||||
@ -974,6 +837,11 @@
|
||||
github = "cwoac";
|
||||
name = "Oliver Matthews";
|
||||
};
|
||||
DamienCassou = {
|
||||
email = "damien@cassou.me";
|
||||
github = "DamienCassou";
|
||||
name = "Damien Cassou";
|
||||
};
|
||||
danbst = {
|
||||
email = "abcz2.uprola@gmail.com";
|
||||
github = "danbst";
|
||||
@ -994,6 +862,11 @@
|
||||
github = "danielfullmer";
|
||||
name = "Daniel Fullmer";
|
||||
};
|
||||
das_j = {
|
||||
email = "janne@hess.ooo";
|
||||
github = "dasJ";
|
||||
name = "Janne Heß";
|
||||
};
|
||||
dasuxullebt = {
|
||||
email = "christoph.senjak@googlemail.com";
|
||||
name = "Christoph-Simon Senjak";
|
||||
@ -1048,11 +921,21 @@
|
||||
github = "derchrisuk";
|
||||
name = "Christian Gerbrandt";
|
||||
};
|
||||
DerGuteMoritz = {
|
||||
email = "moritz@twoticketsplease.de";
|
||||
github = "DerGuteMoritz";
|
||||
name = "Moritz Heidkamp";
|
||||
};
|
||||
dermetfan = {
|
||||
email = "serverkorken@gmail.com";
|
||||
github = "dermetfan";
|
||||
name = "Robin Stumm";
|
||||
};
|
||||
DerTim1 = {
|
||||
email = "tim.digel@active-group.de";
|
||||
github = "DerTim1";
|
||||
name = "Tim Digel";
|
||||
};
|
||||
desiderius = {
|
||||
email = "didier@devroye.name";
|
||||
github = "desiderius";
|
||||
@ -1098,11 +981,21 @@
|
||||
github = "dizfer";
|
||||
name = "David Izquierdo";
|
||||
};
|
||||
Dje4321 = {
|
||||
email = "dje4321@gmail.com";
|
||||
github = "dje4321";
|
||||
name = "Dje4321";
|
||||
};
|
||||
dmalikov = {
|
||||
email = "malikov.d.y@gmail.com";
|
||||
github = "dmalikov";
|
||||
name = "Dmitry Malikov";
|
||||
};
|
||||
DmitryTsygankov = {
|
||||
email = "dmitry.tsygankov@gmail.com";
|
||||
github = "DmitryTsygankov";
|
||||
name = "Dmitry Tsygankov";
|
||||
};
|
||||
dmjio = {
|
||||
email = "djohnson.m@gmail.com";
|
||||
github = "dmjio";
|
||||
@ -1172,6 +1065,11 @@
|
||||
github = "e-user";
|
||||
name = "Alexander Kahl";
|
||||
};
|
||||
eadwu = {
|
||||
email = "edmund.wu@protonmail.com";
|
||||
github = "eadwu";
|
||||
name = "Edmund Wu";
|
||||
};
|
||||
earldouglas = {
|
||||
email = "james@earldouglas.com";
|
||||
github = "earldouglas";
|
||||
@ -1246,6 +1144,11 @@
|
||||
github = "proteansec";
|
||||
name = "Dejan Lukan";
|
||||
};
|
||||
eliasp = {
|
||||
email = "mail@eliasprobst.eu";
|
||||
github = "eliasp";
|
||||
name = "Elias Probst";
|
||||
};
|
||||
elijahcaine = {
|
||||
email = "elijahcainemv@gmail.com";
|
||||
github = "pop";
|
||||
@ -1267,9 +1170,9 @@
|
||||
name = "Will Fancher";
|
||||
};
|
||||
emmanuelrosa = {
|
||||
email = "emmanuel_rosa@aol.com";
|
||||
github = "emmanuelrosa";
|
||||
name = "Emmanuel Rosa";
|
||||
email = "emmanuel_rosa@aol.com";
|
||||
github = "emmanuelrosa";
|
||||
name = "Emmanuel Rosa";
|
||||
};
|
||||
endgame = {
|
||||
email = "jack@jackkelly.name";
|
||||
@ -1300,11 +1203,6 @@
|
||||
github = "ericbmerritt";
|
||||
name = "Eric Merritt";
|
||||
};
|
||||
erosennin = {
|
||||
email = "ag@sologoc.com";
|
||||
github = "erosennin";
|
||||
name = "Andrey Golovizin";
|
||||
};
|
||||
ericsagnes = {
|
||||
email = "eric.sagnes@gmail.com";
|
||||
github = "ericsagnes";
|
||||
@ -1325,11 +1223,20 @@
|
||||
github = "erikryb";
|
||||
name = "Erik Rybakken";
|
||||
};
|
||||
erosennin = {
|
||||
email = "ag@sologoc.com";
|
||||
github = "erosennin";
|
||||
name = "Andrey Golovizin";
|
||||
};
|
||||
ertes = {
|
||||
email = "esz@posteo.de";
|
||||
github = "ertes";
|
||||
name = "Ertugrul Söylemez";
|
||||
};
|
||||
Esteth = {
|
||||
email = "adam.copp@gmail.com";
|
||||
name = "Adam Copp";
|
||||
};
|
||||
ethercrow = {
|
||||
email = "ethercrow@gmail.com";
|
||||
github = "ethercrow";
|
||||
@ -1390,6 +1297,11 @@
|
||||
github = "fgaz";
|
||||
name = "Francesco Gazzetta";
|
||||
};
|
||||
FireyFly = {
|
||||
email = "nix@firefly.nu";
|
||||
github = "FireyFly";
|
||||
name = "Jonas Höglund";
|
||||
};
|
||||
flokli = {
|
||||
email = "flokli@flokli.de";
|
||||
github = "flokli";
|
||||
@ -1435,6 +1347,11 @@
|
||||
github = "fps";
|
||||
name = "Florian Paul Schmidt";
|
||||
};
|
||||
Fresheyeball = {
|
||||
email = "fresheyeball@gmail.com";
|
||||
github = "fresheyeball";
|
||||
name = "Isaac Shapira";
|
||||
};
|
||||
fridh = {
|
||||
email = "fridh@fridh.nl";
|
||||
github = "fridh";
|
||||
@ -1494,7 +1411,7 @@
|
||||
name = "Jim Garrison";
|
||||
};
|
||||
gavin = {
|
||||
email = "gavin@praxeology.co.uk";
|
||||
email = "gavin.rogers@holo.host";
|
||||
github = "gavinrogers";
|
||||
name = "Gavin Rogers";
|
||||
};
|
||||
@ -1558,6 +1475,11 @@
|
||||
github = "cillianderoiste";
|
||||
name = "Cillian de Róiste";
|
||||
};
|
||||
Gonzih = {
|
||||
email = "gonzih@gmail.com";
|
||||
github = "Gonzih";
|
||||
name = "Max Gonzih";
|
||||
};
|
||||
goodrone = {
|
||||
email = "goodrone@gmail.com";
|
||||
github = "goodrone";
|
||||
@ -1805,16 +1727,16 @@
|
||||
email = "jack@mudshark.org";
|
||||
name = "Jack Cummings";
|
||||
};
|
||||
jdagilliland = {
|
||||
email = "jdagilliland@gmail.com";
|
||||
github = "jdagilliland";
|
||||
name = "Jason Gilliland";
|
||||
};
|
||||
jD91mZM2 = {
|
||||
email = "me@krake.one";
|
||||
github = "jD91mZM2";
|
||||
name = "jD91mZM2";
|
||||
};
|
||||
jdagilliland = {
|
||||
email = "jdagilliland@gmail.com";
|
||||
github = "jdagilliland";
|
||||
name = "Jason Gilliland";
|
||||
};
|
||||
jefdaj = {
|
||||
email = "jefdaj@gmail.com";
|
||||
github = "jefdaj";
|
||||
@ -1880,6 +1802,10 @@
|
||||
github = "jluttine";
|
||||
name = "Jaakko Luttinen";
|
||||
};
|
||||
Jo = {
|
||||
email = "0x4A6F@shackspace.de";
|
||||
name = "Joachim Ernst";
|
||||
};
|
||||
joachifm = {
|
||||
email = "joachifm@fastmail.fm";
|
||||
github = "joachifm";
|
||||
@ -2003,6 +1929,11 @@
|
||||
github = "kaiha";
|
||||
name = "Kai Harries";
|
||||
};
|
||||
kalbasit = {
|
||||
email = "wael.nasreddine@gmail.com";
|
||||
github = "kalbasit";
|
||||
name = "Wael Nasreddine";
|
||||
};
|
||||
kamilchm = {
|
||||
email = "kamil.chm@gmail.com";
|
||||
github = "kamilchm";
|
||||
@ -2037,6 +1968,11 @@
|
||||
github = "khumba";
|
||||
name = "Bryan Gardiner";
|
||||
};
|
||||
KibaFox = {
|
||||
email = "kiba.fox@foxypossibilities.com";
|
||||
github = "KibaFox";
|
||||
name = "Kiba Fox";
|
||||
};
|
||||
kierdavis = {
|
||||
email = "kierdavis@gmail.com";
|
||||
github = "kierdavis";
|
||||
@ -2105,7 +2041,7 @@
|
||||
email = "giulio.eulisse@cern.ch";
|
||||
github = "ktf";
|
||||
name = "Giuluo Eulisse";
|
||||
};
|
||||
};
|
||||
ktosiek = {
|
||||
email = "tomasz.kontusz@gmail.com";
|
||||
github = "ktosiek";
|
||||
@ -2166,6 +2102,11 @@
|
||||
github = "leenaars";
|
||||
name = "Michiel Leenaars";
|
||||
};
|
||||
lejonet = {
|
||||
email = "daniel@kuehn.se";
|
||||
github = "lejonet";
|
||||
name = "Daniel Kuehn";
|
||||
};
|
||||
leo60228 = {
|
||||
email = "iakornfeld@gmail.com";
|
||||
github = "leo60228";
|
||||
@ -2176,11 +2117,6 @@
|
||||
github = "leonardoce";
|
||||
name = "Leonardo Cecchi";
|
||||
};
|
||||
lejonet = {
|
||||
email = "daniel@kuehn.se";
|
||||
github = "lejonet";
|
||||
name = "Daniel Kuehn";
|
||||
};
|
||||
lethalman = {
|
||||
email = "lucabru@src.gnome.org";
|
||||
github = "lethalman";
|
||||
@ -2364,10 +2300,6 @@
|
||||
github = "marcweber";
|
||||
name = "Marc Weber";
|
||||
};
|
||||
markWot = {
|
||||
email = "markus@wotringer.de";
|
||||
name = "Markus Wotringer";
|
||||
};
|
||||
markus1189 = {
|
||||
email = "markus1189@gmail.com";
|
||||
github = "markus1189";
|
||||
@ -2378,6 +2310,10 @@
|
||||
github = "markuskowa";
|
||||
name = "Markus Kowalewski";
|
||||
};
|
||||
markWot = {
|
||||
email = "markus@wotringer.de";
|
||||
name = "Markus Wotringer";
|
||||
};
|
||||
marsam = {
|
||||
email = "marsam@users.noreply.github.com";
|
||||
github = "marsam";
|
||||
@ -2463,7 +2399,7 @@
|
||||
github = "meditans";
|
||||
name = "Carlo Nucera";
|
||||
};
|
||||
megheaiulian = {
|
||||
megheaiulian = {
|
||||
email = "iulian.meghea@gmail.com";
|
||||
github = "megheaiulian";
|
||||
name = "Meghea Iulian";
|
||||
@ -2616,6 +2552,11 @@
|
||||
github = "mogorman";
|
||||
name = "Matthew O'Gorman";
|
||||
};
|
||||
Mogria = {
|
||||
email = "m0gr14@gmail.com";
|
||||
github = "mogria";
|
||||
name = "Mogria";
|
||||
};
|
||||
montag451 = {
|
||||
email = "montag451@laposte.net";
|
||||
github = "montag451";
|
||||
@ -2636,11 +2577,21 @@
|
||||
github = "moretea";
|
||||
name = "Maarten Hoogendoorn";
|
||||
};
|
||||
MostAwesomeDude = {
|
||||
email = "cds@corbinsimpson.com";
|
||||
github = "MostAwesomeDude";
|
||||
name = "Corbin Simpson";
|
||||
};
|
||||
mounium = {
|
||||
email = "muoniurn@gmail.com";
|
||||
github = "mounium";
|
||||
name = "Katona László";
|
||||
};
|
||||
MP2E = {
|
||||
email = "MP2E@archlinux.us";
|
||||
github = "MP2E";
|
||||
name = "Cray Elliott";
|
||||
};
|
||||
mpcsh = {
|
||||
email = "m@mpc.sh";
|
||||
github = "mpcsh";
|
||||
@ -2740,6 +2691,10 @@
|
||||
github = "nand0p";
|
||||
name = "Fernando Jose Pando";
|
||||
};
|
||||
Nate-Devv = {
|
||||
email = "natedevv@gmail.com";
|
||||
name = "Nathan Moore";
|
||||
};
|
||||
nathan-gs = {
|
||||
email = "nathan@nathan.gs";
|
||||
github = "nathan-gs";
|
||||
@ -2795,6 +2750,11 @@
|
||||
github = "nico202";
|
||||
name = "Nicolò Balzarotti";
|
||||
};
|
||||
NikolaMandic = {
|
||||
email = "nikola@mandic.email";
|
||||
github = "NikolaMandic";
|
||||
name = "Ratko Mladic";
|
||||
};
|
||||
ninjatrappeur = {
|
||||
email = "felix@alternativebit.fr";
|
||||
github = "ninjatrappeur";
|
||||
@ -2833,7 +2793,7 @@
|
||||
nonfreeblob = {
|
||||
email = "nonfreeblob@yandex.com";
|
||||
github = "nonfreeblob";
|
||||
name ="nonfreeblob";
|
||||
name = "nonfreeblob";
|
||||
};
|
||||
notthemessiah = {
|
||||
email = "brian.cohen.88@gmail.com";
|
||||
@ -2854,6 +2814,11 @@
|
||||
github = "nthorne";
|
||||
name = "Niklas Thörne";
|
||||
};
|
||||
numinit = {
|
||||
email = "me@numin.it";
|
||||
github = "numinit";
|
||||
name = "Morgan Jones";
|
||||
};
|
||||
nyanloutre = {
|
||||
email = "paul@nyanlout.re";
|
||||
github = "nyanloutre";
|
||||
@ -2938,10 +2903,10 @@
|
||||
github = "oxij";
|
||||
name = "Jan Malakhovski";
|
||||
};
|
||||
pSub = {
|
||||
email = "mail@pascal-wittmann.de";
|
||||
github = "pSub";
|
||||
name = "Pascal Wittmann";
|
||||
oyren = {
|
||||
email = "m.scheuren@oyra.eu";
|
||||
github = "oyren";
|
||||
name = "Moritz Scheuren";
|
||||
};
|
||||
paholg = {
|
||||
email = "paho@paholg.com";
|
||||
@ -3033,6 +2998,11 @@
|
||||
github = "phile314";
|
||||
name = "Philipp Hausmann";
|
||||
};
|
||||
Phlogistique = {
|
||||
email = "noe.rubinstein@gmail.com";
|
||||
github = "Phlogistique";
|
||||
name = "Noé Rubinstein";
|
||||
};
|
||||
phreedom = {
|
||||
email = "phreedom@yandex.ru";
|
||||
github = "phreedom";
|
||||
@ -3137,6 +3107,11 @@
|
||||
github = "primeos";
|
||||
name = "Michael Weiss";
|
||||
};
|
||||
Profpatsch = {
|
||||
email = "mail@profpatsch.de";
|
||||
github = "Profpatsch";
|
||||
name = "Profpatsch";
|
||||
};
|
||||
proglodyte = {
|
||||
email = "proglodyte23@gmail.com";
|
||||
github = "proglodyte";
|
||||
@ -3156,6 +3131,11 @@
|
||||
email = "philipp@xndr.de";
|
||||
name = "Philipp Steinpaß";
|
||||
};
|
||||
pSub = {
|
||||
email = "mail@pascal-wittmann.de";
|
||||
github = "pSub";
|
||||
name = "Pascal Wittmann";
|
||||
};
|
||||
psyanticy = {
|
||||
email = "iuns@outlook.fr";
|
||||
github = "Assassinkin";
|
||||
@ -3175,6 +3155,11 @@
|
||||
github = "qknight";
|
||||
name = "Joachim Schiele";
|
||||
};
|
||||
qoelet = {
|
||||
email = "kenny@machinesung.com";
|
||||
github = "qoelet";
|
||||
name = "Kenny Shen";
|
||||
};
|
||||
ragge = {
|
||||
email = "r.dahlen@gmail.com";
|
||||
github = "ragnard";
|
||||
@ -3359,6 +3344,11 @@
|
||||
github = "rongcuid";
|
||||
name = "Rongcui Dong";
|
||||
};
|
||||
roosemberth = {
|
||||
email = "roosembert.palacios+nixpkgs@gmail.com";
|
||||
github = "roosemberth";
|
||||
name = "Roosembert (Roosemberth) Palacios";
|
||||
};
|
||||
rprospero = {
|
||||
email = "rprospero+nix@gmail.com";
|
||||
github = "rprospero";
|
||||
@ -3498,11 +3488,21 @@
|
||||
github = "scolobb";
|
||||
name = "Sergiu Ivanov";
|
||||
};
|
||||
Scriptkiddi = {
|
||||
email = "nixos@scriptkiddi.de";
|
||||
github = "scriptkiddi";
|
||||
name = "Fritz Otlinghaus";
|
||||
};
|
||||
sdll = {
|
||||
email = "sasha.delly@gmail.com";
|
||||
github = "sdll";
|
||||
name = "Sasha Illarionov";
|
||||
};
|
||||
SeanZicari = {
|
||||
email = "sean.zicari@gmail.com";
|
||||
github = "SeanZicari";
|
||||
name = "Sean Zicari";
|
||||
};
|
||||
sellout = {
|
||||
email = "greg@technomadic.org";
|
||||
github = "sellout";
|
||||
@ -3686,6 +3686,11 @@
|
||||
github = "srhb";
|
||||
name = "Sarah Brofeldt";
|
||||
};
|
||||
SShrike = {
|
||||
email = "severen@shrike.me";
|
||||
github = "severen";
|
||||
name = "Severen Redwood";
|
||||
};
|
||||
stephenmw = {
|
||||
email = "stephen@q5comm.com";
|
||||
github = "stephenmw";
|
||||
@ -3706,11 +3711,26 @@
|
||||
github = "steveej";
|
||||
name = "Stefan Junker";
|
||||
};
|
||||
StijnDW = {
|
||||
email = "stekke@airmail.cc";
|
||||
github = "StijnDW";
|
||||
name = "Stijn DW";
|
||||
};
|
||||
StillerHarpo = {
|
||||
email = "florianengel39@gmail.com";
|
||||
github = "StillerHarpo";
|
||||
name = "Florian Engel";
|
||||
};
|
||||
stumoss = {
|
||||
email = "samoss@gmail.com";
|
||||
github = "stumoss";
|
||||
name = "Stuart Moss";
|
||||
};
|
||||
SuprDewd = {
|
||||
email = "suprdewd@gmail.com";
|
||||
github = "SuprDewd";
|
||||
name = "Bjarki Ágúst Guðmundsson";
|
||||
};
|
||||
suvash = {
|
||||
email = "suvash+nixpkgs@gmail.com";
|
||||
github = "suvash";
|
||||
@ -3771,6 +3791,11 @@
|
||||
github = "Radvendii";
|
||||
name = "Taeer Bar-Yam";
|
||||
};
|
||||
taha = {
|
||||
email = "xrcrod@gmail.com";
|
||||
github = "tgharib";
|
||||
name = "Taha Gharib";
|
||||
};
|
||||
tailhook = {
|
||||
email = "paul@colomiets.name";
|
||||
github = "tailhook";
|
||||
@ -3811,6 +3836,11 @@
|
||||
github = "tazjin";
|
||||
name = "Vincent Ambo";
|
||||
};
|
||||
TealG = {
|
||||
email = "~@Teal.Gr";
|
||||
github = "TealG";
|
||||
name = "Teal Gaure";
|
||||
};
|
||||
teh = {
|
||||
email = "tehunger@gmail.com";
|
||||
github = "teh";
|
||||
@ -3861,6 +3891,11 @@
|
||||
github = "ctheune";
|
||||
name = "Christian Theune";
|
||||
};
|
||||
ThomasMader = {
|
||||
email = "thomas.mader@gmail.com";
|
||||
github = "ThomasMader";
|
||||
name = "Thomas Mader";
|
||||
};
|
||||
thoughtpolice = {
|
||||
email = "aseipp@pobox.com";
|
||||
github = "thoughtpolice";
|
||||
@ -4179,6 +4214,11 @@
|
||||
github = "vyp";
|
||||
name = "vyp";
|
||||
};
|
||||
waynr = {
|
||||
name = "Wayne Warren";
|
||||
email = "wayne.warren.s@gmail.com";
|
||||
github = "waynr";
|
||||
};
|
||||
wchresta = {
|
||||
email = "wchresta.nix@chrummibei.ch";
|
||||
github = "wchresta";
|
||||
@ -4380,6 +4420,11 @@
|
||||
github = "zimbatm";
|
||||
name = "zimbatm";
|
||||
};
|
||||
Zimmi48 = {
|
||||
email = "theo.zimmermann@univ-paris-diderot.fr";
|
||||
github = "Zimmi48";
|
||||
name = "Théo Zimmermann";
|
||||
};
|
||||
zohl = {
|
||||
email = "zohl@fmap.me";
|
||||
github = "zohl";
|
||||
|
@ -6,13 +6,11 @@
|
||||
$ copy-tarballs.pl --expr 'import <nixpkgs/maintainers/scripts/all-tarballs.nix>'
|
||||
*/
|
||||
|
||||
removeAttrs (import ../../pkgs/top-level/release.nix
|
||||
import ../../pkgs/top-level/release.nix
|
||||
{ # Don't apply ‘hydraJob’ to jobs, because then we can't get to the
|
||||
# dependency graph.
|
||||
scrubJobs = false;
|
||||
# No need to evaluate on i686.
|
||||
supportedSystems = [ "x86_64-linux" ];
|
||||
})
|
||||
[ # Remove jobs whose evaluation depends on a writable Nix store.
|
||||
"tarball" "unstable" "darwin-tested"
|
||||
]
|
||||
limitedSupportedSystems = [];
|
||||
}
|
||||
|
@ -262,7 +262,7 @@ def _update_package(path, target):
|
||||
if new_version == version:
|
||||
logging.info("Path {}: no update available for {}.".format(path, pname))
|
||||
return False
|
||||
elif new_version <= version:
|
||||
elif Version(new_version) <= Version(version):
|
||||
raise ValueError("downgrade for {}.".format(pname))
|
||||
if not new_sha256:
|
||||
raise ValueError("no file available for {}.".format(pname))
|
||||
|
@ -127,6 +127,12 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull'
|
||||
Make sure the key file is accessible to the daemon.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<varname>dockerTools.buildImage</varname> now uses <literal>null</literal> as default value for <varname>tag</varname>,
|
||||
which indicates that the nix output hash will be used as tag.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
{ pkgs
|
||||
, storePaths
|
||||
, volumeLabel
|
||||
, uuid ? "44444444-4444-4444-8888-888888888888"
|
||||
}:
|
||||
|
||||
let
|
||||
@ -32,7 +33,7 @@ pkgs.stdenv.mkDerivation {
|
||||
echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
|
||||
|
||||
truncate -s $bytes $out
|
||||
faketime -f "1970-01-01 00:00:01" mkfs.ext4 -L ${volumeLabel} -U 44444444-4444-4444-8888-888888888888 $out
|
||||
faketime -f "1970-01-01 00:00:01" mkfs.ext4 -L ${volumeLabel} -U ${uuid} $out
|
||||
|
||||
# Populate the image contents by piping a bunch of commands to the `debugfs` tool from e2fsprogs.
|
||||
# For example, to copy /nix/store/abcd...efg-coreutils-8.23/bin/sleep:
|
||||
|
@ -231,10 +231,6 @@ in
|
||||
# a collision with an apparently unrelated environment
|
||||
# variable with the same name exported by dhcpcd.
|
||||
interface_order='lo lo[0-9]*'
|
||||
'' + optionalString config.services.nscd.enable ''
|
||||
# Invalidate the nscd cache whenever resolv.conf is
|
||||
# regenerated.
|
||||
libc_restart='${pkgs.systemd}/bin/systemctl try-restart --no-block nscd.service 2> /dev/null'
|
||||
'' + optionalString (length resolvconfOptions > 0) ''
|
||||
# Options as described in resolv.conf(5)
|
||||
resolv_conf_options='${concatStringsSep " " resolvconfOptions}'
|
||||
|
@ -38,7 +38,8 @@ in {
|
||||
firmwareLinuxNonfree
|
||||
intel2200BGFirmware
|
||||
rtl8192su-firmware
|
||||
] ++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
|
||||
] ++ optional (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) raspberrypiWirelessFirmware
|
||||
++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
|
||||
rtl8723bs-firmware
|
||||
];
|
||||
})
|
||||
|
@ -50,7 +50,7 @@ in
|
||||
|
||||
package = mkOption {
|
||||
internal = true;
|
||||
type = types.path;
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
The input method method package.
|
||||
|
@ -16,6 +16,8 @@ let
|
||||
inherit pkgs;
|
||||
inherit (config.sdImage) storePaths;
|
||||
volumeLabel = "NIXOS_SD";
|
||||
} // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
|
||||
uuid = config.sdImage.rootPartitionUUID;
|
||||
};
|
||||
in
|
||||
{
|
||||
@ -42,6 +44,24 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
bootPartitionID = mkOption {
|
||||
type = types.string;
|
||||
default = "0x2178694e";
|
||||
description = ''
|
||||
Volume ID for the /boot partition on the SD card. This value must be a
|
||||
32-bit hexadecimal number.
|
||||
'';
|
||||
};
|
||||
|
||||
rootPartitionUUID = mkOption {
|
||||
type = types.nullOr types.string;
|
||||
default = null;
|
||||
example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
|
||||
description = ''
|
||||
UUID for the main NixOS partition on the SD card.
|
||||
'';
|
||||
};
|
||||
|
||||
bootSize = mkOption {
|
||||
type = types.int;
|
||||
default = 120;
|
||||
@ -95,7 +115,7 @@ in
|
||||
# type=b is 'W95 FAT32', type=83 is 'Linux'.
|
||||
sfdisk $img <<EOF
|
||||
label: dos
|
||||
label-id: 0x2178694e
|
||||
label-id: ${config.sdImage.bootPartitionID}
|
||||
|
||||
start=8M, size=$bootSizeBlocks, type=b, bootable
|
||||
start=${toString (8 + config.sdImage.bootSize)}M, type=83
|
||||
@ -108,7 +128,7 @@ in
|
||||
# Create a FAT32 /boot partition of suitable size into bootpart.img
|
||||
eval $(partx $img -o START,SECTORS --nr 1 --pairs)
|
||||
truncate -s $((SECTORS * 512)) bootpart.img
|
||||
faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n NIXOS_BOOT bootpart.img
|
||||
faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.bootPartitionID} -n NIXOS_BOOT bootpart.img
|
||||
|
||||
# Populate the files intended for /boot
|
||||
mkdir boot
|
||||
|
@ -220,6 +220,7 @@
|
||||
./services/databases/stanchion.nix
|
||||
./services/databases/virtuoso.nix
|
||||
./services/desktops/accountsservice.nix
|
||||
./services/desktops/bamf.nix
|
||||
./services/desktops/dleyna-renderer.nix
|
||||
./services/desktops/dleyna-server.nix
|
||||
./services/desktops/flatpak.nix
|
||||
@ -627,6 +628,7 @@
|
||||
./services/security/hologram-agent.nix
|
||||
./services/security/munge.nix
|
||||
./services/security/oauth2_proxy.nix
|
||||
./services/security/oauth2_proxy_nginx.nix
|
||||
./services/security/physlock.nix
|
||||
./services/security/shibboleth-sp.nix
|
||||
./services/security/sks.nix
|
||||
|
@ -34,6 +34,6 @@ in
|
||||
|
||||
meta = {
|
||||
doc = ./doc.xml;
|
||||
maintainers = with stdenv.lib.maintainers; [ vidbina ];
|
||||
maintainers = with lib.maintainers; [ vidbina ];
|
||||
};
|
||||
}
|
||||
|
@ -242,6 +242,7 @@ with lib;
|
||||
(mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "")
|
||||
(mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ]
|
||||
"Set the option `services.xserver.displayManager.sddm.package' instead.")
|
||||
(mkRemovedOptionModule [ "services" "xserver" "desktopManager" "xfce" "screenLock" ] "")
|
||||
(mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
|
||||
(mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
|
||||
(mkRemovedOptionModule [ "virtualisation" "xen" "qemu" ] "You don't need this option anymore, it will work without it.")
|
||||
|
23
nixos/modules/services/desktops/bamf.nix
Normal file
23
nixos/modules/services/desktops/bamf.nix
Normal file
@ -0,0 +1,23 @@
|
||||
# Bamf
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
services.bamf = {
|
||||
enable = mkEnableOption "bamf";
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.bamf.enable {
|
||||
services.dbus.packages = [ pkgs.bamf ];
|
||||
|
||||
systemd.packages = [ pkgs.bamf ];
|
||||
};
|
||||
}
|
@ -3,20 +3,34 @@
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
let
|
||||
cfg = config.services.pipewire;
|
||||
packages = with pkgs; [ pipewire ];
|
||||
|
||||
in {
|
||||
###### interface
|
||||
options = {
|
||||
services.pipewire = {
|
||||
enable = mkEnableOption "pipewire service";
|
||||
|
||||
socketActivation = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Automatically run pipewire when connections are made to the pipewire socket.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
config = mkIf config.services.pipewire.enable {
|
||||
environment.systemPackages = [ pkgs.pipewire ];
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = packages;
|
||||
|
||||
systemd.packages = [ pkgs.pipewire ];
|
||||
systemd.packages = packages;
|
||||
|
||||
systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ jtojnar ];
|
||||
|
@ -40,15 +40,8 @@ with lib;
|
||||
'';
|
||||
|
||||
services.udev.packages = [ pkgs.udisks2 ];
|
||||
|
||||
systemd.services.udisks2 = {
|
||||
description = "Udisks2 service";
|
||||
serviceConfig = {
|
||||
Type = "dbus";
|
||||
BusName = "org.freedesktop.UDisks2";
|
||||
ExecStart = "${pkgs.udisks2}/libexec/udisks2/udisksd --no-debug";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.packages = [ pkgs.udisks2 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -241,6 +241,6 @@ in {
|
||||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with stdenv.lib.maintainers; [ florianjacob ];
|
||||
maintainers = with lib.maintainers; [ florianjacob ];
|
||||
};
|
||||
}
|
||||
|
@ -12,6 +12,16 @@ in {
|
||||
|
||||
services.autorandr = {
|
||||
enable = mkEnableOption "handling of hotplug and sleep events by autorandr";
|
||||
|
||||
defaultTarget = mkOption {
|
||||
default = "default";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Fallback if no monitor layout can be detected. See the docs
|
||||
(https://github.com/phillipberndt/autorandr/blob/v1.0/README.md#how-to-use)
|
||||
for further reference.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@ -22,13 +32,21 @@ in {
|
||||
|
||||
environment.systemPackages = [ pkgs.autorandr ];
|
||||
|
||||
systemd.packages = [ pkgs.autorandr ];
|
||||
|
||||
systemd.services.autorandr = {
|
||||
wantedBy = [ "sleep.target" ];
|
||||
description = "Autorandr execution hook";
|
||||
after = [ "sleep.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
StartLimitInterval = 5;
|
||||
StartLimitBurst = 1;
|
||||
ExecStart = "${pkgs.autorandr}/bin/autorandr --batch --change --default ${cfg.defaultTarget}";
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = false;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ gnidorah ];
|
||||
meta.maintainers = with maintainers; [ gnidorah ma27 ];
|
||||
}
|
||||
|
@ -6,6 +6,9 @@ with lib;
|
||||
let
|
||||
cfg = config.networking.networkmanager;
|
||||
|
||||
dynamicHostsEnabled =
|
||||
cfg.dynamicHosts.enable && cfg.dynamicHosts.hostsDirs != {};
|
||||
|
||||
# /var/lib/misc is for dnsmasq.leases.
|
||||
stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
|
||||
|
||||
@ -317,6 +320,52 @@ in {
|
||||
so you don't need to to that yourself.
|
||||
'';
|
||||
};
|
||||
|
||||
dynamicHosts = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enabling this option requires the
|
||||
<option>networking.networkmanager.dns</option> option to be
|
||||
set to <literal>dnsmasq</literal>. If enabled, the directories
|
||||
defined by the
|
||||
<option>networking.networkmanager.dynamicHosts.hostsDirs</option>
|
||||
option will be set up when the service starts. The dnsmasq instance
|
||||
managed by NetworkManager will then watch those directories for
|
||||
hosts files (see the <literal>--hostsdir</literal> option of
|
||||
dnsmasq). This way a non-privileged user can add or override DNS
|
||||
entries on the local system (depending on what hosts directories
|
||||
that are configured)..
|
||||
'';
|
||||
};
|
||||
hostsDirs = mkOption {
|
||||
type = with types; attrsOf (submodule {
|
||||
options = {
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "root";
|
||||
description = ''
|
||||
The user that will own the hosts directory.
|
||||
'';
|
||||
};
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "root";
|
||||
description = ''
|
||||
The group that will own the hosts directory.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = {};
|
||||
description = ''
|
||||
Defines a set of directories (relative to
|
||||
<literal>/run/NetworkManager/hostdirs</literal>) that dnsmasq will
|
||||
watch for hosts files.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -325,10 +374,17 @@ in {
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
assertions = [{
|
||||
assertion = config.networking.wireless.enable == false;
|
||||
message = "You can not use networking.networkmanager with networking.wireless";
|
||||
}];
|
||||
assertions = [
|
||||
{ assertion = config.networking.wireless.enable == false;
|
||||
message = "You can not use networking.networkmanager with networking.wireless";
|
||||
}
|
||||
{ assertion = !dynamicHostsEnabled || (dynamicHostsEnabled && cfg.dns == "dnsmasq");
|
||||
message = ''
|
||||
To use networking.networkmanager.dynamicHosts you also need to set
|
||||
networking.networkmanager.dns = "dnsmasq"
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
environment.etc = with cfg.basePackages; [
|
||||
{ source = configFile;
|
||||
@ -362,7 +418,13 @@ in {
|
||||
++ lib.imap1 (i: s: {
|
||||
inherit (s) source;
|
||||
target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
|
||||
}) cfg.dispatcherScripts;
|
||||
}) cfg.dispatcherScripts
|
||||
++ optional (dynamicHostsEnabled)
|
||||
{ target = "NetworkManager/dnsmasq.d/dyndns.conf";
|
||||
text = concatMapStrings (n: ''
|
||||
hostsdir=/run/NetworkManager/hostsdirs/${n}
|
||||
'') (attrNames cfg.dynamicHosts.hostsDirs);
|
||||
};
|
||||
|
||||
environment.systemPackages = cfg.packages;
|
||||
|
||||
@ -398,6 +460,21 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.nm-setup-hostsdirs = mkIf dynamicHostsEnabled {
|
||||
wantedBy = [ "network-manager.service" ];
|
||||
before = [ "network-manager.service" ];
|
||||
partOf = [ "network-manager.service" ];
|
||||
script = concatStrings (mapAttrsToList (n: d: ''
|
||||
mkdir -p "/run/NetworkManager/hostsdirs/${n}"
|
||||
chown "${d.user}:${d.group}" "/run/NetworkManager/hostsdirs/${n}"
|
||||
chmod 0775 "/run/NetworkManager/hostsdirs/${n}"
|
||||
'') cfg.dynamicHosts.hostsDirs);
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExist = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Turn off NixOS' network management
|
||||
networking = {
|
||||
useDHCP = false;
|
||||
|
@ -95,26 +95,25 @@ in
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options.services.quagga =
|
||||
imports = [
|
||||
{
|
||||
options.services.quagga = {
|
||||
zebra = (serviceOptions "zebra") // {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = any isEnabled services;
|
||||
description = ''
|
||||
Whether to enable the Zebra routing manager.
|
||||
|
||||
zebra = (serviceOptions "zebra") // {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = any isEnabled services;
|
||||
description = ''
|
||||
Whether to enable the Zebra routing manager.
|
||||
|
||||
The Zebra routing manager is automatically enabled
|
||||
if any routing protocols are configured.
|
||||
'';
|
||||
The Zebra routing manager is automatically enabled
|
||||
if any routing protocols are configured.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
} // (genAttrs services serviceOptions);
|
||||
}
|
||||
{ options.services.quagga = (genAttrs services serviceOptions); }
|
||||
];
|
||||
|
||||
###### implementation
|
||||
|
||||
|
@ -183,7 +183,7 @@ in
|
||||
|
||||
example = literalExample ''
|
||||
{ "wlan0 wlan1" = {
|
||||
configFile = "/etc/wpa_supplicant";
|
||||
configFile.path = "/etc/wpa_supplicant.conf";
|
||||
userControlled.group = "network";
|
||||
extraConf = '''
|
||||
ap_scan=1
|
||||
|
@ -36,6 +36,7 @@ let
|
||||
IPv4 = true
|
||||
IPv6 = true
|
||||
SSL = ${boolToString confOpts.useSSL}
|
||||
${lib.optionalString (confOpts.uriPrefix != null) "URIPrefix = ${confOpts.uriPrefix}"}
|
||||
</Listener>
|
||||
|
||||
<User ${confOpts.userName}>
|
||||
@ -310,6 +311,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
uriPrefix = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/znc/";
|
||||
description = ''
|
||||
An optional URI prefix for the ZNC web interface. Can be
|
||||
used to make ZNC available behind a reverse proxy.
|
||||
'';
|
||||
};
|
||||
|
||||
extraZncConf = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
|
64
nixos/modules/services/security/oauth2_proxy_nginx.nix
Normal file
64
nixos/modules/services/security/oauth2_proxy_nginx.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.oauth2_proxy.nginx;
|
||||
in
|
||||
{
|
||||
options.services.oauth2_proxy.nginx = {
|
||||
proxy = mkOption {
|
||||
type = types.string;
|
||||
default = config.services.oauth2_proxy.httpAddress;
|
||||
description = ''
|
||||
The address of the reverse proxy endpoint for oauth2_proxy
|
||||
'';
|
||||
};
|
||||
virtualHosts = mkOption {
|
||||
type = types.listOf types.string;
|
||||
default = [];
|
||||
description = ''
|
||||
A list of nginx virtual hosts to put behind the oauth2 proxy
|
||||
'';
|
||||
};
|
||||
};
|
||||
config.services.oauth2_proxy = mkIf (cfg.virtualHosts != [] && (hasPrefix "127.0.0.1:" cfg.proxy)) {
|
||||
enable = true;
|
||||
};
|
||||
config.services.nginx = mkMerge ((optional (cfg.virtualHosts != []) {
|
||||
recommendedProxySettings = true; # needed because duplicate headers
|
||||
}) ++ (map (vhost: {
|
||||
virtualHosts.${vhost} = {
|
||||
locations."/oauth2/" = {
|
||||
proxyPass = cfg.proxy;
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header X-Auth-Request-Redirect $request_uri;
|
||||
'';
|
||||
};
|
||||
locations."/oauth2/auth" = {
|
||||
proxyPass = cfg.proxy;
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
# nginx auth_request includes headers but not body
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_pass_request_body off;
|
||||
'';
|
||||
};
|
||||
locations."/".extraConfig = ''
|
||||
auth_request /oauth2/auth;
|
||||
error_page 401 = /oauth2/sign_in;
|
||||
|
||||
# pass information via X-User and X-Email headers to backend,
|
||||
# requires running with --set-xauthrequest flag
|
||||
auth_request_set $user $upstream_http_x_auth_request_user;
|
||||
auth_request_set $email $upstream_http_x_auth_request_email;
|
||||
proxy_set_header X-User $user;
|
||||
proxy_set_header X-Email $email;
|
||||
|
||||
# if you enabled --cookie-refresh, this is needed for it to work with auth_request
|
||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||
add_header Set-Cookie $auth_cookie;
|
||||
'';
|
||||
|
||||
};
|
||||
}) cfg.virtualHosts));
|
||||
}
|
@ -241,6 +241,6 @@ in {
|
||||
|
||||
meta = {
|
||||
doc = ./matomo-doc.xml;
|
||||
maintainers = with stdenv.lib.maintainers; [ florianjacob ];
|
||||
maintainers = with lib.maintainers; [ florianjacob ];
|
||||
};
|
||||
}
|
||||
|
@ -130,5 +130,5 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with stdenv.lib.maintainers; [ ironpinguin ];
|
||||
meta.maintainers = with lib.maintainers; [ ironpinguin ];
|
||||
}
|
||||
|
@ -656,7 +656,7 @@ in
|
||||
message = "SSL is enabled for httpd, but sslServerCert and/or sslServerKey haven't been specified."; }
|
||||
];
|
||||
|
||||
warnings = map (cfg: ''apache-httpd's port option is deprecated. Use listen = [{/*ip = "*"; */ port = ${toString cfg.port}";}]; instead'' ) (lib.filter (cfg: cfg.port != 0) allHosts);
|
||||
warnings = map (cfg: ''apache-httpd's port option is deprecated. Use listen = [{/*ip = "*"; */ port = ${toString cfg.port};}]; instead'' ) (lib.filter (cfg: cfg.port != 0) allHosts);
|
||||
|
||||
users.users = optionalAttrs (mainCfg.user == "wwwrun") (singleton
|
||||
{ name = "wwwrun";
|
||||
|
@ -43,12 +43,6 @@ in
|
||||
default = true;
|
||||
description = "Enable the XFWM (default) window manager.";
|
||||
};
|
||||
|
||||
screenLock = mkOption {
|
||||
type = types.enum [ "xscreensaver" "xlockmore" "slock" ];
|
||||
default = "xlockmore";
|
||||
description = "Application used by XFCE to lock the screen.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -92,7 +86,7 @@ in
|
||||
thunar-volman # TODO: drop
|
||||
] ++ (if config.hardware.pulseaudio.enable
|
||||
then [ xfce4-mixer-pulse xfce4-volumed-pulse ]
|
||||
else [ xfce4-mixer xfce4-volumed ])
|
||||
else [ xfce4-mixer xfce4-volumed ])
|
||||
# TODO: NetworkManager doesn't belong here
|
||||
++ optionals config.networking.networkmanager.enable [ networkmanagerapplet ]
|
||||
++ optionals config.powerManagement.enable [ xfce4-power-manager ]
|
||||
|
@ -116,7 +116,7 @@ in {
|
||||
};
|
||||
|
||||
scrollMethod = mkOption {
|
||||
type = types.enum [ "twofinger" "edge" "none" ];
|
||||
type = types.enum [ "twofinger" "edge" "button" "none" ];
|
||||
default = "twofinger";
|
||||
example = "edge";
|
||||
description =
|
||||
|
@ -1053,7 +1053,7 @@ in
|
||||
};
|
||||
} // (listToAttrs (flip map interfaces (i:
|
||||
let
|
||||
deviceDependency = if config.boot.isContainer
|
||||
deviceDependency = if (config.boot.isContainer || i.name == "lo")
|
||||
then []
|
||||
else [ (subsystemDevice i.name) ];
|
||||
in
|
||||
|
@ -17,12 +17,40 @@ in {
|
||||
The size of the VirtualBox base image in MiB.
|
||||
'';
|
||||
};
|
||||
memorySize = mkOption {
|
||||
type = types.int;
|
||||
default = 1536;
|
||||
description = ''
|
||||
The amount of RAM the VirtualBox appliance can use in MiB.
|
||||
'';
|
||||
};
|
||||
vmDerivationName = mkOption {
|
||||
type = types.str;
|
||||
default = "nixos-ova-${config.system.nixos.label}-${pkgs.stdenv.system}";
|
||||
description = ''
|
||||
The name of the derivation for the VirtualBox appliance.
|
||||
'';
|
||||
};
|
||||
vmName = mkOption {
|
||||
type = types.str;
|
||||
default = "NixOS ${config.system.nixos.label} (${pkgs.stdenv.system})";
|
||||
description = ''
|
||||
The name of the VirtualBox appliance.
|
||||
'';
|
||||
};
|
||||
vmFileName = mkOption {
|
||||
type = types.str;
|
||||
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.system}.ova";
|
||||
description = ''
|
||||
The file name of the VirtualBox appliance.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix {
|
||||
name = "nixos-ova-${config.system.nixos.label}-${pkgs.stdenv.system}";
|
||||
name = cfg.vmDerivationName;
|
||||
|
||||
inherit pkgs lib config;
|
||||
partitionTableType = "legacy";
|
||||
@ -37,11 +65,11 @@ in {
|
||||
VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
|
||||
|
||||
echo "creating VirtualBox VM..."
|
||||
vmName="NixOS ${config.system.nixos.label} (${pkgs.stdenv.system})"
|
||||
vmName="${cfg.vmName}";
|
||||
VBoxManage createvm --name "$vmName" --register \
|
||||
--ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
|
||||
VBoxManage modifyvm "$vmName" \
|
||||
--memory 1536 --acpi on --vram 32 \
|
||||
--memory ${toString cfg.memorySize} --acpi on --vram 32 \
|
||||
${optionalString (pkgs.stdenv.system == "i686-linux") "--pae on"} \
|
||||
--nictype1 virtio --nic1 nat \
|
||||
--audiocontroller ac97 --audio alsa \
|
||||
@ -53,7 +81,7 @@ in {
|
||||
|
||||
echo "exporting VirtualBox VM..."
|
||||
mkdir -p $out
|
||||
fn="$out/nixos-${config.system.nixos.label}-${pkgs.stdenv.system}.ova"
|
||||
fn="$out/${cfg.vmFileName}"
|
||||
VBoxManage export "$vmName" --output "$fn"
|
||||
|
||||
rm -v $diskImage
|
||||
|
@ -341,6 +341,7 @@ in rec {
|
||||
tests.mesos = callTest tests/mesos.nix {};
|
||||
tests.misc = callTest tests/misc.nix {};
|
||||
tests.mongodb = callTest tests/mongodb.nix {};
|
||||
tests.mpd = callTest tests/mpd.nix {};
|
||||
tests.mumble = callTest tests/mumble.nix {};
|
||||
tests.munin = callTest tests/munin.nix {};
|
||||
tests.mutableUsers = callTest tests/mutable-users.nix {};
|
||||
|
@ -29,7 +29,7 @@ in import ./make-test.nix {
|
||||
name = "acme";
|
||||
|
||||
nodes = {
|
||||
letsencrypt = ./common/letsencrypt.nix;
|
||||
letsencrypt = ./common/letsencrypt;
|
||||
|
||||
webserver = { config, pkgs, ... }: {
|
||||
imports = [ commonConfig ];
|
||||
|
@ -17,7 +17,7 @@
|
||||
# A configuration example of a full node setup using this would be this:
|
||||
#
|
||||
# {
|
||||
# letsencrypt = import ./common/letsencrypt.nix;
|
||||
# letsencrypt = import ./common/letsencrypt;
|
||||
#
|
||||
# example = { nodes, ... }: {
|
||||
# networking.nameservers = [
|
||||
@ -30,14 +30,14 @@
|
||||
# }
|
||||
#
|
||||
# By default, this module runs a local resolver, generated using resolver.nix
|
||||
# from the same directory to automatically discover all zones in the network.
|
||||
# from the parent directory to automatically discover all zones in the network.
|
||||
#
|
||||
# If you do not want this and want to use your own resolver, you can just
|
||||
# override networking.nameservers like this:
|
||||
#
|
||||
# {
|
||||
# letsencrypt = { nodes, ... }: {
|
||||
# imports = [ ./common/letsencrypt.nix ];
|
||||
# imports = [ ./common/letsencrypt ];
|
||||
# networking.nameservers = [
|
||||
# nodes.myresolver.config.networking.primaryIPAddress
|
||||
# ];
|
||||
@ -164,8 +164,8 @@ let
|
||||
-e 's,exec \./bin/,,' \
|
||||
test/startservers.py
|
||||
|
||||
cat "${snakeOilCa}/ca.key" > test/test-ca.key
|
||||
cat "${snakeOilCa}/ca.pem" > test/test-ca.pem
|
||||
cat ${lib.escapeShellArg snakeOilCerts.ca.key} > test/test-ca.key
|
||||
cat ${lib.escapeShellArg snakeOilCerts.ca.cert} > test/test-ca.pem
|
||||
'';
|
||||
|
||||
# Until vendored pkcs11 is go 1.9 compatible
|
||||
@ -173,6 +173,21 @@ let
|
||||
rm -r go/src/github.com/letsencrypt/boulder/vendor/github.com/miekg/pkcs11
|
||||
'';
|
||||
|
||||
# XXX: Temporarily brought back putting the source code in the output,
|
||||
# since e95f17e2720e67e2eabd59d7754c814d3e27a0b2 was removing that from
|
||||
# buildGoPackage.
|
||||
preInstall = ''
|
||||
mkdir -p $out
|
||||
pushd "$NIX_BUILD_TOP/go"
|
||||
while read f; do
|
||||
echo "$f" | grep -q '^./\(src\|pkg/[^/]*\)/${goPackagePath}' \
|
||||
|| continue
|
||||
mkdir -p "$(dirname "$out/share/go/$f")"
|
||||
cp "$NIX_BUILD_TOP/go/$f" "$out/share/go/$f"
|
||||
done < <(find . -type f)
|
||||
popd
|
||||
'';
|
||||
|
||||
extraSrcs = map mkGoDep [
|
||||
{ goPackagePath = "github.com/miekg/pkcs11";
|
||||
rev = "6dbd569b952ec150d1425722dbbe80f2c6193f83";
|
||||
@ -191,53 +206,15 @@ let
|
||||
1:/var/lib/softhsm/slot1.db
|
||||
'';
|
||||
|
||||
snakeOilCa = pkgs.runCommand "snakeoil-ca" {
|
||||
buildInputs = [ pkgs.openssl ];
|
||||
allowSubstitutes = false;
|
||||
} ''
|
||||
mkdir "$out"
|
||||
openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \
|
||||
-subj '/CN=Snakeoil CA' -nodes \
|
||||
-out "$out/ca.pem" -keyout "$out/ca.key"
|
||||
'';
|
||||
snakeOilCerts = import ./snakeoil-certs.nix;
|
||||
|
||||
createAndSignCert = fqdn: let
|
||||
snakeoilCertConf = pkgs.writeText "snakeoil.cnf" ''
|
||||
[req]
|
||||
default_bits = 4096
|
||||
prompt = no
|
||||
default_md = sha256
|
||||
req_extensions = req_ext
|
||||
distinguished_name = dn
|
||||
[dn]
|
||||
CN = ${fqdn}
|
||||
[req_ext]
|
||||
subjectAltName = DNS:${fqdn}
|
||||
'';
|
||||
in pkgs.runCommand "snakeoil-certs-${fqdn}" {
|
||||
buildInputs = [ pkgs.openssl ];
|
||||
allowSubstitutes = false;
|
||||
} ''
|
||||
mkdir "$out"
|
||||
openssl genrsa -out "$out/snakeoil.key" 4096
|
||||
openssl req -new -key "$out/snakeoil.key" \
|
||||
-config ${lib.escapeShellArg snakeoilCertConf} \
|
||||
-out snakeoil.csr
|
||||
openssl x509 -req -in snakeoil.csr -sha256 -set_serial 666 \
|
||||
-CA "${snakeOilCa}/ca.pem" -CAkey "${snakeOilCa}/ca.key" \
|
||||
-extfile ${lib.escapeShellArg snakeoilCertConf} \
|
||||
-out "$out/snakeoil.pem" -days 36500
|
||||
'';
|
||||
|
||||
wfeCerts = createAndSignCert wfeDomain;
|
||||
wfeDomain = "acme-v01.api.letsencrypt.org";
|
||||
wfeCertFile = "${wfeCerts}/snakeoil.pem";
|
||||
wfeKeyFile = "${wfeCerts}/snakeoil.key";
|
||||
wfeCertFile = snakeOilCerts.${wfeDomain}.cert;
|
||||
wfeKeyFile = snakeOilCerts.${wfeDomain}.key;
|
||||
|
||||
siteCerts = createAndSignCert siteDomain;
|
||||
siteDomain = "letsencrypt.org";
|
||||
siteCertFile = "${siteCerts}/snakeoil.pem";
|
||||
siteKeyFile = "${siteCerts}/snakeoil.key";
|
||||
siteCertFile = snakeOilCerts.${siteDomain}.cert;
|
||||
siteKeyFile = snakeOilCerts.${siteDomain}.key;
|
||||
|
||||
# Retrieved via:
|
||||
# curl -s -I https://acme-v01.api.letsencrypt.org/terms \
|
||||
@ -350,7 +327,7 @@ let
|
||||
}) components;
|
||||
|
||||
in {
|
||||
imports = [ ./resolver.nix ];
|
||||
imports = [ ../resolver.nix ];
|
||||
|
||||
options.test-support.letsencrypt.caCert = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
@ -366,7 +343,7 @@ in {
|
||||
resolver.enable = let
|
||||
isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ];
|
||||
in lib.mkOverride 900 isLocalResolver;
|
||||
letsencrypt.caCert = "${snakeOilCa}/ca.pem";
|
||||
letsencrypt.caCert = snakeOilCerts.ca.cert;
|
||||
};
|
||||
|
||||
# This has priority 140, because modules/testing/test-instrumentation.nix
|
69
nixos/tests/common/letsencrypt/mkcerts.nix
Normal file
69
nixos/tests/common/letsencrypt/mkcerts.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{ pkgs ? import <nixpkgs> {}
|
||||
, lib ? pkgs.lib
|
||||
|
||||
, domains ? [ "acme-v01.api.letsencrypt.org" "letsencrypt.org" ]
|
||||
}:
|
||||
|
||||
pkgs.runCommand "letsencrypt-snakeoil-ca" {
|
||||
nativeBuildInputs = [ pkgs.openssl ];
|
||||
} ''
|
||||
addpem() {
|
||||
local file="$1"; shift
|
||||
local storeFileName="$(IFS=.; echo "$*")"
|
||||
|
||||
echo -n " " >> "$out"
|
||||
|
||||
# Every following argument is an attribute, so let's recurse and check
|
||||
# every attribute whether it must be quoted and write it into $out.
|
||||
while [ -n "$1" ]; do
|
||||
if expr match "$1" '^[a-zA-Z][a-zA-Z0-9]*$' > /dev/null; then
|
||||
echo -n "$1" >> "$out"
|
||||
else
|
||||
echo -n '"' >> "$out"
|
||||
echo -n "$1" | sed -e 's/["$]/\\&/g' >> "$out"
|
||||
echo -n '"' >> "$out"
|
||||
fi
|
||||
shift
|
||||
[ -z "$1" ] || echo -n . >> "$out"
|
||||
done
|
||||
|
||||
echo " = builtins.toFile \"$storeFileName\" '''" >> "$out"
|
||||
sed -e 's/^/ /' "$file" >> "$out"
|
||||
|
||||
echo " ''';" >> "$out"
|
||||
}
|
||||
|
||||
echo '# Generated via mkcert.sh in the same directory.' > "$out"
|
||||
echo '{' >> "$out"
|
||||
|
||||
openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \
|
||||
-subj '/CN=Snakeoil CA' -nodes -out ca.pem -keyout ca.key
|
||||
|
||||
addpem ca.key ca key
|
||||
addpem ca.pem ca cert
|
||||
|
||||
${lib.concatMapStrings (fqdn: let
|
||||
opensslConfig = pkgs.writeText "snakeoil.cnf" ''
|
||||
[req]
|
||||
default_bits = 4096
|
||||
prompt = no
|
||||
default_md = sha256
|
||||
req_extensions = req_ext
|
||||
distinguished_name = dn
|
||||
[dn]
|
||||
CN = ${fqdn}
|
||||
[req_ext]
|
||||
subjectAltName = DNS:${fqdn}
|
||||
'';
|
||||
in ''
|
||||
export OPENSSL_CONF=${lib.escapeShellArg opensslConfig}
|
||||
openssl genrsa -out snakeoil.key 4096
|
||||
openssl req -new -key snakeoil.key -out snakeoil.csr
|
||||
openssl x509 -req -in snakeoil.csr -sha256 -set_serial 666 \
|
||||
-CA ca.pem -CAkey ca.key -out snakeoil.pem -days 36500
|
||||
addpem snakeoil.key ${lib.escapeShellArg fqdn} key
|
||||
addpem snakeoil.pem ${lib.escapeShellArg fqdn} cert
|
||||
'') domains}
|
||||
|
||||
echo '}' >> "$out"
|
||||
''
|
6
nixos/tests/common/letsencrypt/mkcerts.sh
Executable file
6
nixos/tests/common/letsencrypt/mkcerts.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p nix bash -i bash
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
storepath="$(nix-build --no-out-link mkcerts.nix)"
|
||||
cat "$storepath" > snakeoil-certs.nix
|
253
nixos/tests/common/letsencrypt/snakeoil-certs.nix
Normal file
253
nixos/tests/common/letsencrypt/snakeoil-certs.nix
Normal file
@ -0,0 +1,253 @@
|
||||
# Generated via mkcert.sh in the same directory.
|
||||
{
|
||||
ca.key = builtins.toFile "ca.key" ''
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
Gvfq54FbDuB10XP8JdLrsy9Z6GEsmoE=
|
||||
-----END PRIVATE KEY-----
|
||||
'';
|
||||
ca.cert = builtins.toFile "ca.cert" ''
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFATCCAumgAwIBAgIJANydi4uFZr0LMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
|
||||
BAMMC1NuYWtlb2lsIENBMCAXDTE4MDcxMjAwMjIxNloYDzIxMTgwNjE4MDAyMjE2
|
||||
WjAWMRQwEgYDVQQDDAtTbmFrZW9pbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
||||
ADCCAgoCggIBAN91XEL/gfCG7MP2iv0IMO7dMFATmWKskjkpiZ8xm1+B3MSOA7OZ
|
||||
H0BVKSfatB4KrMzmb5gLM877bLvQV2Tu8M5GLU52Fh9RAhbr9NnbvESPHi3zaP2L
|
||||
vTnJSpMlkqMxsPzfSB5ciYnpUaM2/9aKxMebAGylYp59hA83rxm9g0KfR3mtgmD2
|
||||
5E5k8kdIjQxiP2IRFYg837GFmhLE3vggsnSsQ5B/HYYcOFOv329lgAWpsAh+Hfl9
|
||||
i6VFZqtRJ6Qj6sPFrzcUPyr1wyA4/zgqQt6nZ1FddNtRYSsZQ6kc/nkz0zvCzRFU
|
||||
12X09RJsOAKGXvJiUcJ17fbrWr/Manl0xX+3+Ndc1SBG6u9dziBQoqNLhJ9++DRd
|
||||
Wc+zewyVngk2bJwr2SWAhJWZtMpVyNFEm/wG9rY1BWwn1MivJXRAST3gO5yCwLct
|
||||
uFB9B2adZVwR3PCtkc2mT1rPmafDjZG69lb0vX1PvGkit0tIdo6KzhUSq5mORYiF
|
||||
8jPQNUx5e1gRCbCoUbbdbDS61ymYJbgU++nJizkYA+YZZ+uUzGwsP/t616i3cCF4
|
||||
L7npkGhUGcjwUW8hfapyL6B9UO4KO8OZvJL/Q2/Esaq9ILUZQ+ZY/dNHkVvUfxGn
|
||||
7f3MkdGYf6phaWFy/qnsWVjb/p31GTDxYpFNIIHvJ5R000+I+imTo3g3AgMBAAGj
|
||||
UDBOMB0GA1UdDgQWBBQ3vPWzjLmu5krbSpfhBAht9KL3czAfBgNVHSMEGDAWgBQ3
|
||||
vPWzjLmu5krbSpfhBAht9KL3czAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA
|
||||
A4ICAQDF9HyC1ZFN3Ob+JA9Dj5+Rcobi7JIA5F8uW3Q92LfPoVaUGEkBrwJSiTFX
|
||||
47zvP/ySBJIpZ9rzHMbJ+1L+eJgczF1uQ91inthCKo1THTPo5TgBrpJj0YAIunsj
|
||||
9eH1tBnfWFYdVIDZoTSiwPtgIvglpyuK/eJXEe+FRzubhtdc9w1Hlzox1sd0TQuy
|
||||
Pl9KFHg7BlFZfCPig1mkB8pfwjBDgVhv5DKJ9cJXh3R5zSoiyuS2b+qYSvw8YTHq
|
||||
0WNKWUthb7BVAYE3OmcbOHgUAUjtJ6EIGIB9z/SoLe90CofXLXFR5dppuVLKCMBA
|
||||
kgL4luBIu7t8mcnN2yzobvcGHy8RVY6F5abCCy6gackLzjOzvH1SYOxP8yN74aKB
|
||||
ANgcqdWspb8JYoU8lEbA8dhBVrsgBf7XeJlrZvMdcUENlJ2PI0JWr9WvlRAM9rYY
|
||||
EY1alJqBCp6530Ggd6/f0V64cEqptejUdmN9L0zboxKjQf4LjpUNraGvg8tw/xkY
|
||||
4dT1U2HlVnhOyBVkx/tE6zIK/RU16oMqwpjCdfbK/TuWCNc/emJz5PMlp81zm83+
|
||||
dExpWwuV4rt6OQbZ/GSatNLJXOw+pkLjaEhnHgrsgI+HqAUXg3ByKol+1e76wN51
|
||||
k1ZKpB6mk4kejySGPYBHiJwED0IyXu9gUfalSczXFO4ySAvhCg==
|
||||
-----END CERTIFICATE-----
|
||||
'';
|
||||
"acme-v01.api.letsencrypt.org".key = builtins.toFile "acme-v01.api.letsencrypt.org.key" ''
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
'';
|
||||
"acme-v01.api.letsencrypt.org".cert = builtins.toFile "acme-v01.api.letsencrypt.org.cert" ''
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEtDCCApwCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls
|
||||
IENBMCAXDTE4MDcxMjAwMjIxN1oYDzIxMTgwNjE4MDAyMjE3WjAnMSUwIwYDVQQD
|
||||
DBxhY21lLXYwMS5hcGkubGV0c2VuY3J5cHQub3JnMIICIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAg8AMIICCgKCAgEAvG+sL4q0VkgSClBTn4NkPiUrtXx5oLyZ+CCM1jrQx/xo
|
||||
tUt5X2S4/7vMnAK/yRLsR7R2PhXO8CZPqJ7B6OfAgaDTgvipJkZYPZQSMP3KOinM
|
||||
3WJLssqKh7/HOxZIf0iyUXewrnX5eTAo/CLsUnhBjBD7E99nmQz/leLWSl82sSYD
|
||||
kO3nUk3/1qJZA8iddb4uH0IEQWcNKev3WoQQzwiVrXBiftlRQOJy5JJXm5m8229M
|
||||
CpMA1AUWmpdu6sl3/gFFdsDhUFq/a7LFrVyaUCMRIHg9szAB7ZFkixr9umQs8jKw
|
||||
uo983JHB11h2SirwgfIzHHmyhaWhCt22ucTwEXGhq63LtrzZvLsfP8Ql5S+AuqGT
|
||||
H0v8meuc784leAjulBZjkpuIFwDnVv9+YeUEbqJeo1hSHrILddora3nkH4E2dJWm
|
||||
LpqpiPr++GRi+BNgYKW/BQLTJ7C6v+vUs+kdPgYJH5z7oP6f0YZkT0Wkubp/UEz7
|
||||
UV2dfjz57d77DYx5rFWGYzJriWR/xltgL1zDpjwjwG1FDpRqwlyYbBFpjQhxI+X0
|
||||
aT98m6fCzBDQHDb/+JgvsjTHh6OZatahFAwzFIEfrceDv1BG8sBWIaZGhLzYiWQx
|
||||
afl8oXbWv1T6I1jpsTlCdCSkWzaJb4ZjxI9Ga1ynVu8F16+GR2a71wKWu7UbZQsC
|
||||
AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAzeGlFMz1Bo+bbpZDQ60HLdw7qDp3SPJi
|
||||
x5LYG860yzbh9ghvyc59MIm5E6vB140LRJAs+Xo6VdVSTC4jUA2kI9k1BQsbZKds
|
||||
XT0RqA7HkqcLS3t3JWFkkKbCshMGZTSZ//hpbaUG1qEAfUfmZw1lAxqSa0kqavbP
|
||||
awf7k8qHbqcj7WORCdH7fjKAjntEQwIpl1GEkAdCSghOJz2/o9aWmiGZt27OM/sG
|
||||
MLSrcmL3QBElCjOxg14P8rnsmZ+VEp6MO93otoJ4dJL7fN7vTIh5ThbS384at/4l
|
||||
4KK/y7XctUzAtWzhnodjk/NSgrrGX2kseOGOWEM1sZc9xtinHH2tpOMqtLVOkgHD
|
||||
Lul+TArqgqeoOdEM/9OL64kgOrO/JzxBq+egLUi4wgAul2wmtecKZK1dkwYZHeqW
|
||||
74i55yeBp+TTomnPr0ZBns6xKFYldJVzC34OB+2YVDxe8y9XtWtuQOxFw0LQHhNb
|
||||
zy5aBverWzZFwiIIjJoVHTQq848uKBJec0YILfMinS1Wjif4xqW/IMfi+GFS0oka
|
||||
sKCGNE/8ur9u/Jm6cbto3f2dtV8/vkhiITQgwzM2jalyuVJ9jyPxG7EvbTvZORgw
|
||||
pRvBRTd4/eE7I1L+UDe6x8EjR/MrqfF9FWVGOZo4vPTyNbrSWYBh6s9kYy56ds1l
|
||||
IRxst1BXEfI=
|
||||
-----END CERTIFICATE-----
|
||||
'';
|
||||
"letsencrypt.org".key = builtins.toFile "letsencrypt.org.key" ''
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
'';
|
||||
"letsencrypt.org".cert = builtins.toFile "letsencrypt.org.cert" ''
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEpzCCAo8CAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls
|
||||
IENBMCAXDTE4MDcxMjAwMjIxOVoYDzIxMTgwNjE4MDAyMjE5WjAaMRgwFgYDVQQD
|
||||
DA9sZXRzZW5jcnlwdC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
||||
AQDA++GXB6aA+Lr3X2xIPs/PqXoJF9TUb98NzQC+ww3+dOaIY0Omqf15/UID5G0u
|
||||
0649zUsvISi9x+7vn9X7opKA7iTX0TYKsUIXCMQ5YMYXgOByVPfvnVYaYUmDM8R9
|
||||
l+Fs6uZB9Bq7zorEC01lWn0XFwpu4vJD+w03F80wH7sgdtWHC/NVyd0elhkQ/qR2
|
||||
fC80s/bZui5fmrdq/FZK2WfTW5nQF9SbhfDFpQ0hTu3QO/noUr0L2Fb0Blp7R2jQ
|
||||
EkFZEXvFLAt4Mmqf25nP6xfRf+0hppJBIG5nJKPQd7lkrN1Q7S2nHbFNLYGuXdjY
|
||||
E4lo4T3we5ta90qiyUu3hfatWszEZrzpKYXNzIMvVFKjBw/+u7LLnnmXul6kvmzh
|
||||
yYyBEEFePm1eGpRNU6flY74kKUuT6u2+0BPiuiAmYyoQqYzDa3ss3LVb2uL/fvxA
|
||||
b+LcAZosgv/saw9u5E7nVJ22LhAxV7bM0XN7vabM2aPVJeiRbLv5m+NQynnmgSNF
|
||||
GxM9Rl004QclbLo6zbOe6ovtmkgcLEEbwUqeQJWJdEmoADxvNwSFH6ktqYsg4eW/
|
||||
iR3MnqmEeRK8rryq9tFF5SY6MmBK6lUEj2OEr58drL9RZHjN8lB5330fxk6iJeWs
|
||||
sJWz5U8PKdRQqvMXWdjKiU3OL81Lh7gBud9aDILkkpGmNQIDAQABMA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQAkx3jcryukAuYP7PQxMy3LElOl65ZFVqxDtTDlr7DvAkWJzVCb
|
||||
g08L6Tu+K0rKh2RbG/PqS0+8/jBgc4IwSOPfDDAX+sinfj0kwXG34WMzB0G3fQzU
|
||||
2BMplJDOaBcNqHG8pLP1BG+9HAtR/RHe9p2Jw8LG2qmZs6uemPT/nCTNoyIL4oxh
|
||||
UncjETV4ayCHDKD1XA7/icgddYsnfLQHWuIMuCrmQCHo0uQAd7qVHfUWZ+gcsZx0
|
||||
jTNCcaI8OTS2S65Bjaq2HaM7GMcUYNUD2vSyNQeQbha4ZeyZ9bPyFzznPMmrPXQe
|
||||
MJdkbJ009RQIG9As79En4m+l+/6zrdx4DNdROqaL6YNiSebWMnuFHpMW/rCnhrT/
|
||||
HYadijHOiJJGj9tWSdC4XJs7fvZW3crMPUYxpOvl01xW2ZlgaekILi1FAjSMQVoV
|
||||
NhWstdGCKJdthJqLL5MtNdfgihKcmgkJqKFXTkPv7sgAQCopu6X+S+srCgn856Lv
|
||||
21haRWZa8Ml+E0L/ticT8Fd8Luysc6K9TJ4mT8ENC5ywvgDlEkwBD3yvINXm5lg1
|
||||
xOIxv/Ye5gFk1knuM7OzpUFBrXUHdVVxflCUqNAhFPbcXwjgEQ+A+S5B0vI6Ohue
|
||||
ZnR/wuiou6Y+Yzh8XfqL/3H18mGDdjyMXI1B6l4Judk000UVyr46cnI7mw==
|
||||
-----END CERTIFICATE-----
|
||||
'';
|
||||
}
|
@ -18,7 +18,7 @@
|
||||
defining this option needs to be explicitly imported.
|
||||
|
||||
The reason this option exists is for the
|
||||
<filename>nixos/tests/common/letsencrypt.nix</filename> module, which
|
||||
<filename>nixos/tests/common/letsencrypt</filename> module, which
|
||||
needs that option to disable the resolver once the user has set its own
|
||||
resolver.
|
||||
'';
|
||||
|
@ -10,7 +10,7 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
{ config, pkgs, lib, ... }:
|
||||
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
||||
virtualisation.writableStore = true;
|
||||
virtualisation.memorySize = 768;
|
||||
virtualisation.memorySize = 1024;
|
||||
# Make sure we always have all the required dependencies for creating a
|
||||
# container available within the VM, because we don't have network access.
|
||||
virtualisation.pathsInNixDB = let
|
||||
|
119
nixos/tests/mpd.nix
Normal file
119
nixos/tests/mpd.nix
Normal file
@ -0,0 +1,119 @@
|
||||
import ./make-test.nix ({ pkgs, ... }:
|
||||
let
|
||||
track = pkgs.fetchurl {
|
||||
# Sourced from http://freemusicarchive.org/music/Blue_Wave_Theory/Surf_Music_Month_Challenge/Skyhawk_Beach_fade_in
|
||||
# License: http://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
name = "Blue_Wave_Theory-Skyhawk_Beach.mp3";
|
||||
url = https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3;
|
||||
sha256 = "0xw417bxkx4gqqy139bb21yldi37xx8xjfxrwaqa0gyw19dl6mgp";
|
||||
};
|
||||
|
||||
defaultCfg = rec {
|
||||
user = "mpd";
|
||||
group = "mpd";
|
||||
dataDir = "/var/lib/mpd";
|
||||
musicDirectory = "${dataDir}/music";
|
||||
};
|
||||
|
||||
defaultMpdCfg = with defaultCfg; {
|
||||
inherit dataDir musicDirectory user group;
|
||||
enable = true;
|
||||
};
|
||||
|
||||
musicService = { user, group, musicDirectory }: {
|
||||
description = "Sets up the music file(s) for MPD to use.";
|
||||
requires = [ "mpd.service" ];
|
||||
after = [ "mpd.service" ];
|
||||
wantedBy = [ "default.target" ];
|
||||
script = ''
|
||||
mkdir -p ${musicDirectory} && chown -R ${user}:${group} ${musicDirectory}
|
||||
cp ${track} ${musicDirectory}
|
||||
chown ${user}:${group} ${musicDirectory}/$(basename ${track})
|
||||
'';
|
||||
};
|
||||
|
||||
mkServer = { mpd, musicService, }:
|
||||
{ boot.kernelModules = [ "snd-dummy" ];
|
||||
sound.enable = true;
|
||||
services.mpd = mpd;
|
||||
systemd.services.musicService = musicService;
|
||||
};
|
||||
in {
|
||||
name = "mpd";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ emmanuelrosa ];
|
||||
};
|
||||
|
||||
nodes =
|
||||
{ client =
|
||||
{ config, pkgs, ... }: { };
|
||||
|
||||
serverALSA =
|
||||
{ config, pkgs, ... }: (mkServer {
|
||||
mpd = defaultMpdCfg // {
|
||||
network.listenAddress = "any";
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "alsa"
|
||||
name "ALSA"
|
||||
mixer_type "null"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
musicService = with defaultMpdCfg; musicService { inherit user group musicDirectory; };
|
||||
}) // { networking.firewall.allowedTCPPorts = [ 6600 ]; };
|
||||
|
||||
serverPulseAudio =
|
||||
{ config, pkgs, ... }: (mkServer {
|
||||
mpd = defaultMpdCfg // {
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "The Pulse"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
musicService = with defaultCfg; musicService { inherit user group musicDirectory; };
|
||||
}) // { hardware.pulseaudio.enable = true; };
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
my $mpc = "${pkgs.mpc_cli}/bin/mpc --wait";
|
||||
|
||||
# Connects to the given server and attempts to play a tune.
|
||||
sub play_some_music {
|
||||
my $server = $_[0];
|
||||
|
||||
$server->waitForUnit("mpd.service");
|
||||
$server->succeed("$mpc update");
|
||||
my @tracks = $server->execute("$mpc ls");
|
||||
|
||||
for my $track (split(/\n/, $tracks[1])) {
|
||||
$server->succeed("$mpc add $track");
|
||||
};
|
||||
|
||||
my @added_tracks = $server->execute("$mpc listall");
|
||||
(length $added_tracks[1]) > 0 or die "Failed to add audio tracks to the playlist.";
|
||||
|
||||
$server->succeed("$mpc play");
|
||||
|
||||
my @status = $server->execute("$mpc status");
|
||||
my @output = split(/\n/, $status[1]);
|
||||
$output[1] =~ /.*playing.*/ or die "Audio track is not playing, as expected.";
|
||||
|
||||
$server->succeed("$mpc stop");
|
||||
};
|
||||
|
||||
play_some_music($serverALSA);
|
||||
play_some_music($serverPulseAudio);
|
||||
|
||||
$client->succeed("$mpc -h serverALSA status");
|
||||
|
||||
# The PulseAudio-based server is configured not to accept external client connections
|
||||
# to perform the following test:
|
||||
$client->fail("$mpc -h serverPulseAudio status");
|
||||
'';
|
||||
})
|
@ -18,7 +18,7 @@ import ./make-test.nix ({ pkgs, ... }: let
|
||||
crlTemplate = pkgs.writeText "snakeoil-crl.template" ''
|
||||
expiration_days = -1
|
||||
'';
|
||||
userCertTemplace = pkgs.writeText "snakoil-user-cert.template" ''
|
||||
userCertTemplate = pkgs.writeText "snakeoil-user-cert.template" ''
|
||||
organization = snakeoil
|
||||
cn = server
|
||||
expiration_days = -1
|
||||
@ -49,7 +49,7 @@ import ./make-test.nix ({ pkgs, ... }: let
|
||||
certtool -p --bits 4096 | sed -n \
|
||||
-e '/^----* *BEGIN/,/^----* *END/p' > "$out/alice.key"
|
||||
|
||||
certtool -c --template "$userCertTemplace" \
|
||||
certtool -c --template "$userCertTemplate" \
|
||||
--load-privkey "$out/alice.key" \
|
||||
--load-ca-privkey ca.key \
|
||||
--load-ca-certificate "$cacert" \
|
||||
@ -82,8 +82,9 @@ in {
|
||||
# This is to avoid assigning a different network address to the new
|
||||
# generation.
|
||||
networking = lib.mapAttrs (lib.const lib.mkForce) {
|
||||
interfaces.eth1.ipv4 = nodes.server.config.networking.interfaces.eth1.ipv4;
|
||||
inherit (nodes.server.config.networking)
|
||||
hostName interfaces primaryIPAddress extraHosts;
|
||||
hostName primaryIPAddress extraHosts;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -12,17 +12,6 @@ buildGoPackage rec {
|
||||
# Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 )
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
||||
# Only install binaries in $out, source is not interesting and takes ~50M
|
||||
outputs = [ "out" ];
|
||||
preFixup = ''
|
||||
export bin="''${out}"
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out
|
||||
dir="$NIX_BUILD_TOP/go/bin"
|
||||
[ -e "$dir" ] && cp -r $dir $out
|
||||
'';
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "go-ethereum";
|
||||
|
@ -6,11 +6,11 @@ uiEnv = pkgs.callPackage ./env.nix { };
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "parity-ui-${version}";
|
||||
version = "0.2.5";
|
||||
version = "0.2.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
|
||||
sha256 = "1jk7ac6qqxs47hf16vhr94ix4wf51qzpm55q8h6wsx1lrgy1y3g6";
|
||||
sha256 = "1nyarq73jdknhax68cq2i868sznghzj70kvk4ixypxnjb1q6a53a";
|
||||
name = "${name}.deb";
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
let
|
||||
version = "1.10.8";
|
||||
sha256 = "0q6blsbxn48afqf3cmxvmdlyzvf0cpqcymsjbsk8nyx0zxzf1dpk";
|
||||
version = "1.10.9";
|
||||
sha256 = "1irfksx887vvvdf97q26qacn22kmyj8fgb3ghh9wv5qnzrn3564g";
|
||||
cargoSha256 = "0rzhabyhprmcg0cdmibbb8zgqf6z4izsdq8m060mppkkv675x0lf";
|
||||
patches = [ ./patches/vendored-sources-1.10.patch ];
|
||||
in
|
||||
|
@ -19,11 +19,11 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "particl-core-${version}";
|
||||
version = "0.16.0.5";
|
||||
version = "0.16.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
|
||||
sha256 = "070crn6nnzrbcaj30w0qbybpm9kfd2ghnvmxp29gckgknw6n0vam";
|
||||
sha256 = "0rfqywyrl6cgxn3ba91zsa88ph2yf9d1vn706xpyz19pfb6mjfbg";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
name = "elisa-${version}";
|
||||
version = "0.1.80";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KDE";
|
||||
repo = "elisa";
|
||||
rev = "v${version}";
|
||||
sha256 = "1kyvdxbsfi692zazw8vjy6mwyy0sa4r1cim8gsiv9pphfh5bpxb1";
|
||||
sha256 = "0b3rx3gh6adlrbmgj75dicqv6qzzn4fyfxbf1nwh3zd2hi0ca89w";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
|
||||
|
@ -3,14 +3,14 @@
|
||||
, python36Packages, gnome3, glib, gst_all_1 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9.516";
|
||||
version = "0.9.519";
|
||||
name = "lollypop-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.gnome.org/World/lollypop";
|
||||
rev = "refs/tags/${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "0ln77cmcl5wi4xis9kmzg0knbykzwsd1n78rr7ff5y35m9p2zgrf";
|
||||
sha256 = "1v4p59w4yf86djk7xv1xwbximpjm64wn42il090w7q1wy04my6fl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python36Packages; [
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
pname = "mopidy-soundcloud";
|
||||
version = "2.0.2";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mopidy";
|
||||
repo = "mopidy-soundcloud";
|
||||
rev = "v${version}";
|
||||
sha256 = "13n44975n1wwcf7qg1c7drc2bavhjnr9hnq1v0n5hdgyx8ji67gi";
|
||||
sha256 = "131qdm9i0j3ayff0js11qcmbjv50ws5s6iiqr6x5b66ymjl4scfv";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy ];
|
||||
|
76
pkgs/applications/audio/muse/default.nix
Normal file
76
pkgs/applications/audio/muse/default.nix
Normal file
@ -0,0 +1,76 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, libjack2
|
||||
, qt5
|
||||
, cmake
|
||||
, libsndfile
|
||||
, libsamplerate
|
||||
, ladspaH
|
||||
, fluidsynth
|
||||
, alsaLib
|
||||
, rtaudio
|
||||
, lash
|
||||
, dssi
|
||||
, liblo
|
||||
, pkgconfig
|
||||
, gitAndTools
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "muse-sequencer-${version}";
|
||||
version = "3.0.2";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.muse-sequencer.org;
|
||||
description = "MIDI/Audio sequencer with recording and editing capabilities";
|
||||
longDescription = ''
|
||||
MusE is a MIDI/Audio sequencer with recording and editing capabilities
|
||||
written originally by Werner Schweer now developed and maintained
|
||||
by the MusE development team.
|
||||
|
||||
MusE aims to be a complete multitrack virtual studio for Linux,
|
||||
it is published under the GNU General Public License.
|
||||
'';
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
};
|
||||
|
||||
src =
|
||||
fetchFromGitHub {
|
||||
owner = "muse-sequencer";
|
||||
repo = "muse";
|
||||
rev = "02d9dc6abd757c3c1783fdd46dacd3c4ef2c0a6d";
|
||||
sha256 = "0pn0mcg79z3bhjwxbss3ylypdz3gg70q5d1ij3x8yw65ryxbqf51";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [
|
||||
libjack2
|
||||
qt5.qtsvg
|
||||
qt5.qttools
|
||||
cmake
|
||||
libsndfile
|
||||
libsamplerate
|
||||
ladspaH
|
||||
fluidsynth
|
||||
alsaLib
|
||||
rtaudio
|
||||
lash
|
||||
dssi
|
||||
liblo
|
||||
pkgconfig
|
||||
gitAndTools.gitFull
|
||||
];
|
||||
|
||||
sourceRoot = "source/muse3";
|
||||
|
||||
buildPhase = ''
|
||||
cd ..
|
||||
bash compile_muse.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cd build
|
||||
make install
|
||||
'';
|
||||
}
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "musescore-${version}";
|
||||
version = "2.2.1";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "musescore";
|
||||
repo = "MuseScore";
|
||||
rev = "v${version}";
|
||||
sha256 = "00lwcsnpyiq9l9x11nm24mzf67xmhzjhwi4c3iqry6ayi9c4p4qs";
|
||||
sha256 = "00inrw9g8g34g74bhg5gp0rr5nydhjraiyn7vpl7kaqi5yzmhawd";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
90
pkgs/applications/audio/pulseeffects/default.nix
Normal file
90
pkgs/applications/audio/pulseeffects/default.nix
Normal file
@ -0,0 +1,90 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkgconfig
|
||||
, libxml2
|
||||
, desktop-file-utils
|
||||
, wrapGAppsHook
|
||||
, gst_all_1
|
||||
, pulseaudio
|
||||
, gtk3
|
||||
, glib
|
||||
, glibmm
|
||||
, gtkmm3
|
||||
, lilv
|
||||
, lv2
|
||||
, serd
|
||||
, sord
|
||||
, sratom
|
||||
, libbs2b
|
||||
, boost
|
||||
, calf
|
||||
, zam-plugins
|
||||
, rubberband
|
||||
, mda_lv2
|
||||
}:
|
||||
|
||||
let
|
||||
lv2Plugins = [
|
||||
calf # limiter, compressor exciter, bass enhancer and others
|
||||
mda_lv2 # loudness
|
||||
];
|
||||
ladspaPlugins = [
|
||||
rubberband # pitch shifting
|
||||
zam-plugins # maximizer
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "pulseeffects-${version}";
|
||||
version = "4.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wwmm";
|
||||
repo = "pulseeffects";
|
||||
rev = "v${version}";
|
||||
sha256 = "1f89msg8hzaf1pa9w3gaifb88dm0ca2wd81jlz3vr98hm7kxd85k";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pulseaudio
|
||||
glib
|
||||
glibmm
|
||||
gtk3
|
||||
gtkmm3
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-bad
|
||||
lilv lv2 serd sord sratom
|
||||
libbs2b
|
||||
boost
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--set LV2_PATH "${stdenv.lib.makeSearchPath "lib/lv2" lv2Plugins}"
|
||||
--set LADSPA_PATH "${stdenv.lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
|
||||
homepage = https://github.com/wwmm/pulseeffects;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ jtojnar ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -4,11 +4,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "snd-18.4";
|
||||
name = "snd-18.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/snd/${name}.tar.gz";
|
||||
sha256 = "1asc513d0cmbq0ldzpzmfbydvlj5hwpp480qnicgkn96wplp9c7s";
|
||||
sha256 = "1m2rw1p9xr9428p9drd3w5irsi12lz23m605lzgk9gjamq9paywy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -13,9 +13,9 @@ let
|
||||
sha256Hash = "196yaswbxh2nd83gimjxr8ggr5xkdxq7n3xlh6ax73v59pj4hryq";
|
||||
};
|
||||
latestVersion = {
|
||||
version = "3.3.0.1"; # "Android Studio 3.3 Canary 2"
|
||||
build = "181.4869471";
|
||||
sha256Hash = "1v2v09gd5vxh4nzbnrjfh0blpzz71i3i7lq5bkjsfl0g82r8j512";
|
||||
version = "3.3.0.2"; # "Android Studio 3.3 Canary 3"
|
||||
build = "181.4884283";
|
||||
sha256Hash = "0r93yzw87cgzz60p60gknij5vaqmv1a1kyd4cr9gx8cbxw46lhwh";
|
||||
};
|
||||
in rec {
|
||||
# Old alias
|
||||
@ -43,9 +43,9 @@ in rec {
|
||||
beta = mkStudio (latestVersion // {
|
||||
pname = "android-studio-preview";
|
||||
#pname = "android-studio-beta"; # TODO: Rename and provide symlink
|
||||
version = "3.2.0.19"; # "Android Studio 3.2 Beta 2"
|
||||
build = "181.4860949";
|
||||
sha256Hash = "1v1h42xp2fxj8366q9l9b0shk0y1vz9kny0rf7y48kyr5h9glnwr";
|
||||
version = "3.2.0.20"; # "Android Studio 3.2 Beta 3"
|
||||
build = "181.4868252";
|
||||
sha256Hash = "17r7gvy317vh2r56yvhnn7dym0q6gs8r04fdr7hx53s9rb79sd1j";
|
||||
|
||||
meta = stable.meta // {
|
||||
description = "The Official IDE for Android (beta channel)";
|
||||
|
@ -21,6 +21,7 @@ let
|
||||
mv $out/usr/* $out/
|
||||
rm -r $out/share/lintian
|
||||
rm -r $out/usr/
|
||||
sed -i "s/${pname})/.${pname}-wrapped)/" $out/bin/${pname}
|
||||
# sed -i "s/'${pname}'/'.${pname}-wrapped'/" $out/bin/${pname}
|
||||
wrapProgram $out/bin/${pname} \
|
||||
--prefix "PATH" : "${gvfs}/bin"
|
||||
@ -60,12 +61,12 @@ let
|
||||
};
|
||||
in stdenv.lib.mapAttrs common {
|
||||
atom = {
|
||||
version = "1.28.0";
|
||||
sha256 = "0k09316897qb9ypkqm6w78nz7sj5385xfdm9bm97m8pka7v61g7h";
|
||||
version = "1.28.1";
|
||||
sha256 = "03phnbsc45i0r799ni9br7s4qjy05fczbca64jd0sr4jhzi7qmlx";
|
||||
};
|
||||
|
||||
atom-beta = {
|
||||
version = "1.29.0-beta0";
|
||||
sha256 = "05xk63wsjfssf8ckph2bgrxaf99fhz3gs8n8pira8cc9yjk7diz7";
|
||||
version = "1.29.0-beta1";
|
||||
sha256 = "121y716pnq4vpjrymr505prskvi5a2lnn8hw79q8b4hf7yz0j6rb";
|
||||
};
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig
|
||||
{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
|
||||
, libgnome-keyring3, gdk_pixbuf, gvfs, cairo, cups, expat, libgpgerror, nspr
|
||||
, gconf, nss, xorg, libcap, systemd, libnotify, libsecret
|
||||
}:
|
||||
|
||||
let
|
||||
packages = [
|
||||
stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
|
||||
stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
|
||||
fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
|
||||
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
|
||||
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "edbrowse-${version}";
|
||||
version = "3.7.3";
|
||||
version = "3.7.4";
|
||||
|
||||
buildInputs = [ curl pcre readline openssl duktape perl html-tidy ];
|
||||
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "CMB";
|
||||
repo = "edbrowse";
|
||||
rev = "v${version}";
|
||||
sha256 = "19qdxigp0qv5vyy0hpn0czcc8papvivsjrxx7p367ihizm39yzla";
|
||||
sha256 = "0i9ivyfy1dd16c89f392kwx6wxgkkpyq2hl32jhzra0fb0zyl0k6";
|
||||
};
|
||||
meta = with stdenv.lib; {
|
||||
description = "Command Line Editor Browser";
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchFromGitHub, emacs, python }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.8.1";
|
||||
version = "0.8.4";
|
||||
name = "cask-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cask";
|
||||
repo = "cask";
|
||||
rev = "v${version}";
|
||||
sha256 = "1sl094adnchjvf189c3l1njawrj5ww1sv5vvjr9hb1ng2rw20z7b";
|
||||
sha256 = "1p37lq8xpyq0rc7phxgsw3b73h8vf9rkpa5959rb5k46w6ps9686";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs python ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "focuswriter-${version}";
|
||||
version = "1.6.13";
|
||||
version = "1.6.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
|
||||
sha256 = "1qs9v5r88scahpyw8ndr622fdnaib9789jvl2jnkwi62zcivbf6n";
|
||||
sha256 = "1n8ni4bnw5vs7jx28v8r1vk69g2m1q5h9s6xpf8c0bxbcwwg2m5i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig qmake qttools ];
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ghostwriter";
|
||||
version = "1.6.2";
|
||||
version = "1.7.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wereturtle";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0251563zy0q69fzfacvalpx43y15cshb0bhshyd4w37061gh1c12";
|
||||
sha256 = "00nlk5gazlfnndanhhjj5hlvkkp9yfx5mj6jq0jz37mk8mn6rzln";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake pkgconfig ];
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, buildPythonApplication, fetchFromGitHub
|
||||
, gdk_pixbuf, glib, gtk3, pango, webkitgtk
|
||||
, gdk_pixbuf, glib, gobjectIntrospection, gtk3, pango, webkitgtk
|
||||
, pygobject3, pyyaml
|
||||
}:
|
||||
|
||||
@ -17,6 +17,8 @@ buildPythonApplication rec {
|
||||
# We have not packaged tests.
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [ gobjectIntrospection ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
gdk_pixbuf glib gtk3 pango webkitgtk
|
||||
pygobject3 pyyaml
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "texstudio";
|
||||
version = "2.12.8";
|
||||
version = "2.12.10";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "${pname}-org";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0f1az7398rnxmm3m9b2jcz7pd9x445fjsv8w85k2j261n5cyfqx2";
|
||||
sha256 = "0mkx7fym41hwd7cdg31ji2hxlv3gxx0sa6bnap51ryxmq8sxdjhq";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qt5.qmake pkgconfig ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.1.0001";
|
||||
version = "8.1.0146";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "056h9cyysyh6hqsr1s9xg94la554f56lwnpk87g013xmqf37bna6";
|
||||
sha256 = "1v33h08j15zii0ipw5py18ghsaxlbar0nyx365z1acjhk4vhn9nb";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem,
|
||||
makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
|
||||
gtk2, makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
|
||||
|
||||
let
|
||||
version = "1.24.1";
|
||||
version = "1.25.0";
|
||||
channel = "stable";
|
||||
|
||||
plat = {
|
||||
@ -12,15 +12,16 @@ let
|
||||
}.${stdenv.system};
|
||||
|
||||
sha256 = {
|
||||
"i686-linux" = "189chqdimijjzydb8sp3yyi19fijsivyxrdddy8raaj7qkwq0maa";
|
||||
"x86_64-linux" = "1944v54pfpfkq5jjnfrhndcwndsnvavd9qih1i2pq16mgaizmib2";
|
||||
"x86_64-darwin" = "09sn22j40hax9v6ai99pfj67ymzkk82yqf8j33bg8byk4fgrz9jg";
|
||||
"i686-linux" = "1dgn9swqax54pn5ykk97zdkkzyj46jambmnkb67cn44p29bw9s9m";
|
||||
"x86_64-linux" = "0w2lzif7iilibvwhvg13gxarwz41qsb72s8hvj87mk5iqfdms1px";
|
||||
"x86_64-darwin" = "08xhwvggflzh9lfc5s3jgrqb49yz4jdfii8sfq6v8w3c6yy8cdly";
|
||||
}.${stdenv.system};
|
||||
|
||||
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
|
||||
|
||||
rpath = lib.concatStringsSep ":" [
|
||||
atomEnv.libPath
|
||||
"${lib.makeLibraryPath [gtk2]}"
|
||||
"${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0"
|
||||
"${lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1"
|
||||
"${lib.makeLibraryPath [libxkbfile]}/libxkbfile.so.1"
|
||||
|
24
pkgs/applications/gis/whitebox-tools/default.nix
Normal file
24
pkgs/applications/gis/whitebox-tools/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, rustPlatform , fetchFromGitHub, Security }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
name = "whitebox_tools-${version}";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jblindsay";
|
||||
repo = "whitebox-tools";
|
||||
rev = "6221cdf327be70f0ee4f2053b76bfa01c3f37caa";
|
||||
sha256 = "1423ga964mz7qkl88vkcm8qfprsksx04aq4sz9v5ghnmdzzvl89x";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
|
||||
|
||||
cargoSha256 = "1gbgirng21ak0kl3fiyr6lxwzrjd5v79gcrbzf941nb8y8rlvz7k";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An advanced geospatial data analysis platform";
|
||||
homepage = http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html;
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.mpickering ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -14,8 +14,8 @@ let
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "7.0.8-2";
|
||||
sha256 = "06cpvvv8xikw5jm1pa2xxxlnsy743ham67yshpndn2x3fyf48267";
|
||||
version = "7.0.8-6";
|
||||
sha256 = "1v7m1g9a7fqc8nravvv3dy54nzd3ip75hcnkdrpb5wbiz9pqgzi3";
|
||||
patches = [];
|
||||
};
|
||||
in
|
||||
|
@ -1,7 +1,5 @@
|
||||
{ stdenv, fetchurl, pkgconfig, fltk, openexr, libGLU_combined, openexr_ctl }:
|
||||
|
||||
assert fltk.glSupport;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name ="openexr_viewers-2.2.1";
|
||||
|
||||
@ -14,14 +12,14 @@ stdenv.mkDerivation {
|
||||
./configure --prefix=$out --with-fltk-config=${fltk}/bin/fltk-config
|
||||
'';
|
||||
|
||||
buildPahse = ''
|
||||
buildPhase = ''
|
||||
make LDFLAGS="`fltk-config --ldflags` -lGL -lfltk_gl"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ openexr fltk libGLU_combined openexr_ctl ];
|
||||
|
||||
meta = {
|
||||
meta = {
|
||||
description = "Application for viewing OpenEXR images on a display at various exposure settings";
|
||||
homepage = http://openexr.com;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
|
@ -3,11 +3,11 @@
|
||||
, epoxy, poppler, mesa_noglu, lirc }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "fbida-2.13";
|
||||
name = "fbida-2.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dl.bytesex.org/releases/fbida/${name}.tar.gz";
|
||||
sha256 = "01yv4qqqfbz9v281y2jlxhxdym3ricyb0zkqkgp5b40qrmfik1x8";
|
||||
sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig which ];
|
||||
@ -17,12 +17,12 @@ stdenv.mkDerivation rec {
|
||||
mesa_noglu
|
||||
];
|
||||
|
||||
makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" ];
|
||||
makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" "JPEG_VER=62" ];
|
||||
|
||||
patchPhase =
|
||||
''
|
||||
patchPhase = ''
|
||||
sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
|
||||
'';
|
||||
sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Image viewing and manipulation programs";
|
||||
|
@ -6,11 +6,11 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "feh-${version}";
|
||||
version = "2.26.4";
|
||||
version = "2.27";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://feh.finalrewind.org/${name}.tar.bz2";
|
||||
sha256 = "15a7hjg7xwj1hsw3c5k18psvvmbqgn4g79qq03bsvibzl4kqakq7";
|
||||
sha256 = "0kn6cka9m76697i495npd60ad64jnfnzv5z6znzyr0vlxx2nhcmg";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" "doc" ];
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, cmake, coin3d, xercesc, ode, eigen, qt4, opencascade, gts
|
||||
, hdf5, vtk, medfile, boost, zlib, python27Packages, swig, gfortran, fetchpatch
|
||||
, hdf5, vtk, medfile, zlib, python27Packages, swig, gfortran, fetchpatch
|
||||
, soqt, libf2c, makeWrapper, makeDesktopItem
|
||||
, mpi ? null }:
|
||||
|
||||
@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
|
||||
sha256 = "1yv6abdzlpn4wxy315943xwrnbywxqfgkjib37qwfvbb8y9p60df";
|
||||
};
|
||||
|
||||
buildInputs = with pythonPackages; [ cmake coin3d xercesc ode eigen qt4 opencascade gts
|
||||
buildInputs = [ cmake coin3d xercesc ode eigen qt4 opencascade gts
|
||||
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
|
||||
] ++ (with pythonPackages; [
|
||||
matplotlib pycollada pyside pysideShiboken pysideTools pivy python boost
|
||||
|
@ -9,11 +9,11 @@ let
|
||||
inherit (python2Packages) pygtk wrapPython python;
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "gimp-${version}";
|
||||
version = "2.10.2";
|
||||
version = "2.10.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.gimp.org/pub/gimp/v${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2";
|
||||
sha256 = "1srkqd9cx1xmny7cyk3b6f14dknb3fd77whm38vlvr7grnpbmc0w";
|
||||
sha256 = "14pi0q3wwkapy0inqxk1hjsa2h8lff1z4wgdsyrk29jaw66pdc7z";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig intltool gettext wrapPython ];
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "graphicsmagick-${version}";
|
||||
version = "1.3.29";
|
||||
version = "1.3.30";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
|
||||
sha256 = "1m0cc6kpky06lpcipj7rfwc2jbw2igr0jk97zqmw3j1ld5mg93g1";
|
||||
sha256 = "1warar0731xf94r4bn5x1km85rjabl4iq8r0dk3ywmczap3farfr";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -18,12 +18,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.8.1";
|
||||
version = "3.10.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nomacs";
|
||||
repo = "nomacs";
|
||||
rev = version;
|
||||
sha256 = "1irms980d7acdqrfn8isw55vgc4d9n26ff86887vk7xfvxs0ayla";
|
||||
sha256 = "07k921r4m6p5kicyb55zdfp58m8mlc94g2csq354d7v20m71zwrv";
|
||||
};
|
||||
|
||||
name = "nomacs-${version}";
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "scantailor-advanced-${version}";
|
||||
version = "1.0.14";
|
||||
version = "1.0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "4lex4";
|
||||
repo = "scantailor-advanced";
|
||||
rev = "v${version}";
|
||||
sha256 = "1h7lng0hxkjcvwbdf1yx59a382kiwn9bpll42acqs71nsvw65p28";
|
||||
sha256 = "031jqk64ig6lmscl5yg5lp116zwn0jl7xs9rlniqf6a8g4wfbjk9";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake qttools ];
|
||||
|
52
pkgs/applications/graphics/write_stylus/default.nix
Normal file
52
pkgs/applications/graphics/write_stylus/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ stdenv, lib, qtbase, qtsvg, makeWrapper, fetchurl, makeDesktopItem }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "write_stylus-${version}";
|
||||
version = "209";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "Write";
|
||||
exec = "Write";
|
||||
comment = "a word processor for hadwriting";
|
||||
desktopName = "Write";
|
||||
genericName = "Write";
|
||||
categories = "Office;Graphics";
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.styluslabs.com/write/write${version}.tar.gz";
|
||||
sha256 = "1p6glp4vdpwl8hmhypayc4cvs3j9jfmjfhhrgqm2xkgl5bfbv2qd";
|
||||
};
|
||||
sourceRoot = ".";
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -R Write $out/
|
||||
# symlink the binary to bin/
|
||||
ln -s $out/Write/Write $out/bin/Write
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
ln -s ${desktopItem}/share/applications/* $out/share/applications/
|
||||
'';
|
||||
preFixup = let
|
||||
libPath = lib.makeLibraryPath [
|
||||
qtbase # libQt5PrintSupport.so.5
|
||||
qtsvg # libQt5Svg.so.5
|
||||
stdenv.cc.cc.lib # libstdc++.so.6
|
||||
];
|
||||
in ''
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${libPath}" \
|
||||
$out/Write/Write
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.styluslabs.com/;
|
||||
description = "Write is a word processor for handwriting.";
|
||||
platforms = platforms.linux;
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
maintainers = with maintainers; [ oyren ];
|
||||
};
|
||||
}
|
@ -92,6 +92,10 @@ in buildRustPackage rec {
|
||||
patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
|
||||
'') + ''
|
||||
|
||||
install -D alacritty-completions.zsh "$out/share/zsh/site-functions/_alacritty"
|
||||
install -D alacritty-completions.bash "$out/etc/bash_completion.d/alacritty-completions.bash"
|
||||
install -D alacritty-completions.fish "$out/share/fish/vendor_completions.d/alacritty.fish"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
@ -5,12 +5,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.26.1";
|
||||
version = "3.27.1";
|
||||
name = "calibre-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||
sha256 = "0i53095g6wl3ghhpzfrvizj24b8zxbxs1c7bvcj3fpkf43wd45j0";
|
||||
sha256 = "0hmdlnwrfql2b675xmjf50hnnrrkv5jbky0ssdpyfjfa5vxya2bh";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -4,11 +4,11 @@ with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "cherrytree-${version}";
|
||||
version = "0.38.4";
|
||||
version = "0.38.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.giuspen.com/software/${name}.tar.xz";
|
||||
sha256 = "1zazyxkrli77wahn4c1z24qyz5bwlayl335f2kdxb44dicrx58g2";
|
||||
sha256 = "1ja3b14vm3yd26pf82p2qlld0flqkqvgdg2g33r5dav6wfq3pz6y";
|
||||
};
|
||||
|
||||
buildInputs = with pythonPackages;
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "chirp-daily-${version}";
|
||||
version = "20180614";
|
||||
version = "20180707";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${name}.tar.gz";
|
||||
sha256 = "011bxd418hrl88rhp6lhja68b2kvnm1b845v41g9qfsagvfmbv3g";
|
||||
sha256 = "09siq74k0ss65ssck7i7h515dxp7fhdz5klc3y0yp9wajn706ic3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -4,21 +4,21 @@ let
|
||||
pythonPackages = python3.pkgs;
|
||||
|
||||
in pythonPackages.buildPythonApplication rec {
|
||||
name = "coursera-dl-${version}";
|
||||
version = "0.10.0";
|
||||
pname = "coursera-dl";
|
||||
version = "0.11.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coursera-dl";
|
||||
repo = "coursera-dl";
|
||||
rev = version;
|
||||
sha256 = "0m3f6ly8c3mkb8yy2y398afswqgy17rz159s1054wzxpb4f85zlb";
|
||||
sha256 = "0dn7a6s98dwba62r0dyabq8pryzga4b2wpx88i9bmp7ja1b1f92f";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pythonPackages; [ pandoc ];
|
||||
|
||||
buildInputs = with pythonPackages; [ glibcLocales ];
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ beautifulsoup4 ConfigArgParse keyring pyasn1 requests six urllib3 ];
|
||||
propagatedBuildInputs = with pythonPackages; [ attrs beautifulsoup4 ConfigArgParse keyring pyasn1 requests six urllib3 ];
|
||||
|
||||
checkInputs = with pythonPackages; [ pytest mock ];
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, makeWrapper
|
||||
, pkgconfig, which, perl, libXrandr
|
||||
, cairo, dbus, systemd, gdk_pixbuf, glib, libX11, libXScrnSaver
|
||||
, libXinerama, libnotify, libxdg_basedir, pango, xproto, librsvg
|
||||
, libXinerama, libnotify, libxdg_basedir, pango, xproto, librsvg, dunstify ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -31,7 +31,11 @@ stdenv.mkDerivation rec {
|
||||
"SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
buildFlags = if dunstify then [ "dunstify" ] else [];
|
||||
|
||||
postInstall = stdenv.lib.optionalString dunstify ''
|
||||
install -Dm755 dunstify $out/bin
|
||||
'' + ''
|
||||
wrapProgram $out/bin/dunst \
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
|
||||
'';
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ stdenv, fetchurl, postgresql, makeWrapper }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ephemeralpg-${version}";
|
||||
version = "2.2";
|
||||
version = "2.5";
|
||||
src = fetchurl {
|
||||
url = "http://ephemeralpg.org/code/${name}.tar.gz";
|
||||
sha256 = "1v48bcmc23zzqbha80p3spxd5l347qnjzs4z44wl80i2s8fdzlyz";
|
||||
sha256 = "004fcll7248h73adkqawn9bhkqj9wsxyi3w99x64f7s37r2518wk";
|
||||
};
|
||||
buildInputs = [ makeWrapper ];
|
||||
installPhase = ''
|
||||
|
105
pkgs/applications/misc/glava/default.nix
Normal file
105
pkgs/applications/misc/glava/default.nix
Normal file
@ -0,0 +1,105 @@
|
||||
{ stdenv, fetchurl, writeScript, fetchFromGitHub
|
||||
, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite
|
||||
, enableGlfw ? false, glfw }:
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optional makeLibraryPath;
|
||||
|
||||
version = "1.4.5";
|
||||
gladVersion = "0.1.24";
|
||||
# glad
|
||||
# https://github.com/wacossusca34/glava/issues/46#issuecomment-397816520
|
||||
glad = fetchFromGitHub {
|
||||
owner = "Dav1dde";
|
||||
repo = "glad";
|
||||
rev = "v${gladVersion}";
|
||||
sha256 = "0s2c9w064kqa5i07w8zmvgpg1pa3wj86l1nhgw7w56cjhq7cf8h8";
|
||||
};
|
||||
# gl.xml
|
||||
gl = fetchurl {
|
||||
url = https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/a24f3f7a4c924fdbc666024f99c70e5b8e34c819/xml/gl.xml;
|
||||
sha256 = "1mskxjmhb35m8qv255pibf633d8sn1w9rdsf0lj75bhlgy0zi5c7";
|
||||
};
|
||||
# EGL 1.5
|
||||
egl = fetchurl {
|
||||
url = https://www.khronos.org/registry/EGL/api/KHR/khrplatform.h;
|
||||
sha256 = "0p0vs4siiya05cvbqq7cw3ci2zvvlfh8kycgm9k9cwvmrkj08349";
|
||||
};
|
||||
|
||||
wrapperScript = writeScript "glava" ''
|
||||
#!${stdenv.shell}
|
||||
case "$1" in
|
||||
--copy-config)
|
||||
# The binary would symlink it, which won't work in Nix because the
|
||||
# garbage collector will eventually remove the original files after
|
||||
# updates
|
||||
echo "Nix wrapper: Copying glava config to ~/.config/glava"
|
||||
cp -r --no-preserve=all @out@/etc/xdg/glava ~/.config/glava
|
||||
;;
|
||||
*)
|
||||
exec @out@/bin/.glava-unwrapped "$@"
|
||||
esac
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "glava-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wacossusca34";
|
||||
repo = "glava";
|
||||
rev = "v${version}";
|
||||
sha256 = "1zfw8samrzxxbny709rcdz1z77cw1cd46wlfnf7my02kipmqn0nr";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXext
|
||||
libXrandr
|
||||
libXrender
|
||||
libpulseaudio
|
||||
libXcomposite
|
||||
] ++ optional enableGlfw glfw;
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
cp -r --no-preserve=all ${glad}/* glad
|
||||
mkdir -p glad/include/KHR
|
||||
|
||||
cp ${gl} glad/gl.xml
|
||||
cp ${egl} glad/include/KHR/khrplatform.h
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
makeFlags = optional (!enableGlfw) "DISABLE_GLFW=1";
|
||||
|
||||
installFlags = [
|
||||
"DESTDIR=$(out)"
|
||||
];
|
||||
|
||||
fixupPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv $out/usr/bin/glava $out/bin/.glava-unwrapped
|
||||
rm -rf $out/usr
|
||||
|
||||
patchelf $out/bin/.glava-unwrapped \
|
||||
--set-rpath "$(patchelf --print-rpath $out/bin/.glava-unwrapped):${makeLibraryPath [ libGL ]}" \
|
||||
|
||||
substitute ${wrapperScript} $out/bin/glava --subst-var out
|
||||
chmod +x $out/bin/glava
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = ''
|
||||
OpenGL audio spectrum visualizer
|
||||
'';
|
||||
homepage = https://github.com/wacossusca34/glava;
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [
|
||||
eadwu
|
||||
];
|
||||
};
|
||||
}
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "IPMIView-${version}";
|
||||
version = "2.13.0";
|
||||
buildVersion = "170504";
|
||||
version = "2.14.0";
|
||||
buildVersion = "180213";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
|
||||
sha256 = "1hfw5g6lxg3vqg0nc3g2sv2h6bn8za35bxxms0ri0sgb9v3xg1y6";
|
||||
sha256 = "1wp22wm7smlsb25x0cck4p660cycfczxj381930crd1qrf68mw4h";
|
||||
};
|
||||
|
||||
buildInputs = [ patchelf makeWrapper ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jgmenu-${version}";
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "johanmalm";
|
||||
repo = "jgmenu";
|
||||
rev = "v${version}";
|
||||
sha256 = "068mm0b2npz6qh9j8m9xd8sbznjp5g195vfav8a6016wgm6fhrx7";
|
||||
sha256 = "0hnxzy5mm5z6r9gaimfsf7kbpr23khck2fhh3j8bk2lkp53420fz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, bash, jre8 }:
|
||||
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, bash, jre10 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "josm-${version}";
|
||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1j98wxw84f5rf3finr38bkr1sh9ckah8pmhmxyhmcw2rxf1mv9bf";
|
||||
};
|
||||
|
||||
buildInputs = [ jre8 makeWrapper ];
|
||||
buildInputs = [ jre10 makeWrapper ];
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "josm";
|
||||
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
mkdir -p $out/bin $out/share/java
|
||||
cp -v $src $out/share/java/josm.jar
|
||||
|
||||
makeWrapper ${jre8}/bin/java $out/bin/josm \
|
||||
makeWrapper ${jre10}/bin/java $out/bin/josm \
|
||||
--add-flags "-jar $out/share/java/josm.jar"
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
|
@ -1,11 +1,13 @@
|
||||
{ stdenv, fetchFromGitHub, pkgs, python3Packages, glfw, libunistring, harfbuzz,
|
||||
fontconfig, zlib, pkgconfig, ncurses, imagemagick, makeWrapper, xsel,
|
||||
libstartup_notification, libX11, libXrandr, libXinerama, libXcursor,
|
||||
libxkbcommon, libXi, libXext }:
|
||||
libxkbcommon, libXi, libXext, wayland-protocols, wayland,
|
||||
which
|
||||
}:
|
||||
|
||||
with python3Packages;
|
||||
buildPythonApplication rec {
|
||||
version = "0.10.1";
|
||||
version = "0.11.2";
|
||||
name = "kitty-${version}";
|
||||
format = "other";
|
||||
|
||||
@ -13,19 +15,24 @@ buildPythonApplication rec {
|
||||
owner = "kovidgoyal";
|
||||
repo = "kitty";
|
||||
rev = "v${version}";
|
||||
sha256 = "1xwrrj0g70hh8zsjbd05x0js776xlf7c6mdsmrqlw4y7jfnlgl45";
|
||||
sha256 = "0vmxgyxrgaqijwd51ldd8pkz7jn9hdcfib1dqr0ai614286v69hw";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
fontconfig glfw ncurses libunistring harfbuzz libX11
|
||||
libXrandr libXinerama libXcursor libxkbcommon libXi libXext
|
||||
wayland-protocols wayland
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
nativeBuildInputs = [ pkgconfig which sphinx ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace kitty/utils.py \
|
||||
--replace "find_library('startup-notification-1')" "'${libstartup_notification}/lib/libstartup-notification-1.so'"
|
||||
|
||||
substituteInPlace docs/Makefile \
|
||||
--replace 'python3 .. +launch $(shell which sphinx-build)' \
|
||||
'PYTHONPATH=$PYTHONPATH:.. HOME=$TMPDIR/nowhere $(shell which sphinx-build)'
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
|
@ -10,7 +10,7 @@
|
||||
with lib;
|
||||
let
|
||||
pname = "orca";
|
||||
version = "3.28.1";
|
||||
version = "3.28.2";
|
||||
in buildPythonApplication rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
@ -18,7 +18,7 @@ in buildPythonApplication rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
|
||||
sha256 = "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g";
|
||||
sha256 = "08rh6ji680g5nrw2n7jrxrw7nwg04sj52jxffcfasgss2f51d38q";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
with pythonPackages;
|
||||
buildPythonApplication rec {
|
||||
version = "1.22.1";
|
||||
version = "1.23.0";
|
||||
name = "rtv-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "michael-lazar";
|
||||
repo = "rtv";
|
||||
rev = "v${version}";
|
||||
sha256 = "1jil8cwhnpf2mclgah7s79j4c38hzm0j6di2mffrqhlsnn2vxbf4";
|
||||
sha256 = "0i6iqj3ly1bgsfa9403m5190mfl9yk1x4ific3v31wqfja985nsr";
|
||||
};
|
||||
|
||||
# Tests try to access network
|
||||
|
@ -33,7 +33,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "slic3r-prusa-edition-${version}";
|
||||
version = "1.40.0";
|
||||
version = "1.40.1";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@ -92,7 +92,7 @@ stdenv.mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "prusa3d";
|
||||
repo = "Slic3r";
|
||||
sha256 = "1cisplrfv6y9ijgl5bs46bxxmid5hl71hjzl73bay2i2bl8hid2f";
|
||||
sha256 = "022mdz8824wg68qwgd49gnplw7wn84hqw113xh8l25v3j1jb9zmc";
|
||||
rev = "version_${version}";
|
||||
};
|
||||
|
||||
|
24
pkgs/applications/misc/termite/add_errno_header.patch
Normal file
24
pkgs/applications/misc/termite/add_errno_header.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 95c90f302c384f410dc92e64468ac7061b57fe2d Mon Sep 17 00:00:00 2001
|
||||
From: Michael Hoang <enzime@users.noreply.github.com>
|
||||
Date: Fri, 13 Jul 2018 19:03:09 +1000
|
||||
Subject: [PATCH] Add errno.h header which isn't always included automatically.
|
||||
|
||||
---
|
||||
termite.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/termite.cc b/termite.cc
|
||||
index 160fe82..13e2572 100644
|
||||
--- a/termite.cc
|
||||
+++ b/termite.cc
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <cmath>
|
||||
+#include <errno.h>
|
||||
#include <functional>
|
||||
#include <limits>
|
||||
#include <map>
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchgit, pkgconfig, vte, gtk3, ncurses, makeWrapper, wrapGAppsHook, symlinkJoin
|
||||
{ stdenv, fetchFromGitHub, lib, pkgconfig, vte, gtk3, ncurses, makeWrapper, wrapGAppsHook, symlinkJoin
|
||||
, configFile ? null
|
||||
}:
|
||||
|
||||
@ -7,16 +7,17 @@ let
|
||||
termite = stdenv.mkDerivation {
|
||||
name = "termite-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/thestinger/termite";
|
||||
rev = "refs/tags/v${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "thestinger";
|
||||
repo = "termite";
|
||||
rev = "v${version}";
|
||||
sha256 = "02cn70ygl93ghhkhs3xdxn5b1yadc255v3yp8cmhhyzsv5027hvj";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
# https://github.com/thestinger/termite/pull/516
|
||||
patches = [ ./url_regexp_trailing.patch ];
|
||||
|
||||
postPatch = "sed '1i#include <math.h>' -i termite.cc";
|
||||
patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch
|
||||
] ++ lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch;
|
||||
|
||||
makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
|
||||
|
||||
|
25
pkgs/applications/misc/termite/remove_ldflags_macos.patch
Normal file
25
pkgs/applications/misc/termite/remove_ldflags_macos.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 1b5a6934635c55472eb7949bd87ab3f45fa1b2f3 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Hoang <enzime@users.noreply.github.com>
|
||||
Date: Fri, 13 Jul 2018 19:01:51 +1000
|
||||
Subject: [PATCH] Remove --as-needed flag from ld to fix compilation on macOS.
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index b115f42..ab301ba 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -29,7 +29,7 @@ ifeq (${CXX}, clang++)
|
||||
CXXFLAGS += -Wimplicit-fallthrough
|
||||
endif
|
||||
|
||||
-LDFLAGS := -s -Wl,--as-needed ${LDFLAGS}
|
||||
+LDFLAGS := -s -Wl ${LDFLAGS}
|
||||
LDLIBS := ${shell pkg-config --libs ${GTK} ${VTE}}
|
||||
|
||||
termite: termite.cc url_regex.hh util/clamp.hh util/maybe.hh util/memory.hh
|
||||
--
|
||||
2.17.1
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
name = "urh-${version}";
|
||||
version = "2.1.1";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jopohl";
|
||||
repo = "urh";
|
||||
rev = "v${version}";
|
||||
sha256 = "1n8nkrydic2zkglz9hyrf28np3v42b4xwia068b29szivr9fmnrn";
|
||||
sha256 = "0ncvfl5iyngw3lr2g7awpskrrld6y0x7w0xyp827lcr7x73fvqgp";
|
||||
};
|
||||
|
||||
buildInputs = [ hackrf rtl-sdr ];
|
||||
|
@ -1,24 +1,16 @@
|
||||
{ stdenv, fetchurl, pythonPackages }:
|
||||
{ stdenv, fetchFromGitHub, pythonPackages }:
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
name = "wikicurses-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://github.com/ids1024/wikicurses/archive/v${version}.tar.gz";
|
||||
sha256 = "1yxgafk1sczg1xi2p6nhrvr3hchp7ydw98n48lp3qzwnryn1kxv8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ids1024";
|
||||
repo = "wikicurses";
|
||||
rev = "v${version}";
|
||||
sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This is necessary to build without a config file.
|
||||
# It can be safely removed after updating to wikicurses to 1.4
|
||||
# or when commit 4b944ac339312b642c6dc5d6b5a2f7be7503218f is included
|
||||
(fetchurl {
|
||||
url = "https://github.com/ids1024/wikicurses/commit/4b944ac339312b642c6dc5d6b5a2f7be7503218f.patch";
|
||||
sha256 = "0ii4b0c4hb1zdhcpp4ij908mfy5b8khpm1l7xr7lp314lfhsg9as";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
|
||||
|
||||
meta = {
|
||||
@ -26,6 +18,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
homepage = https://github.com/ids1024/wikicurses/;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ pSub ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -4,12 +4,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "wsjtx-${version}";
|
||||
version = "1.9.0";
|
||||
version = "1.9.1";
|
||||
|
||||
# This is a composite source tarball containing both wsjtx and a hamlib fork
|
||||
src = fetchurl {
|
||||
url = "http://physics.princeton.edu/pulsar/K1JT/wsjtx-${version}.tgz";
|
||||
sha256 = "1qxwiylnykh37kw780hh9xfphzbj8ndpfqz4xazld16v3qx2g0jc";
|
||||
sha256 = "143r17fri08mwz28g17wcfxy60h3xgfk46mln5lmdr9k6355aqqc";
|
||||
};
|
||||
|
||||
# Hamlib builds with autotools, wsjtx builds with cmake
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user