Merge branch 'master' into staging-next
This commit is contained in:
commit
3d8e436917
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -25,6 +25,12 @@ If applicable, add screenshots to help explain your problem.
|
|||||||
**Additional context**
|
**Additional context**
|
||||||
Add any other context about the problem here.
|
Add any other context about the problem here.
|
||||||
|
|
||||||
|
**Notify maintainers**
|
||||||
|
<!--
|
||||||
|
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||||
|
If in doubt, check `git blame` for whoever last touched something.
|
||||||
|
-->
|
||||||
|
|
||||||
**Metadata**
|
**Metadata**
|
||||||
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
|
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
|
||||||
|
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -16,3 +16,6 @@ result-*
|
|||||||
/pkgs/development/libraries/qt-5/*/tmp/
|
/pkgs/development/libraries/qt-5/*/tmp/
|
||||||
/pkgs/desktops/kde-5/*/tmp/
|
/pkgs/desktops/kde-5/*/tmp/
|
||||||
/pkgs/development/mobile/androidenv/xml/*
|
/pkgs/development/mobile/androidenv/xml/*
|
||||||
|
|
||||||
|
# generated by pkgs/common-updater/update-script.nix
|
||||||
|
update-git-commits.txt
|
||||||
|
@ -1295,7 +1295,7 @@ installTargets = "install-bin install-doc";</programlisting>
|
|||||||
</term>
|
</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to <literal>lib bin sbin</literal>.
|
List of directories to search for libraries and executables from which only debugging-related symbols should be stripped. It defaults to <literal>lib lib32 lib64 libexec bin sbin</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -191,7 +191,14 @@ rec {
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
|
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
|
||||||
(showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux"
|
(showOption ["foo" "bar.baz" "tux"]) == "foo.bar.baz.tux"
|
||||||
|
|
||||||
|
Placeholders will not be quoted as they are not actual values:
|
||||||
|
(showOption ["foo" "*" "bar"]) == "foo.*.bar"
|
||||||
|
(showOption ["foo" "<name>" "bar"]) == "foo.<name>.bar"
|
||||||
|
|
||||||
|
Unlike attributes, options can also start with numbers:
|
||||||
|
(showOption ["windowManager" "2bwm" "enable"]) == "windowManager.2bwm.enable"
|
||||||
*/
|
*/
|
||||||
showOption = parts: let
|
showOption = parts: let
|
||||||
escapeOptionPart = part:
|
escapeOptionPart = part:
|
||||||
|
@ -315,6 +315,21 @@ rec {
|
|||||||
*/
|
*/
|
||||||
escapeNixString = s: escape ["$"] (builtins.toJSON s);
|
escapeNixString = s: escape ["$"] (builtins.toJSON s);
|
||||||
|
|
||||||
|
/* Quotes a string if it can't be used as an identifier directly.
|
||||||
|
|
||||||
|
Type: string -> string
|
||||||
|
|
||||||
|
Example:
|
||||||
|
escapeNixIdentifier "hello"
|
||||||
|
=> "hello"
|
||||||
|
escapeNixIdentifier "0abc"
|
||||||
|
=> "\"0abc\""
|
||||||
|
*/
|
||||||
|
escapeNixIdentifier = s:
|
||||||
|
# Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91
|
||||||
|
if builtins.match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
|
||||||
|
then s else escapeNixString s;
|
||||||
|
|
||||||
# Obsolete - use replaceStrings instead.
|
# Obsolete - use replaceStrings instead.
|
||||||
replaceChars = builtins.replaceStrings or (
|
replaceChars = builtins.replaceStrings or (
|
||||||
del: new: s:
|
del: new: s:
|
||||||
|
75
lib/tests/maintainers.nix
Normal file
75
lib/tests/maintainers.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# to run these tests:
|
||||||
|
# nix-build nixpkgs/lib/tests/maintainers.nix
|
||||||
|
# If nothing is output, all tests passed
|
||||||
|
{ pkgs ? import ../.. {} }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs) lib;
|
||||||
|
inherit (lib) types;
|
||||||
|
|
||||||
|
maintainerModule = { config, ... }: {
|
||||||
|
options = {
|
||||||
|
name = lib.mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
email = lib.mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
github = lib.mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
githubId = lib.mkOption {
|
||||||
|
type = types.nullOr types.ints.unsigned;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
keys = lib.mkOption {
|
||||||
|
type = types.listOf (types.submodule {
|
||||||
|
options.longkeyid = lib.mkOption { type = types.str; };
|
||||||
|
options.fingerprint = lib.mkOption { type = types.str; };
|
||||||
|
});
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
checkMaintainer = handle: uncheckedAttrs:
|
||||||
|
let
|
||||||
|
prefix = [ "lib" "maintainers" handle ];
|
||||||
|
checkedAttrs = (lib.modules.evalModules {
|
||||||
|
inherit prefix;
|
||||||
|
modules = [
|
||||||
|
maintainerModule
|
||||||
|
{
|
||||||
|
_file = toString ../../maintainers/maintainer-list.nix;
|
||||||
|
config = uncheckedAttrs;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}).config;
|
||||||
|
|
||||||
|
checkGithubId = lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) ''
|
||||||
|
echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.'
|
||||||
|
# Calling this too often would hit non-authenticated API limits, but this
|
||||||
|
# shouldn't happen since such errors will get fixed rather quickly
|
||||||
|
info=$(curl -sS https://api.github.com/users/${checkedAttrs.github})
|
||||||
|
id=$(jq -r '.id' <<< "$info")
|
||||||
|
echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:"
|
||||||
|
echo -e " githubId = $id;\n"
|
||||||
|
'';
|
||||||
|
in lib.deepSeq checkedAttrs checkGithubId;
|
||||||
|
|
||||||
|
missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers);
|
||||||
|
|
||||||
|
success = pkgs.runCommandNoCC "checked-maintainers-success" {} ">$out";
|
||||||
|
|
||||||
|
failure = pkgs.runCommandNoCC "checked-maintainers-failure" {
|
||||||
|
nativeBuildInputs = [ pkgs.curl pkgs.jq ];
|
||||||
|
outputHash = "sha256:${lib.fakeSha256}";
|
||||||
|
outputHAlgo = "sha256";
|
||||||
|
outputHashMode = "flat";
|
||||||
|
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
} ''
|
||||||
|
${lib.concatStringsSep "\n" missingGithubIds}
|
||||||
|
exit 1
|
||||||
|
'';
|
||||||
|
in if missingGithubIds == [] then success else failure
|
@ -3,7 +3,10 @@
|
|||||||
# This script is used to test that the module system is working as expected.
|
# This script is used to test that the module system is working as expected.
|
||||||
# By default it test the version of nixpkgs which is defined in the NIX_PATH.
|
# By default it test the version of nixpkgs which is defined in the NIX_PATH.
|
||||||
|
|
||||||
cd ./modules
|
# https://stackoverflow.com/a/246128/6605742
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
|
cd "$DIR"/modules
|
||||||
|
|
||||||
pass=0
|
pass=0
|
||||||
fail=0
|
fail=0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ pkgs ? import ((import ../.).cleanSource ../..) {} }:
|
{ pkgs ? import ../.. {} }:
|
||||||
|
|
||||||
pkgs.runCommandNoCC "nixpkgs-lib-tests" {
|
pkgs.runCommandNoCC "nixpkgs-lib-tests" {
|
||||||
buildInputs = [ pkgs.nix (import ./check-eval.nix) ];
|
buildInputs = [ pkgs.nix (import ./check-eval.nix) (import ./maintainers.nix { inherit pkgs; }) ];
|
||||||
NIX_PATH = "nixpkgs=${toString pkgs.path}";
|
NIX_PATH = "nixpkgs=${toString pkgs.path}";
|
||||||
} ''
|
} ''
|
||||||
datadir="${pkgs.nix}/share"
|
datadir="${pkgs.nix}/share"
|
||||||
@ -17,8 +17,8 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
|
|||||||
cacheDir=$TEST_ROOT/binary-cache
|
cacheDir=$TEST_ROOT/binary-cache
|
||||||
nix-store --init
|
nix-store --init
|
||||||
|
|
||||||
cd ${pkgs.path}/lib/tests
|
cp -r ${../.} lib
|
||||||
bash ./modules.sh
|
bash lib/tests/modules.sh
|
||||||
|
|
||||||
touch $out
|
touch $out
|
||||||
''
|
''
|
||||||
|
@ -100,6 +100,7 @@
|
|||||||
abbradar = {
|
abbradar = {
|
||||||
email = "ab@fmap.me";
|
email = "ab@fmap.me";
|
||||||
github = "abbradar";
|
github = "abbradar";
|
||||||
|
githubId = 1174810;
|
||||||
name = "Nikolay Amiantov";
|
name = "Nikolay Amiantov";
|
||||||
};
|
};
|
||||||
abhi18av = {
|
abhi18av = {
|
||||||
@ -135,6 +136,7 @@
|
|||||||
acairncross = {
|
acairncross = {
|
||||||
email = "acairncross@gmail.com";
|
email = "acairncross@gmail.com";
|
||||||
github = "acairncross";
|
github = "acairncross";
|
||||||
|
githubId = 1517066;
|
||||||
name = "Aiken Cairncross";
|
name = "Aiken Cairncross";
|
||||||
};
|
};
|
||||||
acowley = {
|
acowley = {
|
||||||
@ -146,6 +148,7 @@
|
|||||||
adamt = {
|
adamt = {
|
||||||
email = "mail@adamtulinius.dk";
|
email = "mail@adamtulinius.dk";
|
||||||
github = "adamtulinius";
|
github = "adamtulinius";
|
||||||
|
githubId = 749381;
|
||||||
name = "Adam Tulinius";
|
name = "Adam Tulinius";
|
||||||
};
|
};
|
||||||
adelbertc = {
|
adelbertc = {
|
||||||
@ -229,6 +232,7 @@
|
|||||||
aforemny = {
|
aforemny = {
|
||||||
email = "alexanderforemny@googlemail.com";
|
email = "alexanderforemny@googlemail.com";
|
||||||
github = "aforemny";
|
github = "aforemny";
|
||||||
|
githubId = 610962;
|
||||||
name = "Alexander Foremny";
|
name = "Alexander Foremny";
|
||||||
};
|
};
|
||||||
afranchuk = {
|
afranchuk = {
|
||||||
@ -276,6 +280,7 @@
|
|||||||
ak = {
|
ak = {
|
||||||
email = "ak@formalprivacy.com";
|
email = "ak@formalprivacy.com";
|
||||||
github = "alexanderkjeldaas";
|
github = "alexanderkjeldaas";
|
||||||
|
githubId = 339369;
|
||||||
name = "Alexander Kjeldaas";
|
name = "Alexander Kjeldaas";
|
||||||
};
|
};
|
||||||
akavel = {
|
akavel = {
|
||||||
@ -383,6 +388,7 @@
|
|||||||
alunduil = {
|
alunduil = {
|
||||||
email = "alunduil@gmail.com";
|
email = "alunduil@gmail.com";
|
||||||
github = "alunduil";
|
github = "alunduil";
|
||||||
|
githubId = 169249;
|
||||||
name = "Alex Brandt";
|
name = "Alex Brandt";
|
||||||
};
|
};
|
||||||
alva = {
|
alva = {
|
||||||
@ -404,6 +410,7 @@
|
|||||||
ambrop72 = {
|
ambrop72 = {
|
||||||
email = "ambrop7@gmail.com";
|
email = "ambrop7@gmail.com";
|
||||||
github = "ambrop72";
|
github = "ambrop72";
|
||||||
|
githubId = 2626481;
|
||||||
name = "Ambroz Bizjak";
|
name = "Ambroz Bizjak";
|
||||||
};
|
};
|
||||||
amiddelk = {
|
amiddelk = {
|
||||||
@ -473,11 +480,13 @@
|
|||||||
andreabedini = {
|
andreabedini = {
|
||||||
email = "andrea@kzn.io";
|
email = "andrea@kzn.io";
|
||||||
github = "andreabedini";
|
github = "andreabedini";
|
||||||
|
githubId = 69135;
|
||||||
name = "Andrea Bedini";
|
name = "Andrea Bedini";
|
||||||
};
|
};
|
||||||
andres = {
|
andres = {
|
||||||
email = "ksnixos@andres-loeh.de";
|
email = "ksnixos@andres-loeh.de";
|
||||||
github = "kosmikus";
|
github = "kosmikus";
|
||||||
|
githubId = 293191;
|
||||||
name = "Andres Loeh";
|
name = "Andres Loeh";
|
||||||
};
|
};
|
||||||
andrestylianos = {
|
andrestylianos = {
|
||||||
@ -507,6 +516,7 @@
|
|||||||
andsild = {
|
andsild = {
|
||||||
email = "andsild@gmail.com";
|
email = "andsild@gmail.com";
|
||||||
github = "andsild";
|
github = "andsild";
|
||||||
|
githubId = 3808928;
|
||||||
name = "Anders Sildnes";
|
name = "Anders Sildnes";
|
||||||
};
|
};
|
||||||
aneeshusa = {
|
aneeshusa = {
|
||||||
@ -560,6 +570,7 @@
|
|||||||
antono = {
|
antono = {
|
||||||
email = "self@antono.info";
|
email = "self@antono.info";
|
||||||
github = "antono";
|
github = "antono";
|
||||||
|
githubId = 7622;
|
||||||
name = "Antono Vasiljev";
|
name = "Antono Vasiljev";
|
||||||
};
|
};
|
||||||
antonxy = {
|
antonxy = {
|
||||||
@ -742,7 +753,8 @@
|
|||||||
};
|
};
|
||||||
auntie = {
|
auntie = {
|
||||||
email = "auntieNeo@gmail.com";
|
email = "auntieNeo@gmail.com";
|
||||||
github = "auntie";
|
github = "auntieNeo";
|
||||||
|
githubId = 574938;
|
||||||
name = "Jonathan Glines";
|
name = "Jonathan Glines";
|
||||||
};
|
};
|
||||||
avaq = {
|
avaq = {
|
||||||
@ -760,6 +772,7 @@
|
|||||||
averelld = {
|
averelld = {
|
||||||
email = "averell+nixos@rxd4.com";
|
email = "averell+nixos@rxd4.com";
|
||||||
github = "averelld";
|
github = "averelld";
|
||||||
|
githubId = 687218;
|
||||||
name = "averelld";
|
name = "averelld";
|
||||||
};
|
};
|
||||||
avitex = {
|
avitex = {
|
||||||
@ -815,11 +828,13 @@
|
|||||||
backuitist = {
|
backuitist = {
|
||||||
email = "biethb@gmail.com";
|
email = "biethb@gmail.com";
|
||||||
github = "backuitist";
|
github = "backuitist";
|
||||||
|
githubId = 1017537;
|
||||||
name = "Bruno Bieth";
|
name = "Bruno Bieth";
|
||||||
};
|
};
|
||||||
badi = {
|
badi = {
|
||||||
email = "abdulwahidc@gmail.com";
|
email = "abdulwahidc@gmail.com";
|
||||||
github = "badi";
|
github = "badi";
|
||||||
|
githubId = 35324;
|
||||||
name = "Badi' Abdul-Wahid";
|
name = "Badi' Abdul-Wahid";
|
||||||
};
|
};
|
||||||
balajisivaraman = {
|
balajisivaraman = {
|
||||||
@ -943,6 +958,7 @@
|
|||||||
berdario = {
|
berdario = {
|
||||||
email = "berdario@gmail.com";
|
email = "berdario@gmail.com";
|
||||||
github = "berdario";
|
github = "berdario";
|
||||||
|
githubId = 752835;
|
||||||
name = "Dario Bertini";
|
name = "Dario Bertini";
|
||||||
};
|
};
|
||||||
bergey = {
|
bergey = {
|
||||||
@ -1024,6 +1040,7 @@
|
|||||||
bluescreen303 = {
|
bluescreen303 = {
|
||||||
email = "mathijs@bluescreen303.nl";
|
email = "mathijs@bluescreen303.nl";
|
||||||
github = "bluescreen303";
|
github = "bluescreen303";
|
||||||
|
githubId = 16330;
|
||||||
name = "Mathijs Kwik";
|
name = "Mathijs Kwik";
|
||||||
};
|
};
|
||||||
bobakker = {
|
bobakker = {
|
||||||
@ -1053,6 +1070,7 @@
|
|||||||
boothead = {
|
boothead = {
|
||||||
email = "ben@perurbis.com";
|
email = "ben@perurbis.com";
|
||||||
github = "boothead";
|
github = "boothead";
|
||||||
|
githubId = 87764;
|
||||||
name = "Ben Ford";
|
name = "Ben Ford";
|
||||||
};
|
};
|
||||||
borisbabic = {
|
borisbabic = {
|
||||||
@ -1473,6 +1491,7 @@
|
|||||||
coconnor = {
|
coconnor = {
|
||||||
email = "coreyoconnor@gmail.com";
|
email = "coreyoconnor@gmail.com";
|
||||||
github = "coreyoconnor";
|
github = "coreyoconnor";
|
||||||
|
githubId = 34317;
|
||||||
name = "Corey O'Connor";
|
name = "Corey O'Connor";
|
||||||
};
|
};
|
||||||
codsl = {
|
codsl = {
|
||||||
@ -1566,6 +1585,7 @@
|
|||||||
cransom = {
|
cransom = {
|
||||||
email = "cransom@hubns.net";
|
email = "cransom@hubns.net";
|
||||||
github = "cransom";
|
github = "cransom";
|
||||||
|
githubId = 1957293;
|
||||||
name = "Casey Ransom";
|
name = "Casey Ransom";
|
||||||
};
|
};
|
||||||
CrazedProgrammer = {
|
CrazedProgrammer = {
|
||||||
@ -1725,6 +1745,7 @@
|
|||||||
davidrusu = {
|
davidrusu = {
|
||||||
email = "davidrusu.me@gmail.com";
|
email = "davidrusu.me@gmail.com";
|
||||||
github = "davidrusu";
|
github = "davidrusu";
|
||||||
|
githubId = 1832378;
|
||||||
name = "David Rusu";
|
name = "David Rusu";
|
||||||
};
|
};
|
||||||
davidtwco = {
|
davidtwco = {
|
||||||
@ -1818,6 +1839,7 @@
|
|||||||
DerGuteMoritz = {
|
DerGuteMoritz = {
|
||||||
email = "moritz@twoticketsplease.de";
|
email = "moritz@twoticketsplease.de";
|
||||||
github = "DerGuteMoritz";
|
github = "DerGuteMoritz";
|
||||||
|
githubId = 19733;
|
||||||
name = "Moritz Heidkamp";
|
name = "Moritz Heidkamp";
|
||||||
};
|
};
|
||||||
dermetfan = {
|
dermetfan = {
|
||||||
@ -1835,6 +1857,7 @@
|
|||||||
desiderius = {
|
desiderius = {
|
||||||
email = "didier@devroye.name";
|
email = "didier@devroye.name";
|
||||||
github = "desiderius";
|
github = "desiderius";
|
||||||
|
githubId = 1311761;
|
||||||
name = "Didier J. Devroye";
|
name = "Didier J. Devroye";
|
||||||
};
|
};
|
||||||
devhell = {
|
devhell = {
|
||||||
@ -1864,6 +1887,7 @@
|
|||||||
dgonyeo = {
|
dgonyeo = {
|
||||||
email = "derek@gonyeo.com";
|
email = "derek@gonyeo.com";
|
||||||
github = "dgonyeo";
|
github = "dgonyeo";
|
||||||
|
githubId = 2439413;
|
||||||
name = "Derek Gonyeo";
|
name = "Derek Gonyeo";
|
||||||
};
|
};
|
||||||
dhkl = {
|
dhkl = {
|
||||||
@ -1983,6 +2007,7 @@
|
|||||||
doublec = {
|
doublec = {
|
||||||
email = "chris.double@double.co.nz";
|
email = "chris.double@double.co.nz";
|
||||||
github = "doublec";
|
github = "doublec";
|
||||||
|
githubId = 16599;
|
||||||
name = "Chris Double";
|
name = "Chris Double";
|
||||||
};
|
};
|
||||||
dpaetzel = {
|
dpaetzel = {
|
||||||
@ -2048,6 +2073,7 @@
|
|||||||
dxf = {
|
dxf = {
|
||||||
email = "dingxiangfei2009@gmail.com";
|
email = "dingxiangfei2009@gmail.com";
|
||||||
github = "dingxiangfei2009";
|
github = "dingxiangfei2009";
|
||||||
|
githubId = 6884440;
|
||||||
name = "Ding Xiang Fei";
|
name = "Ding Xiang Fei";
|
||||||
};
|
};
|
||||||
dysinger = {
|
dysinger = {
|
||||||
@ -2113,6 +2139,7 @@
|
|||||||
edanaher = {
|
edanaher = {
|
||||||
email = "nixos@edanaher.net";
|
email = "nixos@edanaher.net";
|
||||||
github = "edanaher";
|
github = "edanaher";
|
||||||
|
githubId = 984691;
|
||||||
name = "Evan Danaher";
|
name = "Evan Danaher";
|
||||||
};
|
};
|
||||||
edef = {
|
edef = {
|
||||||
@ -2262,6 +2289,7 @@
|
|||||||
emmanuelrosa = {
|
emmanuelrosa = {
|
||||||
email = "emmanuel_rosa@aol.com";
|
email = "emmanuel_rosa@aol.com";
|
||||||
github = "emmanuelrosa";
|
github = "emmanuelrosa";
|
||||||
|
githubId = 13485450;
|
||||||
name = "Emmanuel Rosa";
|
name = "Emmanuel Rosa";
|
||||||
};
|
};
|
||||||
endgame = {
|
endgame = {
|
||||||
@ -2279,7 +2307,7 @@
|
|||||||
Enteee = {
|
Enteee = {
|
||||||
email = "nix@duckpond.ch";
|
email = "nix@duckpond.ch";
|
||||||
github = "Enteee";
|
github = "Enteee";
|
||||||
githubid = 5493775;
|
githubId = 5493775;
|
||||||
name = "Ente";
|
name = "Ente";
|
||||||
};
|
};
|
||||||
enzime = {
|
enzime = {
|
||||||
@ -2337,6 +2365,7 @@
|
|||||||
ericsagnes = {
|
ericsagnes = {
|
||||||
email = "eric.sagnes@gmail.com";
|
email = "eric.sagnes@gmail.com";
|
||||||
github = "ericsagnes";
|
github = "ericsagnes";
|
||||||
|
githubId = 367880;
|
||||||
name = "Eric Sagnes";
|
name = "Eric Sagnes";
|
||||||
};
|
};
|
||||||
ericson2314 = {
|
ericson2314 = {
|
||||||
@ -2376,6 +2405,7 @@
|
|||||||
ertes = {
|
ertes = {
|
||||||
email = "esz@posteo.de";
|
email = "esz@posteo.de";
|
||||||
github = "ertes";
|
github = "ertes";
|
||||||
|
githubId = 1855930;
|
||||||
name = "Ertugrul Söylemez";
|
name = "Ertugrul Söylemez";
|
||||||
};
|
};
|
||||||
esclear = {
|
esclear = {
|
||||||
@ -2485,6 +2515,7 @@
|
|||||||
fare = {
|
fare = {
|
||||||
email = "fahree@gmail.com";
|
email = "fahree@gmail.com";
|
||||||
github = "fare";
|
github = "fare";
|
||||||
|
githubId = 8073;
|
||||||
name = "Francois-Rene Rideau";
|
name = "Francois-Rene Rideau";
|
||||||
};
|
};
|
||||||
farlion = {
|
farlion = {
|
||||||
@ -2496,6 +2527,7 @@
|
|||||||
fdns = {
|
fdns = {
|
||||||
email = "fdns02@gmail.com";
|
email = "fdns02@gmail.com";
|
||||||
github = "fdns";
|
github = "fdns";
|
||||||
|
githubId = 541748;
|
||||||
name = "Felipe Espinoza";
|
name = "Felipe Espinoza";
|
||||||
};
|
};
|
||||||
ffinkdevs = {
|
ffinkdevs = {
|
||||||
@ -2622,6 +2654,7 @@
|
|||||||
fragamus = {
|
fragamus = {
|
||||||
email = "innovative.engineer@gmail.com";
|
email = "innovative.engineer@gmail.com";
|
||||||
github = "fragamus";
|
github = "fragamus";
|
||||||
|
githubId = 119691;
|
||||||
name = "Michael Gough";
|
name = "Michael Gough";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2640,11 +2673,13 @@
|
|||||||
freezeboy = {
|
freezeboy = {
|
||||||
email = "freezeboy@users.noreply.github.com";
|
email = "freezeboy@users.noreply.github.com";
|
||||||
github = "freezeboy";
|
github = "freezeboy";
|
||||||
|
githubId = 13279982;
|
||||||
name = "freezeboy";
|
name = "freezeboy";
|
||||||
};
|
};
|
||||||
Fresheyeball = {
|
Fresheyeball = {
|
||||||
email = "fresheyeball@gmail.com";
|
email = "fresheyeball@gmail.com";
|
||||||
github = "fresheyeball";
|
github = "Fresheyeball";
|
||||||
|
githubId = 609279;
|
||||||
name = "Isaac Shapira";
|
name = "Isaac Shapira";
|
||||||
};
|
};
|
||||||
fridh = {
|
fridh = {
|
||||||
@ -2748,6 +2783,7 @@
|
|||||||
garbas = {
|
garbas = {
|
||||||
email = "rok@garbas.si";
|
email = "rok@garbas.si";
|
||||||
github = "garbas";
|
github = "garbas";
|
||||||
|
githubId = 20208;
|
||||||
name = "Rok Garbas";
|
name = "Rok Garbas";
|
||||||
};
|
};
|
||||||
garrison = {
|
garrison = {
|
||||||
@ -2759,6 +2795,7 @@
|
|||||||
gavin = {
|
gavin = {
|
||||||
email = "gavin.rogers@holo.host";
|
email = "gavin.rogers@holo.host";
|
||||||
github = "gavinrogers";
|
github = "gavinrogers";
|
||||||
|
githubId = 2430469;
|
||||||
name = "Gavin Rogers";
|
name = "Gavin Rogers";
|
||||||
};
|
};
|
||||||
gazally = {
|
gazally = {
|
||||||
@ -2906,6 +2943,7 @@
|
|||||||
gridaphobe = {
|
gridaphobe = {
|
||||||
email = "eric@seidel.io";
|
email = "eric@seidel.io";
|
||||||
github = "gridaphobe";
|
github = "gridaphobe";
|
||||||
|
githubId = 201997;
|
||||||
name = "Eric Seidel";
|
name = "Eric Seidel";
|
||||||
};
|
};
|
||||||
guibert = {
|
guibert = {
|
||||||
@ -3035,6 +3073,7 @@
|
|||||||
name = "Guanpeng Xu";
|
name = "Guanpeng Xu";
|
||||||
};
|
};
|
||||||
hexa = {
|
hexa = {
|
||||||
|
email = "hexa@darmstadt.ccc.de";
|
||||||
github = "mweinelt";
|
github = "mweinelt";
|
||||||
githubId = 131599;
|
githubId = 131599;
|
||||||
name = "Martin Weinelt";
|
name = "Martin Weinelt";
|
||||||
@ -3053,6 +3092,7 @@
|
|||||||
email = "me@hkjn.me";
|
email = "me@hkjn.me";
|
||||||
name = "Henrik Jonsson";
|
name = "Henrik Jonsson";
|
||||||
github = "hkjn";
|
github = "hkjn";
|
||||||
|
githubId = 287215;
|
||||||
keys = [{
|
keys = [{
|
||||||
longkeyid = "rsa4096/0x03EFBF839A5FDC15";
|
longkeyid = "rsa4096/0x03EFBF839A5FDC15";
|
||||||
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
|
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
|
||||||
@ -3225,6 +3265,7 @@
|
|||||||
name = "Michele Catalano";
|
name = "Michele Catalano";
|
||||||
};
|
};
|
||||||
isgy = {
|
isgy = {
|
||||||
|
name = "isgy";
|
||||||
email = "isgy@teiyg.com";
|
email = "isgy@teiyg.com";
|
||||||
github = "isgy";
|
github = "isgy";
|
||||||
githubId = 13622947;
|
githubId = 13622947;
|
||||||
@ -3263,7 +3304,7 @@
|
|||||||
email = "ivar.scholten@protonmail.com";
|
email = "ivar.scholten@protonmail.com";
|
||||||
github = "IvarWithoutBones";
|
github = "IvarWithoutBones";
|
||||||
githubId = 41924494;
|
githubId = 41924494;
|
||||||
Name = "Ivar";
|
name = "Ivar";
|
||||||
};
|
};
|
||||||
ivegotasthma = {
|
ivegotasthma = {
|
||||||
email = "ivegotasthma@protonmail.com";
|
email = "ivegotasthma@protonmail.com";
|
||||||
@ -3302,6 +3343,7 @@
|
|||||||
jasoncarr = {
|
jasoncarr = {
|
||||||
email = "jcarr250@gmail.com";
|
email = "jcarr250@gmail.com";
|
||||||
github = "jasoncarr0";
|
github = "jasoncarr0";
|
||||||
|
githubId = 6874204;
|
||||||
name = "Jason Carr";
|
name = "Jason Carr";
|
||||||
};
|
};
|
||||||
j-keck = {
|
j-keck = {
|
||||||
@ -3313,6 +3355,7 @@
|
|||||||
j03 = {
|
j03 = {
|
||||||
email = "github@johannesloetzsch.de";
|
email = "github@johannesloetzsch.de";
|
||||||
github = "johannesloetzsch";
|
github = "johannesloetzsch";
|
||||||
|
githubId = 175537;
|
||||||
name = "Johannes Lötzsch";
|
name = "Johannes Lötzsch";
|
||||||
};
|
};
|
||||||
jagajaga = {
|
jagajaga = {
|
||||||
@ -3439,7 +3482,8 @@
|
|||||||
};
|
};
|
||||||
jeschli = {
|
jeschli = {
|
||||||
email = "jeschli@gmail.com";
|
email = "jeschli@gmail.com";
|
||||||
github = "jeschli";
|
github = "Jeschli";
|
||||||
|
githubId = 10786794;
|
||||||
name = "Markus Hihn";
|
name = "Markus Hihn";
|
||||||
};
|
};
|
||||||
jethro = {
|
jethro = {
|
||||||
@ -3451,6 +3495,7 @@
|
|||||||
jfb = {
|
jfb = {
|
||||||
email = "james@yamtime.com";
|
email = "james@yamtime.com";
|
||||||
github = "tftio";
|
github = "tftio";
|
||||||
|
githubId = 143075;
|
||||||
name = "James Felix Black";
|
name = "James Felix Black";
|
||||||
};
|
};
|
||||||
jflanglois = {
|
jflanglois = {
|
||||||
@ -3510,6 +3555,7 @@
|
|||||||
jitwit = {
|
jitwit = {
|
||||||
email = "jrn@bluefarm.ca";
|
email = "jrn@bluefarm.ca";
|
||||||
github = "jitwit";
|
github = "jitwit";
|
||||||
|
githubId = 51518420;
|
||||||
name = "jitwit";
|
name = "jitwit";
|
||||||
};
|
};
|
||||||
jlesquembre = {
|
jlesquembre = {
|
||||||
@ -3551,6 +3597,7 @@
|
|||||||
joamaki = {
|
joamaki = {
|
||||||
email = "joamaki@gmail.com";
|
email = "joamaki@gmail.com";
|
||||||
github = "joamaki";
|
github = "joamaki";
|
||||||
|
githubId = 1102396;
|
||||||
name = "Jussi Maki";
|
name = "Jussi Maki";
|
||||||
};
|
};
|
||||||
joelburget = {
|
joelburget = {
|
||||||
@ -3573,6 +3620,7 @@
|
|||||||
email = "admin@cryto.net";
|
email = "admin@cryto.net";
|
||||||
name = "Sven Slootweg";
|
name = "Sven Slootweg";
|
||||||
github = "joepie91";
|
github = "joepie91";
|
||||||
|
githubId = 1663259;
|
||||||
};
|
};
|
||||||
joesalisbury = {
|
joesalisbury = {
|
||||||
email = "salisbury.joseph@gmail.com";
|
email = "salisbury.joseph@gmail.com";
|
||||||
@ -3646,6 +3694,7 @@
|
|||||||
jonathanmarler = {
|
jonathanmarler = {
|
||||||
email = "johnnymarler@gmail.com";
|
email = "johnnymarler@gmail.com";
|
||||||
github = "marler8997";
|
github = "marler8997";
|
||||||
|
githubId = 304904;
|
||||||
name = "Jonathan Marler";
|
name = "Jonathan Marler";
|
||||||
};
|
};
|
||||||
jonathanreeve = {
|
jonathanreeve = {
|
||||||
@ -3751,6 +3800,7 @@
|
|||||||
juliendehos = {
|
juliendehos = {
|
||||||
email = "dehos@lisic.univ-littoral.fr";
|
email = "dehos@lisic.univ-littoral.fr";
|
||||||
github = "juliendehos";
|
github = "juliendehos";
|
||||||
|
githubId = 11947756;
|
||||||
name = "Julien Dehos";
|
name = "Julien Dehos";
|
||||||
};
|
};
|
||||||
jumper149 = {
|
jumper149 = {
|
||||||
@ -3784,6 +3834,7 @@
|
|||||||
jyp = {
|
jyp = {
|
||||||
email = "jeanphilippe.bernardy@gmail.com";
|
email = "jeanphilippe.bernardy@gmail.com";
|
||||||
github = "jyp";
|
github = "jyp";
|
||||||
|
githubId = 27747;
|
||||||
name = "Jean-Philippe Bernardy";
|
name = "Jean-Philippe Bernardy";
|
||||||
};
|
};
|
||||||
jzellner = {
|
jzellner = {
|
||||||
@ -3797,7 +3848,7 @@
|
|||||||
email = "KAction@disroot.org";
|
email = "KAction@disroot.org";
|
||||||
github = "kaction";
|
github = "kaction";
|
||||||
githubId = 44864956;
|
githubId = 44864956;
|
||||||
key = [{
|
keys = [{
|
||||||
longkeyid = "ed25519/0x749FD4DFA2E94236";
|
longkeyid = "ed25519/0x749FD4DFA2E94236";
|
||||||
fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236";
|
fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236";
|
||||||
}];
|
}];
|
||||||
@ -3833,6 +3884,7 @@
|
|||||||
kampfschlaefer = {
|
kampfschlaefer = {
|
||||||
email = "arnold@arnoldarts.de";
|
email = "arnold@arnoldarts.de";
|
||||||
github = "kampfschlaefer";
|
github = "kampfschlaefer";
|
||||||
|
githubId = 3831860;
|
||||||
name = "Arnold Krille";
|
name = "Arnold Krille";
|
||||||
};
|
};
|
||||||
karantan = {
|
karantan = {
|
||||||
@ -3990,6 +4042,7 @@
|
|||||||
email = "adrian@kummerlaender.eu";
|
email = "adrian@kummerlaender.eu";
|
||||||
name = "Adrian Kummerlaender";
|
name = "Adrian Kummerlaender";
|
||||||
github = "KnairdA";
|
github = "KnairdA";
|
||||||
|
githubId = 498373;
|
||||||
};
|
};
|
||||||
knedlsepp = {
|
knedlsepp = {
|
||||||
email = "josef.kemetmueller@gmail.com";
|
email = "josef.kemetmueller@gmail.com";
|
||||||
@ -4012,6 +4065,7 @@
|
|||||||
kolbycrouch = {
|
kolbycrouch = {
|
||||||
email = "kjc.devel@gmail.com";
|
email = "kjc.devel@gmail.com";
|
||||||
github = "kolbycrouch";
|
github = "kolbycrouch";
|
||||||
|
githubId = 6346418;
|
||||||
name = "Kolby Crouch";
|
name = "Kolby Crouch";
|
||||||
};
|
};
|
||||||
konimex = {
|
konimex = {
|
||||||
@ -4023,6 +4077,7 @@
|
|||||||
koral = {
|
koral = {
|
||||||
email = "koral@mailoo.org";
|
email = "koral@mailoo.org";
|
||||||
github = "k0ral";
|
github = "k0ral";
|
||||||
|
githubId = 524268;
|
||||||
name = "Koral";
|
name = "Koral";
|
||||||
};
|
};
|
||||||
kovirobi = {
|
kovirobi = {
|
||||||
@ -4064,7 +4119,7 @@
|
|||||||
kristian-brucaj = {
|
kristian-brucaj = {
|
||||||
email = "kbrucaj@gmail.com";
|
email = "kbrucaj@gmail.com";
|
||||||
github = "kristian-brucaj";
|
github = "kristian-brucaj";
|
||||||
githubID = "8893110";
|
githubId = 8893110;
|
||||||
name = "Kristian Brucaj";
|
name = "Kristian Brucaj";
|
||||||
};
|
};
|
||||||
kristoff3r = {
|
kristoff3r = {
|
||||||
@ -4124,6 +4179,7 @@
|
|||||||
laikq = {
|
laikq = {
|
||||||
email = "gwen@quasebarth.de";
|
email = "gwen@quasebarth.de";
|
||||||
github = "laikq";
|
github = "laikq";
|
||||||
|
githubId = 55911173;
|
||||||
name = "Gwendolyn Quasebarth";
|
name = "Gwendolyn Quasebarth";
|
||||||
};
|
};
|
||||||
lasandell = {
|
lasandell = {
|
||||||
@ -4141,6 +4197,7 @@
|
|||||||
lassulus = {
|
lassulus = {
|
||||||
email = "lassulus@gmail.com";
|
email = "lassulus@gmail.com";
|
||||||
github = "Lassulus";
|
github = "Lassulus";
|
||||||
|
githubId = 621759;
|
||||||
name = "Lassulus";
|
name = "Lassulus";
|
||||||
};
|
};
|
||||||
lattfein = {
|
lattfein = {
|
||||||
@ -4195,6 +4252,7 @@
|
|||||||
lebastr = {
|
lebastr = {
|
||||||
email = "lebastr@gmail.com";
|
email = "lebastr@gmail.com";
|
||||||
github = "lebastr";
|
github = "lebastr";
|
||||||
|
githubId = 887072;
|
||||||
name = "Alexander Lebedev";
|
name = "Alexander Lebedev";
|
||||||
};
|
};
|
||||||
ledif = {
|
ledif = {
|
||||||
@ -4230,6 +4288,7 @@
|
|||||||
leonardoce = {
|
leonardoce = {
|
||||||
email = "leonardo.cecchi@gmail.com";
|
email = "leonardo.cecchi@gmail.com";
|
||||||
github = "leonardoce";
|
github = "leonardoce";
|
||||||
|
githubId = 1572058;
|
||||||
name = "Leonardo Cecchi";
|
name = "Leonardo Cecchi";
|
||||||
};
|
};
|
||||||
leshainc = {
|
leshainc = {
|
||||||
@ -4393,6 +4452,7 @@
|
|||||||
lovek323 = {
|
lovek323 = {
|
||||||
email = "jason@oconal.id.au";
|
email = "jason@oconal.id.au";
|
||||||
github = "lovek323";
|
github = "lovek323";
|
||||||
|
githubId = 265084;
|
||||||
name = "Jason O'Conal";
|
name = "Jason O'Conal";
|
||||||
};
|
};
|
||||||
lovesegfault = {
|
lovesegfault = {
|
||||||
@ -4432,6 +4492,7 @@
|
|||||||
ltavard = {
|
ltavard = {
|
||||||
email = "laure.tavard@univ-grenoble-alpes.fr";
|
email = "laure.tavard@univ-grenoble-alpes.fr";
|
||||||
github = "ltavard";
|
github = "ltavard";
|
||||||
|
githubId = 8555953;
|
||||||
name = "Laure Tavard";
|
name = "Laure Tavard";
|
||||||
};
|
};
|
||||||
luc65r = {
|
luc65r = {
|
||||||
@ -4495,6 +4556,7 @@
|
|||||||
lumi = {
|
lumi = {
|
||||||
email = "lumi@pew.im";
|
email = "lumi@pew.im";
|
||||||
github = "lumi-me-not";
|
github = "lumi-me-not";
|
||||||
|
githubId = 26020062;
|
||||||
name = "lumi";
|
name = "lumi";
|
||||||
};
|
};
|
||||||
luz = {
|
luz = {
|
||||||
@ -4678,6 +4740,7 @@
|
|||||||
matthewbauer = {
|
matthewbauer = {
|
||||||
email = "mjbauer95@gmail.com";
|
email = "mjbauer95@gmail.com";
|
||||||
github = "matthewbauer";
|
github = "matthewbauer";
|
||||||
|
githubId = 19036;
|
||||||
name = "Matthew Bauer";
|
name = "Matthew Bauer";
|
||||||
};
|
};
|
||||||
matthiasbeyer = {
|
matthiasbeyer = {
|
||||||
@ -4695,6 +4758,7 @@
|
|||||||
matti-kariluoma = {
|
matti-kariluoma = {
|
||||||
email = "matti@kariluo.ma";
|
email = "matti@kariluo.ma";
|
||||||
github = "matti-kariluoma";
|
github = "matti-kariluoma";
|
||||||
|
githubId = 279868;
|
||||||
name = "Matti Kariluoma";
|
name = "Matti Kariluoma";
|
||||||
};
|
};
|
||||||
maurer = {
|
maurer = {
|
||||||
@ -4820,6 +4884,7 @@
|
|||||||
melsigl = {
|
melsigl = {
|
||||||
email = "melanie.bianca.sigl@gmail.com";
|
email = "melanie.bianca.sigl@gmail.com";
|
||||||
github = "melsigl";
|
github = "melsigl";
|
||||||
|
githubId = 15093162;
|
||||||
name = "Melanie B. Sigl";
|
name = "Melanie B. Sigl";
|
||||||
};
|
};
|
||||||
melkor333 = {
|
melkor333 = {
|
||||||
@ -4888,6 +4953,7 @@
|
|||||||
michaelpj = {
|
michaelpj = {
|
||||||
email = "michaelpj@gmail.com";
|
email = "michaelpj@gmail.com";
|
||||||
github = "michaelpj";
|
github = "michaelpj";
|
||||||
|
githubId = 1699466;
|
||||||
name = "Michael Peyton Jones";
|
name = "Michael Peyton Jones";
|
||||||
};
|
};
|
||||||
michalrus = {
|
michalrus = {
|
||||||
@ -4899,6 +4965,7 @@
|
|||||||
michelk = {
|
michelk = {
|
||||||
email = "michel@kuhlmanns.info";
|
email = "michel@kuhlmanns.info";
|
||||||
github = "michelk";
|
github = "michelk";
|
||||||
|
githubId = 1404919;
|
||||||
name = "Michel Kuhlmann";
|
name = "Michel Kuhlmann";
|
||||||
};
|
};
|
||||||
michojel = {
|
michojel = {
|
||||||
@ -4972,6 +5039,7 @@
|
|||||||
mirdhyn = {
|
mirdhyn = {
|
||||||
email = "mirdhyn@gmail.com";
|
email = "mirdhyn@gmail.com";
|
||||||
github = "mirdhyn";
|
github = "mirdhyn";
|
||||||
|
githubId = 149558;
|
||||||
name = "Merlin Gaillard";
|
name = "Merlin Gaillard";
|
||||||
};
|
};
|
||||||
mirrexagon = {
|
mirrexagon = {
|
||||||
@ -5007,6 +5075,7 @@
|
|||||||
mkf = {
|
mkf = {
|
||||||
email = "m@mikf.pl";
|
email = "m@mikf.pl";
|
||||||
github = "mkf";
|
github = "mkf";
|
||||||
|
githubId = 7753506;
|
||||||
name = "Michał Krzysztof Feiler";
|
name = "Michał Krzysztof Feiler";
|
||||||
keys = [{
|
keys = [{
|
||||||
longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
|
longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
|
||||||
@ -5056,6 +5125,7 @@
|
|||||||
mmlb = {
|
mmlb = {
|
||||||
email = "manny@peekaboo.mmlb.icu";
|
email = "manny@peekaboo.mmlb.icu";
|
||||||
github = "mmlb";
|
github = "mmlb";
|
||||||
|
githubId = 708570;
|
||||||
name = "Manuel Mendez";
|
name = "Manuel Mendez";
|
||||||
};
|
};
|
||||||
mnacamura = {
|
mnacamura = {
|
||||||
@ -5085,6 +5155,7 @@
|
|||||||
Mogria = {
|
Mogria = {
|
||||||
email = "m0gr14@gmail.com";
|
email = "m0gr14@gmail.com";
|
||||||
github = "mogria";
|
github = "mogria";
|
||||||
|
githubId = 754512;
|
||||||
name = "Mogria";
|
name = "Mogria";
|
||||||
};
|
};
|
||||||
monsieurp = {
|
monsieurp = {
|
||||||
@ -5142,6 +5213,7 @@
|
|||||||
MP2E = {
|
MP2E = {
|
||||||
email = "MP2E@archlinux.us";
|
email = "MP2E@archlinux.us";
|
||||||
github = "MP2E";
|
github = "MP2E";
|
||||||
|
githubId = 167708;
|
||||||
name = "Cray Elliott";
|
name = "Cray Elliott";
|
||||||
};
|
};
|
||||||
mpcsh = {
|
mpcsh = {
|
||||||
@ -5165,6 +5237,7 @@
|
|||||||
mpscholten = {
|
mpscholten = {
|
||||||
email = "marc@mpscholten.de";
|
email = "marc@mpscholten.de";
|
||||||
github = "mpscholten";
|
github = "mpscholten";
|
||||||
|
githubId = 2072185;
|
||||||
name = "Marc Scholten";
|
name = "Marc Scholten";
|
||||||
};
|
};
|
||||||
mpsyco = {
|
mpsyco = {
|
||||||
@ -5182,6 +5255,7 @@
|
|||||||
mredaelli = {
|
mredaelli = {
|
||||||
email = "massimo@typish.io";
|
email = "massimo@typish.io";
|
||||||
github = "mredaelli";
|
github = "mredaelli";
|
||||||
|
githubId = 3073833;
|
||||||
name = "Massimo Redaelli";
|
name = "Massimo Redaelli";
|
||||||
};
|
};
|
||||||
mrkkrp = {
|
mrkkrp = {
|
||||||
@ -5228,6 +5302,12 @@
|
|||||||
githubId = 133448;
|
githubId = 133448;
|
||||||
name = "Mikołaj Siedlarek";
|
name = "Mikołaj Siedlarek";
|
||||||
};
|
};
|
||||||
|
msm = {
|
||||||
|
email = "msm@tailcall.net";
|
||||||
|
github = "msm-code";
|
||||||
|
githubId = 7026881;
|
||||||
|
name = "Jarosław Jedynak";
|
||||||
|
};
|
||||||
mstarzyk = {
|
mstarzyk = {
|
||||||
email = "mstarzyk@gmail.com";
|
email = "mstarzyk@gmail.com";
|
||||||
github = "mstarzyk";
|
github = "mstarzyk";
|
||||||
@ -5249,6 +5329,7 @@
|
|||||||
MtP = {
|
MtP = {
|
||||||
email = "marko.nixos@poikonen.de";
|
email = "marko.nixos@poikonen.de";
|
||||||
github = "MtP76";
|
github = "MtP76";
|
||||||
|
githubId = 2176611;
|
||||||
name = "Marko Poikonen";
|
name = "Marko Poikonen";
|
||||||
};
|
};
|
||||||
mtreskin = {
|
mtreskin = {
|
||||||
@ -5314,6 +5395,7 @@
|
|||||||
nand0p = {
|
nand0p = {
|
||||||
email = "nando@hex7.com";
|
email = "nando@hex7.com";
|
||||||
github = "nand0p";
|
github = "nand0p";
|
||||||
|
githubId = 1916245;
|
||||||
name = "Fernando Jose Pando";
|
name = "Fernando Jose Pando";
|
||||||
};
|
};
|
||||||
Nate-Devv = {
|
Nate-Devv = {
|
||||||
@ -5587,6 +5669,7 @@
|
|||||||
olynch = {
|
olynch = {
|
||||||
email = "owen@olynch.me";
|
email = "owen@olynch.me";
|
||||||
github = "olynch";
|
github = "olynch";
|
||||||
|
githubId = 4728903;
|
||||||
name = "Owen Lynch";
|
name = "Owen Lynch";
|
||||||
};
|
};
|
||||||
omnipotententity = {
|
omnipotententity = {
|
||||||
@ -5610,6 +5693,7 @@
|
|||||||
orbitz = {
|
orbitz = {
|
||||||
email = "mmatalka@gmail.com";
|
email = "mmatalka@gmail.com";
|
||||||
github = "orbitz";
|
github = "orbitz";
|
||||||
|
githubId = 75299;
|
||||||
name = "Malcolm Matalka";
|
name = "Malcolm Matalka";
|
||||||
};
|
};
|
||||||
orivej = {
|
orivej = {
|
||||||
@ -5636,6 +5720,16 @@
|
|||||||
githubId = 108072;
|
githubId = 108072;
|
||||||
name = "Slawomir Gonet";
|
name = "Slawomir Gonet";
|
||||||
};
|
};
|
||||||
|
oxalica = {
|
||||||
|
email = "oxalicc@pm.me";
|
||||||
|
github = "oxalica";
|
||||||
|
githubId = 14816024;
|
||||||
|
name = "oxalica";
|
||||||
|
keys = [{
|
||||||
|
longkeyid = "rsa4096/0xCED392DE0C483D00";
|
||||||
|
fingerprint = "5CB0 E9E5 D5D5 71F5 7F54 0FEA CED3 92DE 0C48 3D00";
|
||||||
|
}];
|
||||||
|
};
|
||||||
oxij = {
|
oxij = {
|
||||||
email = "oxij@oxij.org";
|
email = "oxij@oxij.org";
|
||||||
github = "oxij";
|
github = "oxij";
|
||||||
@ -5745,6 +5839,7 @@
|
|||||||
pcarrier = {
|
pcarrier = {
|
||||||
email = "pc@rrier.ca";
|
email = "pc@rrier.ca";
|
||||||
github = "pcarrier";
|
github = "pcarrier";
|
||||||
|
githubId = 8641;
|
||||||
name = "Pierre Carrier";
|
name = "Pierre Carrier";
|
||||||
};
|
};
|
||||||
periklis = {
|
periklis = {
|
||||||
@ -5890,6 +5985,7 @@
|
|||||||
plchldr = {
|
plchldr = {
|
||||||
email = "mail@oddco.de";
|
email = "mail@oddco.de";
|
||||||
github = "plchldr";
|
github = "plchldr";
|
||||||
|
githubId = 11639001;
|
||||||
name = "Jonas Beyer";
|
name = "Jonas Beyer";
|
||||||
};
|
};
|
||||||
plcplc = {
|
plcplc = {
|
||||||
@ -5913,6 +6009,7 @@
|
|||||||
pmeunier = {
|
pmeunier = {
|
||||||
email = "pierre-etienne.meunier@inria.fr";
|
email = "pierre-etienne.meunier@inria.fr";
|
||||||
github = "P-E-Meunier";
|
github = "P-E-Meunier";
|
||||||
|
githubId = 17021304;
|
||||||
name = "Pierre-Étienne Meunier";
|
name = "Pierre-Étienne Meunier";
|
||||||
};
|
};
|
||||||
pmiddend = {
|
pmiddend = {
|
||||||
@ -5942,6 +6039,7 @@
|
|||||||
polyrod = {
|
polyrod = {
|
||||||
email = "dc1mdp@gmail.com";
|
email = "dc1mdp@gmail.com";
|
||||||
github = "polyrod";
|
github = "polyrod";
|
||||||
|
githubId = 24878306;
|
||||||
name = "Maurizio Di Pietro";
|
name = "Maurizio Di Pietro";
|
||||||
};
|
};
|
||||||
pombeirp = {
|
pombeirp = {
|
||||||
@ -6121,11 +6219,13 @@
|
|||||||
raboof = {
|
raboof = {
|
||||||
email = "arnout@bzzt.net";
|
email = "arnout@bzzt.net";
|
||||||
github = "raboof";
|
github = "raboof";
|
||||||
|
githubId = 131856;
|
||||||
name = "Arnout Engelen";
|
name = "Arnout Engelen";
|
||||||
};
|
};
|
||||||
rafaelgg = {
|
rafaelgg = {
|
||||||
email = "rafael.garcia.gallego@gmail.com";
|
email = "rafael.garcia.gallego@gmail.com";
|
||||||
github = "rafaelgg";
|
github = "rafaelgg";
|
||||||
|
githubId = 1016742;
|
||||||
name = "Rafael García";
|
name = "Rafael García";
|
||||||
};
|
};
|
||||||
raquelgb = {
|
raquelgb = {
|
||||||
@ -6297,6 +6397,7 @@
|
|||||||
rickynils = {
|
rickynils = {
|
||||||
email = "rickynils@gmail.com";
|
email = "rickynils@gmail.com";
|
||||||
github = "rickynils";
|
github = "rickynils";
|
||||||
|
githubId = 16779;
|
||||||
name = "Rickard Nilsson";
|
name = "Rickard Nilsson";
|
||||||
};
|
};
|
||||||
rika = {
|
rika = {
|
||||||
@ -6380,11 +6481,13 @@
|
|||||||
rob = {
|
rob = {
|
||||||
email = "rob.vermaas@gmail.com";
|
email = "rob.vermaas@gmail.com";
|
||||||
github = "rbvermaa";
|
github = "rbvermaa";
|
||||||
|
githubId = 353885;
|
||||||
name = "Rob Vermaas";
|
name = "Rob Vermaas";
|
||||||
};
|
};
|
||||||
robberer = {
|
robberer = {
|
||||||
email = "robberer@freakmail.de";
|
email = "robberer@freakmail.de";
|
||||||
github = "robberer";
|
github = "robberer";
|
||||||
|
githubId = 6204883;
|
||||||
name = "Longrin Wischnewski";
|
name = "Longrin Wischnewski";
|
||||||
};
|
};
|
||||||
robbinch = {
|
robbinch = {
|
||||||
@ -6504,6 +6607,7 @@
|
|||||||
rvolosatovs = {
|
rvolosatovs = {
|
||||||
email = "rvolosatovs@riseup.net";
|
email = "rvolosatovs@riseup.net";
|
||||||
github = "rvolosatovs";
|
github = "rvolosatovs";
|
||||||
|
githubId = 12877905;
|
||||||
name = "Roman Volosatovs";
|
name = "Roman Volosatovs";
|
||||||
};
|
};
|
||||||
ryanartecona = {
|
ryanartecona = {
|
||||||
@ -6515,6 +6619,7 @@
|
|||||||
ryansydnor = {
|
ryansydnor = {
|
||||||
email = "ryan.t.sydnor@gmail.com";
|
email = "ryan.t.sydnor@gmail.com";
|
||||||
github = "ryansydnor";
|
github = "ryansydnor";
|
||||||
|
githubId = 1832096;
|
||||||
name = "Ryan Sydnor";
|
name = "Ryan Sydnor";
|
||||||
};
|
};
|
||||||
ryantm = {
|
ryantm = {
|
||||||
@ -6606,6 +6711,7 @@
|
|||||||
sander = {
|
sander = {
|
||||||
email = "s.vanderburg@tudelft.nl";
|
email = "s.vanderburg@tudelft.nl";
|
||||||
github = "svanderburg";
|
github = "svanderburg";
|
||||||
|
githubId = 1153271;
|
||||||
name = "Sander van der Burg";
|
name = "Sander van der Burg";
|
||||||
};
|
};
|
||||||
sargon = {
|
sargon = {
|
||||||
@ -6641,6 +6747,7 @@
|
|||||||
scalavision = {
|
scalavision = {
|
||||||
email = "scalavision@gmail.com";
|
email = "scalavision@gmail.com";
|
||||||
github = "scalavision";
|
github = "scalavision";
|
||||||
|
githubId = 3958212;
|
||||||
name = "Tom Sorlie";
|
name = "Tom Sorlie";
|
||||||
};
|
};
|
||||||
schmitthenner = {
|
schmitthenner = {
|
||||||
@ -6650,8 +6757,10 @@
|
|||||||
name = "Fabian Schmitthenner";
|
name = "Fabian Schmitthenner";
|
||||||
};
|
};
|
||||||
schmittlauch = {
|
schmittlauch = {
|
||||||
|
name = "Trolli Schmittlauch";
|
||||||
email = "t.schmittlauch+nixos@orlives.de";
|
email = "t.schmittlauch+nixos@orlives.de";
|
||||||
github = "schmittlauch";
|
github = "schmittlauch";
|
||||||
|
githubId = 1479555;
|
||||||
};
|
};
|
||||||
schneefux = {
|
schneefux = {
|
||||||
email = "schneefux+nixos_pkg@schneefux.xyz";
|
email = "schneefux+nixos_pkg@schneefux.xyz";
|
||||||
@ -6690,6 +6799,7 @@
|
|||||||
scubed2 = {
|
scubed2 = {
|
||||||
email = "scubed2@gmail.com";
|
email = "scubed2@gmail.com";
|
||||||
github = "scubed2";
|
github = "scubed2";
|
||||||
|
githubId = 7401858;
|
||||||
name = "Sterling Stein";
|
name = "Sterling Stein";
|
||||||
};
|
};
|
||||||
sdier = {
|
sdier = {
|
||||||
@ -6749,7 +6859,7 @@
|
|||||||
servalcatty = {
|
servalcatty = {
|
||||||
email = "servalcat@pm.me";
|
email = "servalcat@pm.me";
|
||||||
github = "servalcatty";
|
github = "servalcatty";
|
||||||
githubid = 51969817;
|
githubId = 51969817;
|
||||||
name = "Serval";
|
name = "Serval";
|
||||||
keys = [{
|
keys = [{
|
||||||
longkeyid = "rsa4096/0x4A2AAAA382F8294C";
|
longkeyid = "rsa4096/0x4A2AAAA382F8294C";
|
||||||
@ -6795,6 +6905,7 @@
|
|||||||
shazow = {
|
shazow = {
|
||||||
email = "andrey.petrov@shazow.net";
|
email = "andrey.petrov@shazow.net";
|
||||||
github = "shazow";
|
github = "shazow";
|
||||||
|
githubId = 6292;
|
||||||
name = "Andrey Petrov";
|
name = "Andrey Petrov";
|
||||||
};
|
};
|
||||||
sheenobu = {
|
sheenobu = {
|
||||||
@ -6818,16 +6929,19 @@
|
|||||||
shlevy = {
|
shlevy = {
|
||||||
email = "shea@shealevy.com";
|
email = "shea@shealevy.com";
|
||||||
github = "shlevy";
|
github = "shlevy";
|
||||||
|
githubId = 487050;
|
||||||
name = "Shea Levy";
|
name = "Shea Levy";
|
||||||
};
|
};
|
||||||
shmish111 = {
|
shmish111 = {
|
||||||
email = "shmish111@gmail.com";
|
email = "shmish111@gmail.com";
|
||||||
github = "shmish111";
|
github = "shmish111";
|
||||||
|
githubId = 934267;
|
||||||
name = "David Smith";
|
name = "David Smith";
|
||||||
};
|
};
|
||||||
shnarazk = {
|
shnarazk = {
|
||||||
email = "shujinarazaki@protonmail.com";
|
email = "shujinarazaki@protonmail.com";
|
||||||
github = "shnarazk";
|
github = "shnarazk";
|
||||||
|
githubId = 997855;
|
||||||
name = "Narazaki Shuji";
|
name = "Narazaki Shuji";
|
||||||
};
|
};
|
||||||
shou = {
|
shou = {
|
||||||
@ -6915,6 +7029,7 @@
|
|||||||
sjmackenzie = {
|
sjmackenzie = {
|
||||||
email = "setori88@gmail.com";
|
email = "setori88@gmail.com";
|
||||||
github = "sjmackenzie";
|
github = "sjmackenzie";
|
||||||
|
githubId = 158321;
|
||||||
name = "Stewart Mackenzie";
|
name = "Stewart Mackenzie";
|
||||||
};
|
};
|
||||||
sjourdois = {
|
sjourdois = {
|
||||||
@ -7048,6 +7163,7 @@
|
|||||||
sprock = {
|
sprock = {
|
||||||
email = "rmason@mun.ca";
|
email = "rmason@mun.ca";
|
||||||
github = "sprock";
|
github = "sprock";
|
||||||
|
githubId = 6391601;
|
||||||
name = "Roger Mason";
|
name = "Roger Mason";
|
||||||
};
|
};
|
||||||
spwhitt = {
|
spwhitt = {
|
||||||
@ -7059,6 +7175,7 @@
|
|||||||
srghma = {
|
srghma = {
|
||||||
email = "srghma@gmail.com";
|
email = "srghma@gmail.com";
|
||||||
github = "srghma";
|
github = "srghma";
|
||||||
|
githubId = 7573215;
|
||||||
name = "Sergei Khoma";
|
name = "Sergei Khoma";
|
||||||
};
|
};
|
||||||
srgom = {
|
srgom = {
|
||||||
@ -7276,6 +7393,7 @@
|
|||||||
taha = {
|
taha = {
|
||||||
email = "xrcrod@gmail.com";
|
email = "xrcrod@gmail.com";
|
||||||
github = "tgharib";
|
github = "tgharib";
|
||||||
|
githubId = 6457015;
|
||||||
name = "Taha Gharib";
|
name = "Taha Gharib";
|
||||||
};
|
};
|
||||||
tailhook = {
|
tailhook = {
|
||||||
@ -7359,6 +7477,7 @@
|
|||||||
tckmn = {
|
tckmn = {
|
||||||
email = "andy@tck.mn";
|
email = "andy@tck.mn";
|
||||||
github = "tckmn";
|
github = "tckmn";
|
||||||
|
githubId = 2389333;
|
||||||
name = "Andy Tockman";
|
name = "Andy Tockman";
|
||||||
};
|
};
|
||||||
teh = {
|
teh = {
|
||||||
@ -7388,11 +7507,13 @@
|
|||||||
tesq0 = {
|
tesq0 = {
|
||||||
email = "mikolaj.galkowski@gmail.com";
|
email = "mikolaj.galkowski@gmail.com";
|
||||||
github = "tesq0";
|
github = "tesq0";
|
||||||
|
githubId = 26417242;
|
||||||
name = "Mikolaj Galkowski";
|
name = "Mikolaj Galkowski";
|
||||||
};
|
};
|
||||||
teto = {
|
teto = {
|
||||||
email = "mcoudron@hotmail.com";
|
email = "mcoudron@hotmail.com";
|
||||||
github = "teto";
|
github = "teto";
|
||||||
|
githubId = 886074;
|
||||||
name = "Matthieu Coudron";
|
name = "Matthieu Coudron";
|
||||||
};
|
};
|
||||||
tex = {
|
tex = {
|
||||||
@ -7434,6 +7555,7 @@
|
|||||||
the-kenny = {
|
the-kenny = {
|
||||||
email = "moritz@tarn-vedra.de";
|
email = "moritz@tarn-vedra.de";
|
||||||
github = "the-kenny";
|
github = "the-kenny";
|
||||||
|
githubId = 31167;
|
||||||
name = "Moritz Ulrich";
|
name = "Moritz Ulrich";
|
||||||
};
|
};
|
||||||
thedavidmeister = {
|
thedavidmeister = {
|
||||||
@ -7521,11 +7643,13 @@
|
|||||||
timbertson = {
|
timbertson = {
|
||||||
email = "tim@gfxmonk.net";
|
email = "tim@gfxmonk.net";
|
||||||
github = "timbertson";
|
github = "timbertson";
|
||||||
|
githubId = 14172;
|
||||||
name = "Tim Cuthbertson";
|
name = "Tim Cuthbertson";
|
||||||
};
|
};
|
||||||
timma = {
|
timma = {
|
||||||
email = "kunduru.it.iitb@gmail.com";
|
email = "kunduru.it.iitb@gmail.com";
|
||||||
github = "ktrsoft";
|
github = "ktrsoft";
|
||||||
|
githubId = 12712927;
|
||||||
name = "Timma";
|
name = "Timma";
|
||||||
};
|
};
|
||||||
timokau = {
|
timokau = {
|
||||||
@ -7577,6 +7701,7 @@
|
|||||||
tnias = {
|
tnias = {
|
||||||
email = "phil@grmr.de";
|
email = "phil@grmr.de";
|
||||||
github = "tnias";
|
github = "tnias";
|
||||||
|
githubId = 9853194;
|
||||||
name = "Philipp Bartsch";
|
name = "Philipp Bartsch";
|
||||||
};
|
};
|
||||||
tobim = {
|
tobim = {
|
||||||
@ -7672,6 +7797,7 @@
|
|||||||
tscholak = {
|
tscholak = {
|
||||||
email = "torsten.scholak@googlemail.com";
|
email = "torsten.scholak@googlemail.com";
|
||||||
github = "tscholak";
|
github = "tscholak";
|
||||||
|
githubId = 1568873;
|
||||||
name = "Torsten Scholak";
|
name = "Torsten Scholak";
|
||||||
};
|
};
|
||||||
tstrobel = {
|
tstrobel = {
|
||||||
@ -7693,6 +7819,7 @@
|
|||||||
tvestelind = {
|
tvestelind = {
|
||||||
email = "tomas.vestelind@fripost.org";
|
email = "tomas.vestelind@fripost.org";
|
||||||
github = "tvestelind";
|
github = "tvestelind";
|
||||||
|
githubId = 699403;
|
||||||
name = "Tomas Vestelind";
|
name = "Tomas Vestelind";
|
||||||
};
|
};
|
||||||
tvorog = {
|
tvorog = {
|
||||||
@ -7704,11 +7831,13 @@
|
|||||||
tweber = {
|
tweber = {
|
||||||
email = "tw+nixpkgs@360vier.de";
|
email = "tw+nixpkgs@360vier.de";
|
||||||
github = "thorstenweber83";
|
github = "thorstenweber83";
|
||||||
|
githubId = 9413924;
|
||||||
name = "Thorsten Weber";
|
name = "Thorsten Weber";
|
||||||
};
|
};
|
||||||
twey = {
|
twey = {
|
||||||
email = "twey@twey.co.uk";
|
email = "twey@twey.co.uk";
|
||||||
github = "twey";
|
github = "Twey";
|
||||||
|
githubId = 101639;
|
||||||
name = "James ‘Twey’ Kay";
|
name = "James ‘Twey’ Kay";
|
||||||
};
|
};
|
||||||
twhitehead = {
|
twhitehead = {
|
||||||
@ -7772,6 +7901,7 @@
|
|||||||
uwap = {
|
uwap = {
|
||||||
email = "me@uwap.name";
|
email = "me@uwap.name";
|
||||||
github = "uwap";
|
github = "uwap";
|
||||||
|
githubId = 2212422;
|
||||||
name = "uwap";
|
name = "uwap";
|
||||||
};
|
};
|
||||||
va1entin = {
|
va1entin = {
|
||||||
@ -7789,12 +7919,13 @@
|
|||||||
valebes = {
|
valebes = {
|
||||||
email = "valebes@gmail.com";
|
email = "valebes@gmail.com";
|
||||||
github = "valebes";
|
github = "valebes";
|
||||||
githubid = 10956211;
|
githubId = 10956211;
|
||||||
name = "Valerio Besozzi";
|
name = "Valerio Besozzi";
|
||||||
};
|
};
|
||||||
valeriangalliat = {
|
valeriangalliat = {
|
||||||
email = "val@codejam.info";
|
email = "val@codejam.info";
|
||||||
github = "valeriangalliat";
|
github = "valeriangalliat";
|
||||||
|
githubId = 3929133;
|
||||||
name = "Valérian Galliat";
|
name = "Valérian Galliat";
|
||||||
};
|
};
|
||||||
valodim = {
|
valodim = {
|
||||||
@ -7842,6 +7973,7 @@
|
|||||||
vcanadi = {
|
vcanadi = {
|
||||||
email = "vito.canadi@gmail.com";
|
email = "vito.canadi@gmail.com";
|
||||||
github = "vcanadi";
|
github = "vcanadi";
|
||||||
|
githubId = 8889722;
|
||||||
name = "Vitomir Čanadi";
|
name = "Vitomir Čanadi";
|
||||||
};
|
};
|
||||||
vcunat = {
|
vcunat = {
|
||||||
@ -7904,6 +8036,7 @@
|
|||||||
viric = {
|
viric = {
|
||||||
email = "viric@viric.name";
|
email = "viric@viric.name";
|
||||||
github = "viric";
|
github = "viric";
|
||||||
|
githubId = 66664;
|
||||||
name = "Lluís Batlle i Rossell";
|
name = "Lluís Batlle i Rossell";
|
||||||
};
|
};
|
||||||
virusdave = {
|
virusdave = {
|
||||||
@ -7915,6 +8048,7 @@
|
|||||||
vizanto = {
|
vizanto = {
|
||||||
email = "danny@prime.vc";
|
email = "danny@prime.vc";
|
||||||
github = "vizanto";
|
github = "vizanto";
|
||||||
|
githubId = 326263;
|
||||||
name = "Danny Wilson";
|
name = "Danny Wilson";
|
||||||
};
|
};
|
||||||
vklquevs = {
|
vklquevs = {
|
||||||
@ -7944,6 +8078,7 @@
|
|||||||
vmchale = {
|
vmchale = {
|
||||||
email = "tmchale@wisc.edu";
|
email = "tmchale@wisc.edu";
|
||||||
github = "vmchale";
|
github = "vmchale";
|
||||||
|
githubId = 13259982;
|
||||||
name = "Vanessa McHale";
|
name = "Vanessa McHale";
|
||||||
};
|
};
|
||||||
volhovm = {
|
volhovm = {
|
||||||
@ -8067,6 +8202,7 @@
|
|||||||
wscott = {
|
wscott = {
|
||||||
email = "wsc9tt@gmail.com";
|
email = "wsc9tt@gmail.com";
|
||||||
github = "wscott";
|
github = "wscott";
|
||||||
|
githubId = 31487;
|
||||||
name = "Wayne Scott";
|
name = "Wayne Scott";
|
||||||
};
|
};
|
||||||
wucke13 = {
|
wucke13 = {
|
||||||
@ -8120,6 +8256,7 @@
|
|||||||
xnaveira = {
|
xnaveira = {
|
||||||
email = "xnaveira@gmail.com";
|
email = "xnaveira@gmail.com";
|
||||||
github = "xnaveira";
|
github = "xnaveira";
|
||||||
|
githubId = 2534411;
|
||||||
name = "Xavier Naveira";
|
name = "Xavier Naveira";
|
||||||
};
|
};
|
||||||
xnwdd = {
|
xnwdd = {
|
||||||
@ -8161,6 +8298,7 @@
|
|||||||
y0no = {
|
y0no = {
|
||||||
email = "y0no@y0no.fr";
|
email = "y0no@y0no.fr";
|
||||||
github = "y0no";
|
github = "y0no";
|
||||||
|
githubId = 2242427;
|
||||||
name = "Yoann Ono";
|
name = "Yoann Ono";
|
||||||
};
|
};
|
||||||
yarny = {
|
yarny = {
|
||||||
@ -8242,6 +8380,7 @@
|
|||||||
yvesf = {
|
yvesf = {
|
||||||
email = "yvesf+nix@xapek.org";
|
email = "yvesf+nix@xapek.org";
|
||||||
github = "yvesf";
|
github = "yvesf";
|
||||||
|
githubId = 179548;
|
||||||
name = "Yves Fischer";
|
name = "Yves Fischer";
|
||||||
};
|
};
|
||||||
yvt = {
|
yvt = {
|
||||||
@ -8271,6 +8410,7 @@
|
|||||||
zalakain = {
|
zalakain = {
|
||||||
email = "ping@umazalakain.info";
|
email = "ping@umazalakain.info";
|
||||||
github = "umazalakain";
|
github = "umazalakain";
|
||||||
|
githubId = 1319905;
|
||||||
name = "Uma Zalakain";
|
name = "Uma Zalakain";
|
||||||
};
|
};
|
||||||
zaninime = {
|
zaninime = {
|
||||||
@ -8431,6 +8571,7 @@
|
|||||||
name = "Nicholas Gerstle";
|
name = "Nicholas Gerstle";
|
||||||
email = "ngerstle@gmail.com";
|
email = "ngerstle@gmail.com";
|
||||||
github = "ngerstle";
|
github = "ngerstle";
|
||||||
|
githubId = 1023752;
|
||||||
};
|
};
|
||||||
xavierzwirtz = {
|
xavierzwirtz = {
|
||||||
email = "me@xavierzwirtz.com";
|
email = "me@xavierzwirtz.com";
|
||||||
|
@ -3,7 +3,12 @@
|
|||||||
, networkExpr
|
, networkExpr
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let nodes = import networkExpr; in
|
let
|
||||||
|
nodes = builtins.mapAttrs (vm: module: {
|
||||||
|
_file = "${networkExpr}@node-${vm}";
|
||||||
|
imports = [ module ];
|
||||||
|
}) (import networkExpr);
|
||||||
|
in
|
||||||
|
|
||||||
with import ../../../../lib/testing-python.nix {
|
with import ../../../../lib/testing-python.nix {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
@ -28,7 +28,7 @@ in
|
|||||||
browser = mkOption {
|
browser = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium''
|
default = concatStringsSep " " [ ''${pkgs.chromium}/bin/chromium''
|
||||||
''--user-data-dir=$HOME/.chromium-captive''
|
''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
|
||||||
''--proxy-server="socks5://$PROXY"''
|
''--proxy-server="socks5://$PROXY"''
|
||||||
''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
|
''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
|
||||||
''--no-first-run''
|
''--no-first-run''
|
||||||
|
@ -330,13 +330,14 @@ in
|
|||||||
User = data.user;
|
User = data.user;
|
||||||
Group = data.group;
|
Group = data.group;
|
||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
StateDirectory = "acme/.lego/${cert} ${lpath}";
|
StateDirectory = "acme/.lego/${cert} acme/.lego/accounts ${lpath}";
|
||||||
StateDirectoryMode = if data.allowKeysForGroup then "750" else "700";
|
StateDirectoryMode = if data.allowKeysForGroup then "750" else "700";
|
||||||
WorkingDirectory = spath;
|
WorkingDirectory = spath;
|
||||||
# Only try loading the credentialsFile if the dns challenge is enabled
|
# Only try loading the credentialsFile if the dns challenge is enabled
|
||||||
EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null;
|
EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null;
|
||||||
ExecStart = pkgs.writeScript "acme-start" ''
|
ExecStart = pkgs.writeScript "acme-start" ''
|
||||||
#!${pkgs.runtimeShell} -e
|
#!${pkgs.runtimeShell} -e
|
||||||
|
test -L ${spath}/accounts -o -d ${spath}/accounts || ln -s ../accounts ${spath}/accounts
|
||||||
${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts}
|
${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts}
|
||||||
'';
|
'';
|
||||||
ExecStartPost =
|
ExecStartPost =
|
||||||
|
@ -99,14 +99,16 @@ in
|
|||||||
environment.systemPackages = [cfg.package];
|
environment.systemPackages = [cfg.package];
|
||||||
|
|
||||||
users.users.boinc = {
|
users.users.boinc = {
|
||||||
|
group = "boinc";
|
||||||
createHome = false;
|
createHome = false;
|
||||||
description = "BOINC Client";
|
description = "BOINC Client";
|
||||||
home = cfg.dataDir;
|
home = cfg.dataDir;
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
|
users.groups.boinc = {};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.dataDir}' - boinc - - -"
|
"d '${cfg.dataDir}' - boinc boinc - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.boinc = {
|
systemd.services.boinc = {
|
||||||
@ -114,7 +116,7 @@ in
|
|||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
script = ''
|
script = ''
|
||||||
${fhsEnvExecutable} --dir ${cfg.dataDir} --redirectio ${allowRemoteGuiRpcFlag}
|
${fhsEnvExecutable} --dir ${cfg.dataDir} ${allowRemoteGuiRpcFlag}
|
||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = "boinc";
|
User = "boinc";
|
||||||
|
@ -138,6 +138,7 @@ in {
|
|||||||
|
|
||||||
services.nginx = mkIf (cfg.virtualHost != null) {
|
services.nginx = mkIf (cfg.virtualHost != null) {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
virtualHosts.${cfg.virtualHost} = {
|
virtualHosts.${cfg.virtualHost} = {
|
||||||
locations.${cfg.contextPath}.proxyPass = "http://${cfg.listenAddress}:${toString cfg.port}";
|
locations.${cfg.contextPath}.proxyPass = "http://${cfg.listenAddress}:${toString cfg.port}";
|
||||||
};
|
};
|
||||||
|
@ -177,7 +177,7 @@ in
|
|||||||
wrapper = {};
|
wrapper = {};
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = {
|
// lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = {
|
||||||
documentRoot = config.services.httpd.documentRoot;
|
documentRoot = config.services.httpd.virtualHosts.localhost.documentRoot;
|
||||||
}; }
|
}; }
|
||||||
// lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; }
|
// lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; }
|
||||||
// lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = {
|
// lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = {
|
||||||
|
@ -21,6 +21,8 @@ let
|
|||||||
"--config.file /tmp/alert-manager-substituted.yaml"
|
"--config.file /tmp/alert-manager-substituted.yaml"
|
||||||
"--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
|
"--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
|
||||||
"--log.level ${cfg.logLevel}"
|
"--log.level ${cfg.logLevel}"
|
||||||
|
"--storage.path /var/lib/alertmanager"
|
||||||
|
(toString (map (peer: "--cluster.peer ${peer}:9094") cfg.clusterPeers))
|
||||||
] ++ (optional (cfg.webExternalUrl != null)
|
] ++ (optional (cfg.webExternalUrl != null)
|
||||||
"--web.external-url ${cfg.webExternalUrl}"
|
"--web.external-url ${cfg.webExternalUrl}"
|
||||||
) ++ (optional (cfg.logFormat != null)
|
) ++ (optional (cfg.logFormat != null)
|
||||||
@ -120,6 +122,14 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
clusterPeers = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
Initial peers for HA cluster.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
extraFlags = mkOption {
|
extraFlags = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
@ -162,6 +172,7 @@ in {
|
|||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
StateDirectory = "alertmanager";
|
||||||
DynamicUser = true; # implies PrivateTmp
|
DynamicUser = true; # implies PrivateTmp
|
||||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
|
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
|
||||||
WorkingDirectory = "/tmp";
|
WorkingDirectory = "/tmp";
|
||||||
|
@ -4,56 +4,102 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.traefik;
|
cfg = config.services.traefik;
|
||||||
configFile =
|
jsonValue = with types;
|
||||||
if cfg.configFile == null then
|
let
|
||||||
|
valueType = nullOr (oneOf [
|
||||||
|
bool
|
||||||
|
int
|
||||||
|
float
|
||||||
|
str
|
||||||
|
(lazyAttrsOf valueType)
|
||||||
|
(listOf valueType)
|
||||||
|
]) // {
|
||||||
|
description = "JSON value";
|
||||||
|
emptyValue.value = { };
|
||||||
|
};
|
||||||
|
in valueType;
|
||||||
|
dynamicConfigFile = if cfg.dynamicConfigFile == null then
|
||||||
pkgs.runCommand "config.toml" {
|
pkgs.runCommand "config.toml" {
|
||||||
buildInputs = [ pkgs.remarshal ];
|
buildInputs = [ pkgs.remarshal ];
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
} ''
|
} ''
|
||||||
remarshal -if json -of toml \
|
remarshal -if json -of toml \
|
||||||
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \
|
< ${
|
||||||
|
pkgs.writeText "dynamic_config.json"
|
||||||
|
(builtins.toJSON cfg.dynamicConfigOptions)
|
||||||
|
} \
|
||||||
> $out
|
> $out
|
||||||
''
|
''
|
||||||
else cfg.configFile;
|
else
|
||||||
|
cfg.dynamicConfigFile;
|
||||||
|
staticConfigFile = if cfg.staticConfigFile == null then
|
||||||
|
pkgs.runCommand "config.toml" {
|
||||||
|
buildInputs = [ pkgs.yj ];
|
||||||
|
preferLocalBuild = true;
|
||||||
|
} ''
|
||||||
|
yj -jt -i \
|
||||||
|
< ${
|
||||||
|
pkgs.writeText "static_config.json" (builtins.toJSON
|
||||||
|
(recursiveUpdate cfg.staticConfigOptions {
|
||||||
|
providers.file.filename = "${dynamicConfigFile}";
|
||||||
|
}))
|
||||||
|
} \
|
||||||
|
> $out
|
||||||
|
''
|
||||||
|
else
|
||||||
|
cfg.staticConfigFile;
|
||||||
in {
|
in {
|
||||||
options.services.traefik = {
|
options.services.traefik = {
|
||||||
enable = mkEnableOption "Traefik web server";
|
enable = mkEnableOption "Traefik web server";
|
||||||
|
|
||||||
configFile = mkOption {
|
staticConfigFile = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
example = literalExample "/path/to/config.toml";
|
example = literalExample "/path/to/static_config.toml";
|
||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
description = ''
|
description = ''
|
||||||
Path to verbatim traefik.toml to use.
|
Path to traefik's static configuration to use.
|
||||||
(Using that option has precedence over <literal>configOptions</literal>)
|
(Using that option has precedence over <literal>staticConfigOptions</literal> and <literal>dynamicConfigOptions</literal>)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
configOptions = mkOption {
|
staticConfigOptions = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Config for Traefik.
|
Static configuration for Traefik.
|
||||||
'';
|
'';
|
||||||
type = types.attrs;
|
type = jsonValue;
|
||||||
default = {
|
default = { entryPoints.http.address = ":80"; };
|
||||||
defaultEntryPoints = ["http"];
|
|
||||||
entryPoints.http.address = ":80";
|
|
||||||
};
|
|
||||||
example = {
|
example = {
|
||||||
defaultEntrypoints = [ "http" ];
|
entryPoints.web.address = ":8080";
|
||||||
web.address = ":8080";
|
|
||||||
entryPoints.http.address = ":80";
|
entryPoints.http.address = ":80";
|
||||||
|
|
||||||
file = {};
|
api = { };
|
||||||
frontends = {
|
|
||||||
frontend1 = {
|
|
||||||
backend = "backend1";
|
|
||||||
routes.test_1.rule = "Host:localhost";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
backends.backend1 = {
|
|
||||||
servers.server1.url = "http://localhost:8000";
|
dynamicConfigFile = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = literalExample "/path/to/dynamic_config.toml";
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
description = ''
|
||||||
|
Path to traefik's dynamic configuration to use.
|
||||||
|
(Using that option has precedence over <literal>dynamicConfigOptions</literal>)
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dynamicConfigOptions = mkOption {
|
||||||
|
description = ''
|
||||||
|
Dynamic configuration for Traefik.
|
||||||
|
'';
|
||||||
|
type = jsonValue;
|
||||||
|
default = { };
|
||||||
|
example = {
|
||||||
|
http.routers.router1 = {
|
||||||
|
rule = "Host(`localhost`)";
|
||||||
|
service = "service1";
|
||||||
|
};
|
||||||
|
|
||||||
|
http.services.service1.loadBalancer.servers =
|
||||||
|
[{ url = "http://localhost:8080"; }];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -84,16 +130,15 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [ "d '${cfg.dataDir}' 0700 traefik traefik - -" ];
|
||||||
"d '${cfg.dataDir}' 0700 traefik traefik - -"
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.traefik = {
|
systemd.services.traefik = {
|
||||||
description = "Traefik web server";
|
description = "Traefik web server";
|
||||||
after = [ "network-online.target" ];
|
after = [ "network-online.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}'';
|
ExecStart =
|
||||||
|
"${cfg.package}/bin/traefik --configfile=${staticConfigFile}";
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = "traefik";
|
User = "traefik";
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
@ -120,6 +165,6 @@ in {
|
|||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups.traefik = {};
|
users.groups.traefik = { };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,9 @@ let
|
|||||||
user = ${cfg.user}
|
user = ${cfg.user}
|
||||||
show-password-label = true
|
show-password-label = true
|
||||||
password-label-text = Password:
|
password-label-text = Password:
|
||||||
|
invalid-password-text = Invalid Password
|
||||||
show-input-cursor = true
|
show-input-cursor = true
|
||||||
|
password-alignment = right
|
||||||
|
|
||||||
[greeter-hotkeys]
|
[greeter-hotkeys]
|
||||||
mod-key = meta
|
mod-key = meta
|
||||||
@ -26,6 +28,8 @@ let
|
|||||||
[greeter-theme]
|
[greeter-theme]
|
||||||
font = Sans
|
font = Sans
|
||||||
font-size = 1em
|
font-size = 1em
|
||||||
|
font-weight = bold
|
||||||
|
font-style = normal
|
||||||
text-color = "#080800"
|
text-color = "#080800"
|
||||||
error-color = "#F8F8F0"
|
error-color = "#F8F8F0"
|
||||||
background-image = "${ldmcfg.background}"
|
background-image = "${ldmcfg.background}"
|
||||||
@ -36,6 +40,8 @@ let
|
|||||||
layout-space = 15
|
layout-space = 15
|
||||||
password-color = "#F8F8F0"
|
password-color = "#F8F8F0"
|
||||||
password-background-color = "#1B1D1E"
|
password-background-color = "#1B1D1E"
|
||||||
|
password-border-color = "#080800"
|
||||||
|
password-border-width = 2px
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
@ -184,7 +184,11 @@ in {
|
|||||||
''
|
''
|
||||||
Option "DragLockButtons" "L1 B1 L2 B2"
|
Option "DragLockButtons" "L1 B1 L2 B2"
|
||||||
'';
|
'';
|
||||||
description = "Additional options for libinput touchpad driver.";
|
description = ''
|
||||||
|
Additional options for libinput touchpad driver. See
|
||||||
|
<citerefentry><refentrytitle>libinput</refentrytitle><manvolnum>4</manvolnum></citerefentry>
|
||||||
|
for available options.";
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -114,7 +114,9 @@ in rec {
|
|||||||
(if isList value then value else [value]))
|
(if isList value then value else [value]))
|
||||||
as));
|
as));
|
||||||
|
|
||||||
generateUnits = type: units: upstreamUnits: upstreamWants:
|
generateUnits = generateUnits' true;
|
||||||
|
|
||||||
|
generateUnits' = allowCollisions: type: units: upstreamUnits: upstreamWants:
|
||||||
pkgs.runCommand "${type}-units"
|
pkgs.runCommand "${type}-units"
|
||||||
{ preferLocalBuild = true;
|
{ preferLocalBuild = true;
|
||||||
allowSubstitutes = false;
|
allowSubstitutes = false;
|
||||||
@ -182,8 +184,13 @@ in rec {
|
|||||||
if [ "$(readlink -f $i/$fn)" = /dev/null ]; then
|
if [ "$(readlink -f $i/$fn)" = /dev/null ]; then
|
||||||
ln -sfn /dev/null $out/$fn
|
ln -sfn /dev/null $out/$fn
|
||||||
else
|
else
|
||||||
|
${if allowCollisions then ''
|
||||||
mkdir -p $out/$fn.d
|
mkdir -p $out/$fn.d
|
||||||
ln -s $i/$fn $out/$fn.d/overrides.conf
|
ln -s $i/$fn $out/$fn.d/overrides.conf
|
||||||
|
'' else ''
|
||||||
|
echo "Found multiple derivations configuring $fn!"
|
||||||
|
exit 1
|
||||||
|
''}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
ln -fs $i/$fn $out/
|
ln -fs $i/$fn $out/
|
||||||
|
@ -116,7 +116,7 @@ in {
|
|||||||
in
|
in
|
||||||
mkMerge [
|
mkMerge [
|
||||||
(mkIf (cfg != {}) {
|
(mkIf (cfg != {}) {
|
||||||
environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits "nspawn" units [] []);
|
environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits' false "nspawn" units [] []);
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
systemd.targets.multi-user.wants = [ "machines.target" ];
|
systemd.targets.multi-user.wants = [ "machines.target" ];
|
||||||
|
@ -237,6 +237,38 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
createNetworkLink = i:
|
||||||
|
let
|
||||||
|
deviceDependency = if (config.boot.isContainer || i.name == "lo")
|
||||||
|
then []
|
||||||
|
else [ (subsystemDevice i.name) ];
|
||||||
|
in
|
||||||
|
nameValuePair "network-link-${i.name}"
|
||||||
|
{ description = "Link configuration of ${i.name}";
|
||||||
|
wantedBy = [ "network-interfaces.target" ];
|
||||||
|
before = [ "network-interfaces.target" ];
|
||||||
|
bindsTo = deviceDependency;
|
||||||
|
after = [ "network-pre.target" ] ++ deviceDependency;
|
||||||
|
path = [ pkgs.iproute ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
script =
|
||||||
|
''
|
||||||
|
echo "Configuring link..."
|
||||||
|
'' + optionalString (i.macAddress != null) ''
|
||||||
|
echo "setting MAC address to ${i.macAddress}..."
|
||||||
|
ip link set "${i.name}" address "${i.macAddress}"
|
||||||
|
'' + optionalString (i.mtu != null) ''
|
||||||
|
echo "setting MTU to ${toString i.mtu}..."
|
||||||
|
ip link set "${i.name}" mtu "${toString i.mtu}"
|
||||||
|
'' + ''
|
||||||
|
echo -n "bringing up interface... "
|
||||||
|
ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
createTunDevice = i: nameValuePair "${i.name}-netdev"
|
createTunDevice = i: nameValuePair "${i.name}-netdev"
|
||||||
{ description = "Virtual Network Interface ${i.name}";
|
{ description = "Virtual Network Interface ${i.name}";
|
||||||
bindsTo = [ "dev-net-tun.device" ];
|
bindsTo = [ "dev-net-tun.device" ];
|
||||||
@ -508,6 +540,7 @@ let
|
|||||||
});
|
});
|
||||||
|
|
||||||
in listToAttrs (
|
in listToAttrs (
|
||||||
|
map createNetworkLink interfaces ++
|
||||||
map configureAddrs interfaces ++
|
map configureAddrs interfaces ++
|
||||||
map createTunDevice (filter (i: i.virtual) interfaces))
|
map createTunDevice (filter (i: i.virtual) interfaces))
|
||||||
// mapAttrs' createBridgeDevice cfg.bridges
|
// mapAttrs' createBridgeDevice cfg.bridges
|
||||||
|
@ -94,7 +94,12 @@ in
|
|||||||
address = forEach (interfaceIps i)
|
address = forEach (interfaceIps i)
|
||||||
(ip: "${ip.address}/${toString ip.prefixLength}");
|
(ip: "${ip.address}/${toString ip.prefixLength}");
|
||||||
networkConfig.IPv6PrivacyExtensions = "kernel";
|
networkConfig.IPv6PrivacyExtensions = "kernel";
|
||||||
} ];
|
linkConfig = optionalAttrs (i.macAddress != null) {
|
||||||
|
MACAddress = i.macAddress;
|
||||||
|
} // optionalAttrs (i.mtu != null) {
|
||||||
|
MTUBytes = toString i.mtu;
|
||||||
|
};
|
||||||
|
}];
|
||||||
})))
|
})))
|
||||||
(mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: {
|
(mkMerge (flip mapAttrsToList cfg.bridges (name: bridge: {
|
||||||
netdevs."40-${name}" = {
|
netdevs."40-${name}" = {
|
||||||
|
@ -1031,6 +1031,11 @@ in
|
|||||||
message = ''
|
message = ''
|
||||||
Temporary addresses are only needed when IPv6 is enabled.
|
Temporary addresses are only needed when IPv6 is enabled.
|
||||||
'';
|
'';
|
||||||
|
})) ++ (forEach interfaces (i: {
|
||||||
|
assertion = (i.virtual && i.virtualType == "tun") -> i.macAddress == null;
|
||||||
|
message = ''
|
||||||
|
Setting a MAC Address for tun device ${i.name} isn't supported.
|
||||||
|
'';
|
||||||
})) ++ [
|
})) ++ [
|
||||||
{
|
{
|
||||||
assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId);
|
assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId);
|
||||||
@ -1140,38 +1145,7 @@ in
|
|||||||
${cfg.localCommands}
|
${cfg.localCommands}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
} // (listToAttrs (forEach interfaces (i:
|
|
||||||
let
|
|
||||||
deviceDependency = if (config.boot.isContainer || i.name == "lo")
|
|
||||||
then []
|
|
||||||
else [ (subsystemDevice i.name) ];
|
|
||||||
in
|
|
||||||
nameValuePair "network-link-${i.name}"
|
|
||||||
{ description = "Link configuration of ${i.name}";
|
|
||||||
wantedBy = [ "network-interfaces.target" ];
|
|
||||||
before = [ "network-interfaces.target" ];
|
|
||||||
bindsTo = deviceDependency;
|
|
||||||
after = [ "network-pre.target" ] ++ deviceDependency;
|
|
||||||
path = [ pkgs.iproute ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
};
|
||||||
script =
|
|
||||||
''
|
|
||||||
echo "Configuring link..."
|
|
||||||
'' + optionalString (i.macAddress != null) ''
|
|
||||||
echo "setting MAC address to ${i.macAddress}..."
|
|
||||||
ip link set "${i.name}" address "${i.macAddress}"
|
|
||||||
'' + optionalString (i.mtu != null) ''
|
|
||||||
echo "setting MTU to ${toString i.mtu}..."
|
|
||||||
ip link set "${i.name}" mtu "${toString i.mtu}"
|
|
||||||
'' + ''
|
|
||||||
echo -n "bringing up interface... "
|
|
||||||
ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
|
|
||||||
'';
|
|
||||||
})));
|
|
||||||
|
|
||||||
services.mstpd = mkIf needsMstpd { enable = true; };
|
services.mstpd = mkIf needsMstpd { enable = true; };
|
||||||
|
|
||||||
virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; };
|
virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; };
|
||||||
|
69
nixos/modules/virtualisation/hyperv-image.nix
Normal file
69
nixos/modules/virtualisation/hyperv-image.nix
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.hyperv;
|
||||||
|
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
hyperv = {
|
||||||
|
baseImageSize = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 2048;
|
||||||
|
description = ''
|
||||||
|
The size of the hyper-v base image in MiB.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
vmDerivationName = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
|
||||||
|
description = ''
|
||||||
|
The name of the derivation for the hyper-v appliance.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
vmFileName = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx";
|
||||||
|
description = ''
|
||||||
|
The file name of the hyper-v appliance.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
system.build.hypervImage = import ../../lib/make-disk-image.nix {
|
||||||
|
name = cfg.vmDerivationName;
|
||||||
|
postVM = ''
|
||||||
|
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=dynamic -O vhdx $diskImage $out/${cfg.vmFileName}
|
||||||
|
'';
|
||||||
|
format = "raw";
|
||||||
|
diskSize = cfg.baseImageSize;
|
||||||
|
partitionTableType = "efi";
|
||||||
|
inherit config lib pkgs;
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-label/nixos";
|
||||||
|
autoResize = true;
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-label/ESP";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.growPartition = true;
|
||||||
|
|
||||||
|
boot.loader.grub = {
|
||||||
|
version = 2;
|
||||||
|
device = "nodev";
|
||||||
|
efiSupport = true;
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.hypervGuest.enable = true;
|
||||||
|
};
|
||||||
|
}
|
@ -303,6 +303,8 @@ in
|
|||||||
timezone = handleTest ./timezone.nix {};
|
timezone = handleTest ./timezone.nix {};
|
||||||
tinydns = handleTest ./tinydns.nix {};
|
tinydns = handleTest ./tinydns.nix {};
|
||||||
tor = handleTest ./tor.nix {};
|
tor = handleTest ./tor.nix {};
|
||||||
|
# traefik test relies on docker-containers
|
||||||
|
traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {};
|
||||||
transmission = handleTest ./transmission.nix {};
|
transmission = handleTest ./transmission.nix {};
|
||||||
trac = handleTest ./trac.nix {};
|
trac = handleTest ./trac.nix {};
|
||||||
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
import ./make-test.nix ({ pkgs, ...} : {
|
import ./make-test-python.nix ({ lib, ...} : {
|
||||||
name = "flannel";
|
name = "flannel";
|
||||||
|
|
||||||
meta = with pkgs.stdenv.lib.maintainers; {
|
meta = with lib.maintainers; {
|
||||||
maintainers = [ offline ];
|
maintainers = [ offline ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nodes = let
|
nodes = let
|
||||||
flannelConfig = {
|
flannelConfig = { pkgs, ... } : {
|
||||||
services.flannel = {
|
services.flannel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
backend = {
|
||||||
|
Type = "udp";
|
||||||
|
Port = 8285;
|
||||||
|
};
|
||||||
network = "10.1.0.0/16";
|
network = "10.1.0.0/16";
|
||||||
iface = "eth1";
|
iface = "eth1";
|
||||||
etcd.endpoints = ["http://etcd:2379"];
|
etcd.endpoints = ["http://etcd:2379"];
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedUDPPorts = [ 8472 ];
|
networking.firewall.allowedUDPPorts = [ 8285 ];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
etcd = { ... }: {
|
etcd = { ... }: {
|
||||||
@ -32,25 +36,22 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
networking.firewall.allowedTCPPorts = [ 2379 ];
|
networking.firewall.allowedTCPPorts = [ 2379 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
node1 = { ... }: {
|
node1 = flannelConfig;
|
||||||
require = [flannelConfig];
|
node2 = flannelConfig;
|
||||||
};
|
|
||||||
|
|
||||||
node2 = { ... }: {
|
|
||||||
require = [flannelConfig];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
startAll;
|
start_all()
|
||||||
|
|
||||||
$node1->waitForUnit("flannel.service");
|
node1.wait_for_unit("flannel.service")
|
||||||
$node2->waitForUnit("flannel.service");
|
node2.wait_for_unit("flannel.service")
|
||||||
|
|
||||||
my $ip1 = $node1->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'");
|
node1.wait_until_succeeds("ip l show dev flannel0")
|
||||||
my $ip2 = $node2->succeed("ip -4 addr show flannel.1 | grep -oP '(?<=inet).*(?=/)'");
|
ip1 = node1.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'")
|
||||||
|
node2.wait_until_succeeds("ip l show dev flannel0")
|
||||||
|
ip2 = node2.succeed("ip -4 addr show flannel0 | grep -oP '(?<=inet).*(?=/)'")
|
||||||
|
|
||||||
$node1->waitUntilSucceeds("ping -c 1 $ip2");
|
node1.wait_until_succeeds(f"ping -c 1 {ip2}")
|
||||||
$node2->waitUntilSucceeds("ping -c 1 $ip1");
|
node2.wait_until_succeeds(f"ping -c 1 {ip1}")
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import ./make-test-python.nix (
|
import ./make-test-python.nix (
|
||||||
{ pkgs, ... }: let
|
{ pkgs, ... }: let
|
||||||
domain = "whatever.example.com";
|
domain = "whatever.example.com";
|
||||||
|
password = "false;foo;exit;withspecialcharacters";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
name = "iodine";
|
name = "iodine";
|
||||||
@ -21,7 +22,7 @@ import ./make-test-python.nix (
|
|||||||
services.iodine.server = {
|
services.iodine.server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ip = "10.53.53.1/24";
|
ip = "10.53.53.1/24";
|
||||||
passwordFile = "${builtins.toFile "password" "foo"}";
|
passwordFile = "${builtins.toFile "password" password}";
|
||||||
inherit domain;
|
inherit domain;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ import ./make-test-python.nix (
|
|||||||
server = domain;
|
server = domain;
|
||||||
};
|
};
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"f /root/pw 0666 root root - foo"
|
"f /root/pw 0666 root root - ${password}"
|
||||||
];
|
];
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.nagiosPluginsOfficial
|
pkgs.nagiosPluginsOfficial
|
||||||
|
@ -200,6 +200,7 @@ let
|
|||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1 = {
|
interfaces.eth1 = {
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
ipv4.addresses = mkOverride 0 [ ];
|
||||||
|
mtu = 1343;
|
||||||
useDHCP = true;
|
useDHCP = true;
|
||||||
};
|
};
|
||||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
||||||
@ -216,6 +217,9 @@ let
|
|||||||
with subtest("Wait until we have an ip address on each interface"):
|
with subtest("Wait until we have an ip address on each interface"):
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
|
||||||
|
|
||||||
|
with subtest("ensure MTU is set"):
|
||||||
|
assert "mtu 1343" in client.succeed("ip link show dev eth1")
|
||||||
|
|
||||||
with subtest("Test vlan 1"):
|
with subtest("Test vlan 1"):
|
||||||
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
||||||
client.wait_until_succeeds("ping -c 1 192.168.1.2")
|
client.wait_until_succeeds("ping -c 1 192.168.1.2")
|
||||||
@ -455,11 +459,14 @@ let
|
|||||||
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||||
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
|
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
|
||||||
virtual = true;
|
virtual = true;
|
||||||
|
mtu = 1342;
|
||||||
|
macAddress = "02:de:ad:be:ef:01";
|
||||||
};
|
};
|
||||||
networking.interfaces.tun0 = {
|
networking.interfaces.tun0 = {
|
||||||
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||||
ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
|
ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
|
||||||
virtual = true;
|
virtual = true;
|
||||||
|
mtu = 1343;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -471,7 +478,7 @@ let
|
|||||||
|
|
||||||
with subtest("Wait for networking to come up"):
|
with subtest("Wait for networking to come up"):
|
||||||
machine.start()
|
machine.start()
|
||||||
machine.wait_for_unit("network-online.target")
|
machine.wait_for_unit("network.target")
|
||||||
|
|
||||||
with subtest("Test interfaces set up"):
|
with subtest("Test interfaces set up"):
|
||||||
list = machine.succeed("ip tuntap list | sort").strip()
|
list = machine.succeed("ip tuntap list | sort").strip()
|
||||||
@ -486,7 +493,12 @@ let
|
|||||||
""".format(
|
""".format(
|
||||||
list, targetList
|
list, targetList
|
||||||
)
|
)
|
||||||
|
with subtest("Test MTU and MAC Address are configured"):
|
||||||
|
assert "mtu 1342" in machine.succeed("ip link show dev tap0")
|
||||||
|
assert "mtu 1343" in machine.succeed("ip link show dev tun0")
|
||||||
|
assert "02:de:ad:be:ef:01" in machine.succeed("ip link show dev tap0")
|
||||||
|
'' # network-addresses-* only exist in scripted networking
|
||||||
|
+ optionalString (!networkd) ''
|
||||||
with subtest("Test interfaces clean up"):
|
with subtest("Test interfaces clean up"):
|
||||||
machine.succeed("systemctl stop network-addresses-tap0")
|
machine.succeed("systemctl stop network-addresses-tap0")
|
||||||
machine.sleep(10)
|
machine.sleep(10)
|
||||||
@ -602,17 +614,17 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
targetIPv4Table = """
|
targetIPv4Table = [
|
||||||
10.0.0.0/16 proto static scope link mtu 1500
|
"10.0.0.0/16 proto static scope link mtu 1500",
|
||||||
192.168.1.0/24 proto kernel scope link src 192.168.1.2
|
"192.168.1.0/24 proto kernel scope link src 192.168.1.2",
|
||||||
192.168.2.0/24 via 192.168.1.1 proto static
|
"192.168.2.0/24 via 192.168.1.1 proto static",
|
||||||
""".strip()
|
]
|
||||||
|
|
||||||
targetIPv6Table = """
|
targetIPv6Table = [
|
||||||
2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium
|
"2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium",
|
||||||
2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium
|
"2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium",
|
||||||
fdfd:b3f0::/48 proto static metric 1024 pref medium
|
"fdfd:b3f0::/48 proto static metric 1024 pref medium",
|
||||||
""".strip()
|
]
|
||||||
|
|
||||||
machine.start()
|
machine.start()
|
||||||
machine.wait_for_unit("network.target")
|
machine.wait_for_unit("network.target")
|
||||||
@ -620,9 +632,9 @@ let
|
|||||||
with subtest("test routing tables"):
|
with subtest("test routing tables"):
|
||||||
ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip()
|
ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip()
|
||||||
ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip()
|
ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip()
|
||||||
assert (
|
assert [
|
||||||
ipv4Table == targetIPv4Table
|
l.strip() for l in ipv4Table.splitlines()
|
||||||
), """
|
] == targetIPv4Table, """
|
||||||
The IPv4 routing table does not match the expected one:
|
The IPv4 routing table does not match the expected one:
|
||||||
Result:
|
Result:
|
||||||
{}
|
{}
|
||||||
@ -631,9 +643,9 @@ let
|
|||||||
""".format(
|
""".format(
|
||||||
ipv4Table, targetIPv4Table
|
ipv4Table, targetIPv4Table
|
||||||
)
|
)
|
||||||
assert (
|
assert [
|
||||||
ipv6Table == targetIPv6Table
|
l.strip() for l in ipv6Table.splitlines()
|
||||||
), """
|
] == targetIPv6Table, """
|
||||||
The IPv6 routing table does not match the expected one:
|
The IPv6 routing table does not match the expected one:
|
||||||
Result:
|
Result:
|
||||||
{}
|
{}
|
||||||
|
87
nixos/tests/traefik.nix
Normal file
87
nixos/tests/traefik.nix
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Test Traefik as a reverse proxy of a local web service
|
||||||
|
# and a Docker container.
|
||||||
|
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
|
name = "traefik";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ joko ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
client = { config, pkgs, ... }: {
|
||||||
|
environment.systemPackages = [ pkgs.curl ];
|
||||||
|
};
|
||||||
|
traefik = { config, pkgs, ... }: {
|
||||||
|
docker-containers.nginx = {
|
||||||
|
extraDockerOptions = [
|
||||||
|
"-l" "traefik.enable=true"
|
||||||
|
"-l" "traefik.http.routers.nginx.entrypoints=web"
|
||||||
|
"-l" "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)"
|
||||||
|
];
|
||||||
|
image = "nginx-container";
|
||||||
|
imageFile = pkgs.dockerTools.examples.nginx;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
|
||||||
|
services.traefik = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
dynamicConfigOptions = {
|
||||||
|
http.routers.simplehttp = {
|
||||||
|
rule = "Host(`simplehttp.traefik.test`)";
|
||||||
|
entryPoints = [ "web" ];
|
||||||
|
service = "simplehttp";
|
||||||
|
};
|
||||||
|
|
||||||
|
http.services.simplehttp = {
|
||||||
|
loadBalancer.servers = [{
|
||||||
|
url = "http://127.0.0.1:8000";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
staticConfigOptions = {
|
||||||
|
global = {
|
||||||
|
checkNewVersion = false;
|
||||||
|
sendAnonymousUsage = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
entryPoints.web.address = ":80";
|
||||||
|
|
||||||
|
providers.docker.exposedByDefault = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.simplehttp = {
|
||||||
|
script = "${pkgs.python3}/bin/python -m http.server 8000";
|
||||||
|
serviceConfig.Type = "simple";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.traefik.extraGroups = [ "docker" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
|
||||||
|
traefik.wait_for_unit("docker-nginx.service")
|
||||||
|
traefik.wait_until_succeeds("docker ps | grep nginx-container")
|
||||||
|
traefik.wait_for_unit("simplehttp.service")
|
||||||
|
traefik.wait_for_unit("traefik.service")
|
||||||
|
traefik.wait_for_open_port(80)
|
||||||
|
traefik.wait_for_unit("multi-user.target")
|
||||||
|
|
||||||
|
client.wait_for_unit("multi-user.target")
|
||||||
|
|
||||||
|
with subtest("Check that a container can be reached via Traefik"):
|
||||||
|
assert "Hello from NGINX" in client.succeed(
|
||||||
|
"curl -sSf -H Host:nginx.traefik.test http://traefik/"
|
||||||
|
)
|
||||||
|
|
||||||
|
with subtest("Check that dynamic configuration works"):
|
||||||
|
assert "Directory listing for " in client.succeed(
|
||||||
|
"curl -sSf -H Host:simplehttp.traefik.test http://traefik/"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
})
|
@ -1,14 +1,51 @@
|
|||||||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen
|
{ stdenv
|
||||||
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
|
, fetchgit
|
||||||
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg
|
, alsaLib
|
||||||
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
, aubio
|
||||||
, libusb, libuuid, libxml2, libxslt, lilv, lrdf, lv2, makeWrapper
|
, boost
|
||||||
, perl, pkgconfig, python2, rubberband, serd, sord, sratom
|
, cairomm
|
||||||
, taglib, vamp-plugin-sdk, dbus, fftw, pango, suil, libarchive
|
, curl
|
||||||
, wafHook }:
|
, doxygen
|
||||||
|
, fftwSinglePrec
|
||||||
|
, flac
|
||||||
|
, glibc
|
||||||
|
, glibmm
|
||||||
|
, graphviz
|
||||||
|
, gtkmm2
|
||||||
|
, libjack2
|
||||||
|
, liblo
|
||||||
|
, libogg
|
||||||
|
, libsamplerate
|
||||||
|
, libsigcxx
|
||||||
|
, libsndfile
|
||||||
|
, libusb1
|
||||||
|
, fluidsynth_1
|
||||||
|
, hidapi
|
||||||
|
, libltc
|
||||||
|
, qm-dsp
|
||||||
|
, libxml2
|
||||||
|
, lilv
|
||||||
|
, lrdf
|
||||||
|
, lv2
|
||||||
|
, makeWrapper
|
||||||
|
, perl
|
||||||
|
, pkg-config
|
||||||
|
, itstool
|
||||||
|
, python2
|
||||||
|
, rubberband
|
||||||
|
, serd
|
||||||
|
, sord
|
||||||
|
, sratom
|
||||||
|
, taglib
|
||||||
|
, vamp-plugin-sdk
|
||||||
|
, dbus
|
||||||
|
, fftw
|
||||||
|
, pango
|
||||||
|
, suil
|
||||||
|
, libarchive
|
||||||
|
, wafHook
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
||||||
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used
|
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used
|
||||||
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the
|
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the
|
||||||
@ -18,10 +55,7 @@ let
|
|||||||
|
|
||||||
# Version to build.
|
# Version to build.
|
||||||
tag = "5.12";
|
tag = "5.12";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "ardour-${tag}";
|
name = "ardour-${tag}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
@ -30,46 +64,84 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ wafHook ];
|
nativeBuildInputs = [
|
||||||
buildInputs =
|
wafHook
|
||||||
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac
|
makeWrapper
|
||||||
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
|
pkg-config
|
||||||
libmad libogg librdf_raptor librdf_rasqal libsamplerate
|
itstool
|
||||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lrdf lv2
|
doxygen
|
||||||
makeWrapper pango perl pkgconfig python2 rubberband serd sord
|
graphviz # for dot
|
||||||
sratom suil taglib vamp-plugin-sdk libarchive
|
perl
|
||||||
|
python2
|
||||||
];
|
];
|
||||||
|
|
||||||
# ardour's wscript has a "tarball" target but that required the git revision
|
buildInputs = [
|
||||||
# be available. Since this is an unzipped tarball fetched from github we
|
alsaLib
|
||||||
# have to do that ourself.
|
aubio
|
||||||
patchPhase = ''
|
boost
|
||||||
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
cairomm
|
||||||
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
|
curl
|
||||||
patchShebangs ./tools/
|
dbus
|
||||||
'';
|
fftw
|
||||||
|
fftwSinglePrec
|
||||||
|
flac
|
||||||
|
glibmm
|
||||||
|
gtkmm2
|
||||||
|
libjack2
|
||||||
|
liblo
|
||||||
|
libogg
|
||||||
|
libsamplerate
|
||||||
|
libsigcxx
|
||||||
|
libsndfile
|
||||||
|
libusb1
|
||||||
|
fluidsynth_1
|
||||||
|
hidapi
|
||||||
|
libltc
|
||||||
|
qm-dsp
|
||||||
|
libxml2
|
||||||
|
lilv
|
||||||
|
lrdf
|
||||||
|
lv2
|
||||||
|
pango
|
||||||
|
rubberband
|
||||||
|
serd
|
||||||
|
sord
|
||||||
|
sratom
|
||||||
|
suil
|
||||||
|
taglib
|
||||||
|
vamp-plugin-sdk
|
||||||
|
libarchive
|
||||||
|
];
|
||||||
|
|
||||||
wafConfigureFlags = [
|
wafConfigureFlags = [
|
||||||
"--optimize"
|
"--optimize"
|
||||||
"--docs"
|
"--docs"
|
||||||
|
"--use-external-libs"
|
||||||
|
"--freedesktop"
|
||||||
"--with-backends=jack,alsa,dummy"
|
"--with-backends=jack,alsa,dummy"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
|
||||||
|
|
||||||
|
# ardour's wscript has a "tarball" target but that required the git revision
|
||||||
|
# be available. Since this is an unzipped tarball fetched from github we
|
||||||
|
# have to do that ourself.
|
||||||
|
postPatch = ''
|
||||||
|
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
||||||
|
patchShebangs ./tools/
|
||||||
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install desktop file
|
# wscript does not install these for some reason
|
||||||
mkdir -p "$out/share/applications"
|
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
|
||||||
cat > "$out/share/applications/ardour.desktop" << EOF
|
-t "$out/share/mime/packages"
|
||||||
[Desktop Entry]
|
install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
|
||||||
Name=Ardour 5
|
-t "$out/share/applications"
|
||||||
GenericName=Digital Audio Workstation
|
for size in 16 22 32 48 256 512; do
|
||||||
Comment=Multitrack harddisk recorder
|
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
|
||||||
Exec=$out/bin/ardour5
|
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
|
||||||
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png
|
done
|
||||||
Terminal=false
|
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
|
||||||
Type=Application
|
|
||||||
X-MultipleArgs=false
|
|
||||||
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
|
|
||||||
EOF
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "carla";
|
pname = "carla";
|
||||||
version = "2.0.0";
|
version = "2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "falkTX";
|
owner = "falkTX";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0fqgncqlr86n38yy7pa118mswfacmfczj7w9xx6c6k0jav3wk29k";
|
sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "lightdm-mini-greeter";
|
pname = "lightdm-mini-greeter";
|
||||||
version = "0.3.4";
|
version = "0.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "prikhi";
|
owner = "prikhi";
|
||||||
repo = "lightdm-mini-greeter";
|
repo = "lightdm-mini-greeter";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1qi0bsqi8z2zv3303ww0kd7bciz6qx8na5bkvgrqlwyvq31czai5";
|
sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
|
||||||
@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ mnacamura prikhi ];
|
maintainers = with maintainers; [ mnacamura prikhi ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
changelog = "https://github.com/prikhi/lightdm-mini-greeter/blob/master/CHANGELOG.md";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
{ stdenv, fetchurl
|
{ stdenv, fetchurl, ncurses, gpm }:
|
||||||
, ncurses, gpm
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
pname = "jupp";
|
pname = "jupp";
|
||||||
version = "3.1";
|
version = "39";
|
||||||
srcName = "joe-3.1jupp31";
|
srcName = "joe-3.1${pname}${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
urls = [
|
urls = [
|
||||||
"https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
|
"https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
|
||||||
"https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
|
"https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
|
||||||
sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s";
|
sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d";
|
||||||
};
|
};
|
||||||
|
|
||||||
preConfigure = "chmod +x ./configure";
|
preConfigure = "chmod +x ./configure";
|
||||||
@ -37,7 +35,7 @@ stdenv.mkDerivation rec {
|
|||||||
and has a lot of bugs fixed. It is based upon an older version of joe
|
and has a lot of bugs fixed. It is based upon an older version of joe
|
||||||
because these behave better overall.
|
because these behave better overall.
|
||||||
'';
|
'';
|
||||||
homepage = "http://mirbsd.de/jupp";
|
homepage = "http://www.mirbsd.org/jupp.htm";
|
||||||
license = licenses.gpl1;
|
license = licenses.gpl1;
|
||||||
maintainers = with maintainers; [ AndersonTorres ];
|
maintainers = with maintainers; [ AndersonTorres ];
|
||||||
};
|
};
|
||||||
|
@ -1,54 +1,62 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, pkgconfig, perlPackages, libXft
|
{ stdenv
|
||||||
, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2
|
, boehmgc
|
||||||
, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper
|
, boost
|
||||||
, gsl, gtkspell2, cairo, python2, poppler, imagemagick, libwpg, librevenge
|
, cairo
|
||||||
, libvisio, libcdr, libexif, potrace, cmake
|
, cmake
|
||||||
, librsvg, wrapGAppsHook
|
, fetchpatch
|
||||||
|
, fetchurl
|
||||||
|
, gettext
|
||||||
|
, glib
|
||||||
|
, glibmm
|
||||||
|
, gsl
|
||||||
|
, gtkmm2
|
||||||
|
, gtkspell2
|
||||||
|
, imagemagick
|
||||||
|
, lcms
|
||||||
|
, libcdr
|
||||||
|
, libexif
|
||||||
|
, libpng
|
||||||
|
, librevenge
|
||||||
|
, librsvg
|
||||||
|
, libsigcxx
|
||||||
|
, libvisio
|
||||||
|
, libwpg
|
||||||
|
, libXft
|
||||||
|
, libxml2
|
||||||
|
, libxslt
|
||||||
|
, makeWrapper
|
||||||
|
, perlPackages
|
||||||
|
, pkg-config
|
||||||
|
, poppler
|
||||||
|
, popt
|
||||||
|
, potrace
|
||||||
|
, python3
|
||||||
|
, wrapGAppsHook
|
||||||
|
, zlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
python2Env = python2.withPackages(ps: with ps;
|
python3Env = python3.withPackages
|
||||||
[ numpy lxml scour ]);
|
(ps: with ps; [
|
||||||
|
numpy
|
||||||
|
lxml
|
||||||
|
scour
|
||||||
|
]);
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "inkscape-0.92.4";
|
pname = "inkscape";
|
||||||
|
version = "0.92.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2";
|
url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "0pjinhjibfsz1aywdpgpj3k23xrsszpj4a1ya5562dkv2yl2vv2p";
|
sha256 = "ge5/aeK9ZKlzQ9g5Wkp6eQWyG4YVZu1eXZF5F41Rmgs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
(fetchpatch {
|
|
||||||
name = "inkscape-poppler_0_76_compat.patch";
|
|
||||||
url = "https://gitlab.com/inkscape/inkscape/commit/e831b034746f8dc3c3c1b88372751f6dcb974831.diff";
|
|
||||||
sha256 = "096rdyi6ppjq1h9jwwsm9hb99nggfrfinik8rm23jkn4h2zl01zf";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "inkscape-poppler_0_82_compat.patch";
|
|
||||||
url = "https://gitlab.com/inkscape/inkscape/commit/835b6bb62be565efab986d5a3f30a672ad56c7eb.patch";
|
|
||||||
sha256 = "02c6sxi2w52b885vr3pgani6kvxp9gdqqk2jgiykkdzv70hhrnm7";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
name = "inkscape-poppler_0_83_compat.patch";
|
|
||||||
url = "https://gitlab.com/inkscape/inkscape/commit/b5360a807b12d4e8318475ffd0464b84882788b5.patch";
|
|
||||||
sha256 = "1p44rr2q2i3zkd1y1j7xgdcbgx8yvlq6hq92im8s0bkjby6p5cpz";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# Inkscape hits the ARGMAX when linking on macOS. It appears to be
|
# Inkscape hits the ARGMAX when linking on macOS. It appears to be
|
||||||
# CMake’s ARGMAX check doesn’t offer enough padding for NIX_LDFLAGS.
|
# CMake’s ARGMAX check doesn’t offer enough padding for NIX_LDFLAGS.
|
||||||
# Setting strictDeps it avoids duplicating some dependencies so it
|
# Setting strictDeps it avoids duplicating some dependencies so it
|
||||||
# will leave us under ARGMAX.
|
# will leave us under ARGMAX.
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
||||||
unpackPhase = ''
|
|
||||||
cp $src ${name}.tar.bz2
|
|
||||||
tar xvjf ${name}.tar.bz2 > /dev/null
|
|
||||||
cd ${name}
|
|
||||||
'';
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs share/extensions
|
patchShebangs share/extensions
|
||||||
patchShebangs fix-roff-punct
|
patchShebangs fix-roff-punct
|
||||||
@ -56,24 +64,52 @@ stdenv.mkDerivation rec {
|
|||||||
# Python is used at run-time to execute scripts, e.g., those from
|
# Python is used at run-time to execute scripts, e.g., those from
|
||||||
# the "Effects" menu.
|
# the "Effects" menu.
|
||||||
substituteInPlace src/extension/implementation/script.cpp \
|
substituteInPlace src/extension/implementation/script.cpp \
|
||||||
--replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"'
|
--replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig cmake makeWrapper python2Env wrapGAppsHook ]
|
nativeBuildInputs = [
|
||||||
++ (with perlPackages; [ perl XMLParser ]);
|
pkg-config
|
||||||
|
cmake
|
||||||
|
makeWrapper
|
||||||
|
python3Env
|
||||||
|
wrapGAppsHook
|
||||||
|
] ++ (with perlPackages; [
|
||||||
|
perl
|
||||||
|
XMLParser
|
||||||
|
]);
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libXft libpng zlib popt boehmgc
|
boehmgc
|
||||||
libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext
|
boost
|
||||||
gsl poppler imagemagick libwpg librevenge
|
gettext
|
||||||
libvisio libcdr libexif potrace
|
glib
|
||||||
|
glibmm
|
||||||
|
gsl
|
||||||
|
gtkmm2
|
||||||
|
imagemagick
|
||||||
|
lcms
|
||||||
|
libcdr
|
||||||
|
libexif
|
||||||
|
libpng
|
||||||
|
librevenge
|
||||||
librsvg # for loading icons
|
librsvg # for loading icons
|
||||||
|
libsigcxx
|
||||||
python2Env perlPackages.perl
|
libvisio
|
||||||
] ++ stdenv.lib.optional (!stdenv.isDarwin) gtkspell2
|
libwpg
|
||||||
++ stdenv.lib.optional stdenv.isDarwin cairo;
|
libXft
|
||||||
|
libxml2
|
||||||
enableParallelBuilding = true;
|
libxslt
|
||||||
|
perlPackages.perl
|
||||||
|
poppler
|
||||||
|
popt
|
||||||
|
potrace
|
||||||
|
python3Env
|
||||||
|
zlib
|
||||||
|
] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
|
||||||
|
gtkspell2
|
||||||
|
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||||
|
cairo
|
||||||
|
];
|
||||||
|
|
||||||
# Make sure PyXML modules can be found at run-time.
|
# Make sure PyXML modules can be found at run-time.
|
||||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
@ -82,9 +118,10 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
license = "GPL";
|
|
||||||
homepage = "https://www.inkscape.org";
|
|
||||||
description = "Vector graphics editor";
|
description = "Vector graphics editor";
|
||||||
|
homepage = "https://www.inkscape.org";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = [ maintainers.jtojnar ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Inkscape is a feature-rich vector graphics editor that edits
|
Inkscape is a feature-rich vector graphics editor that edits
|
||||||
|
@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
|
|||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
|
url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
|
||||||
sha256 = {
|
sha256 = {
|
||||||
aarch64-linux = "1lcpj1mgkvksq1d08ibh59y0dmdh7zm77wi5ziqhg3p5g9nxyasd";
|
aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
|
||||||
armv7l-linux = "0sljy06302x567jqw5lagbyhpc3j140jk4wccacxjrbb6hcx3l42";
|
armv7l-linux = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
|
||||||
x86_64-darwin = "1b058s9kny026q395nj99v8hggxkgv43nnjkmx1a2siajw0db94c";
|
x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
|
||||||
x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
|
x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
|
||||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
};
|
};
|
||||||
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
|
|||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
{ stdenv, cmake, fetchFromGitHub, pkgconfig, boost, exiv2, fftwFloat, gsl
|
{ stdenv, mkDerivation, cmake, fetchFromGitHub, pkgconfig
|
||||||
|
, boost, exiv2, fftwFloat, gsl
|
||||||
, ilmbase, lcms2, libraw, libtiff, openexr
|
, ilmbase, lcms2, libraw, libtiff, openexr
|
||||||
, qtbase, qtdeclarative, qttools, qtwebengine, eigen
|
, qtbase, qtdeclarative, qttools, qtwebengine, eigen
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "luminance-hdr";
|
pname = "luminance-hdr";
|
||||||
version = "2.6.0";
|
version = "2.6.0";
|
||||||
|
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
{ mkDerivation, fetchFromGitHub, lib
|
{ mkDerivation
|
||||||
, pkgconfig, cmake
|
, lib
|
||||||
, exiv2, qtbase, qtimageformats, qtsvg
|
, fetchFromGitHub
|
||||||
|
|
||||||
|
, cmake
|
||||||
|
, pkgconfig
|
||||||
|
|
||||||
|
, exiv2
|
||||||
|
, mpv
|
||||||
|
, qtbase
|
||||||
|
, qtimageformats
|
||||||
|
, qtsvg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
@ -14,33 +23,32 @@ mkDerivation rec {
|
|||||||
sha256 = "0cmya06j466v0pirhxbzbj1vbz0346y7rbc1gbv4n9xcp6c6bln6";
|
sha256 = "0cmya06j466v0pirhxbzbj1vbz0346y7rbc1gbv4n9xcp6c6bln6";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
# Video support appears to be broken; the following gets printed upon
|
|
||||||
# attempting to view an mp4, webm, or mkv (and probably all video formats):
|
|
||||||
#
|
|
||||||
# [VideoPlayerInitProxy] Error - could not load player library
|
|
||||||
# "qimgv_player_mpv"
|
|
||||||
#
|
|
||||||
# GIFs are unaffected. If this ever gets addressed, all that is necessary is
|
|
||||||
# to add `mpv` to the arguments list and to `buildInputs`, and to remove
|
|
||||||
# `cmakeFlags`.
|
|
||||||
"-DVIDEO_SUPPORT=OFF"
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkgconfig
|
|
||||||
cmake
|
cmake
|
||||||
|
pkgconfig
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
exiv2
|
exiv2
|
||||||
|
mpv
|
||||||
qtbase
|
qtbase
|
||||||
qtimageformats
|
qtimageformats
|
||||||
qtsvg
|
qtsvg
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i "s@/usr/bin/mpv@${mpv}/bin/mpv@" \
|
||||||
|
qimgv/settings.cpp
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Wrap the library path so it can see `libqimgv_player_mpv.so`, which is used
|
||||||
|
# to play video files within qimgv itself.
|
||||||
|
qtWrapperArgs = [
|
||||||
|
"--prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Qt5 image viewer with optional video support";
|
description = "A Qt5 image viewer with optional video support";
|
||||||
homepage = "https://github.com/easymodo/qimgv";
|
homepage = "https://github.com/easymodo/qimgv";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -90,6 +90,7 @@ let
|
|||||||
kalarm = callPackage ./kalarm.nix {};
|
kalarm = callPackage ./kalarm.nix {};
|
||||||
kalarmcal = callPackage ./kalarmcal.nix {};
|
kalarmcal = callPackage ./kalarmcal.nix {};
|
||||||
kate = callPackage ./kate.nix {};
|
kate = callPackage ./kate.nix {};
|
||||||
|
kbreakout = callPackage ./kbreakout.nix {};
|
||||||
kcachegrind = callPackage ./kcachegrind.nix {};
|
kcachegrind = callPackage ./kcachegrind.nix {};
|
||||||
kcalc = callPackage ./kcalc.nix {};
|
kcalc = callPackage ./kcalc.nix {};
|
||||||
kcalutils = callPackage ./kcalutils.nix {};
|
kcalutils = callPackage ./kcalutils.nix {};
|
||||||
@ -146,6 +147,7 @@ let
|
|||||||
krdc = callPackage ./krdc.nix {};
|
krdc = callPackage ./krdc.nix {};
|
||||||
krfb = callPackage ./krfb.nix {};
|
krfb = callPackage ./krfb.nix {};
|
||||||
kruler = callPackage ./kruler.nix {};
|
kruler = callPackage ./kruler.nix {};
|
||||||
|
kspaceduel = callPackage ./kspaceduel.nix {};
|
||||||
ksudoku = callPackage ./ksudoku.nix {};
|
ksudoku = callPackage ./ksudoku.nix {};
|
||||||
ksystemlog = callPackage ./ksystemlog.nix {};
|
ksystemlog = callPackage ./ksystemlog.nix {};
|
||||||
ktnef = callPackage ./ktnef.nix {};
|
ktnef = callPackage ./ktnef.nix {};
|
||||||
|
22
pkgs/applications/kde/kbreakout.nix
Normal file
22
pkgs/applications/kde/kbreakout.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ mkDerivation, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, cmake
|
||||||
|
, kdbusaddons
|
||||||
|
, ki18n
|
||||||
|
, kconfigwidgets
|
||||||
|
, kcrash
|
||||||
|
, kxmlgui
|
||||||
|
, libkdegames
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation {
|
||||||
|
name = "kbreakout";
|
||||||
|
meta.license = with lib.licenses; [ lgpl21 gpl3 ];
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake extra-cmake-modules
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
|
||||||
|
];
|
||||||
|
}
|
22
pkgs/applications/kde/kspaceduel.nix
Normal file
22
pkgs/applications/kde/kspaceduel.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ mkDerivation, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, cmake
|
||||||
|
, kdbusaddons
|
||||||
|
, ki18n
|
||||||
|
, kconfigwidgets
|
||||||
|
, kcrash
|
||||||
|
, kxmlgui
|
||||||
|
, libkdegames
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation {
|
||||||
|
name = "kspaceduel";
|
||||||
|
meta.license = with lib.licenses; [ lgpl21 gpl3 ];
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake extra-cmake-modules
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
|
||||||
|
];
|
||||||
|
}
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "blugon";
|
pname = "blugon";
|
||||||
version = "1.12.0";
|
version = "1.12.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jumper149";
|
owner = "jumper149";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0vdhq8v011awhpkccbcmigj9c46widyzh0m5knafapanai3kv7ii";
|
sha256 = "1i67v8jxvavgax3dwvns200iwwdcvgki04liq0x64q52lg0vrh7m";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python3 libX11 libXrandr ];
|
buildInputs = [ python3 libX11 libXrandr ];
|
||||||
|
@ -122,7 +122,16 @@ mkDerivation rec {
|
|||||||
export PODOFO_INC_DIR=${podofo.dev}/include/podofo
|
export PODOFO_INC_DIR=${podofo.dev}/include/podofo
|
||||||
export PODOFO_LIB_DIR=${podofo.lib}/lib
|
export PODOFO_LIB_DIR=${podofo.lib}/lib
|
||||||
export SIP_BIN=${pypkgs.sip}/bin/sip
|
export SIP_BIN=${pypkgs.sip}/bin/sip
|
||||||
${pypkgs.python.interpreter} setup.py install --prefix=$out
|
export XDG_DATA_HOME=$out/share
|
||||||
|
export XDG_UTILS_INSTALL_MODE="user"
|
||||||
|
|
||||||
|
${pypkgs.python.interpreter} setup.py install --root=$out \
|
||||||
|
--prefix=$out \
|
||||||
|
--libdir=$out/lib \
|
||||||
|
--staging-root=$out \
|
||||||
|
--staging-libdir=$out/lib \
|
||||||
|
--staging-sharedir=$out/share
|
||||||
|
|
||||||
|
|
||||||
PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
|
PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
|
||||||
$out/lib/calibre/calibre/ebooks/metadata/*.py
|
$out/lib/calibre/calibre/ebooks/metadata/*.py
|
||||||
@ -131,13 +140,6 @@ mkDerivation rec {
|
|||||||
sed -i "s/env python[0-9.]*/python/" $PYFILES
|
sed -i "s/env python[0-9.]*/python/" $PYFILES
|
||||||
sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
|
sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
|
||||||
|
|
||||||
# Replace @out@ by the output path.
|
|
||||||
mkdir -p $out/share/applications/
|
|
||||||
cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/
|
|
||||||
for entry in $out/share/applications/*.desktop; do
|
|
||||||
substituteAllInPlace $entry
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p $out/share
|
mkdir -p $out/share
|
||||||
cp -a man-pages $out/share/man
|
cp -a man-pages $out/share/man
|
||||||
|
|
||||||
@ -165,79 +167,6 @@ mkDerivation rec {
|
|||||||
|
|
||||||
disallowedReferences = [ podofo.dev ];
|
disallowedReferences = [ podofo.dev ];
|
||||||
|
|
||||||
calibreDesktopItem = makeDesktopItem {
|
|
||||||
fileValidation = false; # fails before substitution
|
|
||||||
name = "calibre-gui";
|
|
||||||
desktopName = "calibre";
|
|
||||||
exec = "@out@/bin/calibre --detach %F";
|
|
||||||
genericName = "E-book library management";
|
|
||||||
icon = "@out@/share/calibre/images/library.png";
|
|
||||||
comment = "Manage, convert, edit, and read e-books";
|
|
||||||
mimeType = lib.concatStringsSep ";" [
|
|
||||||
"application/x-mobipocket-subscription"
|
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
||||||
"text/html"
|
|
||||||
"application/x-cbc"
|
|
||||||
"application/ereader"
|
|
||||||
"application/oebps-package+xml"
|
|
||||||
"image/vnd.djvu"
|
|
||||||
"application/x-sony-bbeb"
|
|
||||||
"application/vnd.ms-word.document.macroenabled.12"
|
|
||||||
"text/rtf"
|
|
||||||
"text/x-markdown"
|
|
||||||
"application/pdf"
|
|
||||||
"application/x-cbz"
|
|
||||||
"application/x-mobipocket-ebook"
|
|
||||||
"application/x-cbr"
|
|
||||||
"application/x-mobi8-ebook"
|
|
||||||
"text/fb2+xml"
|
|
||||||
"application/vnd.oasis.opendocument.text"
|
|
||||||
"application/epub+zip"
|
|
||||||
"text/plain"
|
|
||||||
"application/xhtml+xml"
|
|
||||||
];
|
|
||||||
categories = "Office";
|
|
||||||
extraEntries = ''
|
|
||||||
Actions=Edit;Viewer;
|
|
||||||
|
|
||||||
[Desktop Action Edit]
|
|
||||||
Name=Edit E-book
|
|
||||||
Icon=@out@/share/calibre/images/tweak.png
|
|
||||||
Exec=@out@/bin/ebook-edit --detach %F
|
|
||||||
|
|
||||||
[Desktop Action Viewer]
|
|
||||||
Name=E-book Viewer
|
|
||||||
Icon=@out@/share/calibre/images/viewer.png
|
|
||||||
Exec=@out@/bin/ebook-viewer --detach %F
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
ebookEditDesktopItem = makeDesktopItem {
|
|
||||||
fileValidation = false; # fails before substitution
|
|
||||||
name = "calibre-edit-book";
|
|
||||||
desktopName = "Edit E-book";
|
|
||||||
genericName = "E-book Editor";
|
|
||||||
comment = "Edit e-books";
|
|
||||||
icon = "@out@/share/calibre/images/tweak.png";
|
|
||||||
exec = "@out@/bin/ebook-edit --detach %F";
|
|
||||||
categories = "Office;Publishing";
|
|
||||||
mimeType = "application/epub+zip";
|
|
||||||
extraEntries = "NoDisplay=true";
|
|
||||||
};
|
|
||||||
|
|
||||||
ebookViewerDesktopItem = makeDesktopItem {
|
|
||||||
fileValidation = false; # fails before substitution
|
|
||||||
name = "calibre-ebook-viewer";
|
|
||||||
desktopName = "E-book Viewer";
|
|
||||||
genericName = "E-book Viewer";
|
|
||||||
comment = "Read e-books in all the major formats";
|
|
||||||
icon = "@out@/share/calibre/images/viewer.png";
|
|
||||||
exec = "@out@/bin/ebook-viewer --detach %F";
|
|
||||||
categories = "Office;Viewer";
|
|
||||||
mimeType = "application/epub+zip";
|
|
||||||
extraEntries = "NoDisplay=true";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Comprehensive e-book software";
|
description = "Comprehensive e-book software";
|
||||||
homepage = "https://calibre-ebook.com";
|
homepage = "https://calibre-ebook.com";
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
{ lib, fetchurl, pythonPackages, gettext }:
|
{ lib, fetchFromGitHub, pythonPackages, gettext }:
|
||||||
|
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "cherrytree";
|
pname = "cherrytree";
|
||||||
version = "0.39.1";
|
version = "0.39.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "giuspen";
|
||||||
|
repo = "cherrytree";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1l6wh24bhp4yhmsfmc0r4n2n10nlilkv4cmv5sfl80i250fiw7xa";
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://www.giuspen.com/software/${pname}-${version}.tar.xz";
|
|
||||||
sha256 = "0qhycblnixvbybzr8psgmgcpfs6jc9m0p2h9lmd5zmiaggqlcsv7";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ gettext ];
|
nativeBuildInputs = [ gettext ];
|
||||||
@ -20,17 +23,16 @@ pythonPackages.buildPythonApplication rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "An hierarchical note taking application";
|
description = "An hierarchical note taking application";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Cherrytree is an hierarchical note taking application,
|
Cherrytree is an hierarchical note taking application, featuring rich
|
||||||
featuring rich text, syntax highlighting and powerful search
|
text, syntax highlighting and powerful search capabilities. It organizes
|
||||||
capabilities. It organizes all information in units called
|
all information in units called "nodes", as in a tree, and can be very
|
||||||
"nodes", as in a tree, and can be very useful to store any piece
|
useful to store any piece of information, from tables and links to
|
||||||
of information, from tables and links to pictures and even entire
|
pictures and even entire documents. All those little bits of information
|
||||||
documents. All those little bits of information you have scattered
|
you have scattered around your hard drive can be conveniently placed into
|
||||||
around your hard drive can be conveniently placed into a
|
a Cherrytree document where you can easily find it.
|
||||||
Cherrytree document where you can easily find it.
|
|
||||||
'';
|
'';
|
||||||
homepage = "http://www.giuspen.com/cherrytree";
|
homepage = "http://www.giuspen.com/cherrytree";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ AndersonTorres ];
|
maintainers = with maintainers; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
|
|||||||
wrapProgram $out/bin/far2l --argv0 $out/bin/far2l
|
wrapProgram $out/bin/far2l --argv0 $out/bin/far2l
|
||||||
'';
|
'';
|
||||||
|
|
||||||
stripDebugList = "bin share";
|
stripDebugList = [ "bin" "share" ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "notejot";
|
pname = "notejot";
|
||||||
version = "1.6.0";
|
version = "1.6.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "lainsce";
|
owner = "lainsce";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1b65m9gvq8ziqqgnw3vgjpjb1qw7bww40ngd3gardsjg9lcwpxaf";
|
sha256 = "170dzgd6cnf2k3hfifjysmdggpskx6v1pjmblqgbwaj2d3snf3h8";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -11,13 +11,13 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "sequeler";
|
pname = "sequeler";
|
||||||
version = "0.7.4";
|
version = "0.7.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Alecaddd";
|
owner = "Alecaddd";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0ki8dganj6hmvg5qwdlc3y0a4pdmx7454np790yf5wnqb6ixb6gv";
|
sha256 = "117gcc41rd24y5hpm3drqxfcfz52smpcr8w76xnykx8wb1ac50jf";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
|
nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
|
||||||
|
@ -0,0 +1,41 @@
|
|||||||
|
From dfa4bcafec4425659a409550085417af3c5c787b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Klink <flokli@flokli.de>
|
||||||
|
Date: Sat, 11 Apr 2020 12:38:38 +0200
|
||||||
|
Subject: [PATCH] core: fix libgit ifdef to handle libgit2 v1.0 and onwards
|
||||||
|
|
||||||
|
Conditional code for older libgit versions was removed in
|
||||||
|
https://github.com/Subsurface-divelog/subsurface/pull/2737,
|
||||||
|
but it's a non-trivial backport, and master currently isn't really ready
|
||||||
|
for a release.
|
||||||
|
|
||||||
|
So instead ship a patch fixing the one broken libgit2 conditional until
|
||||||
|
a 4.10 release has been made.
|
||||||
|
|
||||||
|
Note the inverted logic - the if branch now handles the old libgit
|
||||||
|
condition, and the else branch the newer versions, consistent with how
|
||||||
|
it's done in the rest of the subsurface codebase.
|
||||||
|
---
|
||||||
|
core/git-access.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/core/git-access.c b/core/git-access.c
|
||||||
|
index 3688cb90c..9997fc8fd 100644
|
||||||
|
--- a/core/git-access.c
|
||||||
|
+++ b/core/git-access.c
|
||||||
|
@@ -359,10 +359,10 @@ static int try_to_git_merge(git_repository *repo, git_reference **local_p, git_r
|
||||||
|
}
|
||||||
|
|
||||||
|
git_merge_init_options(&merge_options, GIT_MERGE_OPTIONS_VERSION);
|
||||||
|
-#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR > 23
|
||||||
|
- merge_options.flags = GIT_MERGE_FIND_RENAMES;
|
||||||
|
-#else
|
||||||
|
+#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR <= 22
|
||||||
|
merge_options.tree_flags = GIT_MERGE_TREE_FIND_RENAMES;
|
||||||
|
+#else
|
||||||
|
+ merge_options.flags = GIT_MERGE_FIND_RENAMES;
|
||||||
|
#endif
|
||||||
|
merge_options.file_favor = GIT_MERGE_FILE_FAVOR_UNION;
|
||||||
|
merge_options.rename_threshold = 100;
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
@ -4,16 +4,22 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.8.2";
|
version = "4.9.3";
|
||||||
|
|
||||||
|
subsurfaceSrc = (fetchFromGitHub {
|
||||||
|
owner = "Subsurface-divelog";
|
||||||
|
repo = "subsurface";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1i07f7appifx9j205x5a7ng01wsipxr6n9a3692pm60jli2nsir5";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
});
|
||||||
|
|
||||||
libdc = stdenv.mkDerivation {
|
libdc = stdenv.mkDerivation {
|
||||||
pname = "libdivecomputer-ssrf";
|
pname = "libdivecomputer-ssrf";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
src = fetchurl {
|
src = subsurfaceSrc;
|
||||||
url = "https://subsurface-divelog.org/downloads/libdivecomputer-subsurface-branch-${version}.tgz";
|
sourceRoot = "source/libdivecomputer";
|
||||||
sha256 = "167qan59raibmilkc574gdqxfjg2f5ww2frn86xzk2kn4qg8190w";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
|
|
||||||
@ -70,10 +76,10 @@ in stdenv.mkDerivation {
|
|||||||
pname = "subsurface";
|
pname = "subsurface";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
src = fetchurl {
|
src = subsurfaceSrc;
|
||||||
url = "https://subsurface-divelog.org/downloads/Subsurface-${version}.tgz";
|
|
||||||
sha256 = "1fzrq6rqb6pzs36wxar2453cl509dqpcy9w7nq4gw7b1v2331wfy";
|
# remove with the 4.10 release
|
||||||
};
|
patches = [ ./0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libdc googlemaps
|
libdc googlemaps
|
||||||
|
@ -19,13 +19,13 @@
|
|||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "ulauncher";
|
pname = "ulauncher";
|
||||||
version = "5.6.1";
|
version = "5.7.3";
|
||||||
|
|
||||||
disabled = python3Packages.isPy27;
|
disabled = python3Packages.isPy27;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
|
url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
|
||||||
sha256 = "14k68lp58wldldhaq4cf0ffkhi81czv4ps9xa86iw1j5b1gd2vbl";
|
sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = with python3Packages; [
|
nativeBuildInputs = with python3Packages; [
|
||||||
@ -71,7 +71,6 @@ python3Packages.buildPythonApplication rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./fix-path.patch
|
./fix-path.patch
|
||||||
./fix-permissions.patch # ulauncher PR #523
|
|
||||||
./0001-Adjust-get_data_path-for-NixOS.patch
|
./0001-Adjust-get_data_path-for-NixOS.patch
|
||||||
./fix-extensions.patch
|
./fix-extensions.patch
|
||||||
];
|
];
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff --git a/ulauncher/utils/Theme.py b/ulauncher/utils/Theme.py
|
|
||||||
index 9cde624..4e36c4f 100644
|
|
||||||
--- a/ulauncher/utils/Theme.py
|
|
||||||
+++ b/ulauncher/utils/Theme.py
|
|
||||||
@@ -138,6 +138,9 @@ class Theme:
|
|
||||||
rmtree(new_theme_dir)
|
|
||||||
copytree(self.path, new_theme_dir)
|
|
||||||
|
|
||||||
+ # change file permissions (because Nix store is read-only)
|
|
||||||
+ os.chmod(new_theme_dir, 0o755)
|
|
||||||
+
|
|
||||||
return os.path.join(new_theme_dir, 'generated.css')
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "Sylk";
|
pname = "Sylk";
|
||||||
version = "2.5.0";
|
version = "2.6.1";
|
||||||
in
|
in
|
||||||
|
|
||||||
appimageTools.wrapType2 rec {
|
appimageTools.wrapType2 rec {
|
||||||
@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
|
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
|
||||||
sha256 = "1jhs25zzdac3r2wz886vlpb0bz77p52mdlrbsbv28h6is79pbd69";
|
hash = "sha256:0417qk925k7p3fiq1zha9al86jrz6mqspda7mi3h9blpbyvlcy7w";
|
||||||
};
|
};
|
||||||
|
|
||||||
profile = ''
|
profile = ''
|
||||||
|
@ -19,13 +19,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ephemeral";
|
pname = "ephemeral";
|
||||||
version = "6.3.1";
|
version = "6.3.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cassidyjames";
|
owner = "cassidyjames";
|
||||||
repo = "ephemeral";
|
repo = "ephemeral";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "13rl26lv5xgagiv21yp5pz69bkwh4nnz1lx9wryhsplki45xm1sq";
|
sha256 = "093bqc40p4s8jc1s5rg49363x24vnwwjayvgzmi4xag28f1x6kn8";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -15,13 +15,13 @@ with lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "kubernetes";
|
pname = "kubernetes";
|
||||||
version = "1.17.3";
|
version = "1.18.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kubernetes";
|
owner = "kubernetes";
|
||||||
repo = "kubernetes";
|
repo = "kubernetes";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0caqczz8hrwqb8j94158hz6919i7c9v1v0zknh9m2zbbng4b1awi";
|
sha256 = "1jp54aahwpx9w73byfyadgffrig9fy6x8xzw27xv0anj2v9bm1fw";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bitlbee-discord";
|
pname = "bitlbee-discord";
|
||||||
version = "0.4.2";
|
version = "0.4.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = version;
|
rev = version;
|
||||||
owner = "sm00th";
|
owner = "sm00th";
|
||||||
repo = "bitlbee-discord";
|
repo = "bitlbee-discord";
|
||||||
sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f";
|
sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "deltachat-electron";
|
pname = "deltachat-electron";
|
||||||
version = "1.1.0";
|
version = "1.2.0";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url =
|
url =
|
||||||
"https://download.delta.chat/desktop/r${version}/DeltaChat-${version}.AppImage";
|
"https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
|
||||||
sha256 = "0pbn45cyv0h3fp7s9v9q93v12ah2gj7daaq0r3z140im6zv0rkrc";
|
sha256 = "Cyb34bfQEdwOA6XYZO+1Ri/2e/PRat15aUMn7IElmUI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
appimageContents = appimageTools.extract { inherit name src; };
|
appimageContents = appimageTools.extract { inherit name src; };
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, appimageTools
|
||||||
|
, makeWrapper
|
||||||
|
, electron_8
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "jitsi-meet-electron";
|
||||||
|
version = "2.0.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
|
||||||
|
sha256 = "11ci9dqhy8hkb4fwykjvcvai20ahqhjil825n1y1xf663ch8by93";
|
||||||
|
name="${pname}-${version}.AppImage";
|
||||||
|
};
|
||||||
|
|
||||||
|
appimageContents = appimageTools.extractType2 {
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
inherit src;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin $out/share/${pname} $out/share/applications
|
||||||
|
|
||||||
|
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
|
||||||
|
cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop
|
||||||
|
cp -a ${appimageContents}/usr/share/icons $out/share
|
||||||
|
|
||||||
|
substituteInPlace $out/share/applications/${pname}.desktop \
|
||||||
|
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
|
||||||
|
--add-flags $out/share/${pname}/resources/app.asar \
|
||||||
|
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Jitsi Meet desktop application powered by Electron";
|
||||||
|
homepage = "https://github.com/jitsi/jitsi-meet-electron";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ prusnak ];
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub
|
{ stdenv, fetchFromGitHub
|
||||||
, makeWrapper, makeDesktopItem, mkYarnPackage
|
, makeWrapper, makeDesktopItem, mkYarnPackage
|
||||||
, electron_7, riot-web, gtk3
|
, electron_7, riot-web
|
||||||
, wrapGAppsHook, glib
|
|
||||||
}:
|
}:
|
||||||
# Notes for maintainers:
|
# Notes for maintainers:
|
||||||
# * versions of `riot-web` and `riot-desktop` should be kept in sync.
|
# * versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||||
@ -27,14 +26,7 @@ in mkYarnPackage rec {
|
|||||||
packageJSON = ./riot-desktop-package.json;
|
packageJSON = ./riot-desktop-package.json;
|
||||||
yarnNix = ./riot-desktop-yarndeps.nix;
|
yarnNix = ./riot-desktop-yarndeps.nix;
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
extraBuildInputs = [
|
|
||||||
glib
|
|
||||||
gtk3
|
|
||||||
];
|
|
||||||
|
|
||||||
dontWrapGApps = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
# resources
|
# resources
|
||||||
@ -54,13 +46,10 @@ in mkYarnPackage rec {
|
|||||||
# desktop item
|
# desktop item
|
||||||
mkdir -p "$out/share"
|
mkdir -p "$out/share"
|
||||||
ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
||||||
'';
|
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
# executable wrapper
|
# executable wrapper
|
||||||
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
||||||
--add-flags "$out/share/riot/electron" \
|
--add-flags "$out/share/riot/electron"
|
||||||
"''${gappsWrapperArgs[@]}"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Do not attempt generating a tarball for riot-web again.
|
# Do not attempt generating a tarball for riot-web again.
|
||||||
|
@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
|
|||||||
let
|
let
|
||||||
inherit (stdenv.lib) concatStringsSep makeBinPath optional;
|
inherit (stdenv.lib) concatStringsSep makeBinPath optional;
|
||||||
|
|
||||||
version = "3.5.383291.0407";
|
version = "3.5.385850.0413";
|
||||||
srcs = {
|
srcs = {
|
||||||
x86_64-linux = fetchurl {
|
x86_64-linux = fetchurl {
|
||||||
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
|
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
|
||||||
sha256 = "1l560gv1wpfiggxylz3f62mcjjchpq3p0i1j4b2b68ckgc5sj80k";
|
sha256 = "049kxgkyaxknxpk0hf1a7bxn0c08dk250z3q2ba9pc1xkrn5kdnw";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,7 +12,9 @@
|
|||||||
, json-glib
|
, json-glib
|
||||||
, libsoup
|
, libsoup
|
||||||
, libgee
|
, libgee
|
||||||
, wrapGAppsHook }:
|
, wrapGAppsHook
|
||||||
|
, vala_0_40
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ping";
|
pname = "ping";
|
||||||
@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
vala
|
vala_0_40
|
||||||
pkgconfig
|
pkgconfig
|
||||||
python3
|
python3
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
|
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl
|
||||||
, alsaLib, ffmpeg, glib, openssl, pcre, zlib
|
, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
|
||||||
, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv, libXtst
|
, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
|
||||||
, libxkbcommon, libxkbfile
|
, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt
|
||||||
, wayland
|
, libusb1, libpulseaudio ? null, cups ? null, pcsclite ? null, systemd ? null
|
||||||
, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc
|
, buildServer ? true, nocaps ? false }:
|
||||||
, libxslt
|
|
||||||
, libusb1
|
|
||||||
, libpulseaudio ? null
|
|
||||||
, cups ? null
|
|
||||||
, pcsclite ? null
|
|
||||||
, systemd ? null
|
|
||||||
, buildServer ? true
|
|
||||||
, nocaps ? false
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
|
cmFlag = flag: if flag then "ON" else "OFF";
|
||||||
|
disabledTests = [
|
||||||
|
# this one is probably due to our sandbox
|
||||||
|
{
|
||||||
|
dir = "libfreerdp/crypto/test";
|
||||||
|
file = "Test_x509_cert_info.c";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
pname = "freerdp";
|
pname = "freerdp";
|
||||||
version = "2.0.0";
|
version = "2.0.0";
|
||||||
|
|
||||||
@ -25,10 +26,16 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc";
|
sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc";
|
||||||
};
|
};
|
||||||
|
|
||||||
# outputs = [ "bin" "out" "dev" ];
|
postPatch = ''
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
export HOME=$TMP
|
export HOME=$TMP
|
||||||
|
|
||||||
|
# failing test(s)
|
||||||
|
${lib.concatMapStringsSep "\n" (e: ''
|
||||||
|
substituteInPlace ${e.dir}/CMakeLists.txt \
|
||||||
|
--replace ${e.file} ""
|
||||||
|
rm ${e.dir}/${e.file}
|
||||||
|
'') disabledTests}
|
||||||
|
|
||||||
substituteInPlace "libfreerdp/freerdp.pc.in" \
|
substituteInPlace "libfreerdp/freerdp.pc.in" \
|
||||||
--replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
|
--replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
|
||||||
'' + lib.optionalString (pcsclite != null) ''
|
'' + lib.optionalString (pcsclite != null) ''
|
||||||
@ -39,32 +46,54 @@ stdenv.mkDerivation rec {
|
|||||||
--replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL"
|
--replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = with lib; [
|
buildInputs = with lib;
|
||||||
alsaLib cups ffmpeg glib openssl pcre pcsclite libpulseaudio zlib
|
[
|
||||||
gstreamer gst-plugins-base gst-plugins-good libunwind orc
|
alsaLib
|
||||||
libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv libXtst
|
cups
|
||||||
libxkbcommon libxkbfile
|
ffmpeg
|
||||||
wayland libusb1
|
glib
|
||||||
|
gst-plugins-base
|
||||||
|
gst-plugins-good
|
||||||
|
gstreamer
|
||||||
|
libX11
|
||||||
|
libXcursor
|
||||||
|
libXdamage
|
||||||
|
libXext
|
||||||
|
libXi
|
||||||
|
libXinerama
|
||||||
|
libXrandr
|
||||||
|
libXrender
|
||||||
|
libXtst
|
||||||
|
libXv
|
||||||
|
libpulseaudio
|
||||||
|
libunwind
|
||||||
|
libusb1
|
||||||
|
libxkbcommon
|
||||||
|
libxkbfile
|
||||||
libxslt
|
libxslt
|
||||||
|
openssl
|
||||||
|
orc
|
||||||
|
pcre
|
||||||
|
pcsclite
|
||||||
|
wayland
|
||||||
|
zlib
|
||||||
] ++ optional stdenv.isLinux systemd;
|
] ++ optional stdenv.isLinux systemd;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
cmake pkgconfig
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
doCheck = true;
|
||||||
|
|
||||||
doCheck = false;
|
cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ]
|
||||||
|
++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
|
||||||
cmakeFlags = with lib; [
|
BUILD_TESTING = doCheck;
|
||||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
WITH_CUNIT = doCheck;
|
||||||
"-DWITH_CUNIT=OFF"
|
WITH_CUPS = (cups != null);
|
||||||
"-DWITH_OSS=OFF"
|
WITH_OSS = false;
|
||||||
] ++ optional (libpulseaudio != null) "-DWITH_PULSE=ON"
|
WITH_PCSC = (pcsclite != null);
|
||||||
++ optional (cups != null) "-DWITH_CUPS=ON"
|
WITH_PULSE = (libpulseaudio != null);
|
||||||
++ optional (pcsclite != null) "-DWITH_PCSC=ON"
|
WITH_SERVER = buildServer;
|
||||||
++ optional buildServer "-DWITH_SERVER=ON"
|
WITH_SSE2 = stdenv.isx86_64;
|
||||||
++ optional (stdenv.isx86_64) "-DWITH_SSE2=ON";
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A Remote Desktop Protocol Client";
|
description = "A Remote Desktop Protocol Client";
|
||||||
@ -72,7 +101,7 @@ stdenv.mkDerivation rec {
|
|||||||
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
|
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
|
||||||
following the Microsoft Open Specifications.
|
following the Microsoft Open Specifications.
|
||||||
'';
|
'';
|
||||||
homepage = "http://www.freerdp.com/";
|
homepage = "https://www.freerdp.com/";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ peterhoeg lheckemann ];
|
maintainers = with maintainers; [ peterhoeg lheckemann ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "testssl.sh";
|
pname = "testssl.sh";
|
||||||
version = "3.0rc6";
|
version = "3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "drwetter";
|
owner = "drwetter";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1ks7pqgrg382ry0a0jf1dwgcwv81snhkrhkjdbcpym6w5flmpjsv";
|
sha256 = "08i1l835zlzb3qmsnsd5vhsrr82li6fnp5jqxiybbqr5wjz67ssd";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pantheon
|
, pantheon
|
||||||
, cmake
|
, meson
|
||||||
|
, ninja
|
||||||
|
, python3
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, vala
|
, vala
|
||||||
, gettext
|
, gettext
|
||||||
@ -13,20 +15,23 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "agenda";
|
pname = "agenda";
|
||||||
version = "1.0.12";
|
version = "1.1.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dahenson";
|
owner = "dahenson";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "128c9p2jkc90imlq25xg5alqlam8q4i3gd5p1kcggf7s4amv8l8w";
|
sha256 = "0yfapapsanqacaa83iagar88i335yy2jvay8y6z7gkri7avbs4am";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
|
||||||
gettext
|
gettext
|
||||||
vala
|
glib # for glib-compile-schemas
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
|
python3
|
||||||
|
vala
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -37,6 +42,13 @@ stdenv.mkDerivation rec {
|
|||||||
pantheon.granite
|
pantheon.granite
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
chmod +x meson/post_install.py
|
||||||
|
patchShebangs meson/post_install.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
updateScript = pantheon.updateScript {
|
updateScript = pantheon.updateScript {
|
||||||
attrPath = pname;
|
attrPath = pname;
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "atlassian-cli";
|
pname = "atlassian-cli";
|
||||||
version = "9.1.1";
|
version = "9.2.0";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
|
url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
|
||||||
sha256 = "0mdf4ybp0a6c816210g76lx901qwxw727ipyiph5kbdzl4jlrpgm";
|
sha256 = "0rdnbx3zfz3lpgka7bb8jzapkr81l2yvgsbmn8hrhva5k61xwx3d";
|
||||||
extraPostFetch = "chmod go-w $out";
|
extraPostFetch = "chmod go-w $out";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
{ stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
|
{ stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
|
||||||
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }:
|
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
|
||||||
|
, appstream, desktop-file-utils }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bookworm";
|
pname = "bookworm";
|
||||||
version = "unstable-2018-11-19";
|
version = "1.1.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "babluboy";
|
owner = "babluboy";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "4c3061784ff42151cac77d12bf2a28bf831fdfc5";
|
rev = version;
|
||||||
sha256 = "0yrqxa60xlvz249kx966z5krx8i7h17ac0hjgq9p8f0irzy5yp0n";
|
sha256 = "0w0rlyahpgx0l6inkbj106agbnr2czil0vdcy1zzv70apnjz488j";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -35,6 +36,8 @@ stdenv.mkDerivation rec {
|
|||||||
python2
|
python2
|
||||||
sqlite
|
sqlite
|
||||||
webkitgtk
|
webkitgtk
|
||||||
|
appstream
|
||||||
|
desktop-file-utils
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -1,67 +1,112 @@
|
|||||||
{ stdenv, fetchurl
|
{ stdenv
|
||||||
, libX11, glib, xorg, fontconfig, freetype
|
, mkDerivation
|
||||||
, zlib, libpng12, libICE, libXrender, cups
|
, fetchurl
|
||||||
, alsaLib, atk, cairo, dbus, expat
|
, autoPatchelfHook
|
||||||
, gdk-pixbuf, gtk2-x11, lzma, pango, zotero
|
, dpkg
|
||||||
, sqlite, libuuid, qt5, dpkg }:
|
, wrapGAppsHook
|
||||||
|
, wrapQtAppsHook
|
||||||
|
, alsaLib
|
||||||
|
, atk
|
||||||
|
, bzip2
|
||||||
|
, cairo
|
||||||
|
, cups
|
||||||
|
, dbus
|
||||||
|
, expat
|
||||||
|
, ffmpeg_3
|
||||||
|
, fontconfig
|
||||||
|
, freetype
|
||||||
|
, gdk-pixbuf
|
||||||
|
, glib
|
||||||
|
, gperftools
|
||||||
|
, gtk2-x11
|
||||||
|
, libpng12
|
||||||
|
, libtool
|
||||||
|
, libuuid
|
||||||
|
, libxml2
|
||||||
|
, lzma
|
||||||
|
, nspr
|
||||||
|
, nss
|
||||||
|
, openssl
|
||||||
|
, pango
|
||||||
|
, qt4
|
||||||
|
, qtbase
|
||||||
|
, sqlite
|
||||||
|
, unixODBC
|
||||||
|
, xorg
|
||||||
|
, zlib
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec{
|
stdenv.mkDerivation rec{
|
||||||
pname = "wpsoffice";
|
pname = "wpsoffice";
|
||||||
version = "11.1.0.9080";
|
version = "11.1.0.9505";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9080/wps-office_11.1.0.9080.XA_amd64.deb";
|
url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9505/wps-office_11.1.0.9505.XA_amd64.deb";
|
||||||
sha256 = "1731e9aea22ef4e558ad66b1373d863452b4f570aecf09d448ae28a821333454";
|
sha256 = "1bvaxwd3npw3kswk7k1p6mcbfg37x0ym4sp6xis6ykz870qivqk5";
|
||||||
};
|
};
|
||||||
unpackCmd = "dpkg -x $src .";
|
unpackCmd = "dpkg -x $src .";
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
||||||
nativeBuildInputs = [ qt5.wrapQtAppsHook dpkg ];
|
postUnpack = stdenv.lib.optionalString (version == "11.1.0.9505") ''
|
||||||
|
# distribution is missing libjsapiservice.so, so we should not let
|
||||||
|
# autoPatchelfHook fail on the following dead libraries
|
||||||
|
rm opt/kingsoft/wps-office/office6/{libjsetapi.so,libjswppapi.so,libjswpsapi.so}
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Office program originally named Kingsoft Office";
|
description = "Office program originally named Kingsoft Office";
|
||||||
homepage = "http://wps-community.org/";
|
homepage = "http://wps-community.org/";
|
||||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
hydraPlatforms = [];
|
hydraPlatforms = [];
|
||||||
license = stdenv.lib.licenses.unfreeRedistributable;
|
license = stdenv.lib.licenses.unfreeRedistributable;
|
||||||
maintainers = [ stdenv.lib.maintainers.mlatus ];
|
maintainers = [ stdenv.lib.maintainers.mlatus ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libPath = with xorg; stdenv.lib.makeLibraryPath [
|
buildInputs = with xorg; [
|
||||||
libX11
|
|
||||||
libpng12
|
|
||||||
glib
|
|
||||||
libSM
|
|
||||||
libXext
|
|
||||||
fontconfig
|
|
||||||
zlib
|
|
||||||
freetype
|
|
||||||
libICE
|
|
||||||
cups
|
|
||||||
libXrender
|
|
||||||
libxcb
|
|
||||||
|
|
||||||
alsaLib
|
alsaLib
|
||||||
atk
|
atk
|
||||||
|
bzip2
|
||||||
cairo
|
cairo
|
||||||
dbus.daemon.lib
|
dbus.lib
|
||||||
expat
|
expat
|
||||||
fontconfig.lib
|
ffmpeg_3
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
|
glib
|
||||||
|
gperftools
|
||||||
gtk2-x11
|
gtk2-x11
|
||||||
lzma
|
libICE
|
||||||
pango
|
libSM
|
||||||
zotero
|
libX11
|
||||||
sqlite
|
libX11
|
||||||
libuuid
|
libXScrnSaver
|
||||||
libXcomposite
|
libXcomposite
|
||||||
libXcursor
|
libXcursor
|
||||||
libXdamage
|
libXdamage
|
||||||
|
libXext
|
||||||
libXfixes
|
libXfixes
|
||||||
libXi
|
libXi
|
||||||
libXrandr
|
libXrandr
|
||||||
libXScrnSaver
|
libXrender
|
||||||
libXtst
|
libXtst
|
||||||
|
libpng12
|
||||||
|
libtool
|
||||||
|
libuuid
|
||||||
|
libxcb
|
||||||
|
libxml2
|
||||||
|
lzma
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
openssl
|
||||||
|
pango
|
||||||
|
qt4
|
||||||
|
qtbase
|
||||||
|
sqlite
|
||||||
|
unixODBC
|
||||||
|
zlib
|
||||||
];
|
];
|
||||||
|
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
@ -70,25 +115,59 @@ stdenv.mkDerivation rec{
|
|||||||
# references to nix own build directory
|
# references to nix own build directory
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
|
|
||||||
|
unvendoredLibraries = [
|
||||||
|
# Have to use parts of the vendored qt4
|
||||||
|
#"Qt"
|
||||||
|
"SDL2"
|
||||||
|
"bz2"
|
||||||
|
"avcodec"
|
||||||
|
"avdevice"
|
||||||
|
"avformat"
|
||||||
|
"avutil"
|
||||||
|
"swresample"
|
||||||
|
"swscale"
|
||||||
|
"jpeg"
|
||||||
|
"png"
|
||||||
|
# File saving breaks unless we are using vendored llvmPackages_8.libcxx
|
||||||
|
#"c++"
|
||||||
|
"ssl" "crypto"
|
||||||
|
"nspr"
|
||||||
|
"nss"
|
||||||
|
"odbc"
|
||||||
|
"tcmalloc" # gperftools
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
prefix=$out/opt/kingsoft/wps-office
|
prefix=$out/opt/kingsoft/wps-office
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r opt $out
|
cp -r opt $out
|
||||||
cp -r usr/* $out
|
cp -r usr/* $out
|
||||||
# Avoid forbidden reference error due use of patchelf
|
for lib in $unvendoredLibraries; do
|
||||||
rm -r *
|
rm -v "$prefix/office6/lib$lib"*.so{,.*}
|
||||||
|
done
|
||||||
for i in wps wpp et wpspdf; do
|
for i in wps wpp et wpspdf; do
|
||||||
patchelf \
|
|
||||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
||||||
--force-rpath --set-rpath "$(patchelf --print-rpath $prefix/office6/$i):${stdenv.cc.cc.lib}/lib64:${libPath}" \
|
|
||||||
$prefix/office6/$i
|
|
||||||
substituteInPlace $out/bin/$i \
|
substituteInPlace $out/bin/$i \
|
||||||
--replace /opt/kingsoft/wps-office $prefix
|
--replace /opt/kingsoft/wps-office $prefix
|
||||||
done
|
done
|
||||||
for i in $out/share/applications/*;do
|
for i in $out/share/applications/*;do
|
||||||
substituteInPlace $i \
|
substituteInPlace $i \
|
||||||
--replace /usr/bin $out/bin \
|
--replace /usr/bin $out/bin
|
||||||
--replace /opt/kingsoft/wps-office $prefix
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
runtimeLibPath = stdenv.lib.makeLibraryPath [
|
||||||
|
cups.lib
|
||||||
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
dontWrapGApps = true;
|
||||||
|
postFixup = ''
|
||||||
|
for f in "$out"/bin/*; do
|
||||||
|
echo "Wrapping $f"
|
||||||
|
wrapProgram "$f" \
|
||||||
|
"''${gappsWrapperArgs[@]}" \
|
||||||
|
"''${qtWrapperArgs[@]}" \
|
||||||
|
--suffix LD_LIBRARY_PATH : "$runtimeLibPath"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
}:
|
}:
|
||||||
python2.pkgs.buildPythonApplication rec {
|
python2.pkgs.buildPythonApplication rec {
|
||||||
pname = "chirp-daily";
|
pname = "chirp-daily";
|
||||||
version = "20200213";
|
version = "20200409";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
|
url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
|
||||||
sha256 = "189kg3425wggib1cggcj49bk01pq3j4b8mks7najpp1rjsl5f2i1";
|
sha256 = "16zhwg2xmp5kpqx5isavwwkfq1212zgfj8gbp453ngjcrvp3m4lq";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python2.pkgs; [
|
propagatedBuildInputs = with python2.pkgs; [
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, vala
|
, vala
|
||||||
, gtk3
|
, gtk3
|
||||||
@ -25,6 +26,14 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
|
sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# fix build with gcc9
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/parnold-x/nasc/commit/46b9b80e228b6b86001bded45d85e073a9411549.patch";
|
||||||
|
sha256 = "1sm2aw0xhw2chk036r231nmp2f2ypxcmzggwljkn7wfzgg3h1mx3";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
vala
|
vala
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
pname = "gp2c";
|
pname = "gp2c";
|
||||||
version = "0.0.11pl2";
|
version = "0.0.11pl3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz";
|
url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz";
|
||||||
sha256 = "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g";
|
sha256 = "0yymbrgyjw500hqgmkj5m4nmscd7c9rs9w2c96lxgrcyab8krhrm";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pari perl ];
|
buildInputs = [ pari perl ];
|
||||||
@ -25,4 +25,3 @@ stdenv.mkDerivation rec {
|
|||||||
maintainers = with maintainers; [ AndersonTorres ];
|
maintainers = with maintainers; [ AndersonTorres ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
# TODO: add it as "source file" for default package
|
|
||||||
|
@ -18,13 +18,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "monitor";
|
pname = "monitor";
|
||||||
version = "0.6.2";
|
version = "0.7.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "stsdc";
|
owner = "stsdc";
|
||||||
repo = "monitor";
|
repo = "monitor";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0cqzxlzdbij26qgbbngqx6njcpcymkgvm29b7ipldgkssxp1mkkg";
|
sha256 ="194s9rjh3yd2c3rf3zwxsxr2lwqfswjazj39yiyccy0wcxmxpv34";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -61,6 +62,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Manage processes and monitor system resources";
|
description = "Manage processes and monitor system resources";
|
||||||
|
longDescription = ''
|
||||||
|
Manage processes and monitor system resources.
|
||||||
|
To use the wingpanel indicator in this application, see the Pantheon
|
||||||
|
section in the NixOS manual.
|
||||||
|
'';
|
||||||
homepage = "https://github.com/stsdc/monitor";
|
homepage = "https://github.com/stsdc/monitor";
|
||||||
maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
|
maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -2,23 +2,23 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "git-trim";
|
pname = "git-trim";
|
||||||
version = "0.2.4";
|
version = "0.3.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "foriequal0";
|
owner = "foriequal0";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0gfmv9bwhh6bv0s9kfbxq9wsvrk3zz3ibavbpp9l8cpqc3145pqy";
|
sha256 = "06wni47s8yq274bh5f7bcy0sah23938kjiw5pdxnma5kwwnrccrr";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "0xklczk4vbh2mqf76r3rsfyclyza9imf6yss7vbkm9w4ir3ar9f3";
|
cargoSha256 = "06ndja8212xy4rybh1117wijsyj70w4z8h6km538a7598s49vzdk";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
|
buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
install -Dm644 docs/git-trim.md.1 $out/share/man/man1/git-trim.1
|
install -Dm644 -t $out/share/man/man1/ docs/git-trim.1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# fails with sandbox
|
# fails with sandbox
|
||||||
|
@ -5,14 +5,15 @@ set -eu -o pipefail
|
|||||||
|
|
||||||
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
|
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
|
||||||
latestTag="$(git ls-remote --tags --sort="v:refname" git://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
|
latestTag="$(git ls-remote --tags --sort="v:refname" git://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
|
||||||
|
targetVersion="${1:-latestTag}"
|
||||||
|
|
||||||
if [ ! "${oldVersion}" = "${latestTag}" ]; then
|
if [ ! "${oldVersion}" = "${targetVersion}" ]; then
|
||||||
update-source-version git "${latestTag}"
|
update-source-version git "${targetVersion}"
|
||||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||||
default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
|
default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
|
||||||
nix-build -A git
|
nix-build -A git
|
||||||
git add "${default_nix}"
|
git add "${default_nix}"
|
||||||
git commit -m "git: ${oldVersion} -> ${latestTag}"
|
git commit -m "git: ${oldVersion} -> ${targetVersion}"
|
||||||
else
|
else
|
||||||
echo "git is already up-to-date"
|
echo "git is already up-to-date"
|
||||||
fi
|
fi
|
||||||
|
@ -31,10 +31,13 @@ stdenv.mkDerivation rec {
|
|||||||
make install
|
make install
|
||||||
make install-doc
|
make install-doc
|
||||||
|
|
||||||
substituteInPlace contrib/tig-completion.zsh \
|
# fixes tig-completion __git-complete dependency
|
||||||
--replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/etc/bash_completion.d/tig-completion.bash"
|
sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash
|
||||||
|
|
||||||
install -D contrib/tig-completion.bash $out/etc/bash_completion.d/tig-completion.bash
|
substituteInPlace contrib/tig-completion.zsh \
|
||||||
|
--replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/share/bash-completion/completions/tig"
|
||||||
|
|
||||||
|
install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig
|
||||||
install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
|
install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
|
||||||
cp contrib/vim.tigrc $out/etc/
|
cp contrib/vim.tigrc $out/etc/
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
, xvSupport ? stdenv.isLinux, libXv ? null
|
, xvSupport ? stdenv.isLinux, libXv ? null
|
||||||
, youtubeSupport ? true, youtube-dl ? null
|
, youtubeSupport ? true, youtube-dl ? null
|
||||||
, zimgSupport ? true, zimg ? null
|
, zimgSupport ? true, zimg ? null
|
||||||
, archiveSupport ? false, libarchive ? null
|
, archiveSupport ? true, libarchive ? null
|
||||||
, jackaudioSupport ? false, libjack2 ? null
|
, jackaudioSupport ? false, libjack2 ? null
|
||||||
, openalSupport ? true, openalSoft ? null
|
, openalSupport ? true, openalSoft ? null
|
||||||
, vapoursynthSupport ? false, vapoursynth ? null
|
, vapoursynthSupport ? false, vapoursynth ? null
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "wf-recorder";
|
pname = "wf-recorder";
|
||||||
version = "0.2";
|
version = "0.2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ammen99";
|
owner = "ammen99";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1772hrd7j8b32y65x5c392kdijlcn13iqg9hrlagfar92102vsbf";
|
sha256 = "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ];
|
nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ];
|
||||||
|
@ -20,7 +20,7 @@ let
|
|||||||
buildTags = "apparmor seccomp selinux containers_image_ostree_stub";
|
buildTags = "apparmor seccomp selinux containers_image_ostree_stub";
|
||||||
in buildGoPackage rec {
|
in buildGoPackage rec {
|
||||||
project = "cri-o";
|
project = "cri-o";
|
||||||
version = "1.17.1";
|
version = "1.17.3";
|
||||||
name = "${project}-${version}${flavor}";
|
name = "${project}-${version}${flavor}";
|
||||||
|
|
||||||
goPackagePath = "github.com/${project}/${project}";
|
goPackagePath = "github.com/${project}/${project}";
|
||||||
@ -29,7 +29,7 @@ in buildGoPackage rec {
|
|||||||
owner = "cri-o";
|
owner = "cri-o";
|
||||||
repo = "cri-o";
|
repo = "cri-o";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0zipigjcnhcnn0w69dkd8312qb6z98l65ir175wp3jfvj4cx3g28";
|
sha256 = "1cy2lqasfn5n20vlm3ckb6myci8ya6qv08dw8fq7z4ycnm39r1a6";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "bin" "out" ];
|
outputs = [ "bin" "out" ];
|
||||||
|
@ -1,24 +1,32 @@
|
|||||||
{ stdenv, fetchFromGitHub, pkgconfig, installShellFiles
|
{ stdenv
|
||||||
, buildGoPackage, gpgme, lvm2, btrfs-progs, libseccomp, systemd
|
, fetchFromGitHub
|
||||||
|
, pkg-config
|
||||||
|
, installShellFiles
|
||||||
|
, buildGoPackage
|
||||||
|
, gpgme
|
||||||
|
, lvm2
|
||||||
|
, btrfs-progs
|
||||||
|
, libseccomp
|
||||||
|
, systemd
|
||||||
, go-md2man
|
, go-md2man
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "podman";
|
pname = "podman";
|
||||||
version = "1.8.2";
|
version = "1.9.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "containers";
|
owner = "containers";
|
||||||
repo = "libpod";
|
repo = "libpod";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1nxlkqz1ffa3l2yf4rmsxj788dx6xdp8pbi55m9jc9k1vqwc9hxs";
|
sha256 = "19y48lpf7pvw5f5pzpknn92rq9xwbrpvi8mj7mc4dby6skqadrk4";
|
||||||
};
|
};
|
||||||
|
|
||||||
goPackagePath = "github.com/containers/libpod";
|
goPackagePath = "github.com/containers/libpod";
|
||||||
|
|
||||||
outputs = [ "bin" "out" "man" ];
|
outputs = [ "bin" "out" "man" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig go-md2man installShellFiles ];
|
nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
|
||||||
|
|
||||||
buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs libseccomp gpgme lvm2 systemd ];
|
buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs libseccomp gpgme lvm2 systemd ];
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
|
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
|
||||||
, libsndfile, fribidi }:
|
, libsndfile, fribidi }:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "icewm";
|
pname = "icewm";
|
||||||
version = "1.6.5";
|
version = "1.6.5";
|
||||||
@ -34,13 +35,13 @@ stdenv.mkDerivation rec {
|
|||||||
cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
|
cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = {
|
||||||
description = "A simple, lightweight X window manager";
|
description = "A simple, lightweight X window manager";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
IceWM is a window manager for the X Window System. The goal of
|
IceWM is a window manager for the X Window System. The goal of
|
||||||
IceWM is speed, simplicity, and not getting in the user's way.
|
IceWM is speed, simplicity, and not getting in the user's way.
|
||||||
'';
|
'';
|
||||||
homepage = "http://www.icewm.org/";
|
homepage = "https://www.ice-wm.org/";
|
||||||
license = licenses.lgpl2;
|
license = licenses.lgpl2;
|
||||||
maintainers = [ maintainers.AndersonTorres ];
|
maintainers = [ maintainers.AndersonTorres ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
++ [crateFeatures]
|
++ [crateFeatures]
|
||||||
++ extraRustcOpts
|
++ extraRustcOpts
|
||||||
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
|
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
|
||||||
|
# since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
|
||||||
|
# https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
|
||||||
|
++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro"
|
||||||
;
|
;
|
||||||
rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}";
|
rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}";
|
||||||
|
|
||||||
|
@ -457,6 +457,18 @@ let
|
|||||||
"test ignore_main ... ok"
|
"test ignore_main ... ok"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
procMacroInPrelude = {
|
||||||
|
procMacro = true;
|
||||||
|
edition = "2018";
|
||||||
|
src = symlinkJoin {
|
||||||
|
name = "proc-macro-in-prelude";
|
||||||
|
paths = [
|
||||||
|
(mkFile "src/lib.rs" ''
|
||||||
|
use proc_macro::TokenTree;
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
brotliCrates = (callPackage ./brotli-crates.nix {});
|
brotliCrates = (callPackage ./brotli-crates.nix {});
|
||||||
tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases;
|
tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix }:
|
{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix, git }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "common-updater-scripts";
|
name = "common-updater-scripts";
|
||||||
@ -12,7 +12,7 @@ stdenv.mkDerivation {
|
|||||||
cp ${./scripts}/* $out/bin
|
cp ${./scripts}/* $out/bin
|
||||||
|
|
||||||
for f in $out/bin/*; do
|
for f in $out/bin/*; do
|
||||||
wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils ]}
|
wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils git ]}
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
35
pkgs/common-updater/scripts/list-archive-two-level-versions
Executable file
35
pkgs/common-updater/scripts/list-archive-two-level-versions
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# lists all available versions listed for a package in a site (http)
|
||||||
|
|
||||||
|
scriptName=list-archive-two-level-versions # do not use the .wrapped name
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $scriptName <archive url> [<package name> [<debug file path>]]"
|
||||||
|
}
|
||||||
|
|
||||||
|
archive="$1" # archive url
|
||||||
|
pname="$2" # package name
|
||||||
|
file="$3" # file for writing debugging information
|
||||||
|
|
||||||
|
if [ -z "$archive" ]; then
|
||||||
|
echo "$scriptName: Missing archive url"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print a debugging message
|
||||||
|
if [ -n "$file" ]; then
|
||||||
|
echo "# Listing versions for $pname at $archive" >> $file
|
||||||
|
fi
|
||||||
|
|
||||||
|
# list all major-minor versions from archive
|
||||||
|
tags1=$(curl -sS "$archive/")
|
||||||
|
tags1=$(echo "$tags1" | sed -rne 's,^<a href="([0-9]+\.[0-9]+)/">.*,\1,p')
|
||||||
|
|
||||||
|
# print available versions
|
||||||
|
for tag in $tags1; do
|
||||||
|
tags2=$(curl -sS "$archive/$tag/")
|
||||||
|
tags2=$(echo "$tags2" | sed -rne "s,^<a href=\"$pname-([0-9.]+)\\.[^0-9].*\">.*,\\1,p")
|
||||||
|
echo "$tags2"
|
||||||
|
done
|
32
pkgs/common-updater/scripts/list-git-tags
Executable file
32
pkgs/common-updater/scripts/list-git-tags
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#! /bin/sh -x
|
||||||
|
|
||||||
|
# lists all available tags from a git repository
|
||||||
|
|
||||||
|
scriptName=list-git-tags # do not use the .wrapped name
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $scriptName <repository url> [<package name> [<debug file path>]]"
|
||||||
|
}
|
||||||
|
|
||||||
|
repo="$1" # git repository url
|
||||||
|
pname="$2" # package name
|
||||||
|
file="$3" # file for writing debugging information
|
||||||
|
|
||||||
|
if [ -z "$repo" ]; then
|
||||||
|
echo "$scriptName: Missing git repository url"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print a debugging message
|
||||||
|
if [ -n "$file" ]; then
|
||||||
|
echo "# Listing tags for $pname at $repo" >> $file
|
||||||
|
fi
|
||||||
|
|
||||||
|
# list all tags from the remote repository
|
||||||
|
tags=$(git ls-remote --tags --refs "$repo")
|
||||||
|
|
||||||
|
# keep only the version part of the tag
|
||||||
|
tags=$(echo "$tags" | cut --delimiter=/ --field=3)
|
||||||
|
|
||||||
|
echo "$tags"
|
98
pkgs/common-updater/update-script.nix
Normal file
98
pkgs/common-updater/update-script.nix
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
{ stdenv, writeScript, coreutils, gnugrep, gnused, common-updater-scripts, nix }:
|
||||||
|
|
||||||
|
{ pname
|
||||||
|
, version
|
||||||
|
, attrPath ? pname
|
||||||
|
, versionLister
|
||||||
|
, rev-prefix ? ""
|
||||||
|
, odd-unstable ? true
|
||||||
|
, patchlevel-unstable ? true
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# where to print git commands and debugging messages
|
||||||
|
fileForGitCommands = "update-git-commits.txt";
|
||||||
|
|
||||||
|
# shell script to update package
|
||||||
|
updateScript = writeScript "update-script.sh" ''
|
||||||
|
#! ${stdenv.shell}
|
||||||
|
set -o errexit
|
||||||
|
set -x
|
||||||
|
|
||||||
|
pname="$1"
|
||||||
|
version="$2"
|
||||||
|
attr_path="$3"
|
||||||
|
version_lister="$4"
|
||||||
|
rev_prefix="$5"
|
||||||
|
odd_unstable="$6"
|
||||||
|
patchlevel_unstable="$7"
|
||||||
|
|
||||||
|
# print header
|
||||||
|
echo "# $pname-$version" >> ${fileForGitCommands}
|
||||||
|
|
||||||
|
function version_is_unstable() {
|
||||||
|
local tag="$1"
|
||||||
|
local enforce="$2"
|
||||||
|
if [ -n "$odd_unstable" -o -n "$enforce" ]; then
|
||||||
|
local minor=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.([0-9]+).*,\1,p')
|
||||||
|
if [ $((minor % 2)) -eq 1 ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -n "$patchlevel_unstable" -o -n "$enforce" ]; then
|
||||||
|
local patchlevel=$(echo "$tag" | ${gnused}/bin/sed -rne 's,^[0-9]+\.[0-9]+\.([0-9]+).*$,\1,p')
|
||||||
|
if ((patchlevel >= 90)); then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
tags=$($version_lister $pname ${fileForGitCommands}) || exit 1
|
||||||
|
|
||||||
|
# print available tags
|
||||||
|
for tag in $tags; do
|
||||||
|
echo "# found $pname version: $tag" >> ${fileForGitCommands}
|
||||||
|
done
|
||||||
|
|
||||||
|
# cut any revision prefix not used in the NixOS package version
|
||||||
|
if [ -n "$rev_prefix" ]; then
|
||||||
|
tags=$(echo "$tags" | ${gnugrep}/bin/grep "^$rev_prefix")
|
||||||
|
tags=$(echo "$tags" | ${gnused}/bin/sed -e "s,^$rev_prefix,,")
|
||||||
|
fi
|
||||||
|
tags=$(echo "$tags" | ${gnugrep}/bin/grep "^[0-9]")
|
||||||
|
|
||||||
|
# sort the tags in decreasing order
|
||||||
|
tags=$(echo "$tags" | ${coreutils}/bin/sort --reverse --version-sort)
|
||||||
|
|
||||||
|
# find the newest tag
|
||||||
|
# do not consider development versions
|
||||||
|
for latest_tag in $tags; do
|
||||||
|
if version_is_unstable "$latest_tag"; then
|
||||||
|
echo "# skip development version: $pname-$latest_tag" >> ${fileForGitCommands}
|
||||||
|
latest_tag=
|
||||||
|
else
|
||||||
|
if version_is_unstable "$latest_tag" "enforce"; then
|
||||||
|
echo "# use potential development version: $pname-$latest_tag" >> ${fileForGitCommands}
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$latest_tag" ]; then
|
||||||
|
# print commands to commit the changes
|
||||||
|
if [ "$version" != "$latest_tag" ]; then
|
||||||
|
pfile=$(EDITOR=echo ${nix}/bin/nix edit -f. "$attr_path")
|
||||||
|
echo " git add $pfile " >> ${fileForGitCommands}
|
||||||
|
echo " git commit -m '$attr_path: $version -> $latest_tag'" >> ${fileForGitCommands}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update the nix expression
|
||||||
|
${common-updater-scripts}/bin/update-source-version "$attr_path" "$latest_tag"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "" >> ${fileForGitCommands}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
[ updateScript pname version attrPath versionLister rev-prefix odd-unstable patchlevel-unstable ]
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchzip }:
|
{ stdenv, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "3";
|
version = "3.1";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "fira-code-${version}";
|
name = "fira-code-${version}";
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ in fetchzip {
|
|||||||
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
|
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "19kcqqd6c61v137q88zsvf2ra154n009sbqh6zs7l8f7r5bbipj2";
|
sha256 = "1rk5hiix282b1gsxq9kqma2q9fnydj0xl9vbrd88rf7ywvn75817";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://github.com/tonsky/FiraCode";
|
homepage = "https://github.com/tonsky/FiraCode";
|
||||||
|
36
pkgs/data/fonts/line-awesome/default.nix
Normal file
36
pkgs/data/fonts/line-awesome/default.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ lib, stdenv, fetchurl, unzip }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "line-awesome";
|
||||||
|
version = "1.3.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url =
|
||||||
|
"https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/${version}/line-awesome-${version}.zip";
|
||||||
|
hash = "sha256:07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ unzip ];
|
||||||
|
|
||||||
|
sourceRoot = "${version}/fonts";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/fonts/truetype
|
||||||
|
mkdir -p $out/share/fonts/woff
|
||||||
|
mkdir -p $out/share/fonts/woff2
|
||||||
|
cp *.ttf $out/share/fonts/truetype
|
||||||
|
cp *.woff $out/share/fonts/woff
|
||||||
|
cp *.woff2 $out/share/fonts/woff2
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Replace Font Awesome with modern line icons";
|
||||||
|
longDescription = ''
|
||||||
|
This package includes only the TTF, WOFF and WOFF2 fonts. For full CSS etc. see the project website.
|
||||||
|
'';
|
||||||
|
homepage = "https://icons8.com/line-awesome";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ puzzlewolf ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
44
pkgs/data/icons/humanity-icon-theme/default.nix
Normal file
44
pkgs/data/icons/humanity-icon-theme/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ stdenv, fetchurl, gtk3, gnome3, hicolor-icon-theme }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "humanity-icon-theme";
|
||||||
|
version = "0.6.15";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.tar.xz";
|
||||||
|
sha256 = "19ja47468s3jfabvakq9wknyfclfr31a9vd11p3mhapfq8jv9g4x";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gtk3
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
gnome3.adwaita-icon-theme
|
||||||
|
hicolor-icon-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
dontDropIconThemeCache = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/share/icons
|
||||||
|
cp -a Humanity* $out/share/icons
|
||||||
|
rm $out/share/icons/*/{AUTHORS,CONTRIBUTORS,COPYING}
|
||||||
|
|
||||||
|
for theme in $out/share/icons/*; do
|
||||||
|
gtk-update-icon-cache $theme
|
||||||
|
done
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Humanity icons from Ubuntu";
|
||||||
|
homepage = "https://launchpad.net/humanity/";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = [ maintainers.romildo ];
|
||||||
|
};
|
||||||
|
}
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "zafiro-icons";
|
pname = "zafiro-icons";
|
||||||
version = "1.0";
|
version = "1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zayronxio";
|
owner = "zayronxio";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "0gy3c0jkj1icnwcs23b6km9cj9cccv8y5z1w11nfdv91cq3mdhmb";
|
sha256 = "05h8qm9izjbp8pnl9jpbw3y9sddhp0zmg94fm1k4d4hhdqnakqhv";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ gtk3 ];
|
nativeBuildInputs = [ gtk3 ];
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-videos";
|
pname = "elementary-videos";
|
||||||
version = "2.7.0";
|
version = "2.7.1";
|
||||||
|
|
||||||
repoName = "videos";
|
repoName = "videos";
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = repoName;
|
repo = repoName;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1b6dqqmxa83fwlh9r0v918ikxd3mnwk0j5xssw1wk5l7q72s43w7";
|
sha256 = "00arim4i9bv9mbms1irkp44grkgrfnmqzraswyn1xiz9nvl1bsb9";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -15,13 +15,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pantheon-agent-geoclue2";
|
pname = "pantheon-agent-geoclue2";
|
||||||
version = "1.0.3";
|
version = "1.0.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1fhgdcykn0ykn8fp7inn2akygpglhdwfpdkpnih86kqmqj8siahv";
|
sha256 = "1lky7pw47d5mdza3bhq0ahdhgdv159ixngdsc1ys6j1kszsfxc1f";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -4,6 +4,7 @@ mkXfceDerivation {
|
|||||||
category = "apps";
|
category = "apps";
|
||||||
pname = "gigolo";
|
pname = "gigolo";
|
||||||
version = "0.5.0";
|
version = "0.5.0";
|
||||||
|
odd-unstable = false;
|
||||||
|
|
||||||
sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";
|
sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
mkXfceDerivation {
|
mkXfceDerivation {
|
||||||
category = "apps";
|
category = "archive";
|
||||||
pname = "orage";
|
pname = "orage";
|
||||||
version = "4.12.1";
|
version = "4.12.1";
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ mkXfceDerivation {
|
|||||||
category = "apps";
|
category = "apps";
|
||||||
pname = "xfce4-screenshooter";
|
pname = "xfce4-screenshooter";
|
||||||
version = "1.9.5";
|
version = "1.9.5";
|
||||||
|
odd-unstable = false;
|
||||||
|
|
||||||
sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";
|
sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, makeWrapper
|
{ stdenv, fetchurl, pkgconfig, makeWrapper
|
||||||
, gstreamer, gtk2, gst-plugins-base, libnotify
|
, gstreamer, gtk2, gst-plugins-base, libnotify
|
||||||
, keybinder, xfconf
|
, keybinder, xfconf, xfce
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
category = "apps";
|
||||||
|
|
||||||
# The usual Gstreamer plugins package has a zillion dependencies
|
# The usual Gstreamer plugins package has a zillion dependencies
|
||||||
# that we don't need for a simple mixer, so build a minimal package.
|
# that we don't need for a simple mixer, so build a minimal package.
|
||||||
gst_plugins_minimal = gst-plugins-base.override {
|
gst_plugins_minimal = gst-plugins-base.override {
|
||||||
@ -13,15 +15,13 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
p_name = "xfce4-volumed";
|
pname = "xfce4-volumed";
|
||||||
ver_maj = "0.1";
|
version = "0.1.13";
|
||||||
ver_min = "13";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
|
url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
|
sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
|
||||||
};
|
};
|
||||||
name = "${p_name}-${ver_maj}.${ver_min}";
|
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ gstreamer gst_plugins_minimal gtk2
|
[ gstreamer gst_plugins_minimal gtk2
|
||||||
@ -36,6 +36,12 @@ stdenv.mkDerivation rec {
|
|||||||
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
|
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = xfce.updateScript {
|
||||||
|
inherit pname version;
|
||||||
|
attrPath = "xfce.${pname}";
|
||||||
|
versionLister = xfce.archiveLister category pname;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive
|
homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive
|
||||||
description = "A volume keys control daemon for the Xfce desktop environment";
|
description = "A volume keys control daemon for the Xfce desktop environment";
|
||||||
|
@ -18,7 +18,8 @@ mkXfceDerivation {
|
|||||||
category = "apps";
|
category = "apps";
|
||||||
pname = "xfdashboard";
|
pname = "xfdashboard";
|
||||||
version = "0.7.5";
|
version = "0.7.5";
|
||||||
rev = "0.7.5";
|
rev-prefix = "";
|
||||||
|
odd-unstable = false;
|
||||||
|
|
||||||
sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i";
|
sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i";
|
||||||
|
|
||||||
|
@ -1,23 +1,31 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
|
{ stdenv, fetchurl, pkgconfig, intltool, gtk2, xfce }:
|
||||||
|
|
||||||
|
let
|
||||||
|
category = "art";
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
p_name = "xfce4-icon-theme";
|
pname = "xfce4-icon-theme";
|
||||||
ver_maj = "4.4";
|
version = "4.4.3";
|
||||||
ver_min = "3";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
|
url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
|
sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
|
||||||
};
|
};
|
||||||
name = "${p_name}-${ver_maj}.${ver_min}";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ intltool gtk2 ];
|
buildInputs = [ intltool gtk2 ];
|
||||||
|
|
||||||
meta = {
|
passthru.updateScript = xfce.updateScript {
|
||||||
|
inherit pname version;
|
||||||
|
attrPath = "xfce.${pname}";
|
||||||
|
versionLister = xfce.archiveLister category pname;
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://www.xfce.org/";
|
homepage = "https://www.xfce.org/";
|
||||||
description = "Icons for Xfce";
|
description = "Icons for Xfce";
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.eelco ];
|
maintainers = [ maintainers.eelco ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,23 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl, xfce }:
|
||||||
|
|
||||||
|
let
|
||||||
|
category = "art";
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
p_name = "xfwm4-themes";
|
pname = "xfwm4-themes";
|
||||||
ver_maj = "4.10";
|
version = "4.10.0";
|
||||||
ver_min = "0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
|
url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j";
|
sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j";
|
||||||
};
|
};
|
||||||
name = "${p_name}-${ver_maj}.${ver_min}";
|
|
||||||
|
passthru.updateScript = xfce.updateScript {
|
||||||
|
inherit pname version;
|
||||||
|
attrPath = "xfce.${pname}";
|
||||||
|
versionLister = xfce.archiveLister category pname;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://www.xfce.org/";
|
homepage = "https://www.xfce.org/";
|
||||||
|
@ -9,6 +9,8 @@ mkXfceDerivation {
|
|||||||
|
|
||||||
sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
|
sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
|
||||||
|
|
||||||
|
odd-unstable = false;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Thunar extension for automatic management of removable drives and media";
|
description = "Thunar extension for automatic management of removable drives and media";
|
||||||
};
|
};
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user