Merge branch 'master' into staging

There were some conflicts in python modules, commented at #28314.
This commit is contained in:
Vladimír Čunát 2017-08-29 10:51:54 +02:00
commit 2858c41823
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
300 changed files with 6475 additions and 4510 deletions

View file

@ -2,115 +2,204 @@
## User Guide ## User Guide
Several versions of Python are available on Nix as well as a high amount of
packages. The default interpreter is CPython 2.7.
### Using Python ### Using Python
#### Overview
Several versions of the Python interpreter are available on Nix, as well as a
high amount of packages. The attribute `python` refers to the default
interpreter, which is currently CPython 2.7. It is also possible to refer to
specific versions, e.g. `python35` refers to CPython 3.5, and `pypy` refers to
the default PyPy interpreter.
Python is used a lot, and in different ways. This affects also how it is
packaged. In the case of Python on Nix, an important distinction is made between
whether the package is considered primarily an application, or whether it should
be used as a library, i.e., of primary interest are the modules in
`site-packages` that should be importable.
In the Nixpkgs tree Python applications can be found throughout, depending on
what they do, and are called from the main package set. Python libraries,
however, are in separate sets, with one set per interpreter version.
The interpreters have several common attributes. One of these attributes is
`pkgs`, which is a package set of Python libraries for this specific
interpreter. E.g., the `toolz` package corresponding to the default interpreter
is `python.pkgs.toolz`, and the CPython 3.5 version is `python35.pkgs.toolz`.
The main package set contains aliases to these package sets, e.g.
`pythonPackages` refers to `python.pkgs` and `python35Packages` to
`python35.pkgs`.
#### Installing Python and packages #### Installing Python and packages
It is important to make a distinction between Python packages that are The Nix and NixOS manuals explain how packages are generally installed. In the
used as libraries, and applications that are written in Python. case of Python and Nix, it is important to make a distinction between whether the
package is considered an application or a library.
Applications on Nix are installed typically into your user Applications on Nix are typically installed into your user
profile imperatively using `nix-env -i`, and on NixOS declaratively by adding the profile imperatively using `nix-env -i`, and on NixOS declaratively by adding the
package name to `environment.systemPackages` in `/etc/nixos/configuration.nix`. package name to `environment.systemPackages` in `/etc/nixos/configuration.nix`.
Dependencies such as libraries are automatically installed and should not be Dependencies such as libraries are automatically installed and should not be
installed explicitly. installed explicitly.
The same goes for Python applications and libraries. Python applications can be The same goes for Python applications and libraries. Python applications can be
installed in your profile, but Python libraries you would like to use to develop installed in your profile. But Python libraries you would like to use for
cannot. If you do install libraries in your profile, then you will end up with development cannot be installed, at least not individually, because they won't
import errors. be able to find each other resulting in import errors. Instead, it is possible
to create an environment with `python.buildEnv` or `python.withPackages` where
the interpreter and other executables are able to find each other and all of the
modules.
#### Python environments using `nix-shell` In the following examples we create an environment with Python 3.5, `numpy` and
`toolz`. As you may imagine, there is one limitation here, and that's that
you can install only one environment at a time. You will notice the complaints
about collisions when you try to install a second environment.
The recommended method for creating Python environments for development is with ##### Environment defined in separate `.nix` file
`nix-shell`. Executing
```sh Create a file, e.g. `build.nix`, with the following expression
$ nix-shell -p python35Packages.numpy python35Packages.toolz ```nix
with import <nixpkgs> {};
python35.withPackages (ps: with ps; [ numpy toolz ])
```
and install it in your profile with
```shell
nix-env -if build.nix
```
Now you can use the Python interpreter, as well as the extra packages (`numpy`,
`toolz`) that you added to the environment.
##### Environment defined in `~/.config/nixpkgs/config.nix`
If you prefer to, you could also add the environment as a package override to the Nixpkgs set, e.g.
using `config.nix`,
```nix
{ # ...
packageOverrides = pkgs: with pkgs; {
myEnv = python35.withPackages (ps: with ps; [ numpy toolz ]);
};
}
```
and install it in your profile with
```shell
nix-env -iA nixpkgs.myEnv
```
The environment is is installed by referring to the attribute, and considering
the `nixpkgs` channel was used.
##### Environment defined in `/etc/nixos/configuration.nix`
For the sake of completeness, here's another example how to install the environment system-wide.
```nix
{ # ...
environment.systemPackages = with pkgs; [
(python35.withPackages(ps: with ps; [ numpy toolz ]))
];
}
``` ```
opens a Nix shell which has available the requested packages and dependencies. #### Temporary Python environment with `nix-shell`
Now you can launch the Python interpreter (which is itself a dependency)
The examples in the previous section showed how to install a Python environment
into a profile. For development you may need to use multiple environments.
`nix-shell` gives the possibility to temporarily load another environment, akin
to `virtualenv`.
There are two methods for loading a shell with Python packages. The first and recommended method
is to create an environment with `python.buildEnv` or `python.withPackages` and load that. E.g.
```sh
$ nix-shell -p 'python35.withPackages(ps: with ps; [ numpy toolz ])'
```
opens a shell from which you can launch the interpreter
```sh ```sh
[nix-shell:~] python3 [nix-shell:~] python3
``` ```
The other method, which is not recommended, does not create an environment and requires you to list the packages directly,
If the packages were not available yet in the Nix store, Nix would download or ```sh
build them automatically. A convenient option with `nix-shell` is the `--run` $ nix-shell -p python35.pkgs.numpy python35.pkgs.toolz
option, with which you can execute a command in the `nix-shell`. Let's say we ```
want the above environment and directly run the Python interpreter Again, it is possible to launch the interpreter from the shell.
The Python interpreter has the attribute `pkgs` which contains all Python libraries for that specific interpreter.
##### Load environment from `.nix` expression
As explained in the Nix manual, `nix-shell` can also load an
expression from a `.nix` file. Say we want to have Python 3.5, `numpy`
and `toolz`, like before, in an environment. Consider a `shell.nix` file
with
```nix
with import <nixpkgs> {};
python35.withPackages (ps: [ps.numpy ps.toolz])
```
Executing `nix-shell` gives you again a Nix shell from which you can run Python.
What's happening here?
1. We begin with importing the Nix Packages collections. `import <nixpkgs>` imports the `<nixpkgs>` function, `{}` calls it and the `with` statement brings all attributes of `nixpkgs` in the local scope. These attributes form the main package set.
2. Then we create a Python 3.5 environment with the `withPackages` function.
3. The `withPackages` function expects us to provide a function as an argument that takes the set of all python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` from the package set.
##### Execute command with `--run`
A convenient option with `nix-shell` is the `--run`
option, with which you can execute a command in the `nix-shell`. We can
e.g. directly open a Python shell
```sh ```sh
$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3" $ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3"
``` ```
or run a script
This way you can use the `--run` option also to directly run a script
```sh ```sh
$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3 myscript.py" $ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3 myscript.py"
``` ```
In fact, for this specific use case there is a more convenient method. You can ##### `nix-shell` as shebang
In fact, for the second use case, there is a more convenient method. You can
add a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script add a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script
specifying which dependencies Nix shell needs. With the following shebang, you specifying which dependencies `nix-shell` needs. With the following shebang, you
can use `nix-shell myscript.py` and it will make available all dependencies and can just execute `./myscript.py`, and it will make available all dependencies and
run the script in the `python3` shell. run the script in the `python3` shell.
```py ```py
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3Packages.numpy #! nix-shell -i 'python3.withPackages(ps: [ps.numpy])'
import numpy import numpy
print(numpy.__version__) print(numpy.__version__)
``` ```
Likely you do not want to type your dependencies each and every time. What you
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`
and `toolz`, like before, in an environment. With a `shell.nix` file
containing
```nix
with import <nixpkgs> {};
(pkgs.python35.withPackages (ps: [ps.numpy ps.toolz])).env
```
executing `nix-shell` gives you again a Nix shell from which you can run Python.
What's happening here?
1. We begin with importing the Nix Packages collections. `import <nixpkgs>` import the `<nixpkgs>` function, `{}` calls it and the `with` statement brings all attributes of `nixpkgs` in the local scope. Therefore we can now use `pkgs`.
2. Then we create a Python 3.5 environment with the `withPackages` function.
3. The `withPackages` function expects us to provide a function as an argument that takes the set of all python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` from the package set.
4. And finally, for in interactive use we return the environment by using the `env` attribute.
### Developing with Python ### Developing with Python
Now that you know how to get a working Python environment with Nix, it is time
to go forward and start actually developing with Python. We will first have a
look at how Python packages are packaged on Nix. Then, we will look at how you
can use development mode with your code.
Now that you know how to get a working Python environment on Nix, it is time to go forward and start actually developing with Python. #### Packaging a library
We will first have a look at how Python packages are packaged on Nix. Then, we will look how you can use development mode with your code.
#### Python packaging on Nix With Nix all packages are built by functions. The main function in Nix for
building Python libraries is `buildPythonPackage`. Let's see how we can build the
On Nix all packages are built by functions. The main function in Nix for building Python packages is [`buildPythonPackage`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/python/build-python-package.nix). `toolz` package.
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 { toolz = buildPythonPackage rec {
name = "toolz-${version}"; pname = "toolz";
version = "0.7.4"; version = "0.7.4";
name = "${pname}-${version}";
src = pkgs.fetchurl { src = fetchPypi {
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; inherit pname version;
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd"; sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
}; };
doCheck = false;
meta = { meta = {
homepage = "http://github.com/pytoolz/toolz/"; homepage = "http://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities"; description = "List processing tools and functional utilities";
@ -122,63 +211,37 @@ Let's see how we would build the `toolz` package. According to [`python-packages
``` ```
What happens here? The function `buildPythonPackage` is called and as argument What happens here? The function `buildPythonPackage` is called and as argument
it accepts a set. In this case the set is a recursive set ([`rec`](http://nixos.org/nix/manual/#sec-constructs)). it accepts a set. In this case the set is a recursive set, `rec`. One of the
One of the arguments is the name of the package, which consists of a basename arguments is the name of the package, which consists of a basename (generally
(generally following the name on PyPi) and a version. Another argument, `src` following the name on PyPi) and a version. Another argument, `src` specifies the
specifies the source, which in this case is fetched from an url. `fetchurl` not source, which in this case is fetched from PyPI using the helper function
only downloads the target file, but also validates its hash. Furthermore, we `fetchPypi`. The argument `doCheck` is used to set whether tests should be run
specify some (optional) [meta information](http://nixos.org/nixpkgs/manual/#chap-meta). when building the package. Furthermore, we specify some (optional) meta
information. The output of the function is a derivation.
The output of the function is a derivation, which is an attribute with the name
`toolz` of the set `pythonPackages`. Actually, sets are created for all interpreter versions,
so e.g. `python27Packages`, `python35Packages` and `pypyPackages`.
An expression for `toolz` can be found in the Nixpkgs repository. As explained
in the introduction of this Python section, a derivation of `toolz` is available
for each interpreter version, e.g. `python35.pkgs.toolz` refers to the `toolz`
derivation corresponding to the CPython 3.5 interpreter.
The above example works when you're directly working on The above example works when you're directly working on
`pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though, `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
you will want to test a Nix expression outside of the Nixpkgs tree. If you you will want to test a Nix expression outside of the Nixpkgs tree.
create a `shell.nix` file with the following contents
```nix The following expression creates a derivation for the `toolz` package,
with import <nixpkgs> {}; and adds it along with a `numpy` package to a Python environment.
pkgs.python35Packages.buildPythonPackage rec {
name = "toolz-${version}";
version = "0.8.0";
src = pkgs.fetchurl {
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479";
};
doCheck = false;
meta = {
homepage = "http://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities";
license = licenses.bsd3;
maintainers = with maintainers; [ fridh ];
};
}
```
and then execute `nix-shell` will result in an environment in which you can use
Python 3.5 and the `toolz` package. As you can see we had to explicitly mention
for which Python version we want to build a package.
The above example considered only a single package. Generally you will want to use multiple packages.
If we create a `shell.nix` file with the following contents
```nix ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
( let ( let
toolz = pkgs.python35Packages.buildPythonPackage rec { my_toolz = python35.pkgs.buildPythonPackage rec {
name = "toolz-${version}"; pname = "toolz";
version = "0.8.0"; version = "0.7.4";
name = "${pname}-${version}";
src = pkgs.fetchurl { src = python35.pkgs.fetchPypi {
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; inherit pname version;
sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479"; sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
}; };
doCheck = false; doCheck = false;
@ -189,24 +252,24 @@ with import <nixpkgs> {};
}; };
}; };
in pkgs.python35.withPackages (ps: [ps.numpy toolz]) in python35.withPackages (ps: [ps.numpy my_toolz])
).env ).env
``` ```
Executing `nix-shell` will result in an environment in which you can use
Python 3.5 and the `toolz` package. As you can see we had to explicitly mention
for which Python version we want to build a package.
and again execute `nix-shell`, then we get a Python 3.5 environment with our So, what did we do here? Well, we took the Nix expression that we used earlier
locally defined package as well as `numpy` which is build according to the to build a Python environment, and said that we wanted to include our own
definition in Nixpkgs. What did we do here? Well, we took the Nix expression version of `toolz`, named `my_toolz`. To introduce our own package in the scope
that we used earlier to build a Python environment, and said that we wanted to of `withPackages` we used a `let` expression. You can see that we used
include our own version of `toolz`. To introduce our own package in the scope of `ps.numpy` to select numpy from the nixpkgs package set (`ps`). We did not take
`withPackages` we used a `toolz` from the Nixpkgs package set this time, but instead took our own version
[`let`](http://nixos.org/nix/manual/#sec-constructs) expression. that we introduced with the `let` expression.
You can see that we used `ps.numpy` to select numpy from the nixpkgs package set (`ps`).
But we do not take `toolz` from the nixpkgs package set this time.
Instead, `toolz` will resolve to our local definition that we introduced with `let`.
### Handling dependencies #### Handling dependencies
Our example, `toolz`, doesn't have any dependencies on other Python Our example, `toolz`, does not have any dependencies on other Python
packages or system libraries. According to the manual, `buildPythonPackage` packages or system libraries. According to the manual, `buildPythonPackage`
uses the arguments `buildInputs` and `propagatedBuildInputs` to specify dependencies. If something is uses the arguments `buildInputs` and `propagatedBuildInputs` to specify dependencies. If something is
exclusively a build-time dependency, then the dependency should be included as a exclusively a build-time dependency, then the dependency should be included as a
@ -713,63 +776,6 @@ Both are also exported in `nix-shell`.
## FAQ ## FAQ
### How can I install a working Python environment?
As explained in the user's guide installing individual Python packages
imperatively with `nix-env -i` or declaratively in `environment.systemPackages`
is not supported. However, it is possible to install a Python environment with packages (`python.buildEnv`).
In the following examples we create an environment with Python 3.5, `numpy` and `ipython`.
As you might imagine there is one limitation here, and that's you can install
only one environment at a time. You will notice the complaints about collisions
when you try to install a second environment.
#### Environment defined in separate `.nix` file
Create a file, e.g. `build.nix`, with the following expression
```nix
with import <nixpkgs> {};
pkgs.python35.withPackages (ps: with ps; [ numpy ipython ])
```
and install it in your profile with
```shell
nix-env -if build.nix
```
Now you can use the Python interpreter, as well as the extra packages that you added to the environment.
#### Environment defined in `~/.config/nixpkgs/config.nix`
If you prefer to, you could also add the environment as a package override to the Nixpkgs set.
```nix
{ # ...
packageOverrides = pkgs: with pkgs; {
myEnv = python35.withPackages (ps: with ps; [ numpy ipython ]);
};
}
```
and install it in your profile with
```shell
nix-env -iA nixpkgs.myEnv
```
We're installing using the attribute path and assume the channels is named `nixpkgs`.
Note that I'm using the attribute path here.
#### Environment defined in `/etc/nixos/configuration.nix`
For the sake of completeness, here's another example how to install the environment system-wide.
```nix
{ # ...
environment.systemPackages = with pkgs; [
(python35.withPackages(ps: with ps; [ numpy ipython ]))
];
}
```
### How to solve circular dependencies? ### How to solve circular dependencies?
Consider the packages `A` and `B` that depend on each other. When packaging `B`, Consider the packages `A` and `B` that depend on each other. When packaging `B`,

View file

@ -97,6 +97,7 @@
canndrew = "Andrew Cann <shum@canndrew.org>"; canndrew = "Andrew Cann <shum@canndrew.org>";
carlsverre = "Carl Sverre <accounts@carlsverre.com>"; carlsverre = "Carl Sverre <accounts@carlsverre.com>";
casey = "Casey Rodarmor <casey@rodarmor.net>"; casey = "Casey Rodarmor <casey@rodarmor.net>";
caugner = "Claas Augner <nixos@caugner.de>";
cdepillabout = "Dennis Gosnell <cdep.illabout@gmail.com>"; cdepillabout = "Dennis Gosnell <cdep.illabout@gmail.com>";
cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>"; cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
changlinli = "Changlin Li <mail@changlinli.com>"; changlinli = "Changlin Li <mail@changlinli.com>";
@ -215,6 +216,7 @@
garrison = "Jim Garrison <jim@garrison.cc>"; garrison = "Jim Garrison <jim@garrison.cc>";
gavin = "Gavin Rogers <gavin@praxeology.co.uk>"; gavin = "Gavin Rogers <gavin@praxeology.co.uk>";
gebner = "Gabriel Ebner <gebner@gebner.org>"; gebner = "Gabriel Ebner <gebner@gebner.org>";
geistesk = "Alvar Penning <post@0x21.biz>";
georgewhewell = "George Whewell <georgerw@gmail.com>"; georgewhewell = "George Whewell <georgerw@gmail.com>";
gilligan = "Tobias Pflug <tobias.pflug@gmail.com>"; gilligan = "Tobias Pflug <tobias.pflug@gmail.com>";
giogadi = "Luis G. Torres <lgtorres42@gmail.com>"; giogadi = "Luis G. Torres <lgtorres42@gmail.com>";
@ -578,6 +580,7 @@
thoughtpolice = "Austin Seipp <aseipp@pobox.com>"; thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
timbertson = "Tim Cuthbertson <tim@gfxmonk.net>"; timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
titanous = "Jonathan Rudenberg <jonathan@titanous.com>"; titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
tnias = "Philipp Bartsch <phil@grmr.de>";
tohl = "Tomas Hlavaty <tom@logand.com>"; tohl = "Tomas Hlavaty <tom@logand.com>";
tokudan = "Daniel Frank <git@danielfrank.net>"; tokudan = "Daniel Frank <git@danielfrank.net>";
tomberek = "Thomas Bereknyei <tomberek@gmail.com>"; tomberek = "Thomas Bereknyei <tomberek@gmail.com>";

View file

@ -1,2 +1,2 @@
# Expose the minimum required version for evaluating Nixpkgs # Expose the minimum required version for evaluating Nixpkgs
"1.10" "1.11"

View file

@ -31,18 +31,21 @@ EVAL_FILE = {
def get_maintainers(attr_name): def get_maintainers(attr_name):
nixname = attr_name.split('.') try:
meta_json = subprocess.check_output([ nixname = attr_name.split('.')
'nix-instantiate', meta_json = subprocess.check_output([
'--eval', 'nix-instantiate',
'--strict', '--eval',
'-A', '--strict',
'.'.join(nixname[1:]) + '.meta', '-A',
EVAL_FILE[nixname[0]], '.'.join(nixname[1:]) + '.meta',
'--json']) EVAL_FILE[nixname[0]],
meta = json.loads(meta_json) '--json'])
if meta.get('maintainers'): meta = json.loads(meta_json)
return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)] if meta.get('maintainers'):
return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)]
except:
return []
@click.command() @click.command()

View file

@ -0,0 +1,61 @@
{ config, lib, pkgs, ... }:
with lib;
let
hpssacli = pkgs.stdenv.mkDerivation rec {
name = "hpssacli-${version}";
version = "2.40-13.0";
src = pkgs.fetchurl {
url = "http://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/${name}_amd64.deb";
sha256 = "11w7fwk93lmfw0yya4jpjwdmgjimqxx6412sqa166g1pz4jil4sw";
};
nativeBuildInputs = [ pkgs.dpkg ];
unpackPhase = "dpkg -x $src ./";
installPhase = ''
mkdir -p $out/bin $out/share/doc $out/share/man
mv opt/hp/hpssacli/bld/{hpssascripting,hprmstr,hpssacli} $out/bin/
mv opt/hp/hpssacli/bld/*.{license,txt} $out/share/doc/
mv usr/man $out/share/
for file in $out/bin/*; do
chmod +w $file
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath ${lib.makeLibraryPath [ pkgs.stdenv.cc.cc ]} \
$file
done
'';
dontStrip = true;
meta = with lib; {
description = "HP Smart Array CLI";
homepage = http://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/;
license = licenses.unfreeRedistributable;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ volth ];
};
};
in {
###### interface
options = {
hardware.raid.HPSmartArray = {
enable = mkEnableOption "HP Smart Array kernel modules and CLI utility";
};
};
###### implementation
config = mkIf config.hardware.raid.HPSmartArray.enable {
boot.initrd.kernelModules = [ "sg" ]; /* hpssacli wants it */
boot.initrd.availableKernelModules = [ "hpsa" ];
environment.systemPackages = [ hpssacli ];
};
}

View file

@ -43,6 +43,7 @@
./hardware/nitrokey.nix ./hardware/nitrokey.nix
./hardware/opengl.nix ./hardware/opengl.nix
./hardware/pcmcia.nix ./hardware/pcmcia.nix
./hardware/raid/hpsa.nix
./hardware/usb-wwan.nix ./hardware/usb-wwan.nix
./hardware/video/amdgpu.nix ./hardware/video/amdgpu.nix
./hardware/video/amdgpu-pro.nix ./hardware/video/amdgpu-pro.nix
@ -269,6 +270,7 @@
./services/mail/rspamd.nix ./services/mail/rspamd.nix
./services/mail/rmilter.nix ./services/mail/rmilter.nix
./services/mail/nullmailer.nix ./services/mail/nullmailer.nix
./services/misc/airsonic.nix
./services/misc/apache-kafka.nix ./services/misc/apache-kafka.nix
./services/misc/autofs.nix ./services/misc/autofs.nix
./services/misc/autorandr.nix ./services/misc/autorandr.nix
@ -562,6 +564,7 @@
./services/security/tor.nix ./services/security/tor.nix
./services/security/torify.nix ./services/security/torify.nix
./services/security/torsocks.nix ./services/security/torsocks.nix
./services/security/usbguard.nix
./services/security/vault.nix ./services/security/vault.nix
./services/system/cgmanager.nix ./services/system/cgmanager.nix
./services/system/cloud-init.nix ./services/system/cloud-init.nix

View file

@ -1,4 +1,4 @@
{ lib, ... }: { lib, pkgs, ... }:
with lib; with lib;
@ -14,11 +14,16 @@ with lib;
(mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ]) (mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ])
(mkRenamedOptionModule [ "services" "cadvisor" "host" ] [ "services" "cadvisor" "listenAddress" ]) (mkRenamedOptionModule [ "services" "cadvisor" "host" ] [ "services" "cadvisor" "listenAddress" ])
(mkChangedOptionModule [ "services" "printing" "gutenprint" ] [ "services" "printing" "drivers" ]
(config:
let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config;
in if enabled then [ pkgs.gutenprint ] else [ ]))
(mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ]) (mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ])
(mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ]) (mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ])
(mkRenamedOptionModule [ "services" "graphite" "web" "host" ] [ "services" "graphite" "web" "listenAddress" ]) (mkRenamedOptionModule [ "services" "graphite" "web" "host" ] [ "services" "graphite" "web" "listenAddress" ])
(mkRenamedOptionModule [ "services" "logstash" "address" ] [ "services" "logstash" "listenAddress" ]) (mkRenamedOptionModule [ "services" "i2pd" "extIp" ] [ "services" "i2pd" "address" ])
(mkRenamedOptionModule [ "services" "kibana" "host" ] [ "services" "kibana" "listenAddress" ]) (mkRenamedOptionModule [ "services" "kibana" "host" ] [ "services" "kibana" "listenAddress" ])
(mkRenamedOptionModule [ "services" "logstash" "address" ] [ "services" "logstash" "listenAddress" ])
(mkRenamedOptionModule [ "services" "mpd" "network" "host" ] [ "services" "mpd" "network" "listenAddress" ]) (mkRenamedOptionModule [ "services" "mpd" "network" "host" ] [ "services" "mpd" "network" "listenAddress" ])
(mkRenamedOptionModule [ "services" "neo4j" "host" ] [ "services" "neo4j" "listenAddress" ]) (mkRenamedOptionModule [ "services" "neo4j" "host" ] [ "services" "neo4j" "listenAddress" ])
(mkRenamedOptionModule [ "services" "shout" "host" ] [ "services" "shout" "listenAddress" ]) (mkRenamedOptionModule [ "services" "shout" "host" ] [ "services" "shout" "listenAddress" ])

View file

@ -0,0 +1,117 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.airsonic;
in {
options = {
services.airsonic = {
enable = mkEnableOption "Airsonic, the Free and Open Source media streaming server (fork of Subsonic and Libresonic)";
user = mkOption {
type = types.str;
default = "airsonic";
description = "User account under which airsonic runs.";
};
home = mkOption {
type = types.path;
default = "/var/lib/airsonic";
description = ''
The directory where Airsonic will create files.
Make sure it is writable.
'';
};
listenAddress = mkOption {
type = types.string;
default = "127.0.0.1";
description = ''
The host name or IP address on which to bind Airsonic.
Only relevant if you have multiple network interfaces and want
to make Airsonic available on only one of them. The default value
will bind Airsonic to all available network interfaces.
'';
};
port = mkOption {
type = types.int;
default = 4040;
description = ''
The port on which Airsonic will listen for
incoming HTTP traffic. Set to 0 to disable.
'';
};
contextPath = mkOption {
type = types.path;
default = "/";
description = ''
The context path, i.e., the last part of the Airsonic
URL. Typically '/' or '/airsonic'. Default '/'
'';
};
maxMemory = mkOption {
type = types.int;
default = 100;
description = ''
The memory limit (max Java heap size) in megabytes.
Default: 100
'';
};
transcoders = mkOption {
type = types.listOf types.path;
default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
defaultText= [ "\${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
description = ''
List of paths to transcoder executables that should be accessible
from Airsonic. Symlinks will be created to each executable inside
${cfg.home}/transcoders.
'';
};
};
};
config = mkIf cfg.enable {
systemd.services.airsonic = {
description = "Airsonic Media Server";
after = [ "local-fs.target" "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
# Install transcoders.
rm -rf ${cfg.home}/transcode
mkdir -p ${cfg.home}/transcode
for exe in ${toString cfg.transcoders}; do
ln -sf "$exe" ${cfg.home}/transcode
done
'';
serviceConfig = {
ExecStart = ''
${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \
-Dairsonic.home=${cfg.home} \
-Dserver.address=${cfg.listenAddress} \
-Dserver.port=${toString cfg.port} \
-Dairsonic.contextPath=${cfg.contextPath} \
-Djava.awt.headless=true \
-verbose:gc \
-jar ${pkgs.airsonic}/webapps/airsonic.war
'';
Restart = "always";
User = "airsonic";
UMask = "0022";
};
};
users.extraUsers.airsonic = {
description = "Airsonic service user";
name = cfg.user;
home = cfg.home;
createHome = true;
};
};
}

View file

@ -28,15 +28,15 @@ let
}; };
mkKeyedEndpointOpt = name: addr: port: keyFile: mkKeyedEndpointOpt = name: addr: port: keyFile:
(mkEndpointOpt name addr port) // { (mkEndpointOpt name addr port) // {
keys = mkOption { keys = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
description = '' description = ''
File to persist ${lib.toUpper name} keys. File to persist ${lib.toUpper name} keys.
''; '';
};
}; };
};
commonTunOpts = let commonTunOpts = let
i2cpOpts = { i2cpOpts = {
@ -59,7 +59,7 @@ let
description = "Number of ElGamal/AES tags to send."; description = "Number of ElGamal/AES tags to send.";
default = 40; default = 40;
}; };
destination = mkOption { destination = mkOption {
type = types.str; type = types.str;
description = "Remote endpoint, I2P hostname or b32.i2p address."; description = "Remote endpoint, I2P hostname or b32.i2p address.";
}; };
@ -70,88 +70,91 @@ let
}; };
} // mkEndpointOpt name "127.0.0.1" 0; } // mkEndpointOpt name "127.0.0.1" 0;
i2pdConf = pkgs.writeText "i2pd.conf" i2pdConf = pkgs.writeText "i2pd.conf" ''
'' # DO NOT EDIT -- this file has been generated automatically.
ipv4 = ${boolToString cfg.enableIPv4} loglevel = ${cfg.logLevel}
ipv6 = ${boolToString cfg.enableIPv6}
notransit = ${boolToString cfg.notransit}
floodfill = ${boolToString cfg.floodfill}
netid = ${toString cfg.netid}
${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" }
${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
[limits] ipv4 = ${boolToString cfg.enableIPv4}
transittunnels = ${toString cfg.limits.transittunnels} ipv6 = ${boolToString cfg.enableIPv6}
notransit = ${boolToString cfg.notransit}
floodfill = ${boolToString cfg.floodfill}
netid = ${toString cfg.netid}
${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" }
${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
[upnp] [limits]
enabled = ${boolToString cfg.upnp.enable} transittunnels = ${toString cfg.limits.transittunnels}
name = ${cfg.upnp.name}
[precomputation] [upnp]
elgamal = ${boolToString cfg.precomputation.elgamal} enabled = ${boolToString cfg.upnp.enable}
name = ${cfg.upnp.name}
[reseed] [precomputation]
verify = ${boolToString cfg.reseed.verify} elgamal = ${boolToString cfg.precomputation.elgamal}
file = ${cfg.reseed.file}
urls = ${builtins.concatStringsSep "," cfg.reseed.urls}
[addressbook] [reseed]
defaulturl = ${cfg.addressbook.defaulturl} verify = ${boolToString cfg.reseed.verify}
subscriptions = ${builtins.concatStringsSep "," cfg.addressbook.subscriptions} file = ${cfg.reseed.file}
${flip concatMapStrings urls = ${builtins.concatStringsSep "," cfg.reseed.urls}
[addressbook]
defaulturl = ${cfg.addressbook.defaulturl}
subscriptions = ${builtins.concatStringsSep "," cfg.addressbook.subscriptions}
${flip concatMapStrings
(collect (proto: proto ? port && proto ? address && proto ? name) cfg.proto) (collect (proto: proto ? port && proto ? address && proto ? name) cfg.proto)
(proto: let portStr = toString proto.port; in (proto: let portStr = toString proto.port; in ''
'' [${proto.name}]
[${proto.name}] enabled = ${boolToString proto.enable}
enabled = ${boolToString proto.enable} address = ${proto.address}
address = ${proto.address} port = ${toString proto.port}
port = ${toString proto.port} ${if proto ? keys then "keys = ${proto.keys}" else ""}
${if proto ? keys then "keys = ${proto.keys}" else ""} ${if proto ? auth then "auth = ${boolToString proto.auth}" else ""}
${if proto ? auth then "auth = ${boolToString proto.auth}" else ""} ${if proto ? user then "user = ${proto.user}" else ""}
${if proto ? user then "user = ${proto.user}" else ""} ${if proto ? pass then "pass = ${proto.pass}" else ""}
${if proto ? pass then "pass = ${proto.pass}" else ""} ${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""}
${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""} ${if proto ? outproxyPort then "outproxyport = ${toString proto.outproxyPort}" else ""}
${if proto ? outproxyPort then "outproxyport = ${toString proto.outproxyPort}" else ""} '')
'') }
}
''; '';
i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" '' i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" ''
${flip concatMapStrings # DO NOT EDIT -- this file has been generated automatically.
(collect (tun: tun ? port && tun ? destination) cfg.outTunnels) ${flip concatMapStrings
(tun: let portStr = toString tun.port; in '' (collect (tun: tun ? port && tun ? destination) cfg.outTunnels)
[${tun.name}] (tun: let portStr = toString tun.port; in ''
type = client [${tun.name}]
destination = ${tun.destination} type = client
keys = ${tun.keys} destination = ${tun.destination}
address = ${tun.address} keys = ${tun.keys}
port = ${toString tun.port} address = ${tun.address}
inbound.length = ${toString tun.inbound.length} port = ${toString tun.port}
outbound.length = ${toString tun.outbound.length} inbound.length = ${toString tun.inbound.length}
inbound.quantity = ${toString tun.inbound.quantity} outbound.length = ${toString tun.outbound.length}
outbound.quantity = ${toString tun.outbound.quantity} inbound.quantity = ${toString tun.inbound.quantity}
crypto.tagsToSend = ${toString tun.crypto.tagsToSend} outbound.quantity = ${toString tun.outbound.quantity}
'') crypto.tagsToSend = ${toString tun.crypto.tagsToSend}
} '')
${flip concatMapStrings }
(collect (tun: tun ? port && tun ? host) cfg.inTunnels) ${flip concatMapStrings
(tun: let portStr = toString tun.port; in '' (collect (tun: tun ? port && tun ? host) cfg.inTunnels)
[${tun.name}] (tun: let portStr = toString tun.port; in ''
type = server [${tun.name}]
destination = ${tun.destination} type = server
keys = ${tun.keys} destination = ${tun.destination}
host = ${tun.address} keys = ${tun.keys}
port = ${tun.port} host = ${tun.address}
inport = ${tun.inPort} port = ${tun.port}
accesslist = ${builtins.concatStringsSep "," tun.accessList} inport = ${tun.inPort}
'') accesslist = ${builtins.concatStringsSep "," tun.accessList}
} '')
}
''; '';
i2pdSh = pkgs.writeScriptBin "i2pd" '' i2pdSh = pkgs.writeScriptBin "i2pd" ''
#!/bin/sh #!/bin/sh
${pkgs.i2pd}/bin/i2pd \ exec ${pkgs.i2pd}/bin/i2pd \
${if isNull cfg.extIp then "" else "--host="+cfg.extIp} \ ${if isNull cfg.address then "" else "--host="+cfg.address} \
--conf=${i2pdConf} \ --conf=${i2pdConf} \
--tunconf=${i2pdTunnelConf} --tunconf=${i2pdTunnelConf}
''; '';
@ -176,11 +179,23 @@ in
''; '';
}; };
extIp = mkOption { logLevel = mkOption {
type = types.enum ["debug" "info" "warn" "error"];
default = "error";
description = ''
The log level. <command>i2pd</command> defaults to "info"
but that generates copious amounts of log messages.
We default to "error" which is similar to the default log
level of <command>tor</command>.
'';
};
address = mkOption {
type = with types; nullOr str; type = with types; nullOr str;
default = null; default = null;
description = '' description = ''
Your external IP. Your external IP or hostname.
''; '';
}; };
@ -213,7 +228,7 @@ in
default = null; default = null;
description = '' description = ''
Set a router bandwidth limit integer in KBps. Set a router bandwidth limit integer in KBps.
If not set, i2pd defaults to 32KBps. If not set, <command>i2pd</command> defaults to 32KBps.
''; '';
}; };
@ -261,9 +276,14 @@ in
precomputation.elgamal = mkOption { precomputation.elgamal = mkOption {
type = types.bool; type = types.bool;
default = false; default = true;
description = '' description = ''
Use ElGamal precomputated tables. Whenever to use precomputated tables for ElGamal.
<command>i2pd</command> defaults to <literal>false</literal>
to save 64M of memory (and looses some performance).
We default to <literal>true</literal> as that is what most
users want anyway.
''; '';
}; };
@ -353,7 +373,7 @@ in
}; };
}; };
proto.httpProxy = mkKeyedEndpointOpt "httpproxy" "127.0.0.1" 4446 ""; proto.httpProxy = mkKeyedEndpointOpt "httpproxy" "127.0.0.1" 4444 "";
proto.socksProxy = (mkKeyedEndpointOpt "socksproxy" "127.0.0.1" 4447 "") proto.socksProxy = (mkKeyedEndpointOpt "socksproxy" "127.0.0.1" 4447 "")
// { // {
outproxy = mkOption { outproxy = mkOption {

View file

@ -28,16 +28,11 @@ in
users.extraGroups._lldpd = {}; users.extraGroups._lldpd = {};
environment.systemPackages = [ pkgs.lldpd ]; environment.systemPackages = [ pkgs.lldpd ];
systemd.packages = [ pkgs.lldpd ];
systemd.services.lldpd = { systemd.services.lldpd = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; environment.LLDPD_OPTIONS = concatStringsSep " " cfg.extraArgs;
requires = [ "network.target" ];
serviceConfig = {
ExecStart = "${pkgs.lldpd}/bin/lldpd -d ${concatStringsSep " " cfg.extraArgs}";
PrivateTmp = true;
PrivateDevices = true;
};
}; };
}; };
} }

View file

@ -4,7 +4,7 @@ with lib;
let let
inherit (pkgs) cups cups-pk-helper cups-filters gutenprint; inherit (pkgs) cups cups-pk-helper cups-filters;
cfg = config.services.printing; cfg = config.services.printing;
@ -35,7 +35,6 @@ let
name = "cups-progs"; name = "cups-progs";
paths = paths =
[ cups.out additionalBackends cups-filters pkgs.ghostscript ] [ cups.out additionalBackends cups-filters pkgs.ghostscript ]
++ optional cfg.gutenprint gutenprint
++ cfg.drivers; ++ cfg.drivers;
pathsToLink = [ "/lib" "/share/cups" "/bin" ]; pathsToLink = [ "/lib" "/share/cups" "/bin" ];
postBuild = cfg.bindirCmds; postBuild = cfg.bindirCmds;
@ -97,12 +96,15 @@ let
(writeConf "client.conf" cfg.clientConf) (writeConf "client.conf" cfg.clientConf)
(writeConf "snmp.conf" cfg.snmpConf) (writeConf "snmp.conf" cfg.snmpConf)
] ++ optional avahiEnabled browsedFile ] ++ optional avahiEnabled browsedFile
++ optional cfg.gutenprint gutenprint
++ cfg.drivers; ++ cfg.drivers;
pathsToLink = [ "/etc/cups" ]; pathsToLink = [ "/etc/cups" ];
ignoreCollisions = true; ignoreCollisions = true;
}; };
filterGutenprint = pkgs: filter (pkg: pkg.meta.isGutenprint or false == true) pkgs;
containsGutenprint = pkgs: length (filterGutenprint pkgs) > 0;
getGutenprint = pkgs: head (filterGutenprint pkgs);
in in
{ {
@ -224,23 +226,17 @@ in
''; '';
}; };
gutenprint = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable Gutenprint drivers for CUPS. This includes auto-updating
Gutenprint PPD files.
'';
};
drivers = mkOption { drivers = mkOption {
type = types.listOf types.path; type = types.listOf types.path;
default = []; default = [];
example = literalExample "[ pkgs.splix ]"; example = literalExample "[ pkgs.gutenprint pkgs.hplip pkgs.splix ]";
description = '' description = ''
CUPS drivers to use. Drivers provided by CUPS, cups-filters, Ghostscript CUPS drivers to use. Drivers provided by CUPS, cups-filters,
and Samba are added unconditionally. For adding Gutenprint, see Ghostscript and Samba are added unconditionally. If this list contains
<literal>gutenprint</literal>. Gutenprint (i.e. a derivation with
<literal>meta.isGutenprint = true</literal>) the PPD files in
<filename>/var/lib/cups/ppd</filename> will be updated automatically
to avoid errors due to incompatible versions.
''; '';
}; };
@ -318,9 +314,9 @@ in
[ ! -e /var/lib/cups/path ] && \ [ ! -e /var/lib/cups/path ] && \
ln -s ${bindir} /var/lib/cups/path ln -s ${bindir} /var/lib/cups/path
${optionalString cfg.gutenprint '' ${optionalString (containsGutenprint cfg.drivers) ''
if [ -d /var/lib/cups/ppd ]; then if [ -d /var/lib/cups/ppd ]; then
${gutenprint}/bin/cups-genppdupdate -p /var/lib/cups/ppd ${getGutenprint cfg.drivers}/bin/cups-genppdupdate -p /var/lib/cups/ppd
fi fi
''} ''}
''; '';

View file

@ -0,0 +1,200 @@
{config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.usbguard;
# valid policy options
policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]);
# decide what file to use for rules
ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else cfg.ruleFile;
daemonConf = ''
# generated by nixos/modules/services/security/usbguard.nix
RuleFile=${ruleFile}
ImplicitPolicyTarget=${cfg.implictPolicyTarget}
PresentDevicePolicy=${cfg.presentDevicePolicy}
PresentControllerPolicy=${cfg.presentControllerPolicy}
InsertedDevicePolicy=${cfg.insertedDevicePolicy}
RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"}
# this does not seem useful for endusers to change
DeviceManagerBackend=uevent
IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers}
IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups}
IPCAccessControlFiles=${cfg.IPCAccessControlFiles}
DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"}
AuditFilePath=${cfg.auditFilePath}
'';
daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf;
in {
###### interface
options = {
services.usbguard = {
enable = mkEnableOption "USBGuard daemon";
ruleFile = mkOption {
type = types.path;
default = "/var/lib/usbguard/rules.conf";
description = ''
The USBGuard daemon will use this file to load the policy rule set
from it and to write new rules received via the IPC interface.
Running the command <literal>usbguard generate-policy</literal> as
root will generate a config for your currently plugged in devices.
For a in depth guide consult the official documentation.
Setting the <literal>rules</literal> option will ignore the
<literal>ruleFile</literal> option.
'';
};
rules = mkOption {
type = types.nullOr types.str;
default = null;
example = ''
allow with-interface equals { 08:*:* }
'';
description = ''
The USBGuard daemon will load this policy rule set. Modifying it via
the IPC interface won't work if you use this option, since the
contents of this option will be written into the nix-store it will be
read-only.
You can still use <literal> usbguard generate-policy</literal> to
generate rules, but you would have to insert them here.
Setting the <literal>rules</literal> option will ignore the
<literal>ruleFile</literal> option.
'';
};
implictPolicyTarget = mkOption {
type = policy;
default = "block";
description = ''
How to treat USB devices that don't match any rule in the policy.
Target should be one of allow, block or reject (logically remove the
device node from the system).
'';
};
presentDevicePolicy = mkOption {
type = policy;
default = "apply-policy";
description = ''
How to treat USB devices that are already connected when the daemon
starts. Policy should be one of allow, block, reject, keep (keep
whatever state the device is currently in) or apply-policy (evaluate
the rule set for every present device).
'';
};
presentControllerPolicy = mkOption {
type = policy;
default = "keep";
description = ''
How to treat USB controller devices that are already connected when
the daemon starts. One of allow, block, reject, keep or apply-policy.
'';
};
insertedDevicePolicy = mkOption {
type = policy;
default = "apply-policy";
description = ''
How to treat USB devices that are already connected after the daemon
starts. One of block, reject, apply-policy.
'';
};
restoreControllerDeviceState = mkOption {
type = types.bool;
default = false;
description = ''
The USBGuard daemon modifies some attributes of controller
devices like the default authorization state of new child device
instances. Using this setting, you can controll whether the daemon
will try to restore the attribute values to the state before
modificaton on shutdown.
'';
};
IPCAllowedUsers = mkOption {
type = types.listOf types.str;
default = [ "root" ];
example = [ "root" "yourusername" ];
description = ''
A list of usernames that the daemon will accept IPC connections from.
'';
};
IPCAllowedGroups = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "wheel" ];
description = ''
A list of groupnames that the daemon will accept IPC connections
from.
'';
};
IPCAccessControlFiles = mkOption {
type = types.path;
default = "/var/lib/usbguard/IPCAccessControl.d/";
description = ''
The files at this location will be interpreted by the daemon as IPC
access control definition files. See the IPC ACCESS CONTROL section
in <citerefentry><refentrytitle>usbguard-daemon.conf</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> for more details.
'';
};
deviceRulesWithPort = mkOption {
type = types.bool;
default = false;
description = ''
Generate device specific rules including the "via-port" attribute.
'';
};
auditFilePath = mkOption {
type = types.path;
default = "/var/log/usbguard/usbguard-audit.log";
description = ''
USBGuard audit events log file path.
'';
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.usbguard ];
systemd.services.usbguard = {
description = "USBGuard daemon";
wantedBy = [ "basic.target" ];
wants = [ "systemd-udevd.service" "local-fs.target" ];
# make sure an empty rule file and required directories exist
preStart = ''mkdir -p $(dirname "${cfg.ruleFile}") "${cfg.IPCAccessControlFiles}" && ([ -f "${cfg.ruleFile}" ] || touch ${cfg.ruleFile})'';
serviceConfig = {
Type = "simple";
ExecStart = ''${pkgs.usbguard}/bin/usbguard-daemon -d -k -c ${daemonConfFile}'';
Restart = "on-failure";
};
};
};
}

View file

@ -150,7 +150,8 @@ in {
PrivateDevices = true; PrivateDevices = true;
ProtectSystem = "full"; ProtectSystem = "full";
ProtectHome = true; ProtectHome = true;
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6"; # XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
Type = "notify"; Type = "notify";
ExecStart = "${cfg.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${phpIni}"; ExecStart = "${cfg.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${phpIni}";
ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID";

View file

@ -102,7 +102,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ libvirt netcat-openbsd ]; environment.systemPackages = with pkgs; [ libvirt netcat-openbsd qemu_kvm ];
boot.kernelModules = [ "tun" ]; boot.kernelModules = [ "tun" ];

View file

@ -3,13 +3,13 @@
, perl, DigestSHA, MusicBrainz, MusicBrainzDiscID , perl, DigestSHA, MusicBrainz, MusicBrainzDiscID
, makeWrapper }: , makeWrapper }:
let version = "2.7.2"; let version = "2.8.1";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "abcde-${version}"; name = "abcde-${version}";
src = fetchurl { src = fetchurl {
url = "http://abcde.einval.com/download/abcde-${version}.tar.gz"; url = "http://abcde.einval.com/download/abcde-${version}.tar.gz";
sha256 = "1pakpi41k8yd780mfp0snhia6mmwjwxk9lcrq6gynimch8b8hfda"; sha256 = "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774";
}; };
# FIXME: This package does not support `distmp3', `eject', etc. # FIXME: This package does not support `distmp3', `eject', etc.

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm { stdenv, fetchurl, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp , qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp
, libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, protobuf , libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf
, qca2, pkgconfig, sparsehash, config, makeWrapper, runCommand, gst_plugins }: , qca2, pkgconfig, sparsehash, config, makeWrapper, runCommand, gst_plugins }:
let let
@ -26,9 +26,10 @@ let
./clementine-spotify-blob-remove-from-build.patch ./clementine-spotify-blob-remove-from-build.patch
]; ];
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ buildInputs = [
boost boost
cmake
chromaprint chromaprint
fftw fftw
gettext gettext
@ -40,7 +41,7 @@ let
liblastfm liblastfm
libpulseaudio libpulseaudio
pcre pcre
pkgconfig projectm
protobuf protobuf
qca2 qca2
qjson qjson
@ -55,7 +56,10 @@ let
free = stdenv.mkDerivation { free = stdenv.mkDerivation {
name = "clementine-free-${version}"; name = "clementine-free-${version}";
inherit patches src buildInputs; inherit src patches nativeBuildInputs buildInputs;
cmakeFlags = [ "-DUSE_SYSTEM_PROJECTM=ON" ];
enableParallelBuilding = true; enableParallelBuilding = true;
postPatch = '' postPatch = ''
sed -i src/CMakeLists.txt \ sed -i src/CMakeLists.txt \
@ -76,7 +80,7 @@ let
blob = stdenv.mkDerivation { blob = stdenv.mkDerivation {
name = "clementine-blob-${version}"; name = "clementine-blob-${version}";
# Use the same patches and sources as Clementine # Use the same patches and sources as Clementine
inherit src; inherit src nativeBuildInputs;
patches = [ patches = [
./clementine-spotify-blob.patch ./clementine-spotify-blob.patch
@ -114,15 +118,13 @@ runCommand "clementine-${version}"
dontPatchELF = true; dontPatchELF = true;
dontStrip = true; dontStrip = true;
meta = { meta = {
homepage = http://www.clementine-player.org;
description = "A multiplatform music player" description = "A multiplatform music player"
+ " (" + (optionalString withSpotify "with Spotify, ") + " (" + (optionalString withSpotify "with Spotify, ")
+ "with gstreamer plugins: " + "with gstreamer plugins: "
+ concatStrings (intersperse ", " (map (x: x.name) gst_plugins)) + concatStrings (intersperse ", " (map (x: x.name) gst_plugins))
+ ")"; + ")";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; inherit (free.meta) homepage platforms maintainers;
maintainers = [ maintainers.ttuegel ];
}; };
} }
'' ''

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "drumkv1-${version}"; name = "drumkv1-${version}";
version = "0.8.1"; version = "0.8.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz"; url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq"; sha256 = "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9";
}; };
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ]; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View file

@ -4,7 +4,7 @@
}: }:
let let
version = "4.4.0"; version = "4.4.1";
deps = [ deps = [
alsaLib alsaLib
@ -46,7 +46,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/releases/download/v${version}/google-play-music-desktop-player_${version}_amd64.deb"; url = "https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/releases/download/v${version}/google-play-music-desktop-player_${version}_amd64.deb";
sha256 = "01a52rsp0a9k47mm3wqnhnmlnd7fw6xmdrn882msldijjgwsq5cc"; sha256 = "0jqgawgij6jxf3zy3glviqj6s34mq7d756syg2c7kk1gkqkwgdpw";
}; };
dontBuild = true; dontBuild = true;

View file

@ -12,11 +12,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "guitarix-${version}"; name = "guitarix-${version}";
version = "0.35.3"; version = "0.35.6";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
sha256 = "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j"; sha256 = "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41";
}; };
nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ];

View file

@ -67,10 +67,6 @@ stdenv.mkDerivation rec {
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")" export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
''; '';
preBuild = ''
ninja
'';
installPhase = '' installPhase = ''
cmake --build . --target install cmake --build . --target install
''; '';

View file

@ -0,0 +1,23 @@
{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftw }:
stdenv.mkDerivation rec {
name = "padthv1-${version}";
version = "0.8.4";
src = fetchurl {
url = "mirror://sourceforge/padthv1/${name}.tar.gz";
sha256 = "1p6wfgh90h7gj1j3hlvwik3zj07xamkxbya85va2lsj6fkkkk20r";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
nativeBuildInputs = [ pkgconfig ];
meta = with stdenv.lib; {
description = "polyphonic additive synthesizer";
homepage = http://padthv1.sourceforge.net/;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.magnetophon ];
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, cmake { stdenv, fetchurl, fetchpatch, pkgconfig, cmake
, glew, ftgl, ttf_bitstream_vera , glew, ftgl, ttf_bitstream_vera
, withQt ? true, qt4 , withQt ? true, qt4
, withLibvisual ? false, libvisual, SDL , withLibvisual ? false, libvisual, SDL
@ -24,7 +24,13 @@ stdenv.mkDerivation {
sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji"; sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji";
}; };
patch_gcc6 = fetchpatch {
url = https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch;
sha256 = "1i50scxv1jlqvb3jm3sql89a7wqckxhlpvnhz20vvmm1kii6lrsn";
};
patchPhase = '' patchPhase = ''
patch -d src/libprojectM -p1 -i "$patch_gcc6"
sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \ sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \
src/projectM-libvisual/CMakeLists.txt src/projectM-libvisual/CMakeLists.txt
''; '';

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samplv1-${version}"; name = "samplv1-${version}";
version = "0.8.0"; version = "0.8.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/samplv1/${name}.tar.gz"; url = "mirror://sourceforge/samplv1/${name}.tar.gz";
sha256 = "0j3hkmd9q0bw9b7nk9cssqywlrishkd1n790a9vq6gh3pdc5sf3r"; sha256 = "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i";
}; };
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "synthv1-${version}"; name = "synthv1-${version}";
version = "0.8.0"; version = "0.8.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/synthv1/${name}.tar.gz"; url = "mirror://sourceforge/synthv1/${name}.tar.gz";
sha256 = "155pfyhr6d35ciw95pbxlqy7751cmij8j5d849rvblqbjzyzb5qx"; sha256 = "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8";
}; };
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];

View file

@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "yoshimi-${version}"; name = "yoshimi-${version}";
version = "1.5.0"; version = "1.5.3";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2"; url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5"; sha256 = "0sns35pyw2f74xrv1fxiyf9g9415kvh2rrbdjd60hsiv584nlari";
}; };
buildInputs = [ buildInputs = [

View file

@ -27,9 +27,9 @@ in rec {
preview = mkStudio rec { preview = mkStudio rec {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.0.0.11"; # "Android Studio 3.0 Beta 3" version = "3.0.0.10"; # "Android Studio 3.0 Beta 2"
build = "171.4294784"; build = "171.4263559";
sha256Hash = "11m939hpwnrrz0grnc1x1ff19yjnwzx5w1dzaw9hpm8ylx692mrf"; sha256Hash = "0bya69qa50s6dbvlzb198b5w6ixs21y6b56v3v1xjb3kndf9y44w";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atom-${version}"; name = "atom-${version}";
version = "1.19.2"; version = "1.19.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0bfhcxhjsa7p35s5dz3zjxm4wc802m3k137p04l9anr3v5hrgqmb"; sha256 = "0cms0zgxlzrm0sdqm97qdvrmvjcdcrbqi3bw66xabgx365pkry7z";
name = "${name}.deb"; name = "${name}.deb";
}; };

View file

@ -320,15 +320,15 @@ in
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; name = "phpstorm-${version}";
version = "2017.1.4"; version = "2017.2.1"; /* updated by script */
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "0zrbcziznz6dwh56snr27752xcsnl2gsxzi6jiraplkd92f2xlaf"; sha256 = "2f1af9ef6e9cda25a809a19a25f2d4fbaef00edf9d1d5a195572ab5e04e71e5e"; /* updated by script */
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-phpstorm";
update-channel = "PS2017.1"; update-channel = "PS2017.2";
}; };
phpstorm10 = buildPhpStorm rec { phpstorm10 = buildPhpStorm rec {

View file

@ -10,6 +10,7 @@ let
if stdenv.system == "i686-linux" then "i686" if stdenv.system == "i686-linux" then "i686"
else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64" else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64"
else if stdenv.system == "armv7l-linux" then "armv7l" else if stdenv.system == "armv7l-linux" then "armv7l"
else if stdenv.system == "aarch64-linux" then "aarch64"
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {

View file

@ -10,6 +10,7 @@ let
if stdenv.system == "i686-linux" then "i686" if stdenv.system == "i686-linux" then "i686"
else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64" else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64"
else if stdenv.system == "armv7l-linux" then "armv7l" else if stdenv.system == "armv7l-linux" then "armv7l"
else if stdenv.system == "aarch64-linux" then "aarch64"
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {

View file

@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
}; };
cmakeFlags = "-G Ninja"; cmakeFlags = "-G Ninja";
buildPhase = "ninja";
installPhase = '' installPhase = ''
ninja install ninja install
cd .. cd ..

View file

@ -6,7 +6,7 @@
assert stdenv.system == "x86_64-linux"; assert stdenv.system == "x86_64-linux";
let version = "2017-SP1"; in let version = "2017-SP2"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "draftsight-${version}"; name = "draftsight-${version}";
@ -56,7 +56,7 @@ stdenv.mkDerivation {
src = requireFile { src = requireFile {
name = "draftSight.deb"; name = "draftSight.deb";
url = "https://www.3ds.com/?eID=3ds_brand_download&uid=41&pidDown=13426&L=0"; url = "https://www.3ds.com/?eID=3ds_brand_download&uid=41&pidDown=13426&L=0";
sha256 = "0s7b74685r0961kd59hxpdp9s5yhvzx8307imsxm66f99s8rswdv"; sha256 = "04i3dqza6y4p2059pqg5inp3qzr5jmiqplzzk7h1a6gh380v1rbr";
}; };
libPath = stdenv.lib.makeLibraryPath [ gcc.cc mesa xdg_utils libPath = stdenv.lib.makeLibraryPath [ gcc.cc mesa xdg_utils

View file

@ -2,7 +2,7 @@
mkDerivation, lib, kdepimTeam, mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools, extra-cmake-modules, kdoctools,
akonadi, akonadi-contacts, calendarsupport, kcalcore, kcompletion, akonadi, akonadi-contacts, calendarsupport, kcalcore, kcompletion,
kconfigwidgets, kcontacts, kdbusaddons, kitemmodels, kpimtextedit, kconfigwidgets, kcontacts, kdbusaddons, kitemmodels, kpimtextedit, libkdepim,
ktextwidgets, kxmlgui, messagelib, qtbase, ktextwidgets, kxmlgui, messagelib, qtbase,
}: }:
@ -16,6 +16,6 @@ mkDerivation {
buildInputs = [ buildInputs = [
akonadi akonadi-contacts calendarsupport kcalcore kcompletion kconfigwidgets akonadi akonadi-contacts calendarsupport kcalcore kcompletion kconfigwidgets
kcontacts kdbusaddons kitemmodels kpimtextedit ktextwidgets kxmlgui kcontacts kdbusaddons kitemmodels kpimtextedit ktextwidgets kxmlgui
messagelib qtbase messagelib qtbase libkdepim
]; ];
} }

View file

@ -44,17 +44,6 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp
loader->setTheme(dirName); loader->setTheme(dirName);
if (!sEngine) { if (!sEngine) {
@@ -102,9 +105,7 @@ QString ThemePrivate::errorTemplate(cons
Grantlee::Context ctx = createContext();
ctx.insert(QStringLiteral("error"), reason);
ctx.insert(QStringLiteral("templateName"), origTemplateName);
- const QString errorString = failedTemplate
- ? failedTemplate->errorString()
- : QStringLiteral("(null template)");
+ const QString errorString = failedTemplate->errorString();
ctx.insert(QStringLiteral("errorMessage"), errorString);
return tpl->render(&ctx);
}
@@ -122,7 +123,7 @@ Theme::Theme(const QString &themePath, c @@ -122,7 +123,7 @@ Theme::Theme(const QString &themePath, c
KConfigGroup group(&config, QStringLiteral("Desktop Entry")); KConfigGroup group(&config, QStringLiteral("Desktop Entry"));
if (group.isValid()) { if (group.isValid()) {

View file

@ -1,25 +0,0 @@
diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp
index b86fc3a..8af72f4 100644
--- a/src/grantleetheme.cpp
+++ b/src/grantleetheme.cpp
@@ -102,7 +102,10 @@ QString ThemePrivate::errorTemplate(const QString &reason,
Grantlee::Context ctx = createContext();
ctx.insert(QStringLiteral("error"), reason);
ctx.insert(QStringLiteral("templateName"), origTemplateName);
- ctx.insert(QStringLiteral("errorMessage"), failedTemplate->errorString());
+ const QString errorString = failedTemplate
+ ? failedTemplate->errorString()
+ : QStringLiteral("(null template)");
+ ctx.insert(QStringLiteral("errorMessage"), errorString);
return tpl->render(&ctx);
}
@@ -208,7 +211,7 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con
}
Grantlee::Template tpl = d->loader->loadByName(templateName, ThemePrivate::sEngine);
- if (tpl->error()) {
+ if (!tpl || tpl->error()) {
return d->errorTemplate(i18n("Template parsing error"), templateName, tpl);
}

View file

@ -1,2 +1 @@
grantleetheme_check_null.patch
grantlee-merge-theme-dirs.patch grantlee-merge-theme-dirs.patch

View file

@ -1,11 +1,11 @@
{ mkDerivation, lib { mkDerivation, lib
, extra-cmake-modules, kdoctools, makeWrapper , extra-cmake-modules, kdoctools, makeWrapper, shared_mime_info
, qtwebkit , qtwebkit
, libkcddb, karchive, kcmutils, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui , libkcddb, karchive, kcmutils, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui
, flac, lame, libmad, libmpcdec, libvorbis , flac, lame, libmad, libmpcdec, libvorbis
, libsamplerate, libsndfile, taglib , libsamplerate, libsndfile, taglib
, cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager , cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager
, ffmpeg, libmusicbrainz2, normalize, sox, transcode, shared_mime_info, kinit , ffmpeg, libmusicbrainz3, normalize, sox, transcode, kinit
}: }:
mkDerivation { mkDerivation {
@ -15,7 +15,7 @@ mkDerivation {
maintainers = with maintainers; [ sander phreedom ]; maintainers = with maintainers; [ sander phreedom ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper shared_mime_info ]; nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
propagatedBuildInputs = [ propagatedBuildInputs = [
# qt # qt
qtwebkit qtwebkit
@ -28,7 +28,7 @@ mkDerivation {
# cd/dvd # cd/dvd
cdparanoia libdvdcss libdvdread cdparanoia libdvdcss libdvdread
# others # others
ffmpeg libmusicbrainz2 shared_mime_info ffmpeg libmusicbrainz3 shared_mime_info
]; ];
propagatedUserEnvPkgs = [ (lib.getBin kinit) ]; propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
postFixup = postFixup =

View file

@ -5,7 +5,7 @@
akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes, akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement, kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig, kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
qtwebengine, pimcommon, qtwebengine,
}: }:
mkDerivation { mkDerivation {
@ -19,6 +19,7 @@ mkDerivation {
akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
pimcommon
]; ];
# Attempts to build some files before dependencies have been generated # Attempts to build some files before dependencies have been generated
enableParallelBuilding = false; enableParallelBuilding = false;

View file

@ -2,7 +2,7 @@
mkDerivation, lib, kdepimTeam, mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools, extra-cmake-modules, kdoctools,
akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig, akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim,
kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap, kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
kmail-account-wizard, kmailtransport, knotifications, knotifyconfig, kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet, kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
@ -20,7 +20,7 @@ mkDerivation {
buildInputs = [ buildInputs = [
akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n
kiconthemes kinit kio kldap kmail-account-wizard kmailtransport kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
knotifications knotifyconfig kontactinterface kparts kpty kservice knotifications knotifyconfig kontactinterface kparts kpty kservice
ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine

View file

@ -4,7 +4,7 @@
qtwebengine, qtwebengine,
kcmutils, kcrash, kdbusaddons, kwindowsystem, kcmutils, kcrash, kdbusaddons, kwindowsystem,
akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit, akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
mailcommon, mailcommon, libkdepim
}: }:
mkDerivation { mkDerivation {
@ -18,6 +18,6 @@ mkDerivation {
qtwebengine qtwebengine
kcmutils kcrash kdbusaddons kwindowsystem kcmutils kcrash kdbusaddons kwindowsystem
akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
mailcommon mailcommon libkdepim
]; ];
} }

View file

@ -3,7 +3,7 @@
extra-cmake-modules, kdoctools, extra-cmake-modules, kdoctools,
akonadi, akonadi-mime, karchive, kcodecs, kcompletion, kconfigwidgets, akonadi, akonadi-mime, karchive, kcodecs, kcompletion, kconfigwidgets,
kdbusaddons, kdesignerplugin, kiconthemes, kio, kitemmodels, kldap, kdbusaddons, kdesignerplugin, kiconthemes, kio, kitemmodels, kldap,
kmailtransport, kwindowsystem, mailimporter, messagelib, phonon, kmailtransport, kwindowsystem, mailimporter, messagelib, phonon, libkdepim
}: }:
mkDerivation { mkDerivation {
@ -16,7 +16,7 @@ mkDerivation {
buildInputs = [ buildInputs = [
akonadi akonadi-mime karchive kcodecs kcompletion kconfigwidgets kdbusaddons akonadi akonadi-mime karchive kcodecs kcompletion kconfigwidgets kdbusaddons
kdesignerplugin kiconthemes kio kitemmodels kldap kmailtransport kdesignerplugin kiconthemes kio kitemmodels kldap kmailtransport
kwindowsystem mailimporter messagelib phonon kwindowsystem mailimporter messagelib phonon libkdepim
]; ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
} }

View file

@ -0,0 +1,30 @@
{ stdenv, fetchFromGitHub, pkgconfig, libnotify, gdk_pixbuf }:
stdenv.mkDerivation rec {
name = "et-${version}";
version = "2017-03-04";
src = fetchFromGitHub {
owner = "geistesk";
repo = "et";
rev = "151e9b6bc0d2d4f45bda8ced740ee99d0f2012f6";
sha256 = "1a1jdnzmal05k506bbvzlwsj2f3kql6l5xc1gdabm79y6vaf4r7s";
};
buildInputs = [ libnotify gdk_pixbuf ];
nativeBuildInputs = [ pkgconfig ];
installPhase = ''
mkdir -p $out/bin
cp et $out/bin
cp et-status.sh $out/bin/et-status
'';
meta = with stdenv.lib; {
description = "Minimal libnotify-based (egg) timer for GNU/Linux";
homepage = https://github.com/geistesk/et;
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ geistesk ];
};
}

View file

@ -16,11 +16,13 @@ stdenv.mkDerivation {
makeFlags = "INSTALLDIR=$(out)"; makeFlags = "INSTALLDIR=$(out)";
NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ]; # since gcc-6
patchPhase = '' patchPhase = ''
# don't try to use ccache # don't try to use ccache
substituteInPlace makefiles/arch/desktop.mk \ substituteInPlace makefiles/arch/desktop.mk \
--replace "CCACHE = " "# CCACHE = " --replace "CCACHE = " "# CCACHE = "
substituteInPlace fbreader/desktop/Makefile \ substituteInPlace fbreader/desktop/Makefile \
--replace "/usr/share" "$out/share" --replace "/usr/share" "$out/share"
''; '';

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, qt4, qmake4Hook, gnuradio, boost, gnuradio-osmosdr { stdenv, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gnuradio-osmosdr
# drivers (optional): # drivers (optional):
, rtl-sdr, hackrf , rtl-sdr, hackrf
, pulseaudioSupport ? true, libpulseaudio , pulseaudioSupport ? true, libpulseaudio
@ -8,29 +8,25 @@ assert pulseaudioSupport -> libpulseaudio != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gqrx-${version}"; name = "gqrx-${version}";
version = "2.5.3"; version = "2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "csete"; owner = "csete";
repo = "gqrx"; repo = "gqrx";
rev = "v${version}"; rev = "v${version}";
sha256 = "02pavd1kc0gsnrl18bfa01r2f3j4j05zly4a8zwss9yrsgf8432x"; sha256 = "1dslb8l8ggj6vf9257c2bj0z8z1wy9c6sr2zksp5jdgf8m4j71im";
}; };
nativeBuildInputs = [ qmake4Hook ]; nativeBuildInputs = [ cmake ];
buildInputs = [ buildInputs = [
qt4 gnuradio boost gnuradio-osmosdr rtl-sdr hackrf qtbase qtsvg gnuradio boost gnuradio-osmosdr rtl-sdr hackrf
] ++ stdenv.lib.optionals pulseaudioSupport [ libpulseaudio ]; ] ++ stdenv.lib.optionals pulseaudioSupport [ libpulseaudio ];
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = '' postInstall = ''
mkdir -p "$out/share/applications" install -vD $src/gqrx.desktop -t "$out/share/applications/"
mkdir -p "$out/share/icons" install -vD $src/resources/icons/gqrx.svg -t "$out/share/icons/"
cp gqrx.desktop "$out/share/applications/"
cp resources/icons/gqrx.svg "$out/share/icons/"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,6 +1,6 @@
{ cairo, cmake, fetchgit, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig { cairo, cmake, fetchgit, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
, python2 , stdenv, xcbproto, xcbutil, xcbutilimage, xcbutilrenderutil , python2 , stdenv, xcbproto, xcbutil, xcbutilimage, xcbutilrenderutil
, xcbutilwm, xcbutilxrm , xcbutilwm, xcbutilxrm, fetchpatch
# optional packages-- override the variables ending in 'Support' to enable or # optional packages-- override the variables ending in 'Support' to enable or
# disable modules # disable modules
@ -32,13 +32,21 @@ stdenv.mkDerivation rec {
description = "A fast and easy-to-use tool for creatin status bars."; description = "A fast and easy-to-use tool for creatin status bars.";
longDescription = '' longDescription = ''
Polybar aims to help users build beautiful and highly customizable Polybar aims to help users build beautiful and highly customizable
status bars for their desktop environment, without the need of status bars for their desktop environment, without the need of
having a black belt in shell scripting. having a black belt in shell scripting.
''; '';
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.afldcr ]; maintainers = [ maintainers.afldcr ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
# This patch should be removed with next stable release.
patches = [
(fetchpatch {
name = "polybar-remove-curlbuild.patch";
url = "https://github.com/jaagr/polybar/commit/d35abc7620c8f06618b4708d9a969dfa2f309e96.patch";
sha256 = "14xr65vsjvd51hzg9linj09w0nnixgn26dh9lqxy25bxachcyzxy";
})
];
buildInputs = [ buildInputs = [
cairo libXdmcp libpthreadstubs libxcb pcre python2 xcbproto xcbutil cairo libXdmcp libpthreadstubs libxcb pcre python2 xcbproto xcbutil

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "postage-${version}"; name = "postage-${version}";
version = "3.2.17"; version = "3.2.18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "workflowproducts"; owner = "workflowproducts";
repo = "postage"; repo = "postage";
rev = "eV${version}"; rev = "eV${version}";
sha256 = "1c9ss5vx8s05cgw68z7y224qq8z8kz8rxfgcayd2ny200kqyn5bl"; sha256 = "1kdg8pw2vxwkxw3b6dim4s740s60j3iyrh96524wi3lqkkq98krn";
}; };
buildInputs = [ postgresql openssl ]; buildInputs = [ postgresql openssl ];

View file

@ -4,22 +4,22 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "styx-${version}"; name = "styx-${version}";
version = "0.6.0"; version = "0.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "styx-static"; owner = "styx-static";
repo = "styx"; repo = "styx";
rev = "v${version}"; rev = "v${version}";
sha256 = "1dl6zmic8bv17f3ib8by66c2fj7izlnv9dh2cfa2m0ipkxk930vk"; sha256 = "044zpj92w96csaddf1qnnc2w2w9iq4b7rzlqqsqnd1s0a87lm1qd";
}; };
setSourceRoot = "cd styx-*/src; export sourceRoot=`pwd`";
server = "${caddy.bin}/bin/caddy"; server = "${caddy.bin}/bin/caddy";
linkcheck = "${linkchecker}/bin/linkchecker"; linkcheck = "${linkchecker}/bin/linkchecker";
nativeBuildInputs = [ asciidoctor ]; nativeBuildInputs = [ asciidoctor ];
outputs = [ "out" "lib" "themes" ];
propagatedBuildInputs = [ propagatedBuildInputs = [
file file
lessc lessc
@ -30,39 +30,42 @@ stdenv.mkDerivation rec {
(python27.withPackages (ps: [ ps.parsimonious ])) (python27.withPackages (ps: [ ps.parsimonious ]))
]; ];
outputs = [ "out" "lib" ];
installPhase = '' installPhase = ''
mkdir $out mkdir $out
install -D -m 777 styx.sh $out/bin/styx install -D -m 777 src/styx.sh $out/bin/styx
mkdir -p $out/share/styx mkdir -p $out/share/styx-src
cp -r scaffold $out/share/styx cp -r ./* $out/share/styx-src
cp -r nix $out/share/styx
mkdir -p $out/share/doc/styx mkdir -p $out/share/doc/styx
asciidoctor doc/index.adoc -o $out/share/doc/styx/index.html asciidoctor src/doc/index.adoc -o $out/share/doc/styx/index.html
asciidoctor doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html asciidoctor src/doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html
asciidoctor doc/library.adoc -o $out/share/doc/styx/library.html asciidoctor src/doc/library.adoc -o $out/share/doc/styx/library.html
cp -r doc/highlight $out/share/doc/styx/ cp -r src/doc/highlight $out/share/doc/styx/
cp -r doc/imgs $out/share/doc/styx/ cp -r src/doc/imgs $out/share/doc/styx/
cp -r tools $out/share
substituteAllInPlace $out/bin/styx substituteAllInPlace $out/bin/styx
substituteAllInPlace $out/share/doc/styx/index.html substituteAllInPlace $out/share/doc/styx/index.html
substituteAllInPlace $out/share/doc/styx/styx-themes.html substituteAllInPlace $out/share/doc/styx/styx-themes.html
substituteAllInPlace $out/share/doc/styx/library.html substituteAllInPlace $out/share/doc/styx/library.html
mkdir -p $out/share/styx/scaffold
cp -r src/scaffold $out/share/styx
cp -r src/tools $out/share/styx
mkdir $lib mkdir $lib
cp -r lib/* $lib cp -r src/lib/* $lib
mkdir $themes
cp -r themes/* $themes
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Nix based static site generator"; description = "Nix based static site generator";
maintainers = with maintainers; [ ericsagnes ]; maintainers = with maintainers; [ ericsagnes ];
homepage = https://styx-static.github.io/styx-site/; homepage = https://styx-static.github.io/styx-site/;
downloadPage = https://github.com/styx-static/styx/; downloadPage = https://github.com/styx-static/styx/;
platforms = platforms.all; platforms = platforms.all;
license = licenses.mit; license = licenses.mit;
}; };
} }

View file

@ -1,104 +0,0 @@
{ fetchFromGitHub, stdenv }:
let
mkThemeDrv = args: stdenv.mkDerivation {
name = "styx-theme-${args.themeName}-${args.version}";
src = fetchFromGitHub ({
owner = "styx-static";
repo = "styx-theme-${args.themeName}";
} // args.src);
installPhase = ''
mkdir $out
cp -r * $out/
'';
preferLocalBuild = true;
meta = with stdenv.lib; {
maintainer = with maintainers; [ ericsagnes ];
description = "${args.themeName} theme for styx";
platforms = platforms.all;
} // args.meta;
};
in
{
agency = mkThemeDrv rec {
themeName = "agency";
version = "0.6.0";
src = {
rev = "v${version}";
sha256 = "1i9bajzgmxd3ffvgic6wwnqijsgkfr2mfdijkgw9yf3bxcdq5cb6";
};
meta = {
license = stdenv.lib.licenses.asl20;
longDescription = ''
Agency Theme is a one page portfolio for companies and freelancers.
This theme features several content sections, a responsive portfolio
grid with hover effects, full page portfolio item modals, a timeline,
and a contact form.
'';
};
};
generic-templates = mkThemeDrv rec {
themeName = "generic-templates";
version = "0.6.0";
src = {
rev = "v${version}";
sha256 = "0wr2687pffczn0sns1xvqxr2gpf5v9j64zbj6q9f7km6bq0zpiiy";
};
meta = {
license = stdenv.lib.licenses.mit;
};
};
hyde = mkThemeDrv rec {
themeName = "hyde";
version = "0.6.0";
src = {
rev = "v${version}";
sha256 = "0yca76p297ymxd049fkcpw8bca5b9yvv36707z31jbijriy50zxb";
};
meta = {
license = stdenv.lib.licenses.mit;
longDescription = ''
Port of the Jekyll Hyde theme to styx; Hyde is a brazen two-column
Styx theme that pairs a prominent sidebar with uncomplicated content.
'';
};
};
orbit = mkThemeDrv rec {
themeName = "orbit";
version = "0.6.0";
src = {
rev = "v${version}";
sha256 = "0qdx1r7dcycr5hzl9ix70pl4xf0426ghpi1lgh61zdpdhcch0xfi";
};
meta = {
license = stdenv.lib.licenses.cc-by-30;
longDescription = ''
Orbit is a free resume/CV template designed for developers.
'';
};
};
showcase = mkThemeDrv rec {
themeName = "showcase";
version = "0.6.0";
src = {
rev = "v${version}";
sha256 = "1jfhw49yag8l1zr69l01y1p4p88waig3xv3b6c3mfxc8jrchp7pb";
};
meta = {
license = stdenv.lib.licenses.mit;
longDescription = ''
Theme that show most of styx functionalities with a basic design.
'';
};
};
}

View file

@ -16,9 +16,15 @@ stdenv.mkDerivation rec {
patches = [ ./openssl-1.1.patch ]; patches = [ ./openssl-1.1.patch ];
patch_gcc6 = fetchpatch {
url = https://raw.githubusercontent.com/gentoo/gentoo/20e2bff3697ebf5f291e9907b34aae3074a36b53/dev-cpp/gmock/files/gmock-1.7.0-gcc6.patch;
sha256 = "0j3f381x1lf8qci9pfv6mliggl8qs2w05v5lw3rs3gn7aibg174d";
};
postPatch = '' postPatch = ''
${unzip}/bin/unzip -d ext/gmock-1.6.0 ext/gmock-1.6.0.zip ${unzip}/bin/unzip -d ext/gmock-1.6.0 ext/gmock-1.6.0.zip
${unzip}/bin/unzip -d ext/gtest-1.6.0 ext/gtest-1.6.0.zip ${unzip}/bin/unzip -d ext/gtest-1.6.0 ext/gtest-1.6.0.zip
patch -d ext/gmock-1.6.0 -p1 -i ${patch_gcc6}
'' ''
# We have XRRNotifyEvent (libXrandr), but with the upstream CMakeLists.txt # We have XRRNotifyEvent (libXrandr), but with the upstream CMakeLists.txt
# it's not able to find it (it's trying to search the store path of libX11 # it's not able to find it (it's trying to search the store path of libX11

View file

@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
postInstall = '' postInstall = ''
mkdir -p "$out/share/bash-completion/completions" mkdir -p "$out/share/bash-completion/completions"
ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/" ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/"
mkdir -p "$out/etc/fish/completions" mkdir -p "$out/share/fish/vendor_completions.d"
ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/etc/fish/completions/" ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/share/fish/vendor_completions.d/"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,24 +1,28 @@
{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false { enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false
, stdenv, fetchurl, zlib, libpng, xlibsWrapper ? null, motif ? null, freetype ? null, t1lib ? null , stdenv, fetchurl, zlib, libpng, freetype ? null, t1lib ? null
, base14Fonts ? null , cmake, qtbase ? null
}: }:
assert enableGUI -> xlibsWrapper != null && motif != null && freetype != null; assert enableGUI -> qtbase != null && freetype != null;
assert enablePDFtoPPM -> freetype != null; assert enablePDFtoPPM -> freetype != null;
assert useT1Lib -> t1lib != null; assert useT1Lib -> t1lib != null;
assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities
stdenv.mkDerivation { stdenv.mkDerivation {
name = "xpdf-3.04"; name = "xpdf-4.00";
src = fetchurl { src = fetchurl {
url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.04.tar.gz; url = http://www.xpdfreader.com/dl/xpdf-4.00.tar.gz;
sha256 = "1rbp54mr3z2x3a3a1qmz8byzygzi223vckfam9ib5g1sfds0qf8i"; sha256 = "1mhn89738vjva14xr5gblc2zrdgzmpqbbjdflqdmpqv647294ggz";
}; };
nativeBuildInputs = [ cmake ];
cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON"];
buildInputs = [ zlib libpng ] ++ buildInputs = [ zlib libpng ] ++
stdenv.lib.optionals enableGUI [xlibsWrapper motif] ++ stdenv.lib.optional enableGUI qtbase ++
stdenv.lib.optional useT1Lib t1lib ++ stdenv.lib.optional useT1Lib t1lib ++
stdenv.lib.optional enablePDFtoPPM freetype; stdenv.lib.optional enablePDFtoPPM freetype;
@ -27,14 +31,6 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
configureFlags = "--enable-a4-paper";
postInstall = stdenv.lib.optionalString (base14Fonts != null) ''
substituteInPlace $out/etc/xpdfrc \
--replace /usr/local/share/ghostscript/fonts ${base14Fonts} \
--replace '#fontFile' fontFile
'';
meta = { meta = {
homepage = http://www.foolabs.com/xpdf/; homepage = http://www.foolabs.com/xpdf/;
description = "Viewer for Portable Document Format (PDF) files"; description = "Viewer for Portable Document Format (PDF) files";

View file

@ -3,11 +3,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xterm-327"; name = "xterm-330";
src = fetchurl { src = fetchurl {
url = "ftp://invisible-island.net/xterm/${name}.tgz"; url = "http://invisible-mirror.net/archives/xterm/${name}.tgz";
sha256 = "02qmfr1y24y5vq6kddksw84b8gxalc96n9wwaj7i8hmk6mn2zyv6"; sha256 = "1psnfmqd23v9gxj8a98nzrgvymrk0p1whwqi92gy15bbkzrgkvks";
}; };
buildInputs = buildInputs =

View file

@ -6,10 +6,10 @@ rec {
firefox = common rec { firefox = common rec {
pname = "firefox"; pname = "firefox";
version = "55.0.2"; version = "55.0.3";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "a27722cb5840aac89752fea0880a7e093e84b50dc78a36dc8c4bd493ffda10fa61446007f680bfe65db7a0debe4c21e6f0bf9f0de9876bba067abdda6fed7be4"; sha512 = "3cacc87b97871f3a8c5e97c17ef7025079cb5c81f32377d9402cdad45815ac6c4c4762c79187f1e477910161c2377c42d41de62a50b6741d5d7c1cd70e8c6416";
}; };
patches = lib.optional stdenv.isi686 (fetchpatch { patches = lib.optional stdenv.isi686 (fetchpatch {

View file

@ -14,10 +14,10 @@ let
# instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is # instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is
# currently https://storage.googleapis.com/minikube/k8s_releases.json # currently https://storage.googleapis.com/minikube/k8s_releases.json
localkube-version = "1.7.0"; localkube-version = "1.7.3";
localkube-binary = fetchurl { localkube-binary = fetchurl {
url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64"; url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64";
sha256 = "1pp5bi0bpxxzrshvkv47hqs20jfx3gp1i1p3pw1rvzm5n1fn2q1a"; sha256 = "1ay11321kg3waxzi9d885pr08hz97a8ajwk31kbfxlm3x5bk3jii";
}; };
in buildGoPackage rec { in buildGoPackage rec {
pname = "minikube"; pname = "minikube";

View file

@ -3,14 +3,14 @@
, glib_networking }: , glib_networking }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.5.1"; version = "1.6";
name = "corebird-${version}"; name = "corebird-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "baedert"; owner = "baedert";
repo = "corebird"; repo = "corebird";
rev = version; rev = version;
sha256 = "1qajb4xms3vsfm5sg91z9ka0nrzgfi0fjgjxqm7snhkfgxlkph7w"; sha256 = "1bxjlamdy5d2j3xdahmxf6lwc7f6xdfxbzi712ppvh1dwggw654v";
}; };
preConfigure = '' preConfigure = ''
@ -20,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 gnome3.dconf gnome3.gspell glib_networking gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.dconf gnome3.gspell glib_networking
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good (gst-plugins-bad.override { gtkSupport = true; }) gst-libav ]); ] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good (gst-plugins-bad.override { gtkSupport = true; }) gst-libav ]);
meta = { meta = {

View file

@ -1,20 +1,21 @@
{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, perl, zlib, file, curl {stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, perl, zlib, file, curl
, geoip, gperftools, python }: , geoip, gperftools, python, swig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "bro-2.5"; name = "bro-2.5.1";
src = fetchurl { src = fetchurl {
url = "http://www.bro.org/downloads/${name}.tar.gz"; url = "http://www.bro.org/downloads/${name}.tar.gz";
sha256 = "10603lwhwsmh08m5rgknbspbhd4lis71qv7z8ixacgv6sf8a40hm"; sha256 = "04cmm0vs8q31mgaq3pxybjk834py3ji16qp4qcir7vjbhq1fav1c";
}; };
buildInputs = [ cmake flex bison openssl libpcap perl zlib file curl geoip gperftools python ]; nativeBuildInputs = [ cmake flex bison file ];
buildInputs = [ openssl libpcap perl zlib curl geoip gperftools python swig ];
enableParallelBuilding = true; enableParallelBuilding = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Powerful network analysis framework that is much different from the typical IDS you may know"; description = "Powerful network analysis framework much different from a typical IDS";
homepage = https://www.bro.org/; homepage = https://www.bro.org/;
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];

View file

@ -25,21 +25,21 @@ stdenv.mkDerivation rec {
]; ];
installPhase = '' installPhase = ''
mkdir -p $out/{bin,opt,share/pixmaps} mkdir -p $out/{bin,opt/discord,share/pixmaps}
mv * $out/opt mv * $out/opt/discord
# Copying how adobe-reader does it, # Copying how adobe-reader does it,
# see pkgs/applications/misc/adobe-reader/builder.sh # see pkgs/applications/misc/adobe-reader/builder.sh
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$out/opt:$libPath" \ --set-rpath "$out/opt/discord:$libPath" \
$out/opt/Discord $out/opt/discord/Discord
paxmark m $out/opt/Discord paxmark m $out/opt/discord/Discord
wrapProgram $out/opt/Discord --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH:${libcxx}/lib:${systemd.lib}/lib:${libpulseaudio}/lib" wrapProgram $out/opt/discord/Discord --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH:${libcxx}/lib:${systemd.lib}/lib:${libpulseaudio}/lib"
ln -s $out/opt/Discord $out/bin/ ln -s $out/opt/discord/Discord $out/bin/
ln -s $out/opt/discord.png $out/share/pixmaps ln -s $out/opt/discord/discord.png $out/share/pixmaps
ln -s "${desktopItem}/share/applications" $out/share/ ln -s "${desktopItem}/share/applications" $out/share/
''; '';

View file

@ -0,0 +1,25 @@
{ stdenv, fetchurl, fetchpatch }:
stdenv.mkDerivation rec {
name= "riot-web-${version}";
version = "0.12.2";
src = fetchurl {
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
sha256 = "0zyddpnng1vjli12hn1hd0w99g6sfsk80dn2ll5h9276nc677pnh";
};
installPhase = ''
mkdir -p $out/
cp -R . $out/
'';
meta = {
description = "A glossy Matrix collaboration client for the web";
homepage = http://riot.im/;
maintainers = with stdenv.lib.maintainers; [ bachp ];
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.all;
hydraPlatforms = [];
};
}

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchFromGitHub, fetchgit, pkgconfig, gyp, cmake { mkDerivation, lib, fetchgit, pkgconfig, gyp, cmake
, qtbase, qtimageformats , qtbase, qtimageformats
, breakpad, gtk3, libappindicator-gtk3, dee , breakpad, gtk3, libappindicator-gtk3, dee
, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio , ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio
@ -7,19 +7,20 @@
mkDerivation rec { mkDerivation rec {
name = "telegram-desktop-${version}"; name = "telegram-desktop-${version}";
version = "1.1.7"; version = "1.1.19";
# Submodules # Submodules
src = fetchgit { src = fetchgit {
url = "https://github.com/telegramdesktop/tdesktop"; url = "git://github.com/telegramdesktop/tdesktop";
rev = "refs/tags/v${version}"; rev = "v${version}";
sha256 = "0y0nc8d4vlhsmzayy26zdxc5jaiwcv0rb2s1v5fwnnx71gf89m2w"; sha256 = "1zpl71k2lq861k89yp6nzkm4jm6szxrzigmmbxx63rh4v03di3b6";
fetchSubmodules = true;
}; };
tgaur = fetchgit { tgaur = fetchgit {
url = "https://aur.archlinux.org/telegram-desktop-systemqt.git"; url = "https://aur.archlinux.org/telegram-desktop-systemqt.git";
rev = "83af81905de7fc5dc9fbea8f5318d56fa8a6efc6"; rev = "a4ba392309116003bc2b75c1c4c12dc733168d6f";
sha256 = "0v7g7y5cmxzp2yrcj6ylwzxlzr9yrqs2badzplm7sg012nc69yf9"; sha256 = "1n0yar8pm050770x36kjr4iap773xjigfbnrk289b51i5vijwhsv";
}; };
buildInputs = [ buildInputs = [

View file

@ -0,0 +1,28 @@
{ stdenv, fetchgit, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, sqlite }:
stdenv.mkDerivation rec {
name = "nextcloud-client-${version}";
version = "2.3.2";
src = fetchgit {
url = "git://github.com/nextcloud/client_theming.git";
rev = "1ee750d1aeaaefc899629e85c311594603e9ac1b";
sha256 = "0dxyng8a7cg78z8yngiqypsb44lf5c6vkabvkfch0cl0cqmarc1a";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ qtbase qtwebkit qtkeychain sqlite ];
preConfigure = ''
cmakeFlagsArray+=("-UCMAKE_INSTALL_LIBDIR" "-DOEM_THEME_DIR=$(realpath ./nextcloudtheme)" "../client")
'';
meta = with stdenv.lib; {
description = "Nextcloud themed desktop client";
homepage = https://nextcloud.com;
license = licenses.gpl2;
maintainers = with maintainers; [ caugner ];
platforms = platforms.unix;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jre }: { stdenv, fetchurl, jre, makeWrapper }:
with stdenv.lib; with stdenv.lib;
@ -11,20 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "01nq1vwkqdidmprlnz5d3c5412r6igv689barv64dmb9m6iqg53z"; sha256 = "01nq1vwkqdidmprlnz5d3c5412r6igv689barv64dmb9m6iqg53z";
}; };
inherit jre; nativeBuildInputs = [ makeWrapper ];
installPhase = '' installPhase = ''
jar=$(ls */*.jar)
mkdir -p $out/share/java mkdir -p $out/share/java
mv $jar $out/share/java mv $(ls */*.jar) $out/share/java
mkdir -p $out/bin makeWrapper $out/share/java/frostwire $out/bin/frostwire \
cat > $out/bin/frostwire <<EOF --prefix PATH : ${jre}/bin/
#! $SHELL -e
exec $out/share/java/frostwire
EOF
chmod +x $out/bin/frostwire
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -14,13 +14,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "freerdp-git-${version}"; name = "freerdp-git-${version}";
version = "20170502"; version = "20170724";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FreeRDP"; owner = "FreeRDP";
repo = "FreeRDP"; repo = "FreeRDP";
rev = "8569102c3a011602de3a1cdf69f7c69adbb864ee"; rev = "2.0.0-rc0";
sha256 = "0m61aiy8l3ybnk2d2kjmpp9ql31zfs63gjixyj9x95jd4m507j67"; sha256 = "0ngwdy0lfv2k59z1z8yq1wj5zbhqigpyfqbgh38m9p35yzh33lv1";
}; };
# outputs = [ "bin" "out" "dev" ]; # outputs = [ "bin" "out" "dev" ];

View file

@ -1,21 +1,45 @@
{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig {
, kdelibs4, kdepimlibs, boost, baloo }: stdenv,
fetchurl, fetchpatch,
extra-cmake-modules,
qtbase, boost,
akonadi-calendar, akonadi-notes, akonadi-search, kidentitymanagement, kontactinterface, kldap,
krunner, kwallet
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "zanshin-0.3.1"; pname = "zanshin";
version = "0.4.1";
name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "http://files.kde.org/zanshin/${name}.tar.bz2"; url = "https://files.kde.org/${pname}/${name}.tar.bz2";
sha256 = "1ck2ncz8i816d6d1gcsdrh6agd2zri24swgz3bhn8vzbk4215yzl"; sha256 = "1llqm4w4mhmdirgrmbgwrpqyn47phwggjdghf164k3qw0bi806as";
}; };
nativeBuildInputs = [ automoc4 cmake perl pkgconfig ]; patches = [
(fetchpatch {
name = "zanshin-fix-qt59-build.patch";
url = "https://phabricator.kde.org/R4:77ad64872f69ad9f7abe3aa8e103a12b95e100a4?diff=1";
sha256 = "0p497gqd3jmhbmqzh46zp6zwf6j1q77a9jp0in49xhgc2kj5ar7x";
})
];
buildInputs = [ kdelibs4 kdepimlibs boost baloo ]; nativeBuildInputs = [
extra-cmake-modules
];
meta = { buildInputs = [
description = "GTD for KDE"; qtbase boost
maintainers = [ ]; akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap
inherit (kdelibs4.meta) platforms; krunner kwallet
];
meta = with stdenv.lib; {
description = "A powerful yet simple application to manage your day to day actions, getting your mind like water";
homepage = https://zanshin.kde.org/;
maintainers = with maintainers; [ zraexy ];
platforms = platforms.linux;
license = licenses.gpl2Plus;
}; };
} }

View file

@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
cd src cd src
''; '';
cmakeFlags = [ "-GNinja" ];
postInstall = '' postInstall = ''
wrapProgram $out/bin/linja --prefix PATH : $out/bin:${ninja}/bin wrapProgram $out/bin/linja --prefix PATH : $out/bin:${ninja}/bin
''; '';

View file

@ -1,6 +1,6 @@
{stdenv, fetchurl, gmp, cmake, python}: {stdenv, fetchurl, gmp, cmake, python}:
let version = "0.1.3"; let version = "0.1.4";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
@ -8,7 +8,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://github.com/SRI-CSL/libpoly/archive/v${version}.tar.gz"; url = "https://github.com/SRI-CSL/libpoly/archive/v${version}.tar.gz";
sha256 = "0nd90585imnznyp04vg6a5ixxkd3bavhv1437397aj2k3dfc0y2k"; sha256 = "16x1pk2a3pcb5a0dzyw28ccjwkhmbsck4hy80ss7kx0dd7qgpi7j";
}; };
buildInputs = [ cmake gmp python ]; buildInputs = [ cmake gmp python ];

View file

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "yices-${version}"; name = "yices-${version}";
version = "2.5.2"; version = "2.5.3";
src = fetchurl { src = fetchurl {
url = "http://yices.csl.sri.com/cgi-bin/yices2-newnewdownload.cgi?file=${name}-src.tar.gz&accept=I+Agree"; url = "https://github.com/SRI-CSL/yices2/archive/Yices-${version}.tar.gz";
name = "${name}-src.tar.gz"; name = "${name}-src.tar.gz";
sha256 = "18mjnwg0pwc0fx4f99l7hxsi10mb5skkzk0k1m3xv5kx3qfnghs0"; sha256 = "0a3zzbvmgyiljzqn6xmc037gismm779p696jywk09j2pqbvp52ac";
}; };
patchPhase = ''patchShebangs tests/regress/check.sh''; patchPhase = ''patchShebangs tests/regress/check.sh'';
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
# only installing the libyices.so.2.5.1 file. # only installing the libyices.so.2.5.1 file.
installPhase = '' installPhase = ''
make install LDCONFIG=true make install LDCONFIG=true
(cd $out/lib && ln -s -f libyices.so.2.5.2 libyices.so.2.5) (cd $out/lib && ln -s -f libyices.so.2.5.3 libyices.so.2.5)
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ wscott thoughtpolice ]; maintainers = with stdenv.lib.maintainers; [ wscott thoughtpolice ];
broken = true; # seems to fail on recent glibc versions
}; };
} }

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "git-open-${version}"; name = "git-open-${version}";
version = "1.3.0"; version = "1.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "paulirish"; owner = "paulirish";
repo = "git-open"; repo = "git-open";
rev = "v${version}"; rev = "v${version}";
sha256 = "005am4phf7j4ybc9k1hqsxjb7gv2i56a3axrza866pwwx1ayrhpq"; sha256 = "1klj41vqgyyigqzi6s1ykz9vd8wvaq3skin63pi989dlsjf7igyr";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View file

@ -1,12 +1,13 @@
{ fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio { fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio
, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc , gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
, gzip, openssh , gzip, openssh, pcre2
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45 , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
, libxslt, tcl, tk, makeWrapper, libiconv , libxslt, tcl, tk, makeWrapper, libiconv
, svnSupport, subversionClient, perlLibs, smtpPerlLibs, gitwebPerlLibs , svnSupport, subversionClient, perlLibs, smtpPerlLibs, gitwebPerlLibs
, guiSupport , guiSupport
, withManual ? true , withManual ? true
, pythonSupport ? true , pythonSupport ? true
, withpcre2 ? true
, sendEmailSupport , sendEmailSupport
, darwin , darwin
}: }:
@ -44,6 +45,7 @@ stdenv.mkDerivation {
++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_45 libxslt ] docbook_xsl docbook_xml_dtd_45 libxslt ]
++ stdenv.lib.optionals guiSupport [tcl tk] ++ stdenv.lib.optionals guiSupport [tcl tk]
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ]; ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
@ -70,7 +72,9 @@ stdenv.mkDerivation {
# so that `SPARSE_FLAGS' corresponds to the current architecture... # so that `SPARSE_FLAGS' corresponds to the current architecture...
#doCheck = true; #doCheck = true;
installFlags = "NO_INSTALL_HARDLINKS=1"; installFlags = "NO_INSTALL_HARDLINKS=1"
+ (if withpcre2 then " USE_LIBPCRE2=1" else "");
preInstall = stdenv.lib.optionalString stdenv.isDarwin '' preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
mkdir -p $out/bin mkdir -p $out/bin

View file

@ -1,24 +1,24 @@
{ stdenv, fetchurl, rustPlatform, perl, darwin }: { stdenv, fetchurl, rustPlatform, darwin }:
with rustPlatform; with rustPlatform;
buildRustPackage rec { buildRustPackage rec {
name = "pijul-${version}"; name = "pijul-${version}";
version = "0.6.0"; version = "0.7.3";
src = fetchurl { src = fetchurl {
url = "https://pijul.org/releases/${name}.tar.gz"; url = "https://pijul.org/releases/${name}.tar.gz";
sha256 = "a6b066b49b25d1083320c5ab23941deee795e1fcbe1faa951e95189fd594cdb3"; sha256 = "08cffv6nfp1iv9m2qhr9hggy9kg8xp07p8kqkjypfsdsb983vz5n";
}; };
sourceRoot = "pijul"; sourceRoot = "${name}/pijul";
buildInputs = stdenv.lib.optionals stdenv.isDarwin buildInputs = stdenv.lib.optionals stdenv.isDarwin
(with darwin.apple_sdk.frameworks; [ Security ]); (with darwin.apple_sdk.frameworks; [ Security ]);
doCheck = false; doCheck = false;
depsSha256 = "0raim0ahqg6fkidb6picfzircdzwdbsdmmv8in70r5hw770bv67r"; depsSha256 = "1qzzpnkyw1bn5fnj06c80f7985v1q0rqcphrrrkpbi33lg5mzgbv";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A distributed version control system"; description = "A distributed version control system";

View file

@ -10,13 +10,13 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mkvtoolnix-${version}"; name = "mkvtoolnix-${version}";
version = "14.0.0"; version = "15.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mbunkus"; owner = "mbunkus";
repo = "mkvtoolnix"; repo = "mkvtoolnix";
rev = "release-${version}"; rev = "release-${version}";
sha256 = "1ygc2qrd074vz2yw4iqml5ir31kkvkv7pz3hcfy423p9s06xi1k2"; sha256 = "06n0hbp484zpsjvnzp6p0nzzssym3illxdicn3y1jf8gy971rxi0";
}; };
nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ]; nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ];

View file

@ -3,11 +3,11 @@
let let
pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]); pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]);
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "qarte-3.2.0+158"; name = "qarte-3.10.0+188";
src = fetchbzr { src = fetchbzr {
url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-3; url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-3;
rev = "158"; rev = "188";
sha256 = "0nj9yxylz1nz0hdjm0jzrq2l3dgfdqkafwxnzydp6qv6261w564n"; sha256 = "06xpkjgm5ci5gfkza9f44m8l4jj32gfmr65cqs4x0j2ihrc6b4r9";
}; };
buildInputs = [ makeWrapper pythonEnv ]; buildInputs = [ makeWrapper pythonEnv ];

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, qmake, qtscript }: { stdenv, fetchurl, qmake, qtscript }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "smplayer-17.7.0"; name = "smplayer-17.8.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/smplayer/${name}.tar.bz2"; url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
sha256 = "1g35h8xqs2bdwjdibzgs1ab2z2lmwgj8h53a7vqydv3j3crxx9wk"; sha256 = "0sm7zf7nvcjlx8fvzfnlrs7rr0c549j7r60j68lv898vp6yhwybh";
}; };
buildInputs = [ qtscript ]; buildInputs = [ qtscript ];

View file

@ -27,7 +27,7 @@ stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
export OUTPUT_FD=$fd export OUTPUT_FD=$fd
for file in \ for file in \
"${edk2.src}"/{UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg}; "${edk2.src}"/{UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg,FatPkg,CryptoPkg,SourceLevelDebugPkg};
do do
ln -sv "$file" . ln -sv "$file" .
done done

View file

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "distribution-${version}"; name = "distribution-${version}";
version = "2.6.0"; version = "2.6.2";
rev = "v${version}"; rev = "v${version}";
goPackagePath = "github.com/docker/distribution"; goPackagePath = "github.com/docker/distribution";
@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "docker"; owner = "docker";
repo = "distribution"; repo = "distribution";
inherit rev; inherit rev;
sha256 = "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"; sha256 = "0nj4xd72mik4pj8g065cqb0yjmgpj5ppsqf2k5ibz9f68c39c00b";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -3,22 +3,22 @@
, freetype, fontconfig, pkgconfig, gdk_pixbuf , freetype, fontconfig, pkgconfig, gdk_pixbuf
, mkfontdir, libX11, libXft, libXext, libXinerama , mkfontdir, libX11, libXft, libXext, libXinerama
, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb , libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
, libpthreadstubs }: , libpthreadstubs, pcre }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "icewm-${version}"; name = "icewm-${version}";
version = "1.3.12"; version = "1.4.2";
buildInputs = buildInputs =
[ cmake gettext libjpeg libtiff libungif libpng imlib expat [ cmake gettext libjpeg libtiff libungif libpng imlib expat
freetype fontconfig pkgconfig gdk_pixbuf mkfontdir libX11 freetype fontconfig pkgconfig gdk_pixbuf mkfontdir libX11
libXft libXext libXinerama libXrandr libICE libSM libXpm libXft libXext libXinerama libXrandr libICE libSM libXpm
libXdmcp libxcb libpthreadstubs ]; libXdmcp libxcb libpthreadstubs pcre ];
src = fetchurl { src = fetchurl {
url = "https://github.com/bbidulock/icewm/archive/${version}.tar.gz"; url = "https://github.com/bbidulock/icewm/archive/${version}.tar.gz";
sha256 = "0cmjnf0yvafwg73qy5wq7ghiknpn1jf1978c1yj7yabyn07zxq77"; sha256 = "05chzjjnb4n4j05ld2gmhhr07c887qb4j9inwg9izhvml51af1bw";
}; };
preConfigure = '' preConfigure = ''

View file

@ -1,7 +1,7 @@
{ stdenv, fetchzip }: { stdenv, fetchzip }:
let let
version = "1.13.1"; version = "1.13.3";
in fetchzip rec { in fetchzip rec {
name = "iosevka-${version}"; name = "iosevka-${version}";
@ -12,7 +12,7 @@ in fetchzip rec {
unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
''; '';
sha256 = "0w35jkvfnzn4clm3010wv13sil2yj6pxffx40apjp7yhh19c4sw7"; sha256 = "0103rjxcp2sis42xp7fh7g8i03h5snvs8n78lgsf79g8ssw0p9d4";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://be5invis.github.io/Iosevka/; homepage = https://be5invis.github.io/Iosevka/;

View file

@ -1,16 +1,15 @@
{ stdenv, fetchgit }: { stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wireless-regdb-${version}"; name = "wireless-regdb-${version}";
version = "2016-06-10"; version = "2017.03.07";
src = fetchgit { src = fetchurl {
sha256 = "0im9likzpziircl96pql2jpyl8pfcqc5v0wgqy705j4ga5sx8pmn"; url = "https://www.kernel.org/pub/software/network/wireless-regdb/${name}.tar.xz";
url = https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git; sha256 = "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip";
rev = "refs/tags/master-${version}";
}; };
phases = [ "unpackPhase" "installPhase" ]; dontBuild = true;
makeFlags = [ makeFlags = [
"DESTDIR=$(out)" "DESTDIR=$(out)"
@ -22,6 +21,6 @@ stdenv.mkDerivation rec {
homepage = http://wireless.kernel.org/en/developers/Regulatory/; homepage = http://wireless.kernel.org/en/developers/Regulatory/;
license = licenses.isc; license = licenses.isc;
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ nckx ]; maintainers = with maintainers; [ nckx fpletz ];
}; };
} }

View file

@ -2,7 +2,6 @@
rec { rec {
#### CORE EFL #### CORE EFL
efl = callPackage ./efl.nix { openjpeg = pkgs.openjpeg_1; }; efl = callPackage ./efl.nix { openjpeg = pkgs.openjpeg_1; };
efl_1_19 = callPackage ./efl.nix { eflVersion = "1.19.1"; openjpeg = pkgs.openjpeg_1; };
#### WINDOW MANAGER #### WINDOW MANAGER
enlightenment = callPackage ./enlightenment.nix { }; enlightenment = callPackage ./enlightenment.nix { };
@ -11,5 +10,5 @@ rec {
econnman = callPackage ./econnman.nix { }; econnman = callPackage ./econnman.nix { };
terminology = callPackage ./terminology.nix { }; terminology = callPackage ./terminology.nix { };
rage = callPackage ./rage.nix { }; rage = callPackage ./rage.nix { };
ephoto = callPackage ./ephoto.nix { efl = efl_1_19; }; ephoto = callPackage ./ephoto.nix { };
} }

View file

@ -4,35 +4,30 @@
, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg , python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg
, dbus_libs, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp , dbus_libs, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp
, curl, libinput, systemd, writeText , curl, libinput, systemd, writeText
# Support more than one version because for now ephoto does not work with efl-1.20.x
, eflVersion ? "1.20.2"
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "efl-${version}"; name = "efl-${version}";
version = eflVersion; version = "1.20.2";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz"; url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz";
sha256 = { sha256 = "0zll6k4xbbdsxqg53g8jddgv889g5m1xh20i03iz5a52y2bcnh55";
"1.19.1" = "0fndwraca9rg0bz3al4isdprvyw56szr88qiyvglb4j8ygsylscc";
"1.20.2" = "0zll6k4xbbdsxqg53g8jddgv889g5m1xh20i03iz5a52y2bcnh55";
}.${version};
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl zlib lz4 freetype fontconfig fribidi SDL2 SDL mesa buildInputs = [ openssl zlib lz4 freetype fontconfig SDL mesa
giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto
xorg.libX11 udev utillinux systemd ]; xorg.libX11 udev systemd ];
propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite
xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext
bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr
xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit
harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler ghostscript libraw libspectre xineLib libwebp curl libdrm harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler ghostscript libraw libspectre xineLib libwebp curl libdrm
libinput ]; libinput utillinux fribidi SDL2 ];
# ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++ # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++
configureFlags = [ configureFlags = [

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgconfig, efl, xcbutilkeysyms, libXrandr, libXdmcp, { stdenv, fetchurl, pkgconfig, efl, xcbutilkeysyms, libXrandr, libXdmcp,
libxcb, libffi, pam, alsaLib, luajit, bzip2, libpthreadstubs, gdbm, libcap, libxcb, libffi, pam, alsaLib, luajit, bzip2, libpthreadstubs, gdbm, libcap,
mesa_glu, xkeyboard_config }: mesa_glu, xkeyboard_config, pcre }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "enlightenment-${version}"; name = "enlightenment-${version}";
@ -11,22 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "0w5f3707hyfc20i6xqh4jlr5p2yhy1z794061mjsz2rp4w00qmpb"; sha256 = "0w5f3707hyfc20i6xqh4jlr5p2yhy1z794061mjsz2rp4w00qmpb";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ (pkgconfig.override { vanilla = true; }) ];
buildInputs = [ buildInputs = [
efl libXdmcp libxcb xcbutilkeysyms libXrandr libffi pam alsaLib efl libXdmcp libxcb xcbutilkeysyms libXrandr libffi pam alsaLib
luajit bzip2 libpthreadstubs gdbm luajit bzip2 libpthreadstubs gdbm pcre
] ++ ] ++
stdenv.lib.optionals stdenv.isLinux [ libcap ]; stdenv.lib.optionals stdenv.isLinux [ libcap ];
NIX_CFLAGS_COMPILE = [
"-I${efl}/include/ecore-imf-1"
"-I${efl}/include/emile-1"
"-I${efl}/include/eo-1"
"-I${efl}/include/ethumb-1"
"-I${efl}/include/ethumb-client-1"
];
preConfigure = '' preConfigure = ''
export USER_SESSION_DIR=$prefix/lib/systemd/user export USER_SESSION_DIR=$prefix/lib/systemd/user

View file

@ -1,29 +1,17 @@
{ stdenv, fetchurl, pkgconfig, efl, curl, makeWrapper }: { stdenv, fetchurl, pkgconfig, efl, pcre, curl, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ephoto-${version}"; name = "ephoto-${version}";
version = "1.0"; version = "1.5";
src = fetchurl { src = fetchurl {
url = "http://www.smhouston.us/stuff/${name}.tar.gz"; url = "http://www.smhouston.us/stuff/${name}.tar.gz";
sha256 = "0l6zrk22fap6pylmzxwp6nycy8l5wdc7jza890h4zrwmpfag8w31"; sha256 = "09kraa5zz45728h2dw1ssh23b87j01bkfzf977m48y1r507sy3vb";
}; };
nativeBuildInputs = [ pkgconfig makeWrapper ]; nativeBuildInputs = [ (pkgconfig.override { vanilla = true; }) makeWrapper ];
buildInputs = [ efl curl ]; buildInputs = [ efl pcre curl ];
NIX_CFLAGS_COMPILE = [
"-I${efl}/include/ecore-con-1"
"-I${efl}/include/ecore-evas-1"
"-I${efl}/include/ecore-imf-1"
"-I${efl}/include/ecore-input-1"
"-I${efl}/include/eet-1"
"-I${efl}/include/eldbus-1"
"-I${efl}/include/emile-1"
"-I${efl}/include/ethumb-1"
"-I${efl}/include/ethumb-client-1"
];
postInstall = '' postInstall = ''
wrapProgram $out/bin/ephoto --prefix LD_LIBRARY_PATH : ${curl.out}/lib wrapProgram $out/bin/ephoto --prefix LD_LIBRARY_PATH : ${curl.out}/lib

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, efl, gst_all_1, curl, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, efl, gst_all_1, pcre, curl, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "rage-${version}"; name = "rage-${version}";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig (pkgconfig.override { vanilla = true; })
wrapGAppsHook wrapGAppsHook
]; ];
@ -21,24 +21,10 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-good gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-bad
gst_all_1.gst-libav gst_all_1.gst-libav
pcre
curl curl
]; ];
NIX_CFLAGS_COMPILE = [
"-I${efl}/include/ecore-con-1"
"-I${efl}/include/ecore-evas-1"
"-I${efl}/include/ecore-file-1"
"-I${efl}/include/ecore-imf-1"
"-I${efl}/include/ecore-input-1"
"-I${efl}/include/eet-1"
"-I${efl}/include/efreet-1"
"-I${efl}/include/eldbus-1"
"-I${efl}/include/emile-1"
"-I${efl}/include/eo-1"
"-I${efl}/include/ethumb-1"
"-I${efl}/include/ethumb-client-1"
];
postInstall = '' postInstall = ''
wrapProgram $out/bin/rage --prefix LD_LIBRARY_PATH : ${curl.out}/lib wrapProgram $out/bin/rage --prefix LD_LIBRARY_PATH : ${curl.out}/lib
''; '';

View file

@ -1,26 +1,17 @@
{ stdenv, fetchurl, pkgconfig, efl, curl, makeWrapper }: { stdenv, fetchurl, pkgconfig, efl, pcre, curl, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "terminology-${version}"; name = "terminology-${version}";
version = "1.0.0"; version = "1.1.0";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.xz"; url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.xz";
sha256 = "1x4j2q4qqj10ckbka0zaq2r2zm66ff1x791kp8slv1ff7fw45vdz"; sha256 = "13rl1k22yf8qrpzdm5nh6ij641fibadr2ww1r7rnz7mbhzj3d4gb";
}; };
nativeBuildInputs = [ pkgconfig makeWrapper ]; nativeBuildInputs = [ (pkgconfig.override { vanilla = true; }) makeWrapper ];
buildInputs = [ efl curl ]; buildInputs = [ efl pcre curl ];
NIX_CFLAGS_COMPILE = [
"-I${efl}/include/ecore-con-1"
"-I${efl}/include/eldbus-1"
"-I${efl}/include/elocation-1"
"-I${efl}/include/emile-1"
"-I${efl}/include/eo-1"
"-I${efl}/include/ethumb-1"
];
postInstall = '' postInstall = ''
for f in $out/bin/*; do for f in $out/bin/*; do

View file

@ -30,6 +30,8 @@ kde {
--replace /usr/share/X11 ${xkeyboard_config}/etc/X11 --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
''; '';
NIX_CFLAGS_COMPILE = [ "-fpermissive" ]; # gcc-6
enableParallelBuilding = false; # frequent problems on Hydra enableParallelBuilding = false; # frequent problems on Hydra
meta = { meta = {

View file

@ -34,7 +34,7 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildPhase = '' buildPhase = ''
while IFS= read -r -d $'\0' i; do while IFS= read -r -d ''$'\0' i; do
substituteInPlace "$i" --replace /opt/MaXX $out/opt/MaXX substituteInPlace "$i" --replace /opt/MaXX $out/opt/MaXX
done < <(find "." -type f -exec grep -Iq /opt/MaXX {} \; -and -print0) done < <(find "." -type f -exec grep -Iq /opt/MaXX {} \; -and -print0)
@ -57,7 +57,7 @@ in stdenv.mkDerivation {
--prefix GDK_PIXBUF_MODULE_FILE : "$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)" \ --prefix GDK_PIXBUF_MODULE_FILE : "$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)" \
--prefix PATH : ${stdenv.lib.makeBinPath runtime_deps} --prefix PATH : ${stdenv.lib.makeBinPath runtime_deps}
while IFS= read -r -d $'\0' i; do while IFS= read -r -d ''$'\0' i; do
if isELF "$i"; then if isELF "$i"; then
bin=`patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"; echo $?` bin=`patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"; echo $?`
patchelf --set-rpath "${stdenv.lib.makeLibraryPath deps}" "$i" patchelf --set-rpath "${stdenv.lib.makeLibraryPath deps}" "$i"

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "abcl"; pname = "abcl";
version = "1.4.0"; version = "1.5.0";
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
src = fetchurl { src = fetchurl {
url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz"; url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
sha256 = "1y4nixm1459ch6226ikdilcsf91c2rg1d82cqqmcn24kfjl1m62i"; sha256 = "1hhvcg050nfpjbdmskc1cv2j38qi6qfl77a61b5cxx576kbff3lj";
}; };
configurePhase = '' configurePhase = ''
mkdir nix-tools mkdir nix-tools

View file

@ -1,4 +1,4 @@
{ stdenv, fetchgit, libuuid, python2, iasl }: { stdenv, fetchFromGitHub, libuuid, python2, iasl }:
let let
pythonEnv = python2.withPackages(ps: [ps.tkinter]); pythonEnv = python2.withPackages(ps: [ps.tkinter]);
@ -13,10 +13,11 @@ else
edk2 = stdenv.mkDerivation { edk2 = stdenv.mkDerivation {
name = "edk2-2014-12-10"; name = "edk2-2014-12-10";
src = fetchgit { src = fetchFromGitHub {
url = git://github.com/tianocore/edk2; owner = "tianocore";
rev = "684a565a04"; repo = "edk2";
sha256 = "0s9ywb8w7xzlnmm4kwzykxkrdaw53b7pky121cc9wjkllzqwyxrb"; rev = "vUDK2017";
sha256 = "0sswa028644yr8fbl8j6rhrdm717fj29h4dys3ygklmjhss90a2g";
}; };
buildInputs = [ libuuid pythonEnv]; buildInputs = [ libuuid pythonEnv];

View file

@ -1,19 +0,0 @@
diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h
--- a/rts/LinkerInternals.h
+++ b/rts/LinkerInternals.h
@@ -303,4 +303,14 @@
# define OBJFORMAT_MACHO
#endif
+/* In order to simplify control flow a bit, some references to mmap-related
+ definitions are blocked off by a C-level if statement rather than a CPP-level
+ #if statement. Since those are dead branches when !RTS_LINKER_USE_MMAP, we
+ just stub out the relevant symbols here
+*/
+#if !RTS_LINKER_USE_MMAP
+#define munmap(x,y) /* nothing */
+#define MAP_ANONYMOUS 0
+#endif
+
#endif /* LINKERINTERNALS_H */

View file

@ -1,22 +0,0 @@
diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c
--- a/rts/sm/Storage.c
+++ b/rts/sm/Storage.c
@@ -1314,7 +1314,7 @@
------------------------------------------------------------------------- */
#if (defined(arm_HOST_ARCH) || defined(aarch64_HOST_ARCH)) && defined(ios_HOST_OS)
-void sys_icache_invalidate(void *start, size_t len);
+#include <libkern/OSCacheControl.h>
#endif
/* On ARM and other platforms, we need to flush the cache after
@@ -1327,7 +1327,7 @@
(void)exec_addr;
#elif (defined(arm_HOST_ARCH) || defined(aarch64_HOST_ARCH)) && defined(ios_HOST_OS)
/* On iOS we need to use the special 'sys_icache_invalidate' call. */
- sys_icache_invalidate(exec_addr, ((unsigned char*)exec_addr)+len);
+ sys_icache_invalidate(exec_addr, len);
#elif defined(__GNUC__)
/* For all other platforms, fall back to a libgcc builtin. */
unsigned char* begin = (unsigned char*)exec_addr;

View file

@ -1,158 +0,0 @@
diff --git a/includes/rts/OSThreads.h b/includes/rts/OSThreads.h
--- a/includes/rts/OSThreads.h
+++ b/includes/rts/OSThreads.h
@@ -15,7 +15,12 @@
#ifndef RTS_OSTHREADS_H
#define RTS_OSTHREADS_H
-#if defined(THREADED_RTS) /* to near the end */
+#if defined(HAVE_PTHREAD_H) && !defined(mingw32_HOST_OS)
+#define BUILD_OSTHREAD_POSIX
+#endif
+
+
+#if defined(THREADED_RTS) || defined(BUILD_OSTHREAD_POSIX) /* to near end */
#if defined(HAVE_PTHREAD_H) && !defined(mingw32_HOST_OS)
@@ -205,13 +210,25 @@
void releaseThreadNode (void);
#endif // !CMINUSMINUS
-#else
+#endif /* defined(THREADED_RTS) || defined(BUILD_OSTHREAD_POSIX) */
+
+#ifndef THREADED_RTS
+
+#ifdef ACQUIRE_LOCK
+// If we have pthreads, we pull in the threading primitives even when the RTS
+// isn't threaded, but we expect these macros to be noops on non-threaded RTS.
+
+#undef ACQUIRE_LOCK
+#undef RELEASE_LOCK
+#undef ASSERT_LOCK_HELD
+
+#endif
#define ACQUIRE_LOCK(l)
#define RELEASE_LOCK(l)
#define ASSERT_LOCK_HELD(l)
-#endif /* defined(THREADED_RTS) */
+#endif
#ifndef CMINUSMINUS
//
diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c
--- a/rts/posix/OSThreads.c
+++ b/rts/posix/OSThreads.c
@@ -35,7 +35,7 @@
#endif
#endif
-#if defined(THREADED_RTS)
+#if defined(THREADED_RTS) || defined(BUILD_OSTHREAD_POSIX)
#include "RtsUtils.h"
#include "Task.h"
@@ -225,47 +225,6 @@
return NULL;
}
-int
-forkOS_createThread ( HsStablePtr entry )
-{
- pthread_t tid;
- int result = pthread_create(&tid, NULL,
- forkOS_createThreadWrapper, (void*)entry);
- if(!result)
- pthread_detach(tid);
- return result;
-}
-
-void freeThreadingResources (void) { /* nothing */ }
-
-uint32_t
-getNumberOfProcessors (void)
-{
- static uint32_t nproc = 0;
-
- if (nproc == 0) {
-#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)
- nproc = sysconf(_SC_NPROCESSORS_ONLN);
-#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_CONF)
- nproc = sysconf(_SC_NPROCESSORS_CONF);
-#elif defined(darwin_HOST_OS)
- size_t size = sizeof(uint32_t);
- if(sysctlbyname("hw.logicalcpu",&nproc,&size,NULL,0) != 0) {
- if(sysctlbyname("hw.ncpu",&nproc,&size,NULL,0) != 0)
- nproc = 1;
- }
-#elif defined(freebsd_HOST_OS)
- size_t size = sizeof(uint32_t);
- if(sysctlbyname("hw.ncpu",&nproc,&size,NULL,0) != 0)
- nproc = 1;
-#else
- nproc = 1;
-#endif
- }
-
- return nproc;
-}
-
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETAFFINITY)
// Schedules the thread to run on CPU n of m. m may be less than the
// number of physical CPUs, in which case, the thread will be allowed
@@ -353,6 +312,51 @@
pthread_kill(id, SIGPIPE);
}
+#endif /* defined(THREADED_RTS) || defined(BUILD_OSTHREAD_POSIX) */
+
+#if defined(THREADED_RTS)
+
+int
+forkOS_createThread ( HsStablePtr entry )
+{
+ pthread_t tid;
+ int result = pthread_create(&tid, NULL,
+ forkOS_createThreadWrapper, (void*)entry);
+ if(!result)
+ pthread_detach(tid);
+ return result;
+}
+
+void freeThreadingResources (void) { /* nothing */ }
+
+uint32_t
+getNumberOfProcessors (void)
+{
+ static uint32_t nproc = 0;
+
+ if (nproc == 0) {
+#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)
+ nproc = sysconf(_SC_NPROCESSORS_ONLN);
+#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_CONF)
+ nproc = sysconf(_SC_NPROCESSORS_CONF);
+#elif defined(darwin_HOST_OS)
+ size_t size = sizeof(uint32_t);
+ if(sysctlbyname("hw.logicalcpu",&nproc,&size,NULL,0) != 0) {
+ if(sysctlbyname("hw.ncpu",&nproc,&size,NULL,0) != 0)
+ nproc = 1;
+ }
+#elif defined(freebsd_HOST_OS)
+ size_t size = sizeof(uint32_t);
+ if(sysctlbyname("hw.ncpu",&nproc,&size,NULL,0) != 0)
+ nproc = 1;
+#else
+ nproc = 1;
+#endif
+ }
+
+ return nproc;
+}
+
#else /* !defined(THREADED_RTS) */
int

View file

@ -1,17 +0,0 @@
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -437,7 +437,11 @@
else
CrossCompilePrefix=""
fi
-TargetPlatformFull="${TargetPlatform}"
+# Despite its similarity in name to TargetPlatform, TargetPlatformFull is used
+# in calls to subproject configure scripts and thus must be set to the autoconf
+# triple, not the normalized GHC triple that TargetPlatform is set to.
+# It may be better to just do away with the GHC triples all together.
+TargetPlatformFull="${target}"
AC_SUBST(CrossCompiling)
AC_SUBST(CrossCompilePrefix)
AC_SUBST(TargetPlatformFull)

View file

@ -1,28 +0,0 @@
{stdenv, lib, fetchurl, dmd}:
stdenv.mkDerivation {
name = "rdmd-2.067.0";
buildInputs = [ dmd ];
src = fetchurl {
url = "https://github.com/D-Programming-Language/tools/archive/v2.067.0.tar.gz";
sha256 = "2702ecda0427c675084d9b688449bc8c8392fd73e30257d79e2488640d5a9982";
};
buildPhase = ''
dmd rdmd.d
'';
installPhase = ''
mkdir -p $out/bin
cp rdmd $out/bin/
'';
meta = {
description = "Wrapper for D language compiler";
homepage = http://dlang.org/rdmd.html;
license = lib.licenses.boost;
platforms = stdenv.lib.platforms.unix;
};
}

View file

@ -37,7 +37,7 @@ core-packages:
- ghcjs-base-0 - ghcjs-base-0
default-package-overrides: default-package-overrides:
# LTS Haskell 9.1 # LTS Haskell 9.2
- abstract-deque ==0.3 - abstract-deque ==0.3
- abstract-deque-tests ==0.3 - abstract-deque-tests ==0.3
- abstract-par ==0.3.3 - abstract-par ==0.3.3
@ -364,7 +364,7 @@ default-package-overrides:
- check-email ==1.0.2 - check-email ==1.0.2
- checkers ==0.4.7 - checkers ==0.4.7
- chell ==0.4.0.1 - chell ==0.4.0.1
- choice ==0.2.1 - choice ==0.2.2
- chunked-data ==0.3.0 - chunked-data ==0.3.0
- cipher-aes ==0.2.11 - cipher-aes ==0.2.11
- cipher-aes128 ==0.7.0.3 - cipher-aes128 ==0.7.0.3
@ -411,6 +411,8 @@ default-package-overrides:
- comonads-fd ==4.0 - comonads-fd ==4.0
- compactmap ==0.1.4.2.1 - compactmap ==0.1.4.2.1
- compensated ==0.7.2 - compensated ==0.7.2
- composable-associations ==0.1.0.0
- composable-associations-aeson ==0.1.0.0
- composition ==1.0.2.1 - composition ==1.0.2.1
- composition-extra ==2.0.0 - composition-extra ==2.0.0
- concise ==0.1.0.0 - concise ==0.1.0.0
@ -457,7 +459,7 @@ default-package-overrides:
- crypto-api-tests ==0.3 - crypto-api-tests ==0.3
- crypto-cipher-tests ==0.0.11 - crypto-cipher-tests ==0.0.11
- crypto-cipher-types ==0.0.9 - crypto-cipher-types ==0.0.9
- crypto-enigma ==0.0.2.8 - crypto-enigma ==0.0.2.9
- crypto-pubkey-types ==0.4.3 - crypto-pubkey-types ==0.4.3
- crypto-random ==0.0.9 - crypto-random ==0.0.9
- crypto-random-api ==0.2.0 - crypto-random-api ==0.2.0
@ -523,7 +525,7 @@ default-package-overrides:
- Decimal ==0.4.2 - Decimal ==0.4.2
- declarative ==0.5.1 - declarative ==0.5.1
- deepseq-generics ==0.2.0.0 - deepseq-generics ==0.2.0.0
- dejafu ==0.7.1.1 - dejafu ==0.7.1.2
- dependent-map ==0.2.4.0 - dependent-map ==0.2.4.0
- dependent-sum ==0.4 - dependent-sum ==0.4
- derive ==2.6.3 - derive ==2.6.3
@ -534,7 +536,7 @@ default-package-overrides:
- diagrams-cairo ==1.4 - diagrams-cairo ==1.4
- diagrams-canvas ==1.4 - diagrams-canvas ==1.4
- diagrams-contrib ==1.4.1 - diagrams-contrib ==1.4.1
- diagrams-core ==1.4 - diagrams-core ==1.4.0.1
- diagrams-gtk ==1.4 - diagrams-gtk ==1.4
- diagrams-html5 ==1.4 - diagrams-html5 ==1.4
- diagrams-lib ==1.4.1.2 - diagrams-lib ==1.4.1.2
@ -559,7 +561,7 @@ default-package-overrides:
- disposable ==0.2.0.4 - disposable ==0.2.0.4
- distance ==0.1.0.0 - distance ==0.1.0.0
- distributed-closure ==0.3.4.0 - distributed-closure ==0.3.4.0
- distributed-static ==0.3.5.0 - distributed-static ==0.3.7
- distribution ==1.1.1.0 - distribution ==1.1.1.0
- distributive ==0.5.3 - distributive ==0.5.3
- diversity ==0.8.0.2 - diversity ==0.8.0.2
@ -666,7 +668,7 @@ default-package-overrides:
- exp-pairs ==0.1.5.2 - exp-pairs ==0.1.5.2
- expiring-cache-map ==0.0.6.1 - expiring-cache-map ==0.0.6.1
- explicit-exception ==0.1.9 - explicit-exception ==0.1.9
- extensible ==0.4.3 - extensible ==0.4.4
- extensible-effects ==1.11.1.0 - extensible-effects ==1.11.1.0
- extensible-exceptions ==0.1.1.4 - extensible-exceptions ==0.1.1.4
- extra ==1.5.3 - extra ==1.5.3
@ -764,7 +766,7 @@ default-package-overrides:
- ghc-syb-utils ==0.2.3.2 - ghc-syb-utils ==0.2.3.2
- ghc-tcplugins-extra ==0.2.1 - ghc-tcplugins-extra ==0.2.1
- ghc-typelits-extra ==0.2.3 - ghc-typelits-extra ==0.2.3
- ghc-typelits-knownnat ==0.3 - ghc-typelits-knownnat ==0.3.1
- ghc-typelits-natnormalise ==0.5.3 - ghc-typelits-natnormalise ==0.5.3
- ghcid ==0.6.6 - ghcid ==0.6.6
- ghcjs-base-stub ==0.1.0.2 - ghcjs-base-stub ==0.1.0.2
@ -776,7 +778,7 @@ default-package-overrides:
- gi-gdkpixbuf ==2.0.14 - gi-gdkpixbuf ==2.0.14
- gi-gio ==2.0.14 - gi-gio ==2.0.14
- gi-glib ==2.0.14 - gi-glib ==2.0.14
- gi-gobject ==2.0.14 - gi-gobject ==2.0.15
- gi-gtk ==3.0.17 - gi-gtk ==3.0.17
- gi-javascriptcore ==3.0.14 - gi-javascriptcore ==3.0.14
- gi-pango ==1.0.15 - gi-pango ==1.0.15
@ -1008,11 +1010,12 @@ default-package-overrides:
- hbeanstalk ==0.2.4 - hbeanstalk ==0.2.4
- Hclip ==3.0.0.4 - Hclip ==3.0.0.4
- HCodecs ==0.5 - HCodecs ==0.5
- hcwiid ==0.0.6.1
- hdaemonize ==0.5.4 - hdaemonize ==0.5.4
- HDBC ==2.4.0.1 - HDBC ==2.4.0.2
- HDBC-mysql ==0.7.1.0 - HDBC-mysql ==0.7.1.0
- HDBC-session ==0.1.1.1 - HDBC-session ==0.1.1.1
- hdevtools ==0.1.5.0 - hdevtools ==0.1.6.0
- hdocs ==0.5.2.1 - hdocs ==0.5.2.1
- heap ==1.0.3 - heap ==1.0.3
- heaps ==0.3.5 - heaps ==0.3.5
@ -1122,6 +1125,7 @@ default-package-overrides:
- hstatistics ==0.3 - hstatistics ==0.3
- hstatsd ==0.1 - hstatsd ==0.1
- HStringTemplate ==0.8.6 - HStringTemplate ==0.8.6
- HSvm ==0.1.0.3.22
- hsx-jmacro ==7.3.8 - hsx-jmacro ==7.3.8
- hsx2hs ==0.14.1.1 - hsx2hs ==0.14.1.1
- hsyslog ==5.0.1 - hsyslog ==5.0.1
@ -1141,7 +1145,7 @@ default-package-overrides:
- http-date ==0.0.6.1 - http-date ==0.0.6.1
- http-link-header ==1.0.3 - http-link-header ==1.0.3
- http-media ==0.6.4 - http-media ==0.6.4
- http-reverse-proxy ==0.4.4 - http-reverse-proxy ==0.4.5
- http-streams ==0.8.5.3 - http-streams ==0.8.5.3
- http-types ==0.9.1 - http-types ==0.9.1
- http2 ==1.6.3 - http2 ==1.6.3
@ -1155,12 +1159,12 @@ default-package-overrides:
- hw-bits ==0.5.0.3 - hw-bits ==0.5.0.3
- hw-diagnostics ==0.0.0.5 - hw-diagnostics ==0.0.0.5
- hw-excess ==0.1.0.1 - hw-excess ==0.1.0.1
- hw-int ==0.0.0.1 - hw-int ==0.0.0.3
- hw-parser ==0.0.0.2 - hw-parser ==0.0.0.3
- hw-prim ==0.4.0.3 - hw-prim ==0.4.0.5
- hw-rankselect ==0.8.0.2 - hw-rankselect ==0.8.0.2
- hw-rankselect-base ==0.2.0.1 - hw-rankselect-base ==0.2.0.2
- hw-string-parse ==0.0.0.3 - hw-string-parse ==0.0.0.4
- hw-succinct ==0.1.0.1 - hw-succinct ==0.1.0.1
- hweblib ==0.6.3 - hweblib ==0.6.3
- hworker ==0.1.0.1 - hworker ==0.1.0.1
@ -1227,7 +1231,7 @@ default-package-overrides:
- ip6addr ==0.5.3 - ip6addr ==0.5.3
- iproute ==1.7.1 - iproute ==1.7.1
- IPv6Addr ==1.0.1 - IPv6Addr ==1.0.1
- IPv6DB ==0.2.1 - IPv6DB ==0.2.2
- irc ==0.6.1.0 - irc ==0.6.1.0
- irc-client ==0.4.4.4 - irc-client ==0.4.4.4
- irc-conduit ==0.2.2.3 - irc-conduit ==0.2.2.3
@ -1258,7 +1262,7 @@ default-package-overrides:
- json-rpc-generic ==0.2.1.2 - json-rpc-generic ==0.2.1.2
- json-schema ==0.7.4.1 - json-schema ==0.7.4.1
- json-stream ==0.4.1.3 - json-stream ==0.4.1.3
- JuicyPixels ==3.2.8.2 - JuicyPixels ==3.2.8.3
- JuicyPixels-extra ==0.2.1 - JuicyPixels-extra ==0.2.1
- JuicyPixels-scale-dct ==0.1.1.2 - JuicyPixels-scale-dct ==0.1.1.2
- jvm ==0.2.2 - jvm ==0.2.2
@ -1298,7 +1302,7 @@ default-package-overrides:
- lattices ==1.5.0 - lattices ==1.5.0
- lazyio ==0.1.0.4 - lazyio ==0.1.0.4
- lca ==0.3 - lca ==0.3
- leancheck ==0.6.4 - leancheck ==0.6.5
- leapseconds-announced ==2017 - leapseconds-announced ==2017
- lens ==4.15.4 - lens ==4.15.4
- lens-action ==0.2.2 - lens-action ==0.2.2
@ -1416,7 +1420,7 @@ default-package-overrides:
- mime-mail ==0.4.14 - mime-mail ==0.4.14
- mime-mail-ses ==0.3.2.3 - mime-mail-ses ==0.3.2.3
- mime-types ==0.1.0.7 - mime-types ==0.1.0.7
- minio-hs ==0.3.0 - minio-hs ==0.3.1
- mintty ==0.1.1 - mintty ==0.1.1
- miso ==0.4.0.0 - miso ==0.4.0.0
- missing-foreign ==0.1.1 - missing-foreign ==0.1.1
@ -1463,7 +1467,7 @@ default-package-overrides:
- monoid-subclasses ==0.4.4 - monoid-subclasses ==0.4.4
- monoid-transformer ==0.0.3 - monoid-transformer ==0.0.3
- monoidal-containers ==0.3.0.2 - monoidal-containers ==0.3.0.2
- morte ==1.6.9 - morte ==1.6.10
- mountpoints ==1.0.2 - mountpoints ==1.0.2
- mstate ==0.2.7 - mstate ==0.2.7
- mtl ==2.2.1 - mtl ==2.2.1
@ -1516,10 +1520,10 @@ default-package-overrides:
- network-transport-composed ==0.2.0.1 - network-transport-composed ==0.2.0.1
- network-transport-inmemory ==0.5.2 - network-transport-inmemory ==0.5.2
- network-transport-tcp ==0.5.1 - network-transport-tcp ==0.5.1
- network-transport-tests ==0.2.3.0 - network-transport-tests ==0.2.4.1
- network-uri ==2.6.1.0 - network-uri ==2.6.1.0
- newtype ==0.2 - newtype ==0.2
- newtype-generics ==0.5 - newtype-generics ==0.5.1
- next-ref ==0.1.0.2 - next-ref ==0.1.0.2
- nfc ==0.1.0 - nfc ==0.1.0
- nicify-lib ==1.0.1 - nicify-lib ==1.0.1
@ -1587,7 +1591,7 @@ default-package-overrides:
- pager ==0.1.1.0 - pager ==0.1.1.0
- pagerduty ==0.0.8 - pagerduty ==0.0.8
- pagination ==0.2.1 - pagination ==0.2.1
- palette ==0.1.0.4 - palette ==0.1.0.5
- pandoc ==1.19.2.1 - pandoc ==1.19.2.1
- pandoc-citeproc ==0.10.5.1 - pandoc-citeproc ==0.10.5.1
- pandoc-types ==1.17.0.5 - pandoc-types ==1.17.0.5
@ -1783,7 +1787,7 @@ default-package-overrides:
- raw-strings-qq ==1.1 - raw-strings-qq ==1.1
- rawfilepath ==0.2.4 - rawfilepath ==0.2.4
- rawstring-qm ==0.2.3.0 - rawstring-qm ==0.2.3.0
- rdf ==0.1.0.1 - rdf ==0.1.0.2
- rdtsc ==1.3.0.1 - rdtsc ==1.3.0.1
- reactive-banana ==1.1.0.1 - reactive-banana ==1.1.0.1
- read-editor ==0.1.0.2 - read-editor ==0.1.0.2
@ -1861,7 +1865,7 @@ default-package-overrides:
- safe ==0.3.15 - safe ==0.3.15
- safe-exceptions ==0.1.6.0 - safe-exceptions ==0.1.6.0
- safe-exceptions-checked ==0.1.0 - safe-exceptions-checked ==0.1.0
- safecopy ==0.9.3.2 - safecopy ==0.9.3.3
- safeio ==0.0.3.0 - safeio ==0.0.3.0
- SafeSemaphore ==0.10.1 - SafeSemaphore ==0.10.1
- sample-frame ==0.0.3 - sample-frame ==0.0.3
@ -1873,11 +1877,12 @@ default-package-overrides:
- scalpel ==0.5.1 - scalpel ==0.5.1
- scalpel-core ==0.5.1 - scalpel-core ==0.5.1
- scanner ==0.2 - scanner ==0.2
- schematic ==0.1.4.0 - schematic ==0.1.6.0
- scientific ==0.3.5.1 - scientific ==0.3.5.1
- scotty ==0.11.0 - scotty ==0.11.0
- scrape-changes ==0.1.0.5 - scrape-changes ==0.1.0.5
- scrypt ==0.5.0 - scrypt ==0.5.0
- SDL ==0.6.5.1
- sdl2 ==2.2.0 - sdl2 ==2.2.0
- sdl2-gfx ==0.2 - sdl2-gfx ==0.2
- sdl2-image ==2.0.0 - sdl2-image ==2.0.0
@ -1932,7 +1937,7 @@ default-package-overrides:
- SHA ==1.6.4.2 - SHA ==1.6.4.2
- shake ==0.15.11 - shake ==0.15.11
- shake-language-c ==0.10.1 - shake-language-c ==0.10.1
- shakespeare ==2.0.13 - shakespeare ==2.0.14
- shell-conduit ==4.6.1 - shell-conduit ==4.6.1
- shelly ==1.6.8.3 - shelly ==1.6.8.3
- shikensu ==0.3.7 - shikensu ==0.3.7
@ -2013,7 +2018,7 @@ default-package-overrides:
- stateref ==0.3 - stateref ==0.3
- statestack ==0.2.0.5 - statestack ==0.2.0.5
- StateVar ==1.1.0.4 - StateVar ==1.1.0.4
- stateWriter ==0.2.8.2 - stateWriter ==0.2.9
- static-canvas ==0.2.0.3 - static-canvas ==0.2.0.3
- statistics ==0.13.3.0 - statistics ==0.13.3.0
- stemmer ==0.5.2 - stemmer ==0.5.2
@ -2064,7 +2069,7 @@ default-package-overrides:
- superrecord ==0.3.0.0 - superrecord ==0.3.0.0
- svg-builder ==0.1.0.2 - svg-builder ==0.1.0.2
- svg-tree ==0.6.2 - svg-tree ==0.6.2
- SVGFonts ==1.6.0.1 - SVGFonts ==1.6.0.2
- swagger ==0.3.0 - swagger ==0.3.0
- swagger2 ==2.1.4.1 - swagger2 ==2.1.4.1
- syb ==0.7 - syb ==0.7
@ -2214,7 +2219,7 @@ default-package-overrides:
- tries ==0.0.4.2 - tries ==0.0.4.2
- trifecta ==1.6.2.1 - trifecta ==1.6.2.1
- triplesec ==0.1.2.0 - triplesec ==0.1.2.0
- true-name ==0.1.0.2 - true-name ==0.1.0.3
- tsv2csv ==0.1.0.2 - tsv2csv ==0.1.0.2
- ttrie ==0.1.2.1 - ttrie ==0.1.2.1
- tttool ==1.7.0.3 - tttool ==1.7.0.3
@ -2223,7 +2228,7 @@ default-package-overrides:
- tuples-homogenous-h98 ==0.1.1.0 - tuples-homogenous-h98 ==0.1.1.0
- turtle ==1.3.6 - turtle ==1.3.6
- turtle-options ==0.1.0.4 - turtle-options ==0.1.0.4
- twitter-conduit ==0.2.2.1 - twitter-conduit ==0.2.2.2
- twitter-feed ==0.2.0.11 - twitter-feed ==0.2.0.11
- twitter-types ==0.7.2.2 - twitter-types ==0.7.2.2
- twitter-types-lens ==0.7.2 - twitter-types-lens ==0.7.2
@ -2239,7 +2244,7 @@ default-package-overrides:
- type-operators ==0.1.0.4 - type-operators ==0.1.0.4
- type-spec ==0.3.0.1 - type-spec ==0.3.0.1
- TypeCompose ==0.9.12 - TypeCompose ==0.9.12
- typed-process ==0.1.0.0 - typed-process ==0.1.0.1
- typelits-witnesses ==0.2.3.0 - typelits-witnesses ==0.2.3.0
- typography-geometry ==1.0.0.1 - typography-geometry ==1.0.0.1
- tz ==0.1.3.0 - tz ==0.1.3.0
@ -2447,11 +2452,11 @@ default-package-overrides:
- yackage ==0.8.1 - yackage ==0.8.1
- yahoo-finance-api ==0.2.0.2 - yahoo-finance-api ==0.2.0.2
- yaml ==0.8.23.3 - yaml ==0.8.23.3
- Yampa ==0.10.6 - Yampa ==0.10.6.1
- YampaSynth ==0.2 - YampaSynth ==0.2
- yes-precure5-command ==5.5.3 - yes-precure5-command ==5.5.3
- yesod ==1.4.5 - yesod ==1.4.5
- yesod-auth ==1.4.17.2 - yesod-auth ==1.4.17.3
- yesod-auth-account ==1.4.3 - yesod-auth-account ==1.4.3
- yesod-auth-basic ==0.1.0.2 - yesod-auth-basic ==0.1.0.2
- yesod-auth-fb ==1.8.1 - yesod-auth-fb ==1.8.1
@ -2461,7 +2466,7 @@ default-package-overrides:
- yesod-default ==1.2.0 - yesod-default ==1.2.0
- yesod-eventsource ==1.4.1 - yesod-eventsource ==1.4.1
- yesod-fb ==0.4.0 - yesod-fb ==0.4.0
- yesod-form ==1.4.13 - yesod-form ==1.4.15
- yesod-form-bootstrap4 ==0.1.0.1 - yesod-form-bootstrap4 ==0.1.0.1
- yesod-form-richtext ==0.1.0.2 - yesod-form-richtext ==0.1.0.2
- yesod-gitrepo ==0.2.1.0 - yesod-gitrepo ==0.2.1.0
@ -2657,6 +2662,8 @@ dont-distribute-packages:
ccelerate-cuda: [ i686-linux, x86_64-linux, x86_64-darwin ] ccelerate-cuda: [ i686-linux, x86_64-linux, x86_64-darwin ]
cublas: [ i686-linux, x86_64-linux, x86_64-darwin ] cublas: [ i686-linux, x86_64-linux, x86_64-darwin ]
cufft: [ i686-linux, x86_64-linux, x86_64-darwin ] cufft: [ i686-linux, x86_64-linux, x86_64-darwin ]
cusolver: [ i686-linux, x86_64-linux, x86_64-darwin ]
cusparse: [ i686-linux, x86_64-linux, x86_64-darwin ]
gloss-raster-accelerate: [ i686-linux, x86_64-linux, x86_64-darwin ] gloss-raster-accelerate: [ i686-linux, x86_64-linux, x86_64-darwin ]
libnvvm: [ i686-linux, x86_64-linux, x86_64-darwin ] libnvvm: [ i686-linux, x86_64-linux, x86_64-darwin ]
nvvm: [ i686-linux, x86_64-linux, x86_64-darwin ] nvvm: [ i686-linux, x86_64-linux, x86_64-darwin ]

File diff suppressed because it is too large Load diff

View file

@ -33,11 +33,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "racket-${version}"; name = "racket-${version}";
version = "6.9"; version = "6.10";
src = fetchurl { src = fetchurl {
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz"; url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
sha256 = "1cd218ee2ba1dc683de858a866c6666eb72a11adee8d1df6cdd59c5c5a47b714"; sha256 = "1mqnyj3bawad12dygsb11f2dbnkjp7q6d7ra714rqyw8mxix5ws0";
}; };
FONTCONFIG_FILE = fontsConf; FONTCONFIG_FILE = fontsConf;
@ -47,13 +47,14 @@ stdenv.mkDerivation rec {
buildInputs = [ fontconfig libffi libtool makeWrapper sqlite ]; buildInputs = [ fontconfig libffi libtool makeWrapper sqlite ];
preConfigure = '' preConfigure = ''
unset AR
substituteInPlace src/configure --replace /usr/bin/uname ${coreutils}/bin/uname substituteInPlace src/configure --replace /usr/bin/uname ${coreutils}/bin/uname
mkdir src/build mkdir src/build
cd src/build cd src/build
''; '';
shared = if stdenv.isDarwin then "dylib" else "shared"; shared = if stdenv.isDarwin then "dylib" else "shared";
configureFlags = [ "--enable-${shared}" "--enable-lt=${libtool}/bin/libtool" ] configureFlags = [ "--enable-${shared}" "--enable-lt=${libtool}/bin/libtool" ]
++ stdenv.lib.optional disableDocs [ "--disable-docs" ] ++ stdenv.lib.optional disableDocs [ "--disable-docs" ]
++ stdenv.lib.optional stdenv.isDarwin [ "--enable-xonx" ]; ++ stdenv.lib.optional stdenv.isDarwin [ "--enable-xonx" ];

View file

@ -1,4 +1,6 @@
{ stdenv, lib, fetchurl, SDL2, libogg, libvorbis, smpeg, flac, enableNativeMidi ? false, fluidsynth ? null }: { stdenv, lib, fetchurl, autoreconfHook, pkgconfig, which
, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug
, enableNativeMidi ? false, fluidsynth ? null }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "SDL2_mixer-${version}"; name = "SDL2_mixer-${version}";
@ -9,9 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "0pv9jzjpcjlbiaybvwrb4avmv46qk7iqxlnqrd2dfj82c4mgc92s"; sha256 = "0pv9jzjpcjlbiaybvwrb4avmv46qk7iqxlnqrd2dfj82c4mgc92s";
}; };
propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg flac ]; nativeBuildInputs = [ autoreconfHook pkgconfig which ];
configureFlags = [ "--disable-music-ogg-shared" ] ++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl"; propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg2 flac libmodplug ];
patches = [ ./libmodplug.patch ];
configureFlags = [ "--disable-music-ogg-shared" ]
++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "SDL multi-channel audio mixer library"; description = "SDL multi-channel audio mixer library";

View file

@ -0,0 +1,13 @@
diff --git a/configure.in b/configure.in
index d511646..77dc3fe 100644
--- a/configure.in
+++ b/configure.in
@@ -258,7 +258,7 @@ if test x$enable_music_mod = xyes -a x$enable_music_mod_modplug = xyes; then
have_libmodplug_lib=yes
], [dnl
AC_CHECK_HEADER([libmodplug/modplug.h], [have_libmodplug_hdr=yes])
- AC_CHECK_LIB([modplug], [have_libmodplug_lib=yes])
+ AC_CHECK_LIB([modplug], [ModPlug_Load], [have_libmodplug_lib=yes])
])
if test x$have_libmodplug_hdr = xyes -a x$have_libmodplug_lib = xyes; then

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, alsaLib, portaudio, portmidi, libsndfile, cmake, libxml2, ninja }: { stdenv, fetchFromGitHub, pkgconfig, alsaLib, portaudio, portmidi, libsndfile, cmake, libxml2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.0-beta.1"; version = "1.0-beta.1";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "1hb9b6qc18rsvzvixgllknn756m6zwcn22c79rdibbyz1bhrcnln"; sha256 = "1hb9b6qc18rsvzvixgllknn756m6zwcn22c79rdibbyz1bhrcnln";
}; };
buildInputs = [ pkgconfig alsaLib portaudio portmidi libsndfile cmake libxml2 ninja ]; buildInputs = [ pkgconfig alsaLib portaudio portmidi libsndfile cmake libxml2 ];
meta = { meta = {
description = "A C++ platform for building dynamic and reflexive systems with an emphasis on audio and media"; description = "A C++ platform for building dynamic and reflexive systems with an emphasis on audio and media";

Some files were not shown because too many files have changed in this diff Show more