mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
Merge branch 'master' into staging
This commit is contained in:
commit
b86b7c04a3
@ -74,7 +74,6 @@ can do is write a simple Nix expression which sets up an environment for you,
|
|||||||
requiring you only to type `nix-shell`. Say we want to have Python 3.5, `numpy`
|
requiring you only to type `nix-shell`. Say we want to have Python 3.5, `numpy`
|
||||||
and `toolz`, like before, in an environment. With a `shell.nix` file
|
and `toolz`, like before, in an environment. With a `shell.nix` file
|
||||||
containing
|
containing
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
@ -101,22 +100,25 @@ On Nix all packages are built by functions. The main function in Nix for buildin
|
|||||||
Let's see how we would build the `toolz` package. According to [`python-packages.nix`](https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/python-packages.nix) `toolz` is build using
|
Let's see how we would build the `toolz` package. According to [`python-packages.nix`](https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/python-packages.nix) `toolz` is build using
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
toolz = buildPythonPackage rec{
|
{ # ...
|
||||||
name = "toolz-${version}";
|
|
||||||
version = "0.7.4";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl{
|
toolz = buildPythonPackage rec {
|
||||||
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
name = "toolz-${version}";
|
||||||
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
version = "0.7.4";
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
src = pkgs.fetchurl {
|
||||||
homepage = "http://github.com/pytoolz/toolz/";
|
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
||||||
description = "List processing tools and functional utilities";
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
license = licenses.bsd3;
|
};
|
||||||
maintainers = with maintainers; [ fridh ];
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/pytoolz/toolz/";
|
||||||
|
description = "List processing tools and functional utilities";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
What happens here? The function `buildPythonPackage` is called and as argument
|
What happens here? The function `buildPythonPackage` is called and as argument
|
||||||
@ -143,7 +145,7 @@ pkgs.python35Packages.buildPythonPackage rec {
|
|||||||
name = "toolz-${version}";
|
name = "toolz-${version}";
|
||||||
version = "0.8.0";
|
version = "0.8.0";
|
||||||
|
|
||||||
src = pkgs.fetchurl{
|
src = pkgs.fetchurl {
|
||||||
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
||||||
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479";
|
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479";
|
||||||
};
|
};
|
||||||
@ -174,7 +176,7 @@ with import <nixpkgs> {};
|
|||||||
name = "toolz-${version}";
|
name = "toolz-${version}";
|
||||||
version = "0.8.0";
|
version = "0.8.0";
|
||||||
|
|
||||||
src = pkgs.fetchurl{
|
src = pkgs.fetchurl {
|
||||||
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
||||||
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479";
|
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479";
|
||||||
};
|
};
|
||||||
@ -215,25 +217,28 @@ The following example shows which arguments are given to `buildPythonPackage` in
|
|||||||
order to build [`datashape`](https://github.com/blaze/datashape).
|
order to build [`datashape`](https://github.com/blaze/datashape).
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
datashape = buildPythonPackage rec {
|
{ # ...
|
||||||
name = "datashape-${version}";
|
|
||||||
version = "0.4.7";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
datashape = buildPythonPackage rec {
|
||||||
url = "mirror://pypi/D/DataShape/${name}.tar.gz";
|
name = "datashape-${version}";
|
||||||
sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278";
|
version = "0.4.7";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "mirror://pypi/D/DataShape/${name}.tar.gz";
|
||||||
|
sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = with self; [ pytest ];
|
||||||
|
propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://github.com/ContinuumIO/datashape;
|
||||||
|
description = "A data description language";
|
||||||
|
license = licenses.bsd2;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
}
|
||||||
buildInputs = with self; [ pytest ];
|
|
||||||
propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = https://github.com/ContinuumIO/datashape;
|
|
||||||
description = "A data description language";
|
|
||||||
license = licenses.bsd2;
|
|
||||||
maintainers = with maintainers; [ fridh ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
```
|
||||||
|
|
||||||
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
||||||
@ -247,23 +252,26 @@ Python bindings to `libxml2` and `libxslt`. These libraries are only required
|
|||||||
when building the bindings and are therefore added as `buildInputs`.
|
when building the bindings and are therefore added as `buildInputs`.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
lxml = buildPythonPackage rec {
|
{ # ...
|
||||||
name = "lxml-3.4.4";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
lxml = buildPythonPackage rec {
|
||||||
url = "mirror://pypi/l/lxml/${name}.tar.gz";
|
name = "lxml-3.4.4";
|
||||||
sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk";
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "mirror://pypi/l/lxml/${name}.tar.gz";
|
||||||
|
sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Pythonic binding for the libxml2 and libxslt libraries";
|
||||||
|
homepage = http://lxml.de;
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ sjourdois ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
}
|
||||||
buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Pythonic binding for the libxml2 and libxslt libraries";
|
|
||||||
homepage = http://lxml.de;
|
|
||||||
license = licenses.bsd3;
|
|
||||||
maintainers = with maintainers; [ sjourdois ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
```
|
||||||
|
|
||||||
In this example `lxml` and Nix are able to work out exactly where the relevant
|
In this example `lxml` and Nix are able to work out exactly where the relevant
|
||||||
@ -277,33 +285,37 @@ find each of them in a different folder, and therefore we have to set `LDFLAGS`
|
|||||||
and `CFLAGS`.
|
and `CFLAGS`.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
pyfftw = buildPythonPackage rec {
|
{ # ...
|
||||||
name = "pyfftw-${version}";
|
|
||||||
version = "0.9.2";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
pyfftw = buildPythonPackage rec {
|
||||||
url = "mirror://pypi/p/pyFFTW/pyFFTW-${version}.tar.gz";
|
name = "pyfftw-${version}";
|
||||||
sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074";
|
version = "0.9.2";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "mirror://pypi/p/pyFFTW/pyFFTW-${version}.tar.gz";
|
||||||
|
sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with self; [ numpy scipy ];
|
||||||
|
|
||||||
|
# Tests cannot import pyfftw. pyfftw works fine though.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
export LDFLAGS="-L${pkgs.fftw.dev}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib"
|
||||||
|
export CFLAGS="-I${pkgs.fftw.dev}/include -I${pkgs.fftwFloat.dev}/include -I${pkgs.fftwLongDouble.dev}/include"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
|
||||||
|
homepage = http://hgomersall.github.com/pyFFTW/;
|
||||||
|
license = with licenses; [ bsd2 bsd3 ];
|
||||||
|
maintainer = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
}
|
||||||
buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble];
|
|
||||||
|
|
||||||
propagatedBuildInputs = with self; [ numpy scipy ];
|
|
||||||
|
|
||||||
# Tests cannot import pyfftw. pyfftw works fine though.
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
LDFLAGS="-L${pkgs.fftw.dev}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib"
|
|
||||||
CFLAGS="-I${pkgs.fftw.dev}/include -I${pkgs.fftwFloat.dev}/include -I${pkgs.fftwLongDouble.dev}/include"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
|
|
||||||
homepage = http://hgomersall.github.com/pyFFTW/;
|
|
||||||
license = with licenses; [ bsd2 bsd3 ];
|
|
||||||
maintainer = with maintainers; [ fridh ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
```
|
||||||
Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
|
Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
|
||||||
|
|
||||||
@ -316,10 +328,7 @@ That way, you can run updated code without having to reinstall after each and ev
|
|||||||
Development mode is also available. Let's see how you can use it.
|
Development mode is also available. Let's see how you can use it.
|
||||||
|
|
||||||
In the previous Nix expression the source was fetched from an url. We can also refer to a local source instead using
|
In the previous Nix expression the source was fetched from an url. We can also refer to a local source instead using
|
||||||
|
`src = ./path/to/source/tree;`
|
||||||
```nix
|
|
||||||
src = ./path/to/source/tree;
|
|
||||||
```
|
|
||||||
|
|
||||||
If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
|
If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
|
||||||
is a local source, and if the local source has a `setup.py`, then development
|
is a local source, and if the local source has a `setup.py`, then development
|
||||||
@ -338,7 +347,7 @@ buildPythonPackage rec {
|
|||||||
name = "mypackage";
|
name = "mypackage";
|
||||||
src = ./path/to/package/source;
|
src = ./path/to/package/source;
|
||||||
propagatedBuildInputs = [ pytest numpy pkgs.libsndfile ];
|
propagatedBuildInputs = [ pytest numpy pkgs.libsndfile ];
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
It is important to note that due to how development mode is implemented on Nix it is not possible to have multiple packages simultaneously in development mode.
|
It is important to note that due to how development mode is implemented on Nix it is not possible to have multiple packages simultaneously in development mode.
|
||||||
@ -371,7 +380,7 @@ buildPythonPackage rec {
|
|||||||
name = "toolz-${version}";
|
name = "toolz-${version}";
|
||||||
version = "0.7.4";
|
version = "0.7.4";
|
||||||
|
|
||||||
src = pkgs.fetchurl{
|
src = pkgs.fetchurl {
|
||||||
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
||||||
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
};
|
};
|
||||||
@ -382,7 +391,7 @@ buildPythonPackage rec {
|
|||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ fridh ];
|
maintainers = with maintainers; [ fridh ];
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
It takes two arguments, `pkgs` and `buildPythonPackage`.
|
It takes two arguments, `pkgs` and `buildPythonPackage`.
|
||||||
@ -392,7 +401,10 @@ We now call this function using `callPackage` in the definition of our environme
|
|||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
( let
|
( let
|
||||||
toolz = pkgs.callPackage ~/path/to/toolz/release.nix { pkgs=pkgs; buildPythonPackage=pkgs.python35Packages.buildPythonPackage; };
|
toolz = pkgs.callPackage /path/to/toolz/release.nix {
|
||||||
|
pkgs = pkgs;
|
||||||
|
buildPythonPackage = pkgs.python35Packages.buildPythonPackage;
|
||||||
|
};
|
||||||
in pkgs.python35.withPackages (ps: [ ps.numpy toolz ])
|
in pkgs.python35.withPackages (ps: [ ps.numpy toolz ])
|
||||||
).env
|
).env
|
||||||
```
|
```
|
||||||
@ -474,22 +486,27 @@ The `buildPythonPackage` function is implemented in
|
|||||||
`pkgs/development/interpreters/python/build-python-package.nix`
|
`pkgs/development/interpreters/python/build-python-package.nix`
|
||||||
|
|
||||||
The following is an example:
|
The following is an example:
|
||||||
|
```nix
|
||||||
|
{ # ...
|
||||||
|
|
||||||
twisted = buildPythonPackage {
|
twisted = buildPythonPackage {
|
||||||
name = "twisted-8.1.0";
|
name = "twisted-8.1.0";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
||||||
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ self.ZopeInterface ];
|
propagatedBuildInputs = [ self.ZopeInterface ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://twistedmatrix.com/;
|
homepage = http://twistedmatrix.com/;
|
||||||
description = "Twisted, an event-driven networking engine written in Python";
|
description = "Twisted, an event-driven networking engine written in Python";
|
||||||
license = stdenv.lib.licenses.mit; };
|
license = stdenv.lib.licenses.mit;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
The `buildPythonPackage` mainly does four things:
|
The `buildPythonPackage` mainly does four things:
|
||||||
|
|
||||||
@ -539,29 +556,32 @@ Because with an application we're not interested in multiple version the prefix
|
|||||||
Python environments can be created using the low-level `pkgs.buildEnv` function.
|
Python environments can be created using the low-level `pkgs.buildEnv` function.
|
||||||
This example shows how to create an environment that has the Pyramid Web Framework.
|
This example shows how to create an environment that has the Pyramid Web Framework.
|
||||||
Saving the following as `default.nix`
|
Saving the following as `default.nix`
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
with import <nixpkgs> {};
|
python.buildEnv.override {
|
||||||
|
extraLibs = [ pkgs.pythonPackages.pyramid ];
|
||||||
python.buildEnv.override {
|
ignoreCollisions = true;
|
||||||
extraLibs = [ pkgs.pythonPackages.pyramid ];
|
}
|
||||||
ignoreCollisions = true;
|
```
|
||||||
}
|
|
||||||
|
|
||||||
and running `nix-build` will create
|
and running `nix-build` will create
|
||||||
|
```
|
||||||
/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env
|
/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env
|
||||||
|
```
|
||||||
|
|
||||||
with wrapped binaries in `bin/`.
|
with wrapped binaries in `bin/`.
|
||||||
|
|
||||||
You can also use the `env` attribute to create local environments with needed
|
You can also use the `env` attribute to create local environments with needed
|
||||||
packages installed. This is somewhat comparable to `virtualenv`. For example,
|
packages installed. This is somewhat comparable to `virtualenv`. For example,
|
||||||
running `nix-shell` with the following `shell.nix`
|
running `nix-shell` with the following `shell.nix`
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
with import <nixpkgs> {};
|
(python3.buildEnv.override {
|
||||||
|
extraLibs = with python3Packages; [ numpy requests2 ];
|
||||||
(python3.buildEnv.override {
|
}).env
|
||||||
extraLibs = with python3Packages; [ numpy requests2 ];
|
```
|
||||||
}).env
|
|
||||||
|
|
||||||
will drop you into a shell where Python will have the
|
will drop you into a shell where Python will have the
|
||||||
specified packages in its path.
|
specified packages in its path.
|
||||||
@ -576,30 +596,33 @@ specified packages in its path.
|
|||||||
#### python.withPackages function
|
#### python.withPackages function
|
||||||
|
|
||||||
The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality.
|
The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality.
|
||||||
It takes a function as an argument that is passed the set of python packages and returns the list
|
It takes a function as an argument that is passed the set of python packages and returns the list
|
||||||
of the packages to be included in the environment. Using the `withPackages` function, the previous
|
of the packages to be included in the environment. Using the `withPackages` function, the previous
|
||||||
example for the Pyramid Web Framework environment can be written like this:
|
example for the Pyramid Web Framework environment can be written like this:
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
with import <nixpkgs> {};
|
python.withPackages (ps: [ps.pyramid])
|
||||||
|
```
|
||||||
|
|
||||||
python.withPackages (ps: [ps.pyramid])
|
`withPackages` passes the correct package set for the specific interpreter version as an
|
||||||
|
|
||||||
`withPackages` passes the correct package set for the specific interpreter version as an
|
|
||||||
argument to the function. In the above example, `ps` equals `pythonPackages`.
|
argument to the function. In the above example, `ps` equals `pythonPackages`.
|
||||||
But you can also easily switch to using python3:
|
But you can also easily switch to using python3:
|
||||||
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
python3.withPackages (ps: [ps.pyramid])
|
python3.withPackages (ps: [ps.pyramid])
|
||||||
|
```
|
||||||
|
|
||||||
Now, `ps` is set to `python3Packages`, matching the version of the interpreter.
|
Now, `ps` is set to `python3Packages`, matching the version of the interpreter.
|
||||||
|
|
||||||
As `python.withPackages` simply uses `python.buildEnv` under the hood, it also supports the `env`
|
As `python.withPackages` simply uses `python.buildEnv` under the hood, it also supports the `env`
|
||||||
attribute. The `shell.nix` file from the previous section can thus be also written like this:
|
attribute. The `shell.nix` file from the previous section can thus be also written like this:
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
with import <nixpkgs> {};
|
(python33.withPackages (ps: [ps.numpy ps.requests2])).env
|
||||||
|
```
|
||||||
(python33.withPackages (ps: [ps.numpy ps.requests2])).env
|
|
||||||
|
|
||||||
In contrast to `python.buildEnv`, `python.withPackages` does not support the more advanced options
|
In contrast to `python.buildEnv`, `python.withPackages` does not support the more advanced options
|
||||||
such as `ignoreCollisions = true` or `postBuild`. If you need them, you have to use `python.buildEnv`.
|
such as `ignoreCollisions = true` or `postBuild`. If you need them, you have to use `python.buildEnv`.
|
||||||
@ -613,22 +636,24 @@ install -e . --prefix $TMPDIR/`for the package.
|
|||||||
Warning: `shellPhase` is executed only if `setup.py` exists.
|
Warning: `shellPhase` is executed only if `setup.py` exists.
|
||||||
|
|
||||||
Given a `default.nix`:
|
Given a `default.nix`:
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
with import <nixpkgs> {};
|
buildPythonPackage { name = "myproject";
|
||||||
|
|
||||||
buildPythonPackage { name = "myproject";
|
buildInputs = with pkgs.pythonPackages; [ pyramid ];
|
||||||
|
|
||||||
buildInputs = with pkgs.pythonPackages; [ pyramid ];
|
src = ./.; }
|
||||||
|
```
|
||||||
src = ./.; }
|
|
||||||
|
|
||||||
Running `nix-shell` with no arguments should give you
|
Running `nix-shell` with no arguments should give you
|
||||||
the environment in which the package would be built with
|
the environment in which the package would be built with
|
||||||
`nix-build`.
|
`nix-build`.
|
||||||
|
|
||||||
Shortcut to setup environments with C headers/libraries and python packages:
|
Shortcut to setup environments with C headers/libraries and python packages:
|
||||||
|
```shell
|
||||||
$ nix-shell -p pythonPackages.pyramid zlib libjpeg git
|
nix-shell -p pythonPackages.pyramid zlib libjpeg git
|
||||||
|
```
|
||||||
|
|
||||||
Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked.
|
Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked.
|
||||||
|
|
||||||
@ -676,7 +701,7 @@ with import <nixpkgs> {};
|
|||||||
pkgs.python35.withPackages (ps: with ps; [ numpy ipython ])
|
pkgs.python35.withPackages (ps: with ps; [ numpy ipython ])
|
||||||
```
|
```
|
||||||
and install it in your profile with
|
and install it in your profile with
|
||||||
```
|
```shell
|
||||||
nix-env -if build.nix
|
nix-env -if build.nix
|
||||||
```
|
```
|
||||||
Now you can use the Python interpreter, as well as the extra packages that you added to the environment.
|
Now you can use the Python interpreter, as well as the extra packages that you added to the environment.
|
||||||
@ -684,15 +709,19 @@ Now you can use the Python interpreter, as well as the extra packages that you a
|
|||||||
#### Environment defined in `~/.nixpkgs/config.nix`
|
#### Environment defined in `~/.nixpkgs/config.nix`
|
||||||
|
|
||||||
If you prefer to, you could also add the environment as a package override to the Nixpkgs set.
|
If you prefer to, you could also add the environment as a package override to the Nixpkgs set.
|
||||||
```
|
```nix
|
||||||
|
{ # ...
|
||||||
|
|
||||||
packageOverrides = pkgs: with pkgs; {
|
packageOverrides = pkgs: with pkgs; {
|
||||||
myEnv = python35.withPackages (ps: with ps; [ numpy ipython ]);
|
myEnv = python35.withPackages (ps: with ps; [ numpy ipython ]);
|
||||||
};
|
};
|
||||||
|
}
|
||||||
```
|
```
|
||||||
and install it in your profile with
|
and install it in your profile with
|
||||||
```
|
```shell
|
||||||
nix-env -iA nixpkgs.myEnv
|
nix-env -iA nixpkgs.myEnv
|
||||||
```
|
```
|
||||||
|
|
||||||
We're installing using the attribute path and assume the channels is named `nixpkgs`.
|
We're installing using the attribute path and assume the channels is named `nixpkgs`.
|
||||||
Note that I'm using the attribute path here.
|
Note that I'm using the attribute path here.
|
||||||
|
|
||||||
@ -701,9 +730,12 @@ Note that I'm using the attribute path here.
|
|||||||
For the sake of completeness, here's another example how to install the environment system-wide.
|
For the sake of completeness, here's another example how to install the environment system-wide.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
environment.systemPackages = with pkgs; [
|
{ # ...
|
||||||
(python35.withPackages(ps: with ps; [ numpy ipython ]))
|
|
||||||
];
|
environment.systemPackages = with pkgs; [
|
||||||
|
(python35.withPackages(ps: with ps; [ numpy ipython ]))
|
||||||
|
];
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### How to solve circular dependencies?
|
### How to solve circular dependencies?
|
||||||
@ -740,19 +772,18 @@ All packages in the Python package set will now use the updated `scipy` version.
|
|||||||
```nix
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
(
|
( let
|
||||||
let
|
packageOverrides = self: super: {
|
||||||
packageOverrides = self: super: {
|
scipy = super.scipy_0_17;
|
||||||
scipy = super.scipy_0_17;
|
};
|
||||||
};
|
in (pkgs.python35.override {inherit packageOverrides;}).withPackages (ps: [ps.blaze])
|
||||||
in (pkgs.python35.override {inherit packageOverrides;}).withPackages (ps: [ps.blaze])
|
|
||||||
).env
|
).env
|
||||||
```
|
```
|
||||||
The requested package `blaze` depends on `pandas` which itself depends on `scipy`.
|
The requested package `blaze` depends on `pandas` which itself depends on `scipy`.
|
||||||
|
|
||||||
If you want the whole of Nixpkgs to use your modifications, then you can use `overlays`
|
If you want the whole of Nixpkgs to use your modifications, then you can use `overlays`
|
||||||
as explained in this manual. In the following example we build a `inkscape` using a different version of `numpy`.
|
as explained in this manual. In the following example we build a `inkscape` using a different version of `numpy`.
|
||||||
```
|
```nix
|
||||||
let
|
let
|
||||||
pkgs = import <nixpkgs> {};
|
pkgs = import <nixpkgs> {};
|
||||||
newpkgs = import pkgs.path { overlays = [ (pkgsself: pkgssuper: {
|
newpkgs = import pkgs.path { overlays = [ (pkgsself: pkgssuper: {
|
||||||
@ -775,32 +806,32 @@ This is because files are included that depend on items in the Nix store which h
|
|||||||
The command `bdist_wheel` takes into account `SOURCE_DATE_EPOCH`, and `nix-shell` sets this to 1. By setting it to a value corresponding to 1980 or later, or by unsetting it, it is possible to build wheels.
|
The command `bdist_wheel` takes into account `SOURCE_DATE_EPOCH`, and `nix-shell` sets this to 1. By setting it to a value corresponding to 1980 or later, or by unsetting it, it is possible to build wheels.
|
||||||
|
|
||||||
Use 1980 as timestamp:
|
Use 1980 as timestamp:
|
||||||
```
|
```shell
|
||||||
nix-shell --run "SOURCE_DATE_EPOCH=315532800 python3 setup.py bdist_wheel"
|
nix-shell --run "SOURCE_DATE_EPOCH=315532800 python3 setup.py bdist_wheel"
|
||||||
```
|
```
|
||||||
or the current time:
|
or the current time:
|
||||||
```
|
```shell
|
||||||
nix-shell --run "SOURCE_DATE_EPOCH=$(date +%s) python3 setup.py bdist_wheel"
|
nix-shell --run "SOURCE_DATE_EPOCH=$(date +%s) python3 setup.py bdist_wheel"
|
||||||
```
|
```
|
||||||
or unset:
|
or unset:
|
||||||
```
|
```shell
|
||||||
nix-shell --run "unset SOURCE_DATE_EPOCH; python3 setup.py bdist_wheel"
|
nix-shell --run "unset SOURCE_DATE_EPOCH; python3 setup.py bdist_wheel"
|
||||||
```
|
```
|
||||||
|
|
||||||
### `install_data` / `data_files` problems
|
### `install_data` / `data_files` problems
|
||||||
|
|
||||||
If you get the following error:
|
If you get the following error:
|
||||||
|
```
|
||||||
could not create '/nix/store/6l1bvljpy8gazlsw2aw9skwwp4pmvyxw-python-2.7.8/etc':
|
could not create '/nix/store/6l1bvljpy8gazlsw2aw9skwwp4pmvyxw-python-2.7.8/etc':
|
||||||
Permission denied
|
Permission denied
|
||||||
|
```
|
||||||
This is a [known bug](https://github.com/pypa/setuptools/issues/130) in setuptools.
|
This is a [known bug](https://github.com/pypa/setuptools/issues/130) in `setuptools`.
|
||||||
Setuptools `install_data` does not respect `--prefix`. An example of such package using the feature is `pkgs/tools/X11/xpra/default.nix`.
|
Setuptools `install_data` does not respect `--prefix`. An example of such package using the feature is `pkgs/tools/X11/xpra/default.nix`.
|
||||||
As workaround install it as an extra `preInstall` step:
|
As workaround install it as an extra `preInstall` step:
|
||||||
|
```shell
|
||||||
${python.interpreter} setup.py install_data --install-dir=$out --root=$out
|
${python.interpreter} setup.py install_data --install-dir=$out --root=$out
|
||||||
sed -i '/ = data\_files/d' setup.py
|
sed -i '/ = data\_files/d' setup.py
|
||||||
|
```
|
||||||
|
|
||||||
### Rationale of non-existent global site-packages
|
### Rationale of non-existent global site-packages
|
||||||
|
|
||||||
@ -824,11 +855,11 @@ and install python modules through `pip` the traditional way.
|
|||||||
|
|
||||||
Create this `default.nix` file, together with a `requirements.txt` and simply execute `nix-shell`.
|
Create this `default.nix` file, together with a `requirements.txt` and simply execute `nix-shell`.
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
with pkgs.python27Packages;
|
with pkgs.python27Packages;
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "impurePythonEnv";
|
name = "impurePythonEnv";
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
# these packages are required for virtualenv and pip to work:
|
# these packages are required for virtualenv and pip to work:
|
||||||
@ -836,10 +867,10 @@ stdenv.mkDerivation {
|
|||||||
python27Full
|
python27Full
|
||||||
python27Packages.virtualenv
|
python27Packages.virtualenv
|
||||||
python27Packages.pip
|
python27Packages.pip
|
||||||
# the following packages are related to the dependencies of your python
|
# the following packages are related to the dependencies of your python
|
||||||
# project.
|
# project.
|
||||||
# In this particular example the python modules listed in the
|
# In this particular example the python modules listed in the
|
||||||
# requirements.tx require the following packages to be installed locally
|
# requirements.tx require the following packages to be installed locally
|
||||||
# in order to compile any binary extensions they may require.
|
# in order to compile any binary extensions they may require.
|
||||||
#
|
#
|
||||||
taglib
|
taglib
|
||||||
@ -854,7 +885,7 @@ stdenv.mkDerivation {
|
|||||||
shellHook = ''
|
shellHook = ''
|
||||||
# set SOURCE_DATE_EPOCH so that we can use python wheels
|
# set SOURCE_DATE_EPOCH so that we can use python wheels
|
||||||
SOURCE_DATE_EPOCH=$(date +%s)
|
SOURCE_DATE_EPOCH=$(date +%s)
|
||||||
virtualenv --no-setuptools venv
|
virtualenv --no-setuptools venv
|
||||||
export PATH=$PWD/venv/bin:$PATH
|
export PATH=$PWD/venv/bin:$PATH
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
'';
|
'';
|
||||||
@ -862,7 +893,7 @@ stdenv.mkDerivation {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Note that the `pip install` is an imperative action. So every time `nix-shell`
|
Note that the `pip install` is an imperative action. So every time `nix-shell`
|
||||||
is executed it will attempt to download the python modules listed in
|
is executed it will attempt to download the python modules listed in
|
||||||
requirements.txt. However these will be cached locally within the `virtualenv`
|
requirements.txt. However these will be cached locally within the `virtualenv`
|
||||||
folder and not downloaded again.
|
folder and not downloaded again.
|
||||||
|
|
||||||
|
@ -34,6 +34,9 @@ let
|
|||||||
sandbox = import ./sandbox.nix;
|
sandbox = import ./sandbox.nix;
|
||||||
fetchers = import ./fetchers.nix;
|
fetchers = import ./fetchers.nix;
|
||||||
|
|
||||||
|
# Eval-time filesystem handling
|
||||||
|
filesystem = import ./filesystem.nix;
|
||||||
|
|
||||||
in
|
in
|
||||||
{ inherit trivial
|
{ inherit trivial
|
||||||
attrsets lists strings stringsWithDeps
|
attrsets lists strings stringsWithDeps
|
||||||
@ -41,7 +44,7 @@ in
|
|||||||
modules options types
|
modules options types
|
||||||
licenses platforms systems
|
licenses platforms systems
|
||||||
debug generators misc
|
debug generators misc
|
||||||
sandbox fetchers;
|
sandbox fetchers filesystem;
|
||||||
}
|
}
|
||||||
# !!! don't include everything at top-level; perhaps only the most
|
# !!! don't include everything at top-level; perhaps only the most
|
||||||
# commonly used functions.
|
# commonly used functions.
|
||||||
|
26
lib/filesystem.nix
Normal file
26
lib/filesystem.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{ # locateDominatingFile : RegExp
|
||||||
|
# -> Path
|
||||||
|
# -> Nullable { path : Path;
|
||||||
|
# matches : [ MatchResults ];
|
||||||
|
# }
|
||||||
|
# Find the first directory containing a file matching 'pattern'
|
||||||
|
# upward from a given 'file'.
|
||||||
|
# Returns 'null' if no directories contain a file matching 'pattern'.
|
||||||
|
locateDominatingFile = pattern: file:
|
||||||
|
let go = path:
|
||||||
|
let files = builtins.attrNames (builtins.readDir path);
|
||||||
|
matches = builtins.filter (match: match != null)
|
||||||
|
(map (builtins.match pattern) files);
|
||||||
|
in
|
||||||
|
if builtins.length matches != 0
|
||||||
|
then { inherit path matches; }
|
||||||
|
else if path == /.
|
||||||
|
then null
|
||||||
|
else go (dirOf path);
|
||||||
|
parent = dirOf file;
|
||||||
|
isDir =
|
||||||
|
let base = baseNameOf file;
|
||||||
|
type = (builtins.readDir parent).${base} or null;
|
||||||
|
in file == /. || type == "directory";
|
||||||
|
in go (if isDir then file else parent);
|
||||||
|
}
|
@ -223,6 +223,7 @@
|
|||||||
jgeerds = "Jascha Geerds <jascha@jgeerds.name>";
|
jgeerds = "Jascha Geerds <jascha@jgeerds.name>";
|
||||||
jgertm = "Tim Jaeger <jger.tm@gmail.com>";
|
jgertm = "Tim Jaeger <jger.tm@gmail.com>";
|
||||||
jgillich = "Jakob Gillich <jakob@gillich.me>";
|
jgillich = "Jakob Gillich <jakob@gillich.me>";
|
||||||
|
jhhuh = "Ji-Haeng Huh <jhhuh.note@gmail.com>";
|
||||||
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
|
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
|
||||||
joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
|
joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
|
||||||
joamaki = "Jussi Maki <joamaki@gmail.com>";
|
joamaki = "Jussi Maki <joamaki@gmail.com>";
|
||||||
@ -352,6 +353,7 @@
|
|||||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||||
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
||||||
|
nthorne = "Niklas Thörne <notrupertthorne@gmail.com>";
|
||||||
obadz = "obadz <obadz-nixos@obadz.com>";
|
obadz = "obadz <obadz-nixos@obadz.com>";
|
||||||
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
||||||
odi = "Oliver Dunkl <oliver.dunkl@gmail.com>";
|
odi = "Oliver Dunkl <oliver.dunkl@gmail.com>";
|
||||||
|
@ -37,7 +37,4 @@ in
|
|||||||
vm = vmConfig.system.build.vm;
|
vm = vmConfig.system.build.vm;
|
||||||
|
|
||||||
vmWithBootLoader = vmWithBootLoaderConfig.system.build.vm;
|
vmWithBootLoader = vmWithBootLoaderConfig.system.build.vm;
|
||||||
|
|
||||||
# The following are used by nixos-rebuild.
|
|
||||||
nixFallback = pkgs.nixUnstable.out;
|
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ latter might look like this:
|
|||||||
|
|
||||||
{ services.xserver.enable = true;
|
{ services.xserver.enable = true;
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ Otherwise, you can only log into a plain undecorated
|
|||||||
<command>xterm</command> window. Thus you should pick one or more of
|
<command>xterm</command> window. Thus you should pick one or more of
|
||||||
the following lines:
|
the following lines:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
services.xserver.desktopManager.xfce.enable = true;
|
services.xserver.desktopManager.xfce.enable = true;
|
||||||
services.xserver.desktopManager.gnome3.enable = true;
|
services.xserver.desktopManager.gnome3.enable = true;
|
||||||
services.xserver.windowManager.xmonad.enable = true;
|
services.xserver.windowManager.xmonad.enable = true;
|
||||||
|
@ -9,10 +9,10 @@
|
|||||||
<para>
|
<para>
|
||||||
To enable the Xfce Desktop Environment, set
|
To enable the Xfce Desktop Environment, set
|
||||||
<programlisting>
|
<programlisting>
|
||||||
services.xserver.desktopManager = {
|
services.xserver.desktopManager = {
|
||||||
xfce.enable = true;
|
xfce.enable = true;
|
||||||
default = "xfce";
|
default = "xfce";
|
||||||
};
|
};
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -20,13 +20,13 @@
|
|||||||
Optionally, <emphasis>compton</emphasis>
|
Optionally, <emphasis>compton</emphasis>
|
||||||
can be enabled for nice graphical effects, some example settings:
|
can be enabled for nice graphical effects, some example settings:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
services.compton = {
|
services.compton = {
|
||||||
enable = true;
|
enable = true;
|
||||||
fade = true;
|
fade = true;
|
||||||
inactiveOpacity = "0.9";
|
inactiveOpacity = "0.9";
|
||||||
shadow = true;
|
shadow = true;
|
||||||
fadeDelta = 4;
|
fadeDelta = 4;
|
||||||
};
|
};
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -34,16 +34,16 @@
|
|||||||
Some Xfce programs are not installed automatically.
|
Some Xfce programs are not installed automatically.
|
||||||
To install them manually (system wide), put them into your
|
To install them manually (system wide), put them into your
|
||||||
<literal>environment.systemPackages</literal>.
|
<literal>environment.systemPackages</literal>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
NixOS’s default <emphasis>display manager</emphasis>is SLiM.
|
NixOS’s default <emphasis>display manager</emphasis> is SLiM.
|
||||||
(DM is the program that provides a graphical login prompt
|
(DM is the program that provides a graphical login prompt
|
||||||
and manages the X server.)
|
and manages the X server.)
|
||||||
You can, for example, select KDE’s
|
You can, for example, select KDE’s
|
||||||
<command>sddm</command> instead:
|
<command>sddm</command> instead:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<emphasis>Thunar</emphasis>
|
<emphasis>Thunar</emphasis>
|
||||||
volume support, put
|
volume support, put
|
||||||
<programlisting>
|
<programlisting>
|
||||||
services.xserver.desktopManager.xfce.enable = true;
|
services.xserver.desktopManager.xfce.enable = true;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
into your <emphasis>configuration.nix</emphasis>.
|
into your <emphasis>configuration.nix</emphasis>.
|
||||||
</para>
|
</para>
|
||||||
@ -84,10 +84,10 @@
|
|||||||
Thunar and/or the desktop takes time to show up.
|
Thunar and/or the desktop takes time to show up.
|
||||||
|
|
||||||
Thunar will spit out this kind of message on start
|
Thunar will spit out this kind of message on start
|
||||||
(look at journalctl --user -b).
|
(look at <command>journalctl --user -b</command>).
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.UDisks2VolumeMonitor is not supported
|
Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.UDisks2VolumeMonitor is not supported
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
This is caused by some needed GNOME services not running.
|
This is caused by some needed GNOME services not running.
|
||||||
@ -95,7 +95,7 @@
|
|||||||
the Advanced tab of the Session and Startup settings panel.
|
the Advanced tab of the Session and Startup settings panel.
|
||||||
Alternatively, you can run this command to do the same thing.
|
Alternatively, you can run this command to do the same thing.
|
||||||
<programlisting>
|
<programlisting>
|
||||||
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
|
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
|
||||||
</programlisting>
|
</programlisting>
|
||||||
A log-out and re-log will be needed for this to take effect.
|
A log-out and re-log will be needed for this to take effect.
|
||||||
</para>
|
</para>
|
||||||
|
@ -271,16 +271,6 @@ following incompatible changes:</para>
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Modules can now be disabled by using <link
|
|
||||||
xlink:href="https://nixos.org/nixpkgs/manual/#sec-replace-modules">
|
|
||||||
disabledModules</link>, allowing another to take it's place. This can be
|
|
||||||
used to import a set of modules from another channel while keeping the
|
|
||||||
rest of the system on a stable release.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,10 +39,17 @@ following incompatible changes:</para>
|
|||||||
<para>Other notable improvements:</para>
|
<para>Other notable improvements:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
Modules can now be disabled by using <link
|
||||||
|
xlink:href="https://nixos.org/nixpkgs/manual/#sec-replace-modules">
|
||||||
|
disabledModules</link>, allowing another to take it's place. This can be
|
||||||
|
used to import a set of modules from another channel while keeping the
|
||||||
|
rest of the system on a stable release.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
@ -274,6 +274,8 @@ in {
|
|||||||
RestartSec = "500ms";
|
RestartSec = "500ms";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.variables.PULSE_COOKIE = "${stateDir}/.config/pulse/cookie";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ with lib;
|
|||||||
autoLogin = true;
|
autoLogin = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopManager.kde5 = {
|
desktopManager.plasma5 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableQt4Support = false;
|
enableQt4Support = false;
|
||||||
};
|
};
|
||||||
@ -66,7 +66,7 @@ with lib;
|
|||||||
in ''
|
in ''
|
||||||
mkdir -p /root/Desktop
|
mkdir -p /root/Desktop
|
||||||
ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop
|
ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop
|
||||||
ln -sfT ${pkgs.kdeApplications.konsole}/share/applications/org.kde.konsole.desktop /root/Desktop/org.kde.konsole.desktop
|
ln -sfT ${pkgs.konsole}/share/applications/org.kde.konsole.desktop /root/Desktop/org.kde.konsole.desktop
|
||||||
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop
|
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -607,7 +607,7 @@ $bootLoaderConfig
|
|||||||
|
|
||||||
# Enable the KDE Desktop Environment.
|
# Enable the KDE Desktop Environment.
|
||||||
# services.xserver.displayManager.sddm.enable = true;
|
# services.xserver.displayManager.sddm.enable = true;
|
||||||
# services.xserver.desktopManager.kde5.enable = true;
|
# services.xserver.desktopManager.plasma5.enable = true;
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
# users.extraUsers.guest = {
|
# users.extraUsers.guest = {
|
||||||
|
@ -278,24 +278,22 @@ if [ -n "$buildNix" ]; then
|
|||||||
echo "building Nix..." >&2
|
echo "building Nix..." >&2
|
||||||
nixDrv=
|
nixDrv=
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A config.nix.package.out "${extraBuildFlags[@]}")"; then
|
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A config.nix.package.out "${extraBuildFlags[@]}")"; then
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A nixFallback "${extraBuildFlags[@]}")"; then
|
if ! nixDrv="$(nix-instantiate '<nixpkgs>' --add-root $tmpDir/nix.drv --indirect -A nix "${extraBuildFlags[@]}")"; then
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs>' --add-root $tmpDir/nix.drv --indirect -A nix "${extraBuildFlags[@]}")"; then
|
nixStorePath="$(prebuiltNix "$(uname -m)")"
|
||||||
nixStorePath="$(prebuiltNix "$(uname -m)")"
|
if ! nix-store -r $nixStorePath --add-root $tmpDir/nix --indirect \
|
||||||
if ! nix-store -r $nixStorePath --add-root $tmpDir/nix --indirect \
|
--option extra-binary-caches https://cache.nixos.org/; then
|
||||||
--option extra-binary-caches https://cache.nixos.org/; then
|
echo "warning: don't know how to get latest Nix" >&2
|
||||||
|
fi
|
||||||
|
# Older version of nix-store -r don't support --add-root.
|
||||||
|
[ -e $tmpDir/nix ] || ln -sf $nixStorePath $tmpDir/nix
|
||||||
|
if [ -n "$buildHost" ]; then
|
||||||
|
remoteNixStorePath="$(prebuiltNix "$(buildHostCmd uname -m)")"
|
||||||
|
remoteNix="$remoteNixStorePath/bin"
|
||||||
|
if ! buildHostCmd nix-store -r $remoteNixStorePath \
|
||||||
|
--option extra-binary-caches https://cache.nixos.org/ >/dev/null; then
|
||||||
|
remoteNix=
|
||||||
echo "warning: don't know how to get latest Nix" >&2
|
echo "warning: don't know how to get latest Nix" >&2
|
||||||
fi
|
fi
|
||||||
# Older version of nix-store -r don't support --add-root.
|
|
||||||
[ -e $tmpDir/nix ] || ln -sf $nixStorePath $tmpDir/nix
|
|
||||||
if [ -n "$buildHost" ]; then
|
|
||||||
remoteNixStorePath="$(prebuiltNix "$(buildHostCmd uname -m)")"
|
|
||||||
remoteNix="$remoteNixStorePath/bin"
|
|
||||||
if ! buildHostCmd nix-store -r $remoteNixStorePath \
|
|
||||||
--option extra-binary-caches https://cache.nixos.org/ >/dev/null; then
|
|
||||||
remoteNix=
|
|
||||||
echo "warning: don't know how to get latest Nix" >&2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -288,6 +288,7 @@
|
|||||||
kresd = 270;
|
kresd = 270;
|
||||||
rpc = 271;
|
rpc = 271;
|
||||||
geoip = 272;
|
geoip = 272;
|
||||||
|
fcron = 273;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -545,6 +546,7 @@
|
|||||||
kresd = 270;
|
kresd = 270;
|
||||||
#rpc = 271; # unused
|
#rpc = 271; # unused
|
||||||
#geoip = 272; # unused
|
#geoip = 272; # unused
|
||||||
|
fcron = 273;
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -571,6 +571,7 @@
|
|||||||
./services/x11/display-managers/lightdm.nix
|
./services/x11/display-managers/lightdm.nix
|
||||||
./services/x11/display-managers/sddm.nix
|
./services/x11/display-managers/sddm.nix
|
||||||
./services/x11/display-managers/slim.nix
|
./services/x11/display-managers/slim.nix
|
||||||
|
./services/x11/display-managers/xpra.nix
|
||||||
./services/x11/hardware/libinput.nix
|
./services/x11/hardware/libinput.nix
|
||||||
./services/x11/hardware/multitouch.nix
|
./services/x11/hardware/multitouch.nix
|
||||||
./services/x11/hardware/synaptics.nix
|
./services/x11/hardware/synaptics.nix
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# This module defines a NixOS configuration that contains X11 and
|
# This module defines a NixOS configuration with the Plasma 5 desktop.
|
||||||
# KDE 4. It's used by the graphical installation CD.
|
# It's used by the graphical installation CD.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
@ -7,7 +7,7 @@
|
|||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
displayManager.sddm.enable = true;
|
displayManager.sddm.enable = true;
|
||||||
desktopManager.kde5.enable = true;
|
desktopManager.plasma5.enable = true;
|
||||||
synaptics.enable = true; # for touchpad support on many laptops
|
synaptics.enable = true; # for touchpad support on many laptops
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -214,8 +214,8 @@
|
|||||||
GRKERNSEC_CONFIG_SERVER y
|
GRKERNSEC_CONFIG_SERVER y
|
||||||
GRKERNSEC_CONFIG_SECURITY y
|
GRKERNSEC_CONFIG_SECURITY y
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -76,6 +76,7 @@ in {
|
|||||||
description = "Kubernetes package to use.";
|
description = "Kubernetes package to use.";
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.kubernetes;
|
default = pkgs.kubernetes;
|
||||||
|
defaultText = "pkgs.kubernetes";
|
||||||
};
|
};
|
||||||
|
|
||||||
verbose = mkOption {
|
verbose = mkOption {
|
||||||
|
@ -28,7 +28,7 @@ let
|
|||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
''
|
''
|
||||||
else pkgs.writeText "master.cfg" cfg.masterCfg;
|
else cfg.masterCfg;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
@ -66,13 +66,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
masterCfg = mkOption {
|
masterCfg = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.path;
|
||||||
description = ''
|
description = "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
|
||||||
Optionally pass raw master.cfg file as string.
|
|
||||||
Other options in this configuration will be ignored.
|
|
||||||
'';
|
|
||||||
default = null;
|
default = null;
|
||||||
example = "BuildmasterConfig = c = {}";
|
example = "/etc/nixos/buildbot/master.cfg";
|
||||||
};
|
};
|
||||||
|
|
||||||
schedulers = mkOption {
|
schedulers = mkOption {
|
||||||
@ -88,7 +85,7 @@ in {
|
|||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = "List of Builders.";
|
description = "List of Builders.";
|
||||||
default = [
|
default = [
|
||||||
"util.BuilderConfig(name='runtests',workernames=['default-worker'],factory=factory)"
|
"util.BuilderConfig(name='runtests',workernames=['example-worker'],factory=factory)"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -183,16 +180,14 @@ in {
|
|||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.buildbot-ui;
|
default = pkgs.buildbot-ui;
|
||||||
description = ''
|
defaultText = "pkgs.buildbot-ui";
|
||||||
Package to use for buildbot.
|
description = "Package to use for buildbot.";
|
||||||
<literal>buildbot-full</literal> is required in order to use local workers.
|
example = literalExample "pkgs.buildbot-full";
|
||||||
'';
|
|
||||||
example = pkgs.buildbot-full;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = mkOption {
|
packages = mkOption {
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ pkgs.git ];
|
example = literalExample "[ pkgs.git ]";
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
description = "Packages to add to PATH for the buildbot process.";
|
description = "Packages to add to PATH for the buildbot process.";
|
||||||
};
|
};
|
||||||
|
@ -68,13 +68,14 @@ in {
|
|||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.buildbot-worker;
|
default = pkgs.buildbot-worker;
|
||||||
|
defaultText = "pkgs.buildbot-worker";
|
||||||
description = "Package to use for buildbot worker.";
|
description = "Package to use for buildbot worker.";
|
||||||
example = pkgs.buildbot-worker;
|
example = literalExample "pkgs.buildbot-worker";
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = mkOption {
|
packages = mkOption {
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ pkgs.git ];
|
example = literalExample "[ pkgs.git ]";
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
description = "Packages to add to PATH for the buildbot process.";
|
description = "Packages to add to PATH for the buildbot process.";
|
||||||
};
|
};
|
||||||
@ -100,14 +101,11 @@ in {
|
|||||||
|
|
||||||
systemd.services.buildbot-worker = {
|
systemd.services.buildbot-worker = {
|
||||||
description = "Buildbot Worker.";
|
description = "Buildbot Worker.";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" "buildbot-master.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
wants = [ "buildbot-master.service" ];
|
|
||||||
path = cfg.packages;
|
path = cfg.packages;
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
# NOTE: ensure master has time to start in case running on localhost
|
|
||||||
${pkgs.coreutils}/bin/sleep 4
|
|
||||||
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir}
|
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir}
|
||||||
${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass}
|
${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass}
|
||||||
'';
|
'';
|
||||||
|
@ -29,6 +29,22 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
accessUser = mkOption {
|
||||||
|
default = "";
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
User id in Jenkins used to reload config.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
accessToken = mkOption {
|
||||||
|
default = "";
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
User token in Jenkins used to reload config.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
yamlJobs = mkOption {
|
yamlJobs = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
@ -110,6 +126,11 @@ in {
|
|||||||
# Stamp file is placed in $JENKINS_HOME/jobs/$JOB_NAME/ to indicate
|
# Stamp file is placed in $JENKINS_HOME/jobs/$JOB_NAME/ to indicate
|
||||||
# ownership. Enables tracking and removal of stale jobs.
|
# ownership. Enables tracking and removal of stale jobs.
|
||||||
ownerStamp = ".config-xml-managed-by-nixos-jenkins-job-builder";
|
ownerStamp = ".config-xml-managed-by-nixos-jenkins-job-builder";
|
||||||
|
reloadScript = ''
|
||||||
|
echo "Asking Jenkins to reload config"
|
||||||
|
CRUMB=$(curl -s 'http://${cfg.accessUser}:${cfg.accessToken}@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
|
||||||
|
curl --silent -X POST -H "$CRUMB" http://${cfg.accessUser}:${cfg.accessToken}@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
rm -rf ${jobBuilderOutputDir}
|
rm -rf ${jobBuilderOutputDir}
|
||||||
@ -142,10 +163,7 @@ in {
|
|||||||
echo "Deleting stale job \"$jobname\""
|
echo "Deleting stale job \"$jobname\""
|
||||||
rm -rf "$jobdir"
|
rm -rf "$jobdir"
|
||||||
done
|
done
|
||||||
|
'' + (if cfg.accessUser != "" then reloadScript else "");
|
||||||
echo "Asking Jenkins to reload config"
|
|
||||||
curl --silent -X POST http://${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload
|
|
||||||
'';
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = jenkinsCfg.user;
|
User = jenkinsCfg.user;
|
||||||
RuntimeDirectory = "jenkins-job-builder";
|
RuntimeDirectory = "jenkins-job-builder";
|
||||||
|
@ -68,10 +68,10 @@ in
|
|||||||
";
|
";
|
||||||
example = literalExample ''
|
example = literalExample ''
|
||||||
'''
|
'''
|
||||||
include ${pkgs.openldap.out}/etc/openldap/schema/core.schema
|
include ${pkgs.openldap.out}/etc/schema/core.schema
|
||||||
include ${pkgs.openldap.out}/etc/openldap/schema/cosine.schema
|
include ${pkgs.openldap.out}/etc/schema/cosine.schema
|
||||||
include ${pkgs.openldap.out}/etc/openldap/schema/inetorgperson.schema
|
include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema
|
||||||
include ${pkgs.openldap.out}/etc/openldap/schema/nis.schema
|
include ${pkgs.openldap.out}/etc/schema/nis.schema
|
||||||
|
|
||||||
database bdb
|
database bdb
|
||||||
suffix dc=example,dc=org
|
suffix dc=example,dc=org
|
||||||
|
@ -25,6 +25,7 @@ in {
|
|||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = pkgs.fluentd;
|
default = pkgs.fluentd;
|
||||||
|
defaultText = "pkgs.fluentd";
|
||||||
description = "The fluentd package to use.";
|
description = "The fluentd package to use.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,6 +8,8 @@ let
|
|||||||
|
|
||||||
nix = cfg.package.out;
|
nix = cfg.package.out;
|
||||||
|
|
||||||
|
isNix112 = versionAtLeast (getVersion nix) "1.12pre4997";
|
||||||
|
|
||||||
makeNixBuildUser = nr:
|
makeNixBuildUser = nr:
|
||||||
{ name = "nixbld${toString nr}";
|
{ name = "nixbld${toString nr}";
|
||||||
description = "Nix build user ${toString nr}";
|
description = "Nix build user ${toString nr}";
|
||||||
@ -162,22 +164,23 @@ in
|
|||||||
buildMachines = mkOption {
|
buildMachines = mkOption {
|
||||||
type = types.listOf types.attrs;
|
type = types.listOf types.attrs;
|
||||||
default = [];
|
default = [];
|
||||||
example = [
|
example = literalExample ''
|
||||||
{ hostName = "voila.labs.cs.uu.nl";
|
[ { hostName = "voila.labs.cs.uu.nl";
|
||||||
sshUser = "nix";
|
sshUser = "nix";
|
||||||
sshKey = "/root/.ssh/id_buildfarm";
|
sshKey = "/root/.ssh/id_buildfarm";
|
||||||
system = "powerpc-darwin";
|
system = "powerpc-darwin";
|
||||||
maxJobs = 1;
|
maxJobs = 1;
|
||||||
}
|
}
|
||||||
{ hostName = "linux64.example.org";
|
{ hostName = "linux64.example.org";
|
||||||
sshUser = "buildfarm";
|
sshUser = "buildfarm";
|
||||||
sshKey = "/root/.ssh/id_buildfarm";
|
sshKey = "/root/.ssh/id_buildfarm";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
maxJobs = 2;
|
maxJobs = 2;
|
||||||
supportedFeatures = [ "kvm" ];
|
supportedFeatures = [ "kvm" ];
|
||||||
mandatoryFeatures = [ "perf" ];
|
mandatoryFeatures = [ "perf" ];
|
||||||
}
|
}
|
||||||
];
|
]
|
||||||
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
This option lists the machines to be used if distributed
|
This option lists the machines to be used if distributed
|
||||||
builds are enabled (see
|
builds are enabled (see
|
||||||
@ -380,7 +383,9 @@ in
|
|||||||
|
|
||||||
nix.envVars =
|
nix.envVars =
|
||||||
{ NIX_CONF_DIR = "/etc/nix";
|
{ NIX_CONF_DIR = "/etc/nix";
|
||||||
|
}
|
||||||
|
|
||||||
|
// optionalAttrs (!isNix112) {
|
||||||
# Enable the copy-from-other-stores substituter, which allows
|
# Enable the copy-from-other-stores substituter, which allows
|
||||||
# builds to be sped up by copying build results from remote
|
# builds to be sped up by copying build results from remote
|
||||||
# Nix stores. To do this, mount the remote file system on a
|
# Nix stores. To do this, mount the remote file system on a
|
||||||
@ -389,9 +394,11 @@ in
|
|||||||
}
|
}
|
||||||
|
|
||||||
// optionalAttrs cfg.distributedBuilds {
|
// optionalAttrs cfg.distributedBuilds {
|
||||||
NIX_BUILD_HOOK = "${nix}/libexec/nix/build-remote.pl";
|
NIX_BUILD_HOOK =
|
||||||
NIX_REMOTE_SYSTEMS = "/etc/nix/machines";
|
if isNix112 then
|
||||||
NIX_CURRENT_LOAD = "/run/nix/current-load";
|
"${nix}/libexec/nix/build-remote"
|
||||||
|
else
|
||||||
|
"${nix}/libexec/nix/build-remote.pl";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set up the environment variables for running Nix.
|
# Set up the environment variables for running Nix.
|
||||||
|
@ -23,6 +23,7 @@ in {
|
|||||||
type = types.path;
|
type = types.path;
|
||||||
description = "The SSM agent package to use";
|
description = "The SSM agent package to use";
|
||||||
default = pkgs.ssm-agent;
|
default = pkgs.ssm-agent;
|
||||||
|
defaultText = "pkgs.ssm-agent";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -208,7 +208,6 @@ in
|
|||||||
storagePath = mkOption {
|
storagePath = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/btsync/";
|
default = "/var/lib/btsync/";
|
||||||
example = "/var/lib/btsync/";
|
|
||||||
description = ''
|
description = ''
|
||||||
Where BitTorrent Sync will store it's database files (containing
|
Where BitTorrent Sync will store it's database files (containing
|
||||||
things like username info and licenses). Generally, you should not
|
things like username info and licenses). Generally, you should not
|
||||||
|
@ -24,6 +24,8 @@ let
|
|||||||
|
|
||||||
[connection]
|
[connection]
|
||||||
ipv6.ip6-privacy=2
|
ipv6.ip6-privacy=2
|
||||||
|
ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
|
||||||
|
wifi.cloned-mac-address=${cfg.wifi.macAddress}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -73,6 +75,19 @@ let
|
|||||||
"pre-down" = "pre-down.d/";
|
"pre-down" = "pre-down.d/";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
macAddressOpt = mkOption {
|
||||||
|
type = types.either types.str (types.enum ["permanent" "preserve" "random" "stable"]);
|
||||||
|
default = "preserve";
|
||||||
|
example = "00:11:22:33:44:55";
|
||||||
|
description = ''
|
||||||
|
"XX:XX:XX:XX:XX:XX": MAC address of the interface.
|
||||||
|
<literal>permanent</literal>: use the permanent MAC address of the device.
|
||||||
|
<literal>preserve</literal>: don’t change the MAC address of the device upon activation.
|
||||||
|
<literal>random</literal>: generate a randomized value upon each connect.
|
||||||
|
<literal>stable</literal>: generate a stable, hashed MAC address.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
@ -140,6 +155,9 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ethernet.macAddress = macAddressOpt;
|
||||||
|
wifi.macAddress = macAddressOpt;
|
||||||
|
|
||||||
dispatcherScripts = mkOption {
|
dispatcherScripts = mkOption {
|
||||||
type = types.listOf (types.submodule {
|
type = types.listOf (types.submodule {
|
||||||
options = {
|
options = {
|
||||||
@ -229,6 +247,7 @@ in {
|
|||||||
|
|
||||||
systemd.services."network-manager" = {
|
systemd.services."network-manager" = {
|
||||||
wantedBy = [ "network.target" ];
|
wantedBy = [ "network.target" ];
|
||||||
|
restartTriggers = [ configFile ];
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 700 -p /etc/NetworkManager/system-connections
|
mkdir -m 700 -p /etc/NetworkManager/system-connections
|
||||||
|
@ -19,6 +19,7 @@ in
|
|||||||
services.searx = {
|
services.searx = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "
|
description = "
|
||||||
Whether to enable the Searx server. See https://github.com/asciimoo/searx
|
Whether to enable the Searx server. See https://github.com/asciimoo/searx
|
||||||
@ -26,6 +27,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
|
type = types.path;
|
||||||
default = "";
|
default = "";
|
||||||
description = "
|
description = "
|
||||||
The path of the Searx server configuration file. If no file
|
The path of the Searx server configuration file. If no file
|
||||||
@ -35,7 +37,9 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
default = pkgs.pythonPackages.searx;
|
default = pkgs.pythonPackages.searx;
|
||||||
|
defaultText = "pkgs.pythonPackages.searx";
|
||||||
description = "searx package to use.";
|
description = "searx package to use.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,7 +23,8 @@ let
|
|||||||
allowdeny = target: users:
|
allowdeny = target: users:
|
||||||
{ source = pkgs.writeText "fcron.${target}" (concatStringsSep "\n" users);
|
{ source = pkgs.writeText "fcron.${target}" (concatStringsSep "\n" users);
|
||||||
target = "fcron.${target}";
|
target = "fcron.${target}";
|
||||||
mode = "600"; # fcron has some security issues.. So I guess this is most safe
|
mode = "644";
|
||||||
|
gid = config.ids.gids.fcron;
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
@ -89,7 +90,7 @@ in
|
|||||||
[ (allowdeny "allow" (cfg.allow))
|
[ (allowdeny "allow" (cfg.allow))
|
||||||
(allowdeny "deny" cfg.deny)
|
(allowdeny "deny" cfg.deny)
|
||||||
# see man 5 fcron.conf
|
# see man 5 fcron.conf
|
||||||
{ source = pkgs.writeText "fcon.conf" ''
|
{ source = pkgs.writeText "fcron.conf" ''
|
||||||
fcrontabs = /var/spool/fcron
|
fcrontabs = /var/spool/fcron
|
||||||
pidfile = /var/run/fcron.pid
|
pidfile = /var/run/fcron.pid
|
||||||
fifofile = /var/run/fcron.fifo
|
fifofile = /var/run/fcron.fifo
|
||||||
@ -97,16 +98,40 @@ in
|
|||||||
fcrondeny = /etc/fcron.deny
|
fcrondeny = /etc/fcron.deny
|
||||||
shell = /bin/sh
|
shell = /bin/sh
|
||||||
sendmail = /run/wrappers/bin/sendmail
|
sendmail = /run/wrappers/bin/sendmail
|
||||||
editor = /run/current-system/sw/bin/vi
|
editor = ${pkgs.vim}/bin/vim
|
||||||
'';
|
'';
|
||||||
target = "fcron.conf";
|
target = "fcron.conf";
|
||||||
mode = "0600"; # max allowed is 644
|
gid = config.ids.gids.fcron;
|
||||||
|
mode = "0644";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.fcron ];
|
environment.systemPackages = [ pkgs.fcron ];
|
||||||
|
users.extraUsers.fcron = {
|
||||||
|
uid = config.ids.uids.fcron;
|
||||||
|
home = "/var/spool/fcron";
|
||||||
|
group = "fcron";
|
||||||
|
};
|
||||||
|
users.groups.fcron.gid = config.ids.gids.fcron;
|
||||||
|
|
||||||
security.wrappers.fcrontab.source = "${pkgs.fcron.out}/bin/fcrontab";
|
security.wrappers = {
|
||||||
|
fcrontab = {
|
||||||
|
source = "${pkgs.fcron}/bin/fcrontab";
|
||||||
|
owner = "fcron";
|
||||||
|
group = "fcron";
|
||||||
|
setgid = true;
|
||||||
|
};
|
||||||
|
fcrondyn = {
|
||||||
|
source = "${pkgs.fcron}/bin/fcrondyn";
|
||||||
|
owner = "fcron";
|
||||||
|
group = "fcron";
|
||||||
|
setgid = true;
|
||||||
|
};
|
||||||
|
fcronsighup = {
|
||||||
|
source = "${pkgs.fcron}/bin/fcronsighup";
|
||||||
|
group = "fcron";
|
||||||
|
};
|
||||||
|
};
|
||||||
systemd.services.fcron = {
|
systemd.services.fcron = {
|
||||||
description = "fcron daemon";
|
description = "fcron daemon";
|
||||||
after = [ "local-fs.target" ];
|
after = [ "local-fs.target" ];
|
||||||
@ -118,14 +143,17 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
${pkgs.coreutils}/bin/mkdir -m 0700 -p /var/spool/fcron
|
${pkgs.coreutils}/bin/mkdir -m 0770 -p /var/spool/fcron
|
||||||
|
${pkgs.coreutils}/bin/chown -R fcron:fcron /var/spool/fcron
|
||||||
# load system crontab file
|
# load system crontab file
|
||||||
${pkgs.fcron}/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab}
|
set -x
|
||||||
|
#${pkgs.fcron}/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
serviceConfig.Type = "forking";
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
script = "${pkgs.fcron}/sbin/fcron -m ${toString cfg.maxSerialJobs} ${queuelen}";
|
ExecStart = "${pkgs.fcron}/sbin/fcron -m ${toString cfg.maxSerialJobs} ${queuelen}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ let
|
|||||||
inherit (cfg) phpPackage phpOptions;
|
inherit (cfg) phpPackage phpOptions;
|
||||||
passAsFile = [ "phpOptions" ];
|
passAsFile = [ "phpOptions" ];
|
||||||
} ''
|
} ''
|
||||||
cat $phpPackage/etc/php.ini $phpOptionsFile > $out
|
cat $phpPackage/etc/php.ini $phpOptionsPath > $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
@ -47,6 +47,12 @@ in
|
|||||||
default = true;
|
default = true;
|
||||||
description = "Enable the XFWM (default) window manager.";
|
description = "Enable the XFWM (default) window manager.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
screenLock = mkOption {
|
||||||
|
type = types.enum [ "xscreensaver" "xlockmore" "slock" ];
|
||||||
|
default = "xlockmore";
|
||||||
|
description = "Application used by XFCE to lock the screen.";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -80,6 +86,7 @@ in
|
|||||||
pkgs.tango-icon-theme
|
pkgs.tango-icon-theme
|
||||||
pkgs.shared_mime_info
|
pkgs.shared_mime_info
|
||||||
pkgs.which # Needed by the xfce's xinitrc script.
|
pkgs.which # Needed by the xfce's xinitrc script.
|
||||||
|
pkgs."${cfg.screenLock}"
|
||||||
pkgs.xfce.exo
|
pkgs.xfce.exo
|
||||||
pkgs.xfce.gtk_xfce_engine
|
pkgs.xfce.gtk_xfce_engine
|
||||||
pkgs.xfce.mousepad
|
pkgs.xfce.mousepad
|
||||||
|
249
nixos/modules/services/x11/display-managers/xpra.nix
Normal file
249
nixos/modules/services/x11/display-managers/xpra.nix
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.xserver.displayManager.xpra;
|
||||||
|
dmcfg = config.services.xserver.displayManager;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
services.xserver.displayManager.xpra = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Whether to enable xpra as display manager.";
|
||||||
|
};
|
||||||
|
|
||||||
|
bindTcp = mkOption {
|
||||||
|
default = "127.0.0.1:10000";
|
||||||
|
example = "0.0.0.0:10000";
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
description = "Bind xpra to TCP";
|
||||||
|
};
|
||||||
|
|
||||||
|
auth = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "pam";
|
||||||
|
example = "password:value=mysecret";
|
||||||
|
description = "Authentication to use when connecting to xpra";
|
||||||
|
};
|
||||||
|
|
||||||
|
pulseaudio = mkEnableOption "pulseaudio audio streaming.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.xserver.videoDrivers = ["dummy"];
|
||||||
|
|
||||||
|
services.xserver.monitorSection = ''
|
||||||
|
HorizSync 1.0 - 2000.0
|
||||||
|
VertRefresh 1.0 - 200.0
|
||||||
|
#To add your own modes here, use a modeline calculator, like:
|
||||||
|
# cvt:
|
||||||
|
# http://www.x.org/archive/X11R7.5/doc/man/man1/cvt.1.html
|
||||||
|
# xtiming:
|
||||||
|
# http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
|
||||||
|
# gtf:
|
||||||
|
# http://gtf.sourceforge.net/
|
||||||
|
#This can be used to get a specific DPI, but only for the default resolution:
|
||||||
|
#DisplaySize 508 317
|
||||||
|
#NOTE: the highest modes will not work without increasing the VideoRam
|
||||||
|
# for the dummy video card.
|
||||||
|
#Modeline "16000x15000" 300.00 16000 16408 18000 20000 15000 15003 15013 15016
|
||||||
|
#Modeline "15000x15000" 281.25 15000 15376 16872 18744 15000 15003 15013 15016
|
||||||
|
#Modeline "16384x8192" 167.75 16384 16800 18432 20480 8192 8195 8205 8208
|
||||||
|
#Modeline "15360x8640" 249.00 15360 15752 17280 19200 8640 8643 8648 8651
|
||||||
|
Modeline "8192x4096" 193.35 8192 8224 8952 8984 4096 4196 4200 4301
|
||||||
|
Modeline "7680x4320" 208.00 7680 7880 8640 9600 4320 4323 4328 4335
|
||||||
|
Modeline "6400x4096" 151.38 6400 6432 7000 7032 4096 4196 4200 4301
|
||||||
|
Modeline "6400x2560" 91.59 6400 6432 6776 6808 2560 2623 2626 2689
|
||||||
|
Modeline "6400x2160" 160.51 6400 6432 7040 7072 2160 2212 2216 2269
|
||||||
|
Modeline "5760x2160" 149.50 5760 5768 6320 6880 2160 2161 2164 2173
|
||||||
|
Modeline "5680x1440" 142.66 5680 5712 6248 6280 1440 1474 1478 1513
|
||||||
|
Modeline "5496x1200" 199.13 5496 5528 6280 6312 1200 1228 1233 1261
|
||||||
|
Modeline "5280x2560" 75.72 5280 5312 5592 5624 2560 2623 2626 2689
|
||||||
|
Modeline "5280x1920" 56.04 5280 5312 5520 5552 1920 1967 1969 2017
|
||||||
|
Modeline "5280x1200" 191.40 5280 5312 6032 6064 1200 1228 1233 1261
|
||||||
|
Modeline "5280x1080" 169.96 5280 5312 5952 5984 1080 1105 1110 1135
|
||||||
|
Modeline "5120x3200" 199.75 5120 5152 5904 5936 3200 3277 3283 3361
|
||||||
|
Modeline "5120x2560" 73.45 5120 5152 5424 5456 2560 2623 2626 2689
|
||||||
|
Modeline "5120x2880" 185.50 5120 5256 5760 6400 2880 2883 2888 2899
|
||||||
|
Modeline "4800x1200" 64.42 4800 4832 5072 5104 1200 1229 1231 1261
|
||||||
|
Modeline "4720x3840" 227.86 4720 4752 5616 5648 3840 3933 3940 4033
|
||||||
|
Modeline "4400x2560" 133.70 4400 4432 4936 4968 2560 2622 2627 2689
|
||||||
|
Modeline "4480x1440" 72.94 4480 4512 4784 4816 1440 1475 1478 1513
|
||||||
|
Modeline "4240x1440" 69.09 4240 4272 4528 4560 1440 1475 1478 1513
|
||||||
|
Modeline "4160x1440" 67.81 4160 4192 4448 4480 1440 1475 1478 1513
|
||||||
|
Modeline "4096x2304" 249.25 4096 4296 4720 5344 2304 2307 2312 2333
|
||||||
|
Modeline "4096x2160" 111.25 4096 4200 4608 5120 2160 2163 2173 2176
|
||||||
|
Modeline "4000x1660" 170.32 4000 4128 4536 5072 1660 1661 1664 1679
|
||||||
|
Modeline "4000x1440" 145.00 4000 4088 4488 4976 1440 1441 1444 1457
|
||||||
|
Modeline "3904x1440" 63.70 3904 3936 4176 4208 1440 1475 1478 1513
|
||||||
|
Modeline "3840x2880" 133.43 3840 3872 4376 4408 2880 2950 2955 3025
|
||||||
|
Modeline "3840x2560" 116.93 3840 3872 4312 4344 2560 2622 2627 2689
|
||||||
|
Modeline "3840x2160" 104.25 3840 3944 4320 4800 2160 2163 2168 2175
|
||||||
|
Modeline "3840x2048" 91.45 3840 3872 4216 4248 2048 2097 2101 2151
|
||||||
|
Modeline "3840x1200" 108.89 3840 3872 4280 4312 1200 1228 1232 1261
|
||||||
|
Modeline "3840x1080" 100.38 3840 3848 4216 4592 1080 1081 1084 1093
|
||||||
|
Modeline "3864x1050" 94.58 3864 3896 4248 4280 1050 1074 1078 1103
|
||||||
|
Modeline "3600x1200" 106.06 3600 3632 3984 4368 1200 1201 1204 1214
|
||||||
|
Modeline "3600x1080" 91.02 3600 3632 3976 4008 1080 1105 1109 1135
|
||||||
|
Modeline "3520x1196" 99.53 3520 3552 3928 3960 1196 1224 1228 1256
|
||||||
|
Modeline "3360x2560" 102.55 3360 3392 3776 3808 2560 2622 2627 2689
|
||||||
|
Modeline "3360x1050" 293.75 3360 3576 3928 4496 1050 1053 1063 1089
|
||||||
|
Modeline "3288x1080" 39.76 3288 3320 3464 3496 1080 1106 1108 1135
|
||||||
|
Modeline "3200x1800" 233.00 3200 3384 3720 4240 1800 1803 1808 1834
|
||||||
|
Modeline "3200x1080" 236.16 3200 3232 4128 4160 1080 1103 1112 1135
|
||||||
|
Modeline "3120x2560" 95.36 3120 3152 3512 3544 2560 2622 2627 2689
|
||||||
|
Modeline "3120x1050" 272.75 3120 3320 3648 4176 1050 1053 1063 1089
|
||||||
|
Modeline "3072x2560" 93.92 3072 3104 3456 3488 2560 2622 2627 2689
|
||||||
|
Modeline "3008x1692" 130.93 3008 3112 3416 3824 1692 1693 1696 1712
|
||||||
|
Modeline "3000x2560" 91.77 3000 3032 3376 3408 2560 2622 2627 2689
|
||||||
|
Modeline "2880x1620" 396.25 2880 3096 3408 3936 1620 1623 1628 1679
|
||||||
|
Modeline "2728x1680" 148.02 2728 2760 3320 3352 1680 1719 1726 1765
|
||||||
|
Modeline "2560x2240" 151.55 2560 2688 2952 3344 2240 2241 2244 2266
|
||||||
|
Modeline "2560x1600" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
|
||||||
|
Modeline "2560x1440" 42.12 2560 2592 2752 2784 1440 1475 1478 1513
|
||||||
|
Modeline "2560x1400" 267.86 2560 2592 3608 3640 1400 1429 1441 1471
|
||||||
|
Modeline "2048x2048" 49.47 2048 2080 2264 2296 2048 2097 2101 2151
|
||||||
|
Modeline "2048x1536" 80.06 2048 2104 2312 2576 1536 1537 1540 1554
|
||||||
|
Modeline "2048x1152" 197.97 2048 2184 2408 2768 1152 1153 1156 1192
|
||||||
|
Modeline "2048x1152" 165.92 2048 2080 2704 2736 1152 1176 1186 1210
|
||||||
|
Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
|
||||||
|
Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
|
||||||
|
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
|
||||||
|
Modeline "1728x1520" 205.42 1728 1760 2536 2568 1520 1552 1564 1597
|
||||||
|
Modeline "1680x1050" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
|
||||||
|
Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
|
||||||
|
Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946
|
||||||
|
Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
|
||||||
|
Modeline "1400x900" 103.50 1400 1480 1624 1848 900 903 913 934
|
||||||
|
ModeLine "1366x768" 72.00 1366 1414 1446 1494 768 771 777 803
|
||||||
|
Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807
|
||||||
|
Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
|
||||||
|
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||||
|
Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807
|
||||||
|
Modeline "1280x720" 59.42 1280 1312 1536 1568 720 735 741 757
|
||||||
|
Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
|
||||||
|
Modeline "1024x640" 41.98 1024 1056 1208 1240 640 653 659 673
|
||||||
|
Modeline "1024x576" 46.50 1024 1064 1160 1296 576 579 584 599
|
||||||
|
Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076
|
||||||
|
Modeline "960x540" 40.75 960 992 1088 1216 540 543 548 562
|
||||||
|
Modeline "864x486" 32.50 864 888 968 1072 486 489 494 506
|
||||||
|
Modeline "720x405" 22.50 720 744 808 896 405 408 413 422
|
||||||
|
Modeline "640x360" 14.75 640 664 720 800 360 363 368 374
|
||||||
|
#common resolutions for android devices (both orientations):
|
||||||
|
Modeline "800x1280" 25.89 800 832 928 960 1280 1310 1315 1345
|
||||||
|
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||||
|
Modeline "720x1280" 30.22 720 752 864 896 1280 1309 1315 1345
|
||||||
|
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
|
||||||
|
Modeline "768x1024" 24.93 768 800 888 920 1024 1047 1052 1076
|
||||||
|
Modeline "1024x768" 23.77 1024 1056 1144 1176 768 785 789 807
|
||||||
|
Modeline "600x1024" 19.90 600 632 704 736 1024 1047 1052 1076
|
||||||
|
Modeline "1024x600" 18.26 1024 1056 1120 1152 600 614 617 631
|
||||||
|
Modeline "536x960" 16.74 536 568 624 656 960 982 986 1009
|
||||||
|
Modeline "960x536" 15.23 960 992 1048 1080 536 548 551 563
|
||||||
|
Modeline "600x800" 15.17 600 632 688 720 800 818 822 841
|
||||||
|
Modeline "800x600" 14.50 800 832 880 912 600 614 617 631
|
||||||
|
Modeline "480x854" 13.34 480 512 560 592 854 873 877 897
|
||||||
|
Modeline "848x480" 12.09 848 880 920 952 480 491 493 505
|
||||||
|
Modeline "480x800" 12.43 480 512 552 584 800 818 822 841
|
||||||
|
Modeline "800x480" 11.46 800 832 872 904 480 491 493 505
|
||||||
|
#resolutions for android devices (both orientations)
|
||||||
|
#minus the status bar
|
||||||
|
#38px status bar (and width rounded up)
|
||||||
|
Modeline "800x1242" 25.03 800 832 920 952 1242 1271 1275 1305
|
||||||
|
Modeline "1280x762" 22.93 1280 1312 1392 1424 762 780 783 801
|
||||||
|
Modeline "720x1242" 29.20 720 752 856 888 1242 1271 1276 1305
|
||||||
|
Modeline "1280x682" 25.85 1280 1312 1408 1440 682 698 701 717
|
||||||
|
Modeline "768x986" 23.90 768 800 888 920 986 1009 1013 1036
|
||||||
|
Modeline "1024x730" 22.50 1024 1056 1136 1168 730 747 750 767
|
||||||
|
Modeline "600x986" 19.07 600 632 704 736 986 1009 1013 1036
|
||||||
|
Modeline "1024x562" 17.03 1024 1056 1120 1152 562 575 578 591
|
||||||
|
Modeline "536x922" 16.01 536 568 624 656 922 943 947 969
|
||||||
|
Modeline "960x498" 14.09 960 992 1040 1072 498 509 511 523
|
||||||
|
Modeline "600x762" 14.39 600 632 680 712 762 779 783 801
|
||||||
|
Modeline "800x562" 13.52 800 832 880 912 562 575 578 591
|
||||||
|
Modeline "480x810" 12.59 480 512 552 584 810 828 832 851
|
||||||
|
Modeline "848x442" 11.09 848 880 920 952 442 452 454 465
|
||||||
|
Modeline "480x762" 11.79 480 512 552 584 762 779 783 801
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.xserver.resolutions = [
|
||||||
|
{x="8192"; y="4096";}
|
||||||
|
{x="5120"; y="3200";}
|
||||||
|
{x="3840"; y="2880";}
|
||||||
|
{x="3840"; y="2560";}
|
||||||
|
{x="3840"; y="2048";}
|
||||||
|
{x="3840"; y="2160";}
|
||||||
|
{x="2048"; y="2048";}
|
||||||
|
{x="2560"; y="1600";}
|
||||||
|
{x="1920"; y="1440";}
|
||||||
|
{x="1920"; y="1200";}
|
||||||
|
{x="1920"; y="1080";}
|
||||||
|
{x="1600"; y="1200";}
|
||||||
|
{x="1680"; y="1050";}
|
||||||
|
{x="1600"; y="900";}
|
||||||
|
{x="1400"; y="1050";}
|
||||||
|
{x="1440"; y="900";}
|
||||||
|
{x="1280"; y="1024";}
|
||||||
|
{x="1366"; y="768";}
|
||||||
|
{x="1280"; y="800";}
|
||||||
|
{x="1024"; y="768";}
|
||||||
|
{x="1024"; y="600";}
|
||||||
|
{x="800"; y="600";}
|
||||||
|
{x="320"; y="200";}
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.serverFlagsSection = ''
|
||||||
|
Option "DontVTSwitch" "true"
|
||||||
|
Option "PciForceNone" "true"
|
||||||
|
Option "AutoEnableDevices" "false"
|
||||||
|
Option "AutoAddDevices" "false"
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.xserver.deviceSection = ''
|
||||||
|
VideoRam 192000
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.xserver.displayManager.job = {
|
||||||
|
logsXsession = true;
|
||||||
|
|
||||||
|
execCmd = ''
|
||||||
|
${optionalString (cfg.pulseaudio)
|
||||||
|
"export PULSE_COOKIE=/var/run/pulse/.config/pulse/cookie"}
|
||||||
|
exec ${pkgs.xpra}/bin/xpra start \
|
||||||
|
--daemon=off \
|
||||||
|
--log-dir=/var/log \
|
||||||
|
--log-file=xpra.log \
|
||||||
|
--opengl=on \
|
||||||
|
--clipboard=on \
|
||||||
|
--notifications=on \
|
||||||
|
--speaker=yes \
|
||||||
|
--mdns=no \
|
||||||
|
--pulseaudio=no \
|
||||||
|
${optionalString (cfg.pulseaudio) "--sound-source=pulse"} \
|
||||||
|
--socket-dirs=/var/run/xpra \
|
||||||
|
--xvfb="xpra_Xdummy ${concatStringsSep " " dmcfg.xserverArgs}" \
|
||||||
|
${optionalString (cfg.bindTcp != null) "--bind-tcp=${cfg.bindTcp}"} \
|
||||||
|
--auth=${cfg.auth}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.terminateOnReset = false;
|
||||||
|
|
||||||
|
environment.systemPackages = [pkgs.xpra];
|
||||||
|
|
||||||
|
virtualisation.virtualbox.guest.x11 = false;
|
||||||
|
hardware.pulseaudio.enable = mkDefault cfg.pulseaudio;
|
||||||
|
hardware.pulseaudio.systemWide = mkDefault cfg.pulseaudio;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -435,6 +435,14 @@ in
|
|||||||
by default.
|
by default.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
terminateOnReset = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to terminate X upon server reset.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -550,8 +558,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.displayManager.xserverArgs =
|
services.xserver.displayManager.xserverArgs =
|
||||||
[ "-terminate"
|
[ "-config ${configFile}"
|
||||||
"-config ${configFile}"
|
|
||||||
"-xkbdir" "${cfg.xkbDir}"
|
"-xkbdir" "${cfg.xkbDir}"
|
||||||
# Log at the default verbosity level to stderr rather than /var/log/X.*.log.
|
# Log at the default verbosity level to stderr rather than /var/log/X.*.log.
|
||||||
"-verbose" "3" "-logfile" "/dev/null"
|
"-verbose" "3" "-logfile" "/dev/null"
|
||||||
@ -560,7 +567,8 @@ in
|
|||||||
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
|
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
|
||||||
++ optional (!cfg.enableTCP) "-nolisten tcp"
|
++ optional (!cfg.enableTCP) "-nolisten tcp"
|
||||||
++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}"
|
++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}"
|
||||||
++ optional (cfg.autoRepeatInterval != null) "-arinterval ${toString cfg.autoRepeatInterval}";
|
++ optional (cfg.autoRepeatInterval != null) "-arinterval ${toString cfg.autoRepeatInterval}"
|
||||||
|
++ optional cfg.terminateOnReset "-terminate";
|
||||||
|
|
||||||
services.xserver.modules =
|
services.xserver.modules =
|
||||||
concatLists (catAttrs "modules" cfg.drivers) ++
|
concatLists (catAttrs "modules" cfg.drivers) ++
|
||||||
|
@ -41,7 +41,7 @@ if ($action eq "switch" || $action eq "boot") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Just in case the new configuration hangs the system, do a sync now.
|
# Just in case the new configuration hangs the system, do a sync now.
|
||||||
system("@coreutils@/bin/sync") unless ($ENV{"NIXOS_NO_SYNC"} // "") eq "1";
|
system("@coreutils@/bin/sync", "-f", "/nix/store") unless ($ENV{"NIXOS_NO_SYNC"} // "") eq "1";
|
||||||
|
|
||||||
exit 0 if $action eq "boot";
|
exit 0 if $action eq "boot";
|
||||||
|
|
||||||
|
@ -13,12 +13,14 @@ let
|
|||||||
cfgZfs = config.boot.zfs;
|
cfgZfs = config.boot.zfs;
|
||||||
cfgSnapshots = config.services.zfs.autoSnapshot;
|
cfgSnapshots = config.services.zfs.autoSnapshot;
|
||||||
cfgSnapFlags = cfgSnapshots.flags;
|
cfgSnapFlags = cfgSnapshots.flags;
|
||||||
|
cfgScrub = config.services.zfs.autoScrub;
|
||||||
|
|
||||||
inInitrd = any (fs: fs == "zfs") config.boot.initrd.supportedFilesystems;
|
inInitrd = any (fs: fs == "zfs") config.boot.initrd.supportedFilesystems;
|
||||||
inSystem = any (fs: fs == "zfs") config.boot.supportedFilesystems;
|
inSystem = any (fs: fs == "zfs") config.boot.supportedFilesystems;
|
||||||
|
|
||||||
enableAutoSnapshots = cfgSnapshots.enable;
|
enableAutoSnapshots = cfgSnapshots.enable;
|
||||||
enableZfs = inInitrd || inSystem || enableAutoSnapshots;
|
enableAutoScrub = cfgScrub.enable;
|
||||||
|
enableZfs = inInitrd || inSystem || enableAutoSnapshots || enableAutoScrub;
|
||||||
|
|
||||||
kernel = config.boot.kernelPackages;
|
kernel = config.boot.kernelPackages;
|
||||||
|
|
||||||
@ -217,6 +219,37 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.zfs.autoScrub = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
Enables periodic scrubbing of ZFS pools.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
interval = mkOption {
|
||||||
|
default = "Sun, 02:00";
|
||||||
|
type = types.str;
|
||||||
|
example = "daily";
|
||||||
|
description = ''
|
||||||
|
Systemd calendar expression when to scrub ZFS pools. See
|
||||||
|
<citerefentry><refentrytitle>systemd.time</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum></citerefentry>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
pools = mkOption {
|
||||||
|
default = [];
|
||||||
|
type = types.listOf types.str;
|
||||||
|
example = [ "tank" ];
|
||||||
|
description = ''
|
||||||
|
List of ZFS pools to periodically scrub. If empty, all pools
|
||||||
|
will be scrubbed.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
@ -282,7 +315,7 @@ in
|
|||||||
zfsSupport = true;
|
zfsSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."zfs/zed.d".source = "${packages.zfsUser}/etc/zfs/zed.d/*";
|
environment.etc."zfs/zed.d".source = "${packages.zfsUser}/etc/zfs/zed.d/";
|
||||||
|
|
||||||
system.fsPackages = [ packages.zfsUser ]; # XXX: needed? zfs doesn't have (need) a fsck
|
system.fsPackages = [ packages.zfsUser ]; # XXX: needed? zfs doesn't have (need) a fsck
|
||||||
environment.systemPackages = [ packages.zfsUser ]
|
environment.systemPackages = [ packages.zfsUser ]
|
||||||
@ -391,5 +424,31 @@ in
|
|||||||
};
|
};
|
||||||
}) snapshotNames);
|
}) snapshotNames);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
(mkIf enableAutoScrub {
|
||||||
|
systemd.services.zfs-scrub = {
|
||||||
|
description = "ZFS pools scrubbing";
|
||||||
|
after = [ "zfs-import.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
${packages.zfsUser}/bin/zpool scrub ${
|
||||||
|
if cfgScrub.pools != [] then
|
||||||
|
(concatStringsSep " " cfgScrub.pools)
|
||||||
|
else
|
||||||
|
"$(${packages.zfsUser}/bin/zpool list -H -o name)"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.timers.zfs-scrub = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnCalendar = cfgScrub.interval;
|
||||||
|
Persistent = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -220,7 +220,7 @@ let
|
|||||||
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
|
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
|
||||||
bindsTo = deps ++ optional v.rstp "mstpd.service";
|
bindsTo = deps ++ optional v.rstp "mstpd.service";
|
||||||
partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service";
|
partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service";
|
||||||
after = [ "network-pre.target" "mstpd.service" ] ++ deps
|
after = [ "network-pre.target" ] ++ deps ++ optional v.rstp "mstpd.service"
|
||||||
++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
|
++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
|
||||||
before = [ "network-setup.service" (subsystemDevice n) ];
|
before = [ "network-setup.service" (subsystemDevice n) ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
|
@ -12,6 +12,7 @@ in {
|
|||||||
type = types.path;
|
type = types.path;
|
||||||
description = "The ECS agent package to use";
|
description = "The ECS agent package to use";
|
||||||
default = pkgs.ecs-agent;
|
default = pkgs.ecs-agent;
|
||||||
|
defaultText = "pkgs.ecs-agent";
|
||||||
};
|
};
|
||||||
|
|
||||||
extra-environment = mkOption {
|
extra-environment = mkOption {
|
||||||
|
@ -43,7 +43,7 @@ in {
|
|||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.glance;
|
default = pkgs.glance;
|
||||||
example = literalExample "pkgs.glance";
|
defaultText = "pkgs.glance";
|
||||||
description = ''
|
description = ''
|
||||||
Glance package to use.
|
Glance package to use.
|
||||||
'';
|
'';
|
||||||
|
@ -136,15 +136,17 @@ let
|
|||||||
else "-nographic -serial pty";
|
else "-nographic -serial pty";
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
# Create a /boot EFI partition with 40M
|
# Create a /boot EFI partition with 40M and arbitrary but fixed GUIDs for reproducibility
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -G /dev/vda
|
${pkgs.gptfdisk}/bin/sgdisk \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -a 1 -n 1:34:2047 -c 1:"BIOS Boot Partition" -t 1:ef02 /dev/vda
|
--set-alignment=1 --new=1:34:2047 --change-name=1:BIOSBootPartition --typecode=1:ef02 \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -a 512 -N 2 -c 2:"EFI System" -t 2:ef00 /dev/vda
|
--set-alignment=512 --largest-new=2 --change-name=2:EFISystem --typecode=2:ef00 \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -A 1:set:1 /dev/vda
|
--attributes=1:set:1 \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -A 2:set:2 /dev/vda
|
--attributes=2:set:2 \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -h 2 /dev/vda
|
--disk-guid=97FD5997-D90B-4AA3-8D16-C1723AEA73C1 \
|
||||||
${pkgs.gptfdisk}/bin/sgdisk -C /dev/vda
|
--partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \
|
||||||
${pkgs.utillinux}/bin/sfdisk /dev/vda -A 2
|
--partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
|
||||||
|
--hybrid 2 \
|
||||||
|
--recompute-chs /dev/vda
|
||||||
. /sys/class/block/vda2/uevent
|
. /sys/class/block/vda2/uevent
|
||||||
mknod /dev/vda2 b $MAJOR $MINOR
|
mknod /dev/vda2 b $MAJOR $MINOR
|
||||||
. /sys/class/block/vda/uevent
|
. /sys/class/block/vda/uevent
|
||||||
|
@ -15,18 +15,27 @@ in
|
|||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options.virtualisation.virtualbox.guest.enable = mkOption {
|
options.virtualisation.virtualbox.guest = {
|
||||||
default = false;
|
enable = mkOption {
|
||||||
description = "Whether to enable the VirtualBox service and other guest additions.";
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Whether to enable the VirtualBox service and other guest additions.";
|
||||||
|
};
|
||||||
|
|
||||||
|
x11 = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Whether to enable x11 graphics";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable (mkMerge [{
|
||||||
assertions = [ {
|
assertions = [{
|
||||||
assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
|
assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64;
|
||||||
message = "Virtualbox not currently supported on ${pkgs.stdenv.system}";
|
message = "Virtualbox not currently supported on ${pkgs.stdenv.system}";
|
||||||
} ];
|
}];
|
||||||
|
|
||||||
environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
|
environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
|
||||||
|
|
||||||
@ -49,6 +58,16 @@ in
|
|||||||
serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/bin/VBoxService VBoxService --foreground";
|
serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/bin/VBoxService VBoxService --foreground";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.udev.extraRules =
|
||||||
|
''
|
||||||
|
# /dev/vboxuser is necessary for VBoxClient to work. Maybe we
|
||||||
|
# should restrict this to logged-in users.
|
||||||
|
KERNEL=="vboxuser", OWNER="root", GROUP="root", MODE="0666"
|
||||||
|
|
||||||
|
# Allow systemd dependencies on vboxguest.
|
||||||
|
SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
|
||||||
|
'';
|
||||||
|
} (mkIf cfg.x11 {
|
||||||
services.xserver.videoDrivers = mkOverride 50 [ "virtualbox" "modesetting" ];
|
services.xserver.videoDrivers = mkOverride 50 [ "virtualbox" "modesetting" ];
|
||||||
|
|
||||||
services.xserver.config =
|
services.xserver.config =
|
||||||
@ -69,16 +88,6 @@ in
|
|||||||
PATH=${makeBinPath [ pkgs.gnugrep pkgs.which pkgs.xorg.xorgserver.out ]}:$PATH \
|
PATH=${makeBinPath [ pkgs.gnugrep pkgs.which pkgs.xorg.xorgserver.out ]}:$PATH \
|
||||||
${kernel.virtualboxGuestAdditions}/bin/VBoxClient-all
|
${kernel.virtualboxGuestAdditions}/bin/VBoxClient-all
|
||||||
'';
|
'';
|
||||||
|
})]);
|
||||||
services.udev.extraRules =
|
|
||||||
''
|
|
||||||
# /dev/vboxuser is necessary for VBoxClient to work. Maybe we
|
|
||||||
# should restrict this to logged-in users.
|
|
||||||
KERNEL=="vboxuser", OWNER="root", GROUP="root", MODE="0666"
|
|
||||||
|
|
||||||
# Allow systemd dependencies on vboxguest.
|
|
||||||
SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ in rec {
|
|||||||
(all nixos.tests.ecryptfs)
|
(all nixos.tests.ecryptfs)
|
||||||
(all nixos.tests.ipv6)
|
(all nixos.tests.ipv6)
|
||||||
(all nixos.tests.i3wm)
|
(all nixos.tests.i3wm)
|
||||||
(all nixos.tests.kde5)
|
(all nixos.tests.plasma5)
|
||||||
#(all nixos.tests.lightdm)
|
#(all nixos.tests.lightdm)
|
||||||
(all nixos.tests.login)
|
(all nixos.tests.login)
|
||||||
(all nixos.tests.misc)
|
(all nixos.tests.misc)
|
||||||
|
@ -255,7 +255,7 @@ in rec {
|
|||||||
tests.influxdb = callTest tests/influxdb.nix {};
|
tests.influxdb = callTest tests/influxdb.nix {};
|
||||||
tests.ipv6 = callTest tests/ipv6.nix {};
|
tests.ipv6 = callTest tests/ipv6.nix {};
|
||||||
tests.jenkins = callTest tests/jenkins.nix {};
|
tests.jenkins = callTest tests/jenkins.nix {};
|
||||||
tests.kde5 = callTest tests/kde5.nix {};
|
tests.plasma5 = callTest tests/plasma5.nix {};
|
||||||
tests.keymap = callSubTests tests/keymap.nix {};
|
tests.keymap = callSubTests tests/keymap.nix {};
|
||||||
tests.initrdNetwork = callTest tests/initrd-network.nix {};
|
tests.initrdNetwork = callTest tests/initrd-network.nix {};
|
||||||
tests.keystone = callTest tests/keystone.nix {};
|
tests.keystone = callTest tests/keystone.nix {};
|
||||||
@ -327,7 +327,7 @@ in rec {
|
|||||||
kde = makeClosure ({ pkgs, ... }:
|
kde = makeClosure ({ pkgs, ... }:
|
||||||
{ services.xserver.enable = true;
|
{ services.xserver.enable = true;
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
xfce = makeClosure ({ pkgs, ... }:
|
xfce = makeClosure ({ pkgs, ... }:
|
||||||
|
46
nixos/tests/buildbot.nix
Normal file
46
nixos/tests/buildbot.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Test ensures buildbot master comes up correctly and workers can connect
|
||||||
|
|
||||||
|
import ./make-test.nix ({ pkgs, ... } : {
|
||||||
|
name = "buildbot";
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
bbmaster = { config, pkgs, nodes, ... }: {
|
||||||
|
services.buildbot-master = {
|
||||||
|
enable = true;
|
||||||
|
factorySteps = [
|
||||||
|
"steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')"
|
||||||
|
"steps.ShellCommand(command=['trial', 'pyflakes'])"
|
||||||
|
];
|
||||||
|
changeSource = [
|
||||||
|
"changes.GitPoller('git://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8010 9989 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
bbworker = { config, pkgs, ... }: {
|
||||||
|
services.buildbot-worker = {
|
||||||
|
enable = true;
|
||||||
|
masterUrl = "bbmaster:9989";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
|
||||||
|
$bbmaster->waitForUnit("network.target");
|
||||||
|
$bbworker->waitForUnit("network.target");
|
||||||
|
|
||||||
|
# Additional tests to be added
|
||||||
|
#$bbmaster->waitForUnit("buildbot-master.service");
|
||||||
|
#$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die;
|
||||||
|
#$bbworker->waitForUnit("buildbot-worker.service");
|
||||||
|
#$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die;
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ nand0p ];
|
||||||
|
};
|
||||||
|
|
||||||
|
})
|
@ -24,6 +24,7 @@ import ./make-test.nix ({ pkgs, ... }:
|
|||||||
''
|
''
|
||||||
startAll;
|
startAll;
|
||||||
$server->waitForOpenPort(6666);
|
$server->waitForOpenPort(6666);
|
||||||
$client->succeed("curl http://server:6666/leaps/ | grep -i 'leaps'");
|
$client->waitForUnit("network.target");
|
||||||
|
$client->succeed("${pkgs.curl}/bin/curl http://server:6666/leaps/ | grep -i 'leaps'");
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
@ -54,7 +54,7 @@ import ./make-test.nix ({ pkgs, ... }: {
|
|||||||
client =
|
client =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{ imports = [ ./common/x11.nix ];
|
{ imports = [ ./common/x11.nix ];
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import ./make-test.nix ({ pkgs, ...} :
|
import ./make-test.nix ({ pkgs, ...} :
|
||||||
|
|
||||||
{
|
{
|
||||||
name = "kde5";
|
name = "plasma5";
|
||||||
meta = with pkgs.stdenv.lib.maintainers; {
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
maintainers = [ ttuegel ];
|
maintainers = [ ttuegel ];
|
||||||
};
|
};
|
||||||
@ -17,7 +17,8 @@ import ./make-test.nix ({ pkgs, ...} :
|
|||||||
user = "alice";
|
user = "alice";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
|
services.xserver.desktopManager.default = "plasma5";
|
||||||
virtualisation.writableStore = false; # FIXME
|
virtualisation.writableStore = false; # FIXME
|
||||||
};
|
};
|
||||||
|
|
@ -45,7 +45,7 @@ import ./make-test.nix ({ pkgs, ... }: {
|
|||||||
client =
|
client =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{ imports = [ ./common/x11.nix ];
|
{ imports = [ ./common/x11.nix ];
|
||||||
services.xserver.desktopManager.kde5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv , fetchurl
|
{ stdenv , fetchFromGitHub
|
||||||
, pkgconfig, autoreconfHook
|
, pkgconfig, autoreconfHook
|
||||||
, db5, openssl, boost, zlib, miniupnpc
|
, db5, openssl, boost, zlib, miniupnpc
|
||||||
, glib, protobuf, utillinux, qt4, qrencode
|
, glib, protobuf, utillinux, qt4, qrencode
|
||||||
@ -6,28 +6,21 @@
|
|||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
|
name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
|
||||||
version = "1.8.2";
|
version = "1.10.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/dogecoin/dogecoin/archive/v${version}.tar.gz";
|
owner = "dogecoin";
|
||||||
sha256 = "17jxsxsrsz3qy2hxdpw78vcbnnd0nq614iy42ypzhw4pdpz0s1l7";
|
repo = "dogecoin";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "16q3rldj04hkzzjd23h0knszqr5dgixizy4iyc129mz8wa8pbnvyt chec";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ autoreconfHook pkgconfig openssl
|
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||||
db5 openssl utillinux protobuf boost zlib miniupnpc ]
|
buildInputs = [ openssl db5 openssl utillinux
|
||||||
|
protobuf boost zlib miniupnpc ]
|
||||||
++ optionals withGui [ qt4 qrencode ];
|
++ optionals withGui [ qt4 qrencode ];
|
||||||
|
|
||||||
# BSD DB5 location
|
|
||||||
patchPhase = ''
|
|
||||||
sed -i \
|
|
||||||
-e 's,BDB_CPPFLAGS=$,BDB_CPPFLAGS="-I${db5}/include",g' \
|
|
||||||
-e 's,BDB_LIBS=$,BDB_LIBS="-L${db5}/lib",g' \
|
|
||||||
-e 's,bdbdirlist=$,bdbdirlist="${db5}/include",g' \
|
|
||||||
src/m4/dogecoin_find_bdb51.m4
|
|
||||||
'';
|
|
||||||
|
|
||||||
configureFlags = [ "--with-incompatible-bdb"
|
configureFlags = [ "--with-incompatible-bdb"
|
||||||
"--with-boost-libdir=${boost.out}/lib" ]
|
"--with-boost-libdir=${boost.out}/lib" ]
|
||||||
++ optionals withGui [ "--with-gui" ];
|
++ optionals withGui [ "--with-gui" ];
|
||||||
@ -43,6 +36,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = http://www.dogecoin.com/;
|
homepage = http://www.dogecoin.com/;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ edwtjo offline AndersonTorres ];
|
maintainers = with maintainers; [ edwtjo offline AndersonTorres ];
|
||||||
platforms = with platforms; linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "A music composition and modular synthesis application";
|
description = "A music composition and modular synthesis application";
|
||||||
homepage = http://beast.gtk.org;
|
homepage = http://beast.gtk.org;
|
||||||
license = with licenses; [ gpl2 lgpl21 ];
|
license = with licenses; [ gpl2 lgpl21 ];
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,21 +2,21 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "bs1770gain-${version}";
|
name = "bs1770gain-${version}";
|
||||||
version = "0.4.7";
|
version = "0.4.12";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/bs1770gain/${name}.tar.gz";
|
url = "mirror://sourceforge/bs1770gain/${name}.tar.gz";
|
||||||
sha256 = "0dnypm7k4axc693g0z73n2mvycbzgc4lnj2am64xjzyg37my4qzz";
|
sha256 = "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ffmpeg sox ];
|
buildInputs = [ ffmpeg sox ];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-Wno-error";
|
NIX_CFLAGS_COMPILE = "-Wno-error";
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "A audio/video loudness scanner implementing ITU-R BS.1770";
|
description = "A audio/video loudness scanner implementing ITU-R BS.1770";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
homepage = "http://bs1770gain.sourceforge.net/";
|
homepage = "http://bs1770gain.sourceforge.net/";
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which }:
|
{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.3.5.1";
|
version = "1.3.5.2";
|
||||||
name = "chuck-${version}";
|
name = "chuck-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
|
url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
|
||||||
sha256 = "0lqzkphfd91kz95nf1wqy0z17r1m70c8inwvnb9fscbiaihwlhfi";
|
sha256 = "02z7sglax3j09grj5s1skmw8z6wz7b21hjrm95nrrdpwbxabh079";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ bison flex libsndfile which ]
|
buildInputs = [ bison flex libsndfile which ]
|
||||||
@ -28,11 +28,11 @@ stdenv.mkDerivation rec {
|
|||||||
install -Dm755 ./src/chuck $out/bin/chuck
|
install -Dm755 ./src/chuck $out/bin/chuck
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "Programming language for real-time sound synthesis and music creation";
|
description = "Programming language for real-time sound synthesis and music creation";
|
||||||
homepage = http://chuck.cs.princeton.edu;
|
homepage = http://chuck.cs.princeton.edu;
|
||||||
license = stdenv.lib.licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
platforms = with platforms; linux ++ darwin;
|
||||||
maintainers = with stdenv.lib.maintainers; [ ftrvxmtrx ];
|
maintainers = with maintainers; [ ftrvxmtrx ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "easytag-${version}";
|
name = "easytag-${version}";
|
||||||
majorVersion = "2.4";
|
majorVersion = "2.4";
|
||||||
version = "${majorVersion}.1";
|
version = "${majorVersion}.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/easytag/${majorVersion}/${name}.tar.xz";
|
url = "mirror://gnome/sources/easytag/${majorVersion}/${name}.tar.xz";
|
||||||
sha256 = "1mbpwp3lh6yz5xkaq3a329x4r3chmjsr83r349crhi1gax3mzvxr";
|
sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
|
||||||
};
|
};
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
@ -21,17 +21,17 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
NIX_LDFLAGS = "-lid3tag -lz";
|
NIX_LDFLAGS = "-lid3tag -lz";
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper pkgconfig intltool ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgconfig intltool gtk3 glib libid3tag id3lib taglib libvorbis libogg flac
|
gtk3 glib libid3tag id3lib taglib libvorbis libogg flac
|
||||||
itstool libxml2 gsettings_desktop_schemas gnome3.defaultIconTheme gnome3.dconf
|
itstool libxml2 gsettings_desktop_schemas gnome3.defaultIconTheme gnome3.dconf
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "View and edit tags for various audio files";
|
description = "View and edit tags for various audio files";
|
||||||
homepage = "http://projects.gnome.org/easytag/";
|
homepage = "http://projects.gnome.org/easytag/";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
|
maintainers = with maintainers; [ fuuzetsu ];
|
||||||
platforms = with stdenv.lib.platforms; linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
22
pkgs/applications/audio/eflite/buf-overflow.patch
Normal file
22
pkgs/applications/audio/eflite/buf-overflow.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Fix buffer overflow
|
||||||
|
|
||||||
|
--- eflite-0.4.1.orig/es.c
|
||||||
|
+++ eflite-0.4.1/es.c
|
||||||
|
@@ -329,7 +329,7 @@
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
p = getenv("HOME");
|
||||||
|
- sprintf(buf, "%s/.es.conf", p);
|
||||||
|
+ snprintf(buf, sizeof(buf), "%s/.es.conf", p);
|
||||||
|
fp = fopen(buf, "r");
|
||||||
|
if (!fp) fp = fopen("/etc/es.conf", "r");
|
||||||
|
if (!fp) return 1;
|
||||||
|
@@ -438,7 +438,7 @@
|
||||||
|
char logname[200];
|
||||||
|
|
||||||
|
if ((flags & 0xffff) > DEBUG) return;
|
||||||
|
- sprintf(logname, "%s/es.log", getenv("HOME"));
|
||||||
|
+ snprintf(logname, sizeof(logname), "%s/es.log", getenv("HOME"));
|
||||||
|
va_start(arg, text);
|
||||||
|
vsnprintf(buf, 200, text, arg);
|
||||||
|
va_end(arg);
|
98
pkgs/applications/audio/eflite/cvs-update.patch
Normal file
98
pkgs/applications/audio/eflite/cvs-update.patch
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
--- eflite-0.4.1.orig/fs.c
|
||||||
|
+++ eflite-0.4.1/fs.c
|
||||||
|
@@ -9,7 +9,7 @@
|
||||||
|
* GNU General Public License, as published by the Free Software
|
||||||
|
* Foundation. Please see the file COPYING for details.
|
||||||
|
*
|
||||||
|
- * $Id: fs.c,v 1.19 2007/01/18 23:58:42 mgorse Exp $
|
||||||
|
+ * $Id: fs.c,v 1.22 2008/03/05 15:21:43 mgorse Exp $
|
||||||
|
*
|
||||||
|
* Notes:
|
||||||
|
*
|
||||||
|
@@ -505,19 +505,6 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-static void play_audio_close(void *cancel)
|
||||||
|
-{
|
||||||
|
- if (audiodev)
|
||||||
|
- {
|
||||||
|
- audio_drain(audiodev);
|
||||||
|
- close_audiodev();
|
||||||
|
- // usleep(5000);
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
static inline void determine_playlen(int speed, cst_wave *wptr, int type, int *pl, int *s)
|
||||||
|
{
|
||||||
|
int playlen, skip;
|
||||||
|
@@ -573,12 +560,12 @@
|
||||||
|
type = ac[ac_head].type;
|
||||||
|
WAVE_UNLOCK;
|
||||||
|
pthread_testcancel();
|
||||||
|
- pthread_cleanup_push(play_audio_close, NULL);
|
||||||
|
-
|
||||||
|
+
|
||||||
|
es_log(2, "Opening audio device.");
|
||||||
|
/* We abuse the wave mutex here to avoid being canceled
|
||||||
|
* while the audio device is being openned */
|
||||||
|
WAVE_LOCK;
|
||||||
|
+ assert(audiodev == NULL);
|
||||||
|
audiodev = audio_open(wptr->sample_rate, wptr->num_channels, CST_AUDIO_LINEAR16);
|
||||||
|
WAVE_UNLOCK;
|
||||||
|
if (audiodev == NULL)
|
||||||
|
@@ -606,8 +593,8 @@
|
||||||
|
#ifdef DEBUG
|
||||||
|
start_time = get_ticks_count();
|
||||||
|
#endif
|
||||||
|
- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
|
||||||
|
audio_write(audiodev, wptr->samples + skip, playlen * 2);
|
||||||
|
+ pthread_testcancel();
|
||||||
|
es_log(2, "Write took %.2f seconds.", get_ticks_count() - start_time);
|
||||||
|
}
|
||||||
|
es_log(2, "play: syncing.");
|
||||||
|
@@ -617,16 +604,16 @@
|
||||||
|
audio_flush(audiodev);
|
||||||
|
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
|
||||||
|
es_log(2, "Flush took %.2f seconds.", get_ticks_count() - start_time);
|
||||||
|
- es_log(2, "play: Closing audio device");
|
||||||
|
- close_audiodev();
|
||||||
|
- pthread_cleanup_pop(0);
|
||||||
|
- pthread_testcancel();
|
||||||
|
- TEXT_LOCK;
|
||||||
|
+ pthread_testcancel();
|
||||||
|
+
|
||||||
|
+ TEXT_LOCK;
|
||||||
|
time_left -= ((float)playlen) / wptr->sample_rate;
|
||||||
|
pthread_cond_signal(&text_condition);
|
||||||
|
TEXT_UNLOCK;
|
||||||
|
|
||||||
|
WAVE_LOCK;
|
||||||
|
+ es_log(2, "play: Closing audio device");
|
||||||
|
+ close_audiodev();
|
||||||
|
ac_destroy(&ac[ac_head]);
|
||||||
|
ac_head++;
|
||||||
|
if (ac_head == ac_tail)
|
||||||
|
@@ -894,6 +881,7 @@
|
||||||
|
WAVE_LOCK_NI;
|
||||||
|
pthread_cond_signal(&wave_condition); // necessary because we inhibit cancellation while waiting
|
||||||
|
pthread_cancel(wave_thread);
|
||||||
|
+ if (audiodev != NULL) audio_drain(audiodev);
|
||||||
|
WAVE_UNLOCK_NI;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -917,7 +905,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* At this point, no thread is running */
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ // Make sure audio device is closed
|
||||||
|
+ close_audiodev();
|
||||||
|
+
|
||||||
|
/* Free any wave data */
|
||||||
|
es_log(2, "s_clear: freeing wave data: %d", ac_tail);
|
||||||
|
for (i = 0; i < ac_tail; i++)
|
32
pkgs/applications/audio/eflite/default.nix
Normal file
32
pkgs/applications/audio/eflite/default.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{stdenv,fetchurl,flite,alsaLib,debug ? false}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "eflite-${version}";
|
||||||
|
version = "0.4.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://sourceforge.net/projects/eflite/files/eflite/${version}/${name}.tar.gz";
|
||||||
|
sha256 = "088p9w816s02s64grfs28gai3lnibzdjb9d1jwxzr8smbs2qbbci";
|
||||||
|
};
|
||||||
|
buildInputs = [ flite alsaLib ];
|
||||||
|
configureFlags = "flite_dir=${flite} --with-audio=alsa --with-vox=cmu_us_kal16";
|
||||||
|
patches = [
|
||||||
|
./buf-overflow.patch
|
||||||
|
./cvs-update.patch
|
||||||
|
./link.patch
|
||||||
|
./format.patch
|
||||||
|
]; # Patches are taken from debian.
|
||||||
|
CFLAGS = stdenv.lib.optionalString debug " -DDEBUG=2";
|
||||||
|
meta = {
|
||||||
|
homepage = http://eflite.sourceforge.net;
|
||||||
|
description = "EFlite is a speech server for screen readers";
|
||||||
|
longDescription = ''
|
||||||
|
EFlite is a speech server for Emacspeak and other screen
|
||||||
|
readers that allows them to interface with Festival Lite,
|
||||||
|
a free text-to-speech engine developed at the CMU Speech
|
||||||
|
Center as an off-shoot of Festival.
|
||||||
|
'';
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ jhhuh ];
|
||||||
|
};
|
||||||
|
}
|
11
pkgs/applications/audio/eflite/format.patch
Normal file
11
pkgs/applications/audio/eflite/format.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- eflite-0.4.1.orig/es.c 2017-03-02 14:38:36.009731423 +0100
|
||||||
|
+++ eflite-0.4.1/es.c 2017-03-02 14:39:06.285894934 +0100
|
||||||
|
@@ -449,7 +449,7 @@
|
||||||
|
fclose(fp);
|
||||||
|
if (flags & LOG_STDERR)
|
||||||
|
{
|
||||||
|
- fprintf(stderr, buf);
|
||||||
|
+ fprintf(stderr, "%s", buf);
|
||||||
|
fprintf(stderr, "\n");
|
||||||
|
}
|
||||||
|
#endif
|
11
pkgs/applications/audio/eflite/link.patch
Normal file
11
pkgs/applications/audio/eflite/link.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- eflite-0.4.1/Makefile.in 2007-01-19 01:01:09.000000000 +0100
|
||||||
|
+++ eflite-0.4.1-new/Makefile.in 2017-03-01 23:25:34.223615492 +0100
|
||||||
|
@@ -34,7 +34,7 @@
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $^ -lm $(LIBS) $(FLITE_LIBS) $(AUDIOLIBS)
|
||||||
|
|
||||||
|
fs.o: fs.c
|
||||||
|
- $(CC) $(CFLAGS) @AUDIODEFS@ -I. -I$(flite_include_dir) -DREGISTER_VOX=register_$(subst cmu_us_kal16,cmu_us_kal,$(FL_VOX)) -DSTANDALONE -DEFLITE -c -o $@ $<
|
||||||
|
+ $(CC) $(CFLAGS) @AUDIODEFS@ -I. -I$(flite_include_dir) -DREGISTER_VOX=register_$(FL_VOX) -DSTANDALONE -DEFLITE -c -o $@ $<
|
||||||
|
|
||||||
|
tone.o: tone.c
|
||||||
|
$(CC) $(CFLAGS) -I$(flite_include_dir) -DEFLITE -c -o $@ $<
|
@ -1,30 +1,34 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, cmake, qt5, libuchardet, pkgconfig, makeWrapper
|
{ stdenv, lib, fetchFromGitHub, cmake, qt5, libuchardet, pkgconfig, makeWrapper
|
||||||
, shntool, flac, opusTools, vorbisTools, mp3gain, lame, wavpack, vorbisgain
|
, shntool, flac, opusTools, vorbisTools, mp3gain, lame, wavpack, vorbisgain
|
||||||
|
, gtk3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "flacon-${version}";
|
name = "flacon-${version}";
|
||||||
version = "2.0.1";
|
version = "2.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "flacon";
|
owner = "flacon";
|
||||||
repo = "flacon";
|
repo = "flacon";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0hip411k3arb96rnd22ifs9shlv0xmy96hhx1jcwdk48kw8aa9rw";
|
sha256 = "0jazv3d1xaydp2ws1pd5rmga76z5yk74v3a8yqfc8vbb2z6ahimz";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake qt5.qtbase qt5.qttools libuchardet pkgconfig makeWrapper ];
|
nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
|
||||||
|
buildInputs = [ qt5.qtbase qt5.qttools libuchardet ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $out/bin/flacon \
|
wrapProgram $out/bin/flacon \
|
||||||
|
--suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" \
|
||||||
--prefix PATH : "${lib.makeBinPath [ shntool flac opusTools vorbisTools
|
--prefix PATH : "${lib.makeBinPath [ shntool flac opusTools vorbisTools
|
||||||
mp3gain lame wavpack vorbisgain ]}"
|
mp3gain lame wavpack vorbisgain ]}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "Extracts audio tracks from an audio CD image to separate tracks.";
|
description = "Extracts audio tracks from an audio CD image to separate tracks.";
|
||||||
homepage = https://flacon.github.io/;
|
homepage = https://flacon.github.io/;
|
||||||
license = stdenv.lib.licenses.lgpl21;
|
license = licenses.lgpl21;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
maintainers = with maintainers; [ ndowens nico202 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -11,16 +11,17 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "fmit-${version}";
|
name = "fmit-${version}";
|
||||||
version = "1.1.8";
|
version = "1.1.11";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "14vx4p1h3c6frvv8dam4ymz588zpycmg17pxfkmx4m7pszhlin6b";
|
sha256 = "1w492lf8n2sjkr53z8cvkgywzn0w53cf78hz93zaw6dwwv36lwdp";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
repo = "fmit";
|
repo = "fmit";
|
||||||
owner = "gillesdegottex";
|
owner = "gillesdegottex";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ fftw qtbase qtmultimedia qmakeHook ]
|
nativeBuildInputs = [ qmakeHook ];
|
||||||
|
buildInputs = [ fftw qtbase qtmultimedia ]
|
||||||
++ optionals alsaSupport [ alsaLib ]
|
++ optionals alsaSupport [ alsaLib ]
|
||||||
++ optionals jackSupport [ libjack2 ]
|
++ optionals jackSupport [ libjack2 ]
|
||||||
++ optionals portaudioSupport [ portaudio ];
|
++ optionals portaudioSupport [ portaudio ];
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{ stdenv, fetchurl, gettext, intltool, pkgconfig, python2
|
{ stdenv, fetchurl, gettext, intltool, pkgconfig, python2
|
||||||
, avahi, bluez, boost, eigen, fftw, glib, glib_networking
|
, avahi, bluez, boost, eigen, fftw, glib, glib_networking
|
||||||
, glibmm, gsettings_desktop_schemas, gtkmm2, libjack2
|
, glibmm, gsettings_desktop_schemas, gtkmm2, libjack2
|
||||||
, ladspaH, librdf, libsndfile, lilv, lv2, serd, sord, sratom
|
, ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom
|
||||||
, webkitgtk2, wrapGAppsHook, zita-convolver, zita-resampler
|
, wrapGAppsHook, zita-convolver, zita-resampler
|
||||||
, optimizationSupport ? false # Enable support for native CPU extensions
|
, optimizationSupport ? false # Enable support for native CPU extensions
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
avahi bluez boost eigen fftw glib glibmm glib_networking.out
|
avahi bluez boost eigen fftw glib glibmm glib_networking.out
|
||||||
gsettings_desktop_schemas gtkmm2 libjack2 ladspaH librdf
|
gsettings_desktop_schemas gtkmm2 libjack2 ladspaH libav librdf
|
||||||
libsndfile lilv lv2 serd sord sratom webkitgtk2 zita-convolver
|
libsndfile lilv lv2 serd sord sratom zita-convolver
|
||||||
zita-resampler
|
zita-resampler
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -33,6 +33,9 @@ stdenv.mkDerivation rec {
|
|||||||
"--no-desktop-update"
|
"--no-desktop-update"
|
||||||
"--enable-nls"
|
"--enable-nls"
|
||||||
"--no-faust" # todo: find out why --faust doesn't work
|
"--no-faust" # todo: find out why --faust doesn't work
|
||||||
|
"--install-roboto-font"
|
||||||
|
"--includeresampler"
|
||||||
|
"--convolver-ffmpeg"
|
||||||
] ++ optional optimizationSupport "--optimization";
|
] ++ optional optimizationSupport "--optimization";
|
||||||
|
|
||||||
configurePhase = ''python2 waf configure --prefix=$out $configureFlags'';
|
configurePhase = ''python2 waf configure --prefix=$out $configureFlags'';
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
{ stdenv, fetchurl, alsaLib, boost, cmake, glib, libjack2, libarchive
|
{ stdenv, fetchurl, alsaLib, boost, cmake, glib, lash, libjack2, libarchive
|
||||||
, liblrdf, libsndfile, pkgconfig, qt4 }:
|
, liblrdf, libsndfile, pkgconfig, qt4 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.9.6.1";
|
version = "0.9.7";
|
||||||
name = "hydrogen-${version}";
|
name = "hydrogen-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
|
url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
|
||||||
sha256 = "0vxnaqfmcv7hhk0cj67imdcqngspnck7f0wfmvhfgfqa7x1xznll";
|
sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
alsaLib boost cmake glib libjack2 libarchive liblrdf libsndfile pkgconfig qt4
|
alsaLib boost cmake glib lash libjack2 libarchive liblrdf libsndfile pkgconfig qt4
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
sed -i "s@pd -nodac@${pitchTracker}/bin/pd -nodac@g" launchers/synthWrapper
|
sed -i "s@pd -nodac@${pitchTracker}/bin/pd -nodac@g" launchers/synthWrapper
|
||||||
sed -i "s@../PureData/OscSendVoc.pd@$out/PureData/OscSendVoc.pd@g" launchers/synthWrapper
|
sed -i "s@../PureData/OscSendVoc.pd@$out/PureData/OscSendVoc.pd@g" launchers/pitchTracker
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
@ -6,11 +6,11 @@ assert stdenv ? glibc;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yoshimi-${version}";
|
name = "yoshimi-${version}";
|
||||||
version = "1.4.1";
|
version = "1.5.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
||||||
sha256 = "133sx42wb66g803pcrgdwph40wh94knvab3yfqkgm0001jv4v14y";
|
sha256 = "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -20,9 +20,13 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i -e 's,/usr/share,'$out/share,g src/Misc/Config.cpp src/Misc/Bank.cpp
|
||||||
|
'';
|
||||||
|
|
||||||
preConfigure = "cd src";
|
preConfigure = "cd src";
|
||||||
|
|
||||||
cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so -DCMAKE_INSTALL_DATAROOTDIR=$out" ];
|
cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "High quality software synthesizer based on ZynAddSubFX";
|
description = "High quality software synthesizer based on ZynAddSubFX";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
|
{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
|
||||||
, freetype, fontconfig, libX11, libXext, libXrender, zlib
|
, freetype, fontconfig, libX11, libXext, libXrender, zlib
|
||||||
, glib, libXtst, jdk
|
, glib, gtk2, libXtst, jdk
|
||||||
, webkitgtk2 ? null # for internal web browser
|
, webkitgtk2 ? null # for internal web browser
|
||||||
, buildEnv, writeText, runCommand
|
, buildEnv, writeText, runCommand
|
||||||
, callPackage
|
, callPackage
|
||||||
@ -10,7 +10,10 @@ assert stdenv ? glibc;
|
|||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
|
||||||
buildEclipse = callPackage ./build-eclipse.nix { };
|
buildEclipse = import ./build-eclipse.nix {
|
||||||
|
inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
|
||||||
|
jdk glib gtk2 libXtst webkitgtk2 makeWrapper;
|
||||||
|
};
|
||||||
|
|
||||||
### Eclipse CPP
|
### Eclipse CPP
|
||||||
|
|
||||||
|
@ -1956,10 +1956,10 @@
|
|||||||
validate = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
|
validate = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "validate";
|
pname = "validate";
|
||||||
version = "1.0.2";
|
version = "1.0.4";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/validate-1.0.2.el";
|
url = "https://elpa.gnu.org/packages/validate-1.0.4.el";
|
||||||
sha256 = "19xhd9mxkdcisspz5q3bnvf6jjsvmhjjrpw3pq5lgyqbcz8k8dsr";
|
sha256 = "0vksssk98hcnz804g62k8kika13argf6p7bx8rf9hwidvzdsv6mi";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs seq ];
|
packageRequires = [ cl-lib emacs seq ];
|
||||||
meta = {
|
meta = {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -527,12 +527,12 @@
|
|||||||
ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
|
ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "ac-php";
|
pname = "ac-php";
|
||||||
version = "1.7.6";
|
version = "1.7.7";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "xcwen";
|
owner = "xcwen";
|
||||||
repo = "ac-php";
|
repo = "ac-php";
|
||||||
rev = "35fdc09f95050cc76d06f3e6ff1620927aa6377a";
|
rev = "dd04c95ed8a0b5787cb4bf536797cb14aff9991b";
|
||||||
sha256 = "14ywlbxpkwi7fc7axfcnpisddn2886v134llgh0glrl4xkiyd0sf";
|
sha256 = "1yg01ba5c7cv9dvmz5sd797wf46a1ylj57dr4k5i0jjz2y1mb8z6";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php";
|
||||||
@ -548,12 +548,12 @@
|
|||||||
ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }:
|
ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "ac-php-core";
|
pname = "ac-php-core";
|
||||||
version = "1.7.6";
|
version = "1.7.7";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "xcwen";
|
owner = "xcwen";
|
||||||
repo = "ac-php";
|
repo = "ac-php";
|
||||||
rev = "35fdc09f95050cc76d06f3e6ff1620927aa6377a";
|
rev = "dd04c95ed8a0b5787cb4bf536797cb14aff9991b";
|
||||||
sha256 = "14ywlbxpkwi7fc7axfcnpisddn2886v134llgh0glrl4xkiyd0sf";
|
sha256 = "1yg01ba5c7cv9dvmz5sd797wf46a1ylj57dr4k5i0jjz2y1mb8z6";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
|
||||||
@ -4164,12 +4164,12 @@
|
|||||||
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "cmake-mode";
|
pname = "cmake-mode";
|
||||||
version = "3.8.0pre1";
|
version = "3.8.0pre2";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Kitware";
|
owner = "Kitware";
|
||||||
repo = "CMake";
|
repo = "CMake";
|
||||||
rev = "84df4a49500e51ac6e2a19a77e385e66234386f7";
|
rev = "e1adec32b8325fb731da084e99acd6070f5e39bf";
|
||||||
sha256 = "1kkycphqbz8j3jp70n9vh3lgpb2fxy2461q6x365h8mg5ab4w7x3";
|
sha256 = "08illrxn9jks2z8yj7kczy65k7q3dkifima6j706kz8vjza60ikm";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
|
||||||
@ -4794,12 +4794,12 @@
|
|||||||
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "company-php";
|
pname = "company-php";
|
||||||
version = "1.7.6";
|
version = "1.7.7";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "xcwen";
|
owner = "xcwen";
|
||||||
repo = "ac-php";
|
repo = "ac-php";
|
||||||
rev = "35fdc09f95050cc76d06f3e6ff1620927aa6377a";
|
rev = "dd04c95ed8a0b5787cb4bf536797cb14aff9991b";
|
||||||
sha256 = "14ywlbxpkwi7fc7axfcnpisddn2886v134llgh0glrl4xkiyd0sf";
|
sha256 = "1yg01ba5c7cv9dvmz5sd797wf46a1ylj57dr4k5i0jjz2y1mb8z6";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php";
|
||||||
@ -5115,12 +5115,12 @@
|
|||||||
copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "copy-as-format";
|
pname = "copy-as-format";
|
||||||
version = "0.0.3";
|
version = "0.0.4";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "sshaw";
|
owner = "sshaw";
|
||||||
repo = "copy-as-format";
|
repo = "copy-as-format";
|
||||||
rev = "edc6d2313b321988fdf780fac229d395e4752702";
|
rev = "a77b914ba99729ef618e9e86543da24a46be315a";
|
||||||
sha256 = "1gnm9r42nkp349d5ry2bv9in83ikmh5pnrfcw96yigxrzkbajb2s";
|
sha256 = "181d0fxzy228vvgjmfhfnxh9djyjhq4bpf4lklv0mxhzay03pzdx";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format";
|
||||||
@ -8920,12 +8920,12 @@
|
|||||||
epkg = callPackage ({ closql, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
epkg = callPackage ({ closql, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "epkg";
|
pname = "epkg";
|
||||||
version = "2.2.0";
|
version = "2.3.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "emacscollective";
|
owner = "emacscollective";
|
||||||
repo = "epkg";
|
repo = "epkg";
|
||||||
rev = "f2daeceb98766914548bf9a3c8206ae64850e395";
|
rev = "deb9affaadce11c356df53b6b62ab376ef652d16";
|
||||||
sha256 = "06j07j0gfg4ahjklxlk7m7w53arpl42ynf1diphqn02jy7ycdlh6";
|
sha256 = "1515gv9bhjwbmkbz6sivq5zhpalvfb0ias4qia9anz9npqfx24y0";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/epkg";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/epkg";
|
||||||
@ -9947,12 +9947,12 @@
|
|||||||
evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "evil-nerd-commenter";
|
pname = "evil-nerd-commenter";
|
||||||
version = "2.3.3";
|
version = "3.0.1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "redguardtoo";
|
owner = "redguardtoo";
|
||||||
repo = "evil-nerd-commenter";
|
repo = "evil-nerd-commenter";
|
||||||
rev = "01a98a20c536a575ee5bc897f38116155154d5fe";
|
rev = "7c274dbb7ed4102ee06b998fa6f529c0f816fe9d";
|
||||||
sha256 = "160h4qasqr04fnv9w5dar327i074dsyac2md5y7p3hnz1c05skhl";
|
sha256 = "0997szqya4ljjgmsx1w9zbj6h21wq6l46qk1bs0027zvqwcylsv8";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
|
||||||
@ -10343,6 +10343,26 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
exiftool = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }:
|
||||||
|
melpaBuild {
|
||||||
|
pname = "exiftool";
|
||||||
|
version = "0.2";
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://git.systemreboot.net/exiftool.el/";
|
||||||
|
rev = "799076ae62d96e9d502f1189217b04ffdda2dc1a";
|
||||||
|
sha256 = "0yfa6w0518179v8hzzwrs6swrc1ak1nkyy0a7lkryrw310107j5n";
|
||||||
|
};
|
||||||
|
recipeFile = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/4835a76909d020781021e747fbc341111a94dbfa/recipes/exiftool";
|
||||||
|
sha256 = "1zvcps64yvz8lsjhi1j0808983fv2s7kx67yjr8ps454mcl8bpab";
|
||||||
|
name = "exiftool";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://melpa.org/#/exiftool";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
expand-region = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
expand-region = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "expand-region";
|
pname = "expand-region";
|
||||||
@ -10430,12 +10450,12 @@
|
|||||||
eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "eziam-theme";
|
pname = "eziam-theme";
|
||||||
version = "0.3";
|
version = "0.4";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "thblt";
|
owner = "thblt";
|
||||||
repo = "eziam-theme-emacs";
|
repo = "eziam-theme-emacs";
|
||||||
rev = "e0ca54afdec6eeaf275fa5130a90ed77b0b72277";
|
rev = "3e888e489774e1f6e5ce15fda46296d2fee0de1f";
|
||||||
sha256 = "1m64clhwcwwry76imqcwbsz1bm8blpqynzmpqwcsmhsjqp0yb620";
|
sha256 = "1rxyah6xcdjf3zx1b0gn56wi6gsk95ifsarca67ir3lc1797ldwk";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme";
|
||||||
@ -10980,6 +11000,27 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
flow-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, web-mode }:
|
||||||
|
melpaBuild {
|
||||||
|
pname = "flow-mode";
|
||||||
|
version = "0.1";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "an-sh";
|
||||||
|
repo = "flow-mode";
|
||||||
|
rev = "eb2372b0acf740ed3c5f9c048addbb8048e04458";
|
||||||
|
sha256 = "0ajdzpjghm7iscv2c6nwwx4v1639map104ldsi978iw8hy7m1mmp";
|
||||||
|
};
|
||||||
|
recipeFile = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/3eca3f0c0a4dda79d00cbd0045eb0925bb3ce2e4/recipes/flow-mode";
|
||||||
|
sha256 = "0hq1lkn4mn6r8ih74d52hba1a6gb6pg4qcv60sfsiga4b737yla8";
|
||||||
|
name = "flow-mode";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs web-mode ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://melpa.org/#/flow-mode";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
flx = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
flx = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "flx";
|
pname = "flx";
|
||||||
@ -13992,12 +14033,12 @@
|
|||||||
govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }:
|
govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "govc";
|
pname = "govc";
|
||||||
version = "0.12.1";
|
version = "0.13.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vmware";
|
owner = "vmware";
|
||||||
repo = "govmomi";
|
repo = "govmomi";
|
||||||
rev = "6103db21b38cbdfda3100fed08b988fc2d83aa1a";
|
rev = "b4a3f7a1d0352866c03f42208cddceb53fe12d16";
|
||||||
sha256 = "0hlqrqi1s94cr828qyfbr95np5xwr3bn98l4gv59rnqa1vmx49gy";
|
sha256 = "1f5bpjzj92ac4jvpbahydf2k894man4v2riv8k7j7fwlaknlvcvj";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc";
|
||||||
@ -14259,8 +14300,8 @@
|
|||||||
version = "0.1";
|
version = "0.1";
|
||||||
src = fetchhg {
|
src = fetchhg {
|
||||||
url = "https://bitbucket.com/tws/grass-mode.el";
|
url = "https://bitbucket.com/tws/grass-mode.el";
|
||||||
rev = "c7e2817461c3";
|
rev = "5383fff2996b";
|
||||||
sha256 = "095v1l46axada3vnhp1ypim6b789y39jlyy5466im02fjfjkcadg";
|
sha256 = "1igbdrs14dmaa5mbhq3jnrkq16nndingflpnwxi921dag613c3jz";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/grass-mode";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/grass-mode";
|
||||||
@ -14924,12 +14965,12 @@
|
|||||||
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
|
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "helm";
|
pname = "helm";
|
||||||
version = "2.5.2";
|
version = "2.5.3";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "emacs-helm";
|
owner = "emacs-helm";
|
||||||
repo = "helm";
|
repo = "helm";
|
||||||
rev = "7d7c16f10103aeee591daf46b143d23efdf3a825";
|
rev = "a7d4308604ae790ff568730f8a2f47e578209d3a";
|
||||||
sha256 = "0mn36dxd70nsk1dwn0mzz94sy28hk41af8chdpl2cd09bkpw113l";
|
sha256 = "10xjdq8ch68c2ysfynrby9sxms23b5g2vmhjv8gv0vn15cc50ir5";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
|
||||||
@ -15218,12 +15259,12 @@
|
|||||||
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "helm-core";
|
pname = "helm-core";
|
||||||
version = "2.5.2";
|
version = "2.5.3";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "emacs-helm";
|
owner = "emacs-helm";
|
||||||
repo = "helm";
|
repo = "helm";
|
||||||
rev = "7d7c16f10103aeee591daf46b143d23efdf3a825";
|
rev = "a7d4308604ae790ff568730f8a2f47e578209d3a";
|
||||||
sha256 = "0mn36dxd70nsk1dwn0mzz94sy28hk41af8chdpl2cd09bkpw113l";
|
sha256 = "10xjdq8ch68c2ysfynrby9sxms23b5g2vmhjv8gv0vn15cc50ir5";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
|
||||||
@ -19926,12 +19967,12 @@
|
|||||||
logview = callPackage ({ datetime, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
logview = callPackage ({ datetime, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "logview";
|
pname = "logview";
|
||||||
version = "0.7";
|
version = "0.7.1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "doublep";
|
owner = "doublep";
|
||||||
repo = "logview";
|
repo = "logview";
|
||||||
rev = "a62d03d9437949154633ffec7b9ac61ae27fc5d3";
|
rev = "6409991053350ab2d3def61749b92780dd1ed095";
|
||||||
sha256 = "0i51hnk3ara85izfbjhyf69c0s8cn2mi641w48h71kwns6ysnpa7";
|
sha256 = "0phhkg3qgh4q4b7as0a00zx7kcrlmh24by1sjbp7b4dsd0mnz22k";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/1df3c11ed7738f32e6ae457647e62847701c8b19/recipes/logview";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/1df3c11ed7738f32e6ae457647e62847701c8b19/recipes/logview";
|
||||||
@ -20843,12 +20884,12 @@
|
|||||||
meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
|
meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "meghanada";
|
pname = "meghanada";
|
||||||
version = "0.6.5";
|
version = "0.6.6";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mopemope";
|
owner = "mopemope";
|
||||||
repo = "meghanada-emacs";
|
repo = "meghanada-emacs";
|
||||||
rev = "d2abacb50a95a6eab0afadf829ab7a6ef15d67f8";
|
rev = "67e7ca4488aa39eaa8b5236db392730efdac91a9";
|
||||||
sha256 = "0j1wx7x6v7b4x2ibhhcs9gc994d5a5ynlxjh9v0xi6hfxmpqinna";
|
sha256 = "0k9bv4wdik3lqqpd2ijz3xnlcnjjy589rmqs6z8pwzxsx0vd7wlp";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
|
||||||
@ -22207,12 +22248,12 @@
|
|||||||
nix-buffer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
nix-buffer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "nix-buffer";
|
pname = "nix-buffer";
|
||||||
version = "2.1.0";
|
version = "3.0.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "shlevy";
|
owner = "shlevy";
|
||||||
repo = "nix-buffer";
|
repo = "nix-buffer";
|
||||||
rev = "a4b403eab4a94f8416ef9339d67fdb6f7db8a821";
|
rev = "89d30002eddcc33c5c74dcc871a97aee0228d403";
|
||||||
sha256 = "1a5v2lk2rzx0nzsmmln80757di1blnhsvldyhybablds3qfjdinw";
|
sha256 = "0pz1p8mdk988x4k41qi3j8rf6g33gj6lx4dm9sgfyzgzi9ixyma8";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/08b978724ff26b3ea7a134d307d888c80e2a92a9/recipes/nix-buffer";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/08b978724ff26b3ea7a134d307d888c80e2a92a9/recipes/nix-buffer";
|
||||||
@ -22351,11 +22392,11 @@
|
|||||||
}) {};
|
}) {};
|
||||||
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
|
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
|
||||||
pname = "notmuch";
|
pname = "notmuch";
|
||||||
version = "0.23.7";
|
version = "0.24pre0";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "git://git.notmuchmail.org/git/notmuch";
|
url = "git://git.notmuchmail.org/git/notmuch";
|
||||||
rev = "770d00a8955b2ad8be9daf2923e31221c4847043";
|
rev = "990f8cd03203c7a19cef4e3edbec823cc99fa701";
|
||||||
sha256 = "1919kj6k8avkgji6r9ngd2a2qj8xpnjiwjx4brcvwrgkbryffq21";
|
sha256 = "06135xc3i839hw4sa9gmvnb7qq4llv67q8h537vfgb9gixr40f1q";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
|
||||||
@ -26266,12 +26307,12 @@
|
|||||||
projectile-rails = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }:
|
projectile-rails = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "projectile-rails";
|
pname = "projectile-rails";
|
||||||
version = "0.13.0";
|
version = "0.13.1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "asok";
|
owner = "asok";
|
||||||
repo = "projectile-rails";
|
repo = "projectile-rails";
|
||||||
rev = "8c41f3c92cd7f5eb5a983f6f3d42cb67dff04366";
|
rev = "038c7f9724f684c7862e108150e256a00ff9c5c6";
|
||||||
sha256 = "1rial7py4n451d6ylymf5q4cb57ala4rvvi7619r1c5y1m493qi7";
|
sha256 = "0hjf54nn08ifd8cd3y19g47lwyvacqjx1fmy8x4kpn14fwzs4xnv";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b16532bb8d08f7385bca4b83ab4e030d7b453524/recipes/projectile-rails";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/b16532bb8d08f7385bca4b83ab4e030d7b453524/recipes/projectile-rails";
|
||||||
@ -27253,12 +27294,12 @@
|
|||||||
rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "rdf-prefix";
|
pname = "rdf-prefix";
|
||||||
version = "1.6";
|
version = "1.7";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "simenheg";
|
owner = "simenheg";
|
||||||
repo = "rdf-prefix";
|
repo = "rdf-prefix";
|
||||||
rev = "07f1b914f0bf0ca154831e13202eacecf27cf4c4";
|
rev = "d7e61535aaf89e643673b27c79b4a84ddb530288";
|
||||||
sha256 = "0cis7lcsjpr2gbh59v4sj1irkdkzx893rl3z3q35pq2yklrmx9nv";
|
sha256 = "1in1xp559g8hlxa9i2algwlgc069m8afjad6laxbyjqc61srzw6i";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix";
|
||||||
@ -28447,6 +28488,27 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
sayid = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
|
melpaBuild {
|
||||||
|
pname = "sayid";
|
||||||
|
version = "0.0.13";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bpiel";
|
||||||
|
repo = "sayid";
|
||||||
|
rev = "01bf777cb15a4f236bc44842712e9ca82fed7f55";
|
||||||
|
sha256 = "0lh4mmdm5vizr08lyz2jc131991dqmyx29n8njgpxa1vjzqd08az";
|
||||||
|
};
|
||||||
|
recipeFile = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid";
|
||||||
|
sha256 = "0chz46wmwmsn4ys59pn7lqs4assqy2hv43rvka7kq61jdl4g6fgs";
|
||||||
|
name = "sayid";
|
||||||
|
};
|
||||||
|
packageRequires = [];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://melpa.org/#/sayid";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
sbt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
sbt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "sbt-mode";
|
pname = "sbt-mode";
|
||||||
@ -28823,22 +28885,22 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
shell-pop = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
shell-pop = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "shell-pop";
|
pname = "shell-pop";
|
||||||
version = "0.63";
|
version = "0.64";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kyagi";
|
owner = "kyagi";
|
||||||
repo = "shell-pop-el";
|
repo = "shell-pop-el";
|
||||||
rev = "4531d234ca471ed80458252cba0ed005a0720b27";
|
rev = "4a3a9d093ad1add792bba764c601aa28de302b34";
|
||||||
sha256 = "0fzywfdaisvvdbcl813n1shz0r8v1k9kcgxgynv5l0i4nkrgkww5";
|
sha256 = "1ybvg048jvijcg9jjfrbllf59pswmp0fd5zwq5x6nwg5wmggplzd";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/44150bddc9b276ab9fb2ab6a92a11383a3ed03b0/recipes/shell-pop";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/44150bddc9b276ab9fb2ab6a92a11383a3ed03b0/recipes/shell-pop";
|
||||||
sha256 = "02s17ln0hbi9gy3di8fksp3mqc7d8ahhf5vwyz4vrc1bg77glxw8";
|
sha256 = "02s17ln0hbi9gy3di8fksp3mqc7d8ahhf5vwyz4vrc1bg77glxw8";
|
||||||
name = "shell-pop";
|
name = "shell-pop";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ cl-lib emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://melpa.org/#/shell-pop";
|
homepage = "https://melpa.org/#/shell-pop";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
@ -33950,12 +34012,12 @@
|
|||||||
yafolding = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
yafolding = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||||
melpaBuild {
|
melpaBuild {
|
||||||
pname = "yafolding";
|
pname = "yafolding";
|
||||||
version = "0.3.1";
|
version = "0.4.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zenozeng";
|
owner = "zenozeng";
|
||||||
repo = "yafolding.el";
|
repo = "yafolding.el";
|
||||||
rev = "f0cc030ddd7ab53fbdf3cdb8b157d8cbcd6a08bd";
|
rev = "57c015ddd7c3454571c80825bc5391d7a10fa1d7";
|
||||||
sha256 = "0xwa490bl59bk0lpga6kag8gif9ln0g4hp42hryhjv5spvgzlsb8";
|
sha256 = "144v8nn4l8ngfdrsgj5nrxp09391gnfrqf950y956cbmqvnlw7z8";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/51bfd6465ee8ee553e8fd466a3bc4e65ab98faed/recipes/yafolding";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/51bfd6465ee8ee553e8fd466a3bc4e65ab98faed/recipes/yafolding";
|
||||||
@ -34120,8 +34182,8 @@
|
|||||||
version = "1.78";
|
version = "1.78";
|
||||||
src = fetchhg {
|
src = fetchhg {
|
||||||
url = "https://www.yatex.org/hgrepos/yatex/";
|
url = "https://www.yatex.org/hgrepos/yatex/";
|
||||||
rev = "bf2497be3ec5";
|
rev = "7bf780961390";
|
||||||
sha256 = "00nx60qvimayxn9ijch9hi35m7dc9drhakb43jnhbasfcxcz4ncs";
|
sha256 = "19nxjabwr3c5sjii2pwlgak751wq9h12yp7xd6nz8i6f75md59xs";
|
||||||
};
|
};
|
||||||
recipeFile = fetchurl {
|
recipeFile = fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/yatex";
|
url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/yatex";
|
||||||
@ -34480,4 +34542,4 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
|
{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.29";
|
version = "1.30";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.geany.org/${name}.tar.bz2";
|
url = "http://download.geany.org/${name}.tar.bz2";
|
||||||
sha256 = "394307596bc908419617e4c33e93eae8b5b733dfc8d01161677b8cbd3a4fb20f";
|
sha256 = "b2dec920c77bc3e88d5f7b0f1dbe4f5200f36df3b346d1aba39323bc30afae6d";
|
||||||
};
|
};
|
||||||
|
|
||||||
NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
|
NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "hexcurse-${version}";
|
name = "hexcurse-${version}";
|
||||||
version = "1.58";
|
version = "1.60.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "LonnyGomes";
|
owner = "LonnyGomes";
|
||||||
repo = "hexcurse";
|
repo = "hexcurse";
|
||||||
rev = "hexcurse-${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0hm9mms2ija3wqba0mkk9i8fhb8q1pam6d6pjlingkzz6ygxnnp7";
|
sha256 = "17ckkxfzbqvvfdnh10if4aqdcq98q3vl6dn1v6f4lhr4ifnyjdlk";
|
||||||
};
|
};
|
||||||
buildInputs = [
|
buildInputs = [ ncurses ];
|
||||||
ncurses
|
|
||||||
];
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "ncurses-based console hexeditor written in C";
|
description = "ncurses-based console hexeditor written in C";
|
||||||
homepage = "https://github.com/LonnyGomes/hexcurse";
|
homepage = "https://github.com/LonnyGomes/hexcurse";
|
||||||
|
@ -139,7 +139,7 @@ composableDerivation {
|
|||||||
multibyteSupport = config.vim.multibyte or false;
|
multibyteSupport = config.vim.multibyte or false;
|
||||||
cscopeSupport = config.vim.cscope or true;
|
cscopeSupport = config.vim.cscope or true;
|
||||||
netbeansSupport = config.netbeans or true; # eg envim is using it
|
netbeansSupport = config.netbeans or true; # eg envim is using it
|
||||||
ximSupport = config.vim.xim or false;
|
ximSupport = config.vim.xim or true; # less than 15KB, needed for deadkeys
|
||||||
|
|
||||||
# by default, compile with darwin support if we're compiling on darwin, but
|
# by default, compile with darwin support if we're compiling on darwin, but
|
||||||
# allow this to be disabled by setting config.vim.darwin to false
|
# allow this to be disabled by setting config.vim.darwin to false
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchhg, cmake, qt4, fftw, graphicsmagick_q16,
|
{ stdenv, fetchhg, fetchpatch, cmake, qt4, fftw, graphicsmagick_q16,
|
||||||
lcms2, lensfun, pkgconfig, libjpeg, exiv2, liblqr1 }:
|
lcms2, lensfun, pkgconfig, libjpeg, exiv2, liblqr1 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -10,6 +10,16 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h";
|
sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Patch fixing build with lensfun >= 0.3, taken from
|
||||||
|
# https://www.linuxquestions.org/questions/slackware-14/photivo-4175530230/#post5296578
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://www.linuxquestions.org/questions/attachment.php?attachmentid=17287&d=1420577220";
|
||||||
|
name = "lensfun-0.3.patch";
|
||||||
|
sha256 = "0ys45x4r4bjjlx0zpd5d56rgjz7k8gxili4r4k8zx3zfka4a3zwv";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = '' # kinda icky
|
postPatch = '' # kinda icky
|
||||||
sed -e '/("@INSTALL@")/d' \
|
sed -e '/("@INSTALL@")/d' \
|
||||||
-e s,@INSTALL@,$out/share/photivo, \
|
-e s,@INSTALL@,$out/share/photivo, \
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala_0_28, sqlite
|
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala_0_28, sqlite
|
||||||
, webkitgtk, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
|
, webkitgtk, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
|
||||||
, gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, wrapGAppsHook
|
, gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, wrapGAppsHook
|
||||||
, gnome_doc_utils, hicolor_icon_theme, itstool }:
|
, gnome_doc_utils, hicolor_icon_theme, itstool, libgdata }:
|
||||||
|
|
||||||
# for dependencies see http://www.yorba.org/projects/shotwell/install/
|
# for dependencies see http://www.yorba.org/projects/shotwell/install/
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "${major}.${minor}";
|
version = "${major}.${minor}";
|
||||||
major = "0.25";
|
major = "0.25";
|
||||||
minor = "5";
|
minor = "90";
|
||||||
name = "shotwell-${version}";
|
name = "shotwell-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/shotwell/${major}/${name}.tar.xz";
|
url = "mirror://gnome/sources/shotwell/${major}/${name}.tar.xz";
|
||||||
sha256 = "10pv3v789hky8h7ladqzzmgvkmgy3c41n4xz0nnyjmpycwl26g29";
|
sha256 = "1xlywhwr27n2q7xid19zzgf6rmmiyf4jq62rxn2af2as8rpkf1pm";
|
||||||
};
|
};
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
|
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
|
||||||
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
which udev libgudev gnome3.gexiv2 hicolor_icon_theme
|
which udev libgudev gnome3.gexiv2 hicolor_icon_theme
|
||||||
libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
|
libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
|
||||||
wrapGAppsHook gnome_doc_utils gnome3.rest gnome3.gcr
|
wrapGAppsHook gnome_doc_utils gnome3.rest gnome3.gcr
|
||||||
gnome3.defaultIconTheme itstool ];
|
gnome3.defaultIconTheme itstool libgdata ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Popular photo organizer for the GNOME desktop";
|
description = "Popular photo organizer for the GNOME desktop";
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
, libv4l
|
, libv4l
|
||||||
, kfilemetadata
|
, kfilemetadata
|
||||||
, ffmpeg
|
, ffmpeg
|
||||||
, phonon-backend-vlc
|
, phonon-backend-gstreamer
|
||||||
, qtquickcontrols
|
, qtquickcontrols
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ unwrapped = kdeApp {
|
|||||||
kwindowsystem
|
kwindowsystem
|
||||||
kfilemetadata
|
kfilemetadata
|
||||||
plasma-framework
|
plasma-framework
|
||||||
phonon-backend-vlc
|
phonon-backend-gstreamer
|
||||||
qtquickcontrols
|
qtquickcontrols
|
||||||
];
|
];
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "albert-${version}";
|
name = "albert-${version}";
|
||||||
version = "0.9.3";
|
version = "0.9.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "manuelschneid3r";
|
owner = "manuelschneid3r";
|
||||||
repo = "albert";
|
repo = "albert";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "026vcnx893wrggx0v07x66vc179mpil2p90lzb16n070qn3jb58n";
|
sha256 = "131ij525rgh2j9m2vydh79wm4bs0p3x27crar9f16rqhz15gkcpl";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake makeQtWrapper ];
|
nativeBuildInputs = [ cmake makeQtWrapper ];
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "emem";
|
pname = "emem";
|
||||||
version = "0.2.29";
|
version = "0.2.31";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
inherit jdk;
|
inherit jdk;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
|
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
|
||||||
sha256 = "1282m4qwdn6phg5x71l470vs1kld8lfhv5k8yvhp9i7frm29b6w7";
|
sha256 = "11kciq73y76c78rpd87bmlnvv4llrf81g3d28y02llnngrbczp7v";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ];
|
buildInputs = [ ];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "josm-${version}";
|
name = "josm-${version}";
|
||||||
version = "11526";
|
version = "11639";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
|
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
|
||||||
sha256 = "1164vfqbbys0032amk85219y0paihvi8jkx0kwc5lramwsk57pld";
|
sha256 = "1xq074jfk58gh5xmm8s9sjbcbnl34dpx7wsgq9n60phciya90sfb";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" ];
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
{ stdenv, callPackage, overrideCC, fetchurl, makeWrapper, pkgconfig
|
{ stdenv, fetchurl, makeWrapper, pkgconfig
|
||||||
, zip, python, zlib, which, icu, libmicrohttpd, lzma, ctpp2, aria2, wget, bc
|
, zip, python, zlib, which, icu, libmicrohttpd, lzma, aria2, wget, bc
|
||||||
, libuuid, glibc, libX11, libXext, libXt, libXrender, glib, dbus, dbus_glib
|
, libuuid, glibc, libX11, libXext, libXt, libXrender, glib, dbus, dbus_glib
|
||||||
, gtk2, gdk_pixbuf, pango, cairo , freetype, fontconfig, alsaLib, atk
|
, gtk2, gdk_pixbuf, pango, cairo, freetype, fontconfig, alsaLib, atk, cmake
|
||||||
|
, xapian, ctpp2, zimlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
xulrunner64_tar = fetchurl {
|
xulrunner64_tar = fetchurl {
|
||||||
url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2;
|
url = http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2;
|
||||||
@ -22,18 +25,38 @@ let
|
|||||||
sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi";
|
sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi";
|
||||||
};
|
};
|
||||||
|
|
||||||
xulrunner_tar = if stdenv.system == "x86_64-linux" then xulrunner64_tar else xulrunner32_tar;
|
xulrunner = if stdenv.system == "x86_64-linux"
|
||||||
xulrunnersdk_tar = if stdenv.system == "x86_64-linux" then xulrunnersdk64_tar else xulrunnersdk32_tar;
|
then { tar = xulrunner64_tar; sdk = xulrunnersdk64_tar; }
|
||||||
pugixml_tar = fetchurl {
|
else { tar = xulrunner32_tar; sdk = xulrunnersdk32_tar; };
|
||||||
url = http://download.kiwix.org/dev/pugixml-1.2.tar.gz;
|
|
||||||
sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
|
ctpp2_ = ctpp2.override { inherit stdenv; };
|
||||||
|
xapian_ = xapian.override { inherit stdenv; };
|
||||||
|
zimlib_ = zimlib.override { inherit stdenv; };
|
||||||
|
|
||||||
|
pugixml = stdenv.mkDerivation rec {
|
||||||
|
version = "1.2";
|
||||||
|
name = "pugixml-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://download.kiwix.org/dev/${name}.tar.gz";
|
||||||
|
sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ cmake ];
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
# not a nice src archive: all the files are in the root :(
|
||||||
|
mkdir ${name}
|
||||||
|
cd ${name}
|
||||||
|
tar -xf ${src}
|
||||||
|
|
||||||
|
# and the build scripts are in there :'(
|
||||||
|
cd scripts
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
xapian = callPackage ../../../development/libraries/xapian { inherit stdenv; };
|
|
||||||
zimlib = callPackage ../../../development/libraries/zimlib { inherit stdenv; };
|
|
||||||
|
|
||||||
in
|
in
|
||||||
with stdenv.lib;
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "kiwix-${version}";
|
name = "kiwix-${version}";
|
||||||
version = "0.9";
|
version = "0.9";
|
||||||
@ -44,57 +67,32 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
zip
|
zip pkgconfig python zlib xapian_ which icu libmicrohttpd
|
||||||
pkgconfig
|
lzma zimlib_ ctpp2_ aria2 wget bc libuuid makeWrapper pugixml
|
||||||
python
|
|
||||||
zlib
|
|
||||||
xapian
|
|
||||||
which
|
|
||||||
icu
|
|
||||||
libmicrohttpd
|
|
||||||
lzma
|
|
||||||
zimlib
|
|
||||||
ctpp2
|
|
||||||
aria2
|
|
||||||
wget
|
|
||||||
bc
|
|
||||||
libuuid
|
|
||||||
makeWrapper
|
|
||||||
];
|
];
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
cd kiwix-*
|
cd kiwix*
|
||||||
mkdir static
|
mkdir static
|
||||||
cp Makefile.in static/
|
cp Makefile.in static/
|
||||||
|
|
||||||
cd src/dependencies
|
cd src/dependencies
|
||||||
cp ${pugixml_tar} pugixml-1.2.tar.gz
|
|
||||||
|
|
||||||
tar -xf ${xulrunner_tar}
|
tar -xf ${xulrunner.tar}
|
||||||
tar -xf ${xulrunnersdk_tar}
|
tar -xf ${xulrunner.sdk}
|
||||||
|
|
||||||
cd ../../..
|
cd ../../..
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configurePhase = ''
|
configureFlags = [
|
||||||
bash ./configure --disable-static --disable-dependency-tracking --prefix=$out --with-libpugixml=SELF
|
"--disable-static"
|
||||||
'';
|
"--disable-staticbins"
|
||||||
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
postInstall = ''
|
||||||
cd src/dependencies
|
|
||||||
make pugixml-1.2/libpugixml.a
|
|
||||||
|
|
||||||
cd ../..
|
|
||||||
bash ./configure --disable-static --disable-dependency-tracking --prefix=$out --with-libpugixml=SELF
|
|
||||||
|
|
||||||
make
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
make install
|
|
||||||
cp -r src/dependencies/xulrunner $out/lib/kiwix
|
cp -r src/dependencies/xulrunner $out/lib/kiwix
|
||||||
|
|
||||||
patchelf --set-interpreter ${glibc.out}/lib/ld-linux${optionalString (stdenv.system == "x86_64-linux") "-x86-64"}.so.2 $out/lib/kiwix/xulrunner/xulrunner
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
|
||||||
|
|
||||||
rm $out/bin/kiwix
|
rm $out/bin/kiwix
|
||||||
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
|
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
|
||||||
|
@ -1,17 +1,39 @@
|
|||||||
{ stdenv, fetchurl
|
{ stdenv, fetchurl, fetchFromGitHub
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, autoconf, automake, intltool, gettext
|
, autoconf, automake, intltool, gettext
|
||||||
, gtk, vte }:
|
, gtk, vte
|
||||||
|
|
||||||
|
# "stable" or "git"
|
||||||
|
, flavour ? "stable"
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert flavour == "stable" || flavour == "git";
|
||||||
|
|
||||||
|
let
|
||||||
|
stuff =
|
||||||
|
if flavour == "stable"
|
||||||
|
then rec {
|
||||||
|
version = "0.9.9.4";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://lilyterm.luna.com.tw/file/lilyterm-${version}.tar.gz";
|
||||||
|
sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
version = "2017-01-06";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Tetralet";
|
||||||
|
repo = "lilyterm";
|
||||||
|
rev = "20cce75d34fd24901c9828469d4881968183c389";
|
||||||
|
sha256 = "0am0y65674rfqy69q4qz8izb8cq0isylr4w5ychi40jxyp68rkv2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "lilyterm-${version}";
|
name = "lilyterm-${version}";
|
||||||
version = "0.9.9.4";
|
|
||||||
|
|
||||||
src = fetchurl {
|
inherit (stuff) src version;
|
||||||
url = "http://lilyterm.luna.com.tw/file/${name}.tar.gz";
|
|
||||||
sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ pkgconfig autoconf automake intltool gettext gtk vte ];
|
buildInputs = [ pkgconfig autoconf automake intltool gettext gtk vte ];
|
||||||
|
|
||||||
@ -29,7 +51,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
homepage = http://lilyterm.luna.com.tw/;
|
homepage = http://lilyterm.luna.com.tw/;
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ AndersonTorres ];
|
maintainers = with maintainers; [ AndersonTorres profpatsch ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc, pkgconfig, unbound }:
|
{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc, openssl, pkgconfig, unbound }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.10.1";
|
version = "0.10.2.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "monero-${version}";
|
name = "monero-${version}";
|
||||||
@ -10,12 +10,12 @@ stdenv.mkDerivation {
|
|||||||
owner = "monero-project";
|
owner = "monero-project";
|
||||||
repo = "monero";
|
repo = "monero";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1zngskpgxz3vqq348h0mab2kv95z6g9ckvqkr77mx15m5z3qi6aw";
|
sha256 = "0jr57lih3smdg4abglfyfhxp69akiyqy889gcpdplwl05vfnhand";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
|
||||||
buildInputs = [ boost miniupnpc unbound ];
|
buildInputs = [ boost miniupnpc openssl unbound ];
|
||||||
|
|
||||||
# these tests take a long time and don't
|
# these tests take a long time and don't
|
||||||
# always complete in the build environment
|
# always complete in the build environment
|
||||||
|
@ -1,30 +1,46 @@
|
|||||||
{ stdenv, fetchurl, zlib } :
|
{ stdenv, fetchurl, zlib } :
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
convert_src = fetchurl {
|
||||||
|
url = http://m.m.i24.cc/osmconvert.c;
|
||||||
|
sha256 = "1mvmb171c1jqxrm80jc7qicwk4kgg7yq694n7ci65g6i284r984x";
|
||||||
|
# version = 0.8.5
|
||||||
|
};
|
||||||
|
|
||||||
|
filter_src = fetchurl {
|
||||||
|
url = http://m.m.i24.cc/osmfilter.c;
|
||||||
|
sha256 = "0vm3bls9jb2cb5b11dn82sxnc22qzkf4ghmnkivycigrwa74i6xl";
|
||||||
|
# version = 1.4.0
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "osmctools-${version}";
|
name = "osmctools-${version}";
|
||||||
version = "0.8.5";
|
version = "0.8.5plus1.4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://m.m.i24.cc/osmconvert.c;
|
|
||||||
sha256 = "9da0940912d1bc62223b962483fd796f92c959c48749806aee5806164e5875d7";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ zlib ];
|
buildInputs = [ zlib ];
|
||||||
|
|
||||||
phases = [ "buildPhase" "installPhase" ];
|
phases = [ "buildPhase" "installPhase" ];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
cc $src -lz -O3 -o osmconvert
|
cc ${convert_src} -lz -O3 -o osmconvert
|
||||||
|
cc ${filter_src} -O3 -o osmfilter
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
mv osmconvert $out/bin
|
mv osmconvert $out/bin
|
||||||
|
mv osmfilter $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Converter between various Open Street Map file formats";
|
description = "Command line tools for transforming Open Street Map files";
|
||||||
homepage = http://wiki.openstreetmap.org/wiki/Osmconvert;
|
homepage = ''
|
||||||
|
http://wiki.openstreetmap.org/wiki/Osmconvert
|
||||||
|
https://wiki.openstreetmap.org/wiki/Osmfilter
|
||||||
|
'';
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "sbagen-1.4.4";
|
name = "sbagen-1.4.4";
|
||||||
|
|
||||||
buildPhases = "buildPhase installPhase";
|
src = fetchurl {
|
||||||
|
url = "http://uazu.net/sbagen/${name}.tgz";
|
||||||
|
sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs ./mk
|
||||||
|
'';
|
||||||
|
|
||||||
buildPhase = "./mk";
|
buildPhase = "./mk";
|
||||||
|
|
||||||
@ -14,14 +21,10 @@ stdenv.mkDerivation {
|
|||||||
cp --target-directory=$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt
|
cp --target-directory=$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
src = fetchurl {
|
meta = {
|
||||||
url = http://uazu.net/sbagen/sbagen-1.4.4.tgz;
|
|
||||||
sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Binaural sound generator";
|
description = "Binaural sound generator";
|
||||||
homepage = http://uazu.net/sbagen;
|
homepage = http://uazu.net/sbagen;
|
||||||
license = "GPL";
|
license = "GPL";
|
||||||
|
platforms = [ "i686-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
32
pkgs/applications/misc/speedread/default.nix
Normal file
32
pkgs/applications/misc/speedread/default.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, perl }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "speedread-unstable-2016-09-21";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pasky";
|
||||||
|
repo = "speedread";
|
||||||
|
rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
|
||||||
|
sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ perl ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -m755 -D speedread $out/bin/speedread
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A simple terminal-based open source Spritz-alike";
|
||||||
|
longDescription = ''
|
||||||
|
Speedread is a command line filter that shows input text as a
|
||||||
|
per-word rapid serial visual presentation aligned on optimal
|
||||||
|
reading points. This allows reading text at a much more rapid
|
||||||
|
pace than usual as the eye can stay fixed on a single place.
|
||||||
|
'';
|
||||||
|
homepage = src.meta.homepage;
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = [ maintainers.oxij ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,17 +1,20 @@
|
|||||||
{ stdenv, fetchFromGitHub, python3Packages }:
|
{ stdenv, fetchFromGitHub, python3Packages, hackrf, rtl-sdr }:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
name = "urh-${version}";
|
name = "urh-${version}";
|
||||||
version = "1.3.3";
|
version = "1.5.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jopohl";
|
owner = "jopohl";
|
||||||
repo = "urh";
|
repo = "urh";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "137dsxs4i0lmxwp31g8fzwpwv1i8rsiir9gxvs5cmnwsrbcrdvxh";
|
sha256 = "1f7hz2zs2dx3v6hpdyz7wyyq1xf641jhpljyhvmjr4zg5m035isa";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [ pyqt5 numpy psutil cython ];
|
buildInputs = [ hackrf rtl-sdr ];
|
||||||
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
pyqt5 numpy psutil cython pyzmq
|
||||||
|
];
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ makeQtWrapper pkgconfig which ];
|
nativeBuildInputs = [ makeQtWrapper pkgconfig which ];
|
||||||
|
|
||||||
|
configureFlags = [ "CXXFLAGS=-std=c++11" ];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
substituteInPlace Local.mak \
|
substituteInPlace Local.mak \
|
||||||
--replace ${qtbase}/bin/moc ${qtbase.dev}/bin/moc \
|
--replace ${qtbase}/bin/moc ${qtbase.dev}/bin/moc \
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -148,8 +148,8 @@ in {
|
|||||||
|
|
||||||
firefox-unwrapped = common {
|
firefox-unwrapped = common {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
version = "51.0.1";
|
version = "52.0";
|
||||||
sha512 = "556e31b717c0640ef5e181e00b9d2a6ea0ace7c16ae04333d0f2e9e120d0ab9efe82a4ca314ef43594c080523edf37953e65dbf694c7428be0a024f3719d8312";
|
sha512 = "bffe5fd9eee240f252bf8a882c46f04551d21f6f58b8da68779cd106ed012ea77ee16bc287c847f8a7b959203c79f1b1d3f50151111f9610e1ca7a57c7b811f7";
|
||||||
updateScript = import ./update.nix {
|
updateScript = import ./update.nix {
|
||||||
attrPath = "firefox-unwrapped";
|
attrPath = "firefox-unwrapped";
|
||||||
inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl;
|
inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl;
|
||||||
@ -158,8 +158,8 @@ in {
|
|||||||
|
|
||||||
firefox-esr-unwrapped = common {
|
firefox-esr-unwrapped = common {
|
||||||
pname = "firefox-esr";
|
pname = "firefox-esr";
|
||||||
version = "45.7.0esr";
|
version = "52.0esr";
|
||||||
sha512 = "6424101b6958191ce654d0619950dfbf98d4aa6bdd979306a2df8d6d30d3fecf1ab44638061a2b4fb1af85fe972f5ff49400e8eeda30cdcb9087c4b110b97a7d";
|
sha512 = "7e191c37af98163131cbba4dcc820a4edc0913d81c3b2493d9aad0a2886e7aed41a990fa5281ccfb08566ecfdfd7df7353063a01ad92d2ec6e1ce19d277b6e67";
|
||||||
updateScript = import ./update.nix {
|
updateScript = import ./update.nix {
|
||||||
attrPath = "firefox-esr-unwrapped";
|
attrPath = "firefox-esr-unwrapped";
|
||||||
versionSuffix = "esr";
|
versionSuffix = "esr";
|
||||||
|
@ -17,7 +17,7 @@ browser:
|
|||||||
, desktopName ? # browserName with first letter capitalized
|
, desktopName ? # browserName with first letter capitalized
|
||||||
(lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
|
(lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
|
||||||
, nameSuffix ? ""
|
, nameSuffix ? ""
|
||||||
, icon ? browserName, libtrick ? true
|
, icon ? browserName
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -52,16 +52,15 @@ let
|
|||||||
gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ];
|
gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ];
|
||||||
gtk_modules = [ libcanberra_gtk2 ];
|
gtk_modules = [ libcanberra_gtk2 ];
|
||||||
|
|
||||||
in
|
in stdenv.mkDerivation {
|
||||||
stdenv.mkDerivation {
|
|
||||||
inherit name;
|
inherit name;
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
name = browserName;
|
name = browserName;
|
||||||
exec = browserName + " %U";
|
exec = "${browserName}${nameSuffix} %U";
|
||||||
inherit icon;
|
inherit icon;
|
||||||
comment = "";
|
comment = "";
|
||||||
desktopName = desktopName;
|
desktopName = "${desktopName}${nameSuffix}";
|
||||||
genericName = "Web Browser";
|
genericName = "Web Browser";
|
||||||
categories = "Application;Network;WebBrowser;";
|
categories = "Application;Network;WebBrowser;";
|
||||||
mimeType = stdenv.lib.concatStringsSep ";" [
|
mimeType = stdenv.lib.concatStringsSep ";" [
|
||||||
@ -84,39 +83,27 @@ stdenv.mkDerivation {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
makeWrapper "${browser}/bin/${browserName}" \
|
makeWrapper "$(readlink -v --canonicalize-existing "${browser}/bin/${browserName}")" \
|
||||||
"$out/bin/${browserName}${nameSuffix}" \
|
"$out/bin/${browserName}${nameSuffix}" \
|
||||||
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
|
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
|
||||||
--suffix LD_LIBRARY_PATH ':' "$libs" \
|
--suffix LD_LIBRARY_PATH ':' "$libs" \
|
||||||
--suffix-each GTK_PATH ':' "$gtk_modules" \
|
--suffix-each GTK_PATH ':' "$gtk_modules" \
|
||||||
--suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
|
--suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
|
||||||
--prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
|
--prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
|
||||||
--set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}"*)" \
|
--suffix PATH ':' "$out/bin" \
|
||||||
|
--set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
|
||||||
${lib.optionalString (!ffmpegSupport) ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"''}
|
${lib.optionalString (!ffmpegSupport) ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"''}
|
||||||
|
|
||||||
${ lib.optionalString libtrick
|
|
||||||
''
|
|
||||||
libdirname="$(echo "${browser}/lib/${browserName}"*)"
|
|
||||||
libdirbasename="$(basename "$libdirname")"
|
|
||||||
mkdir -p "$out/lib/$libdirbasename"
|
|
||||||
ln -s "$libdirname"/* "$out/lib/$libdirbasename"
|
|
||||||
script_location="$(mktemp "$out/lib/$libdirbasename/${browserName}${nameSuffix}.XXXXXX")"
|
|
||||||
mv "$out/bin/${browserName}${nameSuffix}" "$script_location"
|
|
||||||
ln -s "$script_location" "$out/bin/${browserName}${nameSuffix}"
|
|
||||||
''
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -e "${browser}/share/icons" ]; then
|
if [ -e "${browser}/share/icons" ]; then
|
||||||
mkdir -p "$out/share"
|
mkdir -p "$out/share"
|
||||||
ln -s "${browser}/share/icons" "$out/share/icons"
|
ln -s "${browser}/share/icons" "$out/share/icons"
|
||||||
else
|
else
|
||||||
mkdir -p "$out/share/icons/hicolor/128x128/apps"
|
mkdir -p "$out/share/icons/hicolor/128x128/apps"
|
||||||
ln -s "$out/lib/$libdirbasename/browser/icons/mozicon128.png" \
|
ln -s "${browser}/lib/${browserName}-"*"/browser/icons/mozicon128.png" \
|
||||||
"$out/share/icons/hicolor/128x128/apps/${browserName}.png"
|
"$out/share/icons/hicolor/128x128/apps/${browserName}.png"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $out/share/applications
|
install -D -t $out/share/applications $desktopItem/share/applications/*
|
||||||
cp $desktopItem/share/applications/* $out/share/applications
|
|
||||||
|
|
||||||
# For manpages, in case the program supplies them
|
# For manpages, in case the program supplies them
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.13";
|
version = "2.14";
|
||||||
name = "links2-${version}";
|
name = "links2-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/download/links-${version}.tar.bz2";
|
url = "${meta.homepage}/download/links-${version}.tar.bz2";
|
||||||
sha256 = "c252095334a3b199fa791c6f9a9affe2839a7fbd536685ab07851cb7efaa4405";
|
sha256 = "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
@ -35,10 +35,10 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://links.twibright.com/;
|
homepage = http://links.twibright.com/;
|
||||||
description = "A small browser with some graphics support";
|
description = "A small browser with some graphics support";
|
||||||
maintainers = with stdenv.lib.maintainers; [ raskin urkud viric ];
|
maintainers = with maintainers; [ raskin urkud viric ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "machine-${version}";
|
name = "machine-${version}";
|
||||||
version = "0.9.0";
|
version = "0.10.0";
|
||||||
|
|
||||||
goPackagePath = "github.com/docker/machine";
|
goPackagePath = "github.com/docker/machine";
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ buildGoPackage rec {
|
|||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "docker";
|
owner = "docker";
|
||||||
repo = "machine";
|
repo = "machine";
|
||||||
sha256 = "1kl30ylgdsyr9vkdms6caypnixxjv9a322wx416x6266c8lal6k4";
|
sha256 = "1ik0jbp8zqzmg8w1fnf82gdlwrvw4nl40lmins7h8y0q6psrp6gc";
|
||||||
};
|
};
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
# This file was generated by go2nix.
|
# This file was generated by go2nix.
|
||||||
[
|
[
|
||||||
{
|
|
||||||
goPackagePath = "github.com/alexzorin/libvirt-go";
|
|
||||||
fetch = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/alexzorin/libvirt-go";
|
|
||||||
rev = "9359c4feb97212380aa05213fa30c4b7348365f0";
|
|
||||||
sha256 = "02ipw28pjl5ng2xk63r279apc2py1yr5brcpnsc0cnd2imd51fqa";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
goPackagePath = "github.com/docker/machine";
|
goPackagePath = "github.com/docker/machine";
|
||||||
fetch = {
|
fetch = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://github.com/docker/machine";
|
url = "https://github.com/docker/machine";
|
||||||
rev = "bb37dc7806687013c0c3097342ef7db4257655d2";
|
rev = "457c02d06a155827c1c4af9b5ab38c0b6b4e48ea";
|
||||||
sha256 = "0wgyxpwis4hyknqalal1cnvb0v3j8f6lscchhk9ch6i69ngiaf03";
|
sha256 = "0hx5bhjc7q9ml6h6d2a5csqg6vqwjj68599q0cccw3pcfrb34gmd";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
goPackagePath = "github.com/libvirt/libvirt-go";
|
||||||
|
fetch = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/libvirt/libvirt-go";
|
||||||
|
rev = "e9642325d747c353ca7b76b4893d5dbdc81c296f";
|
||||||
|
sha256 = "1822b2kbwyxb2gigbiashcs7v4fsyw7k3sdlqh43ga0l6058fmhl";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,25 +1,21 @@
|
|||||||
# This file was generated by go2nix.
|
# This file was generated by go2nix.
|
||||||
{ stdenv, buildGoPackage, fetchFromGitHub, libvirt }:
|
{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig }:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "docker-machine-kvm-${version}";
|
name = "docker-machine-kvm-${version}";
|
||||||
version = "0.7.0";
|
version = "0.8.2";
|
||||||
|
|
||||||
goPackagePath = "github.com/dhiltgen/docker-machine-kvm";
|
goPackagePath = "github.com/dhiltgen/docker-machine-kvm";
|
||||||
goDeps = ./kvm-deps.nix;
|
goDeps = ./kvm-deps.nix;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "dhiltgen";
|
owner = "dhiltgen";
|
||||||
repo = "docker-machine-kvm";
|
repo = "docker-machine-kvm";
|
||||||
sha256 = "0zkwwkx74vsfd7v38y9sidi759mhdcpm4409l9y4cx0wmkpavlv6";
|
sha256 = "1p7s340wlcjvna3xa2x13nsnixfhbn5b7dhf9cqvxds2slizlm3p";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libvirt ];
|
buildInputs = [ libvirt pkgconfig ];
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
mv $bin/bin/bin $bin/bin/docker-machine-driver-kvm
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/dhiltgen/docker-machine-kvm;
|
homepage = https://github.com/dhiltgen/docker-machine-kvm;
|
||||||
|
@ -5,14 +5,14 @@ let
|
|||||||
then "linux-amd64"
|
then "linux-amd64"
|
||||||
else "darwin-amd64";
|
else "darwin-amd64";
|
||||||
checksum = if stdenv.isLinux
|
checksum = if stdenv.isLinux
|
||||||
then "0njx4vzr0cpr3dba08w0jrlpfb8qrmxq5lqfrk3qrx29x5y6i6hi"
|
then "0cdcabsx5l4jbpyj3zzyz5bnzks6wl64bmzdsnk41x92ar5y5yal"
|
||||||
else "0i21m1pys6rdxcwsk987l08lhzpcbg4bdrznaam02g6jj6jxvq0x";
|
else "12f3b7s5lwpvzx4wj6i6h62n4zjshqf206fxxwpwx9kpsdaw6xdi";
|
||||||
|
|
||||||
# TODO: compile from source
|
# TODO: compile from source
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "minikube";
|
pname = "minikube";
|
||||||
version = "0.16.0";
|
version = "0.17.1";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
|
|||||||
sha256 = "${checksum}";
|
sha256 = "${checksum}";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
@ -28,6 +28,10 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
install -Dm755 ${src} $out/bin/${pname}
|
install -Dm755 ${src} $out/bin/${pname}
|
||||||
|
'';
|
||||||
|
|
||||||
|
fixupPhase = ''
|
||||||
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/bin/minikube"
|
||||||
|
|
||||||
wrapProgram $out/bin/${pname} \
|
wrapProgram $out/bin/${pname} \
|
||||||
--prefix PATH : ${binPath}
|
--prefix PATH : ${binPath}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "terraform-${version}";
|
name = "terraform-${version}";
|
||||||
version = "0.8.7";
|
version = "0.8.8";
|
||||||
|
|
||||||
goPackagePath = "github.com/hashicorp/terraform";
|
goPackagePath = "github.com/hashicorp/terraform";
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ buildGoPackage rec {
|
|||||||
owner = "hashicorp";
|
owner = "hashicorp";
|
||||||
repo = "terraform";
|
repo = "terraform";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0b30m0qc50x84klc8ggc3i83z36l46b1qmc8mpw90mxp07ra8vbw";
|
sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb";
|
||||||
};
|
};
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "terragrunt-${version}";
|
name = "terragrunt-${version}";
|
||||||
version = "0.10.3";
|
version = "0.11.0";
|
||||||
|
|
||||||
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ buildGoPackage rec {
|
|||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "gruntwork-io";
|
owner = "gruntwork-io";
|
||||||
repo = "terragrunt";
|
repo = "terragrunt";
|
||||||
sha256 = "1vyyal4m8qwmlsvd2hriwvgly17iava0siyx7gdhy6dcs8ivc4ng";
|
sha256 = "0i0ds6llkzrn6a0qq53d2pbb6ghc47lnd004zqfbgn3kwiajx73b";
|
||||||
};
|
};
|
||||||
|
|
||||||
goDeps = ./deps.nix;
|
goDeps = ./deps.nix;
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
fetch = {
|
fetch = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://github.com/aws/aws-sdk-go";
|
url = "https://github.com/aws/aws-sdk-go";
|
||||||
rev = "9350193373dc6d4bb4d6af55675c11ca7fc4230c";
|
rev = "78568b07950e5e7948496878fe99b9436add41d4";
|
||||||
sha256 = "0n9b1szwf69mjmf7dgl1b2hv3aqjhih2pvfcjxnv1xgbigm821w2";
|
sha256 = "0qi3q9qx8k055i2hlc6n8agl7nw1hzcw7aqqykla6z0hjv2hq0c3";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -95,8 +95,8 @@
|
|||||||
fetch = {
|
fetch = {
|
||||||
type = "git";
|
type = "git";
|
||||||
url = "https://github.com/urfave/cli";
|
url = "https://github.com/urfave/cli";
|
||||||
rev = "2526b57c56f30b50466c96c4133b1a4ad0f0191f";
|
rev = "9e5b04886c4bfee2ceba1465b8121057355c4e53";
|
||||||
sha256 = "03vvr1wq4pw2fixxsbr1d623hwqxf93d07p8vjml6iyd6k97b15p";
|
sha256 = "18jx6ypc1w02ha37rsx6hhmdwqmnybajd6l54qm07bdb850ip9db";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, gtk3, json_glib, sqlite, libsoup, gettext, vala_0_32
|
{ stdenv, fetchFromGitHub, gtk3, json_glib, sqlite, libsoup, gettext, vala_0_32
|
||||||
, automake, autoconf, libtool, pkgconfig, gnome3, gst_all_1, wrapGAppsHook }:
|
, automake, autoconf, libtool, pkgconfig, gnome3, gst_all_1, wrapGAppsHook
|
||||||
|
, glib_networking }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.3.3";
|
version = "1.3.3";
|
||||||
@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ automake autoconf libtool pkgconfig wrapGAppsHook ];
|
nativeBuildInputs = [ automake autoconf libtool pkgconfig wrapGAppsHook ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.rest
|
gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.rest glib_networking
|
||||||
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav ]);
|
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav ]);
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,42 +1,35 @@
|
|||||||
{ stdenv, fetchgit
|
{ stdenv, fetchFromGitHub
|
||||||
, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
|
, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
|
||||||
, libunwind, ncurses, curl, jansson, texinfo
|
, libunwind, ncurses, curl, jansson, texinfo
|
||||||
, automake, autoconf
|
, automake, autoconf
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
s = rec {
|
name = "freetalk-${version}";
|
||||||
baseName="freetalk";
|
version = "4.1";
|
||||||
version="4.0rc6";
|
|
||||||
name="${baseName}-${version}";
|
src = fetchFromGitHub {
|
||||||
url="https://github.com/GNUFreetalk/freetalk";
|
owner = "GNUFreetalk";
|
||||||
rev = "refs/tags/v${version}";
|
repo = "freetalk";
|
||||||
sha256="1wr3q40f4gwmr0vm6w07d5vzr65q6llk9xxq75klpcj83va5l3xv";
|
rev = "v${version}";
|
||||||
|
sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757";
|
||||||
};
|
};
|
||||||
buildInputs = [
|
|
||||||
|
preConfigure = ''
|
||||||
|
./autogen.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
guile pkgconfig glib loudmouth gmp libidn readline libtool
|
guile pkgconfig glib loudmouth gmp libidn readline libtool
|
||||||
libunwind ncurses curl jansson texinfo
|
libunwind ncurses curl jansson texinfo
|
||||||
autoconf automake
|
autoconf automake
|
||||||
];
|
];
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
inherit (s) name version;
|
|
||||||
inherit buildInputs;
|
|
||||||
src = fetchgit {
|
|
||||||
inherit (s) url rev sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
preConfigure = ''
|
meta = with stdenv.lib; {
|
||||||
patchShebangs .
|
|
||||||
./autogen.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
inherit (s) version;
|
|
||||||
description = "Console XMPP client";
|
description = "Console XMPP client";
|
||||||
license = stdenv.lib.licenses.gpl3Plus ;
|
license = licenses.gpl3Plus ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = with maintainers; [ raskin ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
downloadPage = "http://www.gnu.org/software/freetalk/";
|
downloadPage = "http://www.gnu.org/software/freetalk/";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,11 @@ assert stdenv.isLinux;
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "jitsi-${version}";
|
name = "jitsi-${version}";
|
||||||
version = "2.8.5426";
|
version = "2.10.5550";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip";
|
url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip";
|
||||||
sha256 = "0v7k16in2i57z5amr7k5c3fc8f0azrzrs5dvn729bwbc31z8cjg6";
|
sha256 = "11vjchc3dnzj55x7c62wsm6masvwmij1ifkds917r1qvil1nzz6d";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,20 +8,20 @@
|
|||||||
+#mkdir -p $HOME/.sip-communicator/log
|
+#mkdir -p $HOME/.sip-communicator/log
|
||||||
+
|
+
|
||||||
+cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
|
+cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
|
||||||
|
|
||||||
# Get architecture
|
# Get architecture
|
||||||
ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
|
ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
|
||||||
@@ -6,10 +11,12 @@
|
@@ -6,7 +11,9 @@
|
||||||
# Additionnal JVM arguments
|
# Additionnal JVM arguments
|
||||||
CLIENTARGS=""
|
CLIENTARGS=""
|
||||||
|
|
||||||
+NATIVELIBS="lib/native/linux-64"
|
+NATIVELIBS="lib/native/linux-64"
|
||||||
if [ $ARCH -eq 32 ]
|
if [ $ARCH = 32 ]
|
||||||
then
|
then
|
||||||
CLIENTARGS="-client -Xmx256m"
|
CLIENTARGS="-client -Xmx256m"
|
||||||
+ NATIVELIBS="lib/native/linux"
|
+ NATIVELIBS="lib/native/linux"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PATH=$PATH:native
|
export PATH=$PATH:native
|
||||||
-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
|
-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
|
||||||
+LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
|
+LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user