Merge master into haskell-updates
This commit is contained in:
commit
f812f1aa6a
216 changed files with 2649 additions and 4851 deletions
1
.github/ISSUE_TEMPLATE/bug_report.md
vendored
1
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -26,6 +26,7 @@ If applicable, add screenshots to help explain your problem.
|
|||
Add any other context about the problem here.
|
||||
|
||||
### Notify maintainers
|
||||
|
||||
<!--
|
||||
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||
If in doubt, check `git blame` for whoever last touched something.
|
||||
|
|
7
.github/ISSUE_TEMPLATE/build_failure.md
vendored
7
.github/ISSUE_TEMPLATE/build_failure.md
vendored
|
@ -1,31 +1,36 @@
|
|||
---
|
||||
name: Build failure
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
title: 'Build failure: PACKAGENAME'
|
||||
labels: '0.kind: build failure'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Steps To Reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
1. build *X*
|
||||
|
||||
### Build log
|
||||
|
||||
```
|
||||
log here if short otherwise a link to a gist
|
||||
```
|
||||
|
||||
### Additional context
|
||||
|
||||
Add any other context about the problem here.
|
||||
|
||||
### Notify maintainers
|
||||
|
||||
<!--
|
||||
Please @ people who are in the `meta.maintainers` list of the offending package or module.
|
||||
If in doubt, check `git blame` for whoever last touched something.
|
||||
-->
|
||||
|
||||
### Metadata
|
||||
|
||||
Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
|
||||
|
||||
```console
|
||||
|
|
10
.github/ISSUE_TEMPLATE/missing_documentation.md
vendored
10
.github/ISSUE_TEMPLATE/missing_documentation.md
vendored
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: Missing or incorrect documentation
|
||||
about: Help us improve the Nixpkgs and NixOS reference manuals
|
||||
title: ''
|
||||
title: 'Documentation: '
|
||||
labels: '9.needs: documentation'
|
||||
assignees: ''
|
||||
|
||||
|
@ -11,6 +11,10 @@ assignees: ''
|
|||
|
||||
<!-- describe your problem -->
|
||||
|
||||
## Proposal
|
||||
|
||||
<!-- propose a solution (optional) -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- make sure this issue is not redundant or obsolete -->
|
||||
|
@ -26,7 +30,3 @@ assignees: ''
|
|||
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
|
||||
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22
|
||||
|
||||
## Proposal
|
||||
|
||||
<!-- propose a solution -->
|
||||
|
||||
|
|
|
@ -1,24 +1,17 @@
|
|||
---
|
||||
name: Out-of-date package reports
|
||||
about: For packages that are out-of-date
|
||||
title: ''
|
||||
title: 'Update request: PACKAGENAME OLDVERSION → NEWVERSION'
|
||||
labels: '9.needs: package (update)'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
||||
###### Checklist
|
||||
|
||||
<!-- Note that these are hard requirements -->
|
||||
|
||||
<!--
|
||||
You can use the "Go to file" functionality on GitHub to find the package
|
||||
Then you can go to the history for this package
|
||||
Find the latest "package_name: old_version -> new_version" commit
|
||||
The "new_version" is the current version of the package
|
||||
-->
|
||||
- [ ] Checked the [nixpkgs master branch](https://github.com/NixOS/nixpkgs)
|
||||
- Package name:
|
||||
- Latest released version:
|
||||
<!-- Search your package here: https://search.nixos.org/packages?channel=unstable -->
|
||||
- Current version on the unstable channel:
|
||||
- Current version on the stable/release channel:
|
||||
<!--
|
||||
Type the name of your package and try to find an open pull request for the package
|
||||
If you find an open pull request, you can review it!
|
||||
|
@ -26,23 +19,10 @@ There's a high chance that you'll have the new version right away while helping
|
|||
-->
|
||||
- [ ] Checked the [nixpkgs pull requests](https://github.com/NixOS/nixpkgs/pulls)
|
||||
|
||||
###### Project name
|
||||
`nix search` name:
|
||||
<!--
|
||||
The current version can be found easily with the same process as above for checking the master branch
|
||||
If an open PR is present for the package, take this version as the current one and link to the PR
|
||||
-->
|
||||
current version:
|
||||
desired version:
|
||||
**Notify maintainers**
|
||||
|
||||
###### Notify maintainers
|
||||
<!--
|
||||
Search your package here: https://search.nixos.org/packages?channel=unstable
|
||||
If no maintainer is listed for your package, tag the person that last updated the package
|
||||
-->
|
||||
<!-- If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->
|
||||
|
||||
maintainers:
|
||||
-----
|
||||
|
||||
###### Note for maintainers
|
||||
|
||||
Please tag this issue in your PR.
|
||||
Note for maintainers: Please tag this issue in your PR.
|
||||
|
|
5
.github/ISSUE_TEMPLATE/packaging_request.md
vendored
5
.github/ISSUE_TEMPLATE/packaging_request.md
vendored
|
@ -1,14 +1,15 @@
|
|||
---
|
||||
name: Packaging requests
|
||||
about: For packages that are missing
|
||||
title: ''
|
||||
title: 'Package request: PACKAGENAME'
|
||||
labels: '0.kind: packaging request'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Project description**
|
||||
_describe the project a little_
|
||||
|
||||
<!-- Describe the project a little: -->
|
||||
|
||||
**Metadata**
|
||||
|
||||
|
|
|
@ -204,13 +204,13 @@ The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _s
|
|||
|
||||
In Nixpkgs, there are generally three different names associated with a package:
|
||||
|
||||
- The `name` attribute of the derivation (excluding the version part). This is what most users see, in particular when using `nix-env`.
|
||||
- The `pname` attribute of the derivation. This is what most users see, in particular when using `nix-env`.
|
||||
|
||||
- The variable name used for the instantiated package in `all-packages.nix`, and when passing it as a dependency to other functions. Typically this is called the _package attribute name_. This is what Nix expression authors see. It can also be used when installing using `nix-env -iA`.
|
||||
|
||||
- The filename for (the directory containing) the Nix expression.
|
||||
|
||||
Most of the time, these are the same. For instance, the package `e2fsprogs` has a `name` attribute `"e2fsprogs-version"`, is bound to the variable name `e2fsprogs` in `all-packages.nix`, and the Nix expression is in `pkgs/os-specific/linux/e2fsprogs/default.nix`.
|
||||
Most of the time, these are the same. For instance, the package `e2fsprogs` has a `pname` attribute `"e2fsprogs"`, is bound to the variable name `e2fsprogs` in `all-packages.nix`, and the Nix expression is in `pkgs/os-specific/linux/e2fsprogs/default.nix`.
|
||||
|
||||
There are a few naming guidelines:
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
|
||||
let
|
||||
lib = pkgs.lib;
|
||||
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
|
||||
in pkgs.stdenv.mkDerivation {
|
||||
name = "nixpkgs-manual";
|
||||
|
@ -15,7 +14,7 @@ in pkgs.stdenv.mkDerivation {
|
|||
xmlformat
|
||||
];
|
||||
|
||||
src = lib.cleanSource ./.;
|
||||
src = pkgs.nix-gitignore.gitignoreSource [] ./.;
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${doc-support} ./doc-support/result
|
||||
|
|
|
@ -626,7 +626,7 @@ Before and after running `make`, the hooks `preBuild` and `postBuild` are called
|
|||
|
||||
### The check phase {#ssec-check-phase}
|
||||
|
||||
The check phase checks whether the package was built correctly by running its test suite. The default `checkPhase` calls `make $checkTarget`, but only if the `doCheck` variable is enabled (see below).
|
||||
The check phase checks whether the package was built correctly by running its test suite. The default `checkPhase` calls `make $checkTarget`, but only if the [`doCheck` variable](#var-stdenv-doCheck) is enabled.
|
||||
|
||||
#### Variables controlling the check phase {#variables-controlling-the-check-phase}
|
||||
|
||||
|
@ -646,7 +646,8 @@ See the [build phase](#var-stdenv-makeFlags) for details.
|
|||
|
||||
##### `checkTarget` {#var-stdenv-checkTarget}
|
||||
|
||||
The make target that runs the tests. Defaults to `check` if it exists, otherwise `test`; if neither is found, do nothing.
|
||||
The `make` target that runs the tests.
|
||||
If unset, use `check` if it exists, otherwise `test`; if neither is found, do nothing.
|
||||
|
||||
##### `checkFlags` / `checkFlagsArray` {#var-stdenv-checkFlags}
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ let
|
|||
updateManyAttrsByPath;
|
||||
inherit (self.lists) singleton forEach foldr fold foldl foldl' imap0 imap1
|
||||
concatMap flatten remove findSingle findFirst any all count
|
||||
optional optionals toList range partition zipListsWith zipLists
|
||||
optional optionals toList range replicate partition zipListsWith zipLists
|
||||
reverseList listDfs toposort sort naturalSort compareLists take
|
||||
drop sublist last init crossLists unique intersectLists
|
||||
subtractLists mutuallyExclusive groupBy groupBy';
|
||||
|
|
|
@ -343,6 +343,13 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
ecl20 = {
|
||||
fullName = "Educational Community License, Version 2.0";
|
||||
url = "https://opensource.org/licenses/ECL-2.0";
|
||||
shortName = "ECL 2.0";
|
||||
spdxId = "ECL-2.0";
|
||||
};
|
||||
|
||||
efl10 = {
|
||||
spdxId = "EFL-1.0";
|
||||
fullName = "Eiffel Forum License v1.0";
|
||||
|
|
|
@ -303,6 +303,18 @@ rec {
|
|||
else
|
||||
genList (n: first + n) (last - first + 1);
|
||||
|
||||
/* Return a list with `n` copies of an element.
|
||||
|
||||
Type: replicate :: int -> a -> [a]
|
||||
|
||||
Example:
|
||||
replicate 3 "a"
|
||||
=> [ "a" "a" "a" ]
|
||||
replicate 2 true
|
||||
=> [ true true ]
|
||||
*/
|
||||
replicate = n: elem: genList (_: elem) n;
|
||||
|
||||
/* Splits the elements of a list in two lists, `right` and
|
||||
`wrong`, depending on the evaluation of a predicate.
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ let
|
|||
|
||||
inherit (builtins)
|
||||
isString
|
||||
isPath
|
||||
split
|
||||
match
|
||||
;
|
||||
|
@ -25,6 +26,10 @@ let
|
|||
assertMsg
|
||||
;
|
||||
|
||||
inherit (lib.path.subpath)
|
||||
isValid
|
||||
;
|
||||
|
||||
# Return the reason why a subpath is invalid, or `null` if it's valid
|
||||
subpathInvalidReason = value:
|
||||
if ! isString value then
|
||||
|
@ -94,6 +99,52 @@ let
|
|||
|
||||
in /* No rec! Add dependencies on this file at the top. */ {
|
||||
|
||||
/* Append a subpath string to a path.
|
||||
|
||||
Like `path + ("/" + string)` but safer, because it errors instead of returning potentially surprising results.
|
||||
More specifically, it checks that the first argument is a [path value type](https://nixos.org/manual/nix/stable/language/values.html#type-path"),
|
||||
and that the second argument is a valid subpath string (see `lib.path.subpath.isValid`).
|
||||
|
||||
Type:
|
||||
append :: Path -> String -> Path
|
||||
|
||||
Example:
|
||||
append /foo "bar/baz"
|
||||
=> /foo/bar/baz
|
||||
|
||||
# subpaths don't need to be normalised
|
||||
append /foo "./bar//baz/./"
|
||||
=> /foo/bar/baz
|
||||
|
||||
# can append to root directory
|
||||
append /. "foo/bar"
|
||||
=> /foo/bar
|
||||
|
||||
# first argument needs to be a path value type
|
||||
append "/foo" "bar"
|
||||
=> <error>
|
||||
|
||||
# second argument needs to be a valid subpath string
|
||||
append /foo /bar
|
||||
=> <error>
|
||||
append /foo ""
|
||||
=> <error>
|
||||
append /foo "/bar"
|
||||
=> <error>
|
||||
append /foo "../bar"
|
||||
=> <error>
|
||||
*/
|
||||
append =
|
||||
# The absolute path to append to
|
||||
path:
|
||||
# The subpath string to append
|
||||
subpath:
|
||||
assert assertMsg (isPath path) ''
|
||||
lib.path.append: The first argument is of type ${builtins.typeOf path}, but a path was expected'';
|
||||
assert assertMsg (isValid subpath) ''
|
||||
lib.path.append: Second argument is not a valid subpath string:
|
||||
${subpathInvalidReason subpath}'';
|
||||
path + ("/" + subpath);
|
||||
|
||||
/* Whether a value is a valid subpath string.
|
||||
|
||||
|
@ -133,7 +184,9 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
|||
subpath.isValid "./foo//bar/"
|
||||
=> true
|
||||
*/
|
||||
subpath.isValid = value:
|
||||
subpath.isValid =
|
||||
# The value to check
|
||||
value:
|
||||
subpathInvalidReason value == null;
|
||||
|
||||
|
||||
|
@ -150,11 +203,11 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
|||
|
||||
Laws:
|
||||
|
||||
- (Idempotency) Normalising multiple times gives the same result:
|
||||
- Idempotency - normalising multiple times gives the same result:
|
||||
|
||||
subpath.normalise (subpath.normalise p) == subpath.normalise p
|
||||
|
||||
- (Uniqueness) There's only a single normalisation for the paths that lead to the same file system node:
|
||||
- Uniqueness - there's only a single normalisation for the paths that lead to the same file system node:
|
||||
|
||||
subpath.normalise p != subpath.normalise q -> $(realpath ${p}) != $(realpath ${q})
|
||||
|
||||
|
@ -210,9 +263,12 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
|||
subpath.normalise "/foo"
|
||||
=> <error>
|
||||
*/
|
||||
subpath.normalise = path:
|
||||
assert assertMsg (subpathInvalidReason path == null)
|
||||
"lib.path.subpath.normalise: Argument is not a valid subpath string: ${subpathInvalidReason path}";
|
||||
joinRelPath (splitRelPath path);
|
||||
subpath.normalise =
|
||||
# The subpath string to normalise
|
||||
subpath:
|
||||
assert assertMsg (isValid subpath) ''
|
||||
lib.path.subpath.normalise: Argument is not a valid subpath string:
|
||||
${subpathInvalidReason subpath}'';
|
||||
joinRelPath (splitRelPath subpath);
|
||||
|
||||
}
|
||||
|
|
|
@ -3,9 +3,44 @@
|
|||
{ libpath }:
|
||||
let
|
||||
lib = import libpath;
|
||||
inherit (lib.path) subpath;
|
||||
inherit (lib.path) append subpath;
|
||||
|
||||
cases = lib.runTests {
|
||||
# Test examples from the lib.path.append documentation
|
||||
testAppendExample1 = {
|
||||
expr = append /foo "bar/baz";
|
||||
expected = /foo/bar/baz;
|
||||
};
|
||||
testAppendExample2 = {
|
||||
expr = append /foo "./bar//baz/./";
|
||||
expected = /foo/bar/baz;
|
||||
};
|
||||
testAppendExample3 = {
|
||||
expr = append /. "foo/bar";
|
||||
expected = /foo/bar;
|
||||
};
|
||||
testAppendExample4 = {
|
||||
expr = (builtins.tryEval (append "/foo" "bar")).success;
|
||||
expected = false;
|
||||
};
|
||||
testAppendExample5 = {
|
||||
expr = (builtins.tryEval (append /foo /bar)).success;
|
||||
expected = false;
|
||||
};
|
||||
testAppendExample6 = {
|
||||
expr = (builtins.tryEval (append /foo "")).success;
|
||||
expected = false;
|
||||
};
|
||||
testAppendExample7 = {
|
||||
expr = (builtins.tryEval (append /foo "/bar")).success;
|
||||
expected = false;
|
||||
};
|
||||
testAppendExample8 = {
|
||||
expr = (builtins.tryEval (append /foo "../bar")).success;
|
||||
expected = false;
|
||||
};
|
||||
|
||||
# Test examples from the lib.path.subpath.isValid documentation
|
||||
testSubpathIsValidExample1 = {
|
||||
expr = subpath.isValid null;
|
||||
expected = false;
|
||||
|
@ -30,6 +65,7 @@ let
|
|||
expr = subpath.isValid "./foo//bar/";
|
||||
expected = true;
|
||||
};
|
||||
# Some extra tests
|
||||
testSubpathIsValidTwoDotsEnd = {
|
||||
expr = subpath.isValid "foo/..";
|
||||
expected = false;
|
||||
|
@ -71,6 +107,7 @@ let
|
|||
expected = true;
|
||||
};
|
||||
|
||||
# Test examples from the lib.path.subpath.normalise documentation
|
||||
testSubpathNormaliseExample1 = {
|
||||
expr = subpath.normalise "foo//bar";
|
||||
expected = "./foo/bar";
|
||||
|
@ -107,6 +144,7 @@ let
|
|||
expr = (builtins.tryEval (subpath.normalise "/foo")).success;
|
||||
expected = false;
|
||||
};
|
||||
# Some extra tests
|
||||
testSubpathNormaliseIsValidDots = {
|
||||
expr = subpath.normalise "./foo/.bar/.../baz...qux";
|
||||
expected = "./foo/.bar/.../baz...qux";
|
||||
|
|
|
@ -479,6 +479,11 @@ runTests {
|
|||
expected = [2 30 40 42];
|
||||
};
|
||||
|
||||
testReplicate = {
|
||||
expr = replicate 3 "a";
|
||||
expected = ["a" "a" "a"];
|
||||
};
|
||||
|
||||
testToIntShouldConvertStringToInt = {
|
||||
expr = toInt "27";
|
||||
expected = 27;
|
||||
|
|
|
@ -6071,6 +6071,12 @@
|
|||
githubId = 1592375;
|
||||
name = "Walter Huf";
|
||||
};
|
||||
hughobrien = {
|
||||
email = "github@hughobrien.ie";
|
||||
github = "hughobrien";
|
||||
githubId = 3400690;
|
||||
name = "Hugh O'Brien";
|
||||
};
|
||||
hugolgst = {
|
||||
email = "hugo.lageneste@pm.me";
|
||||
github = "hugolgst";
|
||||
|
|
|
@ -54,4 +54,4 @@ run this command to do the same thing.
|
|||
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
|
||||
```
|
||||
|
||||
A log-out and re-log will be needed for this to take effect.
|
||||
It is necessary to log out and log in again for this to take effect.
|
||||
|
|
|
@ -48,7 +48,7 @@ let
|
|||
};
|
||||
in buildPackages.nixosOptionsDoc {
|
||||
inherit (eval) options;
|
||||
inherit (revision);
|
||||
inherit revision;
|
||||
transformOptions = opt: opt // {
|
||||
# Clean up declaration sites to not refer to the NixOS source tree.
|
||||
declarations =
|
||||
|
|
|
@ -63,7 +63,8 @@ Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with db
|
|||
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
|
||||
</programlisting>
|
||||
<para>
|
||||
A log-out and re-log will be needed for this to take effect.
|
||||
It is necessary to log out and log in again for this to take
|
||||
effect.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
|
|
@ -116,8 +116,8 @@
|
|||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://dm3mat.darc.de/qdmr/">QDMR</link>, a
|
||||
gui application and command line tool for programming cheap
|
||||
DMR radios
|
||||
GUI application and command line tool for programming DMR
|
||||
radios
|
||||
<link linkend="opt-programs.qdmr.enable">programs.qdmr</link>
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -577,8 +577,8 @@
|
|||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>services.openssh.cyphers</literal> to
|
||||
<literal>services.openssh.settings.Cyphers</literal>
|
||||
<literal>services.openssh.ciphers</literal> to
|
||||
<literal>services.openssh.settings.Ciphers</literal>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
|
|
@ -38,7 +38,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [mmsd](https://gitlab.com/kop316/mmsd), a lower level daemon that transmits and recieves MMSes. Available as [services.mmsd](#opt-services.mmsd.enable).
|
||||
|
||||
- [QDMR](https://dm3mat.darc.de/qdmr/), a gui application and command line tool for programming cheap DMR radios [programs.qdmr](#opt-programs.qdmr.enable)
|
||||
- [QDMR](https://dm3mat.darc.de/qdmr/), a GUI application and command line tool for programming DMR radios [programs.qdmr](#opt-programs.qdmr.enable)
|
||||
|
||||
- [v2rayA](https://v2raya.org), a Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel. Available as [services.v2raya](options.html#opt-services.v2raya.enable).
|
||||
|
||||
|
@ -137,7 +137,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
- `services.openssh.logLevel` to `services.openssh.settings.LogLevel`
|
||||
- `services.openssh.kexAlgorithms` to `services.openssh.settings.KexAlgorithms`
|
||||
- `services.openssh.macs` to `services.openssh.settings.Macs`
|
||||
- `services.openssh.cyphers` to `services.openssh.settings.Cyphers`
|
||||
- `services.openssh.ciphers` to `services.openssh.settings.Ciphers`
|
||||
- `services.openssh.gatewayPorts` to `services.openssh.settings.GatewayPorts`
|
||||
|
||||
- `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from contextlib import _GeneratorContextManager
|
||||
from contextlib import _GeneratorContextManager, nullcontext
|
||||
from pathlib import Path
|
||||
from queue import Queue
|
||||
from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple
|
||||
|
@ -406,25 +406,23 @@ class Machine:
|
|||
return rootlog.nested(msg, my_attrs)
|
||||
|
||||
def wait_for_monitor_prompt(self) -> str:
|
||||
with self.nested("waiting for monitor prompt"):
|
||||
assert self.monitor is not None
|
||||
answer = ""
|
||||
while True:
|
||||
undecoded_answer = self.monitor.recv(1024)
|
||||
if not undecoded_answer:
|
||||
break
|
||||
answer += undecoded_answer.decode()
|
||||
if answer.endswith("(qemu) "):
|
||||
break
|
||||
return answer
|
||||
assert self.monitor is not None
|
||||
answer = ""
|
||||
while True:
|
||||
undecoded_answer = self.monitor.recv(1024)
|
||||
if not undecoded_answer:
|
||||
break
|
||||
answer += undecoded_answer.decode()
|
||||
if answer.endswith("(qemu) "):
|
||||
break
|
||||
return answer
|
||||
|
||||
def send_monitor_command(self, command: str) -> str:
|
||||
self.run_callbacks()
|
||||
with self.nested(f"sending monitor command: {command}"):
|
||||
message = f"{command}\n".encode()
|
||||
assert self.monitor is not None
|
||||
self.monitor.send(message)
|
||||
return self.wait_for_monitor_prompt()
|
||||
message = f"{command}\n".encode()
|
||||
assert self.monitor is not None
|
||||
self.monitor.send(message)
|
||||
return self.wait_for_monitor_prompt()
|
||||
|
||||
def wait_for_unit(
|
||||
self, unit: str, user: Optional[str] = None, timeout: int = 900
|
||||
|
@ -547,7 +545,7 @@ class Machine:
|
|||
self.shell.send("echo ${PIPESTATUS[0]}\n".encode())
|
||||
rc = int(self._next_newline_closed_block_from_shell().strip())
|
||||
|
||||
return (rc, output.decode())
|
||||
return (rc, output.decode(errors="replace"))
|
||||
|
||||
def shell_interact(self, address: Optional[str] = None) -> None:
|
||||
"""Allows you to interact with the guest shell for debugging purposes.
|
||||
|
@ -685,9 +683,9 @@ class Machine:
|
|||
retry(tty_matches)
|
||||
|
||||
def send_chars(self, chars: str, delay: Optional[float] = 0.01) -> None:
|
||||
with self.nested(f"sending keys '{chars}'"):
|
||||
with self.nested(f"sending keys {repr(chars)}"):
|
||||
for char in chars:
|
||||
self.send_key(char, delay)
|
||||
self.send_key(char, delay, log=False)
|
||||
|
||||
def wait_for_file(self, filename: str) -> None:
|
||||
"""Waits until the file exists in machine's file system."""
|
||||
|
@ -860,11 +858,15 @@ class Machine:
|
|||
if matches is not None:
|
||||
return
|
||||
|
||||
def send_key(self, key: str, delay: Optional[float] = 0.01) -> None:
|
||||
def send_key(
|
||||
self, key: str, delay: Optional[float] = 0.01, log: Optional[bool] = True
|
||||
) -> None:
|
||||
key = CHAR_TO_KEY.get(key, key)
|
||||
self.send_monitor_command(f"sendkey {key}")
|
||||
if delay is not None:
|
||||
time.sleep(delay)
|
||||
context = self.nested(f"sending key {repr(key)}") if log else nullcontext()
|
||||
with context:
|
||||
self.send_monitor_command(f"sendkey {key}")
|
||||
if delay is not None:
|
||||
time.sleep(delay)
|
||||
|
||||
def send_console(self, chars: str) -> None:
|
||||
assert self.process
|
||||
|
|
|
@ -32,8 +32,7 @@ in
|
|||
};
|
||||
|
||||
swapDevices = lib.mkOption {
|
||||
default = 0;
|
||||
example = 1;
|
||||
default = 1;
|
||||
type = lib.types.int;
|
||||
description = lib.mdDoc ''
|
||||
Number of zram devices to be used as swap, recommended is 1.
|
||||
|
|
|
@ -21,7 +21,8 @@ let
|
|||
pCfg = cfg.prime;
|
||||
syncCfg = pCfg.sync;
|
||||
offloadCfg = pCfg.offload;
|
||||
primeEnabled = syncCfg.enable || offloadCfg.enable;
|
||||
reverseSyncCfg = pCfg.reverseSync;
|
||||
primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable;
|
||||
nvidiaPersistencedEnabled = cfg.nvidiaPersistenced;
|
||||
nvidiaSettings = cfg.nvidiaSettings;
|
||||
busIDType = types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?";
|
||||
|
@ -31,7 +32,8 @@ in
|
|||
imports =
|
||||
[
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "optimus_prime" "enable" ] [ "hardware" "nvidia" "prime" "sync" "enable" ])
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "optimus_prime" "allowExternalGpu" ] [ "hardware" "nvidia" "prime" "sync" "allowExternalGpu" ])
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "optimus_prime" "allowExternalGpu" ] [ "hardware" "nvidia" "prime" "allowExternalGpu" ])
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "prime" "sync" "allowExternalGpu" ] [ "hardware" "nvidia" "prime" "allowExternalGpu" ])
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "optimus_prime" "nvidiaBusId" ] [ "hardware" "nvidia" "prime" "nvidiaBusId" ])
|
||||
(mkRenamedOptionModule [ "hardware" "nvidia" "optimus_prime" "intelBusId" ] [ "hardware" "nvidia" "prime" "intelBusId" ])
|
||||
];
|
||||
|
@ -104,16 +106,17 @@ in
|
|||
description = lib.mdDoc ''
|
||||
Enable NVIDIA Optimus support using the NVIDIA proprietary driver via PRIME.
|
||||
If enabled, the NVIDIA GPU will be always on and used for all rendering,
|
||||
while enabling output to displays attached only to the integrated Intel GPU
|
||||
without a multiplexer.
|
||||
while enabling output to displays attached only to the integrated Intel/AMD
|
||||
GPU without a multiplexer.
|
||||
|
||||
Note that this option only has any effect if the "nvidia" driver is specified
|
||||
in {option}`services.xserver.videoDrivers`, and it should preferably
|
||||
be the only driver there.
|
||||
|
||||
If this is enabled, then the bus IDs of the NVIDIA and Intel GPUs have to be
|
||||
specified ({option}`hardware.nvidia.prime.nvidiaBusId` and
|
||||
{option}`hardware.nvidia.prime.intelBusId`).
|
||||
If this is enabled, then the bus IDs of the NVIDIA and Intel/AMD GPUs have to
|
||||
be specified ({option}`hardware.nvidia.prime.nvidiaBusId` and
|
||||
{option}`hardware.nvidia.prime.intelBusId` or
|
||||
{option}`hardware.nvidia.prime.amdgpuBusId`).
|
||||
|
||||
If you enable this, you may want to also enable kernel modesetting for the
|
||||
NVIDIA driver ({option}`hardware.nvidia.modesetting.enable`) in order
|
||||
|
@ -125,11 +128,11 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
hardware.nvidia.prime.sync.allowExternalGpu = mkOption {
|
||||
hardware.nvidia.prime.allowExternalGpu = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Configure X to allow external NVIDIA GPUs when using optimus.
|
||||
Configure X to allow external NVIDIA GPUs when using Prime [Reverse] sync optimus.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -139,9 +142,54 @@ in
|
|||
description = lib.mdDoc ''
|
||||
Enable render offload support using the NVIDIA proprietary driver via PRIME.
|
||||
|
||||
If this is enabled, then the bus IDs of the NVIDIA and Intel GPUs have to be
|
||||
specified ({option}`hardware.nvidia.prime.nvidiaBusId` and
|
||||
{option}`hardware.nvidia.prime.intelBusId`).
|
||||
If this is enabled, then the bus IDs of the NVIDIA and Intel/AMD GPUs have to
|
||||
be specified ({option}`hardware.nvidia.prime.nvidiaBusId` and
|
||||
{option}`hardware.nvidia.prime.intelBusId` or
|
||||
{option}`hardware.nvidia.prime.amdgpuBusId`).
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.nvidia.prime.offload.enableOffloadCmd = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Adds a `nvidia-offload` convenience script to {option}`environment.systemPackages`
|
||||
for offloading programs to an nvidia device. To work, should have also enabled
|
||||
{option}`hardware.nvidia.prime.offload.enable` or {option}`hardware.nvidia.prime.reverseSync.enable`.
|
||||
|
||||
Example usage `nvidia-offload sauerbraten_client`.
|
||||
'';
|
||||
};
|
||||
|
||||
hardware.nvidia.prime.reverseSync.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Warning: This feature is relatively new, depending on your system this might
|
||||
work poorly. AMD support, especially so.
|
||||
See: https://forums.developer.nvidia.com/t/the-all-new-outputsink-feature-aka-reverse-prime/129828
|
||||
|
||||
Enable NVIDIA Optimus support using the NVIDIA proprietary driver via reverse
|
||||
PRIME. If enabled, the Intel/AMD GPU will be used for all rendering, while
|
||||
enabling output to displays attached only to the NVIDIA GPU without a
|
||||
multiplexer.
|
||||
|
||||
Note that this option only has any effect if the "nvidia" driver is specified
|
||||
in {option}`services.xserver.videoDrivers`, and it should preferably
|
||||
be the only driver there.
|
||||
|
||||
If this is enabled, then the bus IDs of the NVIDIA and Intel/AMD GPUs have to
|
||||
be specified ({option}`hardware.nvidia.prime.nvidiaBusId` and
|
||||
{option}`hardware.nvidia.prime.intelBusId` or
|
||||
{option}`hardware.nvidia.prime.amdgpuBusId`).
|
||||
|
||||
If you enable this, you may want to also enable kernel modesetting for the
|
||||
NVIDIA driver ({option}`hardware.nvidia.modesetting.enable`) in order
|
||||
to prevent tearing.
|
||||
|
||||
Note that this configuration will only be successful when a display manager
|
||||
for which the {option}`services.xserver.displayManager.setupCommands`
|
||||
option is supported is used.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -205,6 +253,13 @@ in
|
|||
'';
|
||||
}
|
||||
|
||||
{
|
||||
assertion = offloadCfg.enableOffloadCmd -> offloadCfg.enable || reverseSyncCfg.enable;
|
||||
message = ''
|
||||
Offload command requires offloading or reverse prime sync to be enabled.
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
assertion = primeEnabled -> pCfg.nvidiaBusId != "" && (pCfg.intelBusId != "" || pCfg.amdgpuBusId != "");
|
||||
message = ''
|
||||
|
@ -217,9 +272,19 @@ in
|
|||
message = "NVIDIA PRIME render offload is currently only supported on versions >= 435.21.";
|
||||
}
|
||||
|
||||
{
|
||||
assertion = (reverseSyncCfg.enable && pCfg.amdgpuBusId != "") -> versionAtLeast nvidia_x11.version "470.0";
|
||||
message = "NVIDIA PRIME render offload for AMD APUs is currently only supported on versions >= 470 beta.";
|
||||
}
|
||||
|
||||
{
|
||||
assertion = !(syncCfg.enable && offloadCfg.enable);
|
||||
message = "Only one NVIDIA PRIME solution may be used at a time.";
|
||||
message = "PRIME Sync and Offload cannot be both enabled";
|
||||
}
|
||||
|
||||
{
|
||||
assertion = !(syncCfg.enable && reverseSyncCfg.enable);
|
||||
message = "PRIME Sync and PRIME Reverse Sync cannot be both enabled";
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -257,8 +322,10 @@ in
|
|||
# - Configure the display manager to run specific `xrandr` commands which will
|
||||
# configure/enable displays connected to the Intel iGPU / AMD APU.
|
||||
|
||||
services.xserver.drivers = let
|
||||
in optional primeEnabled {
|
||||
# reverse sync implies offloading
|
||||
hardware.nvidia.prime.offload.enable = mkDefault reverseSyncCfg.enable;
|
||||
|
||||
services.xserver.drivers = optional primeEnabled {
|
||||
name = igpuDriver;
|
||||
display = offloadCfg.enable;
|
||||
modules = optionals (igpuDriver == "amdgpu") [ pkgs.xorg.xf86videoamdgpu ];
|
||||
|
@ -273,7 +340,7 @@ in
|
|||
deviceSection = optionalString primeEnabled
|
||||
''
|
||||
BusID "${pCfg.nvidiaBusId}"
|
||||
${optionalString syncCfg.allowExternalGpu "Option \"AllowExternalGpus\""}
|
||||
${optionalString pCfg.allowExternalGpu "Option \"AllowExternalGpus\""}
|
||||
'';
|
||||
screenSection =
|
||||
''
|
||||
|
@ -290,19 +357,22 @@ in
|
|||
|
||||
services.xserver.serverLayoutSection = optionalString syncCfg.enable ''
|
||||
Inactive "Device-${igpuDriver}[0]"
|
||||
'' + optionalString reverseSyncCfg.enable ''
|
||||
Inactive "Device-nvidia[0]"
|
||||
'' + optionalString offloadCfg.enable ''
|
||||
Option "AllowNVIDIAGPUScreens"
|
||||
'';
|
||||
|
||||
services.xserver.displayManager.setupCommands = let
|
||||
sinkGpuProviderName = if igpuDriver == "amdgpu" then
|
||||
gpuProviderName = if igpuDriver == "amdgpu" then
|
||||
# find the name of the provider if amdgpu
|
||||
"`${pkgs.xorg.xrandr}/bin/xrandr --listproviders | ${pkgs.gnugrep}/bin/grep -i AMD | ${pkgs.gnused}/bin/sed -n 's/^.*name://p'`"
|
||||
else
|
||||
igpuDriver;
|
||||
in optionalString syncCfg.enable ''
|
||||
providerCmdParams = if syncCfg.enable then "\"${gpuProviderName}\" NVIDIA-0" else "NVIDIA-G0 \"${gpuProviderName}\"";
|
||||
in optionalString (syncCfg.enable || reverseSyncCfg.enable) ''
|
||||
# Added by nvidia configuration module for Optimus/PRIME.
|
||||
${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource "${sinkGpuProviderName}" NVIDIA-0
|
||||
${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource ${providerCmdParams}
|
||||
${pkgs.xorg.xrandr}/bin/xrandr --auto
|
||||
'';
|
||||
|
||||
|
@ -325,7 +395,16 @@ in
|
|||
|
||||
environment.systemPackages = [ nvidia_x11.bin ]
|
||||
++ optionals cfg.nvidiaSettings [ nvidia_x11.settings ]
|
||||
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
|
||||
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ]
|
||||
++ optionals offloadCfg.enableOffloadCmd [
|
||||
(pkgs.writeShellScriptBin "nvidia-offload" ''
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||
exec "$@"
|
||||
'')
|
||||
];
|
||||
|
||||
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
|
||||
|
||||
|
|
|
@ -20,6 +20,6 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
services.udev.packages = [ cfg.package ];
|
||||
users.groups.wireshark = {};
|
||||
users.groups.dialout = {};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -150,9 +150,13 @@ in
|
|||
root = cfg.package;
|
||||
index = "index.php";
|
||||
extraConfig = ''
|
||||
location ~* \.php$ {
|
||||
location ~* \.php(/|$) {
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:${fpm.socket};
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
|
||||
include ${config.services.nginx.package}/conf/fastcgi_params;
|
||||
include ${pkgs.nginx}/conf/fastcgi.conf;
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ in
|
|||
WorkingDirectory = libDir;
|
||||
SyslogIdentifier = "pykms";
|
||||
Restart = "on-failure";
|
||||
MemoryLimit = cfg.memoryLimit;
|
||||
MemoryMax = cfg.memoryLimit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -106,7 +106,7 @@ in
|
|||
(mkRenamedOptionModule [ "services" "openssh" "permitRootLogin" ] [ "services" "openssh" "settings" "PermitRootLogin" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "logLevel" ] [ "services" "openssh" "settings" "LogLevel" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "macs" ] [ "services" "openssh" "settings" "Macs" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "cyphers" ] [ "services" "openssh" "settings" "Cyphers" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "ciphers" ] [ "services" "openssh" "settings" "Ciphers" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "kexAlgorithms" ] [ "services" "openssh" "settings" "KexAlgorithms" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "gatewayPorts" ] [ "services" "openssh" "settings" "GatewayPorts" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "forwardX11" ] [ "services" "openssh" "settings" "X11Forwarding" ])
|
||||
|
|
|
@ -128,13 +128,13 @@ in
|
|||
HostKey ${initrdKeyPath path}
|
||||
'')}
|
||||
|
||||
KexAlgorithms ${concatStringsSep "," sshdCfg.kexAlgorithms}
|
||||
Ciphers ${concatStringsSep "," sshdCfg.ciphers}
|
||||
MACs ${concatStringsSep "," sshdCfg.macs}
|
||||
KexAlgorithms ${concatStringsSep "," sshdCfg.settings.KexAlgorithms}
|
||||
Ciphers ${concatStringsSep "," sshdCfg.settings.Ciphers}
|
||||
MACs ${concatStringsSep "," sshdCfg.settings.Macs}
|
||||
|
||||
LogLevel ${sshdCfg.logLevel}
|
||||
LogLevel ${sshdCfg.settings.LogLevel}
|
||||
|
||||
${if sshdCfg.useDns then ''
|
||||
${if sshdCfg.settings.UseDns then ''
|
||||
UseDNS yes
|
||||
'' else ''
|
||||
UseDNS no
|
||||
|
|
|
@ -248,6 +248,7 @@ in {
|
|||
gnome = handleTest ./gnome.nix {};
|
||||
gnome-flashback = handleTest ./gnome-flashback.nix {};
|
||||
gnome-xorg = handleTest ./gnome-xorg.nix {};
|
||||
gnupg = handleTest ./gnupg.nix {};
|
||||
go-neb = handleTest ./go-neb.nix {};
|
||||
gobgpd = handleTest ./gobgpd.nix {};
|
||||
gocd-agent = handleTest ./gocd-agent.nix {};
|
||||
|
|
118
nixos/tests/gnupg.nix
Normal file
118
nixos/tests/gnupg.nix
Normal file
|
@ -0,0 +1,118 @@
|
|||
import ./make-test-python.nix ({ pkgs, lib, ...}:
|
||||
|
||||
{
|
||||
name = "gnupg";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ rnhmjoj ];
|
||||
};
|
||||
|
||||
# server for testing SSH
|
||||
nodes.server = { ... }: {
|
||||
imports = [ ../modules/profiles/minimal.nix ];
|
||||
|
||||
users.users.alice.isNormalUser = true;
|
||||
services.openssh.enable = true;
|
||||
};
|
||||
|
||||
# machine for testing GnuPG
|
||||
nodes.machine = { pkgs, ... }: {
|
||||
imports = [ ../modules/profiles/minimal.nix ];
|
||||
|
||||
users.users.alice.isNormalUser = true;
|
||||
services.getty.autologinUser = "alice";
|
||||
|
||||
environment.shellInit = ''
|
||||
# preset a key passphrase in gpg-agent
|
||||
preset_key() {
|
||||
# find all keys
|
||||
case "$1" in
|
||||
ssh) grips=$(awk '/^[0-9A-F]/{print $1}' "''${GNUPGHOME:-$HOME/.gnupg}/sshcontrol") ;;
|
||||
pgp) grips=$(gpg --with-keygrip --list-secret-keys | awk '/Keygrip/{print $3}') ;;
|
||||
esac
|
||||
|
||||
# try to preset the passphrase for each key found
|
||||
for grip in $grips; do
|
||||
"$(gpgconf --list-dirs libexecdir)/gpg-preset-passphrase" -c -P "$2" "$grip"
|
||||
done
|
||||
}
|
||||
'';
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
programs.gnupg.agent.enableSSHSupport = true;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
import shlex
|
||||
|
||||
|
||||
def as_alice(command: str) -> str:
|
||||
"""
|
||||
Wraps a command to run it as Alice in a login shell
|
||||
"""
|
||||
quoted = shlex.quote(command)
|
||||
return "su --login alice --command " + quoted
|
||||
|
||||
|
||||
start_all()
|
||||
|
||||
with subtest("Wait for the autologin"):
|
||||
machine.wait_until_tty_matches("1", "alice@machine")
|
||||
|
||||
with subtest("Can generate a PGP key"):
|
||||
# Note: this needs a tty because of pinentry
|
||||
machine.send_chars("gpg --gen-key\n")
|
||||
machine.wait_until_tty_matches("1", "Real name:")
|
||||
machine.send_chars("Alice\n")
|
||||
machine.wait_until_tty_matches("1", "Email address:")
|
||||
machine.send_chars("alice@machine\n")
|
||||
machine.wait_until_tty_matches("1", "Change")
|
||||
machine.send_chars("O\n")
|
||||
machine.wait_until_tty_matches("1", "Please enter")
|
||||
machine.send_chars("pgp_p4ssphrase\n")
|
||||
machine.wait_until_tty_matches("1", "Please re-enter")
|
||||
machine.send_chars("pgp_p4ssphrase\n")
|
||||
machine.wait_until_tty_matches("1", "public and secret key created")
|
||||
|
||||
with subtest("Confirm the key is in the keyring"):
|
||||
machine.wait_until_succeeds(as_alice("gpg --list-secret-keys | grep -q alice@machine"))
|
||||
|
||||
with subtest("Can generate and add an SSH key"):
|
||||
machine.succeed(as_alice("ssh-keygen -t ed25519 -f alice -N ssh_p4ssphrase"))
|
||||
|
||||
# Note: apparently this must be run before using the OpenSSH agent
|
||||
# socket for the first time in a tty. It's not needed for `ssh`
|
||||
# because there's a hook that calls it automatically (only in NixOS).
|
||||
machine.send_chars("gpg-connect-agent updatestartuptty /bye\n")
|
||||
|
||||
# Note: again, this needs a tty because of pinentry
|
||||
machine.send_chars("ssh-add alice\n")
|
||||
machine.wait_until_tty_matches("1", "Enter passphrase")
|
||||
machine.send_chars("ssh_p4ssphrase\n")
|
||||
machine.wait_until_tty_matches("1", "Please enter")
|
||||
machine.send_chars("ssh_agent_p4ssphrase\n")
|
||||
machine.wait_until_tty_matches("1", "Please re-enter")
|
||||
machine.send_chars("ssh_agent_p4ssphrase\n")
|
||||
|
||||
with subtest("Confirm the SSH key has been registered"):
|
||||
machine.wait_until_succeeds(as_alice("ssh-add -l | grep -q alice@machine"))
|
||||
|
||||
with subtest("Can preset the key passphrases in the agent"):
|
||||
machine.succeed(as_alice("echo allow-preset-passphrase > .gnupg/gpg-agent.conf"))
|
||||
machine.succeed(as_alice("pkill gpg-agent"))
|
||||
machine.succeed(as_alice("preset_key pgp pgp_p4ssphrase"))
|
||||
machine.succeed(as_alice("preset_key ssh ssh_agent_p4ssphrase"))
|
||||
|
||||
with subtest("Can encrypt and decrypt a message"):
|
||||
machine.succeed(as_alice("echo Hello | gpg -e -r alice | gpg -d | grep -q Hello"))
|
||||
|
||||
with subtest("Can log into the server"):
|
||||
# Install Alice's public key
|
||||
public_key = machine.succeed(as_alice("cat alice.pub"))
|
||||
server.succeed("mkdir /etc/ssh/authorized_keys.d")
|
||||
server.succeed(f"printf '{public_key}' > /etc/ssh/authorized_keys.d/alice")
|
||||
|
||||
server.wait_for_open_port(22)
|
||||
machine.succeed(as_alice("ssh -i alice -o StrictHostKeyChecking=no server exit"))
|
||||
'';
|
||||
})
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "airwindows-lv2";
|
||||
version = "14.0";
|
||||
version = "16.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hannesbraun";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-urlj9XwMqKt5JvvsA1f7YpuLhQXMGxp0V1pGv+LTroE=";
|
||||
sha256 = "sha256-jdeJ/VAJTDeiR9pyYps82F2Ty16r+a/FK+XV5L3rWco=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config ];
|
||||
|
|
|
@ -1,39 +1,67 @@
|
|||
{ mkDerivation
|
||||
, stdenv
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, qmake
|
||||
, pkg-config
|
||||
, qttools
|
||||
, qmake
|
||||
, qt5compat ? null
|
||||
, qtbase
|
||||
, qttools
|
||||
, rtaudio
|
||||
, rtmidi
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
assert lib.versionAtLeast qtbase.version "6.0" -> qt5compat != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bambootracker";
|
||||
version = "0.6.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BambooTracker";
|
||||
repo = "BambooTracker";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-yubaKTc8NFLxMY0/5c2VubRHgAGOsRlitmXJ1UHzl60=";
|
||||
hash = "sha256-Ymi1tjJCgStF0Rtseelq/YuTtBs2PrbF898TlbjyYUw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake qttools pkg-config ];
|
||||
postPatch = lib.optionalString (lib.versionAtLeast qtbase.version "6.0") ''
|
||||
# Work around lrelease finding in qmake being broken by using pre-Qt5.12 code path
|
||||
# https://github.com/NixOS/nixpkgs/issues/214765
|
||||
substituteInPlace BambooTracker/lang/lang.pri \
|
||||
--replace 'equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 12)' 'if(true)'
|
||||
'';
|
||||
|
||||
buildInputs = [ qtbase rtaudio rtmidi ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
qmake
|
||||
qttools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
qmakeFlags = [ "CONFIG+=system_rtaudio" "CONFIG+=system_rtmidi" ];
|
||||
buildInputs = [
|
||||
qtbase
|
||||
rtaudio
|
||||
rtmidi
|
||||
] ++ lib.optionals (lib.versionAtLeast qtbase.version "6.0") [
|
||||
qt5compat
|
||||
];
|
||||
|
||||
qmakeFlags = [
|
||||
"CONFIG+=system_rtaudio"
|
||||
"CONFIG+=system_rtmidi"
|
||||
];
|
||||
|
||||
postConfigure = "make qmake_all";
|
||||
|
||||
# Wrapping the inside of the app bundles, avoiding double-wrapping
|
||||
dontWrapQtApps = stdenv.hostPlatform.isDarwin;
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
mv $out/{bin,Applications}/BambooTracker.app
|
||||
ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker
|
||||
wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib
|
||||
, fetchgit
|
||||
, fetchFromGitLab
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
|
@ -9,7 +9,7 @@
|
|||
, gst_all_1
|
||||
, libhandy
|
||||
, libsecret
|
||||
, libsoup
|
||||
, libsoup_3
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, totem-pl-parser
|
||||
|
@ -25,16 +25,17 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "lollypop";
|
||||
version = "1.4.35";
|
||||
version = "1.4.37";
|
||||
|
||||
format = "other";
|
||||
doCheck = false;
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.gnome.org/World/lollypop";
|
||||
rev = "refs/tags/${version}";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-Rdp0gZjdj2tXOWarsTpqgvSZVXAQsCLfk5oUyalE/ZA=";
|
||||
sha256 = "sha256-3GPmGNbbSxvLq0t3F9q1x64BwNQCEvFQWLb0bSO9KUY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -59,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
gstreamer
|
||||
gtk3
|
||||
libhandy
|
||||
libsoup
|
||||
libsoup_3
|
||||
pango
|
||||
totem-pl-parser
|
||||
] ++ lib.optional lastFMSupport libsecret;
|
||||
|
@ -98,7 +99,6 @@ python3.pkgs.buildPythonApplication rec {
|
|||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
|
||||
description = "A modern music player for GNOME";
|
||||
|
|
34
pkgs/applications/audio/pbpctrl/default.nix
Normal file
34
pkgs/applications/audio/pbpctrl/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, dbus
|
||||
, protobuf
|
||||
, lib
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "pbpctrl";
|
||||
|
||||
# https://github.com/qzed/pbpctrl/issues/4
|
||||
version = "unstable-2023-02-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qzed";
|
||||
repo = "${pname}";
|
||||
rev = "9fef4bb88046a9f00719b189f8e378c8dbdb8ee6";
|
||||
hash = "sha256-8YbsBqqITJ9bKzbGX6d/CSBb8wzr6bDzy8vsyntL1CA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ZxJjjaT/ZpEPxvO42UWBy3xW/V5dhXGsKn3KmuM89YA==";
|
||||
|
||||
nativeBuildInputs = [ pkg-config protobuf ];
|
||||
buildInputs = [ dbus ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Control Google Pixel Buds Pro from the Linux command line.";
|
||||
homepage = "https://github.com/qzed/pbpctrl";
|
||||
license = with licenses; [ asl20 mit ];
|
||||
maintainers = [ maintainers.vanilla ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -23,20 +23,20 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "shortwave";
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "Shortwave";
|
||||
rev = version;
|
||||
sha256 = "sha256-N0ftIq0+sxkpo56IGHZYAK6MgRNW7T6C2jWEiJsYy/Y=";
|
||||
sha256 = "sha256-ESZ1yD1IuBar8bv83xMczZbtPtHbWRpe2yMVyr7K5gQ=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-90JBN3cJKqIJX6DRq5FtEpIr5Isxf+jb1SlxGMbBwMQ=";
|
||||
hash = "sha256-8W46bGAitR2YbZbnsigAZMW5pSFTkDAe5JNaNOH5JfA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "spotify-player";
|
||||
version = "0.10.0";
|
||||
version = "0.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aome510";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-bHPWpx8EJibr2kNuzuGAQPZ0DE6qeJwIRYDy+NFS/PQ=";
|
||||
sha256 = "sha256-iaDaPjh2wZXxBxBDhWp+hHrJZyXqw6HSzgCzbZj9iho=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-QeQ3PYI5RmbJ+VQ9hLSTXgQXVVoID5zbRqSTrbWzVy8=";
|
||||
cargoHash = "sha256-I8n/fR1aOsSex2p0u5FaqoJCh2J0oMxkikS9aynxgpA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "nearcore";
|
||||
version = "1.30.0";
|
||||
version = "1.30.1";
|
||||
|
||||
# https://github.com/near/nearcore/tags
|
||||
src = fetchFromGitHub {
|
||||
|
@ -13,10 +13,10 @@ rustPlatform.buildRustPackage rec {
|
|||
# there is also a branch for this version number, so we need to be explicit
|
||||
rev = "refs/tags/${version}";
|
||||
|
||||
sha256 = "sha256-Co8896RojUf/R8ZiRn7zSO1AWH7x5rYom6TbGohH1KM=";
|
||||
sha256 = "sha256-VjvHCiWjsx5Y7xxqck/O9gSNrL8mxCTosLwLqC85ywY=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-M+vhLBXsd+R97Sh5s6jFzon/47XohJeQKh//9QP6PXw=";
|
||||
cargoHash = "sha256-5Gs1sAzjuUO3IkwMX1NeA/Sbax0qtwvulyT66AQaNjs=";
|
||||
cargoPatches = [ ./0001-make-near-test-contracts-optional.patch ];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -103,7 +103,7 @@ in rec {
|
|||
fetchurl {
|
||||
url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz";
|
||||
hash = {
|
||||
x86_64 = "sha512-hmdWGteMDt4HhYq+k9twuftalpTzHtGnVVLphZcpJcw+6vJfersciDMaeLRqbCAeFbzJdgzjYo76bpP6FubySw==";
|
||||
x86_64 = "sha512-yH4/K9sBLCUc2EVYwPL0dLql/S3AfaV6fFh7ewAuIb7yHtcsOWMqy/h1hZUlFFg2ykfwDWDDHEK7qfTI0hM7BQ==";
|
||||
aarch64 = "sha512-UYp8t7r2RrN3rKN180cWpJyhyO5LVXL8LrTRKJzttUgB7kM1nroTEI3DesBu+Hw4Ynl7eLiBK397rqcpOAfxJw==";
|
||||
}.${arch};
|
||||
};
|
||||
|
|
|
@ -41,13 +41,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-builder";
|
||||
version = "43.5";
|
||||
version = "43.6";
|
||||
|
||||
outputs = [ "out" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Rav15H1s4jzjTXjFcOgeBrIntD6ZoRMlcy7GXhskU+o=";
|
||||
sha256 = "m08hPdloyVL75CJoUPXJVk3f1XimoPiT06K2rhmjd6k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
let
|
||||
inherit (neovimUtils) makeNeovimConfig;
|
||||
|
||||
packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
|
||||
|
||||
plugins = with vimPlugins; [
|
||||
{
|
||||
plugin = vim-obsession;
|
||||
|
@ -47,13 +45,6 @@ let
|
|||
|
||||
nvimAutoDisableWrap = makeNeovimConfig { };
|
||||
|
||||
nvimConfDontWrap = makeNeovimConfig {
|
||||
inherit plugins;
|
||||
customRC = ''
|
||||
" just a comment
|
||||
'';
|
||||
};
|
||||
|
||||
wrapNeovim2 = suffix: config:
|
||||
wrapNeovimUnstable neovim-unwrapped (config // {
|
||||
extraName = suffix;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ lib
|
||||
, vscode-utils
|
||||
, sumneko-lua-language-server
|
||||
, lua-language-server
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
|
@ -14,7 +14,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
patches = [ ./remove-chmod.patch ];
|
||||
|
||||
postInstall = ''
|
||||
ln -sf ${sumneko-lua-language-server}/bin/lua-language-server \
|
||||
ln -sf ${lua-language-server}/bin/lua-language-server \
|
||||
$out/$installPrefix/server/bin/lua-language-server
|
||||
'';
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
let
|
||||
# Keep these separate so the update script can regex them
|
||||
rpcs3GitVersion = "14637-c471120a8";
|
||||
rpcs3Version = "0.0.26-14637-c471120a8";
|
||||
rpcs3Revision = "c471120a80ec6f12cd4489e1a9be073d7d9c96f2";
|
||||
rpcs3Sha256 = "1fl7zarxbjaz6mi3lqv55kdwpvjfz8d02qfl0655zihwm6zzdny5";
|
||||
rpcs3GitVersion = "14684-8652b7d35";
|
||||
rpcs3Version = "0.0.26-14684-8652b7d35";
|
||||
rpcs3Revision = "8652b7d358fe975242dd2c51c91fd2968e6bcb82";
|
||||
rpcs3Sha256 = "08cd082cih9pcppipkhid1x1s7bq4grsz0zfa1rlxkzw3lajxnrf";
|
||||
|
||||
ittapi = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clifm";
|
||||
version = "1.9";
|
||||
version = "1.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leo-arch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jrP8V1EhHldliZEjiX55TJujc82ub46aWi1boJYDVTg=";
|
||||
sha256 = "sha256-kXnI8a1nGKBDc+isv9RYvputKk+/FHmM9j+G4UnI5Z4=";
|
||||
};
|
||||
|
||||
buildInputs = [ libcap acl file readline ];
|
||||
|
|
|
@ -73,14 +73,14 @@ let
|
|||
six
|
||||
];
|
||||
in mkDerivation rec {
|
||||
version = "3.22.15";
|
||||
version = "3.22.16";
|
||||
pname = "qgis-ltr-unwrapped";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-0hly1yZ7NAcSe84XMwDlcmZPunPcNXYzvAhd0Z5rB0Q=";
|
||||
hash = "sha256-6UpWVEyh94Oo6eI/dEmDuJHRwpPtkEsksjE90iAUgo8=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
, libde265Support ? true, libde265
|
||||
, fftw
|
||||
, ApplicationServices, Foundation
|
||||
, testers
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -33,14 +34,14 @@ let
|
|||
else null;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "imagemagick";
|
||||
version = "6.9.12-68";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick6";
|
||||
rev = version;
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-slQcA0cblxtG/1DiJx5swUh7Kfwgz5HG70eqJFLaQJI=";
|
||||
};
|
||||
|
||||
|
@ -109,10 +110,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://legacy.imagemagick.org/";
|
||||
changelog = "https://legacy.imagemagick.org/script/changelog.php";
|
||||
description = "A software suite to create, edit, compose, or convert bitmap images";
|
||||
pkgConfigModules = [ "ImageMagick" "MagickWand" ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.asl20;
|
||||
|
@ -137,4 +141,4 @@ stdenv.mkDerivation rec {
|
|||
"CVE-2022-2719"
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -45,15 +45,15 @@ let
|
|||
else null;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "imagemagick";
|
||||
version = "7.1.0-60";
|
||||
version = "7.1.0-61";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick";
|
||||
rev = version;
|
||||
hash = "sha256-dQfmW9rt66eWOaKbZ9j8jc1k8v+F8B9TpTx12L+0VE4=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-g7WeqPpPd1gceU+s+vRDpb41IX1lzpiqh3cAYeFdUlg=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
||||
|
@ -126,14 +126,16 @@ stdenv.mkDerivation rec {
|
|||
passthru.tests = {
|
||||
version = testers.testVersion { package = imagemagick; };
|
||||
inherit (python3.pkgs) img2pdf;
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.imagemagick.org/";
|
||||
description = "A software suite to create, edit, compose, or convert bitmap images";
|
||||
pkgConfigModules = [ "ImageMagick" "MagickWand" ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ erictapen dotlambda ];
|
||||
license = licenses.asl20;
|
||||
mainProgram = "magick";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -23,19 +23,19 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rnote";
|
||||
version = "0.5.12";
|
||||
version = "0.5.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flxzt";
|
||||
repo = "rnote";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-wrx8+18jVDIhYhxD8VgU8wlRDLoUwMWIBOzSUozjUII=";
|
||||
hash = "sha256-8HMaCO+v9PbkoS8Z1BmndiU7UmlG4TT0+bSESIwa3RM=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-t0nmfM6Z30c+n0iANjMBVifOhYMXdBqgjxYdhOPOhYQ=";
|
||||
hash = "sha256-rXAPILGzLZ3Ne4nhdaPZH1R2ezaF+D/P2t/Sod6nxo8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
46
pkgs/applications/misc/gcfflasher/default.nix
Normal file
46
pkgs/applications/misc/gcfflasher/default.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libgpiod
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gcfflasher";
|
||||
version = "4.0.3-beta";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dresden-elektronik";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-m+iDBfsHo+PLYd3K8JaKwhIXcnj+Q8w7gIgmHp+0plk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace 'main_windows.c' 'main_posix.c'
|
||||
'';
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
libgpiod
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm0755 GCFFlasher $out/bin/GCFFlasher
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CFFlasher is the tool to program the firmware of dresden elektronik's Zigbee products";
|
||||
license = licenses.bsd3;
|
||||
homepage = "https://github.com/dresden-elektronik/gcfflasher";
|
||||
maintainers = with maintainers; [ fleaz ];
|
||||
};
|
||||
}
|
|
@ -23,13 +23,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mediaelch";
|
||||
version = "2.8.18";
|
||||
version = "2.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Komet";
|
||||
repo = "MediaElch";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-9kwU9j8YNF/OmzrQaRAlBpW+t/tIpZJw5+pfEoTmCBA=";
|
||||
sha256 = "sha256-hipOOG+ibfsJZKLcnB6a5+OOvSs4WUdpEY+RiVKJc+k=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "moolticute";
|
||||
version = "1.00.1";
|
||||
version = "1.01.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mooltipass";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-oENMr3d2vFisEFl7gYBQQ0XRBeogAYOfBE5th463laI=";
|
||||
sha256 = "sha256-6vqYyAJ9p0ey49kc2Tp/HZVv0mePARX2dcmcIG4bcNQ=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "udev" ];
|
||||
|
@ -40,7 +40,7 @@ mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://github.com/mooltipass/moolticute";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.kirikaza ];
|
||||
maintainers = with maintainers; [ kirikaza hughobrien ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -159,13 +159,13 @@ let
|
|||
in
|
||||
python3'.pkgs.buildPythonPackage rec {
|
||||
pname = "privacyIDEA";
|
||||
version = "3.8";
|
||||
version = "3.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FCvuWXon8c9LnX1FnCxcSTfBR5/6zijD6ld0iAEVFkU=";
|
||||
sha256 = "sha256-SYXw8PBCb514v3rcy15W/vZS5JyMsu81D2sJmviLRtw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.13.4";
|
||||
version = "1.13.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eyfMWum1fZUq4iF77Q+0FP2Rdq2P+xK0au3ytN8MS+k=";
|
||||
hash = "sha256-mBmjGP7O1uX+uVM4/us4RWeJcXB1lSEvZQWT/3Ygzik=";
|
||||
};
|
||||
|
||||
subPackages = [ "projects/gloo/cli/cmd" ];
|
||||
|
|
|
@ -319,13 +319,13 @@
|
|||
"vendorHash": null
|
||||
},
|
||||
"dns": {
|
||||
"hash": "sha256-aH9sDqlXSq2dJi0kzGreJZ5V8A0WU0UqTpxWPKn23rM=",
|
||||
"hash": "sha256-qLKlnw0vnPvxJluvUiBERu1YdtrRklocVw314/lvQT4=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/dns",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-dns",
|
||||
"rev": "v3.2.3",
|
||||
"rev": "v3.2.4",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-AefmrO8Zb7ICH+qGxYW9ele6kNtrAusOf+KE/iZxKLY="
|
||||
"vendorHash": "sha256-Ba4J6LUchqhdZTxcJxTgP20aZVioybIzKvF4j5TDQIk="
|
||||
},
|
||||
"dnsimple": {
|
||||
"hash": "sha256-P1mvxRbOSmQknQxFPEyAkpK5eZQq286oceRFbrgYYqg=",
|
||||
|
@ -439,22 +439,22 @@
|
|||
"vendorHash": "sha256-aVbJT31IIgW0GYzwVX7kT4j7E+dadSbnttThh2lzGyE="
|
||||
},
|
||||
"google": {
|
||||
"hash": "sha256-yxw+LtrBhfZlTVh36o3uUdt3zGo7VLTjk5Cc8xoqhio=",
|
||||
"hash": "sha256-B/eXf31mRtWpl6TCv/hukPWfbb7Ne4W2FUMxiAbfsfI=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
|
||||
"owner": "hashicorp",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google",
|
||||
"rev": "v4.51.0",
|
||||
"rev": "v4.52.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-oModEw/gaQCDHLf+2EKf1O1HQSGWnqEReXowE6F7W0o="
|
||||
},
|
||||
"google-beta": {
|
||||
"hash": "sha256-KQxIi9EF59FTcWoiE5oTZx+lVV+Pb+PH0QIz02PztN4=",
|
||||
"hash": "sha256-ISOhZqc6/RMqG4n63RjQluy0odkKATcCa52YpQW89xQ=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
|
||||
"owner": "hashicorp",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google-beta",
|
||||
"rev": "v4.51.0",
|
||||
"rev": "v4.52.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-oModEw/gaQCDHLf+2EKf1O1HQSGWnqEReXowE6F7W0o="
|
||||
},
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "dnscontrol";
|
||||
version = "3.25.0";
|
||||
version = "3.26.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StackExchange";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-XH9o1DTwG5ne5TZDgsS4HfC5WqLXc16JtjkKQtiE8z0=";
|
||||
sha256 = "sha256-wkPBMFsPLJFfilKuA3bGNn7NtC+wsnXZf+qkVpF2fWc=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-iVyLNPvmzkI46Cp0SgbxK6xIQspJjpYjqPf3mOMoZvU=";
|
||||
vendorHash = "sha256-U7RQPrvByTADC2/8O0cvcf0nmDgIeVkuyRGV0fpSCPk=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub, nodejs, python3, callPackage, removeReferencesTo
|
||||
, fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit, fetchYarnDeps }:
|
||||
, pkg-config, libsecret, xcbuild, Security, AppKit, fetchNpmDeps, npmHooks }:
|
||||
|
||||
let
|
||||
pinData = lib.importJSON ./pin.json;
|
||||
|
@ -15,39 +15,26 @@ in stdenv.mkDerivation rec {
|
|||
sha256 = pinData.srcHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ nodejs python3 yarn pkg-config ]
|
||||
nativeBuildInputs = [
|
||||
nodejs python3 pkg-config
|
||||
npmHooks.npmConfigHook
|
||||
]
|
||||
++ lib.optional stdenv.isDarwin xcbuild;
|
||||
|
||||
buildInputs = lib.optionals (!stdenv.isDarwin) [ libsecret ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security AppKit ];
|
||||
|
||||
npm_config_nodedir = nodejs;
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = ./yarn.lock;
|
||||
sha256 = pinData.yarnHash;
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit src;
|
||||
hash = pinData.npmHash;
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
cp ${./yarn.lock} ./yarn.lock
|
||||
chmod u+w . ./yarn.lock
|
||||
export HOME=$PWD/tmp
|
||||
mkdir -p $HOME
|
||||
yarn config --offline set yarn-offline-mirror $yarnOfflineCache
|
||||
${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
|
||||
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||
patchShebangs node_modules/
|
||||
node_modules/.bin/node-gyp rebuild
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
shopt -s extglob
|
||||
rm -rf node_modules
|
||||
rm -rf $HOME
|
||||
mkdir -p $out
|
||||
cp -r ./!(build) $out
|
||||
install -D -t $out/build/Release build/Release/keytar.node
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "7.7.0",
|
||||
"srcHash": "sd6h+vDJGvmXFhOm4MDAljb4dAOMBB8W1IL7JSfJWyo=",
|
||||
"yarnHash": "1m75hvl06mcj260hicbmv75p94h73gw5d24zpm5wxwc0q8v8wzfl"
|
||||
"version": "7.9.0",
|
||||
"srcHash": "Mnl0Im2hZJXJEtyXb5rgMntekkUAnOG2MN1bwfgh0eg=",
|
||||
"npmHash": "sha256-ldfRWV+HXBdBYO2ZiGbVFSHV4/bMG43U7w+sJ4kpVUY="
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn
|
||||
#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-npm-deps
|
||||
|
||||
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates packaging data for the keytar package."
|
||||
|
@ -22,10 +22,8 @@ SRC="https://raw.githubusercontent.com/atom/node-keytar/v$version"
|
|||
|
||||
wget "$SRC/package-lock.json"
|
||||
wget "$SRC/package.json"
|
||||
rm -f yarn.lock
|
||||
yarn import
|
||||
npm_hash=$(prefetch-npm-deps package-lock.json)
|
||||
rm -rf node_modules package.json package-lock.json
|
||||
yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
|
||||
src_hash=$(nix-prefetch-github atom node-keytar --rev v${version} | jq -r .sha256)
|
||||
|
||||
|
@ -33,6 +31,6 @@ cat > pin.json << EOF
|
|||
{
|
||||
"version": "$version",
|
||||
"srcHash": "$src_hash",
|
||||
"yarnHash": "$yarn_hash"
|
||||
"npmHash": "$npm_hash"
|
||||
}
|
||||
EOF
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"version": "2.3.0",
|
||||
"srcHash": "JyqtM1CCRgxAAdhgQYaIUYPnxEcDrlW1SjDCmsrPL34=",
|
||||
"yarnHash": "0bym6i1f0i3bs4fncbiwzwmbxp7j14rz1v4kyvsl02qs97qw1jac",
|
||||
"cargoHash": "sha256-EjtH96SC2kgan631+wlu9LStGKm6ljCR4x3/WpCTS0E="
|
||||
"version": "2.3.3",
|
||||
"srcHash": "HmKHWFoO8TQ9S/RcJnJ3h85/2uSkqGrgLnX82hkux4Q=",
|
||||
"yarnHash": "1cbkv8ap7f8vxl5brzqb86d2dyxg555sz67cldrp0vgnk8sq6ibp",
|
||||
"cargoHash": "sha256-WsgTbQ91aZZV5sIuFVjsccdiXivjtAUC1Zs/4uNk1zU="
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ let
|
|||
in
|
||||
env.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "4.6.0";
|
||||
version = "4.6.1";
|
||||
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
||||
|
||||
# Telegram-Desktop with submodules
|
||||
|
@ -84,7 +84,7 @@ env.mkDerivation rec {
|
|||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "1kwg286mbpf0gj57702fqddmyn5iihzny3da425psnwa10s217yf";
|
||||
sha256 = "1df9rx3a6xvgipgzn5h4jc46nsdkypl4255si606bkrccdz8bcrl";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
let
|
||||
pname = "zulip";
|
||||
version = "5.9.4";
|
||||
version = "5.9.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
|
||||
hash = "sha256-gbusyhMgoaQmeWm6dB6pc3kSykD4T97VQcJgcF5KbzM=";
|
||||
hash = "sha256-w2thmF/UA42j3u3m4L+/onilQhwMOa7IJoOMZ/ERypw=";
|
||||
name="${pname}-${version}.AppImage";
|
||||
};
|
||||
|
||||
|
|
178
pkgs/applications/networking/n8n/node-packages.nix
generated
178
pkgs/applications/networking/n8n/node-packages.nix
generated
|
@ -193,13 +193,22 @@ let
|
|||
sha512 = "UA/8dgLy3+ZiwJjAZHxL4MUB14fFQPkaAOZ94jsTW/Z6WmoOeny2+cLk0+dyIX/iH6qSrEWKwbStEeB970B9pA==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-browser-2.32.2" = {
|
||||
"@azure/msal-browser-2.33.0" = {
|
||||
name = "_at_azure_slash_msal-browser";
|
||||
packageName = "@azure/msal-browser";
|
||||
version = "2.32.2";
|
||||
version = "2.33.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.32.2.tgz";
|
||||
sha512 = "1YqGzXtPG3QrZPFBKaMWr2WQdukDj+PelqUCv351+p+hlw/AhdRrb8haY73/iqkhT6Cdrbnh7sL4gikVsF4O1g==";
|
||||
url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.33.0.tgz";
|
||||
sha512 = "c7CVh1tfUfxiWkEIhoIb11hL4PGo4hz0M+gMy34ATagAKdLK7qyEu/5AXJWAf5lz5eE+vQhm7+LKiuETrcXXGw==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-common-10.0.0" = {
|
||||
name = "_at_azure_slash_msal-common";
|
||||
packageName = "@azure/msal-common";
|
||||
version = "10.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-10.0.0.tgz";
|
||||
sha512 = "/LghpT93jsZLy55QzTsRZWMx6R1Mjc1Aktwps8sKSGE3WbrGwbSsh2uhDlpl6FMcKChYjJ0ochThWwwOodrQNg==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-common-4.5.1" = {
|
||||
|
@ -220,15 +229,6 @@ let
|
|||
sha512 = "XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-common-9.1.1" = {
|
||||
name = "_at_azure_slash_msal-common";
|
||||
packageName = "@azure/msal-common";
|
||||
version = "9.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.1.1.tgz";
|
||||
sha512 = "we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-node-1.0.0-beta.6" = {
|
||||
name = "_at_azure_slash_msal-node";
|
||||
packageName = "@azure/msal-node";
|
||||
|
@ -238,13 +238,13 @@ let
|
|||
sha512 = "ZQI11Uz1j0HJohb9JZLRD8z0moVcPks1AFW4Q/Gcl67+QvH4aKEJti7fjCcipEEZYb/qzLSO8U6IZgPYytsiJQ==";
|
||||
};
|
||||
};
|
||||
"@azure/msal-node-1.14.6" = {
|
||||
"@azure/msal-node-1.15.0" = {
|
||||
name = "_at_azure_slash_msal-node";
|
||||
packageName = "@azure/msal-node";
|
||||
version = "1.14.6";
|
||||
version = "1.15.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.6.tgz";
|
||||
sha512 = "em/qqFL5tLMxMPl9vormAs13OgZpmQoJbiQ/GlWr+BA77eCLoL+Ehr5xRHowYo+LFe5b+p+PJVkRvT+mLvOkwA==";
|
||||
url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.15.0.tgz";
|
||||
sha512 = "fwC5M0c8pxOAzmScPbpx7j28YVTDebUaizlVF7bR0xvlU0r3VWW5OobCcr9ybqKS6wGyO7u4EhXJS9rjRWAuwA==";
|
||||
};
|
||||
};
|
||||
"@azure/storage-blob-12.12.0" = {
|
||||
|
@ -1246,13 +1246,13 @@ let
|
|||
sha512 = "erqUpFXksaeR2kejKnhnjZjbFxUpGZx4Z7ydNL9ie8tEhXPiZTsLeUDJ6aR1F8j5wWUAtOAQWUqkc7givBJbBA==";
|
||||
};
|
||||
};
|
||||
"@types/express-4.17.16" = {
|
||||
"@types/express-4.17.17" = {
|
||||
name = "_at_types_slash_express";
|
||||
packageName = "@types/express";
|
||||
version = "4.17.16";
|
||||
version = "4.17.17";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/express/-/express-4.17.16.tgz";
|
||||
sha512 = "LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA==";
|
||||
url = "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz";
|
||||
sha512 = "Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==";
|
||||
};
|
||||
};
|
||||
"@types/express-jwt-0.0.42" = {
|
||||
|
@ -1336,13 +1336,13 @@ let
|
|||
sha512 = "/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==";
|
||||
};
|
||||
};
|
||||
"@types/node-18.11.18" = {
|
||||
"@types/node-18.11.19" = {
|
||||
name = "_at_types_slash_node";
|
||||
packageName = "@types/node";
|
||||
version = "18.11.18";
|
||||
version = "18.11.19";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz";
|
||||
sha512 = "DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==";
|
||||
url = "https://registry.npmjs.org/@types/node/-/node-18.11.19.tgz";
|
||||
sha512 = "YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==";
|
||||
};
|
||||
};
|
||||
"@types/node-fetch-2.6.2" = {
|
||||
|
@ -1435,13 +1435,13 @@ let
|
|||
sha512 = "kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==";
|
||||
};
|
||||
};
|
||||
"@types/validator-13.7.11" = {
|
||||
"@types/validator-13.7.12" = {
|
||||
name = "_at_types_slash_validator";
|
||||
packageName = "@types/validator";
|
||||
version = "13.7.11";
|
||||
version = "13.7.12";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/validator/-/validator-13.7.11.tgz";
|
||||
sha512 = "WqTos+CnAKN64YwyBMhgUYhb5VsTNKwUY6AuzG5qu9/pFZJar/RJFMZBXwX7VS+uzYi+lIAr3WkvuWqEI9F2eg==";
|
||||
url = "https://registry.npmjs.org/@types/validator/-/validator-13.7.12.tgz";
|
||||
sha512 = "YVtyAPqpefU+Mm/qqnOANW6IkqKpCSrarcyV269C8MA8Ux0dbkEuQwM/4CjL47kVEM2LgBef/ETfkH+c6+moFA==";
|
||||
};
|
||||
};
|
||||
"@types/webidl-conversions-7.0.0" = {
|
||||
|
@ -1966,13 +1966,13 @@ let
|
|||
sha512 = "9cYNccliXZDByFsFliVwk5GvTq058Fj513CiR4E60ndDwmuXzTJEp/Bp8FyuRmGyYupLjHLs+JA9/CBoVS4/NQ==";
|
||||
};
|
||||
};
|
||||
"aws-sdk-2.1308.0" = {
|
||||
"aws-sdk-2.1310.0" = {
|
||||
name = "aws-sdk";
|
||||
packageName = "aws-sdk";
|
||||
version = "2.1308.0";
|
||||
version = "2.1310.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1308.0.tgz";
|
||||
sha512 = "tm4UXah8dCqt1geyxrtoyp6dN5QhuLjNeACUZEsffww5oZPMx24EX9dAtvtSu3UfIHwmbR74QomYi1c1u8Jndg==";
|
||||
url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1310.0.tgz";
|
||||
sha512 = "D0m9uFUa1UVXWTe4GSyNJP4+6DXwboE2FEG/URkLoo4r9Q8LHxwNFCGkBhaoEwssREyRe2LOYS1Nag/6WyvC6Q==";
|
||||
};
|
||||
};
|
||||
"aws-sign2-0.7.0" = {
|
||||
|
@ -2092,13 +2092,13 @@ let
|
|||
sha512 = "V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==";
|
||||
};
|
||||
};
|
||||
"better-sqlite3-8.0.1" = {
|
||||
"better-sqlite3-8.1.0" = {
|
||||
name = "better-sqlite3";
|
||||
packageName = "better-sqlite3";
|
||||
version = "8.0.1";
|
||||
version = "8.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.0.1.tgz";
|
||||
sha512 = "JhTZjpyapA1icCEjIZB4TSSgkGdFgpWZA2Wszg7Cf4JwJwKQmbvuNnJBeR+EYG/Z29OXvR4G//Rbg31BW/Z7Yg==";
|
||||
url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.1.0.tgz";
|
||||
sha512 = "p1m09H+Oi8R9TPj810pdNswMFuVgRNgCJEWypp6jlkOgSwMIrNyuj3hW78xEuBRGok5RzeaUW8aBtTWF3l/TQA==";
|
||||
};
|
||||
};
|
||||
"big-integer-1.6.51" = {
|
||||
|
@ -5098,13 +5098,13 @@ let
|
|||
sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
|
||||
};
|
||||
};
|
||||
"ics-2.41.0" = {
|
||||
"ics-2.44.0" = {
|
||||
name = "ics";
|
||||
packageName = "ics";
|
||||
version = "2.41.0";
|
||||
version = "2.44.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/ics/-/ics-2.41.0.tgz";
|
||||
sha512 = "6oleMfOpdBIrZGMNrTutwW7eFwua8lOkymDNxMXlsVF00HghqH+I3S6frt3a2rfjXTlkI0qiY2rnsKP2JQ9vJA==";
|
||||
url = "https://registry.npmjs.org/ics/-/ics-2.44.0.tgz";
|
||||
sha512 = "JeiPjNeWkd7Qri/wfHqjZCtglVwRJRqy1MEFKn9QzatzxUyCOsx4YARPlLkU8UnPxpg4VtEjR+VRUG+Cvj6bDg==";
|
||||
};
|
||||
};
|
||||
"ieee754-1.1.13" = {
|
||||
|
@ -6466,13 +6466,13 @@ let
|
|||
sha512 = "A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ==";
|
||||
};
|
||||
};
|
||||
"logform-2.4.2" = {
|
||||
"logform-2.5.0" = {
|
||||
name = "logform";
|
||||
packageName = "logform";
|
||||
version = "2.4.2";
|
||||
version = "2.5.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz";
|
||||
sha512 = "W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==";
|
||||
url = "https://registry.npmjs.org/logform/-/logform-2.5.0.tgz";
|
||||
sha512 = "fsFiH2yjSCTmzotZ5JmEo0brQyJ7iHrc8pQ5pnHg6e1e5WfkqdNMDvgRWSfz+aCr3Y2YxYzHA4UKj+6QoctKrg==";
|
||||
};
|
||||
};
|
||||
"long-4.0.0" = {
|
||||
|
@ -6871,13 +6871,13 @@ let
|
|||
sha512 = "DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==";
|
||||
};
|
||||
};
|
||||
"minipass-4.0.1" = {
|
||||
"minipass-4.0.2" = {
|
||||
name = "minipass";
|
||||
packageName = "minipass";
|
||||
version = "4.0.1";
|
||||
version = "4.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/minipass/-/minipass-4.0.1.tgz";
|
||||
sha512 = "V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA==";
|
||||
url = "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz";
|
||||
sha512 = "4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==";
|
||||
};
|
||||
};
|
||||
"minipass-collect-1.0.2" = {
|
||||
|
@ -7159,22 +7159,22 @@ let
|
|||
sha512 = "Dd6SdWYDjlhgrpPbof4DFPP4hPdpH9cA+3YkFSCgQLNyCi0RdqiQJqPQ5xQFlNVaxd6a7R69RHy/oNwt6/+cLw==";
|
||||
};
|
||||
};
|
||||
"n8n-editor-ui-0.180.0" = {
|
||||
"n8n-editor-ui-0.180.2" = {
|
||||
name = "n8n-editor-ui";
|
||||
packageName = "n8n-editor-ui";
|
||||
version = "0.180.0";
|
||||
version = "0.180.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.180.0.tgz";
|
||||
sha512 = "Xbjumqnc9chwVWDulXsIhXZ8r9i1nYUzJGBepC6xNM8kTaCRwCokfxUALfFPGNRUBg/A47ez89TNgDY9Mu/X3w==";
|
||||
url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.180.2.tgz";
|
||||
sha512 = "5XIIDN6X2CbQtDFwthCOqanvkOgbbFu36h9LZb/eB8KdQKs5dxNFi958lIrKuyZaiPYBQTZCPZWMcqqie+9JIQ==";
|
||||
};
|
||||
};
|
||||
"n8n-nodes-base-0.212.0" = {
|
||||
"n8n-nodes-base-0.212.2" = {
|
||||
name = "n8n-nodes-base";
|
||||
packageName = "n8n-nodes-base";
|
||||
version = "0.212.0";
|
||||
version = "0.212.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.212.0.tgz";
|
||||
sha512 = "OENgQkAU70krTAoElQkQTX61Bh/rz2cpip+WDFea+KTXTBqU1gQDNlt3IZdhkS1l0F4e1VfblQawqMeJVFxwbA==";
|
||||
url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.212.2.tgz";
|
||||
sha512 = "kmuuZOvQ+c84Eap2TW/RUzTZffYznI9fscTUSZYd8xpFdbptIH9TL0pkkcKhybvOC5y0CFPeMKV5JcH0uEujmw==";
|
||||
};
|
||||
};
|
||||
"n8n-workflow-0.135.0" = {
|
||||
|
@ -7294,13 +7294,13 @@ let
|
|||
sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
|
||||
};
|
||||
};
|
||||
"node-abi-3.31.0" = {
|
||||
"node-abi-3.32.0" = {
|
||||
name = "node-abi";
|
||||
packageName = "node-abi";
|
||||
version = "3.31.0";
|
||||
version = "3.32.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz";
|
||||
sha512 = "eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==";
|
||||
url = "https://registry.npmjs.org/node-abi/-/node-abi-3.32.0.tgz";
|
||||
sha512 = "HkwdiLzE/LeuOMIQq/dJq70oNyRc88+wt5CH/RXYseE00LkA/c4PkS6Ti1vE4OHYUiKjkwuxjWq9pItgrz8UJw==";
|
||||
};
|
||||
};
|
||||
"node-abort-controller-2.0.0" = {
|
||||
|
@ -10156,13 +10156,13 @@ let
|
|||
sha512 = "a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==";
|
||||
};
|
||||
};
|
||||
"tinycolor2-1.5.2" = {
|
||||
"tinycolor2-1.6.0" = {
|
||||
name = "tinycolor2";
|
||||
packageName = "tinycolor2";
|
||||
version = "1.5.2";
|
||||
version = "1.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.5.2.tgz";
|
||||
sha512 = "h80m9GPFGbcLzZByXlNSEhp1gf8Dy+VX/2JCGUZsWLo7lV1mnE/XlxGYgRBoMLJh1lIDXP0EMC4RPTjlRaV+Bg==";
|
||||
url = "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz";
|
||||
sha512 = "XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==";
|
||||
};
|
||||
};
|
||||
"title-case-3.0.3" = {
|
||||
|
@ -10804,13 +10804,13 @@ let
|
|||
sha512 = "ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==";
|
||||
};
|
||||
};
|
||||
"vm2-3.9.13" = {
|
||||
"vm2-3.9.14" = {
|
||||
name = "vm2";
|
||||
packageName = "vm2";
|
||||
version = "3.9.13";
|
||||
version = "3.9.14";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/vm2/-/vm2-3.9.13.tgz";
|
||||
sha512 = "0rvxpB8P8Shm4wX2EKOiMp7H2zq+HUE/UwodY0pCZXs9IffIKZq6vUti5OgkVCTakKo9e/fgO4X1fkwfjWxE3Q==";
|
||||
url = "https://registry.npmjs.org/vm2/-/vm2-3.9.14.tgz";
|
||||
sha512 = "HgvPHYHeQy8+QhzlFryvSteA4uQLBCOub02mgqdR+0bN/akRZ48TGB1v0aCv7ksyc0HXx16AZtMHKS38alc6TA==";
|
||||
};
|
||||
};
|
||||
"vue-2.6.14" = {
|
||||
|
@ -11359,10 +11359,10 @@ in
|
|||
n8n = nodeEnv.buildNodePackage {
|
||||
name = "n8n";
|
||||
packageName = "n8n";
|
||||
version = "0.214.0";
|
||||
version = "0.214.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n/-/n8n-0.214.0.tgz";
|
||||
sha512 = "nCwdAvgweOtKOg1ZAMLNoc9PgKBFPHAob3+2mw1UAqV0O+pBFcearssVMczcqiH9yr+PYkL4FKqvrPkB292Iwg==";
|
||||
url = "https://registry.npmjs.org/n8n/-/n8n-0.214.2.tgz";
|
||||
sha512 = "9KbRJMT8/f4+5kiCnqZbe+ETKdBnBb5VJtw7DUbtu3Uj327dtGlPeX2E/kgXwwonnkO6XgdOteJZDSiixxozbg==";
|
||||
};
|
||||
dependencies = [
|
||||
(sources."@acuminous/bitsyntax-0.1.2" // {
|
||||
|
@ -11452,15 +11452,15 @@ in
|
|||
];
|
||||
})
|
||||
sources."@azure/ms-rest-nodeauth-3.1.1"
|
||||
(sources."@azure/msal-browser-2.32.2" // {
|
||||
(sources."@azure/msal-browser-2.33.0" // {
|
||||
dependencies = [
|
||||
sources."@azure/msal-common-9.1.1"
|
||||
sources."@azure/msal-common-10.0.0"
|
||||
];
|
||||
})
|
||||
sources."@azure/msal-common-7.6.0"
|
||||
(sources."@azure/msal-node-1.14.6" // {
|
||||
(sources."@azure/msal-node-1.15.0" // {
|
||||
dependencies = [
|
||||
sources."@azure/msal-common-9.1.1"
|
||||
sources."@azure/msal-common-10.0.0"
|
||||
];
|
||||
})
|
||||
(sources."@azure/storage-blob-12.12.0" // {
|
||||
|
@ -11656,7 +11656,7 @@ in
|
|||
sources."@types/connect-3.4.35"
|
||||
sources."@types/duplexify-3.6.1"
|
||||
sources."@types/es-aggregate-error-1.0.2"
|
||||
sources."@types/express-4.17.16"
|
||||
sources."@types/express-4.17.17"
|
||||
sources."@types/express-jwt-0.0.42"
|
||||
sources."@types/express-serve-static-core-4.17.33"
|
||||
sources."@types/express-unless-2.0.1"
|
||||
|
@ -11666,7 +11666,7 @@ in
|
|||
sources."@types/long-4.0.2"
|
||||
sources."@types/mime-3.0.1"
|
||||
sources."@types/multer-1.4.7"
|
||||
sources."@types/node-18.11.18"
|
||||
sources."@types/node-18.11.19"
|
||||
(sources."@types/node-fetch-2.6.2" // {
|
||||
dependencies = [
|
||||
sources."form-data-3.0.1"
|
||||
|
@ -11681,7 +11681,7 @@ in
|
|||
sources."@types/tough-cookie-2.3.8"
|
||||
sources."@types/tunnel-0.0.3"
|
||||
sources."@types/uuid-9.0.0"
|
||||
sources."@types/validator-13.7.11"
|
||||
sources."@types/validator-13.7.12"
|
||||
sources."@types/webidl-conversions-7.0.0"
|
||||
sources."@types/whatwg-url-8.2.2"
|
||||
sources."@vue/compiler-sfc-2.7.14"
|
||||
|
@ -11769,7 +11769,7 @@ in
|
|||
})
|
||||
sources."available-typed-arrays-1.0.5"
|
||||
sources."avsc-5.7.7"
|
||||
(sources."aws-sdk-2.1308.0" // {
|
||||
(sources."aws-sdk-2.1310.0" // {
|
||||
dependencies = [
|
||||
sources."buffer-4.9.2"
|
||||
sources."events-1.1.1"
|
||||
|
@ -11800,7 +11800,7 @@ in
|
|||
})
|
||||
sources."bcrypt-pbkdf-1.0.2"
|
||||
sources."bcryptjs-2.4.3"
|
||||
sources."better-sqlite3-8.0.1"
|
||||
sources."better-sqlite3-8.1.0"
|
||||
sources."big-integer-1.6.51"
|
||||
sources."big.js-6.2.1"
|
||||
sources."bignumber.js-2.4.0"
|
||||
|
@ -12252,7 +12252,7 @@ in
|
|||
sources."humanize-ms-1.2.1"
|
||||
sources."hyperlinker-1.0.0"
|
||||
sources."iconv-lite-0.6.3"
|
||||
sources."ics-2.41.0"
|
||||
sources."ics-2.44.0"
|
||||
sources."ieee754-1.2.1"
|
||||
sources."ignore-5.2.4"
|
||||
(sources."imap-0.8.19" // {
|
||||
|
@ -12427,7 +12427,7 @@ in
|
|||
sources."lodash.uniqby-4.7.0"
|
||||
sources."lodash.unset-4.5.2"
|
||||
sources."lodash.zipobject-4.1.3"
|
||||
sources."logform-2.4.2"
|
||||
sources."logform-2.5.0"
|
||||
sources."long-4.0.0"
|
||||
sources."lossless-json-1.0.5"
|
||||
(sources."lower-case-2.0.2" // {
|
||||
|
@ -12487,7 +12487,7 @@ in
|
|||
];
|
||||
})
|
||||
sources."minimist-1.2.7"
|
||||
sources."minipass-4.0.1"
|
||||
sources."minipass-4.0.2"
|
||||
(sources."minipass-collect-1.0.2" // {
|
||||
dependencies = [
|
||||
sources."minipass-3.3.6"
|
||||
|
@ -12581,8 +12581,8 @@ in
|
|||
sources."vue2-boring-avatars-0.3.8"
|
||||
];
|
||||
})
|
||||
sources."n8n-editor-ui-0.180.0"
|
||||
(sources."n8n-nodes-base-0.212.0" // {
|
||||
sources."n8n-editor-ui-0.180.2"
|
||||
(sources."n8n-nodes-base-0.212.2" // {
|
||||
dependencies = [
|
||||
sources."chokidar-3.5.2"
|
||||
];
|
||||
|
@ -12608,7 +12608,7 @@ in
|
|||
sources."tslib-2.5.0"
|
||||
];
|
||||
})
|
||||
sources."node-abi-3.31.0"
|
||||
sources."node-abi-3.32.0"
|
||||
sources."node-abort-controller-3.1.1"
|
||||
sources."node-addon-api-4.3.0"
|
||||
sources."node-ensure-0.0.0"
|
||||
|
@ -13083,7 +13083,7 @@ in
|
|||
sources."through2-filter-3.0.0"
|
||||
sources."throwback-4.1.0"
|
||||
sources."timeago.js-4.0.2"
|
||||
sources."tinycolor2-1.5.2"
|
||||
sources."tinycolor2-1.6.0"
|
||||
(sources."title-case-3.0.3" // {
|
||||
dependencies = [
|
||||
sources."tslib-2.5.0"
|
||||
|
@ -13227,7 +13227,7 @@ in
|
|||
sources."core-util-is-1.0.2"
|
||||
];
|
||||
})
|
||||
sources."vm2-3.9.13"
|
||||
sources."vm2-3.9.14"
|
||||
sources."vue-2.7.14"
|
||||
sources."vue-agile-2.0.0"
|
||||
sources."vue-color-2.8.1"
|
||||
|
|
|
@ -26,11 +26,11 @@ mkDerivation rec {
|
|||
pname = "teamviewer";
|
||||
# teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime
|
||||
outputs = [ "out" "dev" ];
|
||||
version = "15.35.7";
|
||||
version = "15.38.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
|
||||
sha256 = "sha256-KNUhe0c6Th2pW7+Lmo62FYdOv+8t7Z5/eQkYPN8eusc=";
|
||||
url = "https://dl.tvcdn.de/download/linux/version_${lib.versions.major version}x/teamviewer_${version}_amd64.deb";
|
||||
sha256 = "sha256-+GGpGV8rl15VQvPRA2PWngQI4VoxCrZ0ArEm9FgdOVE=";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
, extra-cmake-modules
|
||||
, shared-mime-info
|
||||
# Qt
|
||||
, qtnetworkauth
|
||||
, qtxmlpatterns
|
||||
, qtwebengine
|
||||
, qca-qt5
|
||||
|
@ -28,11 +29,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "kbibtex";
|
||||
version = "0.9.2";
|
||||
version = "0.9.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/KBibTeX/${version}/kbibtex-${version}.tar.xz";
|
||||
sha256 = "09xcdx363z9hps3wbr1kx96a6q6678y8pg8r3apyps4xm7xm31nr";
|
||||
src = let
|
||||
majorMinorPatch = lib.concatStringsSep "." (lib.take 3 (lib.splitVersion version));
|
||||
in fetchurl {
|
||||
url = "mirror://kde/stable/KBibTeX/${majorMinorPatch}/kbibtex-${version}.tar.xz";
|
||||
hash = "sha256-kH/E5xv9dmzM7WrIMlGCo4y0Xv/7XHowELJP3OJz8kQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -41,6 +44,7 @@ mkDerivation rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
qtnetworkauth
|
||||
qtxmlpatterns
|
||||
qtwebengine
|
||||
qca-qt5
|
||||
|
|
|
@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = {
|
||||
description = "A codeplug programming tool for DMR radios";
|
||||
description = "GUI application and command line tool for programming DMR radios";
|
||||
homepage = "https://dm3mat.darc.de/qdmr/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ janik _0x4A6F ];
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
, python ? null
|
||||
, ncurses, swig2
|
||||
, extraPackages ? []
|
||||
} :
|
||||
, testers
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
|
@ -14,7 +15,7 @@ let
|
|||
modulesPath = "lib/SoapySDR/modules" + modulesVersion;
|
||||
extraPackagesSearchPath = lib.makeSearchPath modulesPath extraPackages;
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
in stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "soapysdr";
|
||||
inherit version;
|
||||
|
||||
|
@ -58,12 +59,15 @@ in stdenv.mkDerivation {
|
|||
done
|
||||
'';
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/pothosware/SoapySDR";
|
||||
description = "Vendor and platform neutral SDR support library";
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ markuskowa ];
|
||||
mainProgram = "SoapySDRUtil";
|
||||
pkgConfigModules = [ "SoapySDR" ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
194
pkgs/applications/science/chemistry/nwchem/default.nix
Normal file
194
pkgs/applications/science/chemistry/nwchem/default.nix
Normal file
|
@ -0,0 +1,194 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, pkgs
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, which
|
||||
, openssh
|
||||
, gcc
|
||||
, gfortran
|
||||
, perl
|
||||
, mpi
|
||||
, blas
|
||||
, lapack
|
||||
, python3
|
||||
, tcsh
|
||||
, bash
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
assert blas.isILP64 == lapack.isILP64;
|
||||
|
||||
let
|
||||
versionGA = "5.7.2"; # Fixed by nwchem
|
||||
|
||||
ga_src = fetchFromGitHub {
|
||||
owner = "GlobalArrays";
|
||||
repo = "ga";
|
||||
rev = "v${versionGA}";
|
||||
sha256 = "0c1y9a5jpdw9nafzfmvjcln1xc2gklskaly0r1alm18ng9zng33i";
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nwchem";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwchemgit";
|
||||
repo = "nwchem";
|
||||
rev = "v${version}-release";
|
||||
sha256 = "1ckhcjaw1hzdsmm1x2fva27c4rs3r0h82qivg72v53idz880hbp3";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix Python 3.10 compatibility
|
||||
(fetchpatch {
|
||||
name = "python3.10";
|
||||
url = "https://github.com/nwchemgit/nwchem/commit/638401361c6f294164a4f820ff867a62ac836fd5.patch";
|
||||
sha256 = "sha256-yUZb3wWYZm1dX0HwvffksFwhVdb7ix1p8ooJnqiSgEg=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl
|
||||
automake
|
||||
autoconf
|
||||
libtool
|
||||
makeWrapper
|
||||
gfortran
|
||||
which
|
||||
];
|
||||
buildInputs = [
|
||||
tcsh
|
||||
openssh
|
||||
blas
|
||||
lapack
|
||||
python3
|
||||
];
|
||||
propagatedBuildInputs = [ mpi ];
|
||||
propagatedUserEnvPkgs = [ mpi ];
|
||||
|
||||
postUnpack = ''
|
||||
cp -r ${ga_src}/ source/src/tools/ga-${versionGA}
|
||||
chmod -R u+w source/src/tools/ga-${versionGA}
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
find -type f -executable -exec sed -i "s:/bin/csh:${tcsh}/bin/tcsh:" \{} \;
|
||||
find -type f -name "GNUmakefile" -exec sed -i "s:/usr/bin/gcc:${gcc}/bin/gcc:" \{} \;
|
||||
find -type f -name "GNUmakefile" -exec sed -i "s:/bin/rm:rm:" \{} \;
|
||||
find -type f -executable -exec sed -i "s:/bin/rm:rm:" \{} \;
|
||||
find -type f -name "makelib.h" -exec sed -i "s:/bin/rm:rm:" \{} \;
|
||||
|
||||
# Overwrite script, skipping the download
|
||||
echo -e '#!/bin/sh\n cd ga-${versionGA};autoreconf -ivf' > src/tools/get-tools-github
|
||||
|
||||
patchShebangs ./
|
||||
'';
|
||||
|
||||
# There is no configure script. Instead the build is controlled via
|
||||
# environment variables passed to the Makefile
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
# config parameters
|
||||
export NWCHEM_TARGET="LINUX64"
|
||||
|
||||
export ARMCI_NETWORK="MPI-PR"
|
||||
export USE_MPI="y"
|
||||
export USE_MPIF="y"
|
||||
|
||||
export NWCHEM_MODULES="all python"
|
||||
|
||||
export USE_PYTHONCONFIG="y"
|
||||
export USE_PYTHON64="n"
|
||||
export PYTHONLIBTYPE="so"
|
||||
export PYTHONHOME="${python3}"
|
||||
export PYTHONVERSION=${lib.versions.majorMinor python3.version}
|
||||
|
||||
export BLASOPT="-L${blas}/lib -lblas"
|
||||
export LAPACK_LIB="-L${lapack}/lib -llapack"
|
||||
export BLAS_SIZE=${if blas.isILP64 then "8" else "4"}
|
||||
|
||||
# extra TCE related options
|
||||
export MRCC_METHODS="y"
|
||||
export EACCSD="y"
|
||||
export IPCCSD="y"
|
||||
|
||||
export NWCHEM_TOP="$(pwd)"
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preBuild = ''
|
||||
ln -s ${ga_src} src/tools/ga-${versionGA}.tar.gz
|
||||
cd src
|
||||
make nwchem_config
|
||||
${lib.optionalString (!blas.isILP64) "make 64_to_32"}
|
||||
'';
|
||||
|
||||
postBuild = ''
|
||||
cd $NWCHEM_TOP/src/util
|
||||
make version
|
||||
make
|
||||
cd $NWCHEM_TOP/src
|
||||
make link
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/nwchem
|
||||
|
||||
cp $NWCHEM_TOP/bin/LINUX64/nwchem $out/bin/nwchem
|
||||
cp -r $NWCHEM_TOP/src/data $out/share/nwchem/
|
||||
cp -r $NWCHEM_TOP/src/basis/libraries $out/share/nwchem/data
|
||||
cp -r $NWCHEM_TOP/src/nwpw/libraryps $out/share/nwchem/data
|
||||
cp -r $NWCHEM_TOP/QA $out/share/nwchem
|
||||
|
||||
wrapProgram $out/bin/nwchem \
|
||||
--set-default NWCHEM_BASIS_LIBRARY $out/share/nwchem/data/libraries/
|
||||
|
||||
cat > $out/share/nwchem/nwchemrc << EOF
|
||||
nwchem_basis_library $out/share/nwchem/data/libraries/
|
||||
nwchem_nwpw_library $out/share/nwchem//data/libraryps/
|
||||
ffield amber
|
||||
amber_1 $out/share/nwchem/data/amber_s/
|
||||
amber_2 $out/share/nwchem/data/amber_q/
|
||||
amber_3 $out/share/nwchem/data/amber_x/
|
||||
amber_4 $out/share/nwchem/data/amber_u/
|
||||
spce $out/share/nwchem/data/solvents/spce.rst
|
||||
charmm_s $out/share/nwchem/data/charmm_s/
|
||||
charmm_x $out/share/nwchem/data/charmm_x/
|
||||
EOF
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
export OMP_NUM_THREADS=1
|
||||
|
||||
# Fix to make mpich run in a sandbox
|
||||
export HYDRA_IFACE=lo
|
||||
export OMPI_MCA_rmaps_base_oversubscribe=1
|
||||
|
||||
# run a simple water test
|
||||
mpirun -np 2 $out/bin/nwchem $out/share/nwchem/QA/tests/h2o/h2o.nw > h2o.out
|
||||
grep "Total SCF energy" h2o.out | grep 76.010538
|
||||
'';
|
||||
|
||||
passthru = { inherit mpi; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open Source High-Performance Computational Chemistry";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ sheepforce markuskowa ];
|
||||
homepage = "https://nwchemgit.github.io";
|
||||
license = licenses.ecl20;
|
||||
};
|
||||
}
|
|
@ -1,22 +1,22 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, perl, flex, bison, python3, autoconf
|
||||
, which, cmake
|
||||
, which, cmake, help2man
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "verilator";
|
||||
version = "5.002";
|
||||
version = "5.006";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RNoKAEF7zl+WqqbxGP/VvdQqQP8VI3hoQku3b/g0XpU=";
|
||||
hash = "sha256-PA8hbE6XECapuaO5YcgEodOoxSDqpMucdijJBBb7fZg=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
buildInputs = [ perl ];
|
||||
nativeBuildInputs = [ flex bison python3 autoconf ];
|
||||
nativeBuildInputs = [ flex bison python3 autoconf help2man ];
|
||||
nativeCheckInputs = [ which ];
|
||||
|
||||
doCheck = stdenv.isLinux; # darwin tests are broken for now...
|
||||
|
@ -24,14 +24,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
preConfigure = "autoconf";
|
||||
|
||||
preCheck = ''
|
||||
patchShebangs \
|
||||
src/flexfix \
|
||||
src/vlcovgen \
|
||||
bin/verilator \
|
||||
bin/verilator_coverage \
|
||||
test_regress/driver.pl \
|
||||
test_regress/t/*.pl
|
||||
postPatch = ''
|
||||
patchShebangs bin/* src/{flexfix,vlcovgen} test_regress/{driver.pl,t/*.pl}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -28,16 +28,16 @@
|
|||
with python3Packages;
|
||||
buildPythonApplication rec {
|
||||
pname = "kitty";
|
||||
version = "0.27.0";
|
||||
version = "0.27.1";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kovidgoyal";
|
||||
repo = "kitty";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-742RB5ijCEYgjGgGyb6ZZ34GfMHm8253d3cNLQQzL38=";
|
||||
hash = "sha256-/K/5T15kULTQP1FCLnyrKfhlQjIStayutaxLjmHjHes=";
|
||||
};
|
||||
vendorHash = "sha256-0hylttMwkmhpydKY7cpOoHrKmaGF4ediI8uwtcT3x4I=";
|
||||
vendorHash = "sha256-JLPPNOsoq+ErLhELsX3z3YehYfgp7OGXEXlP3IVcM5k=";
|
||||
|
||||
buildInputs = [
|
||||
harfbuzz
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
, numactl
|
||||
, writeText
|
||||
# Processing, video codecs, containers
|
||||
, ffmpeg-full
|
||||
, ffmpeg_5-full
|
||||
, nv-codec-headers
|
||||
, libogg
|
||||
, x264
|
||||
|
@ -34,6 +34,7 @@
|
|||
, libtheora
|
||||
, dav1d
|
||||
, zimg
|
||||
, svt-av1
|
||||
# Codecs, audio
|
||||
, libopus
|
||||
, lame
|
||||
|
@ -84,57 +85,55 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "1.5.1";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HandBrake";
|
||||
repo = "HandBrake";
|
||||
rev = version;
|
||||
sha256 = "1kk11zl1mk37d4cvbc75gfndmma7vy3vkp4gmkyl92kiz6zadhyy";
|
||||
sha256 = "sha256-0MJ1inMNA6s8l2S0wnpM2c7FxOoOHxs9u4E/rgKfjJo=";
|
||||
};
|
||||
|
||||
# Handbrake maintains a set of ffmpeg patches. In particular, these
|
||||
# patches are required for subtitle timing to work correctly. See:
|
||||
# https://github.com/HandBrake/HandBrake/issues/4029
|
||||
ffmpeg-version = "4.4.1";
|
||||
ffmpeg-hb = ffmpeg-full.overrideAttrs (old: {
|
||||
ffmpeg-version = "5.1.1";
|
||||
ffmpeg-hb = ffmpeg_5-full.overrideAttrs (old: {
|
||||
version = ffmpeg-version;
|
||||
src = fetchurl {
|
||||
url = "https://www.ffmpeg.org/releases/ffmpeg-${ffmpeg-version}.tar.bz2";
|
||||
hash = "sha256-j8nyCsXtlRFanihWR63Q7t1cwamKA5raFMEyRS+YrEI=";
|
||||
hash = "sha256-zQ4W+QNCEmbVzN3t97g7nldUrvS596fwbOnkyALwVFs=";
|
||||
};
|
||||
patches = old.patches or [] ++ [
|
||||
"${src}/contrib/ffmpeg/A01-qsv-scale-fix-green-stripes.patch"
|
||||
"${src}/contrib/ffmpeg/A02-qsv-interpolation.patch"
|
||||
"${src}/contrib/ffmpeg/A03-qsv-dx11-ffmpeg44.patch"
|
||||
"${src}/contrib/ffmpeg/A04-configure-ensure-the-right-libmfx-version-is-used-wh.patch"
|
||||
"${src}/contrib/ffmpeg/A05-qsv-add-includedir-mfx-to-the-search-path-for-old-ve.patch"
|
||||
"${src}/contrib/ffmpeg/A06-qsv-load-user-plugin-for-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A07-qsv-build-audio-related-code-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A08-qsvenc-don-t-support-multi-frame-encode-when-MFX_VER.patch"
|
||||
"${src}/contrib/ffmpeg/A09-qsvenc-don-t-support-MFX_RATECONTROL_LA_EXT-when-MFX.patch"
|
||||
"${src}/contrib/ffmpeg/A10-qsv-don-t-support-OPAQUE-memory-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A11-qsv-opaque-deinterlace.patch"
|
||||
"${src}/contrib/ffmpeg/A12-qsv-opaque-vpp.patch"
|
||||
"${src}/contrib/ffmpeg/A13-qsv-opaque-hwcontext_qsv.patch"
|
||||
"${src}/contrib/ffmpeg/A14-configure-check-mfxdefs.h-instead-of-mfxvp9.h-for-MF.patch"
|
||||
"${src}/contrib/ffmpeg/A15-configure-allow-user-to-build-FFmpeg-against-oneVPL.patch"
|
||||
"${src}/contrib/ffmpeg/A16-qsv-add-macro-QSV_ONEVPL-for-the-oneVPL-SDK.patch"
|
||||
"${src}/contrib/ffmpeg/A17-qsv-use-a-new-method-to-create-mfx-session-when-usin.patch"
|
||||
"${src}/contrib/ffmpeg/A18-qsv-new-method-hwcontext_qsv.patch"
|
||||
"${src}/contrib/ffmpeg/A19-qsv-fix-session-for-d3d11-device.patch"
|
||||
"${src}/contrib/ffmpeg/A20-mov-read-name-track-tag-written-by-movenc.patch"
|
||||
"${src}/contrib/ffmpeg/A21-movenc-write-3gpp-track-titl-tag.patch"
|
||||
"${src}/contrib/ffmpeg/A22-mov-read-3gpp-udta-tags.patch"
|
||||
"${src}/contrib/ffmpeg/A23-movenc-write-3gpp-track-names-tags-for-all-available.patch"
|
||||
"${src}/contrib/ffmpeg/A24-FFmpeg-devel-amfenc-Add-support-for-pict_type-field.patch"
|
||||
"${src}/contrib/ffmpeg/A25-dvdsubdec-fix-processing-of-partial-packets.patch"
|
||||
"${src}/contrib/ffmpeg/A26-ccaption_dec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A27-dvdsubdec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A28-dvdsubdec-use-pts-of-initial-packet.patch"
|
||||
"${src}/contrib/ffmpeg/A29-matroskaenc-aac-extradata-updated.patch"
|
||||
"${src}/contrib/ffmpeg/A30-ccaption_dec-fix-pts-in-real_time-mode.patch"
|
||||
"${src}/contrib/ffmpeg/A32-qsv-fix-decode-10bit-hdr.patch"
|
||||
patches = old.patches or [ ] ++ [
|
||||
"${src}/contrib/ffmpeg/A01-qsv-libavfilter-qsvvpp-change-the-output-frame-s-width-a.patch"
|
||||
"${src}/contrib/ffmpeg/A02-qsv-configure-ensure-enable-libmfx-uses-libmfx-1.x.patch"
|
||||
"${src}/contrib/ffmpeg/A03-qsv-configure-fix-the-check-for-MFX_CODEC_VP9.patch"
|
||||
"${src}/contrib/ffmpeg/A04-qsv-remove-mfx-prefix-from-mfx-headers.patch"
|
||||
"${src}/contrib/ffmpeg/A05-qsv-load-user-plugin-for-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A06-qsv-build-audio-related-code-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A07-qsvenc-support-multi-frame-encode-when-MFX_VERSION-2.patch"
|
||||
"${src}/contrib/ffmpeg/A08-qsvenc-support-MFX_RATECONTROL_LA_EXT-when-MFX_VERSI.patch"
|
||||
"${src}/contrib/ffmpeg/A09-qsv-support-OPAQUE-memory-when-MFX_VERSION-2.0.patch"
|
||||
"${src}/contrib/ffmpeg/A10-qsv-configure-add-enable-libvpl-option.patch"
|
||||
"${src}/contrib/ffmpeg/A11-qsv-use-a-new-method-to-create-mfx-session-when-usin.patch"
|
||||
"${src}/contrib/ffmpeg/A12-qsv-fix-decode-10bit-hdr.patch"
|
||||
"${src}/contrib/ffmpeg/A13-mov-read-name-track-tag-written-by-movenc.patch"
|
||||
"${src}/contrib/ffmpeg/A14-movenc-write-3gpp-track-titl-tag.patch"
|
||||
"${src}/contrib/ffmpeg/A15-mov-read-3gpp-udta-tags.patch"
|
||||
"${src}/contrib/ffmpeg/A16-movenc-write-3gpp-track-names-tags-for-all-available.patch"
|
||||
"${src}/contrib/ffmpeg/A17-FFmpeg-devel-amfenc-Add-support-for-pict_type-field.patch"
|
||||
"${src}/contrib/ffmpeg/A18-dvdsubdec-fix-processing-of-partial-packets.patch"
|
||||
"${src}/contrib/ffmpeg/A19-ccaption_dec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A20-dvdsubdec-return-number-of-bytes-used.patch"
|
||||
"${src}/contrib/ffmpeg/A21-dvdsubdec-use-pts-of-initial-packet.patch"
|
||||
"${src}/contrib/ffmpeg/A22-matroskaenc-aac-extradata-updated.patch"
|
||||
"${src}/contrib/ffmpeg/A23-ccaption_dec-fix-pts-in-real_time-mode.patch"
|
||||
"${src}/contrib/ffmpeg/A24-fix-eac3-dowmix.patch"
|
||||
"${src}/contrib/ffmpeg/A25-enable-truehd-pass.patch"
|
||||
"${src}/contrib/ffmpeg/A26-Update-the-min-version-to-1.4.23.0-for-AMF-SDK.patch"
|
||||
"${src}/contrib/ffmpeg/A27-avcodec-amfenc-Fixes-the-color-information-in-the-ou.patch"
|
||||
"${src}/contrib/ffmpeg/A28-avcodec-amfenc-HDR-metadata.patch"
|
||||
"${src}/contrib/ffmpeg/A30-svt-av1-backports.patch"
|
||||
];
|
||||
});
|
||||
|
||||
|
@ -151,148 +150,151 @@ let
|
|||
inherit (lib) optional optionals optionalString versions;
|
||||
|
||||
in
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "handbrake";
|
||||
inherit version src;
|
||||
let
|
||||
self = stdenv.mkDerivation rec {
|
||||
pname = "handbrake";
|
||||
inherit version src;
|
||||
|
||||
postPatch = ''
|
||||
install -Dm444 ${versionFile} ${versionFile.name}
|
||||
postPatch = ''
|
||||
install -Dm444 ${versionFile} ${versionFile.name}
|
||||
|
||||
patchShebangs scripts
|
||||
patchShebangs scripts
|
||||
|
||||
substituteInPlace libhb/hb.c \
|
||||
--replace 'return hb_version;' 'return "${version}";'
|
||||
substituteInPlace libhb/hb.c \
|
||||
--replace 'return hb_version;' 'return "${version}";'
|
||||
|
||||
# Force using nixpkgs dependencies
|
||||
sed -i '/MODULES += contrib/d' make/include/main.defs
|
||||
sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
|
||||
-e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
|
||||
-i make/configure.py
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
# Use the Nix-provided libxml2 instead of the patched version available on
|
||||
# the Handbrake website.
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
|
||||
# Force using nixpkgs dependencies
|
||||
sed -i '/MODULES += contrib/d' make/include/main.defs
|
||||
sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
|
||||
-e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
|
||||
-i make/configure.py
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
# Use the Nix-provided libxml2 instead of the patched version available on
|
||||
# the Handbrake website.
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
|
||||
|
||||
# Prevent the configure script from failing if xcodebuild isn't available,
|
||||
# which it isn't in the Nix context. (The actual build goes fine without
|
||||
# xcodebuild.)
|
||||
sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
|
||||
'' + optionalString stdenv.isLinux ''
|
||||
# Use the Nix-provided libxml2 instead of the system-provided one.
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
m4
|
||||
pkg-config
|
||||
python3
|
||||
]
|
||||
++ optionals useGtk [ intltool wrapGAppsHook ];
|
||||
|
||||
buildInputs = [
|
||||
a52dec
|
||||
dav1d
|
||||
ffmpeg-hb
|
||||
fontconfig
|
||||
freetype
|
||||
fribidi
|
||||
harfbuzz
|
||||
jansson
|
||||
lame
|
||||
libass
|
||||
libbluray
|
||||
libdvdcss
|
||||
libdvdnav
|
||||
libdvdread
|
||||
libiconv
|
||||
libjpeg_turbo
|
||||
libogg
|
||||
libopus
|
||||
libsamplerate
|
||||
libtheora
|
||||
libvorbis
|
||||
libvpx
|
||||
libxml2
|
||||
speex
|
||||
x264
|
||||
x265
|
||||
xz
|
||||
zimg
|
||||
]
|
||||
++ optional (!stdenv.isDarwin) numactl
|
||||
++ optionals useGtk [
|
||||
dbus-glib
|
||||
glib
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gstreamer
|
||||
gtk3
|
||||
hicolor-icon-theme
|
||||
libappindicator-gtk3
|
||||
libgudev
|
||||
libnotify
|
||||
udev
|
||||
]
|
||||
++ optional useFdk fdk_aac
|
||||
++ optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
|
||||
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
|
||||
# look at ./make/configure.py search "enable_nvenc"
|
||||
++ optional stdenv.isLinux nv-codec-headers;
|
||||
|
||||
configureFlags = [
|
||||
"--disable-df-fetch"
|
||||
"--disable-df-verify"
|
||||
"--disable-gtk-update-checks"
|
||||
]
|
||||
++ optional (!useGtk) "--disable-gtk"
|
||||
++ optional useFdk "--enable-fdk-aac"
|
||||
++ optional stdenv.isDarwin "--disable-xcode"
|
||||
++ optional stdenv.hostPlatform.isx86 "--harden";
|
||||
|
||||
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
|
||||
NIX_LDFLAGS = [ "-lx265" ];
|
||||
|
||||
makeFlags = [ "--directory=build" ];
|
||||
|
||||
passthru.tests = {
|
||||
basic-conversion =
|
||||
let
|
||||
# Big Buck Bunny example, licensed under CC Attribution 3.0.
|
||||
testMkv = fetchurl {
|
||||
url = "https://github.com/Matroska-Org/matroska-test-files/blob/cf0792be144ac470c4b8052cfe19bb691993e3a2/test_files/test1.mkv?raw=true";
|
||||
sha256 = "1hfxbbgxwfkzv85pvpvx55a72qsd0hxjbm9hkl5r3590zw4s75h9";
|
||||
};
|
||||
in
|
||||
runCommand "${pname}-${version}-basic-conversion" { nativeBuildInputs = [ self ]; } ''
|
||||
mkdir -p $out
|
||||
cd $out
|
||||
HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160
|
||||
test -e test.mp4
|
||||
HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160
|
||||
test -e test.mkv
|
||||
'';
|
||||
version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://handbrake.fr/";
|
||||
description = "A tool for converting video files and ripping DVDs";
|
||||
longDescription = ''
|
||||
Tool for converting and remuxing video files
|
||||
into selection of modern and widely supported codecs
|
||||
and containers. Very versatile and customizable.
|
||||
Package provides:
|
||||
CLI - `HandbrakeCLI`
|
||||
GTK GUI - `ghb`
|
||||
# Prevent the configure script from failing if xcodebuild isn't available,
|
||||
# which it isn't in the Nix context. (The actual build goes fine without
|
||||
# xcodebuild.)
|
||||
sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
|
||||
'' + optionalString stdenv.isLinux ''
|
||||
# Use the Nix-provided libxml2 instead of the system-provided one.
|
||||
substituteInPlace libhb/module.defs \
|
||||
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
|
||||
'';
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ Anton-Latukha wmertens ];
|
||||
platforms = with platforms; unix;
|
||||
broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
m4
|
||||
pkg-config
|
||||
python3
|
||||
]
|
||||
++ optionals useGtk [ intltool wrapGAppsHook ];
|
||||
|
||||
buildInputs = [
|
||||
a52dec
|
||||
dav1d
|
||||
ffmpeg-hb
|
||||
fontconfig
|
||||
freetype
|
||||
fribidi
|
||||
harfbuzz
|
||||
jansson
|
||||
lame
|
||||
libass
|
||||
libbluray
|
||||
libdvdcss
|
||||
libdvdnav
|
||||
libdvdread
|
||||
libiconv
|
||||
libjpeg_turbo
|
||||
libogg
|
||||
libopus
|
||||
libsamplerate
|
||||
libtheora
|
||||
libvorbis
|
||||
libvpx
|
||||
libxml2
|
||||
speex
|
||||
svt-av1
|
||||
x264
|
||||
x265
|
||||
xz
|
||||
zimg
|
||||
]
|
||||
++ optional (!stdenv.isDarwin) numactl
|
||||
++ optionals useGtk [
|
||||
dbus-glib
|
||||
glib
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gstreamer
|
||||
gtk3
|
||||
hicolor-icon-theme
|
||||
libappindicator-gtk3
|
||||
libgudev
|
||||
libnotify
|
||||
udev
|
||||
]
|
||||
++ optional useFdk fdk_aac
|
||||
++ optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
|
||||
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
|
||||
# look at ./make/configure.py search "enable_nvenc"
|
||||
++ optional stdenv.isLinux nv-codec-headers;
|
||||
|
||||
configureFlags = [
|
||||
"--disable-df-fetch"
|
||||
"--disable-df-verify"
|
||||
"--disable-gtk-update-checks"
|
||||
]
|
||||
++ optional (!useGtk) "--disable-gtk"
|
||||
++ optional useFdk "--enable-fdk-aac"
|
||||
++ optional stdenv.isDarwin "--disable-xcode"
|
||||
++ optional stdenv.hostPlatform.isx86 "--harden";
|
||||
|
||||
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
|
||||
NIX_LDFLAGS = [ "-lx265" ];
|
||||
|
||||
makeFlags = [ "--directory=build" ];
|
||||
|
||||
passthru.tests = {
|
||||
basic-conversion =
|
||||
let
|
||||
# Big Buck Bunny example, licensed under CC Attribution 3.0.
|
||||
testMkv = fetchurl {
|
||||
url = "https://github.com/Matroska-Org/matroska-test-files/blob/cf0792be144ac470c4b8052cfe19bb691993e3a2/test_files/test1.mkv?raw=true";
|
||||
sha256 = "1hfxbbgxwfkzv85pvpvx55a72qsd0hxjbm9hkl5r3590zw4s75h9";
|
||||
};
|
||||
in
|
||||
runCommand "${pname}-${version}-basic-conversion" { nativeBuildInputs = [ self ]; } ''
|
||||
mkdir -p $out
|
||||
cd $out
|
||||
HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160
|
||||
test -e test.mp4
|
||||
HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160
|
||||
test -e test.mkv
|
||||
'';
|
||||
version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://handbrake.fr/";
|
||||
description = "A tool for converting video files and ripping DVDs";
|
||||
longDescription = ''
|
||||
Tool for converting and remuxing video files
|
||||
into selection of modern and widely supported codecs
|
||||
and containers. Very versatile and customizable.
|
||||
Package provides:
|
||||
CLI - `HandbrakeCLI`
|
||||
GTK GUI - `ghb`
|
||||
'';
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ Anton-Latukha wmertens ];
|
||||
platforms = with platforms; unix;
|
||||
broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
|
||||
};
|
||||
};
|
||||
};
|
||||
in self
|
||||
in
|
||||
self
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, lima
|
||||
, lima-bin
|
||||
, makeWrapper
|
||||
, qemu
|
||||
, testers
|
||||
, colima
|
||||
# use lima-bin on darwin to support native macOS virtualization
|
||||
# https://github.com/NixOS/nixpkgs/pull/209171
|
||||
, lima-drv ? if stdenv.isDarwin then lima-bin else lima
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
|
@ -41,7 +46,7 @@ buildGoModule rec {
|
|||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/colima \
|
||||
--prefix PATH : ${lib.makeBinPath [ lima qemu ]}
|
||||
--prefix PATH : ${lib.makeBinPath [ lima-drv qemu ]}
|
||||
|
||||
installShellCompletion --cmd colima \
|
||||
--bash <($out/bin/colima completion bash) \
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "nixpacks";
|
||||
version = "1.1.1";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "railwayapp";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SrNYvkJy97GwneA7UClNLaO0fd+ZiMSxCCSgqwESw5Y=";
|
||||
sha256 = "sha256-lQHJ5Y+EMhERxOX062QMNPImAX9tjamGYFXYYUmhpys=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-S/V2PVkL9T/USXAzorDpo0nhRm9DOkNtfw5CADg4oKM=";
|
||||
cargoHash = "sha256-z+DQkl/7kX5tLG9igPnEgHi9sJhB4NoutfV2/BV2U6A=";
|
||||
|
||||
# skip test due FHS dependency
|
||||
doCheck = false;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{ lib, callPackage, runCommandLocal, writeShellScriptBin, glibc, pkgsi686Linux, coreutils, bubblewrap }:
|
||||
|
||||
let buildFHSEnv = callPackage ./env.nix { }; in
|
||||
|
||||
args @ {
|
||||
name
|
||||
, runScript ? "bash"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
, callPackage
|
||||
, cargo
|
||||
, cargo-nextest
|
||||
, clang
|
||||
, lib
|
||||
, makeSetupHook
|
||||
, maturin
|
||||
|
@ -126,8 +127,8 @@ in {
|
|||
bindgenHook = callPackage ({}: makeSetupHook {
|
||||
name = "rust-bindgen-hook";
|
||||
substitutions = {
|
||||
libclang = rustc.llvmPackages.clang.cc.lib;
|
||||
clang = rustc.llvmPackages.clang;
|
||||
libclang = clang.cc.lib;
|
||||
inherit clang;
|
||||
};
|
||||
}
|
||||
./rust-bindgen-hook.sh) {};
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "lxgw-neoxihei";
|
||||
version = "1.005";
|
||||
version = "1.006";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
|
||||
hash = "sha256-IvbbeBjpFz9zHt3mHu5vY8sLETKnvOMv7eHjANQ2GlA=";
|
||||
hash = "sha256-n7TTunWOHGWLxvs75r5My1il0KELOZbAgTGqtMpQ+mQ=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
|
|
@ -35,6 +35,11 @@ stdenv.mkDerivation rec {
|
|||
url = "https://github.com/linuxdeepin/deepin-image-viewer/commit/4a046e6207fea306e592fddc33c1285cf719a63d.patch";
|
||||
sha256 = "sha256-aIgYmq6WDfCE+ZcD0GshxM+QmBWZGjh9MzZcTMrhBJ0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix build with libraw 0.21";
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/2ff11979704dd7156a7e7c3bae9b30f08894063d/trunk/libraw-0.21.patch";
|
||||
sha256 = "sha256-I/w4uiANT8Z8ud/F9WCd3iRHOfplu3fpqnu8ZIs4C+w=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -38,6 +38,7 @@ let
|
|||
|
||||
#### MISC
|
||||
deepin-desktop-base = callPackage ./misc/deepin-desktop-base { };
|
||||
deepin-turbo = callPackage ./misc/deepin-turbo { };
|
||||
};
|
||||
in
|
||||
lib.makeScope libsForQt5.newScope packages
|
||||
|
|
42
pkgs/desktops/deepin/misc/deepin-turbo/default.nix
Normal file
42
pkgs/desktops/deepin/misc/deepin-turbo/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, wrapQtAppsHook
|
||||
, dtkwidget
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "deepin-turbo";
|
||||
version = "0.0.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxdeepin";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-t6/Ws/Q8DO0zBzrUr/liD61VkxbOv4W4x6VgMWr+Ozk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dtkwidget
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/{booster-dtkwidget/CMakeLists.txt,booster-desktop/{CMakeLists.txt,desktop.conf},booster-generic/CMakeLists.txt} --replace "/usr" "$out"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A daemon that helps to launch dtk applications faster";
|
||||
homepage = "https://github.com/linuxdeepin/deepin-turbo";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.deepin.members;
|
||||
};
|
||||
}
|
|
@ -12,6 +12,7 @@
|
|||
, nvme-cli
|
||||
, procps
|
||||
, pulseaudio
|
||||
, libgtop
|
||||
, python3
|
||||
, smartmontools
|
||||
, substituteAll
|
||||
|
@ -112,6 +113,15 @@ super: lib.trivial.pipe super [
|
|||
meta.maintainers = with lib.maintainers; [ rhoriguchi ];
|
||||
}))
|
||||
|
||||
(patchExtension "tophat@fflewddur.github.io" (old: {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./extensionOverridesPatches/tophat_at_fflewddur.github.io.patch;
|
||||
gtop_path = "${libgtop}/lib/girepository-1.0";
|
||||
})
|
||||
];
|
||||
}))
|
||||
|
||||
(patchExtension "unite@hardpixel.eu" (old: {
|
||||
buildInputs = [ xprop ];
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/extension.js b/extension.js
|
||||
index 60396f8..b044872 100644
|
||||
--- a/extension.js
|
||||
+++ b/extension.js
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
/* exported init, enable, disable */
|
||||
|
||||
+imports.gi.GIRepository.Repository.prepend_search_path('@gtop_path@');
|
||||
+
|
||||
let depFailures = [];
|
||||
let missingLibs = [];
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
From 657b70d174fe5cb61e56cb8b9c5e57f1ec216f2b Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
|
||||
Date: Wed, 10 Apr 2019 17:42:57 +0100
|
||||
Subject: [PATCH] Allow http-client 0.6.*.
|
||||
|
||||
Changelog doesn't list any silently breaking semantic changes.
|
||||
---
|
||||
amazonka/amazonka.cabal | 2 +-
|
||||
core/amazonka-core.cabal | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/amazonka/amazonka.cabal b/amazonka/amazonka.cabal
|
||||
index e86713f11c..81c4cb7e48 100644
|
||||
--- a/amazonka.cabal
|
||||
+++ b/amazonka.cabal
|
||||
@@ -67,7 +67,7 @@ library
|
||||
, conduit-extra >= 1.1
|
||||
, directory >= 1.2
|
||||
, exceptions >= 0.6
|
||||
- , http-client >= 0.4 && < 0.6
|
||||
+ , http-client >= 0.4 && < 0.7
|
||||
, http-conduit >= 2.1.7 && < 3
|
||||
, http-types >= 0.8
|
||||
, ini >= 0.3.5
|
|
@ -1,26 +0,0 @@
|
|||
From 657b70d174fe5cb61e56cb8b9c5e57f1ec216f2b Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
|
||||
Date: Wed, 10 Apr 2019 17:42:57 +0100
|
||||
Subject: [PATCH] Allow http-client 0.6.*.
|
||||
|
||||
Changelog doesn't list any silently breaking semantic changes.
|
||||
---
|
||||
amazonka/amazonka.cabal | 2 +-
|
||||
core/amazonka-core.cabal | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/amazonka-core.cabal b/core/amazonka-core.cabal
|
||||
index 9796e007cf..eccb24e5bd 100644
|
||||
--- a/amazonka-core.cabal
|
||||
+++ b/amazonka-core.cabal
|
||||
@@ -90,7 +90,7 @@ library
|
||||
, deepseq >= 1.4
|
||||
, exceptions >= 0.6
|
||||
, hashable >= 1.2
|
||||
- , http-client >= 0.4 && < 0.6
|
||||
+ , http-client >= 0.4 && < 0.7
|
||||
, http-conduit >= 2.1.4 && < 3
|
||||
, http-types >= 0.8 && (<0.11 || >=0.12)
|
||||
, lens >= 4.4
|
||||
--
|
||||
2.23.0
|
|
@ -1,333 +0,0 @@
|
|||
From 2490fa65eeba52699a7c0e303aa5cb9b78c2b1cf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
|
||||
Date: Fri, 17 Apr 2020 20:49:23 +0200
|
||||
Subject: [PATCH] Compile against GHC 8.8
|
||||
|
||||
---
|
||||
Setup.hs | 15 ---------------
|
||||
src/Darcs/Patch/Depends.hs | 2 +-
|
||||
src/Darcs/Patch/Match.hs | 12 ++++++------
|
||||
src/Darcs/Patch/PatchInfoAnd.hs | 2 +-
|
||||
src/Darcs/Patch/Prim/V1/Apply.hs | 6 +++---
|
||||
src/Darcs/Patch/Prim/V1/Commute.hs | 1 +
|
||||
src/Darcs/Patch/ReadMonads.hs | 1 +
|
||||
src/Darcs/Patch/V1/Commute.hs | 1 +
|
||||
src/Darcs/Repository/Diff.hs | 2 +-
|
||||
src/Darcs/Repository/Match.hs | 2 +-
|
||||
src/Darcs/Util/Tree/Monad.hs | 4 ++--
|
||||
12 files changed, 30 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/Setup.hs b/Setup.hs
|
||||
index f5cc3e8..05caac4 100644
|
||||
--- a/Setup.hs
|
||||
+++ b/Setup.hs
|
||||
@@ -75,21 +75,6 @@
|
||||
postInst = \ _ flags pkg lbi ->
|
||||
installManpage pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest,
|
||||
|
||||
- sDistHook = \ pkg lbi hooks flags -> do
|
||||
- let pkgVer = packageVersion pkg
|
||||
- verb = fromFlag $ sDistVerbosity flags
|
||||
- x <- versionPatches verb pkgVer
|
||||
- y <- context verb
|
||||
- rewriteFileEx silent "release/distributed-version" $ show x
|
||||
- rewriteFileEx silent "release/distributed-context" $ show y
|
||||
- putStrLn "about to hand over"
|
||||
- let pkg' = pkg { library = sanity (library pkg) }
|
||||
- sanity (Just lib) = Just $ lib { libBuildInfo = sanity' $ libBuildInfo lib }
|
||||
- sanity _ = error "eh"
|
||||
- sanity' bi = bi { otherModules = [ m | m <- otherModules bi, toFilePath m /= "Version" ] }
|
||||
-
|
||||
- sDistHook simpleUserHooks pkg' lbi hooks flags
|
||||
- ,
|
||||
postConf = \_ _ _ _ -> return () --- Usually this checked for external C
|
||||
--- dependencies, but we already have performed such
|
||||
--- check in the confHook
|
||||
--- a/darcs.cabal 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ b/darcs.cabal 2020-04-18 10:26:07.605129733 +0200
|
||||
@@ -1,6 +1,5 @@
|
||||
Name: darcs
|
||||
version: 2.14.2
|
||||
-x-revision: 1
|
||||
License: GPL-2
|
||||
License-file: COPYING
|
||||
Author: David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>
|
||||
@@ -75,7 +74,7 @@
|
||||
description: Use libcurl for HTTP support.
|
||||
|
||||
-- in future this could extend to any other external libraries,
|
||||
--- e.g. libiconv
|
||||
+-- e.g. libiconv
|
||||
flag pkgconfig
|
||||
description: Use pkgconfig to configure libcurl
|
||||
default: False
|
||||
@@ -113,7 +112,7 @@
|
||||
-- ----------------------------------------------------------------------
|
||||
|
||||
custom-setup
|
||||
- setup-depends: base >= 4.9 && < 4.13,
|
||||
+ setup-depends: base >= 4.9 && <5,
|
||||
Cabal >= 1.24,
|
||||
process >= 1.2.3.0 && < 1.7,
|
||||
filepath >= 1.4.1 && < 1.5.0.0,
|
||||
@@ -381,7 +380,7 @@
|
||||
else
|
||||
build-depends: unix >= 2.7.1.0 && < 2.8
|
||||
|
||||
- build-depends: base >= 4.9 && < 4.13,
|
||||
+ build-depends: base >= 4.9 && <5,
|
||||
stm >= 2.1 && < 2.6,
|
||||
binary >= 0.5 && < 0.10,
|
||||
containers >= 0.5.6.2 && < 0.7,
|
||||
@@ -402,19 +401,19 @@
|
||||
tar >= 0.5 && < 0.6,
|
||||
data-ordlist == 0.4.*,
|
||||
attoparsec >= 0.13.0.1 && < 0.14,
|
||||
- zip-archive >= 0.3 && < 0.5,
|
||||
+ zip-archive >= 0.3 && <1,
|
||||
async >= 2.0.2 && < 2.3,
|
||||
- sandi >= 0.4 && < 0.6,
|
||||
+ sandi >= 0.4 && <1,
|
||||
unix-compat >= 0.4.2 && < 0.6,
|
||||
bytestring >= 0.10.6 && < 0.11,
|
||||
old-time >= 1.1.0.3 && < 1.2,
|
||||
time >= 1.5.0.1 && < 1.10,
|
||||
- text >= 1.2.1.3 && < 1.3,
|
||||
+ text >= 1.2.1.3 && <2,
|
||||
directory >= 1.2.6.2 && < 1.4,
|
||||
process >= 1.2.3.0 && < 1.7,
|
||||
array >= 0.5.1.0 && < 0.6,
|
||||
random >= 1.1 && < 1.2,
|
||||
- hashable >= 1.2.3.3 && < 1.3,
|
||||
+ hashable >= 1.2.3.3 && <2,
|
||||
mmap >= 0.5.9 && < 0.6,
|
||||
zlib >= 0.6.1.2 && < 0.7.0.0,
|
||||
network-uri == 2.6.*,
|
||||
@@ -443,7 +442,7 @@
|
||||
|
||||
-- The terminfo package cannot be built on Windows.
|
||||
if flag(terminfo) && !os(windows)
|
||||
- build-depends: terminfo >= 0.4.0.2 && < 0.5
|
||||
+ build-depends: terminfo >= 0.4.0.2 && <1
|
||||
cpp-options: -DHAVE_TERMINFO
|
||||
|
||||
default-extensions:
|
||||
@@ -500,7 +499,7 @@
|
||||
cc-options: -D_REENTRANT
|
||||
|
||||
build-depends: darcs,
|
||||
- base >= 4.9 && < 4.13
|
||||
+ base >= 4.9 && <5
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- unit test driver
|
||||
@@ -518,7 +517,7 @@
|
||||
build-depends: Win32 >= 2.3.1 && < 2.4
|
||||
|
||||
build-depends: darcs,
|
||||
- base >= 4.9 && < 4.13,
|
||||
+ base >= 4.9 && <5,
|
||||
array >= 0.5.1.0 && < 0.6,
|
||||
bytestring >= 0.10.6 && < 0.11,
|
||||
cmdargs >= 0.10.10 && < 0.11,
|
||||
@@ -527,15 +526,15 @@
|
||||
mtl >= 2.2.1 && < 2.3,
|
||||
shelly >= 1.6.8 && < 1.9,
|
||||
split >= 0.2.2 && < 0.3,
|
||||
- text >= 1.2.1.3 && < 1.3,
|
||||
+ text >= 1.2.1.3 && <2,
|
||||
directory >= 1.2.6.2 && < 1.4,
|
||||
FindBin >= 0.0.5 && < 0.1,
|
||||
- QuickCheck >= 2.8.2 && < 2.13,
|
||||
+ QuickCheck >= 2.8.2 && <3,
|
||||
HUnit >= 1.3 && < 1.7,
|
||||
test-framework >= 0.8.1.1 && < 0.9,
|
||||
test-framework-hunit >= 0.3.0.2 && < 0.4,
|
||||
test-framework-quickcheck2 >= 0.3.0.3 && < 0.4,
|
||||
- zip-archive >= 0.3 && < 0.5
|
||||
+ zip-archive >= 0.3 && <1
|
||||
|
||||
-- https://github.com/yesodweb/Shelly.hs/issues/177
|
||||
if os(windows)
|
||||
diff --git a/src/Darcs/Patch/Depends.hs b/src/Darcs/Patch/Depends.hs
|
||||
index 8531294..a4c71cb 100644
|
||||
--- a/src/Darcs/Patch/Depends.hs
|
||||
+++ b/src/Darcs/Patch/Depends.hs
|
||||
@@ -251,7 +251,7 @@ splitOnTag _ (PatchSet NilRL NilRL) = Nothing
|
||||
unwrapOneTagged :: (Monad m) => PatchSet rt p wX wY -> m (PatchSet rt p wX wY)
|
||||
unwrapOneTagged (PatchSet (ts :<: Tagged t _ tps) ps) =
|
||||
return $ PatchSet ts (tps :<: t +<+ ps)
|
||||
-unwrapOneTagged _ = fail "called unwrapOneTagged with no Tagged's in the set"
|
||||
+unwrapOneTagged _ = error "called unwrapOneTagged with no Tagged's in the set"
|
||||
|
||||
-- | @getUncovered ps@ returns the 'PatchInfo' for all the patches in
|
||||
-- @ps@ that are not depended on by anything else *through explicit
|
||||
diff --git a/src/Darcs/Patch/Match.hs b/src/Darcs/Patch/Match.hs
|
||||
index aba6c7a..2b6f53a 100644
|
||||
--- a/src/Darcs/Patch/Match.hs
|
||||
+++ b/src/Darcs/Patch/Match.hs
|
||||
@@ -421,7 +421,7 @@ getNonrangeMatchS fs repo =
|
||||
Just m -> if nonrangeMatcherIsTag fs
|
||||
then getTagS m repo
|
||||
else getMatcherS Exclusive m repo
|
||||
- Nothing -> fail "Pattern not specified in getNonrangeMatch."
|
||||
+ Nothing -> error "Pattern not specified in getNonrangeMatch."
|
||||
|
||||
-- | @firstMatch fs@ tells whether @fs@ implies a "first match", that
|
||||
-- is if we match against patches from a point in the past on, rather
|
||||
@@ -441,7 +441,7 @@ getFirstMatchS fs repo =
|
||||
Just (_,b) -> unpullLastN repo b -- b is chronologically earlier than a
|
||||
Nothing ->
|
||||
case firstMatcher fs of
|
||||
- Nothing -> fail "Pattern not specified in getFirstMatchS."
|
||||
+ Nothing -> error "Pattern not specified in getFirstMatchS."
|
||||
Just m -> if firstMatcherIsTag fs
|
||||
then getTagS m repo
|
||||
else getMatcherS Inclusive m repo
|
||||
@@ -462,7 +462,7 @@ checkMatchSyntax :: [MatchFlag] -> IO ()
|
||||
checkMatchSyntax opts =
|
||||
case getMatchPattern opts of
|
||||
Nothing -> return ()
|
||||
- Just p -> either fail (const $ return ()) (parseMatch p::Either String (MatchFun rt DummyPatch))
|
||||
+ Just p -> either error (const $ return ()) (parseMatch p::Either String (MatchFun rt DummyPatch))
|
||||
|
||||
getMatchPattern :: [MatchFlag] -> Maybe String
|
||||
getMatchPattern [] = Nothing
|
||||
@@ -718,7 +718,7 @@ getMatcherS :: (ApplyMonad (ApplyState p) m, Matchable p) =>
|
||||
getMatcherS ioe m repo =
|
||||
if matchExists m repo
|
||||
then applyInvToMatcher ioe m repo
|
||||
- else fail $ "Couldn't match pattern "++ show m
|
||||
+ else error $ "Couldn't match pattern "++ show m
|
||||
|
||||
getTagS :: (ApplyMonad (ApplyState p) m, MonadProgress m, Matchable p) =>
|
||||
Matcher rt p -> PatchSet rt p Origin wX -> m ()
|
||||
diff --git a/src/Darcs/Patch/PatchInfoAnd.hs b/src/Darcs/Patch/PatchInfoAnd.hs
|
||||
index 2da7ec8..1147410 100644
|
||||
--- a/src/Darcs/Patch/PatchInfoAnd.hs
|
||||
+++ b/src/Darcs/Patch/PatchInfoAnd.hs
|
||||
@@ -167,7 +167,7 @@ conscientiously er (PIAP pinf hp) =
|
||||
|
||||
-- | @hopefullyM@ is a version of @hopefully@ which calls @fail@ in a
|
||||
-- monad instead of erroring.
|
||||
-hopefullyM :: Monad m => PatchInfoAnd rt p wA wB -> m (WrappedNamed rt p wA wB)
|
||||
+hopefullyM :: MonadFail m => PatchInfoAnd rt p wA wB -> m (WrappedNamed rt p wA wB)
|
||||
hopefullyM (PIAP pinf hp) = case hopefully2either hp of
|
||||
Right p -> return p
|
||||
Left e -> fail $ renderString
|
||||
diff --git a/src/Darcs/Patch/Prim/V1/Apply.hs b/src/Darcs/Patch/Prim/V1/Apply.hs
|
||||
index bea7e41..7984d21 100644
|
||||
--- a/src/Darcs/Patch/Prim/V1/Apply.hs
|
||||
+++ b/src/Darcs/Patch/Prim/V1/Apply.hs
|
||||
@@ -41,13 +41,13 @@ instance Apply Prim where
|
||||
apply (FP f (TokReplace t o n)) = mModifyFilePS f doreplace
|
||||
where doreplace fc =
|
||||
case tryTokReplace t (BC.pack o) (BC.pack n) fc of
|
||||
- Nothing -> fail $ "replace patch to " ++ fn2fp f
|
||||
+ Nothing -> error $ "replace patch to " ++ fn2fp f
|
||||
++ " couldn't apply."
|
||||
Just fc' -> return fc'
|
||||
apply (FP f (Binary o n)) = mModifyFilePS f doapply
|
||||
where doapply oldf = if o == oldf
|
||||
then return n
|
||||
- else fail $ "binary patch to " ++ fn2fp f
|
||||
+ else error $ "binary patch to " ++ fn2fp f
|
||||
++ " couldn't apply."
|
||||
apply (DP d AddDir) = mCreateDirectory d
|
||||
apply (DP d RmDir) = mRemoveDirectory d
|
||||
@@ -115,7 +115,7 @@ applyHunk f h fc =
|
||||
case applyHunkLines h fc of
|
||||
Right fc' -> return fc'
|
||||
Left msg ->
|
||||
- fail $
|
||||
+ error $
|
||||
"### Error applying:\n" ++ renderHunk h ++
|
||||
"\n### to file " ++ fn2fp f ++ ":\n" ++ BC.unpack fc ++
|
||||
"### Reason: " ++ msg
|
||||
diff --git a/src/Darcs/Patch/Prim/V1/Commute.hs b/src/Darcs/Patch/Prim/V1/Commute.hs
|
||||
index 7639dbd..e1432e6 100644
|
||||
--- a/src/Darcs/Patch/Prim/V1/Commute.hs
|
||||
+++ b/src/Darcs/Patch/Prim/V1/Commute.hs
|
||||
@@ -58,6 +58,7 @@ instance Monad Perhaps where
|
||||
Failed >>= _ = Failed
|
||||
Unknown >>= _ = Unknown
|
||||
return = Succeeded
|
||||
+instance MonadFail Perhaps where
|
||||
fail _ = Unknown
|
||||
|
||||
instance Alternative Perhaps where
|
||||
diff --git a/src/Darcs/Patch/ReadMonads.hs b/src/Darcs/Patch/ReadMonads.hs
|
||||
index 62a4f81..e1cb149 100644
|
||||
--- a/src/Darcs/Patch/ReadMonads.hs
|
||||
+++ b/src/Darcs/Patch/ReadMonads.hs
|
||||
@@ -237,6 +237,7 @@ failSM _ = SM (\_ -> Nothing)
|
||||
instance Monad SM where
|
||||
(>>=) = bindSM
|
||||
return = returnSM
|
||||
+instance MonadFail SM where
|
||||
fail = failSM
|
||||
|
||||
instance ParserM SM where
|
||||
diff --git a/src/Darcs/Patch/V1/Commute.hs b/src/Darcs/Patch/V1/Commute.hs
|
||||
index 0bb41a3..c6c3382 100644
|
||||
--- a/src/Darcs/Patch/V1/Commute.hs
|
||||
+++ b/src/Darcs/Patch/V1/Commute.hs
|
||||
@@ -93,6 +93,7 @@ instance Monad Perhaps where
|
||||
Failed >>= _ = Failed
|
||||
Unknown >>= _ = Unknown
|
||||
return = Succeeded
|
||||
+instance MonadFail Perhaps where
|
||||
fail _ = Unknown
|
||||
|
||||
instance Alternative Perhaps where
|
||||
diff --git a/src/Darcs/Repository/Diff.hs b/src/Darcs/Repository/Diff.hs
|
||||
index 8078d49..e0e2341 100644
|
||||
--- a/src/Darcs/Repository/Diff.hs
|
||||
+++ b/src/Darcs/Repository/Diff.hs
|
||||
@@ -138,7 +138,7 @@ treeDiff da ft t1 t2 = do
|
||||
do rmDirP <- diff p (Removed subtree)
|
||||
addFileP <- diff p (Changed (File emptyBlob) b')
|
||||
return $ joinGap (+>+) rmDirP addFileP
|
||||
- diff p _ = fail $ "Missing case at path " ++ show p
|
||||
+ diff p _ = error $ "Missing case at path " ++ show p
|
||||
|
||||
text_diff p a b
|
||||
| BL.null a && BL.null b = emptyGap NilFL
|
||||
diff --git a/src/Darcs/Repository/Match.hs b/src/Darcs/Repository/Match.hs
|
||||
index 08c9f13..f33cabe 100644
|
||||
--- a/src/Darcs/Repository/Match.hs
|
||||
+++ b/src/Darcs/Repository/Match.hs
|
||||
@@ -60,7 +60,7 @@ getNonrangeMatch :: (ApplyMonad (ApplyState p) DefaultIO, IsRepoType rt, RepoPat
|
||||
getNonrangeMatch r = withRecordedMatch r . getMatch where
|
||||
getMatch fs = case hasIndexRange fs of
|
||||
Just (n, m) | n == m -> applyNInv (n-1)
|
||||
- | otherwise -> fail "Index range is not allowed for this command."
|
||||
+ | otherwise -> error "Index range is not allowed for this command."
|
||||
_ -> getNonrangeMatchS fs
|
||||
|
||||
getOnePatchset :: (IsRepoType rt, RepoPatch p)
|
||||
diff --git a/src/Darcs/Util/Tree/Monad.hs b/src/Darcs/Util/Tree/Monad.hs
|
||||
index 0e01d9b..296fdc4 100644
|
||||
--- a/src/Darcs/Util/Tree/Monad.hs
|
||||
+++ b/src/Darcs/Util/Tree/Monad.hs
|
||||
@@ -216,7 +216,7 @@ instance (Monad m) => TreeRO (TreeMonad m) where
|
||||
t <- gets tree
|
||||
let f = findFile t p'
|
||||
case f of
|
||||
- Nothing -> fail $ "No such file " ++ show p'
|
||||
+ Nothing -> error $ "No such file " ++ show p'
|
||||
Just x -> lift (readBlob x)
|
||||
|
||||
currentDirectory = ask
|
||||
@@ -251,7 +251,7 @@ instance (Monad m) => TreeRW (TreeMonad m) where
|
||||
let item = find tr from'
|
||||
found_to = find tr to'
|
||||
unless (isNothing found_to) $
|
||||
- fail $ "Error renaming: destination " ++ show to ++ " exists."
|
||||
+ error $ "Error renaming: destination " ++ show to ++ " exists."
|
||||
unless (isNothing item) $ do
|
||||
modifyItem from Nothing
|
||||
modifyItem to item
|
||||
--
|
||||
2.23.1
|
||||
|
|
@ -1,120 +0,0 @@
|
|||
--- darcs-2.14.2/Setup.hs 2019-01-27 03:14:51.000000000 +1300
|
||||
+++ darcs.net/Setup.hs 2019-10-18 02:41:57.000000000 +1300
|
||||
@@ -11,7 +11,9 @@
|
||||
, TestSuite(testBuildInfo)
|
||||
, updatePackageDescription
|
||||
, cppOptions, ccOptions
|
||||
- , library, libBuildInfo, otherModules )
|
||||
+ , library, libBuildInfo, otherModules
|
||||
+ , ComponentName(CExeName)
|
||||
+ )
|
||||
import Distribution.Package
|
||||
( packageVersion )
|
||||
import Distribution.Version( Version )
|
||||
@@ -21,24 +23,27 @@
|
||||
import Distribution.Simple.Setup
|
||||
(buildVerbosity, copyDest, copyVerbosity, fromFlag,
|
||||
haddockVerbosity, installVerbosity, sDistVerbosity, replVerbosity )
|
||||
-import Distribution.Simple.BuildPaths ( autogenModulesDir )
|
||||
+import Distribution.Simple.BuildPaths ( autogenPackageModulesDir )
|
||||
import Distribution.System
|
||||
( OS(Windows), buildOS )
|
||||
import Distribution.Simple.Utils
|
||||
(copyFiles, createDirectoryIfMissingVerbose, rawSystemStdout,
|
||||
- rewriteFile )
|
||||
+ rewriteFileEx)
|
||||
+import Distribution.Types.UnqualComponentName
|
||||
import Distribution.Verbosity
|
||||
- ( Verbosity )
|
||||
+ ( Verbosity, silent )
|
||||
import Distribution.Text
|
||||
( display )
|
||||
-import Control.Monad ( unless, void )
|
||||
|
||||
+import Control.Monad ( unless, when, void )
|
||||
import System.Directory
|
||||
( doesDirectoryExist, doesFileExist )
|
||||
import System.IO
|
||||
( openFile, IOMode(..) )
|
||||
import System.Process (runProcess)
|
||||
import Data.List( isInfixOf, lines )
|
||||
+import qualified Data.Map as M
|
||||
+import Data.Maybe ( isJust )
|
||||
import System.FilePath ( (</>) )
|
||||
import Foreign.Marshal.Utils ( with )
|
||||
import Foreign.Storable ( peek )
|
||||
@@ -75,8 +80,8 @@
|
||||
verb = fromFlag $ sDistVerbosity flags
|
||||
x <- versionPatches verb pkgVer
|
||||
y <- context verb
|
||||
- rewriteFile "release/distributed-version" $ show x
|
||||
- rewriteFile "release/distributed-context" $ show y
|
||||
+ rewriteFileEx silent "release/distributed-version" $ show x
|
||||
+ rewriteFileEx silent "release/distributed-context" $ show y
|
||||
putStrLn "about to hand over"
|
||||
let pkg' = pkg { library = sanity (library pkg) }
|
||||
sanity (Just lib) = Just $ lib { libBuildInfo = sanity' $ libBuildInfo lib }
|
||||
@@ -105,8 +110,7 @@
|
||||
littleEndian <- testEndianness
|
||||
let args = ("-DPACKAGE_VERSION=" ++ show' version) :
|
||||
[arg | (arg, True) <- -- include fst iff snd.
|
||||
- [-- We have MAPI iff building on/for Windows.
|
||||
- ("-DHAVE_MAPI", buildOS == Windows),
|
||||
+ [
|
||||
("-DLITTLEENDIAN", littleEndian),
|
||||
("-DBIGENDIAN", not littleEndian)]]
|
||||
bi = emptyBuildInfo { cppOptions = args, ccOptions = args }
|
||||
@@ -133,20 +137,26 @@
|
||||
-- man page
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
+hasDarcsExe :: LocalBuildInfo -> Bool
|
||||
+hasDarcsExe = isJust . M.lookup darcsExe . componentNameMap where
|
||||
+ darcsExe = CExeName (mkUnqualComponentName "darcs")
|
||||
+
|
||||
buildManpage :: LocalBuildInfo -> IO ()
|
||||
-buildManpage lbi = do
|
||||
- let darcs = buildDir lbi </> "darcs/darcs"
|
||||
- manpage = buildDir lbi </> "darcs/darcs.1"
|
||||
- manpageHandle <- openFile manpage WriteMode
|
||||
- void $ runProcess darcs ["help","manpage"]
|
||||
- Nothing Nothing Nothing (Just manpageHandle) Nothing
|
||||
+buildManpage lbi =
|
||||
+ when (hasDarcsExe lbi) $ do
|
||||
+ let darcs = buildDir lbi </> "darcs/darcs"
|
||||
+ manpage = buildDir lbi </> "darcs/darcs.1"
|
||||
+ manpageHandle <- openFile manpage WriteMode
|
||||
+ void $ runProcess darcs ["help","manpage"]
|
||||
+ Nothing Nothing Nothing (Just manpageHandle) Nothing
|
||||
|
||||
-installManpage :: PackageDescription -> LocalBuildInfo
|
||||
- -> Verbosity -> CopyDest -> IO ()
|
||||
+installManpage :: PackageDescription -> LocalBuildInfo -> Verbosity -> CopyDest -> IO ()
|
||||
installManpage pkg lbi verbosity copy =
|
||||
- copyFiles verbosity
|
||||
- (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
|
||||
- [(buildDir lbi </> "darcs", "darcs.1")]
|
||||
+ when (hasDarcsExe lbi) $
|
||||
+ copyFiles
|
||||
+ verbosity
|
||||
+ (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
|
||||
+ [(buildDir lbi </> "darcs", "darcs.1")]
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- version module
|
||||
@@ -187,12 +197,13 @@
|
||||
generateVersionModule :: Verbosity -> LocalBuildInfo
|
||||
-> String -> String -> IO ()
|
||||
generateVersionModule verbosity lbi version state = do
|
||||
- let dir = autogenModulesDir lbi
|
||||
+ let dir = autogenPackageModulesDir lbi
|
||||
createDirectoryIfMissingVerbose verbosity True dir
|
||||
ctx <- context verbosity
|
||||
hash <- weakhash verbosity
|
||||
- rewriteFile (dir </> "Version.hs") $ unlines
|
||||
+ rewriteFileEx silent (dir </> "Version.hs") $ unlines
|
||||
["module Version where"
|
||||
+ ,"import Darcs.Prelude"
|
||||
,"version, weakhash, context :: String"
|
||||
,"version = \"" ++ version ++ " (" ++ state ++ ")\""
|
||||
,"weakhash = " ++ case hash of
|
|
@ -1,383 +0,0 @@
|
|||
Only in dbus-1.2.13-new: .codeclimate.yml
|
||||
diff -ur dbus-1.2.13-old/dbus.cabal dbus-1.2.13-new/dbus.cabal
|
||||
--- dbus-1.2.13-old/dbus.cabal 2020-04-25 19:29:27.372272952 +0200
|
||||
+++ dbus-1.2.13-new/dbus.cabal 2020-04-25 19:26:36.140991920 +0200
|
||||
@@ -1,172 +1,180 @@
|
||||
-cabal-version: >=1.8
|
||||
name: dbus
|
||||
version: 1.2.13
|
||||
license: Apache-2.0
|
||||
license-file: license.txt
|
||||
-maintainer: Andrey Sverdlichenko <blaze@ruddy.ru>
|
||||
author: John Millikin <john@john-millikin.com>
|
||||
+maintainer: Andrey Sverdlichenko <blaze@ruddy.ru>
|
||||
+build-type: Simple
|
||||
+cabal-version: >= 1.8
|
||||
+category: Network, Desktop
|
||||
stability: experimental
|
||||
homepage: https://github.com/rblaze/haskell-dbus#readme
|
||||
+
|
||||
synopsis: A client library for the D-Bus IPC system.
|
||||
description:
|
||||
- D-Bus is a simple, message-based protocol for inter-process
|
||||
- communication, which allows applications to interact with other parts of
|
||||
- the machine and the user's session using remote procedure calls.
|
||||
- .
|
||||
- D-Bus is a essential part of the modern Linux desktop, where it replaces
|
||||
- earlier protocols such as CORBA and DCOP.
|
||||
- .
|
||||
- This library is an implementation of the D-Bus protocol in Haskell. It
|
||||
- can be used to add D-Bus support to Haskell applications, without the
|
||||
- awkward interfaces common to foreign bindings.
|
||||
- .
|
||||
- Example: connect to the session bus, and get a list of active names.
|
||||
- .
|
||||
- @
|
||||
- {-\# LANGUAGE OverloadedStrings \#-}
|
||||
- .
|
||||
- import Data.List (sort)
|
||||
- import DBus
|
||||
- import DBus.Client
|
||||
- .
|
||||
- main = do
|
||||
-   client <- connectSession
|
||||
-   //
|
||||
-   \-- Request a list of connected clients from the bus
|
||||
-   reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\")
|
||||
-   { methodCallDestination = Just \"org.freedesktop.DBus\"
|
||||
-   }
|
||||
-   //
|
||||
-   \-- org.freedesktop.DBus.ListNames() returns a single value, which is
|
||||
-   \-- a list of names (here represented as [String])
|
||||
-   let Just names = fromVariant (methodReturnBody reply !! 0)
|
||||
-   //
|
||||
-   \-- Print each name on a line, sorted so reserved names are below
|
||||
-   \-- temporary names.
|
||||
-   mapM_ putStrLn (sort names)
|
||||
- @
|
||||
- .
|
||||
- >$ ghc --make list-names.hs
|
||||
- >$ ./list-names
|
||||
- >:1.0
|
||||
- >:1.1
|
||||
- >:1.10
|
||||
- >:1.106
|
||||
- >:1.109
|
||||
- >:1.110
|
||||
- >ca.desrt.dconf
|
||||
- >org.freedesktop.DBus
|
||||
- >org.freedesktop.Notifications
|
||||
- >org.freedesktop.secrets
|
||||
- >org.gnome.ScreenSaver
|
||||
-category: Network, Desktop
|
||||
-build-type: Simple
|
||||
+ D-Bus is a simple, message-based protocol for inter-process
|
||||
+ communication, which allows applications to interact with other parts of
|
||||
+ the machine and the user's session using remote procedure calls.
|
||||
+ .
|
||||
+ D-Bus is a essential part of the modern Linux desktop, where it replaces
|
||||
+ earlier protocols such as CORBA and DCOP.
|
||||
+ .
|
||||
+ This library is an implementation of the D-Bus protocol in Haskell. It
|
||||
+ can be used to add D-Bus support to Haskell applications, without the
|
||||
+ awkward interfaces common to foreign bindings.
|
||||
+ .
|
||||
+ Example: connect to the session bus, and get a list of active names.
|
||||
+ .
|
||||
+ @
|
||||
+ {-\# LANGUAGE OverloadedStrings \#-}
|
||||
+ .
|
||||
+ import Data.List (sort)
|
||||
+ import DBus
|
||||
+ import DBus.Client
|
||||
+ .
|
||||
+ main = do
|
||||
+   client <- connectSession
|
||||
+  
|
||||
+   -- Request a list of connected clients from the bus
|
||||
+   reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\")
|
||||
+   { methodCallDestination = Just \"org.freedesktop.DBus\"
|
||||
+   }
|
||||
+  
|
||||
+   -- org.freedesktop.DBus.ListNames() returns a single value, which is
|
||||
+   -- a list of names (here represented as [String])
|
||||
+   let Just names = fromVariant (methodReturnBody reply !! 0)
|
||||
+  
|
||||
+   -- Print each name on a line, sorted so reserved names are below
|
||||
+   -- temporary names.
|
||||
+   mapM_ putStrLn (sort names)
|
||||
+ @
|
||||
+ .
|
||||
+ >$ ghc --make list-names.hs
|
||||
+ >$ ./list-names
|
||||
+ >:1.0
|
||||
+ >:1.1
|
||||
+ >:1.10
|
||||
+ >:1.106
|
||||
+ >:1.109
|
||||
+ >:1.110
|
||||
+ >ca.desrt.dconf
|
||||
+ >org.freedesktop.DBus
|
||||
+ >org.freedesktop.Notifications
|
||||
+ >org.freedesktop.secrets
|
||||
+ >org.gnome.ScreenSaver
|
||||
+
|
||||
+
|
||||
extra-source-files:
|
||||
- examples/dbus-monitor.hs
|
||||
- examples/export.hs
|
||||
- examples/introspect.hs
|
||||
- examples/list-names.hs
|
||||
- idlxml/dbus.xml
|
||||
+ examples/dbus-monitor.hs
|
||||
+ examples/export.hs
|
||||
+ examples/introspect.hs
|
||||
+ examples/list-names.hs
|
||||
+ idlxml/dbus.xml
|
||||
|
||||
source-repository head
|
||||
- type: git
|
||||
- location: https://github.com/rblaze/haskell-dbus
|
||||
+ type: git
|
||||
+ location: https://github.com/rblaze/haskell-dbus
|
||||
|
||||
library
|
||||
- exposed-modules:
|
||||
- DBus
|
||||
- DBus.Client
|
||||
- DBus.Generation
|
||||
- DBus.Internal.Address
|
||||
- DBus.Internal.Message
|
||||
- DBus.Internal.Types
|
||||
- DBus.Internal.Wire
|
||||
- DBus.Introspection
|
||||
- DBus.Introspection.Parse
|
||||
- DBus.Introspection.Render
|
||||
- DBus.Introspection.Types
|
||||
- DBus.Socket
|
||||
- DBus.TH
|
||||
- DBus.Transport
|
||||
- hs-source-dirs: lib
|
||||
- ghc-options: -W -Wall
|
||||
- build-depends:
|
||||
- base ==4.*,
|
||||
- bytestring <0.11,
|
||||
- cereal <0.6,
|
||||
- conduit >=1.3.0 && <1.4,
|
||||
- containers <0.7,
|
||||
- deepseq <1.5,
|
||||
- exceptions <0.11,
|
||||
- filepath <1.5,
|
||||
- lens <4.20,
|
||||
- network >=3.0.1.0 && <3.2,
|
||||
- parsec <3.2,
|
||||
- random <1.2,
|
||||
- split <0.3,
|
||||
- template-haskell <2.16.0.0,
|
||||
- text <1.3,
|
||||
- th-lift <0.9,
|
||||
- transformers <0.6,
|
||||
- unix <2.8,
|
||||
- vector <0.13,
|
||||
- xml-conduit >=1.9.0.0 && <1.10.0.0,
|
||||
- xml-types <0.4
|
||||
+ ghc-options: -W -Wall
|
||||
+ hs-source-dirs: lib
|
||||
+
|
||||
+ build-depends:
|
||||
+ base >=4 && <5
|
||||
+ , bytestring
|
||||
+ , cereal
|
||||
+ , conduit >= 1.3.0
|
||||
+ , containers
|
||||
+ , deepseq
|
||||
+ , exceptions
|
||||
+ , filepath
|
||||
+ , lens < 4.20
|
||||
+ , network >= 3.0.1.0 && < 3.2
|
||||
+ , parsec
|
||||
+ , random
|
||||
+ , split
|
||||
+ , template-haskell < 2.17.0.0
|
||||
+ , text
|
||||
+ , th-lift < 0.9
|
||||
+ , transformers
|
||||
+ , unix
|
||||
+ , vector
|
||||
+ , xml-conduit >= 1.9.0.0 && < 1.10.0.0
|
||||
+ , xml-types
|
||||
+
|
||||
+ exposed-modules:
|
||||
+ DBus
|
||||
+ DBus.Client
|
||||
+ DBus.Generation
|
||||
+ DBus.Internal.Address
|
||||
+ DBus.Internal.Message
|
||||
+ DBus.Internal.Types
|
||||
+ DBus.Internal.Wire
|
||||
+ DBus.Introspection
|
||||
+ DBus.Introspection.Parse
|
||||
+ DBus.Introspection.Render
|
||||
+ DBus.Introspection.Types
|
||||
+ DBus.Socket
|
||||
+ DBus.TH
|
||||
+ DBus.Transport
|
||||
|
||||
test-suite dbus_tests
|
||||
- type: exitcode-stdio-1.0
|
||||
- main-is: DBusTests.hs
|
||||
- hs-source-dirs: tests
|
||||
- other-modules:
|
||||
- DBusTests.Address
|
||||
- DBusTests.BusName
|
||||
- DBusTests.Client
|
||||
- DBusTests.ErrorName
|
||||
- DBusTests.Generation
|
||||
- DBusTests.Integration
|
||||
- DBusTests.InterfaceName
|
||||
- DBusTests.Introspection
|
||||
- DBusTests.MemberName
|
||||
- DBusTests.Message
|
||||
- DBusTests.ObjectPath
|
||||
- DBusTests.Serialization
|
||||
- DBusTests.Signature
|
||||
- DBusTests.Socket
|
||||
- DBusTests.TH
|
||||
- DBusTests.Transport
|
||||
- DBusTests.Util
|
||||
- DBusTests.Variant
|
||||
- DBusTests.Wire
|
||||
- ghc-options: -W -Wall -fno-warn-orphans
|
||||
- build-depends:
|
||||
- dbus -any,
|
||||
- base ==4.*,
|
||||
- bytestring <0.11,
|
||||
- cereal <0.6,
|
||||
- containers <0.7,
|
||||
- directory <1.4,
|
||||
- extra <1.8,
|
||||
- filepath <1.5,
|
||||
- network >=3.0.1.0 && <3.2,
|
||||
- parsec <3.2,
|
||||
- process <1.7,
|
||||
- QuickCheck <2.15,
|
||||
- random <1.2,
|
||||
- resourcet <1.3,
|
||||
- tasty <1.3,
|
||||
- tasty-hunit <0.11,
|
||||
- tasty-quickcheck <0.11,
|
||||
- text <1.3,
|
||||
- transformers <0.6,
|
||||
- unix <2.8,
|
||||
- vector <0.13
|
||||
+ type: exitcode-stdio-1.0
|
||||
+ main-is: DBusTests.hs
|
||||
+ hs-source-dirs: tests
|
||||
+ ghc-options: -W -Wall -fno-warn-orphans
|
||||
+
|
||||
+ build-depends:
|
||||
+ dbus
|
||||
+ , base >=4 && <5
|
||||
+ , bytestring
|
||||
+ , cereal
|
||||
+ , containers
|
||||
+ , directory
|
||||
+ , extra < 1.8
|
||||
+ , filepath
|
||||
+ , network >= 3.0.1.0 && < 3.2
|
||||
+ , parsec
|
||||
+ , process
|
||||
+ , QuickCheck < 2.15
|
||||
+ , random
|
||||
+ , resourcet
|
||||
+ , tasty
|
||||
+ , tasty-hunit
|
||||
+ , tasty-quickcheck
|
||||
+ , text
|
||||
+ , transformers
|
||||
+ , unix
|
||||
+ , vector
|
||||
+
|
||||
+ other-modules:
|
||||
+ DBusTests.Address
|
||||
+ DBusTests.BusName
|
||||
+ DBusTests.Client
|
||||
+ DBusTests.ErrorName
|
||||
+ DBusTests.Generation
|
||||
+ DBusTests.Integration
|
||||
+ DBusTests.InterfaceName
|
||||
+ DBusTests.Introspection
|
||||
+ DBusTests.MemberName
|
||||
+ DBusTests.Message
|
||||
+ DBusTests.ObjectPath
|
||||
+ DBusTests.Serialization
|
||||
+ DBusTests.Signature
|
||||
+ DBusTests.Socket
|
||||
+ DBusTests.TH
|
||||
+ DBusTests.Transport
|
||||
+ DBusTests.Util
|
||||
+ DBusTests.Variant
|
||||
+ DBusTests.Wire
|
||||
|
||||
benchmark dbus_benchmarks
|
||||
- type: exitcode-stdio-1.0
|
||||
- main-is: DBusBenchmarks.hs
|
||||
- hs-source-dirs: benchmarks
|
||||
- ghc-options: -Wall -fno-warn-orphans
|
||||
- build-depends:
|
||||
- dbus -any,
|
||||
- base ==4.*,
|
||||
- criterion <1.6
|
||||
+ type: exitcode-stdio-1.0
|
||||
+ main-is: DBusBenchmarks.hs
|
||||
+ hs-source-dirs: benchmarks
|
||||
+ ghc-options: -Wall -fno-warn-orphans
|
||||
+
|
||||
+ build-depends:
|
||||
+ dbus
|
||||
+ , base >=4 && <5
|
||||
+ , criterion
|
||||
Only in dbus-1.2.13-new: .git
|
||||
Only in dbus-1.2.13-new: .gitignore
|
||||
diff -ur dbus-1.2.13-old/lib/DBus/Generation.hs dbus-1.2.13-new/lib/DBus/Generation.hs
|
||||
--- dbus-1.2.13-old/lib/DBus/Generation.hs 2019-02-14 16:37:47.000000000 +0100
|
||||
+++ dbus-1.2.13-new/lib/DBus/Generation.hs 2020-04-25 19:26:36.144991997 +0200
|
||||
@@ -1,3 +1,4 @@
|
||||
+{-# LANGUAGE CPP #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module DBus.Generation where
|
||||
@@ -26,6 +27,13 @@
|
||||
import Prelude hiding (mapM)
|
||||
import System.Posix.Types (Fd(..))
|
||||
|
||||
+-- | Compatibility helper to create (total) tuple expressions
|
||||
+mkTupE :: [Exp] -> Exp
|
||||
+mkTupE = TupE
|
||||
+#if MIN_VERSION_template_haskell(2,16,0)
|
||||
+ . map Just
|
||||
+#endif
|
||||
+
|
||||
type ClientBusPathR a = ReaderT (Client, T.BusName, T.ObjectPath) IO a
|
||||
|
||||
dbusInvoke :: (Client -> T.BusName -> T.ObjectPath -> a) -> ClientBusPathR a
|
||||
@@ -232,8 +240,8 @@
|
||||
finalOutputNames <- buildOutputNames
|
||||
let variantListExp = map makeToVariantApp methodArgNames
|
||||
mapOrHead' = mapOrHead outputLength
|
||||
- fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames TupE
|
||||
- finalResultTuple = mapOrHead' VarE finalOutputNames TupE
|
||||
+ fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames mkTupE
|
||||
+ finalResultTuple = mapOrHead' VarE finalOutputNames mkTupE
|
||||
maybeExtractionPattern = mapOrHead' makeJustPattern finalOutputNames TupP
|
||||
getMethodCallDefDec = [d|
|
||||
$( varP methodCallDefN ) =
|
||||
@@ -432,7 +440,7 @@
|
||||
}
|
||||
|]
|
||||
let mapOrHead' = mapOrHead argCount
|
||||
- fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames TupE
|
||||
+ fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames mkTupE
|
||||
maybeExtractionPattern = mapOrHead' makeJustPattern toHandlerOutputNames TupP
|
||||
applyToName toApply n = AppE toApply $ VarE n
|
||||
finalApplication = foldl applyToName (VarE handlerArgN)
|
|
@ -1,65 +0,0 @@
|
|||
diff --git a/GHC/Paths.hs b/GHC/Paths.hs
|
||||
index c87565d..88b3db4 100644
|
||||
--- a/GHC/Paths.hs
|
||||
+++ b/GHC/Paths.hs
|
||||
@@ -1,13 +1,35 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
+{-# LANGUAGE ScopedTypeVariables #-}
|
||||
|
||||
module GHC.Paths (
|
||||
ghc, ghc_pkg, libdir, docdir
|
||||
) where
|
||||
|
||||
+import Control.Exception as E
|
||||
+import Data.Maybe
|
||||
+import System.Environment
|
||||
+import System.IO.Unsafe
|
||||
+
|
||||
+-- Yes, there's lookupEnv now, but we want to be compatible
|
||||
+-- with older GHCs.
|
||||
+checkEnv :: String -> IO (Maybe String)
|
||||
+checkEnv var = E.catch (fmap Just (getEnv var))
|
||||
+ (\ (e :: IOException) -> return Nothing)
|
||||
+
|
||||
+nixLibdir, nixDocdir, nixGhc, nixGhcPkg :: Maybe FilePath
|
||||
+nixLibdir = unsafePerformIO (checkEnv "NIX_GHCJS_LIBDIR")
|
||||
+nixDocdir = unsafePerformIO (checkEnv "NIX_GHCJS_DOCDIR")
|
||||
+nixGhc = unsafePerformIO (checkEnv "NIX_GHCJS")
|
||||
+nixGhcPkg = unsafePerformIO (checkEnv "NIX_GHCJSPKG")
|
||||
+{-# NOINLINE nixLibdir #-}
|
||||
+{-# NOINLINE nixDocdir #-}
|
||||
+{-# NOINLINE nixGhc #-}
|
||||
+{-# NOINLINE nixGhcPkg #-}
|
||||
+
|
||||
libdir, docdir, ghc, ghc_pkg :: FilePath
|
||||
|
||||
-libdir = GHC_PATHS_LIBDIR
|
||||
-docdir = GHC_PATHS_DOCDIR
|
||||
+libdir = fromMaybe GHC_PATHS_LIBDIR nixLibdir
|
||||
+docdir = fromMaybe GHC_PATHS_DOCDIR nixDocdir
|
||||
|
||||
-ghc = GHC_PATHS_GHC
|
||||
-ghc_pkg = GHC_PATHS_GHC_PKG
|
||||
+ghc = fromMaybe GHC_PATHS_GHC nixGhc
|
||||
+ghc_pkg = fromMaybe GHC_PATHS_GHC_PKG nixGhcPkg
|
||||
diff --git a/Setup.hs b/Setup.hs
|
||||
index f2d1733..ca4792e 100644
|
||||
--- a/Setup.hs
|
||||
+++ b/Setup.hs
|
||||
@@ -39,13 +39,13 @@ main = defaultMainWithHooks simpleUserHooks {
|
||||
#else
|
||||
libdir_ <- rawSystemProgramStdoutConf (fromFlag (configVerbosity flags))
|
||||
#endif
|
||||
- ghcProgram (withPrograms lbi) ["--print-libdir"]
|
||||
+ ghcjsProgram (withPrograms lbi) ["--print-libdir"]
|
||||
let libdir = reverse $ dropWhile isSpace $ reverse libdir_
|
||||
|
||||
- ghc_pkg = case lookupProgram ghcPkgProgram (withPrograms lbi) of
|
||||
+ ghc_pkg = case lookupProgram ghcjsPkgProgram (withPrograms lbi) of
|
||||
Just p -> programPath p
|
||||
Nothing -> error "ghc-pkg was not found"
|
||||
- ghc = case lookupProgram ghcProgram (withPrograms lbi) of
|
||||
+ ghc = case lookupProgram ghcjsProgram (withPrograms lbi) of
|
||||
Just p -> programPath p
|
||||
Nothing -> error "ghc was not found"
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
diff -Naur hunspell-hs-0.1.0.0.orig/hunspell-hs.cabal hunspell-hs-0.1.0.0/hunspell-hs.cabal
|
||||
--- hunspell-hs-0.1.0.0.orig/hunspell-hs.cabal 2018-08-26 20:23:33.053763300 +0200
|
||||
+++ hunspell-hs-0.1.0.0/hunspell-hs.cabal 2018-08-26 20:42:05.886074510 +0200
|
||||
@@ -37,7 +37,7 @@
|
||||
base >=4.7 && <5
|
||||
, stm
|
||||
if os(linux)
|
||||
- extra-libraries:
|
||||
+ pkgconfig-depends:
|
||||
hunspell
|
||||
if os(darwin)
|
||||
include-dirs:
|
||||
@@ -63,7 +63,7 @@
|
||||
, hunspell-hs
|
||||
, stm
|
||||
if os(linux)
|
||||
- extra-libraries:
|
||||
+ pkgconfig-depends:
|
||||
hunspell
|
||||
if os(darwin)
|
||||
include-dirs:
|
||||
@@ -88,7 +88,7 @@
|
||||
, hunspell-hs
|
||||
, stm
|
||||
if os(linux)
|
||||
- extra-libraries:
|
||||
+ pkgconfig-depends:
|
||||
hunspell
|
||||
if os(darwin)
|
||||
include-dirs:
|
|
@ -29,13 +29,13 @@ assert enableViewer -> wrapGAppsHook != null;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aravis";
|
||||
version = "0.8.22";
|
||||
version = "0.8.24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AravisProject";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-S9DmXjywxNr5Rpx605zip76vGKBSrUwyerqXlBm05VI=";
|
||||
sha256 = "sha256-2d2CZzRfVr45gfgIg43Rr+1SoVIxzy8YjaQJhwi5owE=";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "dev" "out" "lib" ];
|
||||
|
|
|
@ -8,11 +8,14 @@
|
|||
, libGL # libGLU libGL is no longer a big dependency
|
||||
, pdfSupport ? true
|
||||
, darwin
|
||||
, testers
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) optional optionals;
|
||||
in stdenv.mkDerivation rec {
|
||||
in stdenv.mkDerivation (finalAttrs: let
|
||||
inherit (finalAttrs) pname version;
|
||||
in {
|
||||
pname = "cairo";
|
||||
version = "1.16.0";
|
||||
|
||||
|
@ -132,6 +135,8 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
postInstall = lib.optionalString stdenv.isDarwin glib.flattenInclude;
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A 2D graphics library with support for multiple output devices";
|
||||
longDescription = ''
|
||||
|
@ -147,6 +152,11 @@ in stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "http://cairographics.org/";
|
||||
license = with licenses; [ lgpl2Plus mpl10 ];
|
||||
pkgConfigModules = [
|
||||
"cairo-ps"
|
||||
"cairo-svg"
|
||||
] ++ lib.optional gobjectSupport "cairo-gobject"
|
||||
++ lib.optional pdfSupport "cairo-gobject";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -12,18 +12,19 @@
|
|||
, enableMpi ? false
|
||||
, mpi
|
||||
, withDoc ? stdenv.cc.isGNU
|
||||
, testers
|
||||
}:
|
||||
|
||||
assert lib.elem precision [ "single" "double" "long-double" "quad-precision" ];
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fftw-${precision}";
|
||||
version = "3.3.10";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"https://fftw.org/fftw-${version}.tar.gz"
|
||||
"ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz"
|
||||
"https://fftw.org/fftw-${finalAttrs.version}.tar.gz"
|
||||
"ftp://ftp.fftw.org/pub/fftw/fftw-${finalAttrs.version}.tar.gz"
|
||||
];
|
||||
sha256 = "sha256-VskyVJhSzdz6/as4ILAgDHdCZ1vpIXnlnmIVs0DiZGc=";
|
||||
};
|
||||
|
@ -60,11 +61,21 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeCheckInputs = [ perl ];
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fastest Fourier Transform in the West library";
|
||||
homepage = "http://www.fftw.org/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.spwhitt ];
|
||||
pkgConfigModules = [
|
||||
{
|
||||
"single" = "fftw3f";
|
||||
"double" = "fftw3";
|
||||
"long-double" = "fftw3l";
|
||||
"quad-precision" = "fftw3q";
|
||||
}.${precision}
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-media-sdk";
|
||||
version = "22.6.5";
|
||||
version = "23.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Intel-Media-SDK";
|
||||
repo = "MediaSDK";
|
||||
rev = "intel-mediasdk-${version}";
|
||||
sha256 = "sha256-W+lDqGZAenhRZ7tf4qfDNik/3rFNDM0DGSK/CdNRb8g=";
|
||||
sha256 = "sha256-FTyjIWYKXFAzu3SR1EGN+aTzVbX617o/KWCD/DGv69o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# TODO: Resolve the issues with the Mono bindings.
|
||||
|
||||
{ stdenv, fetchgit, lib
|
||||
, pkg-config, autoreconfHook
|
||||
, glib, dbus-glib
|
||||
|
@ -7,11 +5,16 @@
|
|||
, gtk2, libindicator-gtk2, libdbusmenu-gtk2
|
||||
, gtk3, libindicator-gtk3, libdbusmenu-gtk3
|
||||
, gtk-doc, vala, gobject-introspection
|
||||
, monoSupport ? false, mono, gtk-sharp-2_0
|
||||
}:
|
||||
, monoSupport ? false, mono, gtk-sharp-2_0, gtk-sharp-3_0
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
|
||||
let
|
||||
throwBadGtkVersion = throw "unknown GTK version ${gtkVersion}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = let postfix = if monoSupport then "sharp" else "gtk${gtkVersion}";
|
||||
in "libappindicator-${postfix}";
|
||||
version = "12.10.1+20.10.20200706.1";
|
||||
|
||||
|
@ -25,16 +28,24 @@ stdenv.mkDerivation {
|
|||
|
||||
nativeBuildInputs = [ pkg-config autoreconfHook vala gobject-introspection gtk-doc ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
if gtkVersion == "2"
|
||||
then [ gtk2 libdbusmenu-gtk2 ]
|
||||
else [ gtk3 libdbusmenu-gtk3 ];
|
||||
propagatedBuildInputs = {
|
||||
"2" = [ gtk2 libdbusmenu-gtk2 ];
|
||||
"3" = [ gtk3 libdbusmenu-gtk3 ];
|
||||
}.${gtkVersion} or throwBadGtkVersion;
|
||||
|
||||
buildInputs = [
|
||||
glib dbus-glib
|
||||
] ++ (if gtkVersion == "2"
|
||||
then [ libindicator-gtk2 ] ++ lib.optionals monoSupport [ mono gtk-sharp-2_0 ]
|
||||
else [ libindicator-gtk3 ]);
|
||||
{
|
||||
"2" = libindicator-gtk2;
|
||||
"3" = libindicator-gtk3;
|
||||
}.${gtkVersion} or throwBadGtkVersion
|
||||
] ++ lib.optionals monoSupport [
|
||||
mono
|
||||
{
|
||||
"2" = gtk-sharp-2_0;
|
||||
"3" = gtk-sharp-3_0;
|
||||
}.${gtkVersion} or throwBadGtkVersion
|
||||
];
|
||||
|
||||
preAutoreconf = ''
|
||||
gtkdocize
|
||||
|
@ -54,11 +65,19 @@ stdenv.mkDerivation {
|
|||
"localstatedir=\${TMPDIR}"
|
||||
];
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A library to allow applications to export a menu into the Unity Menu bar";
|
||||
homepage = "https://launchpad.net/libappindicator";
|
||||
license = with licenses; [ lgpl21 lgpl3 ];
|
||||
pkgConfigModules = {
|
||||
"2" = [ "appindicator-0.1" ];
|
||||
"3" = [ "appindicator3-0.1" ];
|
||||
}.${gtkVersion} or throwBadGtkVersion;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.msteen ];
|
||||
# TODO: Resolve the issues with the Mono bindings.
|
||||
broken = monoSupport;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -3,13 +3,16 @@
|
|||
, glib, dbus-glib, json-glib
|
||||
, gobject-introspection, vala
|
||||
, gtkVersion ? null, gtk2, gtk3
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libdbusmenu-${if gtkVersion == null then "glib" else "gtk${gtkVersion}"}";
|
||||
version = "16.04.0";
|
||||
|
||||
src = fetchurl {
|
||||
src = let
|
||||
inherit (finalAttrs) version;
|
||||
in fetchurl {
|
||||
url = "https://launchpad.net/dbusmenu/${lib.versions.majorMinor version}/${version}/+download/libdbusmenu-${version}.tar.gz";
|
||||
sha256 = "12l7z8dhl917iy9h02sxmpclnhkdjryn08r8i4sr8l3lrlm4mk5r";
|
||||
};
|
||||
|
@ -18,7 +21,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [
|
||||
glib dbus-glib json-glib
|
||||
] ++ lib.optional (gtkVersion != null) (if gtkVersion == "2" then gtk2 else gtk3);
|
||||
] ++ lib.optional (gtkVersion != null)
|
||||
{
|
||||
"2" = gtk2;
|
||||
"3" = gtk3;
|
||||
}.${gtkVersion} or (throw "unknown GTK version ${gtkVersion}");
|
||||
|
||||
postPatch = ''
|
||||
for f in {configure,ltmain.sh,m4/libtool.m4}; do
|
||||
|
@ -37,6 +44,7 @@ stdenv.mkDerivation rec {
|
|||
"CFLAGS=-Wno-error"
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
# TODO use `lib.withFeatureAs`
|
||||
(if gtkVersion == null then "--disable-gtk" else "--with-gtk=${gtkVersion}")
|
||||
"--disable-scrollkeeper"
|
||||
] ++ lib.optional (gtkVersion != "2") "--disable-dumper";
|
||||
|
@ -49,11 +57,17 @@ stdenv.mkDerivation rec {
|
|||
"typelibdir=${placeholder "out"}/lib/girepository-1.0"
|
||||
];
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for passing menu structures across DBus";
|
||||
homepage = "https://launchpad.net/dbusmenu";
|
||||
license = with licenses; [ gpl3 lgpl21 lgpl3 ];
|
||||
pkgConfigModules = [
|
||||
"dbusmenu-glib-0.4"
|
||||
"dbusmenu-jsonloader-0.4"
|
||||
] ++ lib.optional (gtkVersion == "3") "dbusmenu-gtk${gtkVersion}-0.4";
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.msteen ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -13,16 +13,17 @@
|
|||
, OpenGL
|
||||
, runtimeShell
|
||||
, withXorg ? true
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libdevil";
|
||||
version = "1.7.8";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/openil/DevIL-${version}.tar.gz";
|
||||
url = "mirror://sourceforge/openil/DevIL-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8";
|
||||
};
|
||||
|
||||
|
@ -63,11 +64,14 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://openil.sourceforge.net/";
|
||||
description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
|
||||
license = licenses.lgpl2;
|
||||
pkgConfigModules = [ "IL" ];
|
||||
platforms = platforms.mesaPlatforms;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{ stdenv
|
||||
, libglvnd, mesa
|
||||
, OpenGL }:
|
||||
, OpenGL
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (libglvnd) version;
|
||||
pname = "libGL";
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -72,4 +74,8 @@ stdenv.mkDerivation {
|
|||
genPkgConfig glesv1_cm GLESv1_CM
|
||||
genPkgConfig glesv2 GLESv2
|
||||
'';
|
||||
}
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta.pkgConfigModules = [ "gl" "egl" "glesv1_cm" "glesv2" ];
|
||||
})
|
||||
|
|
|
@ -8,14 +8,15 @@
|
|||
, withCxx ? !stdenv.hostPlatform.useAndroidPrebuilt
|
||||
, mouseSupport ? false, gpm
|
||||
, unicodeSupport ? true
|
||||
, testers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "6.4";
|
||||
pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://invisible-island.net/archives/ncurses/ncurses-${version}.tar.gz";
|
||||
url = "https://invisible-island.net/archives/ncurses/ncurses-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk=";
|
||||
};
|
||||
|
||||
|
@ -169,11 +170,20 @@ stdenv.mkDerivation rec {
|
|||
ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
|
||||
'';
|
||||
license = licenses.mit;
|
||||
pkgConfigModules = let
|
||||
base = [
|
||||
"form"
|
||||
"menu"
|
||||
"ncurses"
|
||||
"panel"
|
||||
] ++ lib.optional withCxx "ncurses++";
|
||||
in base ++ lib.optionals unicodeSupport (map (p: p + "w") base);
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
ldflags = "-lncurses";
|
||||
inherit unicodeSupport abiVersion;
|
||||
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nng";
|
||||
version = "1.5.2";
|
||||
version = "1.6.0-prerelease";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nanomsg";
|
||||
repo = "nng";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qbjMLpPk5FxH710Mf8AIraY0mERbaxVVhTT94W0EV+k=";
|
||||
rev = "539e559e65cd8f227c45e4b046ac41c0edcf6c32";
|
||||
sha256 = "sha256-86+f0um25Ywn78S2JrV54K7k3O6ots0q2dCco1aK0xM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ninja ]
|
||||
|
|
|
@ -53,8 +53,6 @@ mkProtobufDerivation = buildProtobuf: stdenv: stdenv.mkDerivation {
|
|||
mainProgram = "protoc";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
passthru.version = version;
|
||||
};
|
||||
in mkProtobufDerivation(if (stdenv.buildPlatform != stdenv.hostPlatform)
|
||||
then (mkProtobufDerivation null buildPackages.stdenv)
|
||||
|
|
|
@ -4,6 +4,8 @@ buildDunePackage {
|
|||
pname = "caqti-driver-sqlite3";
|
||||
inherit (caqti) version src;
|
||||
|
||||
duneVersion = "3";
|
||||
|
||||
propagatedBuildInputs = [ caqti ocaml_sqlite3 ];
|
||||
|
||||
meta = caqti.meta // {
|
||||
|
|
|
@ -10,10 +10,11 @@ buildDunePackage rec {
|
|||
pname = "checkseum";
|
||||
|
||||
minimalOCamlVersion = "4.07";
|
||||
duneVersion = "3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mirage/checkseum/releases/download/v${version}/checkseum-${version}.tbz";
|
||||
sha256 = "sha256-K6QPMts5+hxH2a+WQ1N0lwMBoshG2T0bSozNgzRvAlo=";
|
||||
hash = "sha256-K6QPMts5+hxH2a+WQ1N0lwMBoshG2T0bSozNgzRvAlo=";
|
||||
};
|
||||
|
||||
buildInputs = [ dune-configurator ];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue