Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-03-07 21:59:32 +01:00
commit b86b7c04a3
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
297 changed files with 7053 additions and 3776 deletions

View File

@ -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.

View File

@ -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
View 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);
}

View File

@ -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>";

View File

@ -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;
} }

View File

@ -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>

View File

@ -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;

View File

@ -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>
NixOSs default <emphasis>display manager</emphasis>is SLiM. NixOSs 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 KDEs You can, for example, select KDEs
<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>

View File

@ -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>

View File

@ -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>

View File

@ -274,6 +274,8 @@ in {
RestartSec = "500ms"; RestartSec = "500ms";
}; };
}; };
environment.variables.PULSE_COOKIE = "${stateDir}/.config/pulse/cookie";
}) })
]; ];

View File

@ -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
''; '';

View File

@ -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 = {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}; };

View File

@ -214,8 +214,8 @@
GRKERNSEC_CONFIG_SERVER y GRKERNSEC_CONFIG_SERVER y
GRKERNSEC_CONFIG_SECURITY y GRKERNSEC_CONFIG_SECURITY y
''; '';
}; };
} };
</programlisting> </programlisting>
</para> </para>

View File

@ -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 {

View File

@ -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.";
}; };

View File

@ -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}
''; '';

View File

@ -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";

View File

@ -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

View File

@ -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.";
}; };
}; };

View File

@ -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.

View File

@ -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";
}; };
}; };

View File

@ -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

View File

@ -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>: dont 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

View File

@ -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.";
}; };

View File

@ -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}";
};
}; };
}; };
} }

View File

@ -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 {

View File

@ -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

View 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;
};
}

View File

@ -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) ++

View File

@ -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";

View File

@ -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";
};
};
})
]; ];
} }

View File

@ -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";

View File

@ -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 {

View File

@ -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.
''; '';

View File

@ -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

View File

@ -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"
'';
};
} }

View File

@ -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)

View File

@ -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
View 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 ];
};
})

View File

@ -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'");
''; '';
}) })

View File

@ -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;
}; };
}; };

View File

@ -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
}; };

View File

@ -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;
}; };
}; };

View File

@ -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;
}; };
} }

View File

@ -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;
}; };
} }

View File

@ -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;
}; };
} }

View File

@ -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 ];
}; };
} }

View File

@ -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;
}; };
} }

View 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);

View 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++)

View 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 ];
};
}

View 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

View 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 $@ $<

View File

@ -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 ];
}; };
} }

View File

@ -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 ];

View File

@ -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'';

View File

@ -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; {

View File

@ -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 = ''

View File

@ -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";

View File

@ -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

View File

@ -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

View File

@ -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;
}; };
}) {}; }) {};
} }

View File

@ -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;

View File

@ -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";

View File

@ -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

View File

@ -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, \

View File

@ -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";

View File

@ -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;

View File

@ -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 ];

View File

@ -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 = [ ];

View File

@ -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" ];

View File

@ -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 \

View File

@ -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;
}; };
} }

View File

@ -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

View File

@ -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;
}; };
} }

View File

@ -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" ];
}; };
} }

View 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 ];
};
}

View File

@ -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;

View File

@ -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

View File

@ -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";

View File

@ -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

View File

@ -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;
}; };
} }

View File

@ -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 = ''

View File

@ -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";
}; };
} }
] ]

View File

@ -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;

View File

@ -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}

View File

@ -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 = ''

View File

@ -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;

View File

@ -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";
}; };
} }
] ]

View File

@ -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 = {

View File

@ -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/";
}; };
} }

View File

@ -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";
}; };

View File

@ -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