Merge remote-tracking branch 'origin/master' into haskell-updates,
This commit is contained in:
commit
56bc587444
|
@ -192,6 +192,7 @@
|
||||||
/nixos/tests/php @NixOS/php
|
/nixos/tests/php @NixOS/php
|
||||||
/pkgs/build-support/build-pecl.nix @NixOS/php
|
/pkgs/build-support/build-pecl.nix @NixOS/php
|
||||||
/pkgs/development/interpreters/php @NixOS/php
|
/pkgs/development/interpreters/php @NixOS/php
|
||||||
|
/pkgs/development/php-packages @NixOS/php
|
||||||
/pkgs/top-level/php-packages.nix @NixOS/php
|
/pkgs/top-level/php-packages.nix @NixOS/php
|
||||||
|
|
||||||
# Podman, CRI-O modules and related
|
# Podman, CRI-O modules and related
|
||||||
|
|
|
@ -10,7 +10,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: technote-space/get-diff-action@v3.1.0
|
- uses: technote-space/get-diff-action@v4.0.0
|
||||||
- name: Fetch editorconfig-checker
|
- name: Fetch editorconfig-checker
|
||||||
if: env.GIT_DIFF
|
if: env.GIT_DIFF
|
||||||
env:
|
env:
|
||||||
|
|
|
@ -12,12 +12,13 @@ Agda can be installed from `agda`:
|
||||||
$ nix-env -iA agda
|
$ nix-env -iA agda
|
||||||
```
|
```
|
||||||
|
|
||||||
To use agda with libraries, the `agda.withPackages` function can be used. This function either takes:
|
To use Agda with libraries, the `agda.withPackages` function can be used. This function either takes:
|
||||||
+ A list of packages,
|
|
||||||
+ or a function which returns a list of packages when given the `agdaPackages` attribute set,
|
|
||||||
+ or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
|
|
||||||
|
|
||||||
For example, suppose we wanted a version of agda which has access to the standard library. This can be obtained with the expressions:
|
* A list of packages,
|
||||||
|
* or a function which returns a list of packages when given the `agdaPackages` attribute set,
|
||||||
|
* or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
|
||||||
|
|
||||||
|
For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
|
||||||
|
|
||||||
```
|
```
|
||||||
agda.withPackages [ agdaPackages.standard-library ]
|
agda.withPackages [ agdaPackages.standard-library ]
|
||||||
|
@ -33,18 +34,19 @@ or can be called as in the [Compiling Agda](#compiling-agda) section.
|
||||||
|
|
||||||
If you want to use a library in your home directory (for instance if it is a development version) then typecheck it manually (using `agda.withPackages` if necessary) and then override the `src` attribute of the package to point to your local repository.
|
If you want to use a library in your home directory (for instance if it is a development version) then typecheck it manually (using `agda.withPackages` if necessary) and then override the `src` attribute of the package to point to your local repository.
|
||||||
|
|
||||||
Agda will not by default use these libraries. To tell agda to use the library we have some options:
|
Agda will not by default use these libraries. To tell Agda to use the library we have some options:
|
||||||
- Call `agda` with the library flag:
|
|
||||||
|
* Call `agda` with the library flag:
|
||||||
```
|
```
|
||||||
$ agda -l standard-library -i . MyFile.agda
|
$ agda -l standard-library -i . MyFile.agda
|
||||||
```
|
```
|
||||||
- Write a `my-library.agda-lib` file for the project you are working on which may look like:
|
* Write a `my-library.agda-lib` file for the project you are working on which may look like:
|
||||||
```
|
```
|
||||||
name: my-library
|
name: my-library
|
||||||
include: .
|
include: .
|
||||||
depend: standard-library
|
depend: standard-library
|
||||||
```
|
```
|
||||||
- Create the file `~/.agda/defaults` and add any libraries you want to use by default.
|
* Create the file `~/.agda/defaults` and add any libraries you want to use by default.
|
||||||
|
|
||||||
More information can be found in the [official Agda documentation on library management](https://agda.readthedocs.io/en/v2.6.1/tools/package-system.html).
|
More information can be found in the [official Agda documentation on library management](https://agda.readthedocs.io/en/v2.6.1/tools/package-system.html).
|
||||||
|
|
||||||
|
@ -60,12 +62,13 @@ agda.withPackages {
|
||||||
```
|
```
|
||||||
|
|
||||||
## Writing Agda packages
|
## Writing Agda packages
|
||||||
To write a nix derivation for an agda library, first check that the library has a `*.agda-lib` file.
|
To write a nix derivation for an Agda library, first check that the library has a `*.agda-lib` file.
|
||||||
|
|
||||||
A derivation can then be written using `agdaPackages.mkDerivation`. This has similar arguments to `stdenv.mkDerivation` with the following additions:
|
A derivation can then be written using `agdaPackages.mkDerivation`. This has similar arguments to `stdenv.mkDerivation` with the following additions:
|
||||||
+ `everythingFile` can be used to specify the location of the `Everything.agda` file, defaulting to `./Everything.agda`. If this file does not exist then either it should be patched in or the `buildPhase` should be overridden (see below).
|
|
||||||
+ `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
|
* `everythingFile` can be used to specify the location of the `Everything.agda` file, defaulting to `./Everything.agda`. If this file does not exist then either it should be patched in or the `buildPhase` should be overridden (see below).
|
||||||
+ `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
|
* `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
|
||||||
|
* `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
|
||||||
|
|
||||||
### Building Agda packages
|
### Building Agda packages
|
||||||
The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file.
|
The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file.
|
||||||
|
@ -74,12 +77,14 @@ Additionally, a `preBuild` or `configurePhase` can be used if there are steps th
|
||||||
`agda` and the Agda libraries contained in `buildInputs` are made available during the build phase.
|
`agda` and the Agda libraries contained in `buildInputs` are made available during the build phase.
|
||||||
|
|
||||||
### Installing Agda packages
|
### Installing Agda packages
|
||||||
The default install phase copies agda source files, agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
|
The default install phase copies Agda source files, Agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
|
||||||
This can be overridden.
|
This can be overridden.
|
||||||
|
|
||||||
By default, agda sources are files ending on `.agda`, or literate agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised agda source extensions can be extended by setting the `extraExtensions` config variable.
|
By default, Agda sources are files ending on `.agda`, or literate Agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised Agda source extensions can be extended by setting the `extraExtensions` config variable.
|
||||||
|
|
||||||
To add an agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other agda libraries, so the top line of the `default.nix` can look like:
|
## Adding Agda packages to Nixpkgs
|
||||||
|
|
||||||
|
To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
|
||||||
```
|
```
|
||||||
{ mkDerivation, standard-library, fetchFromGitHub }:
|
{ mkDerivation, standard-library, fetchFromGitHub }:
|
||||||
```
|
```
|
||||||
|
@ -103,4 +108,4 @@ mkDerivation {
|
||||||
```
|
```
|
||||||
This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName = "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
|
This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName = "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
|
||||||
|
|
||||||
When writing an agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes agda to think that the nix store is a agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
|
When writing an Agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes Agda to think that the nix store is a Agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
|
||||||
|
|
|
@ -755,8 +755,8 @@ and in this case the `python38` interpreter is automatically used.
|
||||||
|
|
||||||
### Interpreters
|
### Interpreters
|
||||||
|
|
||||||
Versions 2.7, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
|
Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
|
||||||
respectively `python27`, `python36`, `python37` and `python38`. The
|
respectively `python27`, `python36`, `python37`, `python38` and `python39`. The
|
||||||
aliases `python2` and `python3` correspond to respectively `python27` and
|
aliases `python2` and `python3` correspond to respectively `python27` and
|
||||||
`python38`. The default interpreter, `python`, maps to `python2`. The PyPy
|
`python38`. The default interpreter, `python`, maps to `python2`. The PyPy
|
||||||
interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
|
interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
|
||||||
|
|
|
@ -1833,6 +1833,19 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<literal>move-systemd-user-units.sh</literal>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This setup hook moves any systemd user units installed in the lib
|
||||||
|
subdirectory into share. In addition, a link is provided from share to
|
||||||
|
lib for compatibility. This is needed for systemd to find user services
|
||||||
|
when installed into the user profile.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<literal>set-source-date-epoch-to-latest.sh</literal>
|
<literal>set-source-date-epoch-to-latest.sh</literal>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
modules ++ [
|
modules ++ [
|
||||||
{
|
{
|
||||||
system.nixos.versionSuffix =
|
system.nixos.versionSuffix =
|
||||||
".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
|
".${final.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}";
|
||||||
system.nixos.revision = final.mkIf (self ? rev) self.rev;
|
system.nixos.revision = final.mkIf (self ? rev) self.rev;
|
||||||
|
|
||||||
system.build = {
|
system.build = {
|
||||||
|
|
|
@ -179,8 +179,8 @@ rec {
|
||||||
iphone64 = {
|
iphone64 = {
|
||||||
config = "aarch64-apple-ios";
|
config = "aarch64-apple-ios";
|
||||||
# config = "aarch64-apple-darwin14";
|
# config = "aarch64-apple-darwin14";
|
||||||
sdkVer = "12.4";
|
sdkVer = "13.2";
|
||||||
xcodeVer = "10.3";
|
xcodeVer = "11.3.1";
|
||||||
xcodePlatform = "iPhoneOS";
|
xcodePlatform = "iPhoneOS";
|
||||||
useiOSPrebuilt = true;
|
useiOSPrebuilt = true;
|
||||||
platform = {};
|
platform = {};
|
||||||
|
@ -189,8 +189,8 @@ rec {
|
||||||
iphone32 = {
|
iphone32 = {
|
||||||
config = "armv7a-apple-ios";
|
config = "armv7a-apple-ios";
|
||||||
# config = "arm-apple-darwin10";
|
# config = "arm-apple-darwin10";
|
||||||
sdkVer = "12.4";
|
sdkVer = "13.2";
|
||||||
xcodeVer = "10.3";
|
xcodeVer = "11.3.1";
|
||||||
xcodePlatform = "iPhoneOS";
|
xcodePlatform = "iPhoneOS";
|
||||||
useiOSPrebuilt = true;
|
useiOSPrebuilt = true;
|
||||||
platform = {};
|
platform = {};
|
||||||
|
@ -199,8 +199,8 @@ rec {
|
||||||
iphone64-simulator = {
|
iphone64-simulator = {
|
||||||
config = "x86_64-apple-ios";
|
config = "x86_64-apple-ios";
|
||||||
# config = "x86_64-apple-darwin14";
|
# config = "x86_64-apple-darwin14";
|
||||||
sdkVer = "12.4";
|
sdkVer = "13.2";
|
||||||
xcodeVer = "10.3";
|
xcodeVer = "11.3.1";
|
||||||
xcodePlatform = "iPhoneSimulator";
|
xcodePlatform = "iPhoneSimulator";
|
||||||
useiOSPrebuilt = true;
|
useiOSPrebuilt = true;
|
||||||
platform = {};
|
platform = {};
|
||||||
|
@ -209,8 +209,8 @@ rec {
|
||||||
iphone32-simulator = {
|
iphone32-simulator = {
|
||||||
config = "i686-apple-ios";
|
config = "i686-apple-ios";
|
||||||
# config = "i386-apple-darwin11";
|
# config = "i386-apple-darwin11";
|
||||||
sdkVer = "12.4";
|
sdkVer = "13.2";
|
||||||
xcodeVer = "10.3";
|
xcodeVer = "11.3.1";
|
||||||
xcodePlatform = "iPhoneSimulator";
|
xcodePlatform = "iPhoneSimulator";
|
||||||
useiOSPrebuilt = true;
|
useiOSPrebuilt = true;
|
||||||
platform = {};
|
platform = {};
|
||||||
|
|
|
@ -2395,6 +2395,12 @@
|
||||||
githubId = 984691;
|
githubId = 984691;
|
||||||
name = "Evan Danaher";
|
name = "Evan Danaher";
|
||||||
};
|
};
|
||||||
|
edcragg = {
|
||||||
|
email = "ed.cragg@eipi.xyz";
|
||||||
|
github = "nuxeh";
|
||||||
|
githubId = 1516017;
|
||||||
|
name = "Ed Cragg";
|
||||||
|
};
|
||||||
edef = {
|
edef = {
|
||||||
email = "edef@edef.eu";
|
email = "edef@edef.eu";
|
||||||
github = "edef1c";
|
github = "edef1c";
|
||||||
|
@ -2723,6 +2729,12 @@
|
||||||
githubId = 1847524;
|
githubId = 1847524;
|
||||||
name = "Evan Stoll";
|
name = "Evan Stoll";
|
||||||
};
|
};
|
||||||
|
evax = {
|
||||||
|
email = "nixos@evax.fr";
|
||||||
|
github = "evax";
|
||||||
|
githubId = 599997;
|
||||||
|
name = "evax";
|
||||||
|
};
|
||||||
evck = {
|
evck = {
|
||||||
email = "eric@evenchick.com";
|
email = "eric@evenchick.com";
|
||||||
github = "ericevenchick";
|
github = "ericevenchick";
|
||||||
|
@ -3319,6 +3331,12 @@
|
||||||
githubId = 10654650;
|
githubId = 10654650;
|
||||||
name = "Guillaume Koenig";
|
name = "Guillaume Koenig";
|
||||||
};
|
};
|
||||||
|
guserav = {
|
||||||
|
email = "guserav@users.noreply.github.com";
|
||||||
|
github = "guserav";
|
||||||
|
githubId = 28863828;
|
||||||
|
name = "guserav";
|
||||||
|
};
|
||||||
guyonvarch = {
|
guyonvarch = {
|
||||||
email = "joris@guyonvarch.me";
|
email = "joris@guyonvarch.me";
|
||||||
github = "guyonvarch";
|
github = "guyonvarch";
|
||||||
|
@ -4268,6 +4286,12 @@
|
||||||
githubId = 39434424;
|
githubId = 39434424;
|
||||||
name = "Felix Springer";
|
name = "Felix Springer";
|
||||||
};
|
};
|
||||||
|
justinas = {
|
||||||
|
email = "justinas@justinas.org";
|
||||||
|
github = "justinas";
|
||||||
|
githubId = 662666;
|
||||||
|
name = "Justinas Stankevičius";
|
||||||
|
};
|
||||||
justinlovinger = {
|
justinlovinger = {
|
||||||
email = "git@justinlovinger.com";
|
email = "git@justinlovinger.com";
|
||||||
github = "JustinLovinger";
|
github = "JustinLovinger";
|
||||||
|
@ -6237,6 +6261,12 @@
|
||||||
githubId = 40049608;
|
githubId = 40049608;
|
||||||
name = "Andy Chun";
|
name = "Andy Chun";
|
||||||
};
|
};
|
||||||
|
norfair = {
|
||||||
|
email = "syd@cs-syd.eu";
|
||||||
|
github = "NorfairKing";
|
||||||
|
githubId = 3521180;
|
||||||
|
name = "Tom Sydney Kerckhove";
|
||||||
|
};
|
||||||
notthemessiah = {
|
notthemessiah = {
|
||||||
email = "brian.cohen.88@gmail.com";
|
email = "brian.cohen.88@gmail.com";
|
||||||
github = "notthemessiah";
|
github = "notthemessiah";
|
||||||
|
@ -6371,6 +6401,12 @@
|
||||||
githubId = 1538622;
|
githubId = 1538622;
|
||||||
name = "Michael Reilly";
|
name = "Michael Reilly";
|
||||||
};
|
};
|
||||||
|
onny = {
|
||||||
|
email = "onny@project-insanity.org";
|
||||||
|
github = "onny";
|
||||||
|
githubId = 757752;
|
||||||
|
name = "Jonas Heinrich";
|
||||||
|
};
|
||||||
OPNA2608 = {
|
OPNA2608 = {
|
||||||
email = "christoph.neidahl@gmail.com";
|
email = "christoph.neidahl@gmail.com";
|
||||||
github = "OPNA2608";
|
github = "OPNA2608";
|
||||||
|
@ -9100,6 +9136,12 @@
|
||||||
githubId = 508305;
|
githubId = 508305;
|
||||||
name = "Jaroslavas Pocepko";
|
name = "Jaroslavas Pocepko";
|
||||||
};
|
};
|
||||||
|
vonfry = {
|
||||||
|
email = "nixos@vonfry.name";
|
||||||
|
github = "Vonfry";
|
||||||
|
githubId = 3413119;
|
||||||
|
name = "Vonfry";
|
||||||
|
};
|
||||||
vozz = {
|
vozz = {
|
||||||
email = "oliver.huntuk@gmail.com";
|
email = "oliver.huntuk@gmail.com";
|
||||||
name = "Oliver Hunt";
|
name = "Oliver Hunt";
|
||||||
|
@ -9218,6 +9260,12 @@
|
||||||
githubId = 1322287;
|
githubId = 1322287;
|
||||||
name = "William O'Hanley";
|
name = "William O'Hanley";
|
||||||
};
|
};
|
||||||
|
wolfangaukang = {
|
||||||
|
email = "liquid.query960@4wrd.cc";
|
||||||
|
github = "wolfangaukang";
|
||||||
|
githubId = 8378365;
|
||||||
|
name = "P. R. d. O.";
|
||||||
|
};
|
||||||
womfoo = {
|
womfoo = {
|
||||||
email = "kranium@gikos.net";
|
email = "kranium@gikos.net";
|
||||||
github = "womfoo";
|
github = "womfoo";
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
linkend="ch-configuration"/>. Changes to a module documentation
|
linkend="ch-configuration"/>. Changes to a module documentation
|
||||||
have to be checked to not break building the NixOS manual:
|
have to be checked to not break building the NixOS manual:
|
||||||
</para>
|
</para>
|
||||||
<screen><prompt>$ </prompt>nix-build nixos/release.nix -A manual</screen>
|
<screen><prompt>$ </prompt>nix-build nixos/release.nix -A manual.x86_64-linux</screen>
|
||||||
</callout>
|
</callout>
|
||||||
</calloutlist>
|
</calloutlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -64,6 +64,12 @@
|
||||||
Python 3 now defaults to Python 3.8 instead of 3.7.
|
Python 3 now defaults to Python 3.8 instead of 3.7.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Python 3.5 has reached its upstream EOL at the end of September 2020: it
|
||||||
|
has been removed from the list of available packages.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Two new options, <link linkend="opt-services.openssh.authorizedKeysCommand">authorizedKeysCommand</link>
|
Two new options, <link linkend="opt-services.openssh.authorizedKeysCommand">authorizedKeysCommand</link>
|
||||||
|
@ -226,29 +232,7 @@ GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' WITH GRANT OPTION;
|
||||||
<filename>testing-python.nix</filename> respectively.
|
<filename>testing-python.nix</filename> respectively.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
</itemizedlist>
|
||||||
<para>
|
|
||||||
The Mediatomb service declares new options. It also adapts existing
|
|
||||||
options to make the configuration generation lazy. The existing option
|
|
||||||
<literal>customCfg</literal> (defaults to false), when enabled, stops
|
|
||||||
the service configuration generation completely. It then expects the
|
|
||||||
users to provide their own correct configuration at the right location
|
|
||||||
(whereas the configuration was generated and not used at all before).
|
|
||||||
The new option <literal>transcodingOption</literal> (defaults to no)
|
|
||||||
allows a generated configuration. It makes the mediatomb service pulls
|
|
||||||
the necessary runtime dependencies in the nix store (whereas it was
|
|
||||||
generated with hardcoded values before). The new option
|
|
||||||
<literal>mediaDirectories</literal> allows the users to declare autoscan
|
|
||||||
media directories from their nixos configuration:
|
|
||||||
<programlisting>
|
|
||||||
services.mediatomb.mediaDirectories = [
|
|
||||||
{ path = "/var/lib/mediatomb/pictures"; recursive = false; hidden-files = false; }
|
|
||||||
{ path = "/var/lib/mediatomb/audio"; recursive = true; hidden-files = false; }
|
|
||||||
];
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xmlns="http://docbook.org/ns/docbook"
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
|
@ -605,8 +589,8 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
In addition to the hostname, the fully qualified domain name (FQDN),
|
In addition to the hostname, the fully qualified domain name (FQDN),
|
||||||
which consists of <literal>${cfg.hostName}</literal> and
|
which consists of <literal>${networking.hostName}</literal> and
|
||||||
<literal>${cfg.domain}</literal> is now added to
|
<literal>${networking.domain}</literal> is now added to
|
||||||
<literal>/etc/hosts</literal>, to allow local FQDN resolution, as used by the
|
<literal>/etc/hosts</literal>, to allow local FQDN resolution, as used by the
|
||||||
<literal>hostname --fqdn</literal> command and other applications that
|
<literal>hostname --fqdn</literal> command and other applications that
|
||||||
try to determine the FQDN. These new entries take precedence over entries
|
try to determine the FQDN. These new entries take precedence over entries
|
||||||
|
@ -626,6 +610,10 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
|
||||||
or digit, and have as interior characters only letters, digits, and
|
or digit, and have as interior characters only letters, digits, and
|
||||||
hyphen. The maximum length is 63 characters. Additionally it is
|
hyphen. The maximum length is 63 characters. Additionally it is
|
||||||
recommended to only use lower-case characters.
|
recommended to only use lower-case characters.
|
||||||
|
If (e.g. for legacy reasons) a FQDN is required as the Linux kernel network node hostname
|
||||||
|
(<literal>uname --nodename</literal>) the option
|
||||||
|
<literal>boot.kernel.sysctl."kernel.hostname"</literal>
|
||||||
|
can be used as a workaround (but be aware of the 64 character limit).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -861,6 +849,13 @@ CREATE ROLE postgres LOGIN SUPERUSER;
|
||||||
functionally redundent.
|
functionally redundent.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>hardware.nvidia.optimus_prime.enable</literal> service has been renamed to
|
||||||
|
<literal>hardware.nvidia.prime.sync.enable</literal> and has many new enhancements.
|
||||||
|
Related nvidia prime settings may have also changed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The package <package>nextcloud17</package> has been removed and <package>nextcloud18</package> was marked as insecure
|
The package <package>nextcloud17</package> has been removed and <package>nextcloud18</package> was marked as insecure
|
||||||
|
@ -887,21 +882,11 @@ CREATE ROLE postgres LOGIN SUPERUSER;
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The mediatomb service is now using the new and maintained <literal>gerbera</literal>
|
The GNOME desktop manager no longer default installs <package>gnome3.epiphany</package>.
|
||||||
<literal>gerbera</literal> fork instead of the unmaintained
|
It was chosen to do this as it has a usability breaking issue (see issue <link xlink:href="https://github.com/NixOS/nixpkgs/issues/98819">#98819</link>)
|
||||||
<literal>mediatomb</literal> package. If you want to keep the old
|
that makes it unsuitable to be a default app.
|
||||||
behavior, you must declare it with:
|
</para>
|
||||||
<programlisting>
|
|
||||||
services.mediatomb.package = pkgs.mediatomb;
|
|
||||||
</programlisting>
|
|
||||||
One new option <literal>openFirewall</literal> has been introduced which
|
|
||||||
defaults to false. If you relied on the service declaration to add the
|
|
||||||
firewall rules itself before, you should now declare it with:
|
|
||||||
<programlisting>
|
|
||||||
services.mediatomb.openFirewall = true;
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
@ -1132,8 +1117,10 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <literal>fontconfig</literal> module stopped generating fontconfig 2.10.x config and cache.
|
The <literal>fontconfig</literal> module stopped generating config and cache files for fontconfig 2.10.x, the <filename>/etc/fonts/fonts.conf</filename> now belongs to the latest fontconfig, just like on other Linux distributions, and we will <link xlink:href="https://github.com/NixOS/nixpkgs/pull/95358">no longer</link> be versioning the config directories.
|
||||||
Fontconfig 2.10.x was removed from Nixpkgs - it hasn't been used in any nixpkgs package anymore.
|
</para>
|
||||||
|
<para>
|
||||||
|
Fontconfig 2.10.x was removed from Nixpkgs since it hasn’t been used in any Nixpkgs package for years now.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -1223,5 +1210,20 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
For AMD GPUs, Vulkan can now be used by adding <literal>amdvlk</literal>
|
||||||
|
to <literal>hardware.opengl.extraPackages</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Similarly, still for AMD GPUs, the ROCm OpenCL stack can now be used by adding
|
||||||
|
<literal>rocm-opencl-icd</literal> to
|
||||||
|
<literal>hardware.opengl.extraPackages</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -65,10 +65,32 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The option <option>fonts.enableFontDir</option> has been renamed to
|
If the <varname>services.dbus</varname> module is enabled, then
|
||||||
<xref linkend="opt-fonts.fontDir.enable"/>. The path of font directory
|
the user D-Bus session is now always socket activated. The
|
||||||
has also been changed to <literal>/run/current-system/sw/share/X11/fonts</literal>,
|
associated options <varname>services.dbus.socketActivated</varname>
|
||||||
for consistency with other X11 resources.
|
and <varname>services.xserver.startDbusSession</varname> have
|
||||||
|
therefore been removed and you will receive a warning if
|
||||||
|
they are present in your configuration. This change makes the
|
||||||
|
user D-Bus session available also for non-graphical logins.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The option <option>fonts.enableFontDir</option> has been renamed to
|
||||||
|
<xref linkend="opt-fonts.fontDir.enable"/>. The path of font directory
|
||||||
|
has also been changed to <literal>/run/current-system/sw/share/X11/fonts</literal>,
|
||||||
|
for consistency with other X11 resources.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
A number of options have been renamed in the kicad interface. <literal>oceSupport</literal>
|
||||||
|
has been renamed to <literal>withOCE</literal>, <literal>withOCCT</literal> has been renamed
|
||||||
|
to <literal>withOCC</literal>, <literal>ngspiceSupport</literal> has been renamed to
|
||||||
|
<literal>withNgspice</literal>, and <literal>scriptingSupport</literal> has been renamed to
|
||||||
|
<literal>withScripting</literal>. Additionally, <literal>kicad/base.nix</literal> no longer
|
||||||
|
provides default argument values since these are provided by
|
||||||
|
<literal>kicad/default.nix</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
|
@ -142,6 +142,7 @@ in
|
||||||
"/share/kservices5"
|
"/share/kservices5"
|
||||||
"/share/kservicetypes5"
|
"/share/kservicetypes5"
|
||||||
"/share/kxmlgui5"
|
"/share/kxmlgui5"
|
||||||
|
"/share/systemd"
|
||||||
];
|
];
|
||||||
|
|
||||||
system.path = pkgs.buildEnv {
|
system.path = pkgs.buildEnv {
|
||||||
|
|
|
@ -442,6 +442,7 @@
|
||||||
./services/misc/dysnomia.nix
|
./services/misc/dysnomia.nix
|
||||||
./services/misc/disnix.nix
|
./services/misc/disnix.nix
|
||||||
./services/misc/docker-registry.nix
|
./services/misc/docker-registry.nix
|
||||||
|
./services/misc/domoticz.nix
|
||||||
./services/misc/errbot.nix
|
./services/misc/errbot.nix
|
||||||
./services/misc/etcd.nix
|
./services/misc/etcd.nix
|
||||||
./services/misc/ethminer.nix
|
./services/misc/ethminer.nix
|
||||||
|
@ -466,6 +467,7 @@
|
||||||
./services/misc/irkerd.nix
|
./services/misc/irkerd.nix
|
||||||
./services/misc/jackett.nix
|
./services/misc/jackett.nix
|
||||||
./services/misc/jellyfin.nix
|
./services/misc/jellyfin.nix
|
||||||
|
./services/misc/klipper.nix
|
||||||
./services/misc/logkeys.nix
|
./services/misc/logkeys.nix
|
||||||
./services/misc/leaps.nix
|
./services/misc/leaps.nix
|
||||||
./services/misc/lidarr.nix
|
./services/misc/lidarr.nix
|
||||||
|
|
|
@ -14,10 +14,20 @@ in {
|
||||||
using the EDITOR environment variable.
|
using the EDITOR environment variable.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.vim;
|
||||||
|
defaultText = "pkgs.vim";
|
||||||
|
example = "pkgs.vimHugeX";
|
||||||
|
description = ''
|
||||||
|
vim package to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.defaultEditor {
|
config = mkIf cfg.defaultEditor {
|
||||||
environment.systemPackages = [ pkgs.vim ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
environment.variables = { EDITOR = mkOverride 900 "vim"; };
|
environment.variables = { EDITOR = mkOverride 900 "vim"; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,19 +122,22 @@ let
|
||||||
"--email" data.email
|
"--email" data.email
|
||||||
"--key-type" data.keyType
|
"--key-type" data.keyType
|
||||||
] ++ protocolOpts
|
] ++ protocolOpts
|
||||||
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
|
||||||
++ optionals (acmeServer != null) [ "--server" acmeServer ]
|
++ optionals (acmeServer != null) [ "--server" acmeServer ]
|
||||||
++ concatMap (name: [ "-d" name ]) extraDomains
|
++ concatMap (name: [ "-d" name ]) extraDomains
|
||||||
++ data.extraLegoFlags;
|
++ data.extraLegoFlags;
|
||||||
|
|
||||||
|
# Although --must-staple is common to both modes, it is not declared as a
|
||||||
|
# mode-agnostic argument in lego and thus must come after the mode.
|
||||||
runOpts = escapeShellArgs (
|
runOpts = escapeShellArgs (
|
||||||
commonOpts
|
commonOpts
|
||||||
++ [ "run" ]
|
++ [ "run" ]
|
||||||
|
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
||||||
++ data.extraLegoRunFlags
|
++ data.extraLegoRunFlags
|
||||||
);
|
);
|
||||||
renewOpts = escapeShellArgs (
|
renewOpts = escapeShellArgs (
|
||||||
commonOpts
|
commonOpts
|
||||||
++ [ "renew" "--reuse-key" ]
|
++ [ "renew" "--reuse-key" ]
|
||||||
|
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
||||||
++ data.extraLegoRenewFlags
|
++ data.extraLegoRenewFlags
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ in {
|
||||||
+ " the 'users.users' option instead as this combination is"
|
+ " the 'users.users' option instead as this combination is"
|
||||||
+ " currently not supported.";
|
+ " currently not supported.";
|
||||||
}
|
}
|
||||||
{ assertion = !cfg.serviceConfig.ProtectSystem or false;
|
{ assertion = cfg.serviceConfig ? ProtectSystem -> cfg.serviceConfig.ProtectSystem == false;
|
||||||
message = "${whatOpt "ProtectSystem"}. ProtectSystem is not compatible"
|
message = "${whatOpt "ProtectSystem"}. ProtectSystem is not compatible"
|
||||||
+ " with service confinement as it fails to remount /usr within"
|
+ " with service confinement as it fails to remount /usr within"
|
||||||
+ " our chroot. Please disable the option.";
|
+ " our chroot. Please disable the option.";
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.domoticz;
|
||||||
|
pkgDesc = "Domoticz home automation";
|
||||||
|
|
||||||
|
in {
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.domoticz = {
|
||||||
|
enable = mkEnableOption pkgDesc;
|
||||||
|
|
||||||
|
bind = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "0.0.0.0";
|
||||||
|
description = "IP address to bind to.";
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8080;
|
||||||
|
description = "Port to bind to for HTTP, set to 0 to disable HTTP.";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
systemd.services."domoticz" = {
|
||||||
|
description = pkgDesc;
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
StateDirectory = "domoticz";
|
||||||
|
Restart = "always";
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.domoticz}/bin/domoticz -noupdates -www ${toString cfg.port} -wwwbind ${cfg.bind} -sslwww 0 -userdata /var/lib/domoticz -approot ${pkgs.domoticz}/share/domoticz/ -pidfile /var/run/domoticz.pid
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -73,6 +73,11 @@ let
|
||||||
|
|
||||||
redisConfig.production.url = cfg.redisUrl;
|
redisConfig.production.url = cfg.redisUrl;
|
||||||
|
|
||||||
|
pagesArgs = [
|
||||||
|
"-pages-domain" gitlabConfig.production.pages.host
|
||||||
|
"-pages-root" "${gitlabConfig.production.shared.path}/pages"
|
||||||
|
] ++ cfg.pagesExtraArgs;
|
||||||
|
|
||||||
gitlabConfig = {
|
gitlabConfig = {
|
||||||
# These are the default settings from config/gitlab.example.yml
|
# These are the default settings from config/gitlab.example.yml
|
||||||
production = flip recursiveUpdate cfg.extraConfig {
|
production = flip recursiveUpdate cfg.extraConfig {
|
||||||
|
@ -236,6 +241,13 @@ in {
|
||||||
description = "Reference to the gitaly package";
|
description = "Reference to the gitaly package";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
packages.pages = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.gitlab-pages;
|
||||||
|
defaultText = "pkgs.gitlab-pages";
|
||||||
|
description = "Reference to the gitlab-pages package";
|
||||||
|
};
|
||||||
|
|
||||||
statePath = mkOption {
|
statePath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/var/gitlab/state";
|
default = "/var/gitlab/state";
|
||||||
|
@ -451,6 +463,12 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pagesExtraArgs = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ "-listen-proxy" "127.0.0.1:8090" ];
|
||||||
|
description = "Arguments to pass to the gitlab-pages daemon";
|
||||||
|
};
|
||||||
|
|
||||||
secrets.secretFile = mkOption {
|
secrets.secretFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
|
@ -754,6 +772,26 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.gitlab-pages = mkIf (gitlabConfig.production.pages.enabled or false) {
|
||||||
|
description = "GitLab static pages daemon";
|
||||||
|
after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
path = [ pkgs.unzip ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
TimeoutSec = "infinity";
|
||||||
|
Restart = "on-failure";
|
||||||
|
|
||||||
|
User = cfg.user;
|
||||||
|
Group = cfg.group;
|
||||||
|
|
||||||
|
ExecStart = "${cfg.packages.pages}/bin/gitlab-pages ${escapeShellArgs pagesArgs}";
|
||||||
|
WorkingDirectory = gitlabEnv.HOME;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
systemd.services.gitlab-workhorse = {
|
systemd.services.gitlab-workhorse = {
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.services.klipper;
|
||||||
|
package = pkgs.klipper;
|
||||||
|
format = pkgs.formats.ini { mkKeyValue = generators.mkKeyValueDefault {} ":"; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
##### interface
|
||||||
|
options = {
|
||||||
|
services.klipper = {
|
||||||
|
enable = mkEnableOption "Klipper, the 3D printer firmware";
|
||||||
|
|
||||||
|
octoprintIntegration = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Allows Octoprint to control Klipper.";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
type = format.type;
|
||||||
|
default = { };
|
||||||
|
description = ''
|
||||||
|
Configuration for Klipper. See the <link xlink:href="https://www.klipper3d.org/Overview.html#configuration-and-tuning-guides">documentation</link>
|
||||||
|
for supported values.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
##### implementation
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
assertions = [{
|
||||||
|
assertion = cfg.octoprintIntegration -> config.services.octoprint.enable;
|
||||||
|
message = "Option klipper.octoprintIntegration requires Octoprint to be enabled on this system. Please enable services.octoprint to use it.";
|
||||||
|
}];
|
||||||
|
|
||||||
|
environment.etc."klipper.cfg".source = format.generate "klipper.cfg" cfg.settings;
|
||||||
|
|
||||||
|
systemd.services.klipper = {
|
||||||
|
description = "Klipper 3D Printer Firmware";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${package}/lib/klipper/klippy.py --input-tty=/run/klipper/tty /etc/klipper.cfg";
|
||||||
|
RuntimeDirectory = "klipper";
|
||||||
|
SupplementaryGroups = [ "dialout" ];
|
||||||
|
WorkingDirectory = "${package}/lib";
|
||||||
|
} // (if cfg.octoprintIntegration then {
|
||||||
|
Group = config.services.octoprint.group;
|
||||||
|
User = config.services.octoprint.user;
|
||||||
|
} else {
|
||||||
|
DynamicUser = true;
|
||||||
|
User = "klipper";
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -239,7 +239,7 @@ in
|
||||||
|
|
||||||
system.nssModules = optional cfg.nssmdns pkgs.nssmdns;
|
system.nssModules = optional cfg.nssmdns pkgs.nssmdns;
|
||||||
system.nssDatabases.hosts = optionals cfg.nssmdns (mkMerge [
|
system.nssDatabases.hosts = optionals cfg.nssmdns (mkMerge [
|
||||||
[ "mdns_minimal [NOTFOUND=return]" ]
|
(mkOrder 900 [ "mdns_minimal [NOTFOUND=return]" ]) # must be before resolve
|
||||||
(mkOrder 1501 [ "mdns" ]) # 1501 to ensure it's after dns
|
(mkOrder 1501 [ "mdns" ]) # 1501 to ensure it's after dns
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ let
|
||||||
configFile = pkgs.writeText "dndist.conf" ''
|
configFile = pkgs.writeText "dndist.conf" ''
|
||||||
setLocal('${cfg.listenAddress}:${toString cfg.listenPort}')
|
setLocal('${cfg.listenAddress}:${toString cfg.listenPort}')
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
services.dnsdist = {
|
services.dnsdist = {
|
||||||
|
@ -35,25 +35,18 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf config.services.dnsdist.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.packages = [ pkgs.dnsdist ];
|
||||||
|
|
||||||
systemd.services.dnsdist = {
|
systemd.services.dnsdist = {
|
||||||
description = "dnsdist load balancer";
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = ["network.target"];
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Restart="on-failure";
|
|
||||||
RestartSec="1";
|
|
||||||
DynamicUser = true;
|
DynamicUser = true;
|
||||||
StartLimitInterval="0";
|
|
||||||
PrivateDevices=true;
|
# upstream overrides for better nixos compatibility
|
||||||
AmbientCapabilities="CAP_NET_BIND_SERVICE";
|
ExecStartPre = [ "" "${pkgs.dnsdist}/bin/dnsdist --check-config --config ${configFile}" ];
|
||||||
CapabilityBoundingSet="CAP_NET_BIND_SERVICE";
|
ExecStart = [ "" "${pkgs.dnsdist}/bin/dnsdist --supervised --disable-syslog --config ${configFile}" ];
|
||||||
ExecStart = "${pkgs.dnsdist}/bin/dnsdist --supervised --disable-syslog --config ${configFile}";
|
|
||||||
ProtectHome=true;
|
|
||||||
RestrictAddressFamilies="AF_UNIX AF_INET AF_INET6";
|
|
||||||
LimitNOFILE="16384";
|
|
||||||
TasksMax="8192";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,6 +19,12 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
(mkRemovedOptionModule
|
||||||
|
[ "services" "dbus" "socketActivated" ]
|
||||||
|
"The user D-Bus session is now always socket activated and this option can safely be removed.")
|
||||||
|
];
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
@ -51,14 +57,6 @@ in
|
||||||
<filename><replaceable>pkg</replaceable>/share/dbus-1/services</filename>
|
<filename><replaceable>pkg</replaceable>/share/dbus-1/services</filename>
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
socketActivated = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Make the user instance socket activated.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -108,7 +106,7 @@ in
|
||||||
reloadIfChanged = true;
|
reloadIfChanged = true;
|
||||||
restartTriggers = [ configDir ];
|
restartTriggers = [ configDir ];
|
||||||
};
|
};
|
||||||
sockets.dbus.wantedBy = mkIf cfg.socketActivated [ "sockets.target" ];
|
sockets.dbus.wantedBy = [ "sockets.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.pathsToLink = [ "/etc/dbus-1" "/share/dbus-1" ];
|
environment.pathsToLink = [ "/etc/dbus-1" "/share/dbus-1" ];
|
||||||
|
|
|
@ -167,8 +167,8 @@ in {
|
||||||
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
||||||
${poolName} = {
|
${poolName} = {
|
||||||
user = "icingaweb2";
|
user = "icingaweb2";
|
||||||
|
phpPackage = pkgs.php.withExtensions ({ enabled, all }: [ all.imagick ] ++ enabled);
|
||||||
phpOptions = ''
|
phpOptions = ''
|
||||||
extension = ${pkgs.phpPackages.imagick}/lib/php/extensions/imagick.so
|
|
||||||
date.timezone = "${cfg.timezone}"
|
date.timezone = "${cfg.timezone}"
|
||||||
'';
|
'';
|
||||||
settings = mapAttrs (name: mkDefault) {
|
settings = mapAttrs (name: mkDefault) {
|
||||||
|
|
|
@ -374,7 +374,9 @@ in
|
||||||
baobab
|
baobab
|
||||||
cheese
|
cheese
|
||||||
eog
|
eog
|
||||||
epiphany
|
/* Not in good standing on nixos:
|
||||||
|
* https://github.com/NixOS/nixpkgs/issues/98819
|
||||||
|
/* epiphany */
|
||||||
gedit
|
gedit
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
gnome-calendar
|
gnome-calendar
|
||||||
|
|
|
@ -37,13 +37,6 @@ let
|
||||||
. /etc/profile
|
. /etc/profile
|
||||||
cd "$HOME"
|
cd "$HOME"
|
||||||
|
|
||||||
${optionalString cfg.startDbusSession ''
|
|
||||||
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
|
|
||||||
/run/current-system/systemd/bin/systemctl --user start dbus.socket
|
|
||||||
export `/run/current-system/systemd/bin/systemctl --user show-environment | grep '^DBUS_SESSION_BUS_ADDRESS'`
|
|
||||||
fi
|
|
||||||
''}
|
|
||||||
|
|
||||||
${optionalString cfg.displayManager.job.logToJournal ''
|
${optionalString cfg.displayManager.job.logToJournal ''
|
||||||
if [ -z "$_DID_SYSTEMD_CAT" ]; then
|
if [ -z "$_DID_SYSTEMD_CAT" ]; then
|
||||||
export _DID_SYSTEMD_CAT=1
|
export _DID_SYSTEMD_CAT=1
|
||||||
|
|
|
@ -4,13 +4,15 @@ with lib;
|
||||||
let
|
let
|
||||||
inherit (lib) mkOption mkIf optionals literalExample;
|
inherit (lib) mkOption mkIf optionals literalExample;
|
||||||
cfg = config.services.xserver.windowManager.xmonad;
|
cfg = config.services.xserver.windowManager.xmonad;
|
||||||
xmonad = pkgs.xmonad-with-packages.override {
|
|
||||||
|
xmonad-vanilla = pkgs.xmonad-with-packages.override {
|
||||||
ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
|
ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
|
||||||
packages = self: cfg.extraPackages self ++
|
packages = self: cfg.extraPackages self ++
|
||||||
optionals cfg.enableContribAndExtras
|
optionals cfg.enableContribAndExtras
|
||||||
[ self.xmonad-contrib self.xmonad-extras ];
|
[ self.xmonad-contrib self.xmonad-extras ];
|
||||||
};
|
};
|
||||||
xmonadBin = pkgs.writers.writeHaskell "xmonad" {
|
|
||||||
|
xmonad-config = pkgs.writers.writeHaskellBin "xmonad" {
|
||||||
ghc = cfg.haskellPackages.ghc;
|
ghc = cfg.haskellPackages.ghc;
|
||||||
libraries = [ cfg.haskellPackages.xmonad ] ++
|
libraries = [ cfg.haskellPackages.xmonad ] ++
|
||||||
cfg.extraPackages cfg.haskellPackages ++
|
cfg.extraPackages cfg.haskellPackages ++
|
||||||
|
@ -19,8 +21,10 @@ let
|
||||||
inherit (cfg) ghcArgs;
|
inherit (cfg) ghcArgs;
|
||||||
} cfg.config;
|
} cfg.config;
|
||||||
|
|
||||||
in
|
xmonad = if (cfg.config != null) then xmonad-config else xmonad-vanilla;
|
||||||
{
|
in {
|
||||||
|
meta.maintainers = with maintainers; [ lassulus xaverdh ];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
services.xserver.windowManager.xmonad = {
|
services.xserver.windowManager.xmonad = {
|
||||||
enable = mkEnableOption "xmonad";
|
enable = mkEnableOption "xmonad";
|
||||||
|
@ -62,19 +66,50 @@ in
|
||||||
default = null;
|
default = null;
|
||||||
type = with lib.types; nullOr (either path str);
|
type = with lib.types; nullOr (either path str);
|
||||||
description = ''
|
description = ''
|
||||||
Configuration from which XMonad gets compiled. If no value
|
Configuration from which XMonad gets compiled. If no value is
|
||||||
is specified, the xmonad config from $HOME/.xmonad is taken.
|
specified, a vanilla xmonad binary is put in PATH, which will
|
||||||
If you use xmonad --recompile, $HOME/.xmonad will be taken as
|
attempt to recompile and exec your xmonad config from $HOME/.xmonad.
|
||||||
the configuration, but on the next restart of display-manager
|
This setup is then analogous to other (non-NixOS) linux distributions.
|
||||||
this config will be reapplied.
|
|
||||||
|
If you do set this option, you likely want to use "launch" as your
|
||||||
|
entry point for xmonad (as in the example), to avoid xmonads
|
||||||
|
recompilation logic on startup. Doing so will render the default
|
||||||
|
"mod+q" restart key binding dysfunctional though, because that attempts
|
||||||
|
to call your binary with the "--restart" command line option, unless
|
||||||
|
you implement that yourself. You way mant to bind "mod+q" to
|
||||||
|
<literal>(restart "xmonad" True)</literal> instead, which will just restart
|
||||||
|
xmonad from PATH. This allows e.g. switching to the new xmonad binary,
|
||||||
|
after rebuilding your system with nixos-rebuild.
|
||||||
|
|
||||||
|
If you actually want to run xmonad with a config specified here, but
|
||||||
|
also be able to recompile and restart it from a copy of that source in
|
||||||
|
$HOME/.xmonad on the fly, you will have to implement that yourself
|
||||||
|
using something like "compileRestart" from the example.
|
||||||
|
This should allow you to switch at will between the local xmonad and
|
||||||
|
the one NixOS puts in your PATH.
|
||||||
'';
|
'';
|
||||||
example = ''
|
example = ''
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Util.EZConfig (additionalKeys)
|
||||||
|
import Text.Printf (printf)
|
||||||
|
import System.Posix.Process (executeFile)
|
||||||
|
import System.Info (arch,os)
|
||||||
|
import System.Environment (getArgs)
|
||||||
|
import System.FilePath ((</>))
|
||||||
|
|
||||||
|
compiledConfig = printf "xmonad-%s-%s" arch os
|
||||||
|
|
||||||
|
compileRestart = whenX (recompile True) . catchIO $ do
|
||||||
|
dir <- getXMonadDataDir
|
||||||
|
args <- getArgs
|
||||||
|
executeFile (dir </> compiledConfig) False args Nothing
|
||||||
|
|
||||||
main = launch defaultConfig
|
main = launch defaultConfig
|
||||||
{ modMask = mod4Mask -- Use Super instead of Alt
|
{ modMask = mod4Mask -- Use Super instead of Alt
|
||||||
, terminal = "urxvt"
|
, terminal = "urxvt" }
|
||||||
}
|
`additionalKeys`
|
||||||
|
[ ( (mod4Mask,xK_r), compileRestart )
|
||||||
|
, ( (mod4Mask,xK_q), restart "xmonad" True ) ]
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,10 +136,8 @@ in
|
||||||
services.xserver.windowManager = {
|
services.xserver.windowManager = {
|
||||||
session = [{
|
session = [{
|
||||||
name = "xmonad";
|
name = "xmonad";
|
||||||
start = let
|
start = ''
|
||||||
xmonadCommand = if (cfg.config != null) then xmonadBin else "${xmonad}/bin/xmonad";
|
systemd-cat -t xmonad -- ${xmonad}/bin/xmonad ${lib.escapeShellArgs cfg.xmonadCliArgs} &
|
||||||
in ''
|
|
||||||
systemd-cat -t xmonad -- ${xmonadCommand} ${lib.escapeShellArgs cfg.xmonadCliArgs} &
|
|
||||||
waitPID=$!
|
waitPID=$!
|
||||||
'';
|
'';
|
||||||
}];
|
}];
|
||||||
|
|
|
@ -152,6 +152,9 @@ in
|
||||||
./desktop-managers/default.nix
|
./desktop-managers/default.nix
|
||||||
(mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ]
|
(mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ]
|
||||||
"See the 16.09 release notes for more information.")
|
"See the 16.09 release notes for more information.")
|
||||||
|
(mkRemovedOptionModule
|
||||||
|
[ "services" "xserver" "startDbusSession" ]
|
||||||
|
"The user D-Bus session is now always socket activated and this option can safely be removed.")
|
||||||
(mkRemovedOptionModule ["services" "xserver" "useXFS" ]
|
(mkRemovedOptionModule ["services" "xserver" "useXFS" ]
|
||||||
"Use services.xserver.fontPath instead of useXFS")
|
"Use services.xserver.fontPath instead of useXFS")
|
||||||
];
|
];
|
||||||
|
@ -299,14 +302,6 @@ in
|
||||||
description = "DPI resolution to use for X server.";
|
description = "DPI resolution to use for X server.";
|
||||||
};
|
};
|
||||||
|
|
||||||
startDbusSession = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
|
||||||
Whether to start a new DBus session when you log in with dbus-launch.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
updateDbusEnvironment = mkOption {
|
updateDbusEnvironment = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
|
@ -716,7 +711,7 @@ in
|
||||||
|
|
||||||
system.extraDependencies = singleton (pkgs.runCommand "xkb-validated" {
|
system.extraDependencies = singleton (pkgs.runCommand "xkb-validated" {
|
||||||
inherit (cfg) xkbModel layout xkbVariant xkbOptions;
|
inherit (cfg) xkbModel layout xkbVariant xkbOptions;
|
||||||
nativeBuildInputs = [ pkgs.xkbvalidate ];
|
nativeBuildInputs = with pkgs.buildPackages; [ xkbvalidate ];
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
} ''
|
} ''
|
||||||
xkbvalidate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions"
|
xkbvalidate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions"
|
||||||
|
|
|
@ -200,9 +200,7 @@ def main():
|
||||||
else:
|
else:
|
||||||
# Update bootloader to latest if needed
|
# Update bootloader to latest if needed
|
||||||
systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
|
systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
|
||||||
# Ideally this should use check_output as well, but as a temporary
|
sdboot_status = subprocess.check_output(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True)
|
||||||
# work-around for #97433 we ignore any errors.
|
|
||||||
sdboot_status = subprocess.run(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True, stdout=subprocess.PIPE).stdout
|
|
||||||
|
|
||||||
# See status_binaries() in systemd bootctl.c for code which generates this
|
# See status_binaries() in systemd bootctl.c for code which generates this
|
||||||
m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
|
m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
|
||||||
|
|
|
@ -391,6 +391,10 @@ in
|
||||||
end with a letter or digit, and have as interior characters only
|
end with a letter or digit, and have as interior characters only
|
||||||
letters, digits, and hyphen. The maximum length is 63 characters.
|
letters, digits, and hyphen. The maximum length is 63 characters.
|
||||||
Additionally it is recommended to only use lower-case characters.
|
Additionally it is recommended to only use lower-case characters.
|
||||||
|
If (e.g. for legacy reasons) a FQDN is required as the Linux kernel
|
||||||
|
network node hostname (uname --nodename) the option
|
||||||
|
boot.kernel.sysctl."kernel.hostname" can be used as a workaround (but
|
||||||
|
the 64 character limit still applies).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -470,7 +474,7 @@ in
|
||||||
|
|
||||||
networking.search = mkOption {
|
networking.search = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "example.com" "local.domain" ];
|
example = [ "example.com" "home.arpa" ];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = ''
|
description = ''
|
||||||
The list of search paths used when resolving domain names.
|
The list of search paths used when resolving domain names.
|
||||||
|
@ -479,7 +483,7 @@ in
|
||||||
|
|
||||||
networking.domain = mkOption {
|
networking.domain = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
example = "home";
|
example = "home.arpa";
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
description = ''
|
description = ''
|
||||||
The domain. It can be left empty if it is auto-detected through DHCP.
|
The domain. It can be left empty if it is auto-detected through DHCP.
|
||||||
|
|
|
@ -97,6 +97,19 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Test OCSP Stapling
|
||||||
|
specialisation.ocsp-stapling.configuration = { pkgs, ... }: {
|
||||||
|
security.acme.certs."a.example.test" = {
|
||||||
|
ocspMustStaple = true;
|
||||||
|
};
|
||||||
|
services.nginx.virtualHosts."a.example.com" = {
|
||||||
|
extraConfig = ''
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Test using Apache HTTPD
|
# Test using Apache HTTPD
|
||||||
specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: {
|
specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: {
|
||||||
services.nginx.enable = lib.mkForce false;
|
services.nginx.enable = lib.mkForce false;
|
||||||
|
@ -163,6 +176,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
|
|
||||||
testScript = {nodes, ...}:
|
testScript = {nodes, ...}:
|
||||||
let
|
let
|
||||||
|
caDomain = nodes.acme.config.test-support.acme.caDomain;
|
||||||
newServerSystem = nodes.webserver.config.system.build.toplevel;
|
newServerSystem = nodes.webserver.config.system.build.toplevel;
|
||||||
switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
|
switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
|
||||||
in
|
in
|
||||||
|
@ -246,6 +260,22 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
return check_connection_key_bits(node, domain, bits, retries - 1)
|
return check_connection_key_bits(node, domain, bits, retries - 1)
|
||||||
|
|
||||||
|
|
||||||
|
def check_stapling(node, domain, retries=3):
|
||||||
|
assert retries >= 0
|
||||||
|
|
||||||
|
# Pebble doesn't provide a full OCSP responder, so just check the URL
|
||||||
|
result = node.succeed(
|
||||||
|
"openssl s_client -CAfile /tmp/ca.crt"
|
||||||
|
f" -servername {domain} -connect {domain}:443 < /dev/null"
|
||||||
|
" | openssl x509 -noout -ocsp_uri"
|
||||||
|
)
|
||||||
|
print("OCSP Responder URL:", result)
|
||||||
|
|
||||||
|
if "${caDomain}:4002" not in result.lower():
|
||||||
|
time.sleep(1)
|
||||||
|
return check_stapling(node, domain, retries - 1)
|
||||||
|
|
||||||
|
|
||||||
client.start()
|
client.start()
|
||||||
dnsserver.start()
|
dnsserver.start()
|
||||||
|
|
||||||
|
@ -253,7 +283,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
client.wait_for_unit("default.target")
|
client.wait_for_unit("default.target")
|
||||||
|
|
||||||
client.succeed(
|
client.succeed(
|
||||||
'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
|
'curl --data \'{"host": "${caDomain}", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
|
||||||
)
|
)
|
||||||
|
|
||||||
acme.start()
|
acme.start()
|
||||||
|
@ -262,8 +292,8 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
acme.wait_for_unit("default.target")
|
acme.wait_for_unit("default.target")
|
||||||
acme.wait_for_unit("pebble.service")
|
acme.wait_for_unit("pebble.service")
|
||||||
|
|
||||||
client.succeed("curl https://acme.test:15000/roots/0 > /tmp/ca.crt")
|
client.succeed("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
|
||||||
client.succeed("curl https://acme.test:15000/intermediate-keys/0 >> /tmp/ca.crt")
|
client.succeed("curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt")
|
||||||
|
|
||||||
with subtest("Can request certificate with HTTPS-01 challenge"):
|
with subtest("Can request certificate with HTTPS-01 challenge"):
|
||||||
webserver.wait_for_unit("acme-finished-a.example.test.target")
|
webserver.wait_for_unit("acme-finished-a.example.test.target")
|
||||||
|
@ -290,6 +320,11 @@ in import ./make-test-python.nix ({ lib, ... }: {
|
||||||
check_connection_key_bits(client, "a.example.test", "384")
|
check_connection_key_bits(client, "a.example.test", "384")
|
||||||
webserver.succeed("grep testing /var/lib/acme/a.example.test/test")
|
webserver.succeed("grep testing /var/lib/acme/a.example.test/test")
|
||||||
|
|
||||||
|
with subtest("Correctly implements OCSP stapling"):
|
||||||
|
switch_to(webserver, "ocsp-stapling")
|
||||||
|
webserver.wait_for_unit("acme-finished-a.example.test.target")
|
||||||
|
check_stapling(client, "a.example.test")
|
||||||
|
|
||||||
with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"):
|
with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"):
|
||||||
switch_to(webserver, "slow-startup")
|
switch_to(webserver, "slow-startup")
|
||||||
webserver.wait_for_unit("acme-finished-slow.example.com.target")
|
webserver.wait_for_unit("acme-finished-slow.example.com.target")
|
||||||
|
|
|
@ -31,7 +31,7 @@ in
|
||||||
machine.succeed('echo "import IO" > TestIO.agda')
|
machine.succeed('echo "import IO" > TestIO.agda')
|
||||||
machine.succeed("agda -l standard-library -i . TestIO.agda")
|
machine.succeed("agda -l standard-library -i . TestIO.agda")
|
||||||
|
|
||||||
# # Hello world
|
# Hello world
|
||||||
machine.succeed(
|
machine.succeed(
|
||||||
"cp ${hello-world} HelloWorld.agda"
|
"cp ${hello-world} HelloWorld.agda"
|
||||||
)
|
)
|
||||||
|
|
|
@ -26,6 +26,7 @@ in
|
||||||
agda = handleTest ./agda.nix {};
|
agda = handleTest ./agda.nix {};
|
||||||
atd = handleTest ./atd.nix {};
|
atd = handleTest ./atd.nix {};
|
||||||
avahi = handleTest ./avahi.nix {};
|
avahi = handleTest ./avahi.nix {};
|
||||||
|
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
|
||||||
babeld = handleTest ./babeld.nix {};
|
babeld = handleTest ./babeld.nix {};
|
||||||
bazarr = handleTest ./bazarr.nix {};
|
bazarr = handleTest ./bazarr.nix {};
|
||||||
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
|
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
|
||||||
|
@ -112,6 +113,7 @@ in
|
||||||
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
|
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
|
||||||
freeswitch = handleTest ./freeswitch.nix {};
|
freeswitch = handleTest ./freeswitch.nix {};
|
||||||
fsck = handleTest ./fsck.nix {};
|
fsck = handleTest ./fsck.nix {};
|
||||||
|
ft2-clone = handleTest ./ft2-clone.nix {};
|
||||||
gerrit = handleTest ./gerrit.nix {};
|
gerrit = handleTest ./gerrit.nix {};
|
||||||
gotify-server = handleTest ./gotify-server.nix {};
|
gotify-server = handleTest ./gotify-server.nix {};
|
||||||
grocy = handleTest ./grocy.nix {};
|
grocy = handleTest ./grocy.nix {};
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
|
{ system ? builtins.currentSystem
|
||||||
|
, config ? {}
|
||||||
|
, pkgs ? import ../.. { inherit system config; }
|
||||||
|
# bool: whether to use networkd in the tests
|
||||||
|
, networkd ? false }:
|
||||||
|
|
||||||
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
|
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
|
||||||
import ./make-test-python.nix ({ pkgs, ... } : {
|
import ./make-test-python.nix ({ ... } : {
|
||||||
name = "avahi";
|
name = "avahi";
|
||||||
meta = with pkgs.stdenv.lib.maintainers; {
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
maintainers = [ eelco ];
|
maintainers = [ eelco ];
|
||||||
|
@ -17,6 +23,11 @@ import ./make-test-python.nix ({ pkgs, ... } : {
|
||||||
publish.workstation = true;
|
publish.workstation = true;
|
||||||
extraServiceFiles.ssh = "${pkgs.avahi}/etc/avahi/services/ssh.service";
|
extraServiceFiles.ssh = "${pkgs.avahi}/etc/avahi/services/ssh.service";
|
||||||
};
|
};
|
||||||
|
} // pkgs.lib.optionalAttrs (networkd) {
|
||||||
|
networking = {
|
||||||
|
useNetworkd = true;
|
||||||
|
useDHCP = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
one = cfg;
|
one = cfg;
|
||||||
|
|
|
@ -5,7 +5,6 @@ let
|
||||||
workspaces 1
|
workspaces 1
|
||||||
escape C-t
|
escape C-t
|
||||||
bind t exec env DISPLAY=:0 ${pkgs.xterm}/bin/xterm -cm -pc
|
bind t exec env DISPLAY=:0 ${pkgs.xterm}/bin/xterm -cm -pc
|
||||||
bind a exec ${pkgs.alacritty}/bin/alacritty
|
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -20,7 +19,7 @@ in
|
||||||
in {
|
in {
|
||||||
imports = [ ./common/user-account.nix ];
|
imports = [ ./common/user-account.nix ];
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.cagebreak ];
|
environment.systemPackages = [ pkgs.cagebreak pkgs.wallutils ];
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
displayManager.autoLogin = {
|
displayManager.autoLogin = {
|
||||||
|
@ -32,7 +31,7 @@ in
|
||||||
manage = "desktop";
|
manage = "desktop";
|
||||||
name = "cagebreak";
|
name = "cagebreak";
|
||||||
start = ''
|
start = ''
|
||||||
export XDG_RUNTIME_DIR=/run/user/${toString alice.uid}
|
export XDG_RUNTIME_DIR="/run/user/${toString alice.uid}"
|
||||||
${pkgs.cagebreak}/bin/cagebreak &
|
${pkgs.cagebreak}/bin/cagebreak &
|
||||||
waitPID=$!
|
waitPID=$!
|
||||||
'';
|
'';
|
||||||
|
@ -74,24 +73,20 @@ in
|
||||||
|
|
||||||
testScript = { nodes, ... }: let
|
testScript = { nodes, ... }: let
|
||||||
user = nodes.machine.config.users.users.alice;
|
user = nodes.machine.config.users.users.alice;
|
||||||
|
XDG_RUNTIME_DIR = "/run/user/${toString user.uid}";
|
||||||
in ''
|
in ''
|
||||||
start_all()
|
start_all()
|
||||||
machine.wait_for_unit("multi-user.target")
|
machine.wait_for_unit("multi-user.target")
|
||||||
machine.wait_for_file("/run/user/${toString user.uid}/wayland-0")
|
machine.wait_for_file("${XDG_RUNTIME_DIR}/wayland-0")
|
||||||
|
|
||||||
with subtest("ensure wayland works with alacritty"):
|
with subtest("ensure wayland works with wayinfo from wallutils"):
|
||||||
machine.send_key("ctrl-t")
|
machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayinfo")
|
||||||
machine.send_key("a")
|
|
||||||
machine.wait_until_succeeds("pgrep alacritty")
|
|
||||||
machine.wait_for_text("alice@machine")
|
|
||||||
machine.screenshot("screen")
|
|
||||||
machine.send_key("ctrl-d")
|
|
||||||
|
|
||||||
with subtest("ensure xwayland works with xterm"):
|
with subtest("ensure xwayland works with xterm"):
|
||||||
machine.send_key("ctrl-t")
|
machine.send_key("ctrl-t")
|
||||||
machine.send_key("t")
|
machine.send_key("t")
|
||||||
machine.wait_until_succeeds("pgrep xterm")
|
machine.wait_until_succeeds("pgrep xterm")
|
||||||
machine.wait_for_text("alice@machine")
|
machine.wait_for_text("${user.name}@machine")
|
||||||
machine.screenshot("screen")
|
machine.screenshot("screen")
|
||||||
machine.send_key("ctrl-d")
|
machine.send_key("ctrl-d")
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -70,7 +70,7 @@ let
|
||||||
privateKey = testCerts.${domain}.key;
|
privateKey = testCerts.${domain}.key;
|
||||||
httpPort = 80;
|
httpPort = 80;
|
||||||
tlsPort = 443;
|
tlsPort = 443;
|
||||||
ocspResponderURL = "http://0.0.0.0:4002";
|
ocspResponderURL = "http://${domain}:4002";
|
||||||
strict = true;
|
strict = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
|
name = "ft2-clone";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ fgaz ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine = { config, pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
./common/x11.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
sound.enable = true;
|
||||||
|
environment.systemPackages = [ pkgs.ft2-clone ];
|
||||||
|
};
|
||||||
|
|
||||||
|
enableOCR = true;
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
machine.wait_for_x()
|
||||||
|
# Add a dummy sound card, or the program won't start
|
||||||
|
machine.execute("modprobe snd-dummy")
|
||||||
|
|
||||||
|
machine.execute("ft2-clone &")
|
||||||
|
|
||||||
|
machine.wait_for_window(r"Fasttracker")
|
||||||
|
machine.sleep(5)
|
||||||
|
# One of the few words that actually get recognized
|
||||||
|
if "Songlen" not in machine.get_screen_text():
|
||||||
|
raise Exception("Program did not start successfully")
|
||||||
|
machine.screenshot("screen")
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
|
@ -38,14 +38,14 @@ in {
|
||||||
matchConfig.Name = "vrf1";
|
matchConfig.Name = "vrf1";
|
||||||
networkConfig.IPForward = "yes";
|
networkConfig.IPForward = "yes";
|
||||||
routes = [
|
routes = [
|
||||||
{ routeConfig = { Destination = "192.168.1.2"; Metric = "100"; }; }
|
{ routeConfig = { Destination = "192.168.1.2"; Metric = 100; }; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
networks."10-vrf2" = {
|
networks."10-vrf2" = {
|
||||||
matchConfig.Name = "vrf2";
|
matchConfig.Name = "vrf2";
|
||||||
networkConfig.IPForward = "yes";
|
networkConfig.IPForward = "yes";
|
||||||
routes = [
|
routes = [
|
||||||
{ routeConfig = { Destination = "192.168.2.3"; Metric = "100"; }; }
|
{ routeConfig = { Destination = "192.168.2.3"; Metric = 100; }; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,16 @@ import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ];
|
extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ];
|
||||||
config = ''
|
config = ''
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Operations (restart)
|
||||||
import XMonad.Util.EZConfig
|
import XMonad.Util.EZConfig
|
||||||
main = launch $ def `additionalKeysP` myKeys
|
import XMonad.Util.SessionStart
|
||||||
myKeys = [ ("M-C-x", spawn "xterm") ]
|
|
||||||
|
main = launch $ def { startupHook = startup } `additionalKeysP` myKeys
|
||||||
|
|
||||||
|
startup = isSessionStart >>= \sessInit ->
|
||||||
|
if sessInit then setSessionStarted else spawn "xterm"
|
||||||
|
|
||||||
|
myKeys = [ ("M-C-x", spawn "xterm"), ("M-q", restart "xmonad" True) ]
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -30,12 +37,11 @@ import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
machine.send_key("alt-ctrl-x")
|
machine.send_key("alt-ctrl-x")
|
||||||
machine.wait_for_window("${user.name}.*machine")
|
machine.wait_for_window("${user.name}.*machine")
|
||||||
machine.sleep(1)
|
machine.sleep(1)
|
||||||
machine.screenshot("terminal")
|
machine.screenshot("terminal1")
|
||||||
machine.wait_until_succeeds("xmonad --restart")
|
machine.send_key("alt-q")
|
||||||
machine.sleep(3)
|
machine.sleep(3)
|
||||||
machine.send_key("alt-shift-ret")
|
|
||||||
machine.wait_for_window("${user.name}.*machine")
|
machine.wait_for_window("${user.name}.*machine")
|
||||||
machine.sleep(1)
|
machine.sleep(1)
|
||||||
machine.screenshot("terminal")
|
machine.screenshot("terminal2")
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,38 +1,24 @@
|
||||||
{ stdenv, fetchurl, fetchpatch, makeWrapper, pkgconfig, alsaLib, dbus, libjack2
|
{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pkgconfig, alsaLib, dbus, libjack2
|
||||||
, wafHook
|
, python3Packages , meson, ninja }:
|
||||||
, python2Packages}:
|
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
inherit (python2Packages) python dbus-python;
|
|
||||||
in stdenv.mkDerivation {
|
|
||||||
pname = "a2jmidid";
|
pname = "a2jmidid";
|
||||||
version = "8";
|
version = "9";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/linuxaudio/a2jmidid/archive/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
|
owner = "linuxaudio";
|
||||||
sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7";
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig makeWrapper wafHook ];
|
nativeBuildInputs = [ pkgconfig makeWrapper meson ninja ];
|
||||||
buildInputs = [ alsaLib dbus libjack2 python dbus-python ];
|
buildInputs = [ alsaLib dbus libjack2 ] ++
|
||||||
|
(with python3Packages; [ python dbus-python ]);
|
||||||
patches = [
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/linuxaudio/a2jmidid/commit/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2.diff";
|
|
||||||
sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/linuxaudio/a2jmidid/commit/7f82da7eb2f540a94db23331be98d42a58ddc269.diff";
|
|
||||||
sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/linuxaudio/a2jmidid/commit/c07775d021a71cb91bf64ce1391cf525415cb060.diff";
|
|
||||||
sha256 = "172v9hri03qdqi8a3zsg227k5qxldd8v5bj4jk7fyk5jf50fcxga";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH
|
wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH
|
||||||
|
substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, cmake
|
, cmake
|
||||||
|
, nixosTests
|
||||||
, alsaLib
|
, alsaLib
|
||||||
, SDL2
|
, SDL2
|
||||||
|
, libiconv
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -17,7 +19,13 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
buildInputs = [ SDL2 ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
|
buildInputs = [ SDL2 ]
|
||||||
|
++ stdenv.lib.optional stdenv.isLinux alsaLib
|
||||||
|
++ stdenv.lib.optional stdenv.isDarwin libiconv;
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
ft2-clone-starts = nixosTests.ft2-clone;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";
|
description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";
|
||||||
|
|
|
@ -2,11 +2,12 @@
|
||||||
, makeWrapper, pkgconfig, perlPackages
|
, makeWrapper, pkgconfig, perlPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "jamin-0.95.0";
|
version = "0.95.0";
|
||||||
|
name = "jamin-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/jamin/jamin-0.95.0.tar.gz";
|
url = "mirror://sourceforge/jamin/jamin-${version}.tar.gz";
|
||||||
sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
|
sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ stdenv, fetchurl
|
{ stdenv, fetchurl
|
||||||
, pkgconfig, cmake, python, ffmpeg_3, phonon, automoc4
|
, pkgconfig, cmake, python3, ffmpeg_3, phonon, automoc4
|
||||||
, chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
|
, chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
|
||||||
, id3lib, taglib, mp4v2, flac, libogg, libvorbis
|
, id3lib, taglib, mp4v2, flac, libogg, libvorbis
|
||||||
, zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
|
, zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
|
||||||
|
@ -7,18 +7,17 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
pname = "kid3";
|
pname = "kid3";
|
||||||
version = "3.8.3";
|
version = "3.8.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
|
||||||
sha256 = "0i0c4bmsm36jj1v535kil47ig0ig70ykrzcw2f56spr25xns06ka";
|
sha256 = "sha256-WYuEOqMu2VMOv6mkVCRXnmInFER/DWfPNqYuaTJ3vAc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
buildInputs = with stdenv.lib;
|
buildInputs = [
|
||||||
[ pkgconfig cmake python ffmpeg_3 phonon automoc4
|
pkgconfig cmake python3 ffmpeg_3 phonon automoc4
|
||||||
chromaprint docbook_xml_dtd_45 docbook_xsl libxslt
|
chromaprint docbook_xml_dtd_45 docbook_xsl libxslt
|
||||||
id3lib taglib mp4v2 flac libogg libvorbis zlib readline
|
id3lib taglib mp4v2 flac libogg libvorbis zlib readline
|
||||||
qtbase qttools qtmultimedia qtquickcontrols ];
|
qtbase qttools qtmultimedia qtquickcontrols ];
|
||||||
|
@ -35,34 +34,33 @@ stdenv.mkDerivation rec {
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A simple and powerful audio tag editor";
|
description = "A simple and powerful audio tag editor";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC,
|
If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC,
|
||||||
MP4/AAC, MP2, Opus, Speex, TrueAudio, WavPack, WMA, WAV and AIFF
|
MP2, Opus, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files (e.g. full
|
||||||
files (e.g. full albums) without typing the same information
|
albums) without typing the same information again and again and have
|
||||||
again and again and have control over both ID3v1 and ID3v2 tags,
|
control over both ID3v1 and ID3v2 tags, then Kid3 is the program you are
|
||||||
then Kid3 is the program you are looking for.
|
looking for.
|
||||||
|
|
||||||
With Kid3 you can:
|
With Kid3 you can:
|
||||||
- Edit ID3v1.1 tags;
|
- Edit ID3v1.1 tags;
|
||||||
- Edit all ID3v2.3 and ID3v2.4 frames;
|
- Edit all ID3v2.3 and ID3v2.4 frames;
|
||||||
- Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
|
- Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
|
||||||
- Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Opus,
|
- Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Opus, Speex,
|
||||||
Speex, TrueAudio, WavPack, WMA, WAV, AIFF files and tracker
|
TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD, S3M,
|
||||||
modules (MOD, S3M, IT, XM);
|
IT, XM);
|
||||||
- Edit tags of multiple files, e.g. the artist, album, year and
|
- Edit tags of multiple files, e.g. the artist, album, year and genre of
|
||||||
genre of all files of an album typically have the same values
|
all files of an album typically have the same values and can be set
|
||||||
and can be set together;
|
together;
|
||||||
- Generate tags from filenames;
|
- Generate tags from filenames;
|
||||||
- Generate tags from the contents of tag fields;
|
- Generate tags from the contents of tag fields;
|
||||||
- Generate filenames from tags;
|
- Generate filenames from tags;
|
||||||
- Rename and create directories from tags;
|
- Rename and create directories from tags;
|
||||||
- Generate playlist files;
|
- Generate playlist files;
|
||||||
- Automatically convert upper and lower case and replace strings;
|
- Automatically convert upper and lower case and replace strings;
|
||||||
- Import from gnudb.org, TrackType.org, MusicBrainz, Discogs,
|
- Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon and
|
||||||
Amazon and other sources of album data;
|
other sources of album data;
|
||||||
- Export tags as CSV, HTML, playlists, Kover XML and in other
|
- Export tags as CSV, HTML, playlists, Kover XML and in other formats;
|
||||||
formats;
|
- Edit synchronized lyrics and event timing codes, import and export
|
||||||
- Edit synchronized lyrics and event timing codes, import and
|
LRC files.
|
||||||
export LRC files
|
|
||||||
'';
|
'';
|
||||||
homepage = "http://kid3.sourceforge.net/";
|
homepage = "http://kid3.sourceforge.net/";
|
||||||
license = licenses.lgpl2Plus;
|
license = licenses.lgpl2Plus;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
, fluidsynth
|
, fluidsynth
|
||||||
, libX11
|
, libX11
|
||||||
, libjack2
|
, libjack2
|
||||||
|
, alsaLib
|
||||||
, liblo
|
, liblo
|
||||||
, libsigcxx
|
, libsigcxx
|
||||||
, libsmf
|
, libsmf
|
||||||
|
@ -12,18 +13,18 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "mamba";
|
pname = "mamba";
|
||||||
version = "1.5";
|
version = "1.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "brummer10";
|
owner = "brummer10";
|
||||||
repo = "Mamba";
|
repo = "Mamba";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1l74ckqqrccgsdy430pfsbv4fbzny7zivx399bi2jk1lv06p4h9a";
|
sha256 = "02w47347cbfqxybh908ww5ifd9jcns8v0msycq59y9q7x0a2h6fh";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ cairo fluidsynth libX11 libjack2 liblo libsigcxx libsmf ];
|
buildInputs = [ cairo fluidsynth libX11 libjack2 alsaLib liblo libsigcxx libsmf ];
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=$(out)" ];
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "mopidy-mpris";
|
pname = "mopidy-mpris";
|
||||||
version = "3.0.1";
|
version = "3.0.2";
|
||||||
|
|
||||||
src = python3Packages.fetchPypi {
|
src = python3Packages.fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "Mopidy-MPRIS";
|
pname = "Mopidy-MPRIS";
|
||||||
sha256 = "0qk46aq5r92qgkldzl41x09naww1gv92l4c4hknyl7yymyvm9lr2";
|
sha256 = "0mmdaikw00f43gzjdbvlcvzff6yppm7v8mv012r79adzd992q9y0";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://www.mopidy.com/;
|
homepage = "https://www.mopidy.com/";
|
||||||
description = "Mopidy extension for controlling Mopidy through D-Bus using the MPRIS specification";
|
description = "Mopidy extension for controlling Mopidy through D-Bus using the MPRIS specification";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = [ maintainers.nickhu ];
|
maintainers = [ maintainers.nickhu ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "mopidy-musicbox-webclient";
|
pname = "mopidy-musicbox-webclient";
|
||||||
version = "2.3.0";
|
version = "2.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pimusicbox";
|
owner = "pimusicbox";
|
||||||
repo = "mopidy-musicbox-webclient";
|
repo = "mopidy-musicbox-webclient";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1jcfrwsi7axiph3jplqzmcqia9pc46xb2yf13d8h6lnh3h49rwvz";
|
sha256 = "0784s32pap9rbki3f0f7swaf6946sdv4xzidns13jmw9ilifk5z4";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ mopidy ];
|
propagatedBuildInputs = [ mopidy ];
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchurl
|
||||||
|
, autoPatchelfHook
|
||||||
|
, dpkg
|
||||||
|
, qt5
|
||||||
|
, libjack2
|
||||||
|
, alsaLib
|
||||||
|
, bzip2
|
||||||
|
, libpulseaudio }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "ocenaudio";
|
||||||
|
version = "3.9.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
|
||||||
|
sha256 = "1fvpba3dnzb7sm6gp0znbrima02ckfiy2zwb66x1gr05y9a56inv";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoPatchelfHook
|
||||||
|
qt5.qtbase
|
||||||
|
libjack2
|
||||||
|
libpulseaudio
|
||||||
|
bzip2
|
||||||
|
alsaLib
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [ dpkg ];
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
dontBuild = true;
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
dpkg -x $src $out
|
||||||
|
cp -av $out/opt/ocenaudio/* $out
|
||||||
|
rm -rf $out/opt
|
||||||
|
|
||||||
|
# Create symlink bzip2 library
|
||||||
|
ln -s ${bzip2.out}/lib/libbz2.so.1 $out/libbz2.so.1.0
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Cross-platform, easy to use, fast and functional audio editor";
|
||||||
|
homepage = "https://www.ocenaudio.com";
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ onny ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftw, mkDerivation }:
|
{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftwFloat, mkDerivation }:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "padthv1";
|
pname = "padthv1";
|
||||||
version = "0.9.16";
|
version = "0.9.17";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
|
||||||
sha256 = "1f2v60dpja0rnml60g463fjiz0f84v32yjwpvr56z79h1i6fssmv";
|
sha256 = "098fk8fwcgssnfr1gilqg8g17zvch62lrn3rqsswpzbr3an5adb3";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
|
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftwFloat ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ mkDerivation, lib, fetchurl, pkgconfig, qtbase, qttools, alsaLib, libjack2 }:
|
{ mkDerivation, lib, fetchurl, pkgconfig, qtbase, qttools, alsaLib, libjack2 }:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
version = "0.6.2";
|
version = "0.6.3";
|
||||||
pname = "qmidinet";
|
pname = "qmidinet";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
|
||||||
sha256 = "0siqzyhwg3l9av7jbca3bqdww7xspjlpi9ya4mkj211xc3a3a1d6";
|
sha256 = "04jbvnf6yp9l0bhl1ym6zqkmaz8c2az3flq7qgflaxzj3isns1p1";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "spectmorph";
|
pname = "spectmorph";
|
||||||
version = "0.5.1";
|
version = "0.5.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://spectmorph.org/files/releases/${pname}-${version}.tar.bz2";
|
url = "http://spectmorph.org/files/releases/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "06jrfx5g9c56swxn78lix0gyrjkhi21l9wqs56knp8iqcgfi3m0s";
|
sha256 = "0yrq7mknhk096wfsx0q3b6wwa2w5la0rxa113di26rrrw136xl1f";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libjack2 lv2 glib qt5.qtbase libao cairo libsndfile fftwFloat ];
|
buildInputs = [ libjack2 lv2 glib qt5.qtbase libao cairo libsndfile fftwFloat ];
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
|
{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
|
||||||
, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
|
, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
|
||||||
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
|
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
|
||||||
, at-spi2-atk, at-spi2-core, libpulseaudio
|
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -10,15 +10,14 @@ let
|
||||||
# If an update breaks things, one of those might have valuable info:
|
# If an update breaks things, one of those might have valuable info:
|
||||||
# https://aur.archlinux.org/packages/spotify/
|
# https://aur.archlinux.org/packages/spotify/
|
||||||
# https://community.spotify.com/t5/Desktop-Linux
|
# https://community.spotify.com/t5/Desktop-Linux
|
||||||
version = "1.1.26.501.gbe11e53b-15";
|
version = "1.1.42.622.gbd112320-37";
|
||||||
# To get the latest stable revision:
|
# To get the latest stable revision:
|
||||||
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
|
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
|
||||||
# To get general information:
|
# To get general information:
|
||||||
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
|
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
|
||||||
# More examples of api usage:
|
# More examples of api usage:
|
||||||
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
|
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
|
||||||
rev = "41";
|
rev = "42";
|
||||||
|
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
alsaLib
|
alsaLib
|
||||||
|
@ -36,10 +35,12 @@ let
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
glib
|
glib
|
||||||
gtk2
|
gtk2
|
||||||
|
libdrm
|
||||||
libgcrypt
|
libgcrypt
|
||||||
libnotify
|
libnotify
|
||||||
libpng
|
libpng
|
||||||
libpulseaudio
|
libpulseaudio
|
||||||
|
mesa
|
||||||
nss
|
nss
|
||||||
pango
|
pango
|
||||||
stdenv.cc.cc
|
stdenv.cc.cc
|
||||||
|
@ -77,7 +78,7 @@ stdenv.mkDerivation {
|
||||||
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
|
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
||||||
sha512 = "41bc8d20388bab39058d0709d99b1c8e324ea37af217620797356b8bc0b24aedbe801eaaa6e00a93e94e26765602e5dc27ad423ce2e777b4bec1b92daf04f81e";
|
sha512 = "06371c6a285aba916a779cd9f2a933f97db8fb38393545baa94c8984302e003c559af7b1b35afd7df5f2c35e379e2cb80c00facf527bc22df09061cdb67d9d7a";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ squashfsTools makeWrapper ];
|
buildInputs = [ squashfsTools makeWrapper ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "wolf-shaper";
|
pname = "wolf-shaper";
|
||||||
version = "0.1.7";
|
version = "0.1.8";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pdesaulniers";
|
owner = "pdesaulniers";
|
||||||
repo = "wolf-shaper";
|
repo = "wolf-shaper";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0lllgcbnnh1m95bp29hh17x170hl7170zizjrvy892qfkn36830d";
|
sha256 = "1j9xmh1nkf45ay1c5dz2g165qvrwlanzcq6mvb3nfxar265drd9q";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pkg-config
|
||||||
|
, cairo
|
||||||
|
, libX11
|
||||||
|
, libjack2
|
||||||
|
, liblo
|
||||||
|
, libsigcxx
|
||||||
|
, zita-resampler
|
||||||
|
, fftwFloat
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "xtuner";
|
||||||
|
version = "1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "brummer10";
|
||||||
|
repo = "XTuner";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1i5chfnf3hcivwzni9z6cn9pb68qmwsx8bf4z7d29a5vig8kbhrv";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
buildInputs = [ cairo libX11 libjack2 liblo libsigcxx zita-resampler fftwFloat ];
|
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/brummer10/XTuner";
|
||||||
|
description = "Tuner for Jack Audio Connection Kit";
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
maintainers = with maintainers; [ magnetophon ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,14 +1,15 @@
|
||||||
{ stdenv, fetchgit , boost, libX11, libGL, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
|
{ stdenv, fetchFromGitHub, boost, libX11, libGL, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
pname = "zam-plugins";
|
pname = "zam-plugins";
|
||||||
version = "3.12";
|
version = "3.13";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/zamaudio/zam-plugins.git";
|
owner = "zamaudio";
|
||||||
deepClone = true;
|
repo = pname;
|
||||||
rev = "87fdee6e87dbee75c1088e2327ea59c1ab1522e4";
|
rev = version;
|
||||||
sha256 = "0kz0xygff3ca1v9nqi0dvrzy9whbzqxrls5b7hydi808d795893n";
|
sha256 = "02blg0iqich4vx5z1ahj6avkh83yqszdiq83p9jd5qwm0i4llqjq";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
|
@ -9,9 +9,9 @@ let
|
||||||
inherit buildFHSUserEnv;
|
inherit buildFHSUserEnv;
|
||||||
};
|
};
|
||||||
stableVersion = {
|
stableVersion = {
|
||||||
version = "4.0.1.0"; # "Android Studio 4.0.1"
|
version = "4.1.0.19"; # "Android Studio 4.1.0"
|
||||||
build = "193.6626763";
|
build = "201.6858069";
|
||||||
sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
|
sha256Hash = "sha256-S5Uh/EpjE61l/z4UsPP7UEJ9Rk/hQidVVWX0bg/60gI=";
|
||||||
};
|
};
|
||||||
betaVersion = {
|
betaVersion = {
|
||||||
version = "4.1.0.18"; # "Android Studio 4.1 RC 3"
|
version = "4.1.0.18"; # "Android Studio 4.1 RC 3"
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "glow";
|
pname = "glow";
|
||||||
version = "1.0.1";
|
version = "1.0.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "charmbracelet";
|
owner = "charmbracelet";
|
||||||
repo = "glow";
|
repo = "glow";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "05scgdivb0hf0lfznikn20b6pgb479jhs24hgf5f5i60v37v930y";
|
sha256 ="0jyl5ln7c2naawmw7bljzrldr96xyb5rbis6y6blmyghr0vx07zb";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "180g6d9w3lfmxj4843kqvq4ikg8lwmwprgfxdgz1lzvjmbfjj3g9";
|
vendorSha256 = "0z3r8fvpy36ybgb18sr0lril1sg8z7s99xv1a6g1v3zdnj3zimav";
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
|
|
@ -22,12 +22,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "kile-2.9.92";
|
name = "kile-2.9.93";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/kile/${name}.tar.bz2";
|
url = "mirror://sourceforge/kile/${name}.tar.bz2";
|
||||||
sha256 = "177372dc25b1d109e037a7dbfc64b5dab2efe538320c87f4a8ceada21e9097f2";
|
sha256 = "BEmSEv/LJPs6aCkUmnyuTGrV15WYXwgIANbfcviMXfA=";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
|
nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ stdenv, lib, makeDesktopItem
|
{ stdenv, lib, makeDesktopItem
|
||||||
, unzip, libsecret, libXScrnSaver, wrapGAppsHook
|
, unzip, libsecret, libXScrnSaver, wrapGAppsHook
|
||||||
, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
|
, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
|
||||||
, systemd, fontconfig
|
, systemd, fontconfig, libdbusmenu
|
||||||
|
|
||||||
# Attributes inherit from specific versions
|
# Attributes inherit from specific versions
|
||||||
, version, src, meta, sourceRoot
|
, version, src, meta, sourceRoot
|
||||||
|
@ -62,7 +62,7 @@ in
|
||||||
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
|
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
|
||||||
++ [ libsecret libXScrnSaver ];
|
++ [ libsecret libXScrnSaver ];
|
||||||
|
|
||||||
runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib ];
|
runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
|
||||||
|
|
||||||
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
|
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,6 @@ if [ ! -f "$ROOT/vscode.nix" ]; then
|
||||||
echo "ERROR: cannot find vscode.nix in $ROOT"
|
echo "ERROR: cannot find vscode.nix in $ROOT"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$ROOT/vscodium.nix" ]; then
|
|
||||||
echo "ERROR: cannot find vscodium.nix in $ROOT"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# VSCode
|
# VSCode
|
||||||
|
|
||||||
|
@ -26,16 +22,3 @@ sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/"
|
||||||
VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
|
VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
|
||||||
VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
|
VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
|
||||||
sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
|
sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
|
||||||
|
|
||||||
# VSCodium
|
|
||||||
|
|
||||||
VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}')
|
|
||||||
sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix"
|
|
||||||
|
|
||||||
VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
|
|
||||||
VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL})
|
|
||||||
sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix"
|
|
||||||
|
|
||||||
VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
|
|
||||||
VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
|
|
||||||
sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p curl gnugrep gnused gawk
|
||||||
|
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
ROOT="$(dirname "$(readlink -f "$0")")"
|
||||||
|
if [ ! -f "$ROOT/vscodium.nix" ]; then
|
||||||
|
echo "ERROR: cannot find vscodium.nix in $ROOT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# VSCodium
|
||||||
|
|
||||||
|
VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}')
|
||||||
|
sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix"
|
||||||
|
|
||||||
|
VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
|
||||||
|
VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL})
|
||||||
|
sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix"
|
||||||
|
|
||||||
|
VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
|
||||||
|
VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
|
||||||
|
sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
|
|
@ -11,8 +11,8 @@ let
|
||||||
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
|
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
|
||||||
|
|
||||||
sha256 = {
|
sha256 = {
|
||||||
x86_64-linux = "19y25yfkls53w4qlmipfvjig7zykgwx1010ny58k339fv181vdyq";
|
x86_64-linux = "0fhwqif9021sg22n8qqn3m2fml7sjb03ydgbakg1021i3y8zl599";
|
||||||
x86_64-darwin = "1ak3pfvwdg51hcv2kyqpnhzkl7k23k5qk197sf6rv02kgwan7pxl";
|
x86_64-darwin = "1bsvkwymihkv0azf0mmy0f58zsxs6w13in6lfxzaz7s695csn9s0";
|
||||||
}.${system};
|
}.${system};
|
||||||
|
|
||||||
sourceRoot = {
|
sourceRoot = {
|
||||||
|
@ -27,7 +27,7 @@ in
|
||||||
|
|
||||||
# Please backport all compatible updates to the stable release.
|
# Please backport all compatible updates to the stable release.
|
||||||
# This is important for the extension ecosystem.
|
# This is important for the extension ecosystem.
|
||||||
version = "1.49.3";
|
version = "1.50.0";
|
||||||
pname = "vscodium";
|
pname = "vscodium";
|
||||||
|
|
||||||
executableName = "codium";
|
executableName = "codium";
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
, proj, gdal, geos, sqlite, postgresql, libmysqlclient, python2Packages, libLAS, proj-datumgrid
|
, proj, gdal, geos, sqlite, postgresql, libmysqlclient, python2Packages, libLAS, proj-datumgrid
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let inherit (stdenv) lib; in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "grass";
|
name = "grass";
|
||||||
version = "7.6.1";
|
version = "7.6.1";
|
||||||
|
@ -42,7 +44,7 @@ stdenv.mkDerivation rec {
|
||||||
"--with-postgres-libs=${postgresql.lib}/lib/"
|
"--with-postgres-libs=${postgresql.lib}/lib/"
|
||||||
# it complains about missing libmysqld but doesn't really seem to need it
|
# it complains about missing libmysqld but doesn't really seem to need it
|
||||||
"--with-mysql"
|
"--with-mysql"
|
||||||
"--with-mysql-includes=${libmysqlclient}/include/mysql"
|
"--with-mysql-includes=${lib.getDev libmysqlclient}/include/mysql"
|
||||||
"--with-mysql-libs=${libmysqlclient}/lib/mysql"
|
"--with-mysql-libs=${libmysqlclient}/lib/mysql"
|
||||||
"--with-blas"
|
"--with-blas"
|
||||||
"--with-liblas=${libLAS}/bin/liblas-config"
|
"--with-liblas=${libLAS}/bin/liblas-config"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, mkDerivation
|
, mkDerivation
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, substituteAll
|
||||||
, gdal
|
, gdal
|
||||||
, cmake
|
, cmake
|
||||||
, ninja
|
, ninja
|
||||||
|
@ -18,7 +19,7 @@
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "OpenOrienteering-Mapper";
|
pname = "OpenOrienteering-Mapper";
|
||||||
version = "0.9.3";
|
version = "0.9.4";
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gdal
|
gdal
|
||||||
|
@ -37,18 +38,14 @@ mkDerivation rec {
|
||||||
owner = "OpenOrienteering";
|
owner = "OpenOrienteering";
|
||||||
repo = "mapper";
|
repo = "mapper";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "05bliglpc8170px6k9lfrp9ylpnb2zf47gnjns9b2bif8dv8zq0l";
|
sha256 = "13k9dirqm74lknhr8w121zr1hjd9gm1y73cj4rrj98rx44dzmk7b";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = (substituteAll {
|
||||||
# See https://github.com/NixOS/nixpkgs/issues/86054
|
# See https://github.com/NixOS/nixpkgs/issues/86054
|
||||||
./fix-qttranslations-path.diff
|
src = ./fix-qttranslations-path.diff;
|
||||||
];
|
inherit qttranslations;
|
||||||
|
});
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace src/util/translation_util.cpp \
|
|
||||||
--subst-var-by qttranslations ${qttranslations}
|
|
||||||
'';
|
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
# Building the manual and bundling licenses fails
|
# Building the manual and bundling licenses fails
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, lib
|
||||||
|
, fetchFromGitLab
|
||||||
|
, qmake
|
||||||
|
, qtbase
|
||||||
|
, qtcharts
|
||||||
|
, qtsvg
|
||||||
|
, marble
|
||||||
|
, qtwebengine
|
||||||
|
, ldutils
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation rec {
|
||||||
|
pname = "zombietrackergps";
|
||||||
|
version = "1.01";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "ldutils-projects";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v_${version}";
|
||||||
|
sha256 = "0h354ydbahy8rpkmzh5ym5bddbl6irjzklpcg6nbkv6apry84d48";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
ldutils
|
||||||
|
qtbase
|
||||||
|
qtcharts
|
||||||
|
qtsvg
|
||||||
|
marble.dev
|
||||||
|
qtwebengine
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
qmake
|
||||||
|
];
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
sed -ie "s,INCLUDEPATH += /usr/include/libldutils,INCLUDEPATH += ${ldutils}," ZombieTrackerGPS.pro
|
||||||
|
'';
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
export INSTALL_ROOT=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
postConfigure = ''
|
||||||
|
substituteInPlace Makefile --replace '$(INSTALL_ROOT)' ""
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "GPS track manager for Qt using KDE Marble maps";
|
||||||
|
homepage = "https://gitlab.com/ldutils-projects/zombietrackergps";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ sohalt ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ stdenv, fetchFromGitLab, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "f3d";
|
||||||
|
version = "1.0.1";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "gitlab.kitware.com";
|
||||||
|
owner = "f3d";
|
||||||
|
repo = "f3d";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0a6r0jspkhl735f6zmnhby1g4dlmjqd5izgsp5yfdcdhqj4j63mg";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
|
buildInputs = [ vtk_9 ]
|
||||||
|
++ stdenv.lib.optionals stdenv.isLinux [ libGL libX11 ]
|
||||||
|
++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa OpenGL ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Fast and minimalist 3D viewer using VTK";
|
||||||
|
homepage = "https://kitware.github.io/F3D";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ bcdarwin ];
|
||||||
|
platforms = with platforms; unix;
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,24 +7,24 @@ let
|
||||||
bgrabitmap = fetchFromGitHub {
|
bgrabitmap = fetchFromGitHub {
|
||||||
owner = "bgrabitmap";
|
owner = "bgrabitmap";
|
||||||
repo = "bgrabitmap";
|
repo = "bgrabitmap";
|
||||||
rev = "v11.1";
|
rev = "v11.2.4";
|
||||||
sha256 = "0bcmiiwly4a7w8p3m5iskzvk8rz87qhc0gcijrdvwg87cafd88gz";
|
sha256 = "1zk88crfn07md16wg6af4i8nlx4ikkhxq9gfk49jirwimgwbf1md";
|
||||||
};
|
};
|
||||||
bgracontrols = fetchFromGitHub {
|
bgracontrols = fetchFromGitHub {
|
||||||
owner = "bgrabitmap";
|
owner = "bgrabitmap";
|
||||||
repo = "bgracontrols";
|
repo = "bgracontrols";
|
||||||
rev = "v6.7.2";
|
rev = "v6.9";
|
||||||
sha256 = "0cwxzv0rl6crkf6f67mvga5cn5pyhr6ksm8cqhpxjiqi937dnyxx";
|
sha256 = "0hwjlqlwqs4fqxlgay84hccs1lm3c6i9nmq9sxzrip410mggnjyw";
|
||||||
};
|
};
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "lazpaint";
|
pname = "lazpaint";
|
||||||
version = "7.1.3";
|
version = "7.1.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bgrabitmap";
|
owner = "bgrabitmap";
|
||||||
repo = "lazpaint";
|
repo = "lazpaint";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1sfb5hmhzscz3nv4cmc192jimkg70l4z3q3yxkivhw1hwwsv9cbg";
|
sha256 = "19b0wrjjyvz3g2d2gdsz8ihc1clda5v22yb597an8j9sblp9m0nf";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ lazarus fpc makeWrapper ];
|
nativeBuildInputs = [ lazarus fpc makeWrapper ];
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, gnutar
|
||||||
|
, autoPatchelfHook
|
||||||
|
, glibc
|
||||||
|
, gtk2
|
||||||
|
, xorg
|
||||||
|
, libgudev
|
||||||
|
, undmg
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (stdenv.hostPlatform) system;
|
||||||
|
throwSystem = throw "Unsupported system: ${system}";
|
||||||
|
|
||||||
|
pname = "vuescan";
|
||||||
|
|
||||||
|
# Minor versions are released using the same file name
|
||||||
|
version = "9.7";
|
||||||
|
versionString = builtins.replaceStrings ["."] [""] version;
|
||||||
|
|
||||||
|
src = let
|
||||||
|
base = "https://www.hamrick.com/files/";
|
||||||
|
in {
|
||||||
|
x86_64-darwin = fetchurl {
|
||||||
|
url = "${base}/vuex64${versionString}.dmg";
|
||||||
|
sha256 = "045ihd2pj0zmzjfwn2qmv5114yvs9vf6mw6sf4x3hwcdmpk40sfh";
|
||||||
|
};
|
||||||
|
i686-darwin = fetchurl {
|
||||||
|
url = "${base}/vuex32${versionString}.dmg";
|
||||||
|
sha256 = "0nny1jm3s1nr7xm03mcy3zgxvslznnvc8a5gn93gjww6gwg9rcn6";
|
||||||
|
};
|
||||||
|
x86_64-linux = fetchurl {
|
||||||
|
url = "${base}/vuex64${versionString}.tgz";
|
||||||
|
sha256 = "0jkj92w3y66dcxwq3kkg7vhqxljwf9dqs563xbkh1r7piyjfwycm";
|
||||||
|
};
|
||||||
|
i686-linux = fetchurl {
|
||||||
|
url = "${base}/vuex32${versionString}.tgz";
|
||||||
|
sha256 = "03qac9c0sg21jwz91nzzwk3ml8byv06ay9wiq00dl62nmhs20r5m";
|
||||||
|
};
|
||||||
|
aarch64-linux = fetchurl {
|
||||||
|
url = "${base}/vuea64${versionString}.tgz";
|
||||||
|
sha256 = "17viy7kcb78j0p3ik99psabmkgpwpmgvk96wjhn9aar48gpyr1wj";
|
||||||
|
};
|
||||||
|
armv6l-linux = fetchurl {
|
||||||
|
url = "${base}/vuea32${versionString}.tgz";
|
||||||
|
sha256 = "0m7sp18bdf2l2yf3q3z6c3i0bm4mq2h4ndm6qfvyknip0h11gv7i";
|
||||||
|
};
|
||||||
|
}.${system} or throwSystem;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Scanner software supporting a wide range of devices";
|
||||||
|
homepage = "https://hamrick.com/";
|
||||||
|
license = licenses.unfree;
|
||||||
|
maintainers = with maintainers; [ evax ];
|
||||||
|
platforms = [
|
||||||
|
"x86_64-darwin" "i686-darwin"
|
||||||
|
"x86_64-linux" "i686-linux"
|
||||||
|
"aarch64-linux" "armv6l-linux"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
linux = stdenv.mkDerivation rec {
|
||||||
|
inherit pname version src meta;
|
||||||
|
|
||||||
|
# Stripping the binary breaks the license form
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gnutar
|
||||||
|
autoPatchelfHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glibc
|
||||||
|
gtk2
|
||||||
|
xorg.libSM
|
||||||
|
libgudev
|
||||||
|
];
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
tar xfz $src
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -m755 -D VueScan/vuescan $out/bin/vuescan
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
darwin = stdenv.mkDerivation {
|
||||||
|
inherit pname version src meta;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ undmg ];
|
||||||
|
|
||||||
|
sourceRoot = {
|
||||||
|
x86_64-darwin = "vuex64${versionString}.dmg";
|
||||||
|
i686-darwin = "vuex32${versionString}.dmg";
|
||||||
|
}.${system} or throwSystem;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/Applications/VueScan.app
|
||||||
|
cp -R . $out/Applications/VueScan.app
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in if stdenv.isDarwin
|
||||||
|
then darwin
|
||||||
|
else linux
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, python3Packages, gettext, qt5, fetchFromGitHub}:
|
{stdenv, python3Packages, fetchpatch, gettext, qt5, fetchFromGitHub}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "dupeguru";
|
pname = "dupeguru";
|
||||||
|
@ -14,6 +14,15 @@ python3Packages.buildPythonApplication rec {
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# already merged to master, remove next version bump
|
||||||
|
(fetchpatch {
|
||||||
|
name = "remove-m-from-so-var.patch";
|
||||||
|
url = "https://github.com/arsenetar/dupeguru/commit/bd0f53bcbe463c48fe141b73af13542da36d82ba.patch";
|
||||||
|
sha256 = "07iisz8kcr7v8lb21inzj1avlpfhh9k8wcivbd33w49cr3mmnr26";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
gettext
|
gettext
|
||||||
python3Packages.pyqt5
|
python3Packages.pyqt5
|
||||||
|
@ -58,6 +67,5 @@ python3Packages.buildPythonApplication rec {
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.novoxudonoser ];
|
maintainers = [ maintainers.novoxudonoser ];
|
||||||
broken = true; # mv: cannot stat '_block.cpython-38m*.so': No such file or directory
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "foot";
|
pname = "foot";
|
||||||
version = "1.4.4";
|
version = "1.5.1";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://codeberg.org/dnkl/foot.git";
|
url = "https://codeberg.org/dnkl/foot.git";
|
||||||
rev = "${version}";
|
rev = version;
|
||||||
sha256 = "1cr4sz075v18clh8nlvgyxlbvfkhbsg0qrqgnclip5rwa24ry1lg";
|
sha256 = "sha256-GAk2qkrgCNILJOeRcn1NT4t3w+R6WFTZ1goOhBEwKwc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -2,16 +2,21 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "gallery_dl";
|
pname = "gallery_dl";
|
||||||
version = "1.15.0";
|
version = "1.15.1";
|
||||||
|
|
||||||
src = python3Packages.fetchPypi {
|
src = python3Packages.fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1g9hmb5637x8bhm2wzarqnxzj0i93fcdm1myvld2d97a2d32hy6m";
|
sha256 = "1pysh0gz3f3dxk5bfkzaii4myrgik396mf6vlks50inpbnslmqsl";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = false;
|
|
||||||
propagatedBuildInputs = with python3Packages; [ requests ];
|
propagatedBuildInputs = with python3Packages; [ requests ];
|
||||||
|
|
||||||
|
checkInputs = with python3Packages; [ pytestCheckHook ];
|
||||||
|
pytestFlagsArray = [
|
||||||
|
# requires network access
|
||||||
|
"--ignore=test/test_results.py"
|
||||||
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Command-line program to download image-galleries and -collections from several image hosting sites";
|
description = "Command-line program to download image-galleries and -collections from several image hosting sites";
|
||||||
homepage = "https://github.com/mikf/gallery-dl";
|
homepage = "https://github.com/mikf/gallery-dl";
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
{ stdenv
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, gettext
|
||||||
|
, fetchFromGitLab
|
||||||
|
, python3
|
||||||
|
, libhandy
|
||||||
|
, libpwquality
|
||||||
|
, wrapGAppsHook
|
||||||
|
, gtk3
|
||||||
|
, glib
|
||||||
|
, gdk-pixbuf
|
||||||
|
, gobject-introspection
|
||||||
|
, desktop-file-utils
|
||||||
|
, appstream-glib }:
|
||||||
|
|
||||||
|
python3.pkgs.buildPythonApplication rec {
|
||||||
|
pname = "gnome-passwordsafe";
|
||||||
|
version = "3.99.2";
|
||||||
|
format = "other";
|
||||||
|
strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
owner = "World";
|
||||||
|
repo = "PasswordSafe";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
gettext
|
||||||
|
pkg-config
|
||||||
|
wrapGAppsHook
|
||||||
|
desktop-file-utils
|
||||||
|
appstream-glib
|
||||||
|
gobject-introspection
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gtk3
|
||||||
|
glib
|
||||||
|
gdk-pixbuf
|
||||||
|
libhandy
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
|
pygobject3
|
||||||
|
construct
|
||||||
|
|
||||||
|
# pykeepass 3.2.1 changed some exception types, and is not backwards compatible.
|
||||||
|
# Remove override once the MR is merged upstream.
|
||||||
|
# https://gitlab.gnome.org/World/PasswordSafe/-/merge_requests/79
|
||||||
|
(pykeepass.overridePythonAttrs (old: rec {
|
||||||
|
version = "3.2.0";
|
||||||
|
src = fetchPypi {
|
||||||
|
pname = "pykeepass";
|
||||||
|
inherit version;
|
||||||
|
sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [ pycryptodome ];
|
||||||
|
}))
|
||||||
|
|
||||||
|
] ++ [
|
||||||
|
libpwquality # using the python bindings
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
broken = stdenv.hostPlatform.isStatic; # libpwquality doesn't provide bindings when static
|
||||||
|
description = "Password manager for GNOME which makes use of the KeePass v.4 format";
|
||||||
|
homepage = "https://gitlab.gnome.org/World/PasswordSafe";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ mvnetbiz ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, mkDerivation
|
{ stdenv, fetchFromGitHub, fetchpatch, mkDerivation
|
||||||
, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
|
, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
|
||||||
, qtconnectivity, qtcharts, libusb-compat-0_1
|
, qtconnectivity, qtcharts, libusb-compat-0_1
|
||||||
, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
|
, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
|
||||||
|
@ -16,13 +16,13 @@ let
|
||||||
};
|
};
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
pname = "golden-cheetah";
|
pname = "golden-cheetah";
|
||||||
version = "3.5-RC2X";
|
version = "3.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "GoldenCheetah";
|
owner = "GoldenCheetah";
|
||||||
repo = "GoldenCheetah";
|
repo = "GoldenCheetah";
|
||||||
rev = "V${version}";
|
rev = "V${version}";
|
||||||
sha256 = "1d85700gjbcw2badwz225rjdr954ai89900vp8sal04sk79wbr6g";
|
sha256 = "1lyd0b2s3s9c2ppj7l4hf3s4gfzscaaam2pbiaby714bi9nr0ka7";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -31,6 +31,15 @@ in mkDerivation rec {
|
||||||
];
|
];
|
||||||
nativeBuildInputs = [ flex makeWrapper qmake yacc ];
|
nativeBuildInputs = [ flex makeWrapper qmake yacc ];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# allow building with bison 3.7
|
||||||
|
# PR at https://github.com/GoldenCheetah/GoldenCheetah/pull/3590
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/GoldenCheetah/GoldenCheetah/commit/e1f42f8b3340eb4695ad73be764332e75b7bce90.patch";
|
||||||
|
sha256 = "1h0y9vfji5jngqcpzxna5nnawxs77i1lrj44w8a72j0ah0sznivb";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
NIX_LDFLAGS = "-lz";
|
NIX_LDFLAGS = "-lz";
|
||||||
|
|
||||||
qtWrapperArgs = [ "--set LD_LIBRARY_PATH ${zlib.out}/lib" ];
|
qtWrapperArgs = [ "--set LD_LIBRARY_PATH ${zlib.out}/lib" ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "googler";
|
pname = "googler";
|
||||||
version = "4.2";
|
version = "4.3.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jarun";
|
owner = "jarun";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0c480wzc7q4pks1f6mnayr580c73jhzshliz4hgznzc7zwcdf41w";
|
sha256 = "04wa0mlbfjnzwham2dpd9lch7800js4vp3ikgjl4qnwilvr1lw74";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python ];
|
buildInputs = [ python ];
|
||||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://github.com/jarun/googler";
|
homepage = "https://github.com/jarun/googler";
|
||||||
description = "Google Search, Google Site Search, Google News from the terminal";
|
description = "Google Search, Google Site Search, Google News from the terminal";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3Plus;
|
||||||
maintainers = with maintainers; [ koral filalex77 ];
|
maintainers = with maintainers; [ koral filalex77 ];
|
||||||
platforms = python.meta.platforms;
|
platforms = python.meta.platforms;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
|
sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -ie '/sys\/sysctl.h/d' src/Unique.cpp
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "IPMIView";
|
pname = "IPMIView";
|
||||||
version = "2.16.0";
|
version = "2.17.0";
|
||||||
buildVersion = "190815";
|
buildVersion = "200505";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
|
url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
|
||||||
sha256 = "0qw9zfnj0cyvab7ndamlw2y0gpczjhh1jkz8340kl42r2xmhkvpl";
|
sha256 = "0ba0694krj2q77zwdn22v2qzjdy52a7ryhgc3m51s7p17ahigz97";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ patchelf makeWrapper ];
|
nativeBuildInputs = [ patchelf makeWrapper ];
|
||||||
|
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
|
||||||
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/libawt_xawt.so
|
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/libawt_xawt.so
|
||||||
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ freetype ]}" ./jre/lib/amd64/libfontmanager.so
|
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ freetype ]}" ./jre/lib/amd64/libfontmanager.so
|
||||||
patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
|
patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
|
||||||
|
patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM_v11_64.so
|
||||||
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
|
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary}
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary}
|
||||||
'';
|
'';
|
||||||
|
@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||||
exec = "IPMIView";
|
exec = "IPMIView";
|
||||||
desktopName = name;
|
desktopName = name;
|
||||||
genericName = "Supermicro BMC manager";
|
genericName = "Supermicro BMC manager";
|
||||||
categories = "Network;Configuration";
|
categories = "Network";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -60,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||||
--add-flags "-jar $out/IPMIView20.jar" \
|
--add-flags "-jar $out/IPMIView20.jar" \
|
||||||
--run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview
|
--run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview
|
||||||
mkdir -p $WORK_DIR
|
mkdir -p $WORK_DIR
|
||||||
ln -snf '$out'/iKVM.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR
|
ln -snf '$out'/iKVM.jar '$out'/iKVM_ssl.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR
|
||||||
cd $WORK_DIR'
|
cd $WORK_DIR'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "joplin-desktop";
|
pname = "joplin-desktop";
|
||||||
version = "1.1.4";
|
version = "1.2.6";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
inherit (stdenv.hostPlatform) system;
|
inherit (stdenv.hostPlatform) system;
|
||||||
|
@ -16,8 +16,8 @@ let
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
|
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
|
||||||
sha256 = {
|
sha256 = {
|
||||||
x86_64-linux = "1jgmjwjl2y3nrywnwidpk6p31sypy3gjghmzzqkrgjpf77ccbssm";
|
x86_64-linux = "14svzfhszb0pnsajbydsic0rdc64zp6csqjp6k2p2i20jf0c0im6";
|
||||||
x86_64-darwin = "1v06k4qrk3n1ncgpmnqp4axmn7gvs3mgbvf8n6ldhgjhj3hq9day";
|
x86_64-darwin = "1wdv8idnvn5567xdmsaa3f7skv48i9q6jqd4pgv8pz1zkhiqj0wi";
|
||||||
}.${system} or throwSystem;
|
}.${system} or throwSystem;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{ stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
|
{ stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
|
||||||
let
|
let
|
||||||
pname = "josm";
|
pname = "josm";
|
||||||
version = "17013";
|
version = "17084";
|
||||||
srcs = {
|
srcs = {
|
||||||
jar = fetchurl {
|
jar = fetchurl {
|
||||||
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
|
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
|
||||||
sha256 = "0dgfiqk5bcbs03llkffm6h96zcqa19azbanac883g26f6z6j9b8j";
|
sha256 = "0avzpzmvv371jpbph9xpq0ia2nikha2aib9v10hr2f9q7vka9zx4";
|
||||||
};
|
};
|
||||||
macosx = fetchurl {
|
macosx = fetchurl {
|
||||||
url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
|
url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
|
||||||
sha256 = "1mzaxcswmxah0gc9cifgaazwisr5cbanf4bspv1ra8xwzj5mdss6";
|
sha256 = "1vd2r4sshjpd6ic460cdil75skrm6f6q48lm6n3g1ywkn4mx63p1";
|
||||||
};
|
};
|
||||||
pkg = fetchsvn {
|
pkg = fetchsvn {
|
||||||
url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
|
url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, makeWrapper
|
||||||
|
, dpkg
|
||||||
|
, luajit
|
||||||
|
, gtk3-x11
|
||||||
|
, SDL2
|
||||||
|
, glib
|
||||||
|
, noto-fonts
|
||||||
|
, nerdfonts }:
|
||||||
|
let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "koreader";
|
||||||
|
version = "2020.09";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url =
|
||||||
|
"https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
|
||||||
|
sha256 = "12kiw3mw8g8d9fb8ywd4clm2bgblhq2gqcxzadwpmf0wxq7p0v8z";
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceRoot = ".";
|
||||||
|
nativeBuildInputs = [ makeWrapper dpkg ];
|
||||||
|
buildInputs = [ luajit gtk3-x11 SDL2 glib ];
|
||||||
|
unpackCmd = "dpkg-deb -x ${src} .";
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -R usr/* $out/
|
||||||
|
cp ${luajit}/bin/luajit $out/lib/koreader/luajit
|
||||||
|
find $out -xtype l -delete
|
||||||
|
for i in ${noto-fonts}/share/fonts/truetype/noto/*; do
|
||||||
|
ln -s "$i" $out/lib/koreader/fonts/noto/
|
||||||
|
done
|
||||||
|
ln -s "${font-droid}/share/fonts/opentype/NerdFonts/Droid Sans Mono Nerd Font Complete Mono.otf" $out/lib/koreader/fonts/droid/DroidSansMono.ttf
|
||||||
|
wrapProgram $out/bin/koreader --prefix LD_LIBRARY_PATH : ${
|
||||||
|
stdenv.lib.makeLibraryPath [ gtk3-x11 SDL2 glib ]
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/koreader/koreader";
|
||||||
|
description =
|
||||||
|
"An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
|
||||||
|
platforms = intersectLists platforms.x86_64 platforms.linux;
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = [ maintainers.contrun ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -255,13 +255,13 @@ in {
|
||||||
|
|
||||||
displaylayerprogress = buildPlugin rec {
|
displaylayerprogress = buildPlugin rec {
|
||||||
pname = "OctoPrint-DisplayLayerProgress";
|
pname = "OctoPrint-DisplayLayerProgress";
|
||||||
version = "1.23.2";
|
version = "1.24.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "OllisGit";
|
owner = "OllisGit";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0yv8gy5dq0rl7zxkvqa98az391aiixl8wbzkyvbmpjar9r6whdzm";
|
sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -272,15 +272,34 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
octoklipper = buildPlugin rec {
|
||||||
|
pname = "OctoKlipper";
|
||||||
|
version = "0.3.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "AliceGrey";
|
||||||
|
repo = "OctoprintKlipperPlugin";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "15yg2blbgqp2gdpsqqm8qiiznq5qaq8wss07jimkl0865vrvlz7l";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A plugin for a better integration of Klipper into OctoPrint";
|
||||||
|
homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ lovesegfault ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
octoprint-dashboard = buildPlugin rec {
|
octoprint-dashboard = buildPlugin rec {
|
||||||
pname = "OctoPrint-Dashboard";
|
pname = "OctoPrint-Dashboard";
|
||||||
version = "1.13.0";
|
version = "1.15.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "StefanCohen";
|
owner = "StefanCohen";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1879l05gkkryvhxkmhr3xvd10d4m7i0cr3jk1gdcv47xwyr6q9pf";
|
sha256 = "1psk069g8xdpgbzmna51dh978vrildh33dn7kbbi5y31ry5c3gx6";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -1,21 +1,30 @@
|
||||||
{ stdenv, fetchurl, ocamlPackages, ncurses, gsl }:
|
{ lib, fetchFromGitHub, ocamlPackages }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
ocamlPackages.buildDunePackage rec {
|
||||||
pname = "orpie";
|
pname = "orpie";
|
||||||
version = "1.5.2";
|
version = "1.6.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "http://pessimization.com/software/orpie/${pname}-${version}.tar.gz";
|
owner = "pelzlpj";
|
||||||
sha256 = "0v9xgpcf186ni55rkmx008msyszw0ypd6rd98hgwpih8yv3pymfy";
|
repo = pname;
|
||||||
|
rev = "release-${version}";
|
||||||
|
sha256 = "1rx2nl6cdv609pfymnbq53pi3ql5fr4kda8x10ycd9xq2gc4f21g";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ncurses gsl ] ++ (with ocamlPackages; [ ocaml camlp4 ]);
|
preConfigure = ''
|
||||||
|
patchShebangs scripts
|
||||||
|
substituteInPlace scripts/compute_prefix \
|
||||||
|
--replace '"topfind"' \
|
||||||
|
'"${ocamlPackages.findlib}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/topfind"'
|
||||||
|
export PREFIX=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = with ocamlPackages; [ curses camlp5 num gsl ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/pelzlpj/orpie";
|
inherit (src.meta) homepage;
|
||||||
description = "A fullscreen RPN calculator for the console";
|
description = "A Curses-based RPN calculator";
|
||||||
license = stdenv.lib.licenses.gpl2;
|
license = lib.licenses.gpl3Only;
|
||||||
platforms = stdenv.lib.platforms.all;
|
maintainers = with lib.maintainers; [ obadz ];
|
||||||
maintainers = with stdenv.lib.maintainers; [ obadz ];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
appname = "SuperSlicer";
|
appname = "SuperSlicer";
|
||||||
version = "2.2.53.1";
|
version = "2.2.54.0";
|
||||||
pname = "super-slicer";
|
pname = "super-slicer";
|
||||||
description = "PrusaSlicer fork with more features and faster development cycle";
|
description = "PrusaSlicer fork with more features and faster development cycle";
|
||||||
override = super: {
|
override = super: {
|
||||||
|
@ -12,7 +12,7 @@ let
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "supermerill";
|
owner = "supermerill";
|
||||||
repo = "SuperSlicer";
|
repo = "SuperSlicer";
|
||||||
sha256 = "sha256-CAhwmQ63N/XJYToTnIV84lNnjDGNbkmYPzNKNL/wVxs=";
|
sha256 = "sha256-vvuUecysSdBvGBKOariQnsGJ9/Qccwp/lSq8WCED+Uk=";
|
||||||
rev = version;
|
rev = version;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,8 +23,7 @@ let
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p "$out/share/pixmaps/"
|
mkdir -p "$out/share/pixmaps/"
|
||||||
# Change slic3r++ to SuperSlicer at the next release!
|
ln -s "$out/share/SuperSlicer/icons/Slic3r.png" "$out/share/pixmaps/${appname}.png"
|
||||||
ln -s "$out/share/slic3r++/icons/Slic3r.png" "$out/share/pixmaps/${appname}.png"
|
|
||||||
mkdir -p "$out/share/applications"
|
mkdir -p "$out/share/applications"
|
||||||
cp "$desktopItem"/share/applications/* "$out/share/applications/"
|
cp "$desktopItem"/share/applications/* "$out/share/applications/"
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, unzip
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "smos-${version}";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/NorfairKing/smos/releases/download/v${version}/smos-release.zip";
|
||||||
|
sha256 = "sha256:07yavk7xl92yjwwjdig90yq421n8ldv4fjfw7izd4hfpzw849a12";
|
||||||
|
};
|
||||||
|
|
||||||
|
phases = [ "unpackPhase" ];
|
||||||
|
unpackCmd = "${unzip}/bin/unzip -d $out $curSrc";
|
||||||
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A comprehensive self-management system";
|
||||||
|
homepage = https://smos.online;
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ norfair ];
|
||||||
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,7 +15,11 @@ stdenv.mkDerivation rec {
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
|
configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
|
||||||
postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h";
|
|
||||||
|
postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h"
|
||||||
|
+ optionalString stdenv.isDarwin ''
|
||||||
|
substituteInPlace config.mk --replace "-lrt" ""
|
||||||
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ncurses ];
|
nativeBuildInputs = [ pkgconfig ncurses ];
|
||||||
buildInputs = [ libX11 libXft ] ++ extraLibs;
|
buildInputs = [ libX11 libXft ] ++ extraLibs;
|
||||||
|
@ -28,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://st.suckless.org/";
|
homepage = "https://st.suckless.org/";
|
||||||
description = "Simple Terminal for X from Suckless.org Community";
|
description = "Simple Terminal for X from Suckless.org Community";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [andsild];
|
maintainers = with maintainers; [ andsild ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,33 @@
|
||||||
{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron_7
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchurl
|
||||||
|
, makeWrapper
|
||||||
|
, electron_9
|
||||||
, common-updater-scripts
|
, common-updater-scripts
|
||||||
, writeShellScript
|
, writeShellScript
|
||||||
|
, jq
|
||||||
|
, makeDesktopItem
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
electron = electron_7;
|
electron = electron_9;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
pname = "stretchly";
|
pname = "stretchly";
|
||||||
version = "0.21.1";
|
version = "1.2.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
|
url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
|
||||||
sha256 = "0776pywyqylwd33m85l4wdr89x0q9xkrjgliag10fp1bswz844lf";
|
sha256 = "07v9yk9qgya9ladfgbfkwwnbzvczs1cv6yn3zrg9rviyv8zlqjls";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
icon = fetchurl {
|
||||||
wrapGAppsHook
|
url = "https://raw.githubusercontent.com/hovancik/stretchly/v${version}/stretchly_128x128.png";
|
||||||
];
|
sha256 = "0whfg1fy2hjyk1lzpryikc1aj8agsjhfrb0bf7ggl6r9m8s1rvdl";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
@ -25,15 +35,15 @@ stdenv.mkDerivation rec {
|
||||||
mkdir -p $out/bin $out/share/${pname}/
|
mkdir -p $out/bin $out/share/${pname}/
|
||||||
mv resources/app.asar $out/share/${pname}/
|
mv resources/app.asar $out/share/${pname}/
|
||||||
|
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
ln -s ${desktopItem}/share/applications/* $out/share/applications/
|
||||||
|
|
||||||
makeWrapper ${electron}/bin/electron $out/bin/${pname} \
|
makeWrapper ${electron}/bin/electron $out/bin/${pname} \
|
||||||
--add-flags $out/share/${pname}/app.asar \
|
--add-flags $out/share/${pname}/app.asar
|
||||||
"''${gappsWrapperArgs[@]}" \
|
|
||||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
|
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
updateScript = writeShellScript "update-stretchly" ''
|
updateScript = writeShellScript "update-stretchly" ''
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
@ -47,6 +57,15 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = pname;
|
||||||
|
exec = pname;
|
||||||
|
icon = icon;
|
||||||
|
desktopName = "Stretchly";
|
||||||
|
genericName = "Stretchly";
|
||||||
|
categories = "Utility;";
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A break time reminder app";
|
description = "A break time reminder app";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -59,7 +78,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://hovancik.net/stretchly";
|
homepage = "https://hovancik.net/stretchly";
|
||||||
downloadPage = "https://hovancik.net/stretchly/downloads/";
|
downloadPage = "https://hovancik.net/stretchly/downloads/";
|
||||||
license = licenses.bsd2;
|
license = licenses.bsd2;
|
||||||
maintainers = with maintainers; [ cdepillabout ];
|
maintainers = with maintainers; [ _1000101 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,21 +18,22 @@
|
||||||
, poppler
|
, poppler
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, kdoctools
|
, kdoctools
|
||||||
|
, taglib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "tellico";
|
name = "tellico";
|
||||||
version = "3.3.0";
|
version = "3.3.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz";
|
# version 3.3.0 just uses 3.3 in its name
|
||||||
sha256 = "1digkpvzrsbv5znf1cgzs6zkmysfz6lzs12n12mrrpgkcdxc426y";
|
urls = [
|
||||||
|
"https://tellico-project.org/files/tellico-${version}.tar.xz"
|
||||||
|
"https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
|
||||||
|
];
|
||||||
|
sha256 = "sha256-9cdbUTa2Mt3/yNylOSdGjgDETD74sR0dU4C58uW0Y6o=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
./hex.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
extra-cmake-modules
|
extra-cmake-modules
|
||||||
|
@ -41,27 +42,28 @@ mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
kdelibs4support
|
|
||||||
solid
|
|
||||||
kxmlgui
|
|
||||||
karchive
|
|
||||||
kfilemetadata
|
|
||||||
khtml
|
|
||||||
knewstuff
|
|
||||||
libksane
|
|
||||||
cmake
|
cmake
|
||||||
exempi
|
exempi
|
||||||
extra-cmake-modules
|
extra-cmake-modules
|
||||||
libcdio
|
karchive
|
||||||
kdeApplications.libkcddb
|
kdeApplications.libkcddb
|
||||||
|
kdelibs4support
|
||||||
|
kfilemetadata
|
||||||
|
khtml
|
||||||
|
knewstuff
|
||||||
|
kxmlgui
|
||||||
|
libcdio
|
||||||
|
libksane
|
||||||
poppler
|
poppler
|
||||||
|
solid
|
||||||
|
taglib
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = with lib; {
|
||||||
description = "Collection management software, free and simple";
|
description = "Collection management software, free and simple";
|
||||||
homepage = "https://tellico-project.org/";
|
homepage = "https://tellico-project.org/";
|
||||||
maintainers = with lib.maintainers; [ numkem ];
|
license = with licenses; [ gpl2 gpl3 ];
|
||||||
license = with lib.licenses; [ gpl2 gpl3 ];
|
maintainers = with maintainers; [ numkem ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,11 @@ let
|
||||||
in
|
in
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "tzupdate";
|
pname = "tzupdate";
|
||||||
version = "2.0.0";
|
version = "2.1.0";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "12jvyza9pfhazkzq94nizacknnp32lf7kalrjmpz1z2bqqxhx0fm";
|
sha256 = "5b55795c390e4ccc90e649c8cc387447daaf30a21d68f7196b49824cbcba8adc";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ requests ];
|
propagatedBuildInputs = [ requests ];
|
||||||
|
|
|
@ -6,16 +6,16 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "upwork";
|
pname = "upwork";
|
||||||
version = "5.3.3-883";
|
version = "5.4.7.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://updates-desktopapp.upwork.com/binaries/v5_3_3_883_1f817bc1fefd44e7/upwork_5.3.3.883_amd64.deb";
|
url = "https://updates-desktopapp.upwork.com/binaries/v5_4_7_1_81f361962c74427d/${pname}_5.4.7.1_amd64.deb";
|
||||||
sha256 = "072zns79w4h46bvbj23rvr8i12sf2l378ry0z3hchwcimkrph9wx";
|
sha256 = "c443724d37bca942ca126b8b207846a5adb94a92ff9490370f2fe055feee347b";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontWrapGApps = true;
|
dontWrapGApps = true;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
dpkg
|
dpkg
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
autoPatchelfHook
|
autoPatchelfHook
|
||||||
|
@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
|
||||||
description = "Online freelancing platform desktop application for time tracking";
|
description = "Online freelancing platform desktop application for time tracking";
|
||||||
homepage = "https://www.upwork.com/ab/downloads/";
|
homepage = "https://www.upwork.com/ab/downloads/";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = with maintainers; [ zakkor ];
|
maintainers = with maintainers; [ zakkor wolfangaukang ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,16 +8,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "wtf";
|
pname = "wtf";
|
||||||
version = "0.32.0";
|
version = "0.33.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "wtfutil";
|
owner = "wtfutil";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1055shnf716ga46wwcaffdpgc1glr8vrqrbs2sqbkr3wjan6n0nw";
|
sha256 = "0dszc3igfvlb6dgf5whyhw72id39lqqmgpd42kyqx5yjf5dw2wg7";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "0l1q29mdb13ir7n1x65jfnrmy1lamlsa6hm2jagf6yjbm6wf1kw4";
|
vendorSha256 = "1wcqk8lfv3jq7dfaj9dj8bzsmq2qislzs1m38gx1hh4jwg1rn2cn";
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "Sylk";
|
pname = "Sylk";
|
||||||
version = "2.9.0";
|
version = "2.9.1";
|
||||||
in
|
in
|
||||||
|
|
||||||
appimageTools.wrapType2 rec {
|
appimageTools.wrapType2 rec {
|
||||||
|
@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
|
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
|
||||||
hash = "sha256-vhLZkU4MNAlITsJD+xYPDxeimGw6nHn/Rb5nu35uOfQ=";
|
hash = "sha256-Y1FR1tYZTxhMFn6NL578otitmOsngMJBPK/9cpCqE/Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
profile = ''
|
profile = ''
|
||||||
|
|
|
@ -13,7 +13,7 @@ mkChromiumDerivation (base: rec {
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p "$libExecPath"
|
mkdir -p "$libExecPath"
|
||||||
cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
|
cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
|
||||||
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
|
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
|
||||||
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
|
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
|
||||||
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
|
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
|
||||||
|
|
|
@ -13,10 +13,9 @@
|
||||||
, bison, gperf
|
, bison, gperf
|
||||||
, glib, gtk3, dbus-glib
|
, glib, gtk3, dbus-glib
|
||||||
, glibc
|
, glibc
|
||||||
, xorg
|
|
||||||
, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
|
, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
|
||||||
, protobuf, speechd, libXdamage, cups
|
, protobuf, speechd, libXdamage, cups
|
||||||
, ffmpeg_3, libxslt, libxml2, at-spi2-core
|
, ffmpeg, libxslt, libxml2, at-spi2-core
|
||||||
, jre8
|
, jre8
|
||||||
, pipewire_0_2
|
, pipewire_0_2
|
||||||
|
|
||||||
|
@ -77,11 +76,16 @@ let
|
||||||
in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
|
in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
|
||||||
|
|
||||||
gnSystemLibraries = [
|
gnSystemLibraries = [
|
||||||
"flac" "libwebp" "libxslt" "opus" "snappy" "libpng"
|
"ffmpeg"
|
||||||
# "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config
|
"flac"
|
||||||
# "libjpeg" # fails with multiple undefined references to chromium_jpeg_*
|
"libjpeg"
|
||||||
|
"libpng"
|
||||||
|
"libwebp"
|
||||||
|
"libxslt"
|
||||||
|
"opus"
|
||||||
|
"snappy"
|
||||||
|
"zlib"
|
||||||
# "re2" # fails with linker errors
|
# "re2" # fails with linker errors
|
||||||
# "ffmpeg" # https://crbug.com/731766
|
|
||||||
# "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
|
# "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
|
||||||
# so we can't build with one from system and other from source
|
# so we can't build with one from system and other from source
|
||||||
];
|
];
|
||||||
|
@ -96,7 +100,7 @@ let
|
||||||
libpng libcap
|
libpng libcap
|
||||||
xdg_utils minizip libwebp
|
xdg_utils minizip libwebp
|
||||||
libusb1 re2 zlib
|
libusb1 re2 zlib
|
||||||
ffmpeg_3 libxslt libxml2
|
ffmpeg libxslt libxml2
|
||||||
nasm
|
nasm
|
||||||
# harfbuzz # in versions over 63 harfbuzz and freetype are being built together
|
# harfbuzz # in versions over 63 harfbuzz and freetype are being built together
|
||||||
# so we can't build with one from system and other from source
|
# so we can't build with one from system and other from source
|
||||||
|
@ -131,7 +135,6 @@ let
|
||||||
ninja which python2Packages.python perl pkgconfig
|
ninja which python2Packages.python perl pkgconfig
|
||||||
python2Packages.ply python2Packages.jinja2 nodejs
|
python2Packages.ply python2Packages.jinja2 nodejs
|
||||||
gnutar python2Packages.setuptools
|
gnutar python2Packages.setuptools
|
||||||
(xorg.xcbproto.override { python = python2Packages.python; })
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = defaultDependencies ++ [
|
buildInputs = defaultDependencies ++ [
|
||||||
|
@ -150,13 +153,9 @@ let
|
||||||
++ optional pulseSupport libpulseaudio
|
++ optional pulseSupport libpulseaudio
|
||||||
++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
|
++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
|
||||||
|
|
||||||
patches = optionals (versionRange "68" "86") [
|
patches = [
|
||||||
./patches/nix_plugin_paths_68.patch
|
|
||||||
] ++ [
|
|
||||||
./patches/remove-webp-include-69.patch
|
|
||||||
./patches/no-build-timestamps.patch
|
./patches/no-build-timestamps.patch
|
||||||
./patches/widevine-79.patch
|
./patches/widevine-79.patch
|
||||||
./patches/dont-use-ANGLE-by-default.patch
|
|
||||||
# Unfortunately, chromium regularly breaks on major updates and
|
# Unfortunately, chromium regularly breaks on major updates and
|
||||||
# then needs various patches backported in order to be compiled with GCC.
|
# then needs various patches backported in order to be compiled with GCC.
|
||||||
# Good sources for such patches and other hints:
|
# Good sources for such patches and other hints:
|
||||||
|
@ -166,18 +165,18 @@ let
|
||||||
#
|
#
|
||||||
# ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
|
# ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
|
||||||
# ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
|
# ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
|
||||||
] ++ optionals (useVaapi && versionRange "68" "86") [ # Improvements for the VA-API build:
|
] ++ optionals (useVaapi) [
|
||||||
./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
|
# Check for enable-accelerated-video-decode on Linux:
|
||||||
./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
|
(githubPatch "54deb9811ca9bd2327def5c05ba6987b8c7a0897" "11jvxjlkzz1hm0pvfyr88j7z3zbwzplyl5idkx92l2lzv4459c8d")
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = optionalString (!versionRange "0" "86") ''
|
postPatch = ''
|
||||||
# Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
|
# Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
|
||||||
substituteInPlace native_client/SConstruct \
|
substituteInPlace native_client/SConstruct \
|
||||||
--replace "#! -*- python -*-" ""
|
--replace "#! -*- python -*-" ""
|
||||||
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
|
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
|
||||||
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
|
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
|
||||||
'' + ''
|
|
||||||
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
|
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
|
||||||
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
|
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
|
||||||
--replace \
|
--replace \
|
||||||
|
@ -195,11 +194,6 @@ let
|
||||||
'/usr/share/locale/' \
|
'/usr/share/locale/' \
|
||||||
'${glibc}/share/locale/'
|
'${glibc}/share/locale/'
|
||||||
|
|
||||||
substituteInPlace ui/gfx/x/BUILD.gn \
|
|
||||||
--replace \
|
|
||||||
'/usr/share/xcb' \
|
|
||||||
'${xorg.xcbproto}/share/xcb/'
|
|
||||||
|
|
||||||
sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
|
sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
|
||||||
chrome/browser/shell_integration_linux.cc
|
chrome/browser/shell_integration_linux.cc
|
||||||
|
|
||||||
|
@ -272,6 +266,7 @@ let
|
||||||
is_clang = stdenv.cc.isClang;
|
is_clang = stdenv.cc.isClang;
|
||||||
clang_use_chrome_plugins = false;
|
clang_use_chrome_plugins = false;
|
||||||
blink_symbol_level = 0;
|
blink_symbol_level = 0;
|
||||||
|
symbol_level = 0;
|
||||||
fieldtrial_testing_like_official_build = true;
|
fieldtrial_testing_like_official_build = true;
|
||||||
|
|
||||||
# Google API keys, see:
|
# Google API keys, see:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ newScope, config, stdenv, fetchurl, makeWrapper
|
{ newScope, config, stdenv, fetchurl, makeWrapper
|
||||||
, llvmPackages_10, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
|
, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
|
||||||
, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
|
, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
|
||||||
, libva ? null
|
, libva ? null
|
||||||
, pipewire_0_2
|
, pipewire_0_2
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
, enablePepperFlash ? false
|
, enablePepperFlash ? false
|
||||||
, enableWideVine ? false
|
, enableWideVine ? false
|
||||||
, useVaapi ? false # Deprecated, use enableVaapi instead!
|
, useVaapi ? false # Deprecated, use enableVaapi instead!
|
||||||
, enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon
|
, enableVaapi ? false # Disabled by default due to unofficial support
|
||||||
, useOzone ? false
|
, useOzone ? false
|
||||||
, cupsSupport ? true
|
, cupsSupport ? true
|
||||||
, pulseSupport ? config.pulseaudio or stdenv.isLinux
|
, pulseSupport ? config.pulseaudio or stdenv.isLinux
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
llvmPackages = llvmPackages_10;
|
llvmPackages = llvmPackages_11;
|
||||||
stdenv = llvmPackages.stdenv;
|
stdenv = llvmPackages.stdenv;
|
||||||
|
|
||||||
callPackage = newScope chromium;
|
callPackage = newScope chromium;
|
||||||
|
@ -37,16 +37,6 @@ let
|
||||||
inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
|
inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
|
||||||
cupsSupport pulseSupport useOzone;
|
cupsSupport pulseSupport useOzone;
|
||||||
# TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
|
# TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
|
||||||
gnChromium = gn.overrideAttrs (oldAttrs: {
|
|
||||||
version = "2020-05-19";
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://gn.googlesource.com/gn";
|
|
||||||
rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
|
|
||||||
sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
} // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "86") {
|
|
||||||
llvmPackages = llvmPackages_11;
|
|
||||||
gnChromium = gn.overrideAttrs (oldAttrs: {
|
gnChromium = gn.overrideAttrs (oldAttrs: {
|
||||||
version = "2020-07-20";
|
version = "2020-07-20";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
|
@ -56,7 +46,6 @@ let
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
} // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
|
} // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
|
||||||
llvmPackages = llvmPackages_11;
|
|
||||||
useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
|
useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
|
||||||
gnChromium = gn.overrideAttrs (oldAttrs: {
|
gnChromium = gn.overrideAttrs (oldAttrs: {
|
||||||
version = "2020-08-17";
|
version = "2020-08-17";
|
||||||
|
@ -163,8 +152,8 @@ let
|
||||||
Chromium's useVaapi was replaced by enableVaapi and you don't need to pass
|
Chromium's useVaapi was replaced by enableVaapi and you don't need to pass
|
||||||
"--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore).
|
"--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore).
|
||||||
'' else lib.optionalString
|
'' else lib.optionalString
|
||||||
(!enableVaapi)
|
(enableVaapi)
|
||||||
"--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode";
|
"--add-flags --enable-accelerated-video-decode";
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "chromium${suffix}-${version}";
|
name = "chromium${suffix}-${version}";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
A field trial currently enables the passthrough command decoder, which causes
|
|
||||||
gl_factory.cc to try kGLImplementationEGLANGLE first, which causes Chromium to fail
|
|
||||||
to load libGLESv2.so on NixOS. It somehow does not try kGLImplementationDesktopGL,
|
|
||||||
and so there is no GL support at all.
|
|
||||||
|
|
||||||
Revert to using the validating command decoder, which prevents gl_factory.cc
|
|
||||||
from touching allowed_impls, allowing it to successfully use kGLImplementationDesktopGL.
|
|
||||||
|
|
||||||
diff --git a/ui/gl/gl_utils.cc b/ui/gl/gl_utils.cc
|
|
||||||
index 697cbed5fe2d..8419bdb21a2f 100644
|
|
||||||
--- a/ui/gl/gl_utils.cc
|
|
||||||
+++ b/ui/gl/gl_utils.cc
|
|
||||||
@@ -71,9 +71,10 @@ bool UsePassthroughCommandDecoder(const base::CommandLine* command_line) {
|
|
||||||
} else if (switch_value == kCmdDecoderValidatingName) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
- // Unrecognized or missing switch, use the default.
|
|
||||||
- return base::FeatureList::IsEnabled(
|
|
||||||
- features::kDefaultPassthroughCommandDecoder);
|
|
||||||
+ // Ignore the field trial that enables it; disable it until
|
|
||||||
+ // gl_factory.cc kGLImplementationEGLANGLE issues are sorted
|
|
||||||
+ // out on NixOS.
|
|
||||||
+ return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
|
|
||||||
@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
// |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
|
|
||||||
// internal decoded frame.
|
|
||||||
if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
|
|
||||||
+ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
|
|
||||||
!vpp_vaapi_wrapper_) {
|
|
||||||
vpp_vaapi_wrapper_ = VaapiWrapper::Create(
|
|
||||||
VaapiWrapper::kVideoProcess, VAProfileNone,
|
|
||||||
@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
|
|
||||||
PictureBuffer buffer = buffers[i];
|
|
||||||
buffer.set_size(requested_pic_size_);
|
|
||||||
std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
|
|
||||||
- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
|
|
||||||
+ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
|
|
||||||
+ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
|
|
||||||
? vaapi_wrapper_
|
|
||||||
: vpp_vaapi_wrapper_,
|
|
||||||
make_context_current_cb_, bind_image_cb_, buffer);
|
|
||||||
@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
|
|
||||||
|
|
||||||
VaapiVideoDecodeAccelerator::BufferAllocationMode
|
|
||||||
VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
|
|
||||||
+ // NVIDIA blobs use VDPAU
|
|
||||||
+ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
|
|
||||||
+ LOG(INFO) << "VA-API driver on VDPAU backend";
|
|
||||||
+ return BufferAllocationMode::kWrapVdpau;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
|
|
||||||
// |output_mode_| as well.
|
|
||||||
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
|
|
||||||
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
|
|
||||||
@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
|
|
||||||
// Using |client_|s provided PictureBuffers and as many internally
|
|
||||||
// allocated.
|
|
||||||
kNormal,
|
|
||||||
+ kWrapVdpau,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Decides the concrete buffer allocation mode, depending on the hardware
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.cc
|
|
||||||
@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType(
|
|
||||||
} else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
|
|
||||||
base::CompareCase::SENSITIVE)) {
|
|
||||||
return media::VAImplementation::kIntelIHD;
|
|
||||||
+ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
|
|
||||||
+ base::CompareCase::SENSITIVE)) {
|
|
||||||
+ return media::VAImplementation::kNVIDIAVDPAU;
|
|
||||||
}
|
|
||||||
return media::VAImplementation::kOther;
|
|
||||||
}
|
|
||||||
--- a/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
+++ b/media/gpu/vaapi/vaapi_wrapper.h
|
|
||||||
@@ -79,6 +79,7 @@ enum class VAImplementation {
|
|
||||||
kIntelIHD,
|
|
||||||
kOther,
|
|
||||||
kInvalid,
|
|
||||||
+ kNVIDIAVDPAU,
|
|
||||||
};
|
|
||||||
|
|
||||||
// This class handles VA-API calls and ensures proper locking of VA-API calls
|
|
|
@ -1,48 +0,0 @@
|
||||||
From b2144fd28e09cd52e7a88a62a9d9b54cf9922f9f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Weiss <dev.primeos@gmail.com>
|
|
||||||
Date: Tue, 14 Apr 2020 14:16:10 +0200
|
|
||||||
Subject: [PATCH] Enable accelerated video decode on Linux
|
|
||||||
|
|
||||||
This will enable accelerated video decode on Linux by default (i.e.
|
|
||||||
without "--ignore-gpu-blacklist"), but on NixOS we'll provide
|
|
||||||
"--disable-accelerated-video-decode" and
|
|
||||||
"--disable-accelerated-video-encode" by default to avoid regressions
|
|
||||||
(e.g. VA-API doesn't work properly for some radeon drivers).
|
|
||||||
|
|
||||||
Video acceleration can then be enabled via:
|
|
||||||
chromium.override { enableVaapi = true; }
|
|
||||||
without rebuilding Chromium.
|
|
||||||
---
|
|
||||||
gpu/config/software_rendering_list.json | 16 ----------------
|
|
||||||
1 file changed, 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
|
|
||||||
index 22712bdbf38f..a06dd19a50e4 100644
|
|
||||||
--- a/gpu/config/software_rendering_list.json
|
|
||||||
+++ b/gpu/config/software_rendering_list.json
|
|
||||||
@@ -336,22 +336,6 @@
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "id": 48,
|
|
||||||
- "description": "Accelerated video decode is unavailable on Linux",
|
|
||||||
- "cr_bugs": [137247, 1032907],
|
|
||||||
- "os": {
|
|
||||||
- "type": "linux"
|
|
||||||
- },
|
|
||||||
- "exceptions": [
|
|
||||||
- {
|
|
||||||
- "machine_model_name": ["Chromecast"]
|
|
||||||
- }
|
|
||||||
- ],
|
|
||||||
- "features": [
|
|
||||||
- "accelerated_video_decode"
|
|
||||||
- ]
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
"id": 50,
|
|
||||||
"description": "Disable VMware software renderer on older Mesa",
|
|
||||||
"cr_bugs": [145531, 332596, 571899, 629434],
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
|
|
||||||
index f4e119d..d9775bd 100644
|
|
||||||
--- a/chrome/common/chrome_paths.cc
|
|
||||||
+++ b/chrome/common/chrome_paths.cc
|
|
||||||
@@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath>
|
|
||||||
g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
|
|
||||||
|
|
||||||
// Gets the path for internal plugins.
|
|
||||||
-bool GetInternalPluginsDirectory(base::FilePath* result) {
|
|
||||||
-#if defined(OS_MACOSX)
|
|
||||||
- // If called from Chrome, get internal plugins from a subdirectory of the
|
|
||||||
- // framework.
|
|
||||||
- if (base::mac::AmIBundled()) {
|
|
||||||
- *result = chrome::GetFrameworkBundlePath();
|
|
||||||
- DCHECK(!result->empty());
|
|
||||||
- *result = result->Append("Internet Plug-Ins");
|
|
||||||
- return true;
|
|
||||||
- }
|
|
||||||
- // In tests, just look in the module directory (below).
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
- // The rest of the world expects plugins in the module directory.
|
|
||||||
- return base::PathService::Get(base::DIR_MODULE, result);
|
|
||||||
+bool GetInternalPluginsDirectory(base::FilePath* result,
|
|
||||||
+ const std::string& ident) {
|
|
||||||
+ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident;
|
|
||||||
+ const char* value = getenv(full_env.c_str());
|
|
||||||
+ if (value == NULL)
|
|
||||||
+ return base::PathService::Get(base::DIR_MODULE, result);
|
|
||||||
+ else
|
|
||||||
+ *result = base::FilePath(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gets the path for bundled implementations of components. Note that these
|
|
||||||
@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) {
|
|
||||||
create_dir = true;
|
|
||||||
break;
|
|
||||||
case chrome::DIR_INTERNAL_PLUGINS:
|
|
||||||
- if (!GetInternalPluginsDirectory(&cur))
|
|
||||||
+ if (!GetInternalPluginsDirectory(&cur, "ALL"))
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case chrome::DIR_COMPONENTS:
|
|
||||||
@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) {
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case chrome::DIR_PEPPER_FLASH_PLUGIN:
|
|
||||||
- if (!GetInternalPluginsDirectory(&cur))
|
|
||||||
+ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
|
|
||||||
return false;
|
|
||||||
cur = cur.Append(kPepperFlashBaseDirectory);
|
|
||||||
break;
|
|
||||||
@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) {
|
|
||||||
cur = cur.DirName();
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
- if (!GetInternalPluginsDirectory(&cur))
|
|
||||||
+ if (!GetInternalPluginsDirectory(&cur, "PNACL"))
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
|
|
||||||
+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
|
|
||||||
@@ -13,7 +13,7 @@
|
|
||||||
|
|
||||||
#include "jpeglib.h" // for JPEG_MAX_DIMENSION
|
|
||||||
|
|
||||||
-#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
|
|
||||||
+#define WEBP_MAX_DIMENSION 16383
|
|
||||||
|
|
||||||
namespace blink {
|
|
||||||
|
|
|
@ -44,11 +44,11 @@ let
|
||||||
|
|
||||||
flash = stdenv.mkDerivation rec {
|
flash = stdenv.mkDerivation rec {
|
||||||
pname = "flashplayer-ppapi";
|
pname = "flashplayer-ppapi";
|
||||||
version = "32.0.0.433";
|
version = "32.0.0.445";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
||||||
sha256 = "1wfwnmai6wnwi6cfxwqix6n471jjyl6nc7p67sa7cfqwg16b53kx";
|
sha256 = "1r9vd210d2qp501q40pjx60mzah08rg0f8jk5rpp52ddajwggalv";
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{
|
{
|
||||||
"stable": {
|
"stable": {
|
||||||
"version": "85.0.4183.121",
|
"version": "86.0.4240.75",
|
||||||
"sha256": "0a1xn39kmvyfpal6pgnylpy30z0322p3v7sx6vxi0r2naiz58670",
|
"sha256": "1ddw4p9zfdzhi5hrd8x14k4w326znljzprnpfi2f917rlpnl2ynx",
|
||||||
"sha256bin64": "08vqf1v91703aik47344bl409rsl4myar9bsd2lsvzqncncwsaca"
|
"sha256bin64": "17isxkd80rccqim6izzl08vw4yr52qsk6djp1rmhhijzg9rsvghz"
|
||||||
},
|
},
|
||||||
"beta": {
|
"beta": {
|
||||||
"version": "86.0.4240.42",
|
"version": "86.0.4240.75",
|
||||||
"sha256": "06cfhiym9xmz2q86v6b6xcicrrp2pmr7karavylzz4fqvwd2v6fa",
|
"sha256": "1ddw4p9zfdzhi5hrd8x14k4w326znljzprnpfi2f917rlpnl2ynx",
|
||||||
"sha256bin64": "1z5zmdc2i31iimps7p5z43vv4qi83c8ljb7x68zc1rvf8x62p7xj"
|
"sha256bin64": "16snxdka5bkbvybx6x0dzgfbfaifv0jcc1dcny6vlqqp2fmb2v39"
|
||||||
},
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
"version": "87.0.4263.3",
|
"version": "87.0.4278.0",
|
||||||
"sha256": "1ybfrlm4417lpbg5qcwhq5p6nnxrw68wzyy5zvb1sg1ma8s9hhkk",
|
"sha256": "1ywmv4iwn2as7vk2n0pslnmr300fl5y809ynxiw5xqcx9j6i8w85",
|
||||||
"sha256bin64": "1f7a272kalglmdwmrrzb4iw3crvvpv3mhxca5jh75qpldn4gby6m"
|
"sha256bin64": "15dvwvk6l6n7l04085hr48hlvsijypasyk7d8iq3s6cxai3wx4cl"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
# Generated by debian-patches.sh from debian-patches.txt
|
|
||||||
let
|
|
||||||
prefix = "https://sources.debian.org/data/main/e/elinks/0.13.2-1/debian/patches";
|
|
||||||
in
|
|
||||||
[
|
|
||||||
{
|
|
||||||
url = "${prefix}/03_459467_ui.leds.enable_0.diff";
|
|
||||||
sha256 = "0l35lglmnvyzz3xyy18nksra14gsp7yc67rskbzmr61szg8b9jqr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/04_436817_nostrip.diff";
|
|
||||||
sha256 = "0ixvxaba1ww375gpdh7r67srp3xsfb5vyz2sfv1pgj6mczwg8v24";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/07_617713_cache_control.diff";
|
|
||||||
sha256 = "0drn4r33ywvmihr0drsp2jwz7mlf5z5fv8ra7fpkdavx45xqaf15";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/10-reproducible-build.diff";
|
|
||||||
sha256 = "024yp3xsh0hw29l1wikfmk9j3mqval6pdr4xi7rzffrlaknh58h5";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/14_debug_disable_Werror.diff";
|
|
||||||
sha256 = "0s620r88ikfljflb5nd133cww2wc0i85ag8lzpvrsmg0q00hfmax";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/16_POST_BUFFER_SIZE.diff";
|
|
||||||
sha256 = "17vkvy0d0rabmgk8iqwgdsrgjn6dbb9cf6760qbz82zlb37s09nh";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
url = "${prefix}/11-reproducible-build.diff";
|
|
||||||
sha256 = "1z17g9z68lh12fs6fkralfghh8bs1bs5mlq83d15l4bn3za3s0sl";
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,8 +0,0 @@
|
||||||
elinks/0.13.2-1
|
|
||||||
03_459467_ui.leds.enable_0.diff
|
|
||||||
04_436817_nostrip.diff
|
|
||||||
07_617713_cache_control.diff
|
|
||||||
10-reproducible-build.diff
|
|
||||||
14_debug_disable_Werror.diff
|
|
||||||
16_POST_BUFFER_SIZE.diff
|
|
||||||
11-reproducible-build.diff
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue