···5353Follow these steps to backport a change into a release branch in compliance with the [commit policy](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches).
545455551. Take note of the commits in which the change was introduced into `master` branch.
5656-2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`.
5656+2. Check out the target _release branch_, e.g. `release-20.09`. Do not use a _channel branch_ like `nixos-20.09` or `nixpkgs-20.09`.
57573. Create a branch for your change, e.g. `git checkout -b backport`.
58584. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
5959-5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.03`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.03]`.
5959+5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.09`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.09]`.
60606161## Reviewing contributions
6262
+34
.github/STALE-BOT.md
···11+# Stale bot information
22+33+- Thanks for your contribution!
44+- To remove the stale label, just leave a new comment.
55+- _How to find the right people to ping?_ → [`git blame`](https://git-scm.com/docs/git-blame) to the rescue! (or GitHub's history and blame buttons.)
66+- You can always ask for help on [our Discourse Forum](https://discourse.nixos.org/) or on the [#nixos IRC channel](https://webchat.freenode.net/#nixos).
77+88+## Suggestions for PRs
99+1010+1. If it is unfinished but you plan to finish it, please mark it as a draft.
1111+2. If you don't expect to work on it any time soon, closing it with a short comment may encourage someone else to pick up your work.
1212+3. To get things rolling again, rebase the PR against the target branch and address valid comments.
1313+4. If you need a review to move forward, ask in [the Discourse thread for PRs that need help](https://discourse.nixos.org/t/prs-in-distress/3604).
1414+5. If all you need is a merge, check the git history to find and [request reviews](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review) from people who usually merge related contributions.
1515+1616+## Suggestions for issues
1717+1818+1. If it is resolved (either for you personally, or in general), please consider closing it.
1919+2. If this might still be an issue, but you are not interested in promoting its resolution, please consider closing it while encouraging others to take over and reopen an issue if they care enough.
2020+3. If you still have interest in resolving it, try to ping somebody who you believe might have an interest in the topic. Consider discussing the problem in [our Discourse Forum](https://discourse.nixos.org/).
2121+4. As with all open source projects, your best option is to submit a Pull Request that addresses this issue. We :heart: this attitude!
2222+2323+**Memorandum on closing issues**
2424+2525+Don't be afraid to close an issue that holds valuable information. Closed issues stay in the system for people to search, read, cross-reference, or even reopen--nothing is lost! Closing obsolete issues is an important way to help maintainers focus their time and effort.
2626+2727+## Useful GitHub search queries
2828+2929+- [Open PRs with any stale-bot interaction](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+)
3030+- [Open PRs with any stale-bot interaction and `2.status: stale`](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+label%3A%222.status%3A+stale%22)
3131+- [Open PRs with any stale-bot interaction and NOT `2.status: stale`](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+commenter%3Aapp%2Fstale+-label%3A%222.status%3A+stale%22+)
3232+- [Open Issues with any stale-bot interaction](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+)
3333+- [Open Issues with any stale-bot interaction and `2.status: stale`](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+label%3A%222.status%3A+stale%22+)
3434+- [Open Issues with any stale-bot interaction and NOT `2.status: stale`](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+commenter%3Aapp%2Fstale+-label%3A%222.status%3A+stale%22+)
+3-34
.github/stale.yml
···11# Configuration for probot-stale - https://github.com/probot/stale
22-# Number of days of inactivity before an issue becomes stale
32daysUntilStale: 180
44-# Number of days of inactivity before a stale issue is closed
53daysUntilClose: false
66-# Issues with these labels will never be considered stale
74exemptLabels:
85 - "1.severity: security"
99-# Label to use when marking an issue as stale
66+ - "2.status: never-stale"
107staleLabel: "2.status: stale"
1111-# Comment to post when marking an issue as stale. Set to `false` to disable
1212-pulls:
1313- markComment: |
1414- Hello, I'm a bot and I thank you in the name of the community for your contributions.
1515-1616- Nixpkgs is a busy repository, and unfortunately sometimes PRs get left behind for too long. Nevertheless, we'd like to help committers reach the PRs that are still important. This PR has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
1717-1818- If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me". But there's a bit more you can do:
1919-2020- If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
2121-2222- If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) to find someone who touched the relevant files in the past.
2323-2424- If your PR has had reviews and nevertheless got stale, make sure you've responded to all of the reviewer's requests / questions. Usually when PR authors show responsibility and dedication, reviewers (privileged or not) show dedication as well. If you've pushed a change, it's possible the reviewer wasn't notified about your push via email, so you can always [officially request them for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review), or just @ mention them and say you've addressed their comments.
2525-2626- Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/), or more specifically, [at this thread](https://discourse.nixos.org/t/prs-in-distress/3604) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
2727-2828-issues:
2929- markComment: |
3030- Hello, I'm a bot and I thank you in the name of the community for opening this issue.
3131-3232- To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
3333-3434- The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.
3535-3636- If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use [Git blame](https://git-scm.com/docs/git-blame) or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) on the relevant files to find them.
3737-3838- Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
3939-4040-# Comment to post when closing a stale issue. Set to `false` to disable
88+markComment: |
99+ I marked this as stale due to inactivity. → [More info](https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md)
4110closeComment: false
+2-2
README.md
···4646system, [Hydra](https://hydra.nixos.org/).
47474848* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
4949-* [Continuous package builds for the NixOS 20.03 release](https://hydra.nixos.org/jobset/nixos/release-20.03)
4949+* [Continuous package builds for the NixOS 20.09 release](https://hydra.nixos.org/jobset/nixos/release-20.09)
5050* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
5151-* [Tests for the NixOS 20.03 release](https://hydra.nixos.org/job/nixos/release-20.03/tested#tabs-constituents)
5151+* [Tests for the NixOS 20.09 release](https://hydra.nixos.org/job/nixos/release-20.09/tested#tabs-constituents)
52525353Artifacts successfully built with Hydra are published to cache at
5454https://cache.nixos.org/. When successful build and test criteria are
+24-8
lib/debug.nix
···1414*/
1515{ lib }:
1616let
1717- inherit (builtins) trace isAttrs isList isInt
1818- head substring attrNames;
1919- inherit (lib) id elem isFunction;
1717+ inherit (lib)
1818+ isInt
1919+ attrNames
2020+ isList
2121+ isAttrs
2222+ substring
2323+ addErrorContext
2424+ attrValues
2525+ concatLists
2626+ concatStringsSep
2727+ const
2828+ elem
2929+ generators
3030+ head
3131+ id
3232+ isDerivation
3333+ isFunction
3434+ mapAttrs
3535+ trace;
2036in
21372238rec {
···94110 trace: { a = { b = {…}; }; }
95111 => null
96112 */
9797- traceSeqN = depth: x: y: with lib;
113113+ traceSeqN = depth: x: y:
98114 let snip = v: if isList v then noQuotes "[…]" v
99115 else if isAttrs v then noQuotes "{…}" v
100116 else v;
···149165 */
150166 runTests =
151167 # Tests to run
152152- tests: lib.concatLists (lib.attrValues (lib.mapAttrs (name: test:
168168+ tests: concatLists (attrValues (mapAttrs (name: test:
153169 let testsToRun = if tests ? tests then tests.tests else [];
154170 in if (substring 0 4 name == "test" || elem name testsToRun)
155171 && ((testsToRun == []) || elem name tests.tests)
···176192 + "and will be removed in the next release. "
177193 + "Please use more specific concatenation "
178194 + "for your uses (`lib.concat(Map)StringsSep`)." )
179179- (lib.concatStringsSep "; " (map (x: "${x}=") (attrNames a)));
195195+ (concatStringsSep "; " (map (x: "${x}=") (attrNames a)));
180196181181- showVal = with lib;
197197+ showVal =
182198 trace ( "Warning: `showVal` is deprecated "
183199 + "and will be removed in the next release, "
184200 + "please use `traceSeqN`" )
···226242 trace ( "Warning: `addErrorContextToAttrs` is deprecated "
227243 + "and will be removed in the next release. "
228244 + "Please use `builtins.addErrorContext` directly." )
229229- (lib.mapAttrs (a: v: lib.addErrorContext "while evaluating ${a}" v) attrs);
245245+ (mapAttrs (a: v: addErrorContext "while evaluating ${a}" v) attrs);
230246231247 # example: (traceCallXml "myfun" id 3) will output something like
232248 # calling myfun arg 1: 3 result: 3
···11{ lib }:
2233-with lib.lists;
44-with lib.strings;
55-with lib.trivial;
66-with lib.attrsets;
77-with lib.options;
88-with lib.debug;
99-with lib.types;
33+let
44+ inherit (lib)
55+ all
66+ any
77+ attrByPath
88+ attrNames
99+ catAttrs
1010+ concatLists
1111+ concatMap
1212+ count
1313+ elem
1414+ filter
1515+ findFirst
1616+ flip
1717+ foldl
1818+ foldl'
1919+ getAttrFromPath
2020+ head
2121+ id
2222+ imap1
2323+ isAttrs
2424+ isBool
2525+ isFunction
2626+ isString
2727+ length
2828+ mapAttrs
2929+ mapAttrsToList
3030+ mapAttrsRecursiveCond
3131+ min
3232+ optional
3333+ optionalAttrs
3434+ optionalString
3535+ recursiveUpdate
3636+ reverseList sort
3737+ setAttrByPath
3838+ toList
3939+ types
4040+ warn
4141+ ;
4242+ inherit (lib.options)
4343+ isOption
4444+ mkOption
4545+ showDefs
4646+ showFiles
4747+ showOption
4848+ unknownModule
4949+ ;
5050+in
10511152rec {
1253···616657 fixupOptionType = loc: opt:
617658 let
618659 options = opt.options or
619619- (throw "Option `${showOption loc'}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
660660+ (throw "Option `${showOption loc}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
620661 f = tp:
621662 let optionSetIn = type: (tp.name == type) && (tp.functor.wrapped.name == "optionSet");
622663 in
+35-6
lib/options.nix
···11# Nixpkgs/NixOS option handling.
22{ lib }:
3344-with lib.trivial;
55-with lib.lists;
66-with lib.attrsets;
77-with lib.strings;
88-44+let
55+ inherit (lib)
66+ all
77+ collect
88+ concatLists
99+ concatMap
1010+ elemAt
1111+ filter
1212+ foldl'
1313+ head
1414+ isAttrs
1515+ isBool
1616+ isDerivation
1717+ isFunction
1818+ isInt
1919+ isList
2020+ isString
2121+ length
2222+ mapAttrs
2323+ optional
2424+ optionals
2525+ take
2626+ ;
2727+ inherit (lib.attrsets)
2828+ optionalAttrs
2929+ ;
3030+ inherit (lib.strings)
3131+ concatMapStrings
3232+ concatStringsSep
3333+ ;
3434+ inherit (lib.types)
3535+ mkOptionType
3636+ ;
3737+in
938rec {
10391140 /* Returns true when the given argument is an option
···110139 # Return early if we only have one element
111140 # This also makes it work for functions, because the foldl' below would try
112141 # to compare the first element with itself, which is false for functions
113113- else if length defs == 1 then (elemAt defs 0).value
142142+ else if length defs == 1 then (head defs).value
114143 else (foldl' (first: def:
115144 if def.value != first.value then
116145 throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}"
+28-12
lib/sources.nix
···11# Functions for copying sources to the Nix store.
22{ lib }:
3344+let
55+ inherit (builtins)
66+ hasContext
77+ match
88+ readDir
99+ storeDir
1010+ tryEval
1111+ ;
1212+ inherit (lib)
1313+ filter
1414+ getAttr
1515+ isString
1616+ pathExists
1717+ readFile
1818+ split
1919+ ;
2020+in
421rec {
522623 # Returns the type of a path: regular (for file), symlink, or directory
77- pathType = p: with builtins; getAttr (baseNameOf p) (readDir (dirOf p));
2424+ pathType = p: getAttr (baseNameOf p) (readDir (dirOf p));
825926 # Returns true if the path exists and is a directory, false otherwise
1010- pathIsDirectory = p: if builtins.pathExists p then (pathType p) == "directory" else false;
2727+ pathIsDirectory = p: if pathExists p then (pathType p) == "directory" else false;
11281229 # Returns true if the path exists and is a regular file, false otherwise
1313- pathIsRegularFile = p: if builtins.pathExists p then (pathType p) == "regular" else false;
3030+ pathIsRegularFile = p: if pathExists p then (pathType p) == "regular" else false;
14311532 # Bring in a path as a source, filtering out all Subversion and CVS
1633 # directories, as well as backup files (*~).
···1936 (baseName == ".git" || type == "directory" && (baseName == ".svn" || baseName == "CVS" || baseName == ".hg")) ||
2037 # Filter out editor backup / swap files.
2138 lib.hasSuffix "~" baseName ||
2222- builtins.match "^\\.sw[a-z]$" baseName != null ||
2323- builtins.match "^\\..*\\.sw[a-z]$" baseName != null ||
3939+ match "^\\.sw[a-z]$" baseName != null ||
4040+ match "^\\..*\\.sw[a-z]$" baseName != null ||
24412542 # Filter out generates files.
2643 lib.hasSuffix ".o" baseName ||
···89106 in lib.cleanSourceWith {
90107 filter = (path: type:
91108 let relPath = lib.removePrefix (toString origSrc + "/") (toString path);
9292- in lib.any (re: builtins.match re relPath != null) regexes);
109109+ in lib.any (re: match re relPath != null) regexes);
93110 inherit src;
94111 };
95112···102119 in type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts;
103120 in cleanSourceWith { inherit filter; src = path; };
104121105105- pathIsGitRepo = path: (builtins.tryEval (commitIdFromGitRepo path)).success;
122122+ pathIsGitRepo = path: (tryEval (commitIdFromGitRepo path)).success;
106123107124 # Get the commit id of a git repo
108125 # Example: commitIdFromGitRepo <nixpkgs/.git>
109126 commitIdFromGitRepo =
110127 let readCommitFromFile = file: path:
111111- with builtins;
112128 let fileName = toString path + "/" + file;
113129 packedRefsName = toString path + "/packed-refs";
114130 absolutePath = base: path:
···145161 # packed-refs file, so we have to grep through it:
146162 then
147163 let fileContent = readFile packedRefsName;
148148- matchRef = builtins.match "([a-z0-9]+) ${file}";
149149- isRef = s: builtins.isString s && (matchRef s) != null;
164164+ matchRef = match "([a-z0-9]+) ${file}";
165165+ isRef = s: isString s && (matchRef s) != null;
150166 # there is a bug in libstdc++ leading to stackoverflow for long strings:
151167 # https://github.com/NixOS/nix/issues/2147#issuecomment-659868795
152152- refs = builtins.filter isRef (builtins.split "\n" fileContent);
168168+ refs = filter isRef (split "\n" fileContent);
153169 in if refs == []
154170 then throw ("Could not find " + file + " in " + packedRefsName)
155171 else lib.head (matchRef (lib.head refs))
···157173 else throw ("Not a .git directory: " + path);
158174 in readCommitFromFile "HEAD";
159175160160- pathHasContext = builtins.hasContext or (lib.hasPrefix builtins.storeDir);
176176+ pathHasContext = builtins.hasContext or (lib.hasPrefix storeDir);
161177162178 canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext (toString src));
163179}
+9-4
lib/strings-with-deps.nix
···4141 [1] maybe this behaviour should be removed to keep things simple (?)
4242*/
43434444-with lib.lists;
4545-with lib.attrsets;
4646-with lib.strings;
4747-4444+let
4545+ inherit (lib)
4646+ concatStringsSep
4747+ head
4848+ isAttrs
4949+ listToAttrs
5050+ tail
5151+ ;
5252+in
4853rec {
49545055 /* !!! The interface of this function is kind of messed up, since
+43-21
lib/strings.nix
···8899rec {
10101111- inherit (builtins) stringLength substring head tail isString replaceStrings;
1111+ inherit (builtins)
1212+ compareVersions
1313+ elem
1414+ elemAt
1515+ filter
1616+ fromJSON
1717+ head
1818+ isInt
1919+ isList
2020+ isString
2121+ match
2222+ parseDrvName
2323+ readFile
2424+ replaceStrings
2525+ split
2626+ storeDir
2727+ stringLength
2828+ substring
2929+ tail
3030+ toJSON
3131+ typeOf
3232+ unsafeDiscardStringContext
3333+ ;
12341335 /* Concatenate a list of strings.
1436···120142 subDir:
121143 # List of base paths
122144 paths:
123123- concatStringsSep ":" (map (path: path + "/" + subDir) (builtins.filter (x: x != null) paths));
145145+ concatStringsSep ":" (map (path: path + "/" + subDir) (filter (x: x != null) paths));
124146125147 /* Construct a Unix-style search path by appending the given
126148 `subDir` to the specified `output` of each of the packages. If no
···313335 escapeNixString "hello\${}\n"
314336 => "\"hello\\\${}\\n\""
315337 */
316316- escapeNixString = s: escape ["$"] (builtins.toJSON s);
338338+ escapeNixString = s: escape ["$"] (toJSON s);
317339318340 /* Turn a string into an exact regular expression
319341···337359 */
338360 escapeNixIdentifier = s:
339361 # Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91
340340- if builtins.match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
362362+ if match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
341363 then s else escapeNixString s;
342364343365 # Obsolete - use replaceStrings instead.
···466488 versionOlder "1.1" "1.1"
467489 => false
468490 */
469469- versionOlder = v1: v2: builtins.compareVersions v2 v1 == 1;
491491+ versionOlder = v1: v2: compareVersions v2 v1 == 1;
470492471493 /* Return true if string v1 denotes a version equal to or newer than v2.
472494···492514 */
493515 getName = x:
494516 let
495495- parse = drv: (builtins.parseDrvName drv).name;
517517+ parse = drv: (parseDrvName drv).name;
496518 in if isString x
497519 then parse x
498520 else x.pname or (parse x.name);
···509531 */
510532 getVersion = x:
511533 let
512512- parse = drv: (builtins.parseDrvName drv).version;
534534+ parse = drv: (parseDrvName drv).version;
513535 in if isString x
514536 then parse x
515537 else x.version or (parse x.name);
···527549 let
528550 components = splitString "/" url;
529551 filename = lib.last components;
530530- name = builtins.head (splitString sep filename);
552552+ name = head (splitString sep filename);
531553 in assert name != filename; name;
532554533555 /* Create an --{enable,disable}-<feat> string that can be passed to
···617639 */
618640 floatToString = float: let
619641 result = toString float;
620620- precise = float == builtins.fromJSON result;
642642+ precise = float == fromJSON result;
621643 in if precise then result
622644 else lib.warn "Imprecise conversion from float to string ${result}" result;
623645624646 /* Check whether a value can be coerced to a string */
625647 isCoercibleToString = x:
626626- builtins.elem (builtins.typeOf x) [ "path" "string" "null" "int" "float" "bool" ] ||
627627- (builtins.isList x && lib.all isCoercibleToString x) ||
648648+ elem (typeOf x) [ "path" "string" "null" "int" "float" "bool" ] ||
649649+ (isList x && lib.all isCoercibleToString x) ||
628650 x ? outPath ||
629651 x ? __toString;
630652···643665 isStorePath = x:
644666 if isCoercibleToString x then
645667 let str = toString x; in
646646- builtins.substring 0 1 str == "/"
647647- && dirOf str == builtins.storeDir
668668+ substring 0 1 str == "/"
669669+ && dirOf str == storeDir
648670 else
649671 false;
650672···662684 */
663685 # Obviously, it is a bit hacky to use fromJSON this way.
664686 toInt = str:
665665- let may_be_int = builtins.fromJSON str; in
666666- if builtins.isInt may_be_int
687687+ let may_be_int = fromJSON str; in
688688+ if isInt may_be_int
667689 then may_be_int
668690 else throw "Could not convert ${str} to int.";
669691···685707 readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead"
686708 (rootPath: file:
687709 let
688688- lines = lib.splitString "\n" (builtins.readFile file);
710710+ lines = lib.splitString "\n" (readFile file);
689711 removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
690712 relativePaths = removeComments lines;
691691- absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
713713+ absolutePaths = map (path: rootPath + "/${path}") relativePaths;
692714 in
693715 absolutePaths);
694716···702724 fileContents ./version
703725 => "1.0"
704726 */
705705- fileContents = file: removeSuffix "\n" (builtins.readFile file);
727727+ fileContents = file: removeSuffix "\n" (readFile file);
706728707729708730 /* Creates a valid derivation name from a potentially invalid one.
···720742 sanitizeDerivationName = string: lib.pipe string [
721743 # Get rid of string context. This is safe under the assumption that the
722744 # resulting string is only used as a derivation name
723723- builtins.unsafeDiscardStringContext
745745+ unsafeDiscardStringContext
724746 # Strip all leading "."
725725- (x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0)
747747+ (x: elemAt (match "\\.*(.*)" x) 0)
726748 # Split out all invalid characters
727749 # https://github.com/NixOS/nix/blob/2.3.2/src/libstore/store-api.cc#L85-L112
728750 # https://github.com/NixOS/nix/blob/2242be83c61788b9c0736a92bb0b5c7bbfc40803/nix-rust/src/store/path.rs#L100-L125
729729- (builtins.split "[^[:alnum:]+._?=-]+")
751751+ (split "[^[:alnum:]+._?=-]+")
730752 # Replace invalid character ranges with a "-"
731753 (concatMapStrings (s: if lib.isList s then "-" else s))
732754 # Limit to 211 characters (minus 4 chars for ".drv")
···11#!/usr/bin/env nix-shell
22-#!nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ requests pyquery click ])'
22+#!nix-shell -i python3 -p "python3.withPackages(ps: with ps; [ requests pyquery click ])"
3344# To use, just execute this script with --help to display help.
55
+1-1
nixos/doc/manual/configuration/user-mgmt.xml
···3838 assigned by setting the user's
3939 <link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
4040 option. A hashed password can be generated using <command>mkpasswd -m
4141- sha-512</command> after installing the <literal>mkpasswd</literal> package.
4141+ sha-512</command>.
4242 </para>
4343 <para>
4444 A user ID (uid) is assigned automatically. You can also specify a uid
+8-8
nixos/doc/manual/installation/upgrading.xml
···1414 <para>
1515 <emphasis>Stable channels</emphasis>, such as
1616 <literal
1717- xlink:href="https://nixos.org/channels/nixos-20.03">nixos-20.03</literal>.
1717+ xlink:href="https://nixos.org/channels/nixos-20.09">nixos-20.09</literal>.
1818 These only get conservative bug fixes and package upgrades. For instance,
1919 a channel update may cause the Linux kernel on your system to be upgraded
2020 from 4.19.34 to 4.19.38 (a minor bug fix), but not from
···3838 <para>
3939 <emphasis>Small channels</emphasis>, such as
4040 <literal
4141- xlink:href="https://nixos.org/channels/nixos-20.03-small">nixos-20.03-small</literal>
4141+ xlink:href="https://nixos.org/channels/nixos-20.09-small">nixos-20.09-small</literal>
4242 or
4343 <literal
4444 xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
···6363 <para>
6464 When you first install NixOS, you’re automatically subscribed to the NixOS
6565 channel that corresponds to your installation source. For instance, if you
6666- installed from a 20.03 ISO, you will be subscribed to the
6767- <literal>nixos-20.03</literal> channel. To see which NixOS channel you’re
6666+ installed from a 20.09 ISO, you will be subscribed to the
6767+ <literal>nixos-20.09</literal> channel. To see which NixOS channel you’re
6868 subscribed to, run the following as root:
6969<screen>
7070<prompt># </prompt>nix-channel --list | grep nixos
···7575<prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
7676</screen>
7777 (Be sure to include the <literal>nixos</literal> parameter at the end.) For
7878- instance, to use the NixOS 20.03 stable channel:
7878+ instance, to use the NixOS 20.09 stable channel:
7979<screen>
8080-<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.03 nixos
8080+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09 nixos
8181</screen>
8282 If you have a server, you may want to use the “small” channel instead:
8383<screen>
8484-<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos
8484+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09-small nixos
8585</screen>
8686 And if you want to live on the bleeding edge:
8787<screen>
···132132 kernel, initrd or kernel modules.
133133 You can also specify a channel explicitly, e.g.
134134<programlisting>
135135-<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.03;
135135+<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.09;
136136</programlisting>
137137 </para>
138138 </section>
+678-123
nixos/doc/manual/release-notes/rl-2009.xml
···33 xmlns:xi="http://www.w3.org/2001/XInclude"
44 version="5.0"
55 xml:id="sec-release-20.09">
66- <title>Release 20.09 (“Nightingale”, 2020.09/??)</title>
66+ <title>Release 20.09 (“Nightingale”, 2020.10/27)</title>
7788+ <para>
99+ Support is planned until the end of April 2021, handing over to 21.03.
1010+ </para>
811 <section xmlns="http://docbook.org/ns/docbook"
912 xmlns:xlink="http://www.w3.org/1999/xlink"
1013 xmlns:xi="http://www.w3.org/2001/XInclude"
···1316 <title>Highlights</title>
14171518 <para>
1616- In addition to numerous new and upgraded packages, this release has the
1919+ In addition to 7349 new, 14442 updated, and 8181 removed packages, this release has the
1720 following highlights:
1821 </para>
19222023 <itemizedlist>
2124 <listitem>
2225 <para>
2323- Support is planned until the end of April 2021, handing over to 21.03.
2626+ Core version changes:
2427 </para>
2525- </listitem>
2626- <listitem>
2727- <para>GNOME desktop environment was upgraded to 3.36, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.36/">release notes</link>.</para>
2828- </listitem>
2929- <listitem>
3030- <para>
3131- The Cinnamon desktop environment (v4.6) has been added. <varname>services.xserver.desktopManager.cinnamon.enable = true;</varname> to try it out!
3232- Remember that, with any new feature it's possible you could run into issues, so please send all support requests to <link xlink:href="https://github.com/NixOS/nixpkgs/issues">github.com/NixOS/nixpkgs</link> to notify the maintainers.
3333- </para>
2828+ <itemizedlist>
2929+ <listitem>
3030+ <para>
3131+ gcc: 9.2.0 -> 9.3.0
3232+ </para>
3333+ </listitem>
3434+ <listitem>
3535+ <para>
3636+ glibc: 2.30 -> 2.31
3737+ </para>
3838+ </listitem>
3939+ <listitem>
4040+ <para>
4141+ linux: still defaults to 5.4.x, all supported kernels available
4242+ </para>
4343+ </listitem>
4444+ <listitem>
4545+ <para>
4646+ mesa: 19.3.5 -> 20.1.7
4747+ </para>
4848+ </listitem>
4949+ </itemizedlist>
3450 </listitem>
3551 <listitem>
3652 <para>
3737- Quickly configure a complete, private, self-hosted video
3838- conferencing solution with the new Jitsi Meet module.
5353+ Desktop Environments:
3954 </para>
5555+ <itemizedlist>
5656+ <listitem>
5757+ <para>
5858+ plasma5: 5.17.5 -> 5.18.5
5959+ </para>
6060+ </listitem>
6161+ <listitem>
6262+ <para>
6363+ kdeApplications: 19.12.3 -> 20.08.1
6464+ </para>
6565+ </listitem>
6666+ <listitem>
6767+ <para>
6868+ gnome3: 3.34 -> 3.36, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.36/">release notes</link>
6969+ </para>
7070+ </listitem>
7171+ <listitem>
7272+ <para>
7373+ cinnamon: added at 4.6
7474+ </para>
7575+ </listitem>
7676+ <listitem>
7777+ <para>
7878+ NixOS now distributes an official <link xlink:href="https://nixos.org/download.html#nixos-iso">GNOME ISO</link>
7979+ </para>
8080+ </listitem>
8181+ </itemizedlist>
4082 </listitem>
8383+4184 <listitem>
4285 <para>
4343- <package>maxx</package> package removed along with <varname>services.xserver.desktopManager.maxx</varname> module.
4444- Please migrate to <package>cdesktopenv</package> and <varname>services.xserver.desktopManager.cde</varname> module.
8686+ Programming Languages and Frameworks:
4587 </para>
8888+ <itemizedlist>
8989+9090+ <listitem>
9191+ <para>
9292+ Agda ecosystem was heavily reworked (see more details below)
9393+ </para>
9494+ </listitem>
9595+ <listitem>
9696+ <para>
9797+ PHP now defaults to PHP 7.4, updated from 7.3
9898+ </para>
9999+ </listitem>
100100+ <listitem>
101101+ <para>
102102+ PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release
103103+ </para>
104104+ </listitem>
105105+ <listitem>
106106+ <para>
107107+ Python 3 now defaults to Python 3.8 instead of 3.7
108108+ </para>
109109+ </listitem>
110110+ <listitem>
111111+ <para>
112112+ Python 3.5 reached its upstream EOL at the end of September 2020: it
113113+ has been removed from the list of available packages
114114+ </para>
115115+ </listitem>
116116+ </itemizedlist>
46117 </listitem>
118118+47119 <listitem>
48120 <para>
4949- We now distribute a GNOME ISO.
121121+ Databases and Service Monitoring:
50122 </para>
123123+ <itemizedlist>
124124+ <listitem>
125125+ <para>
126126+ MariaDB has been updated to 10.4, MariaDB Galera to 26.4. Please read the related upgrade instructions under <link linkend="sec-release-20.09-incompatibilities">backwards incompatibilities</link> before upgrading.
127127+ </para>
128128+ </listitem>
129129+ <listitem>
130130+ <para>
131131+ Zabbix now defaults to 5.0, updated from 4.4. Please read related sections under <link linkend="sec-release-20.09-incompatibilities">backwards compatibilities</link> before upgrading.
132132+ </para>
133133+ </listitem>
134134+ </itemizedlist>
51135 </listitem>
136136+52137 <listitem>
53138 <para>
5454- PHP now defaults to PHP 7.4, updated from 7.3.
139139+ Major module changes:
55140 </para>
141141+ <itemizedlist>
142142+ <listitem>
143143+ <para>
144144+ Quickly configure a complete, private, self-hosted video
145145+ conferencing solution with the new Jitsi Meet module.
146146+ </para>
147147+ </listitem>
148148+ <listitem>
149149+ <para>
150150+ Two new options, <link linkend="opt-services.openssh.authorizedKeysCommand">authorizedKeysCommand</link>
151151+ and <link linkend="opt-services.openssh.authorizedKeysCommandUser">authorizedKeysCommandUser</link>, have
152152+ been added to the <literal>openssh</literal> module. If you have <literal>AuthorizedKeysCommand</literal>
153153+ in your <link linkend="opt-services.openssh.extraConfig">services.openssh.extraConfig</link> you should
154154+ make use of these new options instead.
155155+ </para>
156156+ </listitem>
157157+ <listitem>
158158+ <para>
159159+ There is a new module for Podman (<varname>virtualisation.podman</varname>), a drop-in replacement for the Docker command line.
160160+ </para>
161161+ </listitem>
162162+ <listitem>
163163+ <para>
164164+ The new <varname>virtualisation.containers</varname> module manages configuration shared by the CRI-O and Podman modules.
165165+ </para>
166166+ </listitem>
167167+ <listitem>
168168+ <para>
169169+ Declarative Docker containers are renamed from <varname>docker-containers</varname> to <varname>virtualisation.oci-containers.containers</varname>.
170170+ This is to make it possible to use <literal>podman</literal> instead of <literal>docker</literal>.
171171+ </para>
172172+ </listitem>
173173+ <listitem>
174174+ <para>
175175+ The new option <link linkend="opt-documentation.man.generateCaches">documentation.man.generateCaches</link>
176176+ has been added to automatically generate the <literal>man-db</literal> caches, which are needed by utilities
177177+ like <command>whatis</command> and <command>apropos</command>. The caches are generated during the build of
178178+ the NixOS configuration: since this can be expensive when a large number of packages are installed, the
179179+ feature is disabled by default.
180180+ </para>
181181+ </listitem>
182182+ <listitem>
183183+ <para>
184184+ <varname>services.postfix.sslCACert</varname> was replaced by <varname>services.postfix.tlsTrustedAuthorities</varname> which now defaults to system certificate authorities.
185185+ </para>
186186+ </listitem>
187187+ <listitem>
188188+ <para>
189189+ The various documented workarounds to use steam have been converted to a module. <varname>programs.steam.enable</varname> enables steam, controller support and the workarounds.
190190+ </para>
191191+ </listitem>
192192+ <listitem>
193193+ <para>
194194+ Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers). <varname>hardware.logitech.lcd.enable</varname> enables support for all hardware supported by the <link xlink:href="https://sourceforge.net/projects/g15daemon/">g15daemon project</link>.
195195+ </para>
196196+ </listitem>
197197+ <listitem>
198198+ <para>
199199+ The GRUB module gained support for basic password protection, which
200200+ allows to restrict non-default entries in the boot menu to one or more
201201+ users. The users and passwords are defined via the option
202202+ <option>boot.loader.grub.users</option>.
203203+ Note: Password support is only available in GRUB version 2.
204204+ </para>
205205+ </listitem>
206206+ </itemizedlist>
56207 </listitem>
208208+57209 <listitem>
58210 <para>
5959- PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release.
211211+ NixOS module changes:
60212 </para>
213213+ <itemizedlist>
214214+ <listitem>
215215+ <para>
216216+ The NixOS module system now supports freeform modules as a mix between <literal>types.attrsOf</literal> and <literal>types.submodule</literal>. These allow you to explicitly declare a subset of options while still permitting definitions without an associated option. See <xref linkend='sec-freeform-modules'/> for how to use them.
217217+ </para>
218218+ </listitem>
219219+ <listitem>
220220+ <para>
221221+ Following its deprecation in 20.03, the Perl NixOS test driver has been removed.
222222+ All remaining tests have been ported to the Python test framework.
223223+ Code outside nixpkgs using <filename>make-test.nix</filename> or
224224+ <filename>testing.nix</filename> needs to be ported to
225225+ <filename>make-test-python.nix</filename> and
226226+ <filename>testing-python.nix</filename> respectively.
227227+ </para>
228228+ </listitem>
229229+ <listitem>
230230+ <para>
231231+ Subordinate GID and UID mappings are now set up automatically for all normal users.
232232+ This will make container tools like Podman work as non-root users out of the box.
233233+ </para>
234234+ </listitem>
235235+ </itemizedlist>
61236 </listitem>
237237+238238+ </itemizedlist>
239239+ </section>
240240+241241+ <section xmlns="http://docbook.org/ns/docbook"
242242+ xmlns:xlink="http://www.w3.org/1999/xlink"
243243+ xmlns:xi="http://www.w3.org/2001/XInclude"
244244+ version="5.0"
245245+ xml:id="sec-release-20.09-new-services">
246246+ <title>New Services</title>
247247+248248+ <para>
249249+ In addition to 1119 new, 118 updated, and 476 removed options; 61 new modules were added since the last release:
250250+ </para>
251251+252252+ <itemizedlist>
62253 <listitem>
63254 <para>
6464- Python 3 now defaults to Python 3.8 instead of 3.7.
255255+ Hardware:
65256 </para>
257257+ <itemizedlist>
258258+ <listitem>
259259+ <para>
260260+ <xref linkend="opt-hardware.system76.firmware-daemon.enable" /> adds easy support of system76 firmware
261261+ </para>
262262+ </listitem>
263263+ <listitem>
264264+ <para>
265265+ <xref linkend="opt-hardware.uinput.enable" /> loads uinput kernel module
266266+ </para>
267267+ </listitem>
268268+ <listitem>
269269+ <para>
270270+ <xref linkend="opt-hardware.video.hidpi.enable" /> enable good defaults for HiDPI displays
271271+ </para>
272272+ </listitem>
273273+ <listitem>
274274+ <para>
275275+ <xref linkend="opt-hardware.wooting.enable" /> support for Wooting keyboards
276276+ </para>
277277+ </listitem>
278278+ <listitem>
279279+ <para>
280280+ <xref linkend="opt-hardware.xpadneo.enable" /> xpadneo driver for Xbox One wireless controllers
281281+ </para>
282282+ </listitem>
283283+ </itemizedlist>
66284 </listitem>
67285 <listitem>
68286 <para>
6969- Python 3.5 has reached its upstream EOL at the end of September 2020: it
7070- has been removed from the list of available packages.
287287+ Programs:
71288 </para>
289289+ <itemizedlist>
290290+ <listitem>
291291+ <para>
292292+ <xref linkend="opt-programs.hamster.enable" /> enable hamster time tracking
293293+ </para>
294294+ </listitem>
295295+ <listitem>
296296+ <para>
297297+ <xref linkend="opt-programs.steam.enable" /> adds easy enablement of steam and related system configuration
298298+ </para>
299299+ </listitem>
300300+ </itemizedlist>
72301 </listitem>
73302 <listitem>
74303 <para>
7575- Two new options, <link linkend="opt-services.openssh.authorizedKeysCommand">authorizedKeysCommand</link>
7676- and <link linkend="opt-services.openssh.authorizedKeysCommandUser">authorizedKeysCommandUser</link>, have
7777- been added to the <literal>openssh</literal> module. If you have <literal>AuthorizedKeysCommand</literal>
7878- in your <link linkend="opt-services.openssh.extraConfig">services.openssh.extraConfig</link> you should
7979- make use of these new options instead.
304304+ Security:
80305 </para>
306306+ <itemizedlist>
307307+ <listitem>
308308+ <para>
309309+ <xref linkend="opt-security.doas.enable" /> alternative to sudo, allows non-root users to execute commands as root
310310+ </para>
311311+ </listitem>
312312+ <listitem>
313313+ <para>
314314+ <xref linkend="opt-security.tpm2.enable" /> add Trusted Platform Module 2 support
315315+ </para>
316316+ </listitem>
317317+ </itemizedlist>
81318 </listitem>
82319 <listitem>
83320 <para>
8484- There is a new module for Podman(<varname>virtualisation.podman</varname>), a drop-in replacement for the Docker command line.
321321+ System:
85322 </para>
323323+ <itemizedlist>
324324+ <listitem>
325325+ <para>
326326+ <xref linkend="opt-boot.initrd.network.openvpn.enable" /> start an OpenVPN client during initrd boot
327327+ </para>
328328+ </listitem>
329329+ </itemizedlist>
86330 </listitem>
87331 <listitem>
88332 <para>
8989- The new <varname>virtualisation.containers</varname> module manages configuration shared by the CRI-O and Podman modules.
333333+ Virtualization:
90334 </para>
335335+ <itemizedlist>
336336+ <listitem>
337337+ <para>
338338+ <xref linkend="opt-boot.enableContainers" /> use nixos-containers
339339+ </para>
340340+ </listitem>
341341+ <listitem>
342342+ <para>
343343+ <xref linkend="opt-virtualisation.oci-containers.containers" /> run OCI (Docker) containers
344344+ </para>
345345+ </listitem>
346346+ <listitem>
347347+ <para>
348348+ <xref linkend="opt-virtualisation.podman.enable" /> daemonless container engine
349349+ </para>
350350+ </listitem>
351351+ </itemizedlist>
91352 </listitem>
353353+92354 <listitem>
93355 <para>
9494- Declarative Docker containers are renamed from <varname>docker-containers</varname> to <varname>virtualisation.oci-containers.containers</varname>.
9595- This is to make it possible to use <literal>podman</literal> instead of <literal>docker</literal>.
356356+ Services:
96357 </para>
358358+ <itemizedlist>
359359+ <listitem>
360360+ <para>
361361+ <xref linkend="opt-services.ankisyncd.enable" /> Anki sync server
362362+ </para>
363363+ </listitem>
364364+ <listitem>
365365+ <para>
366366+ <xref linkend="opt-services.bazarr.enable" /> Subtitle manager for Sonarr and Radarr
367367+ </para>
368368+ </listitem>
369369+ <listitem>
370370+ <para>
371371+ <xref linkend="opt-services.biboumi.enable" /> Biboumi XMPP gateway to IRC
372372+ </para>
373373+ </listitem>
374374+ <listitem>
375375+ <para>
376376+ <xref linkend="opt-services.blockbook-frontend" /> Blockbook-frontend, a service for the Trezor wallet
377377+ </para>
378378+ </listitem>
379379+ <listitem>
380380+ <para>
381381+ <xref linkend="opt-services.cage.enable" /> Wayland cage service
382382+ </para>
383383+ </listitem>
384384+ <listitem>
385385+ <para>
386386+ <xref linkend="opt-services.convos.enable" /> IRC daemon, which can be accessed throught the browser
387387+ </para>
388388+ </listitem>
389389+ <listitem>
390390+ <para>
391391+ <xref linkend="opt-services.engelsystem.enable" /> Tool for coordinating volunteers and shifts on large events
392392+ </para>
393393+ </listitem>
394394+ <listitem>
395395+ <para>
396396+ <xref linkend="opt-services.espanso.enable" /> text-expander written in rust
397397+ </para>
398398+ </listitem>
399399+ <listitem>
400400+ <para>
401401+ <xref linkend="opt-services.foldingathome.enable" /> Folding@home client
402402+ </para>
403403+ </listitem>
404404+ <listitem>
405405+ <para>
406406+ <xref linkend="opt-services.gerrit.enable" /> Web-based team code collaboration tool
407407+ </para>
408408+ </listitem>
409409+ <listitem>
410410+ <para>
411411+ <xref linkend="opt-services.go-neb.enable" /> Matrix bot
412412+ </para>
413413+ </listitem>
414414+ <listitem>
415415+ <para>
416416+ <xref linkend="opt-services.hardware.xow.enable" /> xow as a systemd service
417417+ </para>
418418+ </listitem>
419419+ <listitem>
420420+ <para>
421421+ <xref linkend="opt-services.hercules-ci-agent.enable" /> Hercules CI build agent
422422+ </para>
423423+ </listitem>
424424+ <listitem>
425425+ <para>
426426+ <xref linkend="opt-services.jicofo.enable" /> Jitsi Conference Focus, component of Jitsi Meet
427427+ </para>
428428+ </listitem>
429429+ <listitem>
430430+ <para>
431431+ <xref linkend="opt-services.jirafeau.enable" /> A web file repository
432432+ </para>
433433+ </listitem>
434434+ <listitem>
435435+ <para>
436436+ <xref linkend="opt-services.jitsi-meet.enable" /> Secure, simple and scalable video conferences
437437+ </para>
438438+ </listitem>
439439+ <listitem>
440440+ <para>
441441+ <xref linkend="opt-services.jitsi-videobridge.enable" /> Jitsi Videobridge, a WebRTC compatible router
442442+ </para>
443443+ </listitem>
444444+ <listitem>
445445+ <para>
446446+ <xref linkend="opt-services.jupyterhub.enable" /> Jupyterhub development server
447447+ </para>
448448+ </listitem>
449449+ <listitem>
450450+ <para>
451451+ <xref linkend="opt-services.k3s.enable" /> Lightweight Kubernetes distribution
452452+ </para>
453453+ </listitem>
454454+ <listitem>
455455+ <para>
456456+ <xref linkend="opt-services.magic-wormhole-mailbox-server.enable" /> Magic Wormhole Mailbox Server
457457+ </para>
458458+ </listitem>
459459+ <listitem>
460460+ <para>
461461+ <xref linkend="opt-services.malcontent.enable" /> Parental Control support
462462+ </para>
463463+ </listitem>
464464+ <listitem>
465465+ <para>
466466+ <xref linkend="opt-services.matrix-appservice-discord.enable" /> Matrix and Discord bridge
467467+ </para>
468468+ </listitem>
469469+ <listitem>
470470+ <para>
471471+ <xref linkend="opt-services.mautrix-telegram.enable" /> Matrix-Telegram puppeting/relaybot bridge
472472+ </para>
473473+ </listitem>
474474+ <listitem>
475475+ <para>
476476+ <xref linkend="opt-services.mirakurun.enable" /> Japanese DTV Tuner Server Service
477477+ </para>
478478+ </listitem>
479479+ <listitem>
480480+ <para>
481481+ <xref linkend="opt-services.molly-brown.enable" /> Molly-Brown Gemini server
482482+ </para>
483483+ </listitem>
484484+ <listitem>
485485+ <para>
486486+ <xref linkend="opt-services.mullvad-vpn.enable" /> Mullvad VPN daemon
487487+ </para>
488488+ </listitem>
489489+ <listitem>
490490+ <para>
491491+ <xref linkend="opt-services.ncdns.enable" /> Namecoin to DNS bridge
492492+ </para>
493493+ </listitem>
494494+ <listitem>
495495+ <para>
496496+ <xref linkend="opt-services.nextdns.enable" /> NextDNS to DoH Proxy service
497497+ </para>
498498+ </listitem>
499499+ <listitem>
500500+ <para>
501501+ <xref linkend="opt-services.nix-store-gcs-proxy" /> Google storage bucket to be used as a nix store
502502+ </para>
503503+ </listitem>
504504+ <listitem>
505505+ <para>
506506+ <xref linkend="opt-services.onedrive.enable" /> OneDrive sync service
507507+ </para>
508508+ </listitem>
509509+ <listitem>
510510+ <para>
511511+ <xref linkend="opt-services.pinnwand.enable" /> Pastebin-like service
512512+ </para>
513513+ </listitem>
514514+ <listitem>
515515+ <para>
516516+ <xref linkend="opt-services.pixiecore.enable" /> Manage network booting of machines
517517+ </para>
518518+ </listitem>
519519+ <listitem>
520520+ <para>
521521+ <xref linkend="opt-services.privacyidea.enable" /> Privacy authentication server
522522+ </para>
523523+ </listitem>
524524+ <listitem>
525525+ <para>
526526+ <xref linkend="opt-services.quorum.enable" /> Quorum blockchain daemon
527527+ </para>
528528+ </listitem>
529529+ <listitem>
530530+ <para>
531531+ <xref linkend="opt-services.robustirc-bridge.enable" /> RobustIRC bridge
532532+ </para>
533533+ </listitem>
534534+ <listitem>
535535+ <para>
536536+ <xref linkend="opt-services.rss-bridge.enable" /> Generate RSS and Atom feeds
537537+ </para>
538538+ </listitem>
539539+ <listitem>
540540+ <para>
541541+ <xref linkend="opt-services.rtorrent.enable" /> rTorrent service
542542+ </para>
543543+ </listitem>
544544+ <listitem>
545545+ <para>
546546+ <xref linkend="opt-services.smartdns.enable" /> SmartDNS DNS server
547547+ </para>
548548+ </listitem>
549549+ <listitem>
550550+ <para>
551551+ <xref linkend="opt-services.sogo.enable" /> SOGo groupware
552552+ </para>
553553+ </listitem>
554554+ <listitem>
555555+ <para>
556556+ <xref linkend="opt-services.teeworlds.enable" /> Teeworlds game server
557557+ </para>
558558+ </listitem>
559559+ <listitem>
560560+ <para>
561561+ <xref linkend="opt-services.torque.mom.enable" /> torque computing node
562562+ </para>
563563+ </listitem>
564564+ <listitem>
565565+ <para>
566566+ <xref linkend="opt-services.torque.server.enable" /> torque server
567567+ </para>
568568+ </listitem>
569569+ <listitem>
570570+ <para>
571571+ <xref linkend="opt-services.tuptime.enable" /> A total uptime service
572572+ </para>
573573+ </listitem>
574574+ <listitem>
575575+ <para>
576576+ <xref linkend="opt-services.urserver.enable" /> X11 remote server
577577+ </para>
578578+ </listitem>
579579+ <listitem>
580580+ <para>
581581+ <xref linkend="opt-services.wasabibackend.enable" /> Wasabi backend service
582582+ </para>
583583+ </listitem>
584584+ <listitem>
585585+ <para>
586586+ <xref linkend="opt-services.yubikey-agent.enable" /> Yubikey agent
587587+ </para>
588588+ </listitem>
589589+ <listitem>
590590+ <para>
591591+ <xref linkend="opt-services.zigbee2mqtt.enable" /> Zigbee to MQTT bridge
592592+ </para>
593593+ </listitem>
594594+ </itemizedlist>
97595 </listitem>
596596+597597+ </itemizedlist>
598598+599599+ </section>
600600+601601+ <section xmlns="http://docbook.org/ns/docbook"
602602+ xmlns:xlink="http://www.w3.org/1999/xlink"
603603+ xmlns:xi="http://www.w3.org/2001/XInclude"
604604+ version="5.0"
605605+ xml:id="sec-release-20.09-incompatibilities">
606606+ <title>Backward Incompatibilities</title>
607607+608608+ <para>
609609+ When upgrading from a previous release, please be aware of the following
610610+ incompatible changes:
611611+ </para>
612612+613613+ <itemizedlist>
98614 <listitem>
99615 <para>
100616 MariaDB has been updated to 10.4, MariaDB Galera to 26.4.
···144660 from the default of <literal>mysql</literal> to a different user please change <literal>'mysql'@'localhost'</literal> to the corresponding user instead.
145661 </para>
146662 </listitem>
147147- <listitem>
148148- <para>
149149- The new option <link linkend="opt-documentation.man.generateCaches">documentation.man.generateCaches</link>
150150- has been added to automatically generate the <literal>man-db</literal> caches, which are needed by utilities
151151- like <command>whatis</command> and <command>apropos</command>. The caches are generated during the build of
152152- the NixOS configuration: since this can be expensive when a large number of packages are installed, the
153153- feature is disabled by default.
154154- </para>
155155- </listitem>
156156- <listitem>
157157- <para>
158158- <varname>services.postfix.sslCACert</varname> was replaced by <varname>services.postfix.tlsTrustedAuthorities</varname> which now defaults to system certificate authorities.
159159- </para>
160160- </listitem>
161161- <listitem>
162162- <para>
163163- Subordinate GID and UID mappings are now set up automatically for all normal users.
164164- This will make container tools like Podman work as non-root users out of the box.
165165- </para>
166166- </listitem>
167167- <listitem>
168168- <para>
169169- The various documented workarounds to use steam have been converted to a module. <varname>programs.steam.enable</varname> enables steam, controller support and the workarounds.
170170- </para>
171171- </listitem>
172172- <listitem>
173173- <para>
174174- Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers). <varname>hardware.logitech.lcd.enable</varname> enables support for all hardware supported by the g15daemon project.
175175- </para>
176176- </listitem>
663663+177664 <listitem>
178665 <para>
179666 Zabbix now defaults to 5.0, updated from 4.4. Please carefully read through
···208695</programlisting>
209696 </para>
210697 </listitem>
211211- <listitem>
212212- <para>
213213- The NixOS module system now supports freeform modules as a mix between <literal>types.attrsOf</literal> and <literal>types.submodule</literal>. These allow you to explicitly declare a subset of options while still permitting definitions without an associated option. See <xref linkend='sec-freeform-modules'/> for how to use them.
214214- </para>
215215- </listitem>
216216- <listitem>
217217- <para>
218218- The GRUB module gained support for basic password protection, which
219219- allows to restrict non-default entries in the boot menu to one or more
220220- users. The users and passwords are defined via the option
221221- <option>boot.loader.grub.users</option>.
222222- Note: Password support is only avaiable in GRUB version 2.
223223- </para>
224224- </listitem>
225225- <listitem>
226226- <para>
227227- Following its deprecation in 20.03, the Perl NixOS test driver has been removed.
228228- All remaining tests have been ported to the Python test framework.
229229- Code outside nixpkgs using <filename>make-test.nix</filename> or
230230- <filename>testing.nix</filename> needs to be ported to
231231- <filename>make-test-python.nix</filename> and
232232- <filename>testing-python.nix</filename> respectively.
233233- </para>
234234- </listitem>
235235- </itemizedlist>
236236- </section>
237698238238- <section xmlns="http://docbook.org/ns/docbook"
239239- xmlns:xlink="http://www.w3.org/1999/xlink"
240240- xmlns:xi="http://www.w3.org/2001/XInclude"
241241- version="5.0"
242242- xml:id="sec-release-20.09-new-services">
243243- <title>New Services</title>
244244-245245- <para>
246246- The following new services were added since the last release:
247247- </para>
248248-249249- <itemizedlist>
250699 <listitem>
251700 <para>
252252- There is a new <xref linkend="opt-security.doas.enable"/> module that provides <command>doas</command>, a lighter alternative to <command>sudo</command> with many of the same features.
253253- </para>
254254- </listitem>
255255- <listitem>
256256- <para>
257257- <link xlink:href="https://hercules-ci.com">Hercules CI</link> Agent is a specialized build agent for projects built with Nix. See the <link xlink:href="https://nixos.org/nixos/options.html#services.hercules-ci-agent">options</link> and <link xlink:href="https://docs.hercules-ci.com/hercules-ci/getting-started/#deploy-agent">setup</link>.
701701+ <package>maxx</package> package removed along with <varname>services.xserver.desktopManager.maxx</varname> module.
702702+ Please migrate to <package>cdesktopenv</package> and <varname>services.xserver.desktopManager.cde</varname> module.
258703 </para>
259704 </listitem>
260260- </itemizedlist>
261261-262262- </section>
263263-264264- <section xmlns="http://docbook.org/ns/docbook"
265265- xmlns:xlink="http://www.w3.org/1999/xlink"
266266- xmlns:xi="http://www.w3.org/2001/XInclude"
267267- version="5.0"
268268- xml:id="sec-release-20.09-incompatibilities">
269269- <title>Backward Incompatibilities</title>
270270-271271- <para>
272272- When upgrading from a previous release, please be aware of the following
273273- incompatible changes:
274274- </para>
275275-276276- <itemizedlist>
277705 <listitem>
278706 <para>
279707 The <link linkend="opt-services.matrix-synapse.enable">matrix-synapse</link> module no longer includes optional dependencies by default, they have to be added through the <link linkend="opt-services.matrix-synapse.plugins">plugins</link> option.
···300728 It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instantiation:
301729<programlisting>{
302730 services.grafana.package = pkgs.grafana.overrideAttrs (oldAttrs: rec {
303303- phantomJsSupport = false;
731731+ phantomJsSupport = true;
304732 });
305733}</programlisting>
306734 </para>
···12341662 </para>
12351663 </listitem>
12361664 </itemizedlist>
16651665+ </section>
16661666+16671667+ <section xmlns="http://docbook.org/ns/docbook"
16681668+ xmlns:xlink="http://www.w3.org/1999/xlink"
16691669+ xmlns:xi="http://www.w3.org/2001/XInclude"
16701670+ version="5.0"
16711671+ xml:id="sec-release-20.09-contributions">
16721672+ <title>Contributions</title>
16731673+ <para>
16741674+ I, Jonathan Ringer, would like to thank the following individuals for their work on nixpkgs. This release could not be done without the hard work of the NixOS community. There were 31282 contributions across 1313 contributors.
16751675+ </para>
16761676+ <orderedlist>
16771677+ <para>
16781678+ Top contributors to NixOS/Nixpkgs from the 20.03 release to the 20.09 release:
16791679+ </para>
16801680+ <listitem>
16811681+ <para>
16821682+ 2288 Mario Rodas
16831683+ </para>
16841684+ </listitem>
16851685+ <listitem>
16861686+ <para>
16871687+ 1837 Frederik Rietdijk
16881688+ </para>
16891689+ </listitem>
16901690+ <listitem>
16911691+ <para>
16921692+ 946 Jörg Thalheim
16931693+ </para>
16941694+ </listitem>
16951695+ <listitem>
16961696+ <para>
16971697+ 925 Maximilian Bosch
16981698+ </para>
16991699+ </listitem>
17001700+ <listitem>
17011701+ <para>
17021702+ 687 Jonathan Ringer
17031703+ </para>
17041704+ </listitem>
17051705+ <listitem>
17061706+ <para>
17071707+ 651 Jan Tojnar
17081708+ </para>
17091709+ </listitem>
17101710+ <listitem>
17111711+ <para>
17121712+ 622 Daniël de Kok
17131713+ </para>
17141714+ </listitem>
17151715+ <listitem>
17161716+ <para>
17171717+ 605 WORLDofPEACE
17181718+ </para>
17191719+ </listitem>
17201720+ <listitem>
17211721+ <para>
17221722+ 597 Florian Klink
17231723+ </para>
17241724+ </listitem>
17251725+ <listitem>
17261726+ <para>
17271727+ 528 José Romildo Malaquias
17281728+ </para>
17291729+ </listitem>
17301730+ </orderedlist>
17311731+17321732+ <orderedlist>
17331733+ <para>
17341734+ Top contributors to stabilizing this release (Zero Hydra Failures period):
17351735+ </para>
17361736+ <listitem>
17371737+ <para>
17381738+ 281 volth
17391739+ </para>
17401740+ </listitem>
17411741+ <listitem>
17421742+ <para>
17431743+ 101 Robert Scott
17441744+ </para>
17451745+ </listitem>
17461746+ <listitem>
17471747+ <para>
17481748+ 86 Tim Steinbach
17491749+ </para>
17501750+ </listitem>
17511751+ <listitem>
17521752+ <para>
17531753+ 76 WORLDofPEACE
17541754+ </para>
17551755+ </listitem>
17561756+ <listitem>
17571757+ <para>
17581758+ 49 Maximilian Bosch
17591759+ </para>
17601760+ </listitem>
17611761+ <listitem>
17621762+ <para>
17631763+ 42 Thomas Tuegel
17641764+ </para>
17651765+ </listitem>
17661766+ <listitem>
17671767+ <para>
17681768+ 37 Doron Behar
17691769+ </para>
17701770+ </listitem>
17711771+ <listitem>
17721772+ <para>
17731773+ 36 Vladimír Čunát
17741774+ </para>
17751775+ </listitem>
17761776+ <listitem>
17771777+ <para>
17781778+ 27 Jonathan Ringer
17791779+ </para>
17801780+ </listitem>
17811781+ <listitem>
17821782+ <para>
17831783+ 27 Maciej Krüger
17841784+ </para>
17851785+ </listitem>
17861786+ </orderedlist>
17871787+17881788+ <para>
17891789+ I, Jonathan Ringer, would also like to personally thank @WORLDofPEACE for their help in mentoring me on the release process. Special thanks also goes to Thomas Tuegel for helping immensely with stabilizing Qt, KDE, and Plasma5; I would also like to thank Robert Scott for his numerous fixes and pull request reviews.
17901790+ </para>
17911791+12371792 </section>
12381793</section>
···3535 '';
36363737 hashedPasswordDescription = ''
3838- To generate a hashed password install the <literal>mkpasswd</literal>
3939- package and run <literal>mkpasswd -m sha-512</literal>.
3838+ To generate a hashed password run <literal>mkpasswd -m sha-512</literal>.
40394140 If set to an empty string (<literal>""</literal>), this user will
4241 be able to log in without being asked for a password (but not via remote
···11+{ config, lib, pkgs, ... }:
22+33+with lib;
44+55+let
66+ cfg = config.programs.wshowkeys;
77+in {
88+ meta.maintainers = with maintainers; [ primeos ];
99+1010+ options = {
1111+ programs.wshowkeys = {
1212+ enable = mkEnableOption ''
1313+ wshowkeys (displays keypresses on screen on supported Wayland
1414+ compositors). It requires root permissions to read input events, but
1515+ these permissions are dropped after startup'';
1616+ };
1717+ };
1818+1919+ config = mkIf cfg.enable {
2020+ security.wrappers.wshowkeys.source = "${pkgs.wshowkeys}/bin/wshowkeys";
2121+ };
2222+}
+45
nixos/modules/security/pam.nix
···318318 '';
319319 };
320320321321+ gnupg = {
322322+ enable = mkOption {
323323+ type = types.bool;
324324+ default = false;
325325+ description = ''
326326+ If enabled, pam_gnupg will attempt to automatically unlock the
327327+ user's GPG keys with the login password via
328328+ <command>gpg-agent</command>. The keygrips of all keys to be
329329+ unlocked should be written to <filename>~/.pam-gnupg</filename>,
330330+ and can be queried with <command>gpg -K --with-keygrip</command>.
331331+ Presetting passphrases must be enabled by adding
332332+ <literal>allow-preset-passphrase</literal> in
333333+ <filename>~/.gnupg/gpg-agent.conf</filename>.
334334+ '';
335335+ };
336336+337337+ noAutostart = mkOption {
338338+ type = types.bool;
339339+ default = false;
340340+ description = ''
341341+ Don't start <command>gpg-agent</command> if it is not running.
342342+ Useful in conjunction with starting <command>gpg-agent</command> as
343343+ a systemd user service.
344344+ '';
345345+ };
346346+347347+ storeOnly = mkOption {
348348+ type = types.bool;
349349+ default = false;
350350+ description = ''
351351+ Don't send the password immediately after login, but store for PAM
352352+ <literal>session</literal>.
353353+ '';
354354+ };
355355+ };
356356+321357 text = mkOption {
322358 type = types.nullOr types.lines;
323359 description = "Contents of the PAM service file.";
···386422 || cfg.enableKwallet
387423 || cfg.enableGnomeKeyring
388424 || cfg.googleAuthenticator.enable
425425+ || cfg.gnupg.enable
389426 || cfg.duoSecurity.enable)) ''
390427 auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} ${optionalString cfg.nodelay "nodelay"} likeauth
391428 ${optionalString config.security.pam.enableEcryptfs
···397434 " kwalletd=${pkgs.kdeFrameworks.kwallet.bin}/bin/kwalletd5")}
398435 ${optionalString cfg.enableGnomeKeyring
399436 "auth optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
437437+ ${optionalString cfg.gnupg.enable
438438+ "auth optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
439439+ + optionalString cfg.gnupg.storeOnly " store-only"
440440+ }
400441 ${optionalString cfg.googleAuthenticator.enable
401442 "auth required ${pkgs.googleAuthenticator}/lib/security/pam_google_authenticator.so no_increment_hotp"}
402443 ${optionalString cfg.duoSecurity.enable
···472513 " kwalletd=${pkgs.kdeFrameworks.kwallet.bin}/bin/kwalletd5")}
473514 ${optionalString (cfg.enableGnomeKeyring)
474515 "session optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start"}
516516+ ${optionalString cfg.gnupg.enable
517517+ "session optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
518518+ + optionalString cfg.gnupg.noAutostart " no-autostart"
519519+ }
475520 ${optionalString (config.virtualisation.lxc.lxcfs.enable)
476521 "session optional ${pkgs.lxc}/lib/security/pam_cgfs.so -c all"}
477522 '');
+48-4
nixos/modules/services/backup/syncoid.nix
···4455let
66 cfg = config.services.syncoid;
77+88+ # Extract pool names of local datasets (ones that don't contain "@") that
99+ # have the specified type (either "source" or "target")
1010+ getPools = type: unique (map (d: head (builtins.match "([^/]+).*" d)) (
1111+ # Filter local datasets
1212+ filter (d: !hasInfix "@" d)
1313+ # Get datasets of the specified type
1414+ (catAttrs type (attrValues cfg.commands))
1515+ ));
716in {
817918 # Interface
···26352736 user = mkOption {
2837 type = types.str;
2929- default = "root";
3838+ default = "syncoid";
3039 example = "backup";
3140 description = ''
3232- The user for the service. Sudo or ZFS privilege delegation must be
3333- configured to use a user other than root.
4141+ The user for the service. ZFS privilege delegation will be
4242+ automatically configured for any local pools used by syncoid if this
4343+ option is set to a user other than root. The user will be given the
4444+ "hold" and "send" privileges on any pool that has datasets being sent
4545+ and the "create", "mount", "receive", and "rollback" privileges on
4646+ any pool that has datasets being received.
3447 '';
4848+ };
4949+5050+ group = mkOption {
5151+ type = types.str;
5252+ default = "syncoid";
5353+ example = "backup";
5454+ description = "The group for the service.";
3555 };
36563757 sshKey = mkOption {
···150170 # Implementation
151171152172 config = mkIf cfg.enable {
173173+ users = {
174174+ users = mkIf (cfg.user == "syncoid") {
175175+ syncoid = {
176176+ group = cfg.group;
177177+ isSystemUser = true;
178178+ };
179179+ };
180180+ groups = mkIf (cfg.group == "syncoid") {
181181+ syncoid = {};
182182+ };
183183+ };
184184+153185 systemd.services.syncoid = {
154186 description = "Syncoid ZFS synchronization service";
155187 script = concatMapStringsSep "\n" (c: lib.escapeShellArgs
···160192 ++ c.extraArgs
161193 ++ [ "--sendoptions" c.sendOptions
162194 "--recvoptions" c.recvOptions
195195+ "--no-privilege-elevation"
163196 c.source c.target
164197 ])) (attrValues cfg.commands);
165198 after = [ "zfs.target" ];
166166- serviceConfig.User = cfg.user;
199199+ serviceConfig = {
200200+ ExecStartPre = (map (pool: lib.escapeShellArgs [
201201+ "+/run/booted-system/sw/bin/zfs" "allow"
202202+ cfg.user "hold,send" pool
203203+ ]) (getPools "source")) ++
204204+ (map (pool: lib.escapeShellArgs [
205205+ "+/run/booted-system/sw/bin/zfs" "allow"
206206+ cfg.user "create,mount,receive,rollback" pool
207207+ ]) (getPools "target"));
208208+ User = cfg.user;
209209+ Group = cfg.group;
210210+ };
167211 startAt = cfg.interval;
168212 };
169213 };
+13-1
nixos/modules/services/desktops/flatpak.nix
···1515 options = {
1616 services.flatpak = {
1717 enable = mkEnableOption "flatpak";
1818+1919+ guiPackages = mkOption {
2020+ internal = true;
2121+ type = types.listOf types.package;
2222+ default = [];
2323+ example = literalExample "[ pkgs.gnome3.gnome-software ]";
2424+ description = ''
2525+ Packages that provide an interface for flatpak
2626+ (like gnome-software) that will be automatically available
2727+ to all users when flatpak is enabled.
2828+ '';
2929+ };
1830 };
1931 };
2032···2840 }
2941 ];
30423131- environment.systemPackages = [ pkgs.flatpak ];
4343+ environment.systemPackages = [ pkgs.flatpak ] ++ cfg.guiPackages;
32443345 services.dbus.packages = [ pkgs.flatpak ];
3446
···123123 '';
124124 };
125125126126+ passwordFile = mkOption {
127127+ type = with types; uniq (nullOr str);
128128+ example = "/path/to/file";
129129+ default = null;
130130+ description = ''
131131+ Specifies the path to a file containing the
132132+ clear text password for the MQTT user.
133133+ '';
134134+ };
135135+126136 hashedPassword = mkOption {
127137 type = with types; uniq (nullOr str);
128138 default = null;
129139 description = ''
130140 Specifies the hashed password for the MQTT User.
131131- <option>hashedPassword</option> overrides <option>password</option>.
141141+ To generate hashed password install <literal>mosquitto</literal>
142142+ package and use <literal>mosquitto_passwd</literal>.
143143+ '';
144144+ };
145145+146146+ hashedPasswordFile = mkOption {
147147+ type = with types; uniq (nullOr str);
148148+ example = "/path/to/file";
149149+ default = null;
150150+ description = ''
151151+ Specifies the path to a file containing the
152152+ hashed password for the MQTT user.
132153 To generate hashed password install <literal>mosquitto</literal>
133154 package and use <literal>mosquitto_passwd</literal>.
134155 '';
···190211191212 config = mkIf cfg.enable {
192213214214+ assertions = mapAttrsToList (name: cfg: {
215215+ assertion = length (filter (s: s != null) (with cfg; [
216216+ password passwordFile hashedPassword hashedPasswordFile
217217+ ])) <= 1;
218218+ message = "Cannot set more than one password option";
219219+ }) cfg.users;
220220+193221 systemd.services.mosquitto = {
194222 description = "Mosquitto MQTT Broker Daemon";
195223 wantedBy = [ "multi-user.target" ];
···210238 touch ${cfg.dataDir}/passwd
211239 '' + concatStringsSep "\n" (
212240 mapAttrsToList (n: c:
213213- if c.hashedPassword != null then
241241+ if c.hashedPasswordFile != null then
242242+ "echo '${n}:'$(cat '${c.hashedPasswordFile}') >> ${cfg.dataDir}/passwd"
243243+ else if c.passwordFile != null then
244244+ "${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} $(cat '${c.passwordFile}')"
245245+ else if c.hashedPassword != null then
214246 "echo '${n}:${c.hashedPassword}' >> ${cfg.dataDir}/passwd"
215247 else optionalString (c.password != null)
216248 "${pkgs.mosquitto}/bin/mosquitto_passwd -b ${cfg.dataDir}/passwd ${n} '${c.password}'"
+1-1
nixos/modules/services/web-apps/engelsystem.nix
···1010 default = false;
1111 example = true;
1212 description = ''
1313- Whether to enable engelsystem, an online tool for coordinating helpers
1313+ Whether to enable engelsystem, an online tool for coordinating volunteers
1414 and shifts on large events.
1515 '';
1616 type = lib.types.bool;
···4545 systemd.services."serial-getty@${qemuSerialDevice}".enable = false;
4646 systemd.services."serial-getty@hvc0".enable = false;
47474848- # Only use a serial console, no TTY.
4949- # NOTE: optionalAttrs
5050- # test-instrumentation.nix appears to be used without qemu-vm.nix, so
5151- # we avoid defining consoles if not possible.
5252- # TODO: refactor such that test-instrumentation can import qemu-vm
5353- # or declare virtualisation.qemu.console option in a module that's always imported
5454- virtualisation.qemu = {
5555- consoles = lib.optional (options ? virtualisation.qemu.consoles) qemuSerialDevice;
5656- package = lib.mkDefault pkgs.qemu_test;
4848+ # Only set these settings when the options exist. Some tests (e.g. those
4949+ # that do not specify any nodes, or an empty attr set as nodes) will not
5050+ # have the QEMU module loaded and thuse these options can't and should not
5151+ # be set.
5252+ virtualisation = lib.optionalAttrs (options ? virtualisation.qemu) {
5353+ qemu = {
5454+ # Only use a serial console, no TTY.
5555+ # NOTE: optionalAttrs
5656+ # test-instrumentation.nix appears to be used without qemu-vm.nix, so
5757+ # we avoid defining consoles if not possible.
5858+ # TODO: refactor such that test-instrumentation can import qemu-vm
5959+ # or declare virtualisation.qemu.console option in a module that's always imported
6060+ consoles = [ qemuSerialDevice ];
6161+ package = lib.mkDefault pkgs.qemu_test;
6262+ };
5763 };
58645965 boot.initrd.preDeviceCommands =
···8080 ), "SLAAC temporary address was not configured on client after router advertisement"
81818282 with subtest("Verify HTTP debug server is configured"):
8383- out = router.succeed("curl localhost:9430/metrics")
8383+ out = router.succeed("curl -f localhost:9430/metrics")
84848585 assert (
8686 "corerad_build_info" in out
+2-2
nixos/tests/docker-edge.nix
···4343 docker.fail("sudo -u noprivs docker ps")
4444 docker.succeed("docker stop sleeping")
45454646- # Must match version twice to ensure client and server versions are correct
4747- docker.succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "2" ]')
4646+ # Must match version 4 times to ensure client and server git commits and versions are correct
4747+ docker.succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "4" ]')
4848 '';
4949})
···3939 machine.wait_for_unit("multi-user.target")
4040 machine.wait_for_unit("haproxy.service")
4141 machine.wait_for_unit("httpd.service")
4242- assert "We are all good!" in machine.succeed("curl -k http://localhost:80/index.txt")
4242+ assert "We are all good!" in machine.succeed("curl -fk http://localhost:80/index.txt")
4343 assert "haproxy_process_pool_allocated_bytes" in machine.succeed(
4444- "curl -k http://localhost:80/metrics"
4444+ "curl -fk http://localhost:80/metrics"
4545 )
46464747 with subtest("reload"):
···4949 # wait some time to ensure the following request hits the reloaded haproxy
5050 machine.sleep(5)
5151 assert "We are all good!" in machine.succeed(
5252- "curl -k http://localhost:80/index.txt"
5252+ "curl -fk http://localhost:80/index.txt"
5353 )
5454 '';
5555})
+1-1
nixos/tests/hitch/default.nix
···2828 machine.wait_for_unit("multi-user.target")
2929 machine.wait_for_unit("hitch.service")
3030 machine.wait_for_open_port(443)
3131- assert "We are all good!" in machine.succeed("curl -k https://localhost:443/index.txt")
3131+ assert "We are all good!" in machine.succeed("curl -fk https://localhost:443/index.txt")
3232 '';
3333})
···20202121 machine.wait_for_unit("phpfpm-limesurvey.service")
2222 assert "The following surveys are available" in machine.succeed(
2323- "curl http://example.local/"
2323+ "curl -f http://example.local/"
2424 )
2525 '';
2626})
+1-1
nixos/tests/mailcatcher.nix
···2424 'echo "this is the body of the email" | mail -s "subject" root@example.org'
2525 )
2626 assert "this is the body of the email" in machine.succeed(
2727- "curl http://localhost:1080/messages/1.source"
2727+ "curl -f http://localhost:1080/messages/1.source"
2828 )
2929 '';
3030})
···4343 machine.wait_for_unit("phpfpm-foobar.service")
44444545 # Check so we get an evaluated PHP back
4646- response = machine.succeed("curl -vvv -s http://127.0.0.1:80/")
4646+ response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
4747 assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
48484949 # Check so we have database and some other extensions loaded
+1-1
nixos/tests/php/httpd.nix
···2121 machine.wait_for_unit("httpd.service")
22222323 # Check so we get an evaluated PHP back
2424- response = machine.succeed("curl -vvv -s http://127.0.0.1:80/")
2424+ response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
2525 assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
26262727 # Check so we have database and some other extensions loaded
+1-1
nixos/tests/php/pcre.nix
···3232 ''
3333 machine.wait_for_unit("httpd.service")
3434 # Ensure php evaluation by matching on the var_dump syntax
3535- response = machine.succeed("curl -vvv -s http://127.0.0.1:80/index.php")
3535+ response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/index.php")
3636 expected = 'string(${toString (builtins.stringLength testString)}) "${testString}"'
3737 assert expected in response, "Does not appear to be able to use subgroups."
3838 '';
+2-2
nixos/tests/prometheus.nix
···193193 # Check if prometheus responds to requests:
194194 prometheus.wait_for_unit("prometheus.service")
195195 prometheus.wait_for_open_port(${toString queryPort})
196196- prometheus.succeed("curl -s http://127.0.0.1:${toString queryPort}/metrics")
196196+ prometheus.succeed("curl -sf http://127.0.0.1:${toString queryPort}/metrics")
197197198198 # Let's test if pushing a metric to the pushgateway succeeds:
199199 prometheus.wait_for_unit("pushgateway.service")
200200 prometheus.succeed(
201201 "echo 'some_metric 3.14' | "
202202- + "curl --data-binary \@- "
202202+ + "curl -f --data-binary \@- "
203203 + "http://127.0.0.1:${toString pushgwPort}/metrics/job/some_job"
204204 )
205205
···3232 ${gopherHost}.wait_for_unit("spacecookie.service")
3333 client.wait_for_unit("network.target")
34343535- fileResponse = client.succeed("curl -s gopher://${gopherHost}//${fileName}")
3535+ fileResponse = client.succeed("curl -f -s gopher://${gopherHost}//${fileName}")
36363737 # the file response should return our created file exactly
3838 if not (fileResponse == "${fileContent}\n"):
···4141 # sanity check on the directory listing: we serve a directory and a file
4242 # via gopher, so the directory listing should have exactly two entries,
4343 # one with gopher file type 0 (file) and one with file type 1 (directory).
4444- dirResponse = client.succeed("curl -s gopher://${gopherHost}")
4444+ dirResponse = client.succeed("curl -f -s gopher://${gopherHost}")
4545 dirEntries = [l[0] for l in dirResponse.split("\n") if len(l) > 0]
4646 dirEntries.sort()
4747
···19192020 # write some points and run simple query
2121 out = one.succeed(
2222- "curl -d 'measurement,tag1=value1,tag2=value2 field1=123,field2=1.23' -X POST 'http://localhost:8428/write'"
2222+ "curl -f -d 'measurement,tag1=value1,tag2=value2 field1=123,field2=1.23' -X POST 'http://localhost:8428/write'"
2323 )
2424- cmd = """curl -s -G 'http://localhost:8428/api/v1/export' -d 'match={__name__!=""}'"""
2424+ cmd = (
2525+ """curl -f -s -G 'http://localhost:8428/api/v1/export' -d 'match={__name__!=""}'"""
2626+ )
2527 # data takes a while to appear
2628 one.wait_until_succeeds(f"[[ $({cmd} | wc -l) -ne 0 ]]")
2729 out = one.succeed(cmd)
+1-1
nixos/tests/web-servers/unit-php.nix
···4747 machine.wait_for_unit("unit.service")
48484949 # Check so we get an evaluated PHP back
5050- response = machine.succeed("curl -vvv -s http://127.0.0.1:9074/")
5050+ response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9074/")
5151 assert "PHP Version ${pkgs.unit.usedPhp74.version}" in response, "PHP version not detected"
52525353 # Check so we have database and some other extensions loaded
+1-1
nixos/tests/wordpress.nix
···40404141 with subtest("website returns welcome screen"):
4242 for site_name in site_names:
4343- assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
4343+ assert "Welcome to the famous" in machine.succeed(f"curl -fL {site_name}")
44444545 with subtest("wordpress-init went through"):
4646 for site_name in site_names:
···2525 buildInputs = [ alsaLib audiofile libjack2 liblo liboil libsamplerate libsndfile lilv lv2 ];
26262727 meta = {
2828- description = "Ecasound is a software package designed for multitrack audio processing";
2828+ description = "Software package designed for multitrack audio processing";
2929 license = with stdenv.lib.licenses; [ gpl2 lgpl21 ];
3030 homepage = "http://nosignal.fi/ecasound/";
3131 };
+1-1
pkgs/applications/audio/eflite/default.nix
···37373838 meta = {
3939 homepage = "http://eflite.sourceforge.net";
4040- description = "EFlite is a speech server for screen readers";
4040+ description = "Speech server for screen readers";
4141 longDescription = ''
4242 EFlite is a speech server for Emacspeak and other screen
4343 readers that allows them to interface with Festival Lite,
···4242 '';
43434444 meta = with stdenv.lib; {
4545- description = "Picoloop is a synth and a stepsequencer (a clone of the famous nanoloop)";
4545+ description = "A synth and a stepsequencer (a clone of the famous nanoloop)";
4646 homepage = "https://github.com/yoyz/picoloop";
4747 platforms = platforms.linux;
4848 license = licenses.bsd3;
···2626 enableParallelBuilding = true;
27272828 meta = with lib; {
2929- description = "Sumokoin is a fork of Monero and a truely fungible cryptocurrency";
2929+ description = "A fork of Monero and a truely fungible cryptocurrency";
3030 homepage = "https://www.sumokoin.org/";
3131 license = licenses.bsd3;
3232 maintainers = with maintainers; [ fpletz ];
···268268269269 clion = buildClion rec {
270270 name = "clion-${version}";
271271- version = "2020.2.3"; /* updated by script */
271271+ version = "2020.2.4"; /* updated by script */
272272 description = "C/C++ IDE. New. Intelligent. Cross-platform";
273273 license = stdenv.lib.licenses.unfree;
274274 src = fetchurl {
275275 url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
276276- sha256 = "1kdlmdsfxmwks3rk2dzm5q30vwzpxcwzpyjsir122k36xnqvaqxq"; /* updated by script */
276276+ sha256 = "0xkra8l3ga8qsmzbvfisn99lxm5wxa8c4d4jzljjwn8855bs20a3"; /* updated by script */
277277 };
278278 wmClass = "jetbrains-clion";
279279 update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
···307307308308 idea-community = buildIdea rec {
309309 name = "idea-community-${version}";
310310- version = "2020.2.2"; /* updated by script */
310310+ version = "2020.2.3"; /* updated by script */
311311 description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
312312 license = stdenv.lib.licenses.asl20;
313313 src = fetchurl {
314314 url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
315315- sha256 = "0kbn9q7fvhrzb1w6l8i2nv4cx8qrj74jp7fidj9yk8vkv9lfijg6"; /* updated by script */
315315+ sha256 = "092swkz7l1p3asrna6fxj6j324sh7pdbgzrlapdwka8kq9y40ajz"; /* updated by script */
316316 };
317317 wmClass = "jetbrains-idea-ce";
318318 update-channel = "IntelliJ IDEA RELEASE";
···320320321321 idea-ultimate = buildIdea rec {
322322 name = "idea-ultimate-${version}";
323323- version = "2020.2.2"; /* updated by script */
323323+ version = "2020.2.3"; /* updated by script */
324324 description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
325325 license = stdenv.lib.licenses.unfree;
326326 src = fetchurl {
327327 url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
328328- sha256 = "1196zrcbgrr9271kjrzd2mzvhvxd7hkr1d2a4ij4h8f97qmsd6r6"; /* updated by script */
328328+ sha256 = "1416ikna169d2hx77yd0bb8hpxkpnf27jgyq5yrgla1w6h1fp1p0"; /* updated by script */
329329 };
330330 wmClass = "jetbrains-idea";
331331 update-channel = "IntelliJ IDEA RELEASE";
···333333334334 mps = buildMps rec {
335335 name = "mps-${version}";
336336- version = "2020.2"; /* updated by script */
336336+ version = "2020.2.2"; /* updated by script */
337337 description = "Create your own domain-specific language";
338338 license = stdenv.lib.licenses.unfree;
339339 src = fetchurl {
340340 url = "https://download.jetbrains.com/mps/2020.2/MPS-${version}.tar.gz";
341341- sha256 = "06c0yv9vvz0y5njh1sghn7ijpn1d81mxsyk5xjpj29bvvg511pjs"; /* updated by script */
341341+ sha256 = "1a09yahky8ii2dypj69m89c3yh7akn7sa74n0j0mff7r46ad421y"; /* updated by script */
342342 };
343343 wmClass = "jetbrains-mps";
344344 update-channel = "MPS RELEASE";
···346346347347 phpstorm = buildPhpStorm rec {
348348 name = "phpstorm-${version}";
349349- version = "2020.2.1"; /* updated by script */
349349+ version = "2020.2.3"; /* updated by script */
350350 description = "Professional IDE for Web and PHP developers";
351351 license = stdenv.lib.licenses.unfree;
352352 src = fetchurl {
353353 url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
354354- sha256 = "14hz6w5lgn8ddscicm4s9xhi07j5adsq0bmyr8amzmj5q6jgw4p9"; /* updated by script */
354354+ sha256 = "0bdxmxml6337cdpb2amhdqlvxicng50cgzlnmiw0wqnmwj5ihpih"; /* updated by script */
355355 };
356356 wmClass = "jetbrains-phpstorm";
357357 update-channel = "PhpStorm RELEASE";
···359359360360 pycharm-community = buildPycharm rec {
361361 name = "pycharm-community-${version}";
362362- version = "2020.2.2"; /* updated by script */
362362+ version = "2020.2.3"; /* updated by script */
363363 description = "PyCharm Community Edition";
364364 license = stdenv.lib.licenses.asl20;
365365 src = fetchurl {
366366 url = "https://download.jetbrains.com/python/${name}.tar.gz";
367367- sha256 = "1a1vhlc2q5n3dxli0x6ppxx3mgary4gpakcxdp9nylmixjzjph6v"; /* updated by script */
367367+ sha256 = "0wqhcag32fxqxg6aml2a3d0rpds0d48rgbcl7cp0ah8xj6x72047"; /* updated by script */
368368 };
369369 wmClass = "jetbrains-pycharm-ce";
370370 update-channel = "PyCharm RELEASE";
···372372373373 pycharm-professional = buildPycharm rec {
374374 name = "pycharm-professional-${version}";
375375- version = "2020.2.2"; /* updated by script */
375375+ version = "2020.2.3"; /* updated by script */
376376 description = "PyCharm Professional Edition";
377377 license = stdenv.lib.licenses.unfree;
378378 src = fetchurl {
379379 url = "https://download.jetbrains.com/python/${name}.tar.gz";
380380- sha256 = "0v64f5sbv1639d6fjg0shfgdy40f1xc2zbn0jqfrx6xmkg7wgsz9"; /* updated by script */
380380+ sha256 = "0g7bki4bzi3a1w3rlwik2w0ma10xb4g450qxm4fr4fp8dy2xaysc"; /* updated by script */
381381 };
382382 wmClass = "jetbrains-pycharm";
383383 update-channel = "PyCharm RELEASE";
···385385386386 rider = buildRider rec {
387387 name = "rider-${version}";
388388- version = "2020.2.3"; /* updated by script */
388388+ version = "2020.2.4"; /* updated by script */
389389 description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
390390 license = stdenv.lib.licenses.unfree;
391391 src = fetchurl {
392392 url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
393393- sha256 = "01namzd29chj975w3awanlzf38hh30cfjzyljqfkp6y3djn0if1r"; /* updated by script */
393393+ sha256 = "1anl48ifv5ayqn876dqckxc1b5fw1271pvamzf1vvk501wv6dpaf"; /* updated by script */
394394 };
395395 wmClass = "jetbrains-rider";
396396 update-channel = "Rider RELEASE";
···398398399399 ruby-mine = buildRubyMine rec {
400400 name = "ruby-mine-${version}";
401401- version = "2020.2.2"; /* updated by script */
401401+ version = "2020.2.3"; /* updated by script */
402402 description = "The Most Intelligent Ruby and Rails IDE";
403403 license = stdenv.lib.licenses.unfree;
404404 src = fetchurl {
405405 url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
406406- sha256 = "11v26hpf891nq5vj8i0ad4shhzpy8b7rvyrkr3l29dwfnd83lgpz"; /* updated by script */
406406+ sha256 = "03f1z7xhz90j9l8xp3il115yvb15kda0i6ba5ndhby7nf52vnphk"; /* updated by script */
407407 };
408408 wmClass = "jetbrains-rubymine";
409409 update-channel = "RubyMine RELEASE";
···411411412412 webstorm = buildWebStorm rec {
413413 name = "webstorm-${version}";
414414- version = "2020.2.2"; /* updated by script */
414414+ version = "2020.2.3"; /* updated by script */
415415 description = "Professional IDE for Web and JavaScript development";
416416 license = stdenv.lib.licenses.unfree;
417417 src = fetchurl {
418418 url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
419419- sha256 = "1w17cf0qj0vyizkzj1frcmi52q5qxbf31msg8df38wy2l8r0b928"; /* updated by script */
419419+ sha256 = "1c60k38ai63s4779fs55vaiswfc6bi7ki6p96hrmmkrnpzgsipg5"; /* updated by script */
420420 };
421421 wmClass = "jetbrains-webstorm";
422422 update-channel = "WebStorm RELEASE";
+1-1
pkgs/applications/editors/kile/default.nix
···5252 propagatedUserEnvPkgs = [ konsole ];
53535454 meta = {
5555- description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
5555+ description = "User-friendly TeX/LaTeX authoring tool for the KDE desktop environment";
5656 homepage = "https://www.kde.org/applications/office/kile/";
5757 maintainers = with lib.maintainers; [ fridh ];
5858 license = lib.licenses.gpl2Plus;
+1-1
pkgs/applications/graphics/gnuclad/default.nix
···16161717 meta = with stdenv.lib; {
1818 homepage = "https://launchpad.net/gnuclad";
1919- description = "gnuclad tries to help the environment by creating trees. It's primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
1919+ description = "gnuclad tries to help the environment by creating trees. Its primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
2020 license = licenses.gpl3Plus;
2121 maintainers = with maintainers; [ mog ];
2222 platforms = platforms.linux;
+2-2
pkgs/applications/graphics/krita/default.nix
···10101111mkDerivation rec {
1212 pname = "krita";
1313- version = "4.3.0";
1313+ version = "4.4.0";
14141515 src = fetchurl {
1616 url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
1717- sha256 = "19qlpp9ds60bab73pwi64dq1zn4zn2hcdkrxhjr1j438mc4pflsd";
1717+ sha256 = "0ydmxql8iym62q0nqwn9mnb94jz1nh84i6bni0mgzwjk8p4zfzw3";
1818 };
19192020 # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359
+1-1
pkgs/applications/graphics/lightburn/default.nix
···4040 '';
41414242 meta = {
4343- description = "LightBurn is layout, editing, and control software for your laser cutter";
4343+ description = "Layout, editing, and control software for your laser cutter";
4444 homepage = "https://lightburnsoftware.com/";
4545 license = stdenv.lib.licenses.unfree;
4646 maintainers = with stdenv.lib.maintainers; [ q3k ];
···77 name = "bomber";
88 meta = with lib; {
99 homepage = "https://kde.org/applications/en/games/org.kde.bomber";
1010- description = "Bomber is a single player arcade game";
1010+ description = "A single player arcade game";
1111 longDescription = ''
1212 Bomber is a single player arcade game. The player is invading various
1313 cities in a plane that is decreasing in height.
+1-1
pkgs/applications/kde/granatier.nix
···77 name = "granatier";
88 meta = with lib; {
99 homepage = "https://kde.org/applications/en/games/org.kde.granatier";
1010- description = "Granatier is a clone of the classic Bomberman game";
1010+ description = "Clone of the classic Bomberman game";
1111 maintainers = with maintainers; [ freezeboy ];
1212 license = licenses.gpl2Plus;
1313 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kalzium.nix
···44 name = "kalzium";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
77- description = "Kalzium is a program that shows you the Periodic Table of Elements";
77+ description = "Program that shows you the Periodic Table of Elements";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kapman.nix
···44 name = "kapman";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kapman";
77- description = "Kapman is a clone of the well known game Pac-Man";
77+ description = "Clone of the well known game Pac-Man";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/katomic.nix
···44 name = "katomic";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.katomic";
77- description = "KAtomic is a fun educational game built around molecular geometry";
77+ description = "Fun educational game built around molecular geometry";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kblackbox.nix
···44 name = "kblackbox";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
77- description = "KBlackbox is a game of hide and seek played on a grid of boxes";
77+ description = "Game of hide and seek played on a grid of boxes";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kblocks.nix
···44 name = "kblocks";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
77- description = "KBlocks is the classic falling blocks game";
77+ description = "Classic falling blocks game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kbounce.nix
···44 name = "kbounce";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
77- description = "KBounce is a single player arcade game with the elements of puzzle";
77+ description = "Single player arcade game with the elements of puzzle";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kdiamond.nix
···44 name = "kdiamond";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
77- description = "KDiamond is a single player puzzle game";
77+ description = "A single player puzzle game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kfloppy.nix
···44 name = "kfloppy";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.kfloppy";
77- description = "KFloppy is a utility to format 3.5\" and 5.25\" floppy disks";
77+ description = "Utility to format 3.5\" and 5.25\" floppy disks";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/klettres.nix
···44 name = "klettres";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
77- description = "KLettres is an application specially designed to help the user to learn an alphabet";
77+ description = "An application specially designed to help the user to learn an alphabet";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/klines.nix
···44 name = "klines";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.klines";
77- description = "KLines is a simple but highly addictive one player game";
77+ description = "A simple but highly addictive one player game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kmag.nix
···44 name = "kmag";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
77- description = "KMag is a small utility for Linux to magnify a part of the screen";
77+ description = "A small Linux utility to magnify a part of the screen";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kmines.nix
···44 name = "kmines";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kmines";
77- description = "KMines is a classic Minesweeper game";
77+ description = "A classic Minesweeper game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/knetwalk.nix
···44 name = "knetwalk";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
77- description = "KNetWalk is a single player logic game";
77+ description = "A single player logic game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/knights.nix
···44 name = "knights";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.knights";
77- description = "KNights is a chess game";
77+ description = "A chess game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kollision.nix
···44 name = "kollision";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kollision";
77- description = "Kollision is a casual game";
77+ description = "A casual game";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kreversi.nix
···44 name = "kreversi";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
77- description = "KReversi is a simple one player strategy game played against the computer";
77+ description = "A simple one player strategy game played against the computer";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kshisen.nix
···44 name = "kshisen";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
77- description = "KShisen is a solitaire-like game played using the standard set of Mahjong tiles";
77+ description = "A solitaire-like game played using the standard set of Mahjong tiles";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/ksquares.nix
···44 name = "ksquares";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
77- description = "KSquares is a game of Dots and Boxes";
77+ description = "A game of Dots and Boxes";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kteatime.nix
···44 name = "kteatime";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
77- description = "KTeaTime is a handy timer for steeping tea";
77+ description = "A handy timer for steeping tea";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/ktimer.nix
···44 name = "ktimer";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
77- description = "KTimer is a little tool to execute programs after some time";
77+ description = "A little tool to execute programs after some time";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kturtle.nix
···44 name = "kturtle";
55 meta = with lib; {
66 homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
77- description = "KTurtle is an educational programming environment for learning how to program";
77+ description = "An educational programming environment for learning how to program";
88 maintainers = with maintainers; [ freezeboy ];
99 license = licenses.gpl2Plus;
1010 platforms = platforms.linux;
+1-1
pkgs/applications/kde/kwave.nix
···55 name = "kwave";
66 meta = with lib; {
77 homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
88- description = "KWave is a simple media player";
88+ description = "A simple media player";
99 maintainers = with maintainers; [ freezeboy ];
1010 license = licenses.gpl2Plus;
1111 platforms = platforms.linux;
+74
pkgs/applications/misc/corectrl/default.nix
···11+{ stdenv
22+, fetchFromGitLab
33+, extra-cmake-modules
44+, botan2
55+, karchive
66+, kauth
77+, libdrm
88+, mesa-demos
99+, procps
1010+, utillinux
1111+, vulkan-tools
1212+, qtbase
1313+, qtcharts
1414+, qtquickcontrols2
1515+, qtsvg
1616+, qttools
1717+, qtxmlpatterns
1818+, wrapQtAppsHook
1919+} :
2020+2121+stdenv.mkDerivation rec{
2222+ pname = "corectrl";
2323+ version = "1.1.1";
2424+2525+ src = fetchFromGitLab {
2626+ owner = "corectrl";
2727+ repo = "corectrl";
2828+ rev = "v${version}";
2929+ sha256 = "sha256-YQDrxPqCa3OzNKd3UiAffqqvOrgbXmDFJGjYPetolyY=";
3030+ };
3131+3232+ nativeBuildInputs = [
3333+ extra-cmake-modules
3434+ wrapQtAppsHook
3535+ ];
3636+ buildInputs = [
3737+ botan2
3838+ karchive
3939+ kauth
4040+ libdrm
4141+ mesa-demos
4242+ procps
4343+ utillinux
4444+ vulkan-tools
4545+ qtbase
4646+ qtcharts
4747+ qtquickcontrols2
4848+ qtsvg
4949+ qttools
5050+ qtxmlpatterns
5151+ ];
5252+5353+ runtimeDeps = [ mesa-demos vulkan-tools ];
5454+ binPath = stdenv.lib.makeBinPath runtimeDeps;
5555+5656+ dontWrapQtApps = true;
5757+5858+ postInstall = ''
5959+ wrapQtApp $out/bin/corectrl --prefix PATH ":" ${binPath}
6060+ '';
6161+6262+ meta = with stdenv.lib; {
6363+ homepage = "https://gitlab.com/corectrl/corectrl/";
6464+ description = "Control your computer hardware via application profiles";
6565+ longDescription = ''
6666+ CoreCtrl is a Free and Open Source GNU/Linux application that allows you
6767+ to control with ease your computer hardware using application profiles. It
6868+ aims to be flexible, comfortable and accessible to regular users.
6969+ '';
7070+ license = licenses.gpl3Plus;
7171+ platforms = platforms.linux;
7272+ };
7373+}
7474+# TODO: report upstream that libdrm is not detected at configure time
+1-1
pkgs/applications/misc/dockbarx/default.nix
···30303131 meta = with stdenv.lib; {
3232 homepage = "https://launchpad.net/dockbar/";
3333- description = "DockBarX is a lightweight taskbar / panel replacement for Linux which works as a stand-alone dock";
3333+ description = "Lightweight taskbar / panel replacement for Linux which works as a stand-alone dock";
3434 license = licenses.gpl3;
3535 platforms = platforms.linux;
3636 maintainers = [ maintainers.volth ];
···2020 version = "0.9-1";
21212222 src = fetchFromGitHub {
2323- owner = "mcuelenaere";
2323+ owner = "mcuelenaere";
2424 repo = "fsv";
2525 rev = "${pname}-${version}";
2626 sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj";
···3535 buildInputs = [ file gtk2 libGLU gtkglarea ];
36363737 meta = with stdenv.lib; {
3838- description = "fsv is a file system visualizer in cyberspace";
3838+ description = "File system visualizer in cyberspace";
3939 longDescription = ''
4040 fsv (pronounced eff-ess-vee) is a file system visualizer in cyberspace.
4141 It lays out files and directories in three dimensions, geometrically
+1-1
pkgs/applications/misc/grsync/default.nix
···2323 ];
24242525 meta = with stdenv.lib; {
2626- description = "Grsync is used to synchronize folders, files and make backups";
2626+ description = "Synchronize folders, files and make backups";
2727 homepage = "http://www.opbyte.it/grsync/";
2828 license = licenses.gpl1;
2929 platforms = platforms.linux;
···3030 '';
31313232 meta = with lib; {
3333- description = "IceSL is a GPU-accelerated procedural modeler and slicer for 3D printing";
3333+ description = "GPU-accelerated procedural modeler and slicer for 3D printing";
3434 homepage = "http://shapeforge.loria.fr/icesl/index.html";
3535 license = licenses.inria-icesl;
3636 platforms = [ "i686-linux" "x86_64-linux" ];
···30303131in stdenv.mkDerivation rec {
3232 pname = "obsidian";
3333- version = "0.9.1";
3333+ version = "0.9.4";
34343535 src = fetchurl {
3636 url =
3737 "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
3838- sha256 = "1skilcqfawvvyj9dnacsmlls55cqq6a4hzz9is165cwkyab185c5";
3838+ sha256 = "0qahgm9gf4sap28wy7cxbf41h8zldplbwxnv8shyajbkxn108g5p";
3939 };
40404141 nativeBuildInputs = [ makeWrapper graphicsmagick ];
···65656666 meta = with lib; {
6767 description =
6868- "Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files";
6868+ "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
6969 homepage = "https://obsidian.md";
7070 license = licenses.obsidian;
7171 maintainers = with maintainers; [ conradmearns zaninime ];
···33}:
44let
55 appname = "SuperSlicer";
66- version = "2.2.54.0";
66+ version = "2.2.54.1";
77 pname = "super-slicer";
88 description = "PrusaSlicer fork with more features and faster development cycle";
99 override = super: {
···1212 src = fetchFromGitHub {
1313 owner = "supermerill";
1414 repo = "SuperSlicer";
1515- sha256 = "sha256-vvuUecysSdBvGBKOariQnsGJ9/Qccwp/lSq8WCED+Uk=";
1515+ sha256 = "sha256-0NWrck9nqAlc8xX3nTrRlnzjso4MRRjJSW7bUvCX6Y4=";
1616 rev = version;
1717 };
1818
+1-1
pkgs/applications/misc/rsibreak/default.nix
···2020 propagatedBuildInputs = [ knotifyconfig kidletime kwindowsystem ktextwidgets kcrash ];
21212222 meta = with lib; {
2323- description = "RSIBreak takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)";
2323+ description = "Takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)";
2424 license = licenses.gpl2;
2525 homepage = "https://www.kde.org/applications/utilities/rsibreak/";
2626 maintainers = with maintainers; [ vandenoever ];
···1616 postPatch = "sed -i \"s:/usr/local:$out:\" config.mk";
17171818 meta = with stdenv.lib; {
1919- description = "XMenu is a menu utility for X";
1919+ description = "A menu utility for X";
2020 homepage = "https://github.com/phillbush/xmenu";
2121 license = licenses.publicDomain;
2222 maintainers = with maintainers; [ neonfuz ];
···3535 '';
36363737 meta = with lib; {
3838- description = "JX is a command line tool for installing and using Jenkins X";
3838+ description = "Command line tool for installing and using Jenkins X";
3939 homepage = "https://jenkins-x.io";
4040 longDescription = ''
4141 Jenkins X provides automated CI+CD for Kubernetes with Preview
···5252 ];
53535454 meta = with lib; {
5555- description = "Prow is a Kubernetes based CI/CD system";
5555+ description = "A Kubernetes based CI/CD system";
5656 longDescription = ''
5757 Prow is a Kubernetes based CI/CD system. Jobs can be triggered by various
5858 types of events and report their status to many different services. In
···5454 '';
55555656 meta = with stdenv.lib; {
5757- description = "aerc is an email client for your terminal";
5757+ description = "An email client for your terminal";
5858 homepage = "https://aerc-mail.org/";
5959 maintainers = with maintainers; [ tadeokondrak ];
6060 license = licenses.mit;
···3535 ++ stdenv.lib.optional enableXXHash xxHash;
3636 nativeBuildInputs = [perl];
37373838- configureFlags = ["--with-nobody-group=nogroup"];
3838+ configureFlags = ["--with-nobody-group=nogroup"]
3939+ # Work around issue with cross-compilation:
4040+ # configure.sh: error: cannot run test program while cross compiling
4141+ # Remove once 3.2.4 or more recent is released.
4242+ # The following PR should fix the cross-compilation issue.
4343+ # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
4444+ # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
4545+ ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no"
4646+ ;
39474048 passthru.tests = { inherit (nixosTests) rsyncd; };
4149
···2121 buildInputs = [ libyamlcpp ];
22222323 meta = with stdenv.lib; {
2424- description = "dcm2niix DICOM to NIfTI converter";
2424+ description = "DICOM to NIfTI converter";
2525 longDescription = ''
2626 dcm2niix is a designed to convert neuroimaging data from the
2727 DICOM format to the NIfTI format.
···2121 enableParallelBuilding = false;
22222323 meta = with stdenv.lib; {
2424- description = "Kallisto is a program for quantifying abundances of transcripts from RNA-Seq data";
2424+ description = "Program for quantifying abundances of transcripts from RNA-Seq data";
2525 homepage = "https://pachterlab.github.io/kallisto";
2626 license = licenses.bsd2;
2727 platforms = platforms.linux;
···11{ stdenv, fetchgit, ocaml }:
2233-let
33+let
44 version = "20170720";
55in
66···2222 '';
23232424 meta = with stdenv.lib; {
2525- description = "coq2html is an HTML documentation generator for Coq source files";
2525+ description = "HTML documentation generator for Coq source files";
2626 longDescription = ''
2727 coq2html is an HTML documentation generator for Coq source files. It is
2828 an alternative to the standard coqdoc documentation generator
+1-1
pkgs/applications/science/logic/ott/default.nix
···1919 postInstall = "opaline -prefix $out";
20202121 meta = {
2222- description = "Ott: tool for the working semanticist";
2222+ description = "A tool for the working semanticist";
2323 longDescription = ''
2424 Ott is a tool for writing definitions of programming languages and
2525 calculi. It takes as input a definition of a language syntax and
···2929 '';
30303131 meta = with stdenv.lib; {
3232- description = "bliss is an open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
3232+ description = "An open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
3333 homepage = "http://www.tcs.hut.fi/Software/bliss/";
3434 license = licenses.lgpl3;
3535 platforms = [ "i686-linux" "x86_64-linux" ];
-102
pkgs/applications/science/math/maxima/5.41.nix
···11-{ stdenv, fetchurl, fetchpatch, sbcl, texinfo, perl, python, makeWrapper, rlwrap ? null
22-, tk ? null, gnuplot ? null, ecl ? null, ecl-fasl ? false
33-}:
44-55-let
66- name = "maxima";
77- # old version temporarily kept for sage, see discussion at
88- # https://github.com/NixOS/nixpkgs/commit/82254747af35f3e0e0d6f78023ded3a81e25331b
99- version = "5.41.0";
1010-1111- searchPath =
1212- stdenv.lib.makeBinPath
1313- (stdenv.lib.filter (x: x != null) [ sbcl ecl rlwrap tk gnuplot ]);
1414-in
1515-stdenv.mkDerivation ({
1616- inherit version;
1717- name = "${name}-${version}";
1818-1919- src = fetchurl {
2020- url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
2121- sha256 = "0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s";
2222- };
2323-2424- buildInputs = stdenv.lib.filter (x: x != null) [
2525- sbcl ecl texinfo perl python makeWrapper
2626- ];
2727-2828- postInstall = ''
2929- # Make sure that maxima can find its runtime dependencies.
3030- for prog in "$out/bin/"*; do
3131- wrapProgram "$prog" --prefix PATH ":" "$out/bin:${searchPath}"
3232- done
3333- # Move emacs modules and documentation into the right place.
3434- mkdir -p $out/share/emacs $out/share/doc
3535- ln -s ../maxima/${version}/emacs $out/share/emacs/site-lisp
3636- ln -s ../maxima/${version}/doc $out/share/doc/maxima
3737- ''
3838- + (stdenv.lib.optionalString ecl-fasl ''
3939- cp src/binary-ecl/maxima.fas* "$out/lib/maxima/${version}/binary-ecl/"
4040- '')
4141- ;
4242-4343- patches = [
4444- # fix path to info dir (see https://trac.sagemath.org/ticket/11348)
4545- (fetchpatch {
4646- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/infodir.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
4747- sha256 = "09v64n60f7i6frzryrj0zd056lvdpms3ajky4f9p6kankhbiv21x";
4848- })
4949-5050- # fix https://sourceforge.net/p/maxima/bugs/2596/
5151- (fetchpatch {
5252- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/matrixexp.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
5353- sha256 = "06961hn66rhjijfvyym21h39wk98sfxhp051da6gz0n9byhwc6zg";
5454- })
5555-5656- # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca, see see https://trac.sagemath.org/ticket/13364#comment:93
5757- (fetchpatch {
5858- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/undoing_true_false_printing_patch.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
5959- sha256 = "0fvi3rcjv6743sqsbgdzazy9jb6r1p1yq63zyj9fx42wd1hgf7yx";
6060- })
6161-6262- # upstream bug https://sourceforge.net/p/maxima/bugs/2520/ (not fixed)
6363- # introduced in https://trac.sagemath.org/ticket/13364
6464- (fetchpatch {
6565- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/0001-taylor2-Avoid-blowing-the-stack-when-diff-expand-isn.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
6666- sha256 = "0xa0b6cr458zp7lc7qi0flv5ar0r3ivsqhjl0c3clv86di2y522d";
6767- })
6868- ] ++ stdenv.lib.optionals ecl-fasl [
6969- # build fasl, needed for ECL support
7070- (fetchpatch {
7171- url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/maxima.system.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
7272- sha256 = "18zafig8vflhkr80jq2ivk46k92dkszqlyq8cfmj0b2vcfjwwbar";
7373- })
7474- # There are some transient test failures. I hope this disables all those tests.
7575- # If those test failures ever happen in the non-ecl version, that should be
7676- # reportetd upstream.
7777- ./known-ecl-failures.patch
7878- ];
7979-8080- # Failures in the regression test suite won't abort the build process. We run
8181- # the suite only so that potential errors show up in the build log. See also:
8282- # https://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933.
8383- doCheck = true;
8484-8585- enableParallelBuilding = true;
8686-8787- meta = {
8888- description = "Computer algebra system";
8989- homepage = "http://maxima.sourceforge.net";
9090- license = stdenv.lib.licenses.gpl2;
9191-9292- longDescription = ''
9393- Maxima is a fairly complete computer algebra system written in
9494- lisp with an emphasis on symbolic computation. It is based on
9595- DOE-MACSYMA and licensed under the GPL. Its abilities include
9696- symbolic integration, 3D plotting, and an ODE solver.
9797- '';
9898-9999- platforms = stdenv.lib.platforms.unix;
100100- maintainers = [ stdenv.lib.maintainers.peti ];
101101- };
102102-})
···1313 };
14141515 meta = with lib; {
1616- description = "Scyther is a tool for the automatic verification of security protocols";
1616+ description = "A tool for the automatic verification of security protocols";
1717 homepage = "https://www.cs.ox.ac.uk/people/cas.cremers/scyther/";
1818 license = licenses.gpl2;
1919 maintainers = with maintainers; [ infinisil ];
···24242525 meta = with stdenv.lib; {
2626 homepage = "https://github.com/jacksonliam/mjpg-streamer";
2727- description = "MJPG-streamer takes JPGs from Linux-UVC compatible webcams, filesystem or other input plugins and streams them as M-JPEG via HTTP to webbrowsers, VLC and other software";
2727+ description = "Takes JPGs from Linux-UVC compatible webcams, filesystem or other input plugins and streams them as M-JPEG via HTTP to webbrowsers, VLC and other software";
2828 platforms = platforms.linux;
2929 license = licenses.gpl2;
3030 maintainers = with maintainers; [ gebner ];
+1-1
pkgs/applications/video/mkclean/default.nix
···2828 '';
29293030 meta = with stdenv.lib; {
3131- description = "mkclean is a command line tool to clean and optimize Matroska (.mkv / .mka / .mks / .mk3d) and WebM (.webm / .weba) files that have already been muxed";
3131+ description = "Command line tool to clean and optimize Matroska (.mkv / .mka / .mks / .mk3d) and WebM (.webm / .weba) files that have already been muxed";
3232 homepage = "https://www.matroska.org";
3333 license = licenses.bsdOriginal;
3434 maintainers = with maintainers; [ chrisaw ];
···1212 # Manually sha256sum the extensionPack file, must be hex!
1313 # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
1414 # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
1515- let value = "b224e796e886b19bce69f0aaedf6ca82bad0ca29c61fb0ed86166efb84356942";
1515+ let value = "9802482b77b95a954cb5111793da10d009009a4e9a9c4eaa4bd1ae5dafe9db46";
1616 in assert (builtins.stringLength value) == 64; value;
17171818 meta = {
···2626 '';
27272828 meta = with stdenv.lib; {
2929- description = "Leftwm - A tiling window manager for the adventurer";
2929+ description = "A tiling window manager for the adventurer";
3030 homepage = "https://github.com/leftwm/leftwm";
3131 license = licenses.mit;
3232 platforms = platforms.linux;
+1-1
pkgs/data/fonts/merriweather/default.nix
···27272828 meta = with lib; {
2929 homepage = "https://github.com/SorkinType/Merriweather";
3030- description = "Merriweather was designed to be a text face that is pleasant to read on screens";
3030+ description = "A text face designed to be pleasant to read on screens";
3131 license = licenses.ofl;
3232 platforms = platforms.all;
3333 maintainers = with maintainers; [ emily ];
···110110 allowSubstitutes = false;
111111 passthru = { unwrapped = flutter; };
112112 meta = with stdenv.lib; {
113113- description =
114114- "Flutter is Google's SDK for building mobile, web and desktop with Dart.";
113113+ description = "Flutter is Google's SDK for building mobile, web and desktop with Dart";
115114 longDescription = ''
116115 Flutter is Google’s UI toolkit for building beautiful,
117116 natively compiled applications for mobile, web, and desktop from a single codebase.
+1-1
pkgs/development/compilers/fpc/lazarus.nix
···9898 '';
9999100100 meta = with stdenv.lib; {
101101- description = "Lazarus graphical IDE for the FreePascal language";
101101+ description = "Graphical IDE for the FreePascal language";
102102 homepage = "https://www.lazarus.freepascal.org";
103103 license = licenses.gpl2Plus ;
104104 maintainers = with maintainers; [ raskin ];
···2727 NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type";
28282929 meta = with stdenv.lib; {
3030- description = "BZRTP is an opensource implementation of ZRTP keys exchange protocol";
3030+ description = "An opensource implementation of ZRTP keys exchange protocol";
3131 homepage = "https://gitlab.linphone.org/BC/public/bzrtp";
3232 # They have switched to GPLv3 on git HEAD so probably the next release will
3333 # be GPL3.
+1-1
pkgs/development/libraries/duckdb/default.nix
···18181919 meta = with stdenv.lib; {
2020 homepage = "https://github.com/cwida/duckdb";
2121- description = "DuckDB is an embeddable SQL OLAP Database Management System";
2121+ description = "Embeddable SQL OLAP Database Management System";
2222 license = licenses.mit;
2323 platforms = platforms.all;
2424 maintainers = with maintainers; [ costrouc ];
···14141515 meta = with stdenv.lib; {
1616 homepage = "https://xiph.org/fishsound/";
1717- description = ''libfishsound by itself is designed to handle raw codec streams from a lower level layer such as UDP datagrams. When these codecs are used in files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex and Ogg Vorbis files.
1717+ description = "A simple programming interface for decoding and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis)";
1818+ longDescription = ''libfishsound by itself is designed to handle raw codec streams from a lower level layer such as UDP datagrams. When these codecs are used in files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex and Ogg Vorbis files.
18191920libfishsound is a wrapper around the existing codec libraries and provides a consistent, higher-level programming interface. It has been designed for use in a wide variety of applications; it has no direct dependencies on Ogg encapsulation, though it is most commonly used in conjunction with liboggz to decode or encode FLAC, Speex or Vorbis audio tracks in Ogg files, including Ogg Theora and Annodex.
2021
···24242525 meta = {
2626 homepage = "http://libthreadar.sourceforge.net/";
2727- description = ''
2727+ description = "A C++ library that provides several classes to manipulate threads";
2828+ longDescription = ''
2829 Libthreadar is a C++ library providing a small set of C++ classes to manipulate
2930 threads in a very simple and efficient way from your C++ code.
3031 '';
···1818 '';
19192020 meta = {
2121- description = "Martyr is a Java framework around the IRC protocol to allow application writers easy manipulation of the protocol and client state";
2121+ description = "Java framework around the IRC protocol to allow application writers easy manipulation of the protocol and client state";
2222 homepage = "http://martyr.sourceforge.net/";
2323 license = stdenv.lib.licenses.lgpl21;
2424 };
+2-2
pkgs/development/libraries/matio/default.nix
···11{ stdenv, fetchurl }:
22stdenv.mkDerivation rec {
33- name = "matio-1.5.17";
33+ name = "matio-1.5.18";
44 src = fetchurl {
55 url = "mirror://sourceforge/matio/${name}.tar.gz";
66- sha256 = "00644612zhn53j25vj50q73kmjcrsns2lnmy99y2kavhsckmaiay";
66+ sha256 = "09gy507zm1gxxyxf5qapzgars51pm16wis7lqqf84kc57ak73baz";
77 };
8899 meta = with stdenv.lib; {
···1515 enableParallelBuilding = true;
16161717 meta = {
1818- description = "QCDNUM is a very fast QCD evolution program written in FORTRAN77";
1818+ description = "A very fast QCD evolution program written in FORTRAN77";
1919 license = stdenv.lib.licenses.gpl3;
2020 homepage = "https://www.nikhef.nl/~h24/qcdnum/index.html";
2121 platforms = stdenv.lib.platforms.unix;
+1-1
pkgs/development/libraries/pupnp/default.nix
···1717 hardeningDisable = [ "fortify" ];
18181919 meta = {
2020- description = "libupnp, an open source UPnP development kit for Linux";
2020+ description = "An open source UPnP development kit for Linux";
21212222 longDescription = ''
2323 The Linux SDK for UPnP Devices (libupnp) provides developers
···2424 '';
25252626 meta = with stdenv.lib; {
2727- description = "ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
2727+ description = "An MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
2828 homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview";
2929 platforms = platforms.all;
3030 license = licenses.unfree;
+1-1
pkgs/development/libraries/sope/default.nix
···4141 '';
42424343 meta = {
4444- description = "SOPE is an extensive set of frameworks which form a complete Web application server environment";
4444+ description = "An extensive set of frameworks which form a complete Web application server environment";
4545 license = licenses.publicDomain;
4646 homepage = "https://github.com/inverse-inc/sope";
4747 platforms = platforms.linux;
+1-1
pkgs/development/libraries/symengine/default.nix
···3737 '';
38383939 meta = with stdenv.lib; {
4040- description = "SymEngine is a fast symbolic manipulation library";
4040+ description = "A fast symbolic manipulation library";
4141 homepage = "https://github.com/symengine/symengine";
4242 platforms = platforms.unix ++ platforms.windows;
4343 license = licenses.bsd3;
···11{ lib, fetchPypi, buildPythonPackage
22-, blessed, keyring, keyrings-alt, lxml, measurement, python-dateutil, requests, six
33-, mock, nose }:
22+, blessed, keyring, keyrings-alt, lxml, measurement, python-dateutil, requests, six, rich
33+, pytestCheckHook, mock, nose }:
44+55+# TODO: Define this package in "all-packages.nix" using "toPythonApplication".
66+# This currently errors out, complaining about not being able to find "etree" from "lxml" even though "lxml" is defined in "propagatedBuildInputs".
4758buildPythonPackage rec {
69 pname = "myfitnesspal";
···1114 sha256 = "c2275e91c794a3569a76c47c78cf2ff04d7f569a98558227e899ead7b30af0d6";
1215 };
13161414- # Remove overly restrictive version constraints on keyring and keyrings.alt
1717+ # Remove overly restrictive version constraints
1518 postPatch = ''
1619 sed -i 's/keyring>=.*/keyring/' requirements.txt
1720 sed -i 's/keyrings.alt>=.*/keyrings.alt/' requirements.txt
2121+ sed -i 's/rich>=.*/rich/' requirements.txt
1822 '';
19232020- checkInputs = [ mock nose ];
2121- propagatedBuildInputs = [ blessed keyring keyrings-alt lxml measurement python-dateutil requests six ];
2424+ propagatedBuildInputs = [ blessed keyring keyrings-alt lxml measurement python-dateutil requests six rich ];
2525+2626+ # Integration tests require an account to be set
2727+ disabledTests = [ "test_integration" ];
2828+ checkInputs = [ pytestCheckHook mock nose ];
22292330 meta = with lib; {
2431 description = "Access your meal tracking data stored in MyFitnessPal programatically";
···22index d5a67d2..19b7ffc 100644
33--- a/shapely/geos.py
44+++ b/shapely/geos.py
55-@@ -61,123 +61,11 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
55+@@ -61,127 +61,10 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
66 "Could not find lib {} or load any of its variants {}.".format(
77 libname, fallbacks or []))
88···8080- ]
8181- _lgeos = load_dll('geos_c', fallbacks=alt_paths)
8282-
8383-- free = load_dll('c').free
8383+- # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
8484+- # manpage says, "If filename is NULL, then the returned handle is for the
8585+- # main program". This way we can let the linker do the work to figure out
8686+- # which libc Python is actually using.
8787+- free = CDLL(None).free
8488- free.argtypes = [c_void_p]
8589- free.restype = None
8690-
···112116- except WindowsError:
113117- # XXX: See http://trac.gispython.org/projects/PCL/ticket/149
114118- pass
115115-119119+-
116120-elif sys.platform == 'sunos5':
117121- _lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
118122- free = CDLL('libc.so.1').free
+1-1
pkgs/development/python-modules/xdot/default.nix
···1616 propagatedBuildInputs = [ gobject-introspection pygobject3 graphviz gtk3 ];
17171818 meta = with lib; {
1919- description = "xdot.py is an interactive viewer for graphs written in Graphviz's dot";
1919+ description = "An interactive viewer for graphs written in Graphviz's dot";
2020 homepage = "https://github.com/jrfonseca/xdot.py";
2121 license = licenses.lgpl3Plus;
2222 };
···3030 ];
31313232 meta = with lib; {
3333- description = "A schema and validator for YAML.";
3333+ description = "A schema and validator for YAML";
3434 homepage = "https://github.com/23andMe/Yamale";
3535 license = licenses.mit;
3636 maintainers = with maintainers; [ rtburns-jpl ];
···49495050 meta = {
5151 homepage = "https://github.com/plasma-umass/coz";
5252- description = "Coz: Causal Profiling";
5252+ description = "Profiler based on casual profiling";
5353 license = stdenv.lib.licenses.bsd2;
5454 maintainers = with stdenv.lib.maintainers; [ zimbatm ];
5555 };
+1-1
pkgs/development/tools/analysis/pev/default.nix
···1414 installFlags = [ "prefix=$(out)" ];
15151616 meta = with stdenv.lib; {
1717- description = "pev is a full-featured, open source, multiplatform command line toolkit to work with PE (Portable Executables) binaries";
1717+ description = "A full-featured, open source, multiplatform command line toolkit to work with PE (Portable Executables) binaries";
1818 homepage = "http://pev.sourceforge.net/";
1919 license = licenses.gpl2;
2020 platforms = platforms.linux;
···8585 meta = with stdenv.lib; {
8686 homepage = "https://scalacenter.github.io/bloop/";
8787 license = licenses.asl20;
8888- description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
8888+ description = "A Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
8989 platforms = [ "x86_64-linux" "x86_64-darwin" ];
9090 maintainers = with maintainers; [ tomahna ];
9191 };
···2222 };
23232424 meta = with lib; {
2525- description = "deadcode is a very simple utility which detects unused declarations in a Go package";
2525+ description = "Very simple utility which detects unused declarations in a Go package";
2626 homepage = "https://github.com/remyoudompheng/go-misc/tree/master/deadcode";
2727 license = licenses.bsd3;
2828 maintainers = with maintainers; [ kalbasit ];
+1-1
pkgs/development/tools/errcheck/default.nix
···2020 goDeps = ./deps.nix;
21212222 meta = with lib; {
2323- description = "errcheck is a program for checking for unchecked errors in go programs";
2323+ description = "Program for checking for unchecked errors in go programs";
2424 homepage = "https://github.com/kisielk/errcheck";
2525 license = licenses.mit;
2626 maintainers = with maintainers; [ kalbasit ];
···2727 '';
28282929 meta = with stdenv.lib; {
3030- description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
3030+ description = "An interface compiler that connects C/C++ code to higher-level languages";
3131 homepage = "http://swig.org/";
3232 # Different types of licenses available: http://www.swig.org/Release/LICENSE .
3333 license = licenses.gpl3Plus;
+1-1
pkgs/development/tools/nsis/default.nix
···4848 installTargets = [ "install-compiler" ];
49495050 meta = with stdenv.lib; {
5151- description = "NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
5151+ description = "A free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
5252 homepage = "https://nsis.sourceforge.io/";
5353 license = licenses.zlib;
5454 platforms = platforms.linux;
+1-1
pkgs/development/tools/omniorb/default.nix
···1515 hardeningDisable = [ "format" ];
16161717 meta = with stdenv.lib; {
1818- description = "omniORB is a robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant";
1818+ description = "A robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant";
1919 homepage = "http://omniorb.sourceforge.net/";
2020 license = licenses.gpl2Plus;
2121 maintainers = with maintainers; [ smironov ];
+1-1
pkgs/development/tools/pgloader/default.nix
···30303131 meta = with stdenv.lib; {
3232 homepage = "https://pgloader.io/";
3333- description = "pgloader loads data into PostgreSQL and allows you to implement Continuous Migration from your current database to PostgreSQL";
3333+ description = "Loads data into PostgreSQL and allows you to implement Continuous Migration from your current database to PostgreSQL";
3434 maintainers = with maintainers; [ mguentner ];
3535 license = licenses.postgresql;
3636 platforms = platforms.all;
+1-1
pkgs/development/tools/reftools/default.nix
···2323 };
24242525 meta = with lib; {
2626- description = "reftools - refactoring tools for Go";
2626+ description = "Refactoring tools for Go";
2727 homepage = "https://github.com/davidrjenni/reftools";
2828 license = licenses.bsd2;
2929 maintainers = with maintainers; [ kalbasit ];
+185-49
pkgs/development/tools/sourcetrail/default.nix
···11-{ stdenv, fetchurl, autoPatchelfHook
22-, zlib, expat, dbus, openssl, python3 }:
11+{ stdenv, fetchFromGitHub, callPackage, writeScript, cmake, wrapQtAppsHook
22+, boost, qt5, llvmPackages, gcc, jdk, pythonPackages, desktop-file-utils
33+, shared-mime-info, imagemagick, which, coreutils, maven, fetchpatch }:
44+55+let
66+ # TODO: remove when version incompatibility issue with python3Packages.jedi is
77+ # resolved
88+ parso = pythonPackages.callPackage ./parso.nix {};
99+ jedi = pythonPackages.callPackage ./jedi.nix { inherit parso; };
1010+1111+ pythonIndexer = pythonPackages.callPackage ./python.nix { inherit jedi parso; };
1212+ javaIndexer = callPackage ./java.nix {};
1313+1414+ # Upstream script:
1515+ # https://github.com/CoatiSoftware/Sourcetrail/blob/master/script/update_java_indexer.sh
1616+ installJavaIndexer = writeScript "update_java_indexer.sh" ''
1717+ #!${stdenv.shell}
1818+1919+ cd "$(dirname "$0")/.."
2020+ dst="$out/opt/sourcetrail/share/data/java/lib"
2121+2222+ mkdir -p "$dst"
2323+ cp "${javaIndexer}/target/java-indexer-1.0.jar" "$dst/java-indexer.jar"
2424+ cp -r java_indexer/lib/*.jar "$dst"
2525+ '';
2626+2727+ # Upstream script:
2828+ # https://github.com/CoatiSoftware/Sourcetrail/blob/master/script/download_python_indexer.sh
2929+ installPythonIndexer = writeScript "download_python_indexer.sh" ''
3030+ #!${stdenv.shell}
3313232+ mkdir -p $out/opt/sourcetrail/share/data
3333+ ln -s "${pythonIndexer}/bin" "$out/opt/sourcetrail/share/data/python"
3434+ '';
3535+in
436stdenv.mkDerivation rec {
537 pname = "sourcetrail";
66- version = "2019.3.46";
3838+ version = "2020.2.43";
73988- src = fetchurl {
99- name = "sourtrail.tar.gz";
1010- url = "https://www.sourcetrail.com/downloads/${version}/linux/64bit";
1111- sha256 = "0dnkxr3fijcsbn6pd20lyxhr9ns6ji1c4dffly9s16yq4x9ad5r4";
4040+ src = fetchFromGitHub {
4141+ owner = "CoatiSoftware";
4242+ repo = "Sourcetrail";
4343+ rev = "${version}";
4444+ sha256 = "0jp9y86xzkcxikc1cn4f6gqgg6zdssck08677ldagw25p1zadvzw";
1245 };
13461414- nativeBuildInputs = [ autoPatchelfHook ];
1515- buildInputs = [ zlib expat dbus stdenv.cc.cc openssl python3 ];
4747+ patches = let
4848+ url = commit: "https://github.com/CoatiSoftware/Sourcetrail/commit/${commit}.patch";
4949+ in [
5050+ ./disable-updates.patch
5151+ ./disable-failing-tests.patch # FIXME: 5 test cases failing due to sandbox
5252+ # TODO: remove on next release
5353+ (fetchpatch {
5454+ name = "fix-filecopy.patch";
5555+ url = url "d079d1787c9e5cadcf41a003666dc0746cc1cda0";
5656+ sha256 = "0mixy2a4s16kv2q89k7y4dv21wnv2zd86i4gdwn3xz977y8hf92b";
5757+ })
5858+ (fetchpatch {
5959+ name = "fix-broken-test.patch";
6060+ url = url "85329174bac8a301733100dc4540258f977e2c5a";
6161+ sha256 = "17l4417sbmkrgr6v3fbazlmkzl9774zrpjv2n9zwfrz52y30f7b9";
6262+ })
6363+ ];
16641717- installPhase = ''
1818- runHook preInstall
6565+ nativeBuildInputs = [
6666+ cmake
6767+ jdk
6868+ wrapQtAppsHook
6969+ desktop-file-utils
7070+ imagemagick
7171+ javaIndexer # the resulting jar file is copied by our install script
7272+ ] ++ stdenv.lib.optionals doCheck testBinPath;
7373+ buildInputs = [
7474+ boost pythonIndexer shared-mime-info
7575+ ] ++ (with qt5; [ qtbase qtsvg ])
7676+ ++ (with llvmPackages; [ libclang llvm ]);
7777+ binPath = [ gcc jdk.jre maven which ];
7878+ testBinPath = binPath ++ [ coreutils ];
19792020- mkdir -p $out/bin $out/opt
8080+ cmakeFlags = [
8181+ "-DBoost_USE_STATIC_LIBS=OFF"
8282+ "-DBUILD_CXX_LANGUAGE_PACKAGE=ON"
8383+ "-DCMAKE_PREFIX_PATH=${llvmPackages.clang-unwrapped}"
8484+ "-DBUILD_JAVA_LANGUAGE_PACKAGE=ON"
8585+ "-DBUILD_PYTHON_LANGUAGE_PACKAGE=ON"
8686+ ];
21872222- mv -v setup/share $out
2323- mv -v data/gui/icon/logo_1024_1024.png $out/share/icons/sourcetrail.png
2424- mv -v data/gui/icon/project_256_256.png $out/share/icons/project-sourcetrail.png
8888+ postPatch = let
8989+ major = stdenv.lib.versions.major version;
9090+ minor = stdenv.lib.versions.minor version;
9191+ patch = stdenv.lib.versions.patch version;
9292+ in ''
9393+ # Upstream script obtains it's version from git:
9494+ # https://github.com/CoatiSoftware/Sourcetrail/blob/master/cmake/version.cmake
9595+ cat > cmake/version.cmake <<EOF
9696+ set(GIT_BRANCH "")
9797+ set(GIT_COMMIT_HASH "")
9898+ set(GIT_VERSION_NUMBER "")
9999+ set(VERSION_YEAR "${major}")
100100+ set(VERSION_MINOR "${minor}")
101101+ set(VERSION_COMMIT "${patch}")
102102+ set(BUILD_TYPE "Release")
103103+ set(VERSION_STRING "${major}.${minor}.${patch}")
104104+ EOF
251052626- mkdir -p $out/share/sourcetrail/doc
2727- mv -v README EULA.txt $out/share/sourcetrail/doc
2828- mv -v plugin $out/share/sourcetrail
106106+ # Sourcetrail attempts to copy clang headers from the LLVM store path
107107+ substituteInPlace CMakeLists.txt \
108108+ --replace "\''${LLVM_BINARY_DIR}" '${llvmPackages.clang-unwrapped}'
291093030- cp -rv . $out/opt
110110+ patchShebangs script
111111+ ln -sf ${installJavaIndexer} script/update_java_indexer.sh
112112+ ln -sf ${installPythonIndexer} script/download_python_indexer.sh
113113+ '';
311143232- rm $out/opt/lib/libssl.so
3333- rm $out/opt/lib/platforms/{libqeglfs.so,libqwebgl.so}
3434- ln -s ${openssl}/lib/libssl.so $out/opt/lib/libssl.so
115115+ # Sourcetrail doesn't use the usual cmake install() commands and instead uses
116116+ # its own bash script for packaging. Since we're not able to reuse the script,
117117+ # we'll have to roll our own in nixpkgs.
118118+ #
119119+ # Sourcetrail currently assumes one of the following two layouts for the
120120+ # placement of its files:
121121+ #
122122+ # AppImage Layout Traditional Layout
123123+ # ├── bin/ ├── sourcetrail*
124124+ # │ └── sourcetrail* └── data/
125125+ # └── share/
126126+ # └── data/ sourcetrail: application executable
127127+ # data: contains assets exlusive to Sourcetrail
128128+ #
129129+ # The AppImage layout is the one currently used by the upstream project for
130130+ # packaging its Linux port. We can't use this layout as-is for nixpkgs,
131131+ # because Sourcetrail treating $out/share/data as its own might lead to
132132+ # conflicts with other packages when linked into a Nix profile.
133133+ #
134134+ # On the other hand, the traditional layout isn't used by the upstream project
135135+ # anymore so there's a risk that it might become unusable at any time in the
136136+ # future. Since it's hard to detect these problems at build time, it's not a
137137+ # good idea to use this layout for packaging in nixpkgs.
138138+ #
139139+ # Considering the problems with the above layouts, we go with the third
140140+ # option, a slight variation of the AppImage layout:
141141+ #
142142+ # nixpkgs
143143+ # ├── bin/
144144+ # │ └── sourcetrail* (wrapper for opt/sourcetrail/bin/sourcetrail)
145145+ # └── opt/sourcetrail/
146146+ # ├── bin/
147147+ # │ └── sourcetrail*
148148+ # └── share/
149149+ # └── data/
150150+ #
151151+ # Upstream install script:
152152+ # https://github.com/CoatiSoftware/Sourcetrail/blob/master/setup/Linux/createPackages.sh
153153+ installPhase = ''
154154+ mkdir -p $out/opt/sourcetrail/bin
155155+ cp app/Sourcetrail $out/opt/sourcetrail/bin/sourcetrail
156156+ cp app/sourcetrail_indexer $out/opt/sourcetrail/bin/sourcetrail_indexer
351573636- substituteInPlace \
3737- $out/share/applications/sourcetrail.desktop \
3838- --replace /usr/bin/ $out/bin/
158158+ desktop-file-install --dir=$out/share/applications \
159159+ --set-key Exec --set-value $out/bin/sourcetrail \
160160+ ../setup/Linux/data/sourcetrail.desktop
391614040- cat <<EOF > $out/bin/sourcetrail
4141- #! ${stdenv.shell} -e
162162+ mkdir -p $out/share/mime/packages
163163+ cp ../setup/Linux/data/sourcetrail-mime.xml $out/share/mime/packages/
421644343- # XXX: Sourcetrail somehow copies the initial config files into the home
4444- # directory without write permissions. We currently just copy them
4545- # ourselves to work around this problem.
4646- setup_config() {
4747- local src dst
165165+ mkdir -p $out/opt/sourcetrail/share
166166+ cp -R ../bin/app/data $out/opt/sourcetrail/share
167167+ cp -R ../bin/app/user/projects $out/opt/sourcetrail/share/data/fallback
168168+ rm $out/opt/sourcetrail/share/data/*_template.xml
169169+ rm -r $out/opt/sourcetrail/share/data/install
481704949- [ ! -d ~/.config/sourcetrail ] && mkdir -p ~/.config/sourcetrail
5050- for src in $out/opt/data/fallback/*; do
5151- dst=~/.config/sourcetrail/"\$(basename "\$src")"
5252- if [ ! -e "\$dst" ]; then
5353- cp -r "\$src" "\$dst"
5454- fi
5555- done
171171+ for size in 48 64 128 256 512; do
172172+ mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps/
173173+ convert app/data/gui/icon/logo_1024_1024.png -resize ''${size}x''${size} \
174174+ $out/share/icons/hicolor/''${size}x''${size}/apps/sourcetrail.png
175175+ done
561765757- chmod -R u+w ~/.config/sourcetrail
5858- }
177177+ mkdir -p $out/bin
178178+ makeQtWrapper $out/opt/sourcetrail/bin/sourcetrail $out/bin/sourcetrail \
179179+ --prefix PATH : ${stdenv.lib.makeBinPath binPath}
180180+ '';
591816060- [ -d "\$HOME" ] && setup_config
6161- export PATH="\$PATH:${python3}/bin"
6262- exec "$out/opt/Sourcetrail.sh" "\$@"
6363- EOF
182182+ checkPhase = ''
183183+ rm -rf ../bin/app/data/{python,java/lib}
184184+ ln -s $out/opt/sourcetrail/share/data/python ../bin/app/data/python
185185+ ln -s $out/opt/sourcetrail/share/data/java/lib ../bin/app/data/java/lib
641866565- chmod +x $out/bin/sourcetrail
187187+ pushd test
188188+ # shorten PATH to prevent build failures
189189+ wrapQtApp ./Sourcetrail_test \
190190+ --set PATH "" \
191191+ --prefix PATH : ${stdenv.lib.makeBinPath testBinPath} \
192192+ --set MAVEN_OPTS "-Dmaven.repo.local=$TMPDIR/m2repo"
193193+ ./Sourcetrail_test
194194+ popd
661956767- runHook postInstall
196196+ rm ../bin/app/data/{python,java/lib}
68197 '';
69198199199+ # This has to be done manually in the installPhase because the actual binary
200200+ # lives in $out/opt/sourcetrail/bin, which isn't covered by wrapQtAppsHook
201201+ dontWrapQtApps = true;
202202+203203+ # FIXME: some test cases are disabled in the patch phase
204204+ doCheck = true;
205205+70206 meta = with stdenv.lib; {
71207 homepage = "https://www.sourcetrail.com";
72208 description = "A cross-platform source explorer for C/C++ and Java";
7373- platforms = [ "x86_64-linux" ];
7474- license = licenses.unfree;
209209+ platforms = platforms.all;
210210+ license = licenses.gpl3;
75211 maintainers = with maintainers; [ midchildan ];
76212 };
77213}
···1212 configureFlags = [ "--with-xerces=${xercesc}" ];
13131414 meta = with stdenv.lib; {
1515- description = "XQilla is an XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
1515+ description = "An XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
1616 license = licenses.asl20 ;
1717 maintainers = with maintainers; [ obadz ];
1818 platforms = platforms.all;
···15151616 meta = with stdenv.lib; {
1717 homepage = "https://github.com/jmoon018/PacVim";
1818- description = "PacVim is a game that teaches you vim commands";
1818+ description = "A game that teaches you vim commands";
1919 maintainers = with maintainers; [ infinisil ];
2020 license = licenses.lgpl3;
2121 platforms = platforms.unix;
+1-1
pkgs/games/pro-office-calculator/default.nix
···1515 nativeBuildInputs = [ cmake ];
16161717 meta = with stdenv.lib; {
1818- description = "Just an ordinary calculator. Nothing to see here...";
1818+ description = "A completely normal office calculator";
1919 homepage = "https://proofficecalculator.com/";
2020 maintainers = [ maintainers.pmiddend ];
2121 platforms = platforms.linux;
···1919 '';
20202121 meta = with lib; {
2222- description = "A command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks.";
2222+ description = "A command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks";
2323 homepage = "https://github.com/john-moonsugar/tes3cmd";
2424 license = licenses.mit;
2525 maintainers = [ maintainers.marius851000 ];
+2-2
pkgs/misc/frescobaldi/default.nix
···29293030 meta = with lib; {
3131 homepage = "https://frescobaldi.org/";
3232- description = ''Frescobaldi is a LilyPond sheet music text editor'';
3232+ description = "A LilyPond sheet music text editor";
3333 longDescription = ''
3434- Powerful text editor with syntax highlighting and automatic completion,
3434+ Powerful text editor with syntax highlighting and automatic completion,
3535 Music view with advanced Point & Click, Midi player to proof-listen
3636 LilyPond-generated MIDI files, Midi capturing to enter music,
3737 Powerful Score Wizard to quickly setup a music score, Snippet Manager
···3030 '';
31313232 meta = with stdenv.lib; {
3333- description = "Betterlockscreen is a simple minimal lock screen which allows you to cache images with different filters and lockscreen with blazing speed";
3333+ description = "A simple minimal lock screen which allows you to cache images with different filters and lockscreen with blazing speed";
3434 homepage = "https://github.com/pavanjadhaw/betterlockscreen";
3535 license = licenses.mit;
3636 platforms = platforms.linux;
+5-4
pkgs/misc/vim-plugins/overrides.nix
···6060 };
61616262 LanguageClient-neovim = let
6363- version = "0.1.158";
6363+ version = "0.1.160";
6464 LanguageClient-neovim-src = fetchFromGitHub {
6565 owner = "autozimu";
6666 repo = "LanguageClient-neovim";
6767 rev = version;
6868- sha256 = "14xggdgp5qw4yj4gdsgr8s2nxm098m88q8rx6fzd2j20njv308ki";
6868+ sha256 = "143cifahav1pfmpx3j1ihx433jrwxf6z27s0wxndgjkd2plkks58";
6969 };
7070 LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
7171- name = "LanguageClient-neovim-bin";
7171+ pname = "LanguageClient-neovim-bin";
7272+ inherit version;
7273 src = LanguageClient-neovim-src;
73747474- cargoSha256 = "0nin1gydf6q4mmxljm2xbd1jfl3wpzx3pvlqwspahblv9j2bf5ck";
7575+ cargoSha256 = "0mf94j85awdcqa6cyb89bipny9xg13ldkznjf002fq747f55my2a";
7576 buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
76777778 # FIXME: Use impure version of CoreFoundation because of missing symbols.
+21
pkgs/misc/vscode-extensions/default.nix
···1010# So an extension's attribute name should be of the form:
1111# "${mktplcRef.publisher}.${mktplcRef.name}".
1212#
1313+stdenv.lib.mapAttrs (_n: stdenv.lib.recurseIntoAttrs)
1314{
14151516 alanz.vscode-hie-server = buildVscodeMarketplaceExtension {
···4647 meta = with stdenv.lib; {
4748 license = licenses.mit;
4849 };
5050+ };
5151+5252+ dhall.dhall-lang = buildVscodeMarketplaceExtension {
5353+ mktplcRef = {
5454+ name = "dhall-lang";
5555+ publisher = "dhall";
5656+ version = "0.0.4";
5757+ sha256 = "0sa04srhqmngmw71slnrapi2xay0arj42j4gkan8i11n7bfi1xpf";
5858+ };
5959+ meta = { license = stdenv.lib.licenses.mit; };
6060+ };
6161+6262+ dhall.vscode-dhall-lsp-server = buildVscodeMarketplaceExtension {
6363+ mktplcRef = {
6464+ name = "vscode-dhall-lsp-server";
6565+ publisher = "dhall";
6666+ version = "0.0.4";
6767+ sha256 = "1zin7s827bpf9yvzpxpr5n6mv0b5rhh3civsqzmj52mdq365d2js";
6868+ };
6969+ meta = { license = stdenv.lib.licenses.mit; };
4970 };
50715172 formulahendry.auto-close-tag = buildVscodeMarketplaceExtension {
+1-1
pkgs/os-specific/linux/cpuset/default.nix
···1919 };
20202121 meta = with stdenv.lib; {
2222- description = "Cpuset is a Python application that forms a wrapper around the standard Linux filesystem calls to make using the cpusets facilities in the Linux kernel easier";
2222+ description = "Python application that forms a wrapper around the standard Linux filesystem calls to make using the cpusets facilities in the Linux kernel easier";
2323 homepage = "https://github.com/wykurz/cpuset";
2424 license = licenses.gpl2;
2525 maintainers = with maintainers; [ wykurz ];
+2
pkgs/os-specific/linux/dstat/default.nix
···12121313 propagatedBuildInputs = with python2Packages; [ python-wifi ];
14141515+ patches = [ ./fix_pluginpath.patch ];
1616+1517 makeFlags = [ "prefix=$(out)" ];
16181719 meta = with stdenv.lib; {
···59596060 meta = with stdenv.lib; {
6161 homepage = "https://www.linode.com/longview";
6262- description = "Longview collects all of your system-level metrics and sends them to Linode";
6262+ description = "Collects all of your system-level metrics and sends them to Linode";
6363 license = licenses.gpl2Plus;
6464 maintainers = [ maintainers.rvl ];
6565 inherit version;
···2424, python3Packages # for sphinx-build
2525# For tests
2626, gtest
2727-, fetchpatch # used to fetch an upstream patch fixing a failing test
2827, zip
2928}:
3029
+1-1
pkgs/servers/news/leafnode/default.nix
···30303131 meta = {
3232 homepage = "http://leafnode.sourceforge.net/";
3333- description = "Leafnode implements a store & forward NNTP proxy";
3333+ description = "Implementation of a store & forward NNTP proxy";
3434 license = stdenv.lib.licenses.mit;
3535 platforms = stdenv.lib.platforms.unix;
3636 };
+1-1
pkgs/servers/openbgpd/default.nix
···3636 '';
37373838 meta = with stdenv.lib; {
3939- description = "OpenBGPD is a FREE implementation of the Border Gateway Protocol, Version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol";
3939+ description = "A free implementation of the Border Gateway Protocol, Version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol";
4040 license = licenses.isc;
4141 homepage = "http://www.openbgpd.org/";
4242 maintainers = with maintainers; [ kloenk ];
···1818 '';
19192020 meta = {
2121- description = ''
2121+ description = "An extension to support similarity queries on PostgreSQL";
2222+ longDescription = ''
2223 pg_similarity is an extension to support similarity queries on PostgreSQL. The implementation
2324 is tightly integrated in the RDBMS in the sense that it defines operators so instead of the traditional
2425 operators (= and <>) you can use ~~~ and ~!~ (any of these operators represents a similarity function).
+1-1
pkgs/servers/sql/postgresql/ext/pgtap.nix
···1818 '';
19192020 meta = with stdenv.lib; {
2121- description = "pgTAP is a unit testing framework for PostgreSQL";
2121+ description = "A unit testing framework for PostgreSQL";
2222 longDescription = ''
2323 pgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and PL/SQL.
2424 It includes a comprehensive collection of TAP-emitting assertion functions,
+1-1
pkgs/servers/web-apps/engelsystem/default.nix
···43434444 meta = with stdenv.lib; {
4545 description =
4646- "Coordinate your helpers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
4646+ "Coordinate your volunteers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
4747 license = licenses.gpl2;
4848 homepage = "https://engelsystem.de";
4949 maintainers = with maintainers; [ kloenk ];
+1-1
pkgs/servers/web-apps/jirafeau/default.nix
···2525 '';
26262727 meta = with stdenv.lib; {
2828- description = "Jirafeau is a web site permitting to upload a file in a simple way and give an unique link to it";
2828+ description = "Website permitting upload of a file in a simple way and giving a unique link to it";
2929 license = licenses.agpl3;
3030 homepage = "https://gitlab.com/mojo42/Jirafeau";
3131 platforms = platforms.all;
+1-1
pkgs/servers/web-apps/sogo/default.nix
···6767 '';
68686969 meta = {
7070- description = "SOGo is a very fast and scalable modern collaboration suite (groupware)";
7070+ description = "A very fast and scalable modern collaboration suite (groupware)";
7171 license = with licenses; [ gpl2 lgpl21 ];
7272 homepage = "https://sogo.nu/";
7373 platforms = platforms.linux;
+1-1
pkgs/shells/es/default.nix
···2525 configureFlags = [ "--with-readline" ];
26262727 meta = with stdenv.lib; {
2828- description = "Es is an extensible shell";
2828+ description = "An extensible shell with higher order functions";
2929 longDescription =
3030 ''
3131 Es is an extensible shell. The language was derived
···2424 NIX_LDFLAGS = "-lpthread";
25252626 meta = with stdenv.lib; {
2727- description = ''
2828- x11spice will enable a running X11 desktop to be available
2929- via a Spice server
3030- '';
2727+ description = "Enable a running X11 desktop to be available via a Spice server";
3128 homepage = "https://gitlab.freedesktop.org/spice/x11spice";
3229 platforms = platforms.linux;
3330 license = licenses.gpl3;
+1-1
pkgs/tools/admin/chamber/default.nix
···20202121 meta = with lib; {
2222 description =
2323- "Chamber is a tool for managing secrets by storing them in AWS SSM Parameter Store.";
2323+ "A tool for managing secrets by storing them in AWS SSM Parameter Store";
2424 homepage = "https://github.com/segmentio/chamber";
2525 license = licenses.mit;
2626 maintainers = with maintainers; [ kalekseev ];
+1-1
pkgs/tools/admin/oxidized/default.nix
···1111 passthru.updateScript = bundlerUpdateScript "oxidized";
12121313 meta = with lib; {
1414- description = "Oxidized is a network device configuration backup tool. It's a RANCID replacement!";
1414+ description = "A network device configuration backup tool. It's a RANCID replacement!";
1515 homepage = "https://github.com/ytti/oxidized";
1616 license = licenses.asl20;
1717 maintainers = with maintainers; [ willibutz nicknovitski ];
···31313232 meta = with stdenv.lib; {
3333 homepage = "https://tukaani.org/xz/";
3434- description = "XZ, general-purpose data compression software, successor of LZMA";
3434+ description = "A general-purpose data compression software, successor of LZMA";
35353636 longDescription =
3737 '' XZ Utils is free general-purpose data compression software with high
···2233stdenv.mkDerivation rec {
44 pname = "dpic";
55- version = "2020.06.01";
55+ version = "2020.09.15";
6677 src = fetchurl {
88 url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
99- sha256 = "1gbkpbjwjaaifxff8amm9b47dynq4l4698snjdgnn4flndw62q88";
99+ sha256 = "0gmmp4dlir3bn892nm55a3q8cfsj8yg7fp1dixmhsdhsrgmg1b83";
1010 };
11111212 # The prefix passed to configure is not used.
+1-1
pkgs/tools/graphics/optar/default.nix
···2626 '';
27272828 meta = with stdenv.lib; {
2929- description = "Optar stands for OPTical ARchiver - it's a codec for encoding data on paper";
2929+ description = "OPTical ARchiver - it's a codec for encoding data on paper";
3030 homepage = "http://ronja.twibright.com/optar/";
3131 license = licenses.gpl2;
3232 maintainers = with maintainers; [ peterhoeg ];
···11-{ stdenv, fetchurl, python3, perl, textual-window-manager }:
11+{ stdenv, fetchurl, makeWrapper
22+, ncurses, python3, perl, textual-window-manager
33+, gettext, vim, bc, screen }:
2455+let
66+ inherit (stdenv) lib;
77+ pythonEnv = python3.withPackages (ps: with ps; [ snack ]);
88+in
39stdenv.mkDerivation rec {
410 version = "5.133";
511 name = "byobu-" + version;
···11171218 doCheck = true;
13191414- buildInputs = [ python3 perl ];
1515- propagatedBuildInputs = [ textual-window-manager ];
2020+ buildInputs = [ perl makeWrapper gettext ];
2121+ propagatedBuildInputs = [ textual-window-manager screen ];
2222+2323+ postPatch = ''
2424+ substituteInPlace usr/bin/byobu-export.in \
2525+ --replace "gettext" "${gettext}/bin/gettext"
2626+ substituteInPlace usr/lib/byobu/menu \
2727+ --replace "gettext" "${gettext}/bin/gettext"
2828+ '';
2929+3030+ postInstall = ''
3131+ # Byobu does not compile its po files for some reason
3232+ for po in po/*.po; do
3333+ lang=''${po#po/}
3434+ lang=''${lang%.po}
3535+ # Path where byobu looks for translations as observed in the source code and strace
3636+ mkdir -p $out/share/byobu/po/$lang/LC_MESSAGES/
3737+ msgfmt $po -o $out/share/byobu/po/$lang/LC_MESSAGES/byobu.mo
3838+ done
3939+4040+ # Override the symlinks otherwise they mess with the wrapping
4141+ cp --remove-destination $out/bin/byobu $out/bin/byobu-screen
4242+ cp --remove-destination $out/bin/byobu $out/bin/byobu-tmux
4343+4444+ for i in $out/bin/byobu*; do
4545+ # We don't use the usual ".$package-wrapped" because arg0 within the shebang scripts
4646+ # points to the filename and byobu matches against this to know which backend
4747+ # to start with
4848+ file=".$(basename $i)"
4949+ mv $i $out/bin/$file
5050+ makeWrapper "$out/bin/$file" "$out/bin/$(basename $i)" --argv0 $(basename $i) \
5151+ --set BYOBU_PATH ${lib.escapeShellArg (lib.makeBinPath [ vim bc ])} \
5252+ --set BYOBU_PYTHON "${pythonEnv}/bin/python"
5353+ done
5454+ '';
16551717- meta = {
5656+ meta = with stdenv.lib; {
1857 homepage = "https://launchpad.net/byobu/";
1958 description = "Text-based window manager and terminal multiplexer";
20592160 longDescription =
2222- ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.
2323- It was originally designed to provide elegant enhancements to the otherwise functional,
2424- plain, practical GNU Screen, for the Ubuntu server distribution.
2525- Byobu now includes an enhanced profiles, convenient keybindings,
2626- configuration utilities, and toggle-able system status notifications for both
2727- the GNU Screen window manager and the more modern Tmux terminal multiplexer,
6161+ ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.
6262+ It was originally designed to provide elegant enhancements to the otherwise functional,
6363+ plain, practical GNU Screen, for the Ubuntu server distribution.
6464+ Byobu now includes an enhanced profiles, convenient keybindings,
6565+ configuration utilities, and toggle-able system status notifications for both
6666+ the GNU Screen window manager and the more modern Tmux terminal multiplexer,
2867 and works on most Linux, BSD, and Mac distributions.
2968 '';
30693131- license = stdenv.lib.licenses.gpl3;
7070+ license = licenses.gpl3;
32713333- platforms = stdenv.lib.platforms.unix;
3434- maintainers = [ stdenv.lib.maintainers.qknight ];
7272+ platforms = platforms.unix;
7373+ maintainers = with maintainers; [ qknight berbiche ];
3574 };
3675}
+2-2
pkgs/tools/misc/debianutils/default.nix
···2233stdenv.mkDerivation rec {
44 pname = "debianutils";
55- version = "4.11.1";
55+ version = "4.11.2";
6677 src = fetchurl {
88 url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
99- sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
99+ sha256 = "1pjh2s5f8qp8jaky2x08yvf125np0s48zb2z6f3h6x4vf20hws1v";
1010 };
11111212 meta = with stdenv.lib; {
+7-25
pkgs/tools/misc/flameshot/default.nix
···11-{ mkDerivation, lib, fetchFromGitHub, qtbase, qmake, qttools, qtsvg }:
11+{ mkDerivation, lib, fetchFromGitHub, qtbase, cmake, qttools, qtsvg }:
2233-# To use `flameshot gui`, you will also need to put flameshot in `services.dbus.packages`
44-# in configuration.nix so that the daemon gets launched properly:
55-#
66-# services.dbus.packages = [ pkgs.flameshot ];
77-# environment.systemPackages = [ pkgs.flameshot ];
83mkDerivation rec {
94 pname = "flameshot";
1010- version = "0.6.0";
55+ version = "0.8.4";
116127 src = fetchFromGitHub {
1313- owner = "lupoDharkael";
88+ owner = "flameshot-org";
149 repo = "flameshot";
1510 rev = "v${version}";
1616- sha256 = "193szslh55v44jzxzx5g9kxhl8p8di7vbcnxlid4acfidhnvgazm";
1111+ sha256 = "0nr50ma8l612drl2br084kb3xac7jqkqr41b26d4p9y7ylwk05yq";
1712 };
18131919- nativeBuildInputs = [ qmake qttools qtsvg ];
1414+ nativeBuildInputs = [ cmake qttools qtsvg ];
2015 buildInputs = [ qtbase ];
21162222- qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
2323-2424- preConfigure = ''
2525- # flameshot.pro assumes qmake is being run in a git checkout.
2626- git() { echo ${version}; }
2727- export -f git
2828- '';
2929-3030- postFixup = ''
3131- substituteInPlace $out/share/dbus-1/services/org.dharkael.Flameshot.service \
3232- --replace "/usr/local" "$out"
3333- '';
3434-3517 enableParallelBuilding = true;
36183719 meta = with lib; {
3820 description = "Powerful yet simple to use screenshot software";
3939- homepage = "https://github.com/lupoDharkael/flameshot";
2121+ homepage = "https://flameshot.js.org";
4022 maintainers = [ maintainers.scode ];
4141- license = lib.licenses.gpl3;
2323+ license = lib.licenses.gpl3Plus;
4224 platforms = lib.platforms.linux;
4325 };
4426}
···4444 '';
45454646 meta = with stdenv.lib; {
4747- description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
4747+ description = "A data pipeline that helps you process logs and other event data from a variety of systems";
4848 homepage = "https://www.elastic.co/products/logstash";
4949 license = if enableUnfree then licenses.elastic else licenses.asl20;
5050 platforms = platforms.unix;
···3636 '';
37373838 meta = {
3939- description = "Shallot allows you to create customized .onion addresses for your hidden service";
3939+ description = "Allows you to create customized .onion addresses for your hidden service";
40404141 license = stdenv.lib.licenses.mit;
4242 homepage = "https://github.com/katmagic/Shallot";
···35353636 meta = with lib; {
3737 homepage = "https://wooting.io/wootility";
3838- description = "Wootility is customization and management software for Wooting keyboards";
3838+ description = "A customization and management software for Wooting keyboards";
3939 platforms = [ "x86_64-linux" ];
4040 license = "unknown";
4141 maintainers = with maintainers; [ davidtwco ];
+1-1
pkgs/tools/misc/zsh-autoenv/default.nix
···19192020 cat <<SCRIPT > $out/bin/zsh-autoenv-share
2121 #!${runtimeShell}
2222- # Run this script to find the fzf shared folder where all the shell
2222+ # Run this script to find the zsh-autoenv shared folder where all the shell
2323 # integration scripts are living.
2424 echo $out/share/zsh-autoenv
2525 SCRIPT
+1-1
pkgs/tools/networking/bukubrow/default.nix
···3939 '';
40404141 meta = with stdenv.lib; {
4242- description = "Bukubrow is a WebExtension for Buku, a command-line bookmark manager";
4242+ description = "A WebExtension for Buku, a command-line bookmark manager";
4343 homepage = "https://github.com/SamHH/bukubrow-host";
4444 license = licenses.gpl3;
4545 maintainers = with maintainers; [ infinisil ];
+1-1
pkgs/tools/networking/corerad/default.nix
···33333434 meta = with stdenv.lib; {
3535 homepage = "https://github.com/mdlayher/corerad";
3636- description = "CoreRAD extensible and observable IPv6 NDP RA daemon";
3636+ description = "Extensible and observable IPv6 NDP RA daemon";
3737 license = licenses.asl20;
3838 maintainers = with maintainers; [ mdlayher ];
3939 };
+6-1
pkgs/tools/networking/croc/default.nix
···11-{ stdenv, buildGoModule, fetchFromGitHub }:
11+{ stdenv, buildGoModule, fetchFromGitHub, callPackage}:
2233buildGoModule rec {
44 pname = "croc";
···17171818 subPackages = [ "." ];
19192020+ passthru = {
2121+ tests = {
2222+ local-relay = callPackage ./test-local-relay.nix {};
2323+ };
2424+ };
2025 meta = with stdenv.lib; {
2126 description =
2227 "Easily and securely send things from one computer to another";
···1616 doCheck = false;
17171818 meta = with lib; {
1919- description = "Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
1919+ description = "Frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
2020 homepage = "https://curlie.io/";
2121 maintainers = with maintainers; [ ma27 ];
2222 license = licenses.mit;
+1-1
pkgs/tools/networking/dnstracer/default.nix
···2525 NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lresolv";
26262727 meta = with stdenv.lib; {
2828- description = "Dnstracer determines where a given Domain Name Server (DNS) gets its information from, and follows the chain of DNS servers back to the servers which know the data";
2828+ description = "Determines where a given Domain Name Server (DNS) gets its information from, and follows the chain of DNS servers back to the servers which know the data";
2929 homepage = "http://www.mavetju.org/unix/general.php";
3030 license = licenses.bsd2;
3131 maintainers = with maintainers; [ andir ];
+1-1
pkgs/tools/networking/driftnet/default.nix
···2222 };
23232424 meta = {
2525- description = "Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display";
2525+ description = "Watches network traffic, and picks out and displays JPEG and GIF images for display";
2626 homepage = "https://github.com/deiv/driftnet";
2727 maintainers = with maintainers; [ offline ];
2828 platforms = platforms.linux;
+1-1
pkgs/tools/networking/goreplay/default.nix
···1919 meta = {
2020 homepage = "https://github.com/buger/goreplay";
2121 license = stdenv.lib.licenses.lgpl3Only;
2222- description = "GoReplay is an open-source tool for capturing and replaying live HTTP traffic";
2222+ description = "Open-source tool for capturing and replaying live HTTP traffic";
2323 platforms = stdenv.lib.platforms.unix;
2424 maintainers = with stdenv.lib.maintainers; [ lovek323 ];
2525 };
···3535 passthru.updateScript = ./update.sh;
36363737 meta = {
3838- description = "ngrok";
3939- longDescription = ''
4040- Allows you to expose a web server running on your local machine to the internet.
4141- '';
3838+ description = "Allows you to expose a web server running on your local machine to the internet";
4239 homepage = "https://ngrok.com/";
4340 license = licenses.unfree;
4441 platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+1-1
pkgs/tools/networking/pmacct/default.nix
···5252 ++ optional withMysql "--enable-mysql";
53535454 meta = with stdenv.lib; {
5555- description = "pmacct is a small set of multi-purpose passive network monitoring tools";
5555+ description = "A small set of multi-purpose passive network monitoring tools";
5656 longDescription = ''
5757 pmacct is a small set of multi-purpose passive network monitoring tools
5858 [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry]
···3535 outputs = [ "out" "lib" ];
36363737 meta = with lib; {
3838- description = "Morph is a NixOS host manager written in Golang";
3838+ description = "A NixOS host manager written in Golang";
3939 license = licenses.mit;
4040 homepage = "https://github.com/dbcdk/morph";
4141 maintainers = with maintainers; [adamt johanot];
···6161 '';
62626363 meta = with stdenv.lib; {
6464- description = "acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
6464+ description = "A PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
6565 longDescription = ''
6666 acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card
6767 readers. This library provides a PC/SC IFD handler implementation and
+2-2
pkgs/tools/security/bitwarden/default.nix
···1717 pname = "bitwarden";
18181919 version = {
2020- x86_64-linux = "1.22.1";
2020+ x86_64-linux = "1.22.2";
2121 }.${system} or "";
22222323 sha256 = {
2424- x86_64-linux = "1pbcrkafyjjcsd27s99g511llkz05d9qkny7g15wp6piyyv89k3n";
2424+ x86_64-linux = "1yx550whld0dg3b10x57r2nzizydla4i40zqqm6dzd3wic8yi365";
2525 }.${system} or "";
26262727 meta = with stdenv.lib; {
+1-1
pkgs/tools/security/fpm2/default.nix
···1717 buildInputs = [ gnupg gtk2 libxml2 intltool ];
18181919 meta = {
2020- description = "FPM2 is GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
2020+ description = "GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
2121 homepage = "https://als.regnet.cz/fpm2/";
2222 license = licenses.gpl2;
2323 platforms = platforms.linux;
···3636 '';
37373838 meta = with stdenv.lib; {
3939- description = "Notary is a project that allows anyone to have trust over arbitrary collections of data";
3939+ description = "A project that allows anyone to have trust over arbitrary collections of data";
4040 longDescription = ''
4141 The Notary project comprises a server and a client for running and
4242 interacting with trusted collections. See the service architecture
···3939 description = "Tool for ssh server auditing";
4040 homepage = "https://github.com/jtesta/ssh-audit";
4141 license = licenses.mit;
4242+ platforms = platforms.all;
4243 maintainers = with maintainers; [ tv SuperSandro2000 ];
4344 };
4445}
+1-1
pkgs/tools/security/sshguard/default.nix
···1616 configureFlags = [ "--sysconfdir=/etc" ];
17171818 meta = with stdenv.lib; {
1919- description = "SSHGuard protects hosts from brute-force attacks";
1919+ description = "Protects hosts from brute-force attacks";
2020 longDescription = ''
2121 SSHGuard can read log messages from various input sources. Log messages are parsed, line-by-line, for recognized patterns.
2222 If an attack, such as several login failures within a few seconds, is detected, the offending IP is blocked.
+1-1
pkgs/tools/system/daemon/default.nix
···1010 buildInputs = [ perl ];
11111212 meta = {
1313- description = "Daemon turns other process into daemons";
1313+ description = "Turns other processes into daemons";
1414 longDescription = ''
1515 Daemon turns other process into daemons. There are many tasks that need
1616 to be performed to correctly set up a daemon process. This can be tedious.
+1-1
pkgs/tools/system/jump/default.nix
···2828 '';
29293030 meta = with lib; {
3131- description = "Jump helps you navigate faster by learning your habits";
3131+ description = "Navigate directories faster by learning your habits";
3232 longDescription = ''
3333 Jump integrates with the shell and learns about your
3434 navigational habits by keeping track of the directories you visit. It
···1111 makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];
12121313 meta = with stdenv.lib; {
1414- description =
1515- "Tool for waiting until a particular time and then running a command.";
1414+ description = "Tool for waiting until a particular time and then running a command";
1615 maintainers = with maintainers; [ kaction ];
1716 license = licenses.cc0;
1817 platforms = platforms.linux;
+1-1
pkgs/tools/system/testdisk/default.nix
···4646 meta = with stdenv.lib; {
4747 homepage = "https://www.cgsecurity.org/wiki/Main_Page";
4848 downloadPage = "https://www.cgsecurity.org/wiki/TestDisk_Download";
4949- description = "Testdisk / Photorec - Data recovery utilities";
4949+ description = "Data recovery utilities";
5050 longDescription = ''
5151 TestDisk is a powerful free data recovery software. It was primarily
5252 designed to help recover lost partitions and/or make non-booting disks
+2-1
pkgs/tools/system/thinkfan/default.nix
···3535 '';
36363737 meta = with stdenv.lib; {
3838- description = "A minimalist fan control program. Originally designed
3838+ description = "A minimalist fan control program";
3939+ longDescription = "A minimalist fan control program. Originally designed
3940specifically for IBM/Lenovo Thinkpads, it now supports any kind of system via
4041the sysfs hwmon interface (/sys/class/hwmon).";
4142 license = licenses.gpl3;
+1-1
pkgs/tools/text/jsawk/default.nix
···1919 '';
20202121 meta = {
2222- description = "Jsawk is like awk, but for JSON";
2222+ description = "Like awk, but for JSON";
2323 homepage = "https://github.com/micha/jsawk";
2424 license = stdenv.lib.licenses.publicDomain;
2525 maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
···1515 nativeBuildInputs = [ autoreconfHook flex libtool ];
16161717 meta = with stdenv.lib; {
1818- description = "Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON";
1818+ description = "Like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON";
1919 homepage = "http://johnkerl.org/miller/";
2020 license = licenses.bsd2;
2121 maintainers = with maintainers; [ mstarzyk ];
+1-1
pkgs/tools/text/sift/default.nix
···1717 goDeps = ./deps.nix;
18181919 meta = with lib; {
2020- description = "sift is a fast and powerful alternative to grep";
2020+ description = "A fast and powerful alternative to grep";
2121 homepage = "https://sift-tool.org";
2222 maintainers = [ maintainers.carlsverre ];
2323 license = licenses.gpl3;
···2233stdenv.mkDerivation rec {
44 pname = "asciidoctorj";
55- version = "2.4.0";
55+ version = "2.4.1";
6677 src = fetchzip {
88 url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
99- sha256 = "1bp26x5mhbl25s9djlq6yani1vaqrgbi5mjljhwhj97iapwsd0yb";
99+ sha256 = "1m00cdg1520ampg3i2j64si8gmwph7j4189agjlimx3fjjsp3xrh";
1010 };
11111212 nativeBuildInputs = [ makeWrapper ];
···1919 '';
20202121 meta = with stdenv.lib; {
2222- description = ''
2323- AsciidoctorJ is the official library for running Asciidoctor on the JVM.
2424- '';
2222+ description = "Official library for running Asciidoctor on the JVM";
2523 longDescription = ''
2626- AsciidoctorJ is the official library for running Asciidoctor on the JVM.
2727- Using AsciidoctorJ, you can convert AsciiDoc content or analyze the
2828- structure of a parsed AsciiDoc document from Java and other JVM
2424+ AsciidoctorJ is the official library for running Asciidoctor on the JVM.
2525+ Using AsciidoctorJ, you can convert AsciiDoc content or analyze the
2626+ structure of a parsed AsciiDoc document from Java and other JVM
2927 languages.
3028 '';
3129 homepage = "https://asciidoctor.org/docs/asciidoctorj/";
···3331 platforms = platforms.all;
3432 maintainers = with maintainers; [ moaxcp ];
3533 };
3636-}
3434+}
+9-9
pkgs/tools/typesetting/rubber/default.nix
···99 sha256 = "178dmrp0mza5gqjiqgk6dqs0c10s0c517pk6k9pjbam86vf47a1p";
1010 };
11111212- nativeBuildInputs = [ texinfo ];
1313-1414- # I couldn't figure out how to pass the proper parameter to disable pdf generation, so we
1515- # use sed to change the default
1616- preBuild = ''
1717- sed -i -r 's/pdf\s+= True/pdf = False/g' setup.py
1212+ # I'm sure there is a better way to pass these parameters to the build script...
1313+ postPatch = ''
1414+ substituteInPlace setup.py \
1515+ --replace 'pdf = True' 'pdf = False' \
1616+ --replace '$base/man' 'share/man' \
1717+ --replace '$base/info' 'share/info' \
1818+ --replace '$base/share' 'share'
1819 '';
19202020- # the check scripts forces python2. If we need to use python3 at some point, we should use
2121- # the correct python
2121+ nativeBuildInputs = [ texinfo ];
2222+2223 checkPhase = ''
2323- sed -i 's|python=python3|python=${python3Packages.python.interpreter}|' tests/run.sh
2424 cd tests && ${stdenv.shell} run.sh
2525 '';
2626
+1-1
pkgs/tools/typesetting/ted/default.nix
···6161 buildInputs = [ pkgconfig zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper makeWrapper ];
62626363 meta = with stdenv.lib; {
6464- description = "Ted, an easy rich text processor";
6464+ description = "An easy rich text processor";
6565 longDescription = ''
6666 Ted is a text processor running under X Windows on Unix/Linux systems.
6767 Ted was developed as a standard easy light weight word processor, having