Merge remote-tracking branch 'upstream/master' into hardened-stdenv
This commit is contained in:
commit
a4e65c3639
|
@ -47,6 +47,10 @@ stdenv.mkDerivation {
|
||||||
outputFile = "introduction.xml";
|
outputFile = "introduction.xml";
|
||||||
useChapters = true;
|
useChapters = true;
|
||||||
}
|
}
|
||||||
|
+ toDocbook {
|
||||||
|
inputFile = ./languages-frameworks/python.md;
|
||||||
|
outputFile = "./languages-frameworks/python.xml";
|
||||||
|
}
|
||||||
+ toDocbook {
|
+ toDocbook {
|
||||||
inputFile = ./haskell-users-guide.md;
|
inputFile = ./haskell-users-guide.md;
|
||||||
outputFile = "haskell-users-guide.xml";
|
outputFile = "haskell-users-guide.xml";
|
||||||
|
|
244
doc/languages-frameworks/bower.xml
Normal file
244
doc/languages-frameworks/bower.xml
Normal file
|
@ -0,0 +1,244 @@
|
||||||
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xml:id="sec-bower">
|
||||||
|
|
||||||
|
<title>Bower</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<link xlink:href="http://bower.io">Bower</link> is a package manager
|
||||||
|
for web site front-end components. Bower packages (comprising of
|
||||||
|
build artefacts and sometimes sources) are stored in
|
||||||
|
<command>git</command> repositories, typically on Github. The
|
||||||
|
package registry is run by the Bower team with package metadata
|
||||||
|
coming from the <filename>bower.json</filename> file within each
|
||||||
|
package.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The end result of running Bower is a
|
||||||
|
<filename>bower_components</filename> directory which can be included
|
||||||
|
in the web app's build process.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Bower can be run interactively, by installing
|
||||||
|
<varname>nodePackages.bower</varname>. More interestingly, the Bower
|
||||||
|
components can be declared in a Nix derivation, with the help of
|
||||||
|
<varname>nodePackages.bower2nix</varname>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section xml:id="ssec-bower2nix-usage">
|
||||||
|
<title><command>bower2nix</command> usage</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Suppose you have a <filename>bower.json</filename> with the following contents:
|
||||||
|
|
||||||
|
|
||||||
|
<example xml:id="ex-bowerJson"><title><filename>bower.json</filename></title>
|
||||||
|
<programlisting language="json">
|
||||||
|
<![CDATA[{
|
||||||
|
"name": "my-web-app",
|
||||||
|
"dependencies": {
|
||||||
|
"angular": "~1.5.0",
|
||||||
|
"bootstrap": "~3.3.6"
|
||||||
|
}
|
||||||
|
}]]>
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Running <command>bower2nix</command> will produce something like the
|
||||||
|
following output:
|
||||||
|
|
||||||
|
<programlisting language="nix">
|
||||||
|
<![CDATA[{ fetchbower, buildEnv }:
|
||||||
|
buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
|
||||||
|
(fetchbower "angular" "1.5.3" "~1.5.0" "1749xb0firxdra4rzadm4q9x90v6pzkbd7xmcyjk6qfza09ykk9y")
|
||||||
|
(fetchbower "bootstrap" "3.3.6" "~3.3.6" "1vvqlpbfcy0k5pncfjaiskj3y6scwifxygfqnw393sjfxiviwmbv")
|
||||||
|
(fetchbower "jquery" "2.2.2" "1.9.1 - 2" "10sp5h98sqwk90y4k6hbdviwqzvzwqf47r3r51pakch5ii2y7js1")
|
||||||
|
]; }]]>
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Using the <command>bower2nix</command> command line arguments, the
|
||||||
|
output can be redirected to a file. A name like
|
||||||
|
<filename>bower-packages.nix</filename> would be fine.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The resulting derivation is a union of all the downloaded Bower
|
||||||
|
packages (and their dependencies). To use it, they still need to be
|
||||||
|
linked together by Bower, which is where
|
||||||
|
<varname>buildBowerComponents</varname> is useful.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="ssec-build-bower-components"><title><varname>buildBowerComponents</varname> function</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/bower-modules/generic/default.nix">
|
||||||
|
<filename>pkgs/development/bower-modules/generic/default.nix</filename></link>.
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
<example xml:id="ex-buildBowerComponents"><title>buildBowerComponents</title>
|
||||||
|
<programlisting language="nix">
|
||||||
|
bowerComponents = buildBowerComponents {
|
||||||
|
name = "my-web-app";
|
||||||
|
generated = ./bower-packages.nix; <co xml:id="ex-buildBowerComponents-1" />
|
||||||
|
src = myWebApp; <co xml:id="ex-buildBowerComponents-2" />
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <xref linkend="ex-buildBowerComponents" />, the following arguments
|
||||||
|
are of special significance to the function:
|
||||||
|
|
||||||
|
<calloutlist>
|
||||||
|
<callout arearefs="ex-buildBowerComponents-1">
|
||||||
|
<para>
|
||||||
|
<varname>generated</varname> specifies the file which was created by <command>bower2nix</command>.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
|
||||||
|
<callout arearefs="ex-buildBowerComponents-2">
|
||||||
|
<para>
|
||||||
|
<varname>src</varname> is your project's sources. It needs to
|
||||||
|
contain a <filename>bower.json</filename> file.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
</calloutlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<varname>buildBowerComponents</varname> will run Bower to link
|
||||||
|
together the output of <command>bower2nix</command>, resulting in a
|
||||||
|
<filename>bower_components</filename> directory which can be used.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Here is an example of a web frontend build process using
|
||||||
|
<command>gulp</command>. You might use <command>grunt</command>, or
|
||||||
|
anything else.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example xml:id="ex-bowerGulpFile"><title>Example build script (<filename>gulpfile.js</filename>)</title>
|
||||||
|
<programlisting language="javascript">
|
||||||
|
<![CDATA[var gulp = require('gulp');
|
||||||
|
|
||||||
|
gulp.task('default', [], function () {
|
||||||
|
gulp.start('build');
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('build', [], function () {
|
||||||
|
console.log("Just a dummy gulp build");
|
||||||
|
gulp
|
||||||
|
.src(["./bower_components/**/*"])
|
||||||
|
.pipe(gulp.dest("./gulpdist/"));
|
||||||
|
});]]>
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<example xml:id="ex-buildBowerComponentsDefaultNix">
|
||||||
|
<title>Full example — <filename>default.nix</filename></title>
|
||||||
|
<programlisting language="nix">
|
||||||
|
{ myWebApp ? { outPath = ./.; name = "myWebApp"; }
|
||||||
|
, pkgs ? import <nixpkgs> {}
|
||||||
|
}:
|
||||||
|
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "my-web-app-frontend";
|
||||||
|
src = myWebApp;
|
||||||
|
|
||||||
|
buildInputs = [ pkgs.nodePackages.gulp ];
|
||||||
|
|
||||||
|
bowerComponents = pkgs.buildBowerComponents { <co xml:id="ex-buildBowerComponentsDefault-1" />
|
||||||
|
name = "my-web-app";
|
||||||
|
generated = ./bower-packages.nix;
|
||||||
|
src = myWebApp;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
cp --reflink=auto --no-preserve=mode -R $bowerComponents/bower_components . <co xml:id="ex-buildBowerComponentsDefault-2" />
|
||||||
|
export HOME=$PWD <co xml:id="ex-buildBowerComponentsDefault-3" />
|
||||||
|
${pkgs.nodePackages.gulp}/bin/gulp build <co xml:id="ex-buildBowerComponentsDefault-4" />
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = "mv gulpdist $out";
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A few notes about <xref linkend="ex-buildBowerComponentsDefaultNix" />:
|
||||||
|
|
||||||
|
<calloutlist>
|
||||||
|
<callout arearefs="ex-buildBowerComponentsDefault-1">
|
||||||
|
<para>
|
||||||
|
The result of <varname>buildBowerComponents</varname> is an
|
||||||
|
input to the frontend build.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
|
||||||
|
<callout arearefs="ex-buildBowerComponentsDefault-2">
|
||||||
|
<para>
|
||||||
|
Whether to symlink or copy the
|
||||||
|
<filename>bower_components</filename> directory depends on the
|
||||||
|
build tool in use. In this case a copy is used to avoid
|
||||||
|
<command>gulp</command> silliness with permissions.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
|
||||||
|
<callout arearefs="ex-buildBowerComponentsDefault-3">
|
||||||
|
<para>
|
||||||
|
<command>gulp</command> requires <varname>HOME</varname> to
|
||||||
|
refer to a writeable directory.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
|
||||||
|
<callout arearefs="ex-buildBowerComponentsDefault-4">
|
||||||
|
<para>
|
||||||
|
The actual build command. Other tools could be used.
|
||||||
|
</para>
|
||||||
|
</callout>
|
||||||
|
</calloutlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="ssec-bower2nix-troubleshooting">
|
||||||
|
<title>Troubleshooting</title>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<literal>ENOCACHE</literal> errors from
|
||||||
|
<varname>buildBowerComponents</varname>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This means that Bower was looking for a package version which
|
||||||
|
doesn't exist in the generated
|
||||||
|
<filename>bower-packages.nix</filename>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If <filename>bower.json</filename> has been updated, then run
|
||||||
|
<command>bower2nix</command> again.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
It could also be a bug in <command>bower2nix</command> or
|
||||||
|
<command>fetchbower</command>. If possible, try reformulating
|
||||||
|
the version specification in <filename>bower.json</filename>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
|
@ -24,6 +24,7 @@ such as Perl or Haskell. These are described in this chapter.</para>
|
||||||
<xi:include href="r.xml" /> <!-- generated from ../../pkgs/development/r-modules/README.md -->
|
<xi:include href="r.xml" /> <!-- generated from ../../pkgs/development/r-modules/README.md -->
|
||||||
<xi:include href="qt.xml" />
|
<xi:include href="qt.xml" />
|
||||||
<xi:include href="texlive.xml" />
|
<xi:include href="texlive.xml" />
|
||||||
|
<xi:include href="bower.xml" />
|
||||||
|
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
714
doc/languages-frameworks/python.md
Normal file
714
doc/languages-frameworks/python.md
Normal file
|
@ -0,0 +1,714 @@
|
||||||
|
# Python
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
#### Installing Python and packages
|
||||||
|
|
||||||
|
It is important to make a distinction between Python packages that are
|
||||||
|
used as libraries, and applications that are written in Python.
|
||||||
|
|
||||||
|
Applications on Nix are installed typically into your user
|
||||||
|
profile imperatively using `nix-env -i`, and on NixOS declaratively by adding the
|
||||||
|
package name to `environment.systemPackages` in `/etc/nixos/configuration.nix`.
|
||||||
|
Dependencies such as libraries are automatically installed and should not be
|
||||||
|
installed explicitly.
|
||||||
|
|
||||||
|
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
|
||||||
|
cannot. If you do install libraries in your profile, then you will end up with
|
||||||
|
import errors.
|
||||||
|
|
||||||
|
#### Python environments using `nix-shell`
|
||||||
|
|
||||||
|
The recommended method for creating Python environments for development is with
|
||||||
|
`nix-shell`. Executing
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ nix-shell -p python35Packages.numpy python35Packages.toolz
|
||||||
|
```
|
||||||
|
|
||||||
|
opens a Nix shell which has available the requested packages and dependencies.
|
||||||
|
Now you can launch the Python interpreter (which is itself a dependency)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[nix-shell:~] python3
|
||||||
|
```
|
||||||
|
|
||||||
|
If the packages were not available yet in the Nix store, Nix would download or
|
||||||
|
build them automatically. A convenient option with `nix-shell` is the `--run`
|
||||||
|
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
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3"
|
||||||
|
```
|
||||||
|
|
||||||
|
This way you can use the `--run` option also to directly run a script
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ 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
|
||||||
|
add a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script
|
||||||
|
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
|
||||||
|
run the script in the `python3` shell.
|
||||||
|
|
||||||
|
```py
|
||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i python3 -p python3Packages.numpy
|
||||||
|
|
||||||
|
import numpy
|
||||||
|
|
||||||
|
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.buildEnv.override {
|
||||||
|
extraLibs = with pkgs.python35Packages; [ numpy 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 `pkgs.buildEnv`. Because we want to use it with a custom set of Python packages, we override it.
|
||||||
|
3. The `extraLibs` argument of the original `buildEnv` function can be used to specify which packages should be included. We want `numpy` and `toolz`. Again, we use the `with` statement to bring a set of attributes into the local scope.
|
||||||
|
4. And finally, for in interactive use we return the environment.
|
||||||
|
|
||||||
|
### Developing with Python
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
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
|
||||||
|
|
||||||
|
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/python-modules/generic/default.nix).
|
||||||
|
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
|
||||||
|
toolz = buildPythonPackage rec{
|
||||||
|
name = "toolz-${version}";
|
||||||
|
version = "0.7.4";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl{
|
||||||
|
url = "https://pypi.python.org/packages/source/t/toolz/toolz-${version}.tar.gz";
|
||||||
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/pytoolz/toolz/";
|
||||||
|
description = "List processing tools and functional utilities";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
What happens here? The function `buildPythonPackage` is called and as argument
|
||||||
|
it accepts a set. In this case the set is a recursive set ([`rec`](http://nixos.org/nix/manual/#sec-constructs)).
|
||||||
|
One of the arguments is the name of the package, which consists of a basename
|
||||||
|
(generally following the name on PyPi) and a version. Another argument, `src`
|
||||||
|
specifies the source, which in this case is fetched from an url. `fetchurl` not
|
||||||
|
only downloads the target file, but also validates its hash. Furthermore, we
|
||||||
|
specify some (optional) [meta information](http://nixos.org/nixpkgs/manual/#chap-meta).
|
||||||
|
|
||||||
|
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 `python27Packages`, `python34Packages`, `python35Packages` and `pypyPackages`.
|
||||||
|
|
||||||
|
The above example works when you're directly working on
|
||||||
|
`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
|
||||||
|
create a `shell.nix` file with the following contents
|
||||||
|
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
pkgs.python35Packages.buildPythonPackage rec {
|
||||||
|
name = "toolz-${version}";
|
||||||
|
version = "0.7.4";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl{
|
||||||
|
url = "https://pypi.python.org/packages/source/t/toolz/toolz-${version}.tar.gz";
|
||||||
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
|
};
|
||||||
|
|
||||||
|
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
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
( let
|
||||||
|
toolz = pkgs.python35Packages.buildPythonPackage rec {
|
||||||
|
name = "toolz-${version}";
|
||||||
|
version = "0.7.4";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl{
|
||||||
|
url = "https://pypi.python.org/packages/source/t/toolz/toolz-${version}.tar.gz";
|
||||||
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/pytoolz/toolz/";
|
||||||
|
description = "List processing tools and functional utilities";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in pkgs.python35.buildEnv.override rec {
|
||||||
|
|
||||||
|
extraLibs = [ pkgs.python35Packages.numpy toolz ];
|
||||||
|
}
|
||||||
|
).env
|
||||||
|
```
|
||||||
|
|
||||||
|
and again execute `nix-shell`, then we get a Python 3.5 environment with our
|
||||||
|
locally defined package as well as `numpy` which is build according to the
|
||||||
|
definition in Nixpkgs. What did we do here? Well, we took the Nix expression
|
||||||
|
that we used earlier to build a Python environment, and said that we wanted to
|
||||||
|
include our own version of `toolz`. To introduce our own package in the scope of
|
||||||
|
`buildEnv.override` we used a
|
||||||
|
[`let`](http://nixos.org/nix/manual/#sec-constructs) expression.
|
||||||
|
|
||||||
|
### Handling dependencies
|
||||||
|
|
||||||
|
Our example, `toolz`, doesn't have any dependencies on other Python
|
||||||
|
packages or system libraries. According to the manual, `buildPythonPackage`
|
||||||
|
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
|
||||||
|
`buildInput`, but if it is (also) a runtime dependency, then it should be added
|
||||||
|
to `propagatedBuildInputs`. Test dependencies are considered build-time dependencies.
|
||||||
|
|
||||||
|
The following example shows which arguments are given to `buildPythonPackage` in
|
||||||
|
order to build [`datashape`](https://github.com/blaze/datashape).
|
||||||
|
|
||||||
|
```nix
|
||||||
|
datashape = buildPythonPackage rec {
|
||||||
|
name = "datashape-${version}";
|
||||||
|
version = "0.4.7";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://pypi.python.org/packages/source/D/DataShape/${name}.tar.gz";
|
||||||
|
sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = with self; [ pytest ];
|
||||||
|
propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://github.com/ContinuumIO/datashape;
|
||||||
|
description = "A data description language";
|
||||||
|
license = licenses.bsd2;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
||||||
|
`dateutil`. Furthermore, we have one `buildInput`, i.e. `pytest`. `pytest` is a
|
||||||
|
test runner and is only used during the `checkPhase` and is therefore not added
|
||||||
|
to `propagatedBuildInputs`.
|
||||||
|
|
||||||
|
In the previous case we had only dependencies on other Python packages to consider.
|
||||||
|
Occasionally you have also system libraries to consider. E.g., `lxml` provides
|
||||||
|
Python bindings to `libxml2` and `libxslt`. These libraries are only required
|
||||||
|
when building the bindings and are therefore added as `buildInputs`.
|
||||||
|
|
||||||
|
```nix
|
||||||
|
lxml = buildPythonPackage rec {
|
||||||
|
name = "lxml-3.4.4";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "http://pypi.python.org/packages/source/l/lxml/${name}.tar.gz";
|
||||||
|
sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Pythonic binding for the libxml2 and libxslt libraries";
|
||||||
|
homepage = http://lxml.de;
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ sjourdois ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example `lxml` and Nix are able to work out exactly where the relevant
|
||||||
|
files of the dependencies are. This is not always the case.
|
||||||
|
|
||||||
|
The example below shows bindings to The Fastest Fourier Transform in the West, commonly known as
|
||||||
|
FFTW. On Nix we have separate packages of FFTW for the different types of floats
|
||||||
|
(`"single"`, `"double"`, `"long-double"`). The bindings need all three types,
|
||||||
|
and therefore we add all three as `buildInputs`. The bindings don't expect to
|
||||||
|
find each of them in a different folder, and therefore we have to set `LDFLAGS`
|
||||||
|
and `CFLAGS`.
|
||||||
|
|
||||||
|
```nix
|
||||||
|
pyfftw = buildPythonPackage rec {
|
||||||
|
name = "pyfftw-${version}";
|
||||||
|
version = "0.9.2";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://pypi.python.org/packages/source/p/pyFFTW/pyFFTW-${version}.tar.gz";
|
||||||
|
sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with self; [ numpy scipy ];
|
||||||
|
|
||||||
|
# Tests cannot import pyfftw. pyfftw works fine though.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
LDFLAGS="-L${pkgs.fftw}/lib -L${pkgs.fftwFloat}/lib -L${pkgs.fftwLongDouble}/lib"
|
||||||
|
CFLAGS="-I${pkgs.fftw}/include -I${pkgs.fftwFloat}/include -I${pkgs.fftwLongDouble}/include"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
|
||||||
|
homepage = http://hgomersall.github.com/pyFFTW/;
|
||||||
|
license = with licenses; [ bsd2 bsd3 ];
|
||||||
|
maintainer = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
|
||||||
|
|
||||||
|
|
||||||
|
#### Develop local package
|
||||||
|
|
||||||
|
As a Python developer you're likely aware of [development mode](http://pythonhosted.org/setuptools/setuptools.html#development-mode) (`python setup.py develop`);
|
||||||
|
instead of installing the package this command creates a special link to the project code.
|
||||||
|
That way, you can run updated code without having to reinstall after each and every change you make.
|
||||||
|
Development mode is also available on Nix as [explained](http://nixos.org/nixpkgs/manual/#ssec-python-development) in the Nixpkgs manual.
|
||||||
|
Let's see how you can use it.
|
||||||
|
|
||||||
|
In the previous Nix expression the source was fetched from an url. We can also refer to a local source instead using
|
||||||
|
|
||||||
|
```nix
|
||||||
|
src = ./path/to/source/tree;
|
||||||
|
```
|
||||||
|
|
||||||
|
If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
|
||||||
|
is a local source, and if the local source has a `setup.py`, then development
|
||||||
|
mode is activated.
|
||||||
|
|
||||||
|
In the following example we create a simple environment that
|
||||||
|
has a Python 3.5 version of our package in it, as well as its dependencies and
|
||||||
|
other packages we like to have in the environment, all specified with `propagatedBuildInputs`.
|
||||||
|
Indeed, we can just add any package we like to have in our environment to `propagatedBuildInputs`.
|
||||||
|
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs>;
|
||||||
|
with pkgs.python35Packages;
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
name = "mypackage";
|
||||||
|
src = ./path/to/package/source;
|
||||||
|
propagatedBuildInputs = [ pytest numpy pkgs.libsndfile ];
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
It is important to note that due to how development mode is implemented on Nix it is not possible to have multiple packages simultaneously in development mode.
|
||||||
|
|
||||||
|
|
||||||
|
### Organising your packages
|
||||||
|
|
||||||
|
So far we discussed how you can use Python on Nix, and how you can develop with
|
||||||
|
it. We've looked at how you write expressions to package Python packages, and we
|
||||||
|
looked at how you can create environments in which specified packages are
|
||||||
|
available.
|
||||||
|
|
||||||
|
At some point you'll likely have multiple packages which you would
|
||||||
|
like to be able to use in different projects. In order to minimise unnecessary
|
||||||
|
duplication we now look at how you can maintain yourself a repository with your
|
||||||
|
own packages. The important functions here are `import` and `callPackage`.
|
||||||
|
|
||||||
|
### Including a derivation using `callPackage`
|
||||||
|
|
||||||
|
Earlier we created a Python environment using `buildEnv`, and included the
|
||||||
|
`toolz` package via a `let` expression.
|
||||||
|
Let's split the package definition from the environment definition.
|
||||||
|
|
||||||
|
We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ pkgs, buildPythonPackage }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
name = "toolz-${version}";
|
||||||
|
version = "0.7.4";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl{
|
||||||
|
url = "https://pypi.python.org/packages/source/t/toolz/toolz-${version}.tar.gz";
|
||||||
|
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/pytoolz/toolz/";
|
||||||
|
description = "List processing tools and functional utilities";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ fridh ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
It takes two arguments, `pkgs` and `buildPythonPackage`.
|
||||||
|
We now call this function using `callPackage` in the definition of our environment
|
||||||
|
|
||||||
|
```nix
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
( let
|
||||||
|
toolz = pkgs.callPackage ~/path/to/toolz/release.nix { pkgs=pkgs; buildPythonPackage=pkgs.python35Packages.buildPythonPackage; };
|
||||||
|
in pkgs.python35.buildEnv.override rec {
|
||||||
|
extraLibs = [ pkgs.python35Packages.numpy toolz ];
|
||||||
|
}
|
||||||
|
).env
|
||||||
|
```
|
||||||
|
|
||||||
|
Important to remember is that the Python version for which the package is made
|
||||||
|
depends on the `python` derivation that is passed to `buildPythonPackage`. Nix
|
||||||
|
tries to automatically pass arguments when possible, which is why generally you
|
||||||
|
don't explicitly define which `python` derivation should be used. In the above
|
||||||
|
example we use `buildPythonPackage` that is part of the set `python35Packages`,
|
||||||
|
and in this case the `python35` interpreter is automatically used.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Reference
|
||||||
|
|
||||||
|
### Interpreters
|
||||||
|
|
||||||
|
Versions 2.6, 2.7, 3.3, 3.4 and 3.5 of the CPython interpreter are available on
|
||||||
|
Nix and are available as `python26`, `python27`, `python33`, `python34` and
|
||||||
|
`python35`. The PyPy interpreter is also available as `pypy`. Currently, the
|
||||||
|
aliases `python` and `python3` correspond to respectively `python27` and
|
||||||
|
`python35`. The Nix expressions for the interpreters can be found in
|
||||||
|
`pkgs/development/interpreters/python`.
|
||||||
|
|
||||||
|
|
||||||
|
#### Missing modules standard library
|
||||||
|
|
||||||
|
The interpreters `python26` and `python27` do not include modules that
|
||||||
|
require external dependencies. This is done in order to reduce the closure size.
|
||||||
|
The following modules need to be added as `buildInput` explicitly:
|
||||||
|
|
||||||
|
* `python.modules.bsddb`
|
||||||
|
* `python.modules.curses`
|
||||||
|
* `python.modules.curses_panel`
|
||||||
|
* `python.modules.crypt`
|
||||||
|
* `python.modules.gdbm`
|
||||||
|
* `python.modules.sqlite3`
|
||||||
|
* `python.modules.tkinter`
|
||||||
|
* `python.modules.readline`
|
||||||
|
|
||||||
|
For convenience `python27Full` and `python26Full` are provided with all
|
||||||
|
modules included.
|
||||||
|
|
||||||
|
All packages depending on any Python interpreter get appended
|
||||||
|
`out/{python.sitePackages}` to `$PYTHONPATH` if such directory
|
||||||
|
exists.
|
||||||
|
|
||||||
|
#### Attributes on interpreters packages
|
||||||
|
|
||||||
|
Each interpreter has the following attributes:
|
||||||
|
|
||||||
|
- `libPrefix`. Name of the folder in `${python}/lib/` for corresponding interpreter.
|
||||||
|
- `interpreter`. Alias for `${python}/bin/${executable}`.
|
||||||
|
- `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation.
|
||||||
|
- `sitePackages`. Alias for `lib/${libPrefix}/site-packages`.
|
||||||
|
- `executable`. Name of the interpreter executable, ie `python3.4`.
|
||||||
|
|
||||||
|
### Building packages and applications
|
||||||
|
|
||||||
|
Python packages (libraries) and applications that use `setuptools` or
|
||||||
|
`distutils` are typically built with respectively the `buildPythonPackage` and
|
||||||
|
`buildPythonApplication` functions.
|
||||||
|
|
||||||
|
All Python packages reside in `pkgs/top-level/python-packages.nix` and all
|
||||||
|
applications elsewhere. Some packages are also defined in
|
||||||
|
`pkgs/development/python-modules`. It is important that these packages are
|
||||||
|
called in `pkgs/top-level/python-packages.nix` and not elsewhere, to guarantee
|
||||||
|
the right version of the package is built.
|
||||||
|
|
||||||
|
Based on the packages defined in `pkgs/top-level/python-packages.nix` an
|
||||||
|
attribute set is created for each available Python interpreter. The available
|
||||||
|
sets are
|
||||||
|
|
||||||
|
* `pkgs.python26Packages`
|
||||||
|
* `pkgs.python27Packages`
|
||||||
|
* `pkgs.python33Packages`
|
||||||
|
* `pkgs.python34Packages`
|
||||||
|
* `pkgs.python35Packages`
|
||||||
|
* `pkgs.pypyPackages`
|
||||||
|
|
||||||
|
and the aliases
|
||||||
|
|
||||||
|
* `pkgs.pythonPackages` pointing to `pkgs.python27Packages`
|
||||||
|
* `pkgs.python3Packages` pointing to `pkgs.python35Packages`
|
||||||
|
|
||||||
|
#### `buildPythonPackage` function
|
||||||
|
|
||||||
|
The `buildPythonPackage` function is implemented in
|
||||||
|
`pkgs/development/python-modules/generic/default.nix`
|
||||||
|
|
||||||
|
and can be used as:
|
||||||
|
|
||||||
|
twisted = buildPythonPackage {
|
||||||
|
name = "twisted-8.1.0";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
||||||
|
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ self.ZopeInterface ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://twistedmatrix.com/;
|
||||||
|
description = "Twisted, an event-driven networking engine written in Python";
|
||||||
|
license = stdenv.lib.licenses.mit; };
|
||||||
|
};
|
||||||
|
|
||||||
|
The `buildPythonPackage` mainly does four things:
|
||||||
|
|
||||||
|
* In the `buildPhase`, it calls `${python.interpreter} setup.py bdist_wheel` to build a wheel binary zipfile.
|
||||||
|
* In the `installPhase`, it installs the wheel file using `pip install *.whl`.
|
||||||
|
* In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to wrap all programs in the `$out/bin/*` directory to include `$PYTHONPATH` and `$PATH` environment variables.
|
||||||
|
* In the `installCheck` phase, `${python.interpreter} setup.py test` is ran.
|
||||||
|
|
||||||
|
As in Perl, dependencies on other Python packages can be specified in the
|
||||||
|
`buildInputs` and `propagatedBuildInputs` attributes. If something is
|
||||||
|
exclusively a build-time dependency, use `buildInputs`; if it’s (also) a runtime
|
||||||
|
dependency, use `propagatedBuildInputs`.
|
||||||
|
|
||||||
|
By default tests are run because `doCheck = true`. Test dependencies, like
|
||||||
|
e.g. the test runner, should be added to `buildInputs`.
|
||||||
|
|
||||||
|
By default `meta.platforms` is set to the same value
|
||||||
|
as the interpreter unless overriden otherwise.
|
||||||
|
|
||||||
|
##### `buildPythonPackage` parameters
|
||||||
|
|
||||||
|
All parameters from `mkDerivation` function are still supported.
|
||||||
|
|
||||||
|
* `namePrefix`: Prepended text to `${name}` parameter. Defaults to `"python3.3-"` for Python 3.3, etc. Set it to `""` if you're packaging an application or a command line tool.
|
||||||
|
* `disabled`: If `true`, package is not build for particular python interpreter version. Grep around `pkgs/top-level/python-packages.nix` for examples.
|
||||||
|
* `setupPyBuildFlags`: List of flags passed to `setup.py build_ext` command.
|
||||||
|
* `pythonPath`: List of packages to be added into `$PYTHONPATH`. Packages in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`).
|
||||||
|
* `preShellHook`: Hook to execute commands before `shellHook`.
|
||||||
|
* `postShellHook`: Hook to execute commands after `shellHook`.
|
||||||
|
* `makeWrapperArgs`: A list of strings. Arguments to be passed to `makeWrapper`, which wraps generated binaries. By default, the arguments to `makeWrapper` set `PATH` and `PYTHONPATH` environment variables before calling the binary. Additional arguments here can allow a developer to set environment variables which will be available when the binary is run. For example, `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`.
|
||||||
|
* `installFlags`: A list of strings. Arguments to be passed to `pip install`. To pass options to `python setup.py install`, use `--install-option`. E.g., `installFlags=["--install-option='--cpp_implementation'"].
|
||||||
|
|
||||||
|
#### `buildPythonApplication` function
|
||||||
|
|
||||||
|
The `buildPythonApplication` function is practically the same as `buildPythonPackage`.
|
||||||
|
The difference is that `buildPythonPackage` by default prefixes the names of the packages with the version of the interpreter.
|
||||||
|
Because with an application we're not interested in multiple version the prefix is dropped.
|
||||||
|
|
||||||
|
#### python.buildEnv function
|
||||||
|
|
||||||
|
Python environments can be created using the low-level `pkgs.buildEnv` function.
|
||||||
|
This example shows how to create an environment that has the Pyramid Web Framework.
|
||||||
|
Saving the following as `default.nix`
|
||||||
|
|
||||||
|
with import {};
|
||||||
|
|
||||||
|
python.buildEnv.override {
|
||||||
|
extraLibs = [ pkgs.pythonPackages.pyramid ];
|
||||||
|
ignoreCollisions = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
and running `nix-build` will create
|
||||||
|
|
||||||
|
/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env
|
||||||
|
|
||||||
|
with wrapped binaries in `bin/`.
|
||||||
|
|
||||||
|
You can also use the `env` attribute to create local environments with needed
|
||||||
|
packages installed. This is somewhat comparable to `virtualenv`. For example,
|
||||||
|
running `nix-shell` with the following `shell.nix`
|
||||||
|
|
||||||
|
with import {};
|
||||||
|
|
||||||
|
(python3.buildEnv.override {
|
||||||
|
extraLibs = with python3Packages; [ numpy requests ];
|
||||||
|
}).env
|
||||||
|
|
||||||
|
will drop you into a shell where Python will have the
|
||||||
|
specified packages in its path.
|
||||||
|
|
||||||
|
|
||||||
|
##### `python.buildEnv` arguments
|
||||||
|
|
||||||
|
* `extraLibs`: List of packages installed inside the environment.
|
||||||
|
* `postBuild`: Shell command executed after the build of environment.
|
||||||
|
* `ignoreCollisions`: Ignore file collisions inside the environment (default is `false`).
|
||||||
|
|
||||||
|
### Development mode
|
||||||
|
|
||||||
|
Development or editable mode is supported. To develop Python packages
|
||||||
|
`buildPythonPackage` has additional logic inside `shellPhase` to run `pip
|
||||||
|
install -e . --prefix $TMPDIR/`for the package.
|
||||||
|
|
||||||
|
Warning: `shellPhase` is executed only if `setup.py` exists.
|
||||||
|
|
||||||
|
Given a `default.nix`:
|
||||||
|
|
||||||
|
with import {};
|
||||||
|
|
||||||
|
buildPythonPackage { name = "myproject";
|
||||||
|
|
||||||
|
buildInputs = with pkgs.pythonPackages; [ pyramid ];
|
||||||
|
|
||||||
|
src = ./.; }
|
||||||
|
|
||||||
|
Running `nix-shell` with no arguments should give you
|
||||||
|
the environment in which the package would be build with
|
||||||
|
`nix-build`.
|
||||||
|
|
||||||
|
Shortcut to setup environments with C headers/libraries and python packages:
|
||||||
|
|
||||||
|
$ nix-shell -p pythonPackages.pyramid zlib libjpeg git
|
||||||
|
|
||||||
|
Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked.
|
||||||
|
|
||||||
|
### Tools
|
||||||
|
|
||||||
|
Packages inside nixpkgs are written by hand. However many tools exist in
|
||||||
|
community to help save time. No tool is preferred at the moment.
|
||||||
|
|
||||||
|
- [python2nix](https://github.com/proger/python2nix) by Vladimir Kirillov
|
||||||
|
- [pypi2nix](https://github.com/garbas/pypi2nix) by Rok Garbas
|
||||||
|
- [pypi2nix](https://github.com/offlinehacker/pypi2nix) by Jaka Hudoklin
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
|
### How to solve circular dependencies?
|
||||||
|
|
||||||
|
Consider the packages `A` and `B` that depend on each other. When packaging `B`,
|
||||||
|
a solution is to override package `A` not to depend on `B` as an input. The same
|
||||||
|
should also be done when packaging `A`.
|
||||||
|
|
||||||
|
### How to override a Python package?
|
||||||
|
|
||||||
|
Recursively updating a package can be done with `pkgs.overridePackages` as explained in the Nixpkgs manual.
|
||||||
|
Python attribute sets are created for each interpreter version. We will therefore override the attribute set for the interpreter version we're interested.
|
||||||
|
In the following example we change the name of the package `pandas` to `foo`.
|
||||||
|
```
|
||||||
|
newpkgs = pkgs.overridePackages(self: super: rec {
|
||||||
|
python35Packages = super.python35Packages.override {
|
||||||
|
self = python35Packages // { pandas = python35Packages.pandas.override{name="foo";};};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
```
|
||||||
|
This can be tested with
|
||||||
|
```
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
(let
|
||||||
|
|
||||||
|
newpkgs = pkgs.overridePackages(self: super: rec {
|
||||||
|
python35Packages = super.python35Packages.override {
|
||||||
|
self = python35Packages // { pandas = python35Packages.pandas.override{name="foo";};};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in newpkgs.python35.buildEnv.override{
|
||||||
|
extraLibs = [newpkgs.python35Packages.blaze ];
|
||||||
|
}).env
|
||||||
|
```
|
||||||
|
A typical use case is to switch to another version of a certain package. For example, in the Nixpkgs repository we have multiple versions of `django` and `scipy`.
|
||||||
|
In the following example we use a different version of `scipy`. All packages in `newpkgs` will now use the updated `scipy` version.
|
||||||
|
```
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
(let
|
||||||
|
|
||||||
|
newpkgs = pkgs.overridePackages(self: super: rec {
|
||||||
|
python35Packages = super.python35Packages.override {
|
||||||
|
self = python35Packages // { scipy = python35Packages.scipy_0_16;};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in pkgs.python35.buildEnv.override{
|
||||||
|
extraLibs = [newpkgs.python35Packages.blaze ];
|
||||||
|
}).env
|
||||||
|
```
|
||||||
|
The requested package `blaze` depends upon `pandas` which itself depends on `scipy`.
|
||||||
|
|
||||||
|
|
||||||
|
### `install_data` / `data_files` problems
|
||||||
|
|
||||||
|
If you get the following error:
|
||||||
|
|
||||||
|
could not create '/nix/store/6l1bvljpy8gazlsw2aw9skwwp4pmvyxw-python-2.7.8/etc':
|
||||||
|
Permission denied
|
||||||
|
|
||||||
|
This is a [known bug](https://bitbucket.org/pypa/setuptools/issue/130/install_data-doesnt-respect-prefix) in setuptools.
|
||||||
|
Setuptools `install_data` does not respect `--prefix`. An example of such package using the feature is `pkgs/tools/X11/xpra/default.nix`.
|
||||||
|
As workaround install it as an extra `preInstall` step:
|
||||||
|
|
||||||
|
${python.interpreter} setup.py install_data --install-dir=$out --root=$out
|
||||||
|
sed -i '/ = data\_files/d' setup.py
|
||||||
|
|
||||||
|
|
||||||
|
### Rationale of non-existent global site-packages
|
||||||
|
|
||||||
|
On most operating systems a global `site-packages` is maintained. This however
|
||||||
|
becomes problematic if you want to run multiple Python versions or have multiple
|
||||||
|
versions of certain libraries for your projects. Generally, you would solve such
|
||||||
|
issues by creating virtual environments using `virtualenv`.
|
||||||
|
|
||||||
|
On Nix each package has an isolated dependency tree which, in the case of
|
||||||
|
Python, guarantees the right versions of the interpreter and libraries or
|
||||||
|
packages are available. There is therefore no need to maintain a global `site-packages`.
|
||||||
|
|
||||||
|
If you want to create a Python environment for development, then the recommended
|
||||||
|
method is to use `nix-shell`, either with or without the `python.buildEnv`
|
||||||
|
function.
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
### Contributing guidelines
|
||||||
|
|
||||||
|
Following rules are desired to be respected:
|
||||||
|
|
||||||
|
* Make sure package builds for all python interpreters. Use `disabled` argument to `buildPythonPackage` to set unsupported interpreters.
|
||||||
|
* If tests need to be disabled for a package, make sure you leave a comment about reasoning.
|
||||||
|
* Packages in `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid merge conflicts.
|
||||||
|
* Python libraries are supposed to be in `python-packages.nix` and packaged with `buildPythonPackage`. Python applications live outside of `python-packages.nix` and are packaged with `buildPythonApplication`.
|
|
@ -1,447 +0,0 @@
|
||||||
<section xmlns="http://docbook.org/ns/docbook"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xml:id="sec-python">
|
|
||||||
|
|
||||||
<title>Python</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Currently supported interpreters are <varname>python26</varname>, <varname>python27</varname>,
|
|
||||||
<varname>python33</varname>, <varname>python34</varname>, <varname>python35</varname>
|
|
||||||
and <varname>pypy</varname>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<varname>python</varname> is an alias to <varname>python27</varname> and <varname>python3</varname> is an alias to <varname>python34</varname>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<varname>python26</varname> and <varname>python27</varname> do not include modules that require
|
|
||||||
external dependencies (to reduce dependency bloat). Following modules need to be added as
|
|
||||||
<varname>buildInput</varname> explicitly:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><varname>python.modules.bsddb</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.curses</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.curses_panel</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.crypt</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.gdbm</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.sqlite3</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.tkinter</varname></para></listitem>
|
|
||||||
<listitem><para><varname>python.modules.readline</varname></para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<para>For convenience <varname>python27Full</varname> and <varname>python26Full</varname>
|
|
||||||
are provided with all modules included.</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Python packages that
|
|
||||||
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link> or <literal>distutils</literal>,
|
|
||||||
can be built using the <varname>buildPythonPackage</varname> function as documented below.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
All packages depending on any Python interpreter get appended <varname>$out/${python.sitePackages}</varname>
|
|
||||||
to <literal>$PYTHONPATH</literal> if such directory exists.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<title>
|
|
||||||
Useful attributes on interpreters packages:
|
|
||||||
</title>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>libPrefix</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Name of the folder in <literal>${python}/lib/</literal> for corresponding interpreter.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>interpreter</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Alias for <literal>${python}/bin/${executable}.</literal>
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>buildEnv</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Function to build python interpreter environments with extra packages bundled together.
|
|
||||||
See <xref linkend="ssec-python-build-env" /> for usage and documentation.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>sitePackages</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Alias for <literal>lib/${libPrefix}/site-packages</literal>.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>executable</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Name of the interpreter executable, ie <literal>python3.4</literal>.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
<section xml:id="ssec-build-python-package"><title><varname>buildPythonPackage</varname> function</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/default.nix">
|
|
||||||
<filename>pkgs/development/python-modules/generic/default.nix</filename></link>.
|
|
||||||
Example usage:
|
|
||||||
|
|
||||||
<programlisting language="nix">
|
|
||||||
twisted = buildPythonPackage {
|
|
||||||
name = "twisted-8.1.0";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
|
||||||
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
|
||||||
};
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ self.ZopeInterface ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://twistedmatrix.com/;
|
|
||||||
description = "Twisted, an event-driven networking engine written in Python";
|
|
||||||
license = stdenv.lib.licenses.mit;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
</programlisting>
|
|
||||||
|
|
||||||
Most of Python packages that use <varname>buildPythonPackage</varname> are defined
|
|
||||||
in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
|
|
||||||
and generated for each python interpreter separately into attribute sets <varname>python26Packages</varname>,
|
|
||||||
<varname>python27Packages</varname>, <varname>python35Packages</varname>, <varname>python33Packages</varname>,
|
|
||||||
<varname>python34Packages</varname> and <varname>pypyPackages</varname>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<function>buildPythonPackage</function> mainly does four things:
|
|
||||||
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>
|
|
||||||
In the <varname>buildPhase</varname>, it calls
|
|
||||||
<literal>${python.interpreter} setup.py bdist_wheel</literal> to build a wheel binary zipfile.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
In the <varname>installPhase</varname>, it installs the wheel file using
|
|
||||||
<literal>pip install *.whl</literal>.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
In the <varname>postFixup</varname> phase, <literal>wrapPythonPrograms</literal>
|
|
||||||
bash function is called to wrap all programs in <filename>$out/bin/*</filename>
|
|
||||||
directory to include <literal>$PYTHONPATH</literal> and <literal>$PATH</literal>
|
|
||||||
environment variables.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
In the <varname>installCheck</varname> phase, <literal>${python.interpreter} setup.py test</literal>
|
|
||||||
is ran.
|
|
||||||
</para></listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>By default <varname>doCheck = true</varname> is set</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
As in Perl, dependencies on other Python packages can be specified in the
|
|
||||||
<varname>buildInputs</varname> and
|
|
||||||
<varname>propagatedBuildInputs</varname> attributes. If something is
|
|
||||||
exclusively a build-time dependency, use
|
|
||||||
<varname>buildInputs</varname>; if it’s (also) a runtime dependency,
|
|
||||||
use <varname>propagatedBuildInputs</varname>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
By default <varname>meta.platforms</varname> is set to the same value
|
|
||||||
as the interpreter unless overriden otherwise.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<title>
|
|
||||||
<varname>buildPythonPackage</varname> parameters
|
|
||||||
(all parameters from <varname>mkDerivation</varname> function are still supported)
|
|
||||||
</title>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>namePrefix</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Prepended text to <varname>${name}</varname> parameter.
|
|
||||||
Defaults to <literal>"python3.3-"</literal> for Python 3.3, etc. Set it to
|
|
||||||
<literal>""</literal>
|
|
||||||
if you're packaging an application or a command line tool.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>disabled</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
If <varname>true</varname>, package is not build for
|
|
||||||
particular python interpreter version. Grep around
|
|
||||||
<filename>pkgs/top-level/python-packages.nix</filename>
|
|
||||||
for examples.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>setupPyBuildFlags</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
List of flags passed to <command>setup.py build_ext</command> command.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>pythonPath</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
List of packages to be added into <literal>$PYTHONPATH</literal>.
|
|
||||||
Packages in <varname>pythonPath</varname> are not propagated
|
|
||||||
(contrary to <varname>propagatedBuildInputs</varname>).
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>preShellHook</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Hook to execute commands before <varname>shellHook</varname>.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>postShellHook</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Hook to execute commands after <varname>shellHook</varname>.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>makeWrapperArgs</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
A list of strings. Arguments to be passed to
|
|
||||||
<varname>makeWrapper</varname>, which wraps generated binaries. By
|
|
||||||
default, the arguments to <varname>makeWrapper</varname> set
|
|
||||||
<varname>PATH</varname> and <varname>PYTHONPATH</varname> environment
|
|
||||||
variables before calling the binary. Additional arguments here can
|
|
||||||
allow a developer to set environment variables which will be
|
|
||||||
available when the binary is run. For example,
|
|
||||||
<varname>makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]</varname>.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section xml:id="ssec-python-build-env"><title><function>python.buildEnv</function> function</title>
|
|
||||||
<para>
|
|
||||||
Create Python environments using low-level <function>pkgs.buildEnv</function> function. Example <filename>default.nix</filename>:
|
|
||||||
|
|
||||||
<programlisting language="nix">
|
|
||||||
<![CDATA[with import <nixpkgs> {};
|
|
||||||
|
|
||||||
python.buildEnv.override {
|
|
||||||
extraLibs = [ pkgs.pythonPackages.pyramid ];
|
|
||||||
ignoreCollisions = true;
|
|
||||||
}]]>
|
|
||||||
</programlisting>
|
|
||||||
|
|
||||||
Running <command>nix-build</command> will create
|
|
||||||
<filename>/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env</filename>
|
|
||||||
with wrapped binaries in <filename>bin/</filename>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You can also use <varname>env</varname> attribute to create local
|
|
||||||
environments with needed packages installed (somewhat comparable to
|
|
||||||
<literal>virtualenv</literal>). For example, with the following
|
|
||||||
<filename>shell.nix</filename>:
|
|
||||||
|
|
||||||
<programlisting language="nix">
|
|
||||||
<![CDATA[with import <nixpkgs> {};
|
|
||||||
|
|
||||||
(python3.buildEnv.override {
|
|
||||||
extraLibs = with python3Packages;
|
|
||||||
[ numpy
|
|
||||||
requests
|
|
||||||
];
|
|
||||||
}).env]]>
|
|
||||||
</programlisting>
|
|
||||||
|
|
||||||
Running <command>nix-shell</command> will drop you into a shell where
|
|
||||||
<command>python</command> will have specified packages in its path.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<title>
|
|
||||||
<function>python.buildEnv</function> arguments
|
|
||||||
</title>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>extraLibs</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
List of packages installed inside the environment.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>postBuild</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Shell command executed after the build of environment.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>ignoreCollisions</varname></term>
|
|
||||||
<listitem><para>
|
|
||||||
Ignore file collisions inside the environment (default is <varname>false</varname>).
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section xml:id="ssec-python-tools"><title>Tools</title>
|
|
||||||
|
|
||||||
<para>Packages inside nixpkgs are written by hand. However many tools
|
|
||||||
exist in community to help save time. No tool is preferred at the moment.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
<link xlink:href="https://github.com/proger/python2nix">python2nix</link>
|
|
||||||
by Vladimir Kirillov
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
<link xlink:href="https://github.com/garbas/pypi2nix">pypi2nix</link>
|
|
||||||
by Rok Garbas
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
<link xlink:href="https://github.com/offlinehacker/pypi2nix">pypi2nix</link>
|
|
||||||
by Jaka Hudoklin
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section xml:id="ssec-python-development"><title>Development</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To develop Python packages <function>buildPythonPackage</function> has
|
|
||||||
additional logic inside <varname>shellPhase</varname> to run
|
|
||||||
<command>pip install -e . --prefix $TMPDIR/</command> for the package.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<warning><para><varname>shellPhase</varname> is executed only if <filename>setup.py</filename>
|
|
||||||
exists.</para></warning>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Given a <filename>default.nix</filename>:
|
|
||||||
|
|
||||||
<programlisting language="nix">
|
|
||||||
<![CDATA[with import <nixpkgs> {};
|
|
||||||
|
|
||||||
buildPythonPackage {
|
|
||||||
name = "myproject";
|
|
||||||
|
|
||||||
buildInputs = with pkgs.pythonPackages; [ pyramid ];
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
}]]>
|
|
||||||
</programlisting>
|
|
||||||
|
|
||||||
Running <command>nix-shell</command> with no arguments should give you
|
|
||||||
the environment in which the package would be build with
|
|
||||||
<command>nix-build</command>.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Shortcut to setup environments with C headers/libraries and python packages:
|
|
||||||
|
|
||||||
<programlisting language="bash">$ nix-shell -p pythonPackages.pyramid zlib libjpeg git</programlisting>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<note><para>
|
|
||||||
There is a boolean value <varname>lib.inNixShell</varname> set to
|
|
||||||
<varname>true</varname> if nix-shell is invoked.
|
|
||||||
</para></note>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section xml:id="ssec-python-faq"><title>FAQ</title>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>How to solve circular dependencies?</term>
|
|
||||||
<listitem><para>
|
|
||||||
If you have packages <varname>A</varname> and <varname>B</varname> that
|
|
||||||
depend on each other, when packaging <varname>B</varname> override package
|
|
||||||
<varname>A</varname> not to depend on <varname>B</varname> as input
|
|
||||||
(and also the other way around).
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><varname>install_data / data_files</varname> problems resulting into <literal>error: could not create '/nix/store/6l1bvljpy8gazlsw2aw9skwwp4pmvyxw-python-2.7.8/etc': Permission denied</literal></term>
|
|
||||||
<listitem><para>
|
|
||||||
<link xlink:href="https://bitbucket.org/pypa/setuptools/issue/130/install_data-doesnt-respect-prefix">
|
|
||||||
Known bug in setuptools <varname>install_data</varname> does not respect --prefix</link>. Example of
|
|
||||||
such package using the feature is <filename>pkgs/tools/X11/xpra/default.nix</filename>. As workaround
|
|
||||||
install it as an extra <varname>preInstall</varname> step:
|
|
||||||
|
|
||||||
<programlisting>${python.interpreter} setup.py install_data --install-dir=$out --root=$out
|
|
||||||
sed -i '/ = data_files/d' setup.py</programlisting>
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Rationale of non-existent global site-packages</term>
|
|
||||||
<listitem><para>
|
|
||||||
There is no need to have global site-packages in Nix. Each package has isolated
|
|
||||||
dependency tree and installing any python package will only populate <varname>$PATH</varname>
|
|
||||||
inside user environment. See <xref linkend="ssec-python-build-env" /> to create self-contained
|
|
||||||
interpreter with a set of packages.
|
|
||||||
</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
<section xml:id="ssec-python-contrib"><title>Contributing guidelines</title>
|
|
||||||
<para>
|
|
||||||
Following rules are desired to be respected:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
Make sure package builds for all python interpreters. Use <varname>disabled</varname> argument to
|
|
||||||
<function>buildPythonPackage</function> to set unsupported interpreters.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
If tests need to be disabled for a package, make sure you leave a comment about reasoning.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para>
|
|
||||||
Packages in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix"><filename>pkgs/top-level/python-packages.nix</filename></link>
|
|
||||||
are sorted quasi-alphabetically to avoid merge conflicts.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
|
@ -274,6 +274,20 @@ services.syncthing = {
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Systems with some broadcom cards used to result into a generated config
|
||||||
|
that is no longer accepted. If you get errors like
|
||||||
|
<screen>error: path ‘/nix/store/*-broadcom-sta-*’ does not exist and cannot be created</screen>
|
||||||
|
you should either re-run <command>nixos-generate-config</command> or manually replace
|
||||||
|
<literal>"${config.boot.kernelPackages.broadcom_sta}"</literal>
|
||||||
|
by
|
||||||
|
<literal>config.boot.kernelPackages.broadcom_sta</literal>
|
||||||
|
in your <filename>/etc/nixos/hardware-configuration.nix</filename>.
|
||||||
|
More discussion is on <link xlink:href="https://github.com/NixOS/nixpkgs/pull/12595">
|
||||||
|
the github issue</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ system, minimal ? false }:
|
{ system, minimal ? false, config ? {} }:
|
||||||
|
|
||||||
let pkgs = import ../.. { config = {}; inherit system; }; in
|
let pkgs = import ../.. { inherit system config; }; in
|
||||||
|
|
||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
with import ../lib/qemu-flags.nix;
|
with import ../lib/qemu-flags.nix;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ system, minimal ? false }:
|
{ system, minimal ? false, config ? {} }:
|
||||||
|
|
||||||
with import ./build-vms.nix { inherit system minimal; };
|
with import ./build-vms.nix { inherit system minimal config; };
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
./programs/shell.nix
|
./programs/shell.nix
|
||||||
./programs/ssh.nix
|
./programs/ssh.nix
|
||||||
./programs/ssmtp.nix
|
./programs/ssmtp.nix
|
||||||
|
./programs/tmux.nix
|
||||||
./programs/venus.nix
|
./programs/venus.nix
|
||||||
./programs/wvdial.nix
|
./programs/wvdial.nix
|
||||||
./programs/xfs_quota.nix
|
./programs/xfs_quota.nix
|
||||||
|
|
35
nixos/modules/programs/tmux.nix
Normal file
35
nixos/modules/programs/tmux.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption mkEnableOption mkIf mkMerge types;
|
||||||
|
|
||||||
|
cfg = config.programs.tmux;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
programs.tmux = {
|
||||||
|
|
||||||
|
enable = mkEnableOption "<command>tmux</command> - a <command>screen</command> replacement.";
|
||||||
|
|
||||||
|
tmuxconf = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
The contents of /etc/tmux.conf
|
||||||
|
'';
|
||||||
|
type = types.lines;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment = {
|
||||||
|
systemPackages = [ pkgs.tmux ];
|
||||||
|
etc."tmux.conf".text = cfg.tmuxconf;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -125,10 +125,12 @@ in {
|
||||||
# FIXME: start a separate wpa_supplicant instance per interface.
|
# FIXME: start a separate wpa_supplicant instance per interface.
|
||||||
systemd.services.wpa_supplicant = let
|
systemd.services.wpa_supplicant = let
|
||||||
ifaces = cfg.interfaces;
|
ifaces = cfg.interfaces;
|
||||||
|
deviceUnit = interface: [ "sys-subsystem-net-devices-${interface}.device" ];
|
||||||
in {
|
in {
|
||||||
description = "WPA Supplicant";
|
description = "WPA Supplicant";
|
||||||
|
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
|
requires = lib.concatMap deviceUnit ifaces;
|
||||||
wantedBy = [ "network.target" ];
|
wantedBy = [ "network.target" ];
|
||||||
|
|
||||||
path = [ pkgs.wpa_supplicant ];
|
path = [ pkgs.wpa_supplicant ];
|
||||||
|
|
|
@ -13,9 +13,9 @@ let
|
||||||
|
|
||||||
# Map video driver names to driver packages. FIXME: move into card-specific modules.
|
# Map video driver names to driver packages. FIXME: move into card-specific modules.
|
||||||
knownVideoDrivers = {
|
knownVideoDrivers = {
|
||||||
virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; };
|
virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; };
|
||||||
ati = { modules = [ pkgs.xorg.xf86videoati pkgs.xorg.glamoregl ]; };
|
ati = { modules = with pkgs.xorg; [ xf86videoati glamoregl ]; };
|
||||||
intel-testing = { modules = with pkgs.xorg; [ xf86videointel-testing glamoregl ]; driverName = "intel"; };
|
intel = { modules = with pkgs.xorg; [ xf86videointel glamoregl ]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
fontsForXServer =
|
fontsForXServer =
|
||||||
|
|
|
@ -366,8 +366,8 @@ in {
|
||||||
"mkdir /mnt/boot",
|
"mkdir /mnt/boot",
|
||||||
"mount LABEL=boot /mnt/boot",
|
"mount LABEL=boot /mnt/boot",
|
||||||
"udevadm settle",
|
"udevadm settle",
|
||||||
"mdadm -W /dev/md0", # wait for sync to finish; booting off an unsynced device tends to fail
|
"mdadm --verbose -W /dev/md0", # wait for sync to finish; booting off an unsynced device tends to fail
|
||||||
"mdadm -W /dev/md1",
|
"mdadm --verbose -W /dev/md1",
|
||||||
);
|
);
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "0jb6g3kbfyr5yf8mvblnciva2bmc01ijpr51m21r27rqmgi8gj5k";
|
sha256 = "0jb6g3kbfyr5yf8mvblnciva2bmc01ijpr51m21r27rqmgi8gj5k";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./buf_rect.patch ];
|
patches = [ ./buf_rect.patch ./fix_build_with_gcc-5.patch];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ pkgconfig SDL SDL_image libjack2
|
[ pkgconfig SDL SDL_image libjack2
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
Description: Fix build with gcc-5
|
||||||
|
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=778003
|
||||||
|
Author: Jaromír Mikeš <mira.mikes@seznam.cz>
|
||||||
|
Forwarded: No
|
||||||
|
|
||||||
|
Index: meterbridge/src/linedraw.h
|
||||||
|
===================================================================
|
||||||
|
--- meterbridge.orig/src/linedraw.h
|
||||||
|
+++ meterbridge/src/linedraw.h
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#ifndef LINEDRAW_H
|
||||||
|
#define LINEDRAW_H
|
||||||
|
|
||||||
|
-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
|
||||||
|
+void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
|
||||||
|
|
||||||
|
void draw_ptr(SDL_Surface *surface, int x1, int y1, int x2, int y2, Uint32 nedle_col, Uint32 aa_col);
|
||||||
|
|
||||||
|
Index: meterbridge/src/linedraw.c
|
||||||
|
===================================================================
|
||||||
|
--- meterbridge.orig/src/linedraw.c
|
||||||
|
+++ meterbridge/src/linedraw.c
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
/* set a pixel on an SDL_Surface, assumes that the surface is 32bit RGBA,
|
||||||
|
* ordered ABGR (I think), probably wont work on bigendian systems */
|
||||||
|
|
||||||
|
-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
|
||||||
|
+void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
|
||||||
|
{
|
||||||
|
Uint32 *bufp = (Uint32 *)surface->pixels + y*surface->pitch/4 + x;
|
||||||
|
*bufp = col;
|
|
@ -5,7 +5,7 @@
|
||||||
assert stdenv.system == "x86_64-linux";
|
assert stdenv.system == "x86_64-linux";
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.0.25.127.g58007b4c-22";
|
version = "1.0.26.125.g64dc8bc6-14";
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
alsaLib
|
alsaLib
|
||||||
|
@ -50,7 +50,7 @@ stdenv.mkDerivation {
|
||||||
src =
|
src =
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
||||||
sha256 = "1fxps0ls0g4idw10la3qrpmp2jn85lkm3xj4nam4ycx0jj8g1v2p";
|
sha256 = "09wanpml2a6k8asfc0pd56n7fia37amgsplsan1qdh6dwdzr3rv5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ dpkg makeWrapper ];
|
buildInputs = [ dpkg makeWrapper ];
|
||||||
|
|
|
@ -15,30 +15,3 @@ index 16eccd9..603e931 100644
|
||||||
|
|
||||||
env['SBOX'] = False
|
env['SBOX'] = False
|
||||||
|
|
||||||
diff --git a/giv/SConstruct b/giv/SConstruct
|
|
||||||
index 047839a..2c267aa 100644
|
|
||||||
--- a/giv/SConstruct
|
|
||||||
+++ b/giv/SConstruct
|
|
||||||
@@ -3,8 +3,9 @@
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
+import os
|
|
||||||
|
|
||||||
-env = Environment()
|
|
||||||
+env = Environment(ENV = os.environ)
|
|
||||||
|
|
||||||
src = ["giv.c",
|
|
||||||
"giv-backstore.c",
|
|
||||||
diff --git a/src/plugins/dcmtk/SConstruct.standalone b/src/plugins/dcmtk/SConstruct.standalone
|
|
||||||
index ffce001..74246f8 100644
|
|
||||||
--- a/src/plugins/dcmtk/SConstruct.standalone
|
|
||||||
+++ b/src/plugins/dcmtk/SConstruct.standalone
|
|
||||||
@@ -1,4 +1,6 @@
|
|
||||||
-env = Environment()
|
|
||||||
+import os
|
|
||||||
+
|
|
||||||
+env = Environment(ENV = os.environ)
|
|
||||||
|
|
||||||
variant = "Debug"
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{ stdenv, fetchurl, gdk_pixbuf, scons, pkgconfig, gtk, glib,
|
{ stdenv, fetchFromGitHub, gdk_pixbuf, scons, pkgconfig, gtk, glib,
|
||||||
pcre, cfitsio, perl, gob2, vala, libtiff, json_glib }:
|
pcre, cfitsio, perl, gob2, vala, libtiff, json_glib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "giv-0.9.22";
|
name = "giv-20150811-git";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "mirror://sourceforge/giv/${name}.tar.gz";
|
owner = "dov";
|
||||||
sha256 = "1q0806b66ajppxbv1i71wx5d3ydc1h3hsz23m6g4g80dhiai7dly";
|
repo = "giv";
|
||||||
|
rev = "64648bfbbf10ec4a9adfbc939c96c7d1dbdce57a";
|
||||||
|
sha256 = "1sz2n7jbmg3g97bs613xxjpzqbsl5rvpg6v7g3x3ycyd35r8vsfp";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
|
@ -1,29 +1,34 @@
|
||||||
{ fetchurl, stdenv, erlang, esdl }:
|
{ fetchurl, stdenv, erlang, esdl, cl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "wings-1.4.1";
|
name = "wings-1.5.4";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/wings/${name}.tar.bz2";
|
url = "mirror://sourceforge/wings/${name}.tar.bz2";
|
||||||
sha256 = "16kqy92rapmbvkc58mc50cidp1pm8nlwlwx69riyadc9w4qs9bji";
|
sha256 = "0qz6rmmkqgk3p0d3v2ikkf22n511bq0m7xp3kkradwrp28fcl15x";
|
||||||
};
|
};
|
||||||
|
|
||||||
ERL_LIBS = "${esdl}/lib/erlang/addons";
|
ERL_LIBS = "${esdl}/lib/erlang/lib:${cl}/lib/erlang/lib";
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \
|
sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \
|
||||||
src/wings_body.erl plugins_src/commands/wpc_constraints.erl
|
src/wings_body.erl plugins_src/commands/wpc_constraints.erl
|
||||||
|
|
||||||
|
# Fix reference
|
||||||
|
sed -i 's,wings/e3d/,,' plugins_src/import_export/wpc_lwo.erl
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ erlang esdl ];
|
buildInputs = [ erlang esdl cl ];
|
||||||
|
|
||||||
|
# I did not test the *cl* part. I added the -pa just by imitation.
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin $out/lib/${name}/ebin
|
mkdir -p $out/bin $out/lib/${name}/ebin
|
||||||
cp ebin/* $out/lib/${name}/ebin
|
cp ebin/* $out/lib/${name}/ebin
|
||||||
cp -R fonts textures shaders plugins $out/lib/$name
|
cp -R fonts textures shaders plugins $out/lib/$name
|
||||||
cat << EOF > $out/bin/wings
|
cat << EOF > $out/bin/wings
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
export ROOTDIR=$out/lib/erlang/addons/${name}
|
${erlang}/bin/erl -smp disable \
|
||||||
${erlang}/bin/erl -smp disable -pa ${esdl}/lib/erlang/addons/${esdl.name}/ebin \
|
-pa ${esdl}/lib/erlang/lib/${cl.name}/ebin \
|
||||||
|
-pa ${esdl}/lib/erlang/lib/${esdl.name}/ebin \
|
||||||
-pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
|
-pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
|
||||||
EOF
|
EOF
|
||||||
chmod +x $out/bin/wings
|
chmod +x $out/bin/wings
|
||||||
|
|
32
pkgs/applications/misc/opencpn/default.nix
Normal file
32
pkgs/applications/misc/opencpn/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ stdenv, fetchFromGitHub, pkgconfig, cmake, gtk2, wxGTK30, libpulseaudio, curl,
|
||||||
|
gettext, glib, portaudio }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "opencpn-${version}";
|
||||||
|
version = "4.2.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "OpenCPN";
|
||||||
|
repo = "OpenCPN";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1m6fp9lf9ki9444h0dq6bj0vr7d0pcxkbjv3j2v76p0ksk2l8kw3";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ pkgconfig cmake gtk2 wxGTK30 libpulseaudio curl gettext
|
||||||
|
glib portaudio ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include"
|
||||||
|
"-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include"
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A concise ChartPlotter/Navigator";
|
||||||
|
maintainers = [ stdenv.lib.maintainers.kragniz ];
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
homepage = "http://opencpn.org/";
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,13 +4,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "spacefm-${version}";
|
name = "spacefm-${version}";
|
||||||
version = "1.0.4";
|
version = "1.0.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "IgnorantGuru";
|
owner = "IgnorantGuru";
|
||||||
repo = "spacefm";
|
repo = "spacefm";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "1jywsb5yjrq4w9m94m4mbww36npd1jk6s0b59liz6965hv3xp2sy";
|
sha256 = "06askkrwls09d1x382zjrmnvcm0ghfgz4cms2qbhdkazfyy0ff65";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, pkgs }:
|
{ stdenv, fetchurl, pythonPackages }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.0";
|
version = "2.0";
|
||||||
|
@ -9,15 +9,26 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "0yil363y9iyr4mkd7xxq0p2260wh50f9i5p0map83k9i5l0gyyl0";
|
sha256 = "0yil363y9iyr4mkd7xxq0p2260wh50f9i5p0map83k9i5l0gyyl0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pythonPackages.wrapPython ];
|
||||||
|
|
||||||
|
buildInputs = [ pythonPackages.python ];
|
||||||
|
|
||||||
phases = [ "unpackPhase" "installPhase" ];
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir $out/{share,man,bin} -p
|
site_packages=$out/${pythonPackages.python.sitePackages}
|
||||||
cp weather{,.py} $out/bin/
|
mkdir -p $out/{share/{man,weather-util},bin,etc} $site_packages
|
||||||
cp {airports,overrides.{conf,log},places,slist,stations,weatherrc,zctas,zlist,zones} $out/share/
|
cp weather $out/bin/
|
||||||
|
cp weather.py $site_packages/
|
||||||
chmod +x $out/bin/weather
|
chmod +x $out/bin/weather
|
||||||
cp ./weather.1 $out/man/
|
cp airports overrides.{conf,log} places slist stations zctas zlist zones $out/share/weather-util/
|
||||||
cp ./weatherrc.5 $out/man/
|
cp weatherrc $out/etc
|
||||||
|
cp weather.1 weatherrc.5 $out/share/man/
|
||||||
|
sed -i \
|
||||||
|
-e "s|/etc|$out/etc|g" \
|
||||||
|
-e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \
|
||||||
|
$site_packages/weather.py
|
||||||
|
wrapPythonPrograms
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
{ stdenv, fetchFromGitHub, ocamlPackages, zlib }:
|
{ stdenv, fetchurl, ocamlPackages, zlib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "google-drive-ocamlfuse-${version}";
|
name = "google-drive-ocamlfuse-${version}";
|
||||||
version = "0.5.18";
|
version = "0.5.22";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchurl {
|
||||||
owner = "astrada";
|
url = "https://forge.ocamlcore.org/frs/download.php/1587/${name}.tar.gz";
|
||||||
repo = "google-drive-ocamlfuse";
|
sha256 = "1hjm6hyva9sl6lddb0372wsy7f76105iaxh976yyzfn3b4ran6ab";
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "0a545zalsqw3jndrvkc0bsn4aab74cf8lwnsw09b5gjm8pm79b9r";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ zlib ] ++ (with ocamlPackages; [ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl]);
|
buildInputs = [ zlib ] ++ (with ocamlPackages; [ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl]);
|
||||||
|
|
|
@ -2,21 +2,16 @@
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "bitlbee-3.4.1";
|
name = "bitlbee-3.4.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://bitlbee/src/${name}.tar.gz";
|
url = "mirror://bitlbee/src/${name}.tar.gz";
|
||||||
sha256 = "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh";
|
sha256 = "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gnutls glib pkgconfig libotr python ]
|
buildInputs = [ gnutls glib pkgconfig libotr python ]
|
||||||
++ optional doCheck check;
|
++ optional doCheck check;
|
||||||
|
|
||||||
patches = [(fetchpatch {
|
|
||||||
url = "https://github.com/bitlbee/bitlbee/commit/34d16d5b4b5265990125894572a90493284358cd.patch";
|
|
||||||
sha256 = "05in9kxabb6s2c1l4b9ry58ppfciwmwzrkaq33df2zv0pr3z7w33";
|
|
||||||
})];
|
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--gcov=1"
|
"--gcov=1"
|
||||||
"--otr=1"
|
"--otr=1"
|
||||||
|
|
|
@ -4,123 +4,123 @@
|
||||||
# ruby generate_sources.rb > sources.nix
|
# ruby generate_sources.rb > sources.nix
|
||||||
|
|
||||||
{
|
{
|
||||||
version = "38.6.0";
|
version = "38.7.1";
|
||||||
sources = [
|
sources = [
|
||||||
{ locale = "ar"; arch = "linux-i686"; sha256 = "141b3e5a5a51b0ed8f11bc9233d19bccc3116e55d568eb4995bcd48c91ba3390"; }
|
{ locale = "ar"; arch = "linux-i686"; sha256 = "186ba5f03adc7cb94c69351f5edcf241abdba1a3602f9b140a46682cb94b053c"; }
|
||||||
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "f2841d9da85e788d868eb56a43baa8e7d72d40c9c82ca60f4f958b9285be5bc3"; }
|
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "7c6308024524c8ba458bb43cace95bdf92dfa7d797c7ff936598257c018e4807"; }
|
||||||
{ locale = "ast"; arch = "linux-i686"; sha256 = "aa52c0672bf8c2b28ae5efb26aa552592aad6c637b660f9cb4533cad72b9a4fc"; }
|
{ locale = "ast"; arch = "linux-i686"; sha256 = "61de0fc548ff70367334c82bec580caa895f3db63c6b045c5a717bfa282e69db"; }
|
||||||
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "1a083214fc2f31e52b0d03bffbef64e364b77457e447ddc134dc363004768b03"; }
|
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "34c935a0b162e182a341699782143cad1e225ea63bf314c158d25f629889c5e1"; }
|
||||||
{ locale = "be"; arch = "linux-i686"; sha256 = "f3e7653a7f9957e9722cf29a7a97b751ffc2b19bd4982ff603f6460afb07445d"; }
|
{ locale = "be"; arch = "linux-i686"; sha256 = "4442d37c8bb411c5c151bd98d06a375dc8ffcf72fee4d03bed6ac8691ccd8e2c"; }
|
||||||
{ locale = "be"; arch = "linux-x86_64"; sha256 = "55d7082b20da1bbe23b8d1a2e1e07f6a02f9dd96b065cab1a8a2acd086790d21"; }
|
{ locale = "be"; arch = "linux-x86_64"; sha256 = "e7226b6b42e7cfe4d36c430eca755f5deae8899fd64ea1877ad576f96fe29b8c"; }
|
||||||
{ locale = "bg"; arch = "linux-i686"; sha256 = "132fb89107e653cb30e9f6fffbca6ced0451811080b89058a652dcb5187601f3"; }
|
{ locale = "bg"; arch = "linux-i686"; sha256 = "eaf46e571b55800dfaf63a807236e8bf5fa8e8ba77bc996830ab0dfcdce23300"; }
|
||||||
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "03868dab14f8bd671eed93a05c50c3836bb047e4195a2b8e92d04d3cf3244c67"; }
|
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "62edb0cee78dd88a871355c996107901456f1fb70793d21209e75875c33d91a3"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "ffa2c116e814da8f0a5995f382de0b4d614e72b55ecc905185c014abea763851"; }
|
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "76e3222d9b7bc4f5948c56be6248deb23c1777550f497f115487e323c16b2f95"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "74631bb2d75687aefc6e8dfa9414176a92de7a22890704f6f84603703a3dd880"; }
|
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "b7ad9dd397abb89b844f8a1adbd34d0dfdea6bb85b3f8ad5d5f297e7f8b1b081"; }
|
||||||
{ locale = "br"; arch = "linux-i686"; sha256 = "3942e35a9ea655ac365a4b00f70d8b97e7833e50d00d7d07e5ce851956f55f00"; }
|
{ locale = "br"; arch = "linux-i686"; sha256 = "b10c7e572ba88f79acb2d57988308c5af6fde268f64434956c4312f8a7c3ed42"; }
|
||||||
{ locale = "br"; arch = "linux-x86_64"; sha256 = "33dba57581571faac7cc11aeafda68fce323c9fc322a3c8e43cbce794489ab39"; }
|
{ locale = "br"; arch = "linux-x86_64"; sha256 = "174f671aa90307e4dd6756d60f37a0b628d7d1cee8c7bb623a1a32c55b26a967"; }
|
||||||
{ locale = "ca"; arch = "linux-i686"; sha256 = "5001132684f89e6e4c4ab8d22f37739da4465577e850bed4748ad3079a0b592e"; }
|
{ locale = "ca"; arch = "linux-i686"; sha256 = "b966f3381a30567db88890dd3885c56f9cf367d9c92e192d0c6c79066e482c91"; }
|
||||||
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "3cfad5f05320d179b575bc263ceecef0c9bfec08e7a3471dd779be8798f8f8e8"; }
|
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "e5d96ddd9ed6b685b872d90e95bded23124e21575e9e0bcb7aeaa77ef0226009"; }
|
||||||
{ locale = "cs"; arch = "linux-i686"; sha256 = "14879dadca5936473b42ccefc2485707330aa7062bd1c2094adafee0dde83a50"; }
|
{ locale = "cs"; arch = "linux-i686"; sha256 = "fdbe97bc87656569b20d8154619cd7b3b5c3b03cbbcd7ff2f1e07a3af547bb41"; }
|
||||||
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "92f39de732f2264c5658e3282d0a4259b437f81277c926b3fe0a1c51bb18a27b"; }
|
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "b24ea0ae2977d9380cadfd130f83971e798677ce956152d794523e90a54222e6"; }
|
||||||
{ locale = "cy"; arch = "linux-i686"; sha256 = "e38d9c45558bbf1414efff8568b79ed58c0383329923944aca72bcd075c71967"; }
|
{ locale = "cy"; arch = "linux-i686"; sha256 = "ba39bd39698ad0486e22806ff468b9a763712f35e943b93e6021365dc061c2ce"; }
|
||||||
{ locale = "cy"; arch = "linux-x86_64"; sha256 = "43f11c8ea150c1b58031fd765fc5d789e56df68ef36dd989a8a67135d9a1e501"; }
|
{ locale = "cy"; arch = "linux-x86_64"; sha256 = "f51e4dcaeac1aeb53d858d029c34c366e948616f7ca3f35eb22b165fd2839376"; }
|
||||||
{ locale = "da"; arch = "linux-i686"; sha256 = "9815c3fb3c95d4fb73faeb9db10591a39131edcb846fb72b6c2b01ac132602f5"; }
|
{ locale = "da"; arch = "linux-i686"; sha256 = "511441bfe56749643f59e10c9219b8c3192d64c50008ee3d8a2dc342993c0133"; }
|
||||||
{ locale = "da"; arch = "linux-x86_64"; sha256 = "6435f69ebb748f2f81dfcd1da4d66030792e73735d11c788c4478cdb750de89d"; }
|
{ locale = "da"; arch = "linux-x86_64"; sha256 = "9f60a1c06da4e61a415359eeaed831d61a8c8ad377952948c1475ee6a2bc0cd3"; }
|
||||||
{ locale = "de"; arch = "linux-i686"; sha256 = "d8601890fe1021c61b48cb755a98358fffb0e5c3de106d0408baa748c6e4ff21"; }
|
{ locale = "de"; arch = "linux-i686"; sha256 = "d48939ad0dab7c4829cd41cd6afe9239d12ab2a2337296203b660613cbba2698"; }
|
||||||
{ locale = "de"; arch = "linux-x86_64"; sha256 = "96626e10573940ce9a77277f8776066e1f33d852ff1a9be25c613ea54b2ad3d0"; }
|
{ locale = "de"; arch = "linux-x86_64"; sha256 = "6b1398161ab1271caa14b20c4ad0b3e4372fca743b4ae2e3d5bd1d77d8038c15"; }
|
||||||
{ locale = "dsb"; arch = "linux-i686"; sha256 = "c0cf3e5db343c031171cca6507839e18bb4232a498eb0ff87864c0d3f54c31d3"; }
|
{ locale = "dsb"; arch = "linux-i686"; sha256 = "c30f3fea47cca28fcc928d813e8c631db43a665d8f347f174b23ef3c1fdd7550"; }
|
||||||
{ locale = "dsb"; arch = "linux-x86_64"; sha256 = "5c94f8200bf7e5bccdb4f454232707c1354d4cb87713648847d742d1d127b5bc"; }
|
{ locale = "dsb"; arch = "linux-x86_64"; sha256 = "592b18fa8ff3749c7a68b5f5406f5ae42f9f97e47cc8c2f9c18b242c8f192b8d"; }
|
||||||
{ locale = "el"; arch = "linux-i686"; sha256 = "43b61ae50412d5df24f903bd1890be52164689b53ec9bbfe134b7bbb36952377"; }
|
{ locale = "el"; arch = "linux-i686"; sha256 = "1ccdde8b11337e75feabbd1e40f1316c287862769d0b9c37934f22108c74bf1a"; }
|
||||||
{ locale = "el"; arch = "linux-x86_64"; sha256 = "163e041e125f84db5f9d55f6e8a2e8d15b7ac6335187a55f00f7019b3038249c"; }
|
{ locale = "el"; arch = "linux-x86_64"; sha256 = "acb837b0120f00f6cb39e447e86cb140c0cabbe599bff70d85429126df377d85"; }
|
||||||
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "b34105daffdf9088fecd199e1525ebbc332ff6536487caa058d19daa4c7306c4"; }
|
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "ba4c223c22fda306f4b66daa6ed0d157c5c24489ec7627e1124c9f79b5aca989"; }
|
||||||
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "ac54bf8c804d17ecebab6a865471ce5adf712466612eb435e5871a4ffcc7238a"; }
|
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "f4bb5a60493f3fbf519a55dc7ff2fa7bb455ad344d27b133addb2864f9d9d100"; }
|
||||||
{ locale = "en-US"; arch = "linux-i686"; sha256 = "2e60a2a5764cdee16659b125f7ad2dde7ff6e993c69a738d86fb39530e469328"; }
|
{ locale = "en-US"; arch = "linux-i686"; sha256 = "205729f0ce14666ef98b7e23dad0882d450a508b568fc1d2c99cdfffd2cc9547"; }
|
||||||
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "f0b4b0d5a7f4b21845e76411cd75d59b0e34a341747cafcb3e871a00b1b2535e"; }
|
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "7c7cb801ea902f93e57f944209e1358bcbe73f8ee312112e94ade2a2ef4b1194"; }
|
||||||
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "fa9de1698297336d3db8d7cc6c59ea1cad595c2d5caf8081f85fc217535d630d"; }
|
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "8bbb39afd31656bc7cdab60b179e0a5bb9d9d9fed62e1ad398dfc5c0f40a35ab"; }
|
||||||
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "62bf96299b20de2b6ea17db2113fd8220c60507314d9c3dfbd2ef06557746298"; }
|
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "0d86ebebfd2ba294b0f27b5eb84b083a7c8cecc8fea944705525831cf3c161b8"; }
|
||||||
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "1e79df1375e29c6aaf2839584ee51e23a326587e02440c07f10969f82e29daa3"; }
|
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "76673ffb93fb3b902366c5939619dfa11ecd724dc5ff37fe769d598dc937c353"; }
|
||||||
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "e5ef4e579c83b1f982b5d071966b3c1be39b94aa128e0ef14f4244e51b19c6c9"; }
|
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "6e7098cf9eb6f1b55d7504b341b709133fb5d4d20cb761984647422749b71615"; }
|
||||||
{ locale = "et"; arch = "linux-i686"; sha256 = "110dc75c81abcca2199c2f6bee542fe0909bfbe678e91376a1413a81bac88edf"; }
|
{ locale = "et"; arch = "linux-i686"; sha256 = "3de2c84af3c7111a306e35f1f7304bf7a77a0e50c8d2c9bfbc896a11a6a23e5d"; }
|
||||||
{ locale = "et"; arch = "linux-x86_64"; sha256 = "71f7f7d5d9025423438138a62728d3494f2227c3b1daf8945cbd20d65e7629b3"; }
|
{ locale = "et"; arch = "linux-x86_64"; sha256 = "a2bb5c2b6e174a65cf825293f57cc1628930686f6a674d2cb7fcee6aaf755afc"; }
|
||||||
{ locale = "eu"; arch = "linux-i686"; sha256 = "ad2e6071fafe18f3db5d4af4d938450ec1a8f538e2a5efc7f8ce1d28f1f3dd66"; }
|
{ locale = "eu"; arch = "linux-i686"; sha256 = "f0ec8c9613ee04c7f7c1b55cb81386036220a715b58edc302e2099882e2c642d"; }
|
||||||
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "32c8b0e825912b97a36cedf19ead4eba8427e08ac059b4bb9fda15c568ce6cff"; }
|
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "3ed3c4431fc604fbc05b6f17c9c6e74057278e9ef85480d60ea638843eab1394"; }
|
||||||
{ locale = "fi"; arch = "linux-i686"; sha256 = "203006ba5572a315f851e69e74779f92123df25d6a1964283bbf546c43ca0ecb"; }
|
{ locale = "fi"; arch = "linux-i686"; sha256 = "e4dac93472bc5f41a75daf9ca18265de527b5fc621812bde2c634f1fa5a4692c"; }
|
||||||
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "f87904779b68a60aef440a7eb5cf490fe224bc25517d9fa463575fd35c4fc895"; }
|
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "8a30c0c7a586f598e6065f20b2a0dc1e105f59d3e4adac8167da462e8e0193d2"; }
|
||||||
{ locale = "fr"; arch = "linux-i686"; sha256 = "4d92b6273006f6a20c6b405cfdd017930e7341230f0deefdbe8961a3ab2099d7"; }
|
{ locale = "fr"; arch = "linux-i686"; sha256 = "adfe8aca07faf08ba780ca0f84d638d461f4a0f00b92d5a9cebe8102a94bce79"; }
|
||||||
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "a7858e1fca3007710053cd6ffcd8d17fe111ec3727e98cfc410f426fb4dd04a1"; }
|
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "19ccb4a2ec44b1c8edce204627af3d0e84f214591d3b7a4f6e67e297dd9db0f9"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "d222ea0506db332ab7590fc85dce4102613489506d7680bac31c82b855ae238e"; }
|
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "88f763080b2bbfb8957ed6b52189f2195b3317a1bfb851a6e686765e8a12181a"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "b466075727c3d3f709b9ddb1987f9fe69deb1efa34fecbd73aa1c5231ef844d8"; }
|
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "5955d594802281794ef25e9fda196206464ac0594ce12e957b5c40c589c89ad0"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "d786389a7866d2be769c079ec65396fe3888968f80f3fbd8d54e355ac3098f91"; }
|
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "7fb849565e25b1bba853b434d7f0207bfc9b3f39251f08edf65a8a38ccd0dd96"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "8134a011c31cf63a5538fea89ef332a28ab510fb08e1251a9d460ba83946f656"; }
|
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "b56cd8b5fc665ad24061fdf2ac3196aff9f953395e894007b133bc83f676be33"; }
|
||||||
{ locale = "gd"; arch = "linux-i686"; sha256 = "a5b5cb6e9a2daf1587af84083cd680b14f49a0f998d4e6e80f09c37aebac0b0f"; }
|
{ locale = "gd"; arch = "linux-i686"; sha256 = "860dca420cd8c6c18bc703ab4934948e038b4e7e91a1d80d3f632980f0799424"; }
|
||||||
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "7b15ab841f95eda59256c7cb4c9c876b0bea34df9f0e1d3af3bd144230d7254a"; }
|
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "4e8723dacd9a4961f02fece36066166c044880fbc0c7aab4e0f1289a36bd22c6"; }
|
||||||
{ locale = "gl"; arch = "linux-i686"; sha256 = "7bee6ae14c9f43689ab2c7b9a7de60af9fe4d9d567efb94b26e3109af04d6c43"; }
|
{ locale = "gl"; arch = "linux-i686"; sha256 = "fd071bf547ba0baaf13141e30f34c15108fb6e44432b02d55508cf3dfca91cdb"; }
|
||||||
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "b9a6e5bd2c62745a82fd3685a694a6f34d3327b60a62af6e283caf3a67d77f22"; }
|
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "b999261eb53e28c5b43fa5d3ffcb2f9c12cca45a38c6e8fc56a342b1a5dda78a"; }
|
||||||
{ locale = "he"; arch = "linux-i686"; sha256 = "17a322f92322de536ead76e292d877ab8e9deff9855b1c12fc20855d3935a548"; }
|
{ locale = "he"; arch = "linux-i686"; sha256 = "2c2e7d7a459dd85f88fb3839002e2eb602d47ce5df4d0572928d8a35a0df4773"; }
|
||||||
{ locale = "he"; arch = "linux-x86_64"; sha256 = "e542cfdfd29f7d54520dc86c9b73252e57fd3346874f9d629fd31b25be463471"; }
|
{ locale = "he"; arch = "linux-x86_64"; sha256 = "0c540f0ffb1224c8d3b18423690f319d25ff5e0c004d18cc8bc6b7d69ecbc48a"; }
|
||||||
{ locale = "hr"; arch = "linux-i686"; sha256 = "fe1fc94042eaeeedc1e7592cbedc5e4c922c5e05cd212feff8a654898d2c2a9e"; }
|
{ locale = "hr"; arch = "linux-i686"; sha256 = "5d7e14f94f53c7623dc4fce69aa991a67792e0d2405a6c7044558d5023ea0cc0"; }
|
||||||
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "de191f3cc421ed5b06ce981c0431decb933799252107b27103bc3c45ac6995be"; }
|
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "6355145ae642332d1798f8ce169cb85cc930af6add6c8cda142e8183666fdb71"; }
|
||||||
{ locale = "hsb"; arch = "linux-i686"; sha256 = "f55ad886854541ea1d684d168f8fb3c858fc8a11324dc14fb64340cb47f6d7fe"; }
|
{ locale = "hsb"; arch = "linux-i686"; sha256 = "897eca9ffdbf28f3d3f720dd44f68f67a289e4d2aff91005c180688b34358b08"; }
|
||||||
{ locale = "hsb"; arch = "linux-x86_64"; sha256 = "ee03f60c834c141d3340dca9ecfce8f427ee50a3b6b963f4a565a843e895f614"; }
|
{ locale = "hsb"; arch = "linux-x86_64"; sha256 = "43d2cf464be8be57a5d2bdba1683e6179641448e351d9a8bee9889febe1ebefd"; }
|
||||||
{ locale = "hu"; arch = "linux-i686"; sha256 = "8462e0a665d04b9273dbfc1095ef57831165438c21c34b5d04d22b51276fc047"; }
|
{ locale = "hu"; arch = "linux-i686"; sha256 = "5e6b806364d7e97384bf3f30e4f398c8041cd8acc000b21edcf218ca24e1903a"; }
|
||||||
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "6cc42919c6417860e19fcc851b8210b9d6e405c4b2ff0bf51cffb18af733b488"; }
|
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "5b96ea401ec1af9473cc57e4f09f6f264598e52196dd9da38cebe3e802649fc9"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "2c3f4f4358387dad669254da46e21b4da1f54cedbc7be62c38448862a88edf37"; }
|
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "3fbd40d914f9347f09848ffb3486d1cec9734f9ae3cc969bc71a8d9c61aea92b"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "0556cb57c012554449d7044efaa5e8b4b938b15d55a19f91cb31ea5187b7ef76"; }
|
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "9f60903ccb571eebdf7fab4c62e1f0675d4c7f5bcbca7589e669c931b355b55a"; }
|
||||||
{ locale = "id"; arch = "linux-i686"; sha256 = "26d31f04b836d3e5e3874c4e37d258effc8bd228223f6b963df3434d2276529c"; }
|
{ locale = "id"; arch = "linux-i686"; sha256 = "bd0e53bb5d792c9caf2aedc67cf1df2281d234905b96748766446e842448e39e"; }
|
||||||
{ locale = "id"; arch = "linux-x86_64"; sha256 = "55b2be7503278c0a41785796425fe35f5635e0c635d79a4246f7830a7cf6f075"; }
|
{ locale = "id"; arch = "linux-x86_64"; sha256 = "f7bc98632e15fb73c61c5fd54c3e349e93f3f07b61ee92d704b105b05386949d"; }
|
||||||
{ locale = "is"; arch = "linux-i686"; sha256 = "29ce03e041c320aaa61c8ecefbe1a6cd2e9b96e916f3605f09a59cd271cfb741"; }
|
{ locale = "is"; arch = "linux-i686"; sha256 = "6361b21f9a57468cb8e6273805437d4a40f90c0b461d447b17543f84f9cae8c2"; }
|
||||||
{ locale = "is"; arch = "linux-x86_64"; sha256 = "44d7856e1779e86d715026a26fdc0db8beb8fac1bcba5c27ed652779f858c12e"; }
|
{ locale = "is"; arch = "linux-x86_64"; sha256 = "df4d4ef5a25a8aa2f9cbbfef2425056c19b568030e2b217f9bb535fcd81cc017"; }
|
||||||
{ locale = "it"; arch = "linux-i686"; sha256 = "47dd016eda154be31646105061570653ab61ab99d8bf873cf9e8e4b727847fc6"; }
|
{ locale = "it"; arch = "linux-i686"; sha256 = "def27fdc02da10e148b3312199826157b981165a98ea9a3f5135866092e07ad3"; }
|
||||||
{ locale = "it"; arch = "linux-x86_64"; sha256 = "299941c56912734dd06c2f1dd89838d3a746dfde10df39f6caf198cf4fc6a332"; }
|
{ locale = "it"; arch = "linux-x86_64"; sha256 = "3c55c72d8b9936dc0b0ecf2e88024d4e128f4cbdb32ec5770d4caa930e12d696"; }
|
||||||
{ locale = "ja"; arch = "linux-i686"; sha256 = "ff809f8f752612d242d5787f511b4821294855dd42027d7493f789200747575a"; }
|
{ locale = "ja"; arch = "linux-i686"; sha256 = "7f1e39da21362857afd57151b0bb606c7a8b52f0ea1362cbb5bf9c4eb9b18db8"; }
|
||||||
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "babda834d5e6fa669691b974c4c4ea4b9207c3926796d0c1d76784b733d738a3"; }
|
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "3b70e990616d999c572a9e95f92dc62b004f5449891778a6530ee81dc1f42703"; }
|
||||||
{ locale = "ko"; arch = "linux-i686"; sha256 = "a04ca9cd1cd435d4ab5d832efaeb1a6fee5e9e6c933c5a3a9b0e21bbc5141f24"; }
|
{ locale = "ko"; arch = "linux-i686"; sha256 = "7023635ab8fde872b41b08f523128721863091d7bd7e76646ea2f2929a667719"; }
|
||||||
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "0390d47ca644679631b8bbb83cb45e404b4b7f1e4ad237d439318fd6464aeeb4"; }
|
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "370075633a30d3f4afbe69c617ecc4df33e51aa95704ef9fff599a13e9cb3ab2"; }
|
||||||
{ locale = "lt"; arch = "linux-i686"; sha256 = "9e9d3ed60a3ba5ef761937e5b2b06a4eaac1c6f6c1d72a9b3fe0ab7818e3d18f"; }
|
{ locale = "lt"; arch = "linux-i686"; sha256 = "f143791c658916ee2ddac2199293ded234cfd8201cd6399775ccb996cb784e18"; }
|
||||||
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "8d7cf2a173df6b7930a37244829934b2729341a8938288c988120010d1a52d2f"; }
|
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "5d48abb53a5b71be190dc4c127c5718704fbc12590c2c5fbcf3b4046f9840415"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "fde6089efa39e867f8c8b4b6d6e9d5c006f87c4ceaabb78517b34ea288cebe1e"; }
|
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "319df90e458817537f7323e97c3d7fdeb2fd965a215b1173f87378b3c94e3ac7"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "9ff74ec5e87468f3912b1ec847eff2d215c35224b4ef82ba29efaba4a48f2bb0"; }
|
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "2f93a35135f387c8cb2e4ca4b0c800f846596d0f93350f3be0983797a0571359"; }
|
||||||
{ locale = "nl"; arch = "linux-i686"; sha256 = "349101916960741272549700a4050850730679826ef3f6c837b542628ac9b17b"; }
|
{ locale = "nl"; arch = "linux-i686"; sha256 = "8e3d9003a67a0d38821dae7a070eebe32698ae6a89272394d4f7faea91595360"; }
|
||||||
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "0bc2cf52b46f15976cd5355960b81106279c4cea9b7d55ac0360a56dd934ce6a"; }
|
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "bf2bb1676c5966b6fdcf34c93eb3444ed0f3dd6ed03c8e2a39f6757811bf0e7f"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "6eff1f88b362d81d71833b50606afffdb7e0210160bc9933226c472daa692259"; }
|
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "e938fcf2e84bc19d766c89312f8ca8e055ffeaf7fe20ba8d616aeb0b862cd064"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "748726556948ebc59913a72965a54de67615217a93cf0351ece356524d8e3097"; }
|
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "ab0b01922e883a34874de33f6eae08a8e4e40d23dd7ddcdf42254386218728e6"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "6606ee970387998235ed96fdbacc64a47fe2bc0d78061cf4205200517ab6f092"; }
|
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "fd3fd9fe5280365a27ef4e81f7965da2e85ad149e4e026f6a8714a73d976eeb2"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "0a77fe35ddce1921252d2e2acbeb09d6e719d34b4d81af8d6ef9c5c846359780"; }
|
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "6a68c72828036a256a8d04b1678be58c786671ef97f106b23812ebcf149f1d15"; }
|
||||||
{ locale = "pl"; arch = "linux-i686"; sha256 = "b8d81eba8470a29768ded1c6882cdbf2f3306843754d29fa35e385b0a6efce25"; }
|
{ locale = "pl"; arch = "linux-i686"; sha256 = "26bb8ca3617c70d1126ef4111787ab267bc6dcd28b2b995e07b7296bdf24723b"; }
|
||||||
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "2b10f69274860e7af35cbb795042d058c9480ad195cd435e457923da2341c99d"; }
|
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "de6ac16163aab662ba4fef2130dd822ec9cfecc0f4beec54f2017785fec8eb0a"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "4391c285e1db0767f7242fad4fbf6441572ef930acabc63209f1d2ac64e6d08c"; }
|
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "82c459a487d2a7b156f92db36e85c815c714d59474ed9bd8cde46b08c69f1d57"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "003060a341e1134870f96e1e032023884f3f22fa62261b07084e3cb8813423fb"; }
|
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "1f4caae64ced0c69fe6ba6330921fce0d220b616a0eb8b1e696da85cdcf5ec01"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "d261cbc11bd9b176b656c3ae75f802aee4f1828e14f1a9f0e8c7822e9a24c090"; }
|
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "830b649a394cd844bb1b159a76d265455f6ace76dec6697491367b2f6eff1588"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "81fb37b9591a159e9d5ceff18921683037b4c965765b47e736c9124ba6268ee2"; }
|
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "e89e906cd896c8e04754a9658dc72617954e0a097e6e3b648e5ce827c8cec7d7"; }
|
||||||
{ locale = "rm"; arch = "linux-i686"; sha256 = "a7d699ac74a568922a363eabaa38627564fbc715cdd3612a8f51e0c373594646"; }
|
{ locale = "rm"; arch = "linux-i686"; sha256 = "260fc959ce74945d827c230124a451cec75b6347b78d7d8bbeb65a2bd91f5bd8"; }
|
||||||
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "ab9c84765f54f02e385b360025d1c70937af91350cbf8eea666f97aec4e36276"; }
|
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "aa416170d0d04d0e2e570d0b0874b6c585d706f8b670de3c24bc5a9ce9819d8d"; }
|
||||||
{ locale = "ro"; arch = "linux-i686"; sha256 = "00db7d515ee4abcba36713a7bac64a2afdfa1782bc3e4175ae2c69535c7b6cdf"; }
|
{ locale = "ro"; arch = "linux-i686"; sha256 = "a24ec33c8812921ad0f15dd4306218a2443f7018be5141bcc8e87e0ce3f52929"; }
|
||||||
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "03da97e6c832ce49ccf6736ddac4a14b92768442f6f462b0174324964693aaa7"; }
|
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "5c8bb4872206cacd17cfb77ed3cf58024cdc81be181908213f80659c4d36594b"; }
|
||||||
{ locale = "ru"; arch = "linux-i686"; sha256 = "d7d78792a83d76ce4c521674275b3b6443d0c12ad376b4ec3c34bc4edef64078"; }
|
{ locale = "ru"; arch = "linux-i686"; sha256 = "06bde08af3d4b73db3f0a8b87f4f5f3bbc95fd92d717a9ac83efddb7ebc0f12b"; }
|
||||||
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "bc4c751c5079d3863df1b0dd5717d7f5c07c031fefe798642ff3ff91e8f7512c"; }
|
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "6adf1e6992b05b6c93152bb19a79fe39f319b5a5a62d2491191544eaaabbcc1b"; }
|
||||||
{ locale = "si"; arch = "linux-i686"; sha256 = "9525a7a704f262efa1ad18ab154d7f0eeec8f923f641621a38cce3be5c090cd4"; }
|
{ locale = "si"; arch = "linux-i686"; sha256 = "3f757064e857d8c4d025c0de8325b3bfd81648ac2b77ee11ca847e8ea85d35a5"; }
|
||||||
{ locale = "si"; arch = "linux-x86_64"; sha256 = "2e847ce3ee90d27b7e20602844cbc1c3a9e458a7d449386e5bc8067163b6559d"; }
|
{ locale = "si"; arch = "linux-x86_64"; sha256 = "01147194ad382e4cc61c22c6a2672a01740ced6fdb3d4c2a9394ca9d62503c24"; }
|
||||||
{ locale = "sk"; arch = "linux-i686"; sha256 = "389e6dea7b61aced9ad491b57441963cf9c3f5f0c90a80778ccee71320a8bf53"; }
|
{ locale = "sk"; arch = "linux-i686"; sha256 = "ffd8e8bbadb7be4672555f1ec8e4134af5c0898041cc197e1d0081b636d07642"; }
|
||||||
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "c36e78ce9aecaa23cf183a453e6ae817a52b84e2129f4e41fd409a61e1705c6a"; }
|
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "d1e9df7d081afa272e94534ee3d6310c3498629cd7bba0fd7ab86675ea885714"; }
|
||||||
{ locale = "sl"; arch = "linux-i686"; sha256 = "e8f1dd49850b2c359a66e8f79839a95d6e1a09de5cdd41a64c44315fdcea544c"; }
|
{ locale = "sl"; arch = "linux-i686"; sha256 = "2835ea496c48c171efa0d79924cd3183c12f6de49ce05af72214f6ad4a407c85"; }
|
||||||
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "3ae2a85dadbaf99109fa971bb0c7a825d4ad3d1357f4d51bc7bb20455564ea68"; }
|
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "e585b0839c2b31ef12f562c4303b46b392493c6619b7e1b0c92e21c3afdb7461"; }
|
||||||
{ locale = "sq"; arch = "linux-i686"; sha256 = "dd52238fbd564d49ae8f3dfcee7e608615d3e78bd99373b1bbcdf51b9e20c354"; }
|
{ locale = "sq"; arch = "linux-i686"; sha256 = "592ece3de096b4135c24e9079f20b85b8c394d488caa6b7907b75d49f51fb30d"; }
|
||||||
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "cbeadcb1de666c42c9e5b42b2a6c1fa14f80e4c6454ea8cfc34b0ad5dd472bb8"; }
|
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "048bcb92d0915b909e2174c990948dd5c50345452369e067bf8c5770bc7b40c4"; }
|
||||||
{ locale = "sr"; arch = "linux-i686"; sha256 = "1318c997a56245b296b2f9ac004b07f87d6492448272c8978e78193fe484336b"; }
|
{ locale = "sr"; arch = "linux-i686"; sha256 = "b24e02beeb02d44ba64884864cdfb6605e7b3454b6e953767ceeaf4817f41d95"; }
|
||||||
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "0898d16c990669028fbea084755221c747db48392b30b7c498770fcb5df7b328"; }
|
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "caad067689a49308c2e51385750f3d2319e3a06757cf56060ce3c5ecb74a9ed6"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "50c76b8904b51a84136a1c69939e49541205ce8b804c2ce90cff196e826c275c"; }
|
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "a2dc5de82a1736dd3aa157da305f5db478625508444df244a3492dfaff8278f3"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "bf3e5c83815458726317c8415963825975500452202f240200be0fab43b1e226"; }
|
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "d2c4ab30e6e5d17716d7981d0039f043a41107edb917a838be66659d60653074"; }
|
||||||
{ locale = "ta-LK"; arch = "linux-i686"; sha256 = "7d62ec98b8f01b12425e7692c4966faeeeb42ea66cd6105c37742698215bde5a"; }
|
{ locale = "ta-LK"; arch = "linux-i686"; sha256 = "58773ebf8d949541a2c19924935eb09f0d996aa4059ad3c17a71c664357c2bcc"; }
|
||||||
{ locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "416cffbe25f2b00cd584fa455768b09c5f8d1bc7938263880903050f8c08fab4"; }
|
{ locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "bb5c4d1d81373c1d25c1df4d896fbd1ba52acfed4e890a81650e34e5b9bd2ef0"; }
|
||||||
{ locale = "tr"; arch = "linux-i686"; sha256 = "581d6c8df1611d749d0dda9d1f248ebf354825f8a8097624fd08338ea5e01d38"; }
|
{ locale = "tr"; arch = "linux-i686"; sha256 = "c95f531aaa3d36788cf6511d51afa1242657890bdc10628218aef60d6d80b106"; }
|
||||||
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "24b1b9bfa251add2d7f3183b0c3aafdea6b4caa5bdbcea718462185d6dc63e5b"; }
|
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "bf04a4f7b629e20f8389aad530b89b592686bd1a8340090311882934f9bea391"; }
|
||||||
{ locale = "uk"; arch = "linux-i686"; sha256 = "97175dba275e382b2436e9b7a948c46f137ed38612e90ea43466dd3fe20c878b"; }
|
{ locale = "uk"; arch = "linux-i686"; sha256 = "2c0c6d3a2d4228b7838864835665ff7d46cf8564d59db817ee1d8f9665828410"; }
|
||||||
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "273b08710fbc57c30828736c38a158ff66ac788b2ca3726118367466cab09797"; }
|
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "c51477c9aaa96765205c163df83acb003c2db837243225d5d1e8753b1de5b71b"; }
|
||||||
{ locale = "vi"; arch = "linux-i686"; sha256 = "e0391fdecb11b5daac913f57894970208b51e1e7f1665ff56cb7a68dba0c442a"; }
|
{ locale = "vi"; arch = "linux-i686"; sha256 = "3c92aef738962dab12fa0e118d64d29bb0d110f9ef2050630b3649d574036476"; }
|
||||||
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "af51ee3bd2ac246a4b465aa65b13d1aa661dbce5e0988524532616fb9d2d651b"; }
|
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "4854536b65fb7afb8925315ff4192c369db53f55b3ccec698cb561af1bc03f68"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "5e7d1543d41912ffa0a71137b90c40ab5569ffab65e8b99f0b62446561a78ca2"; }
|
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "3aa69342828a99d075e0b70938d1360dcb9016ad322638c57fba9288e37b9b3e"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "f85c8086b462474e40b0b090f9b566aa55b228ec49ec18fa1b5987ec3efa048b"; }
|
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "9d590c31e369d8e1287c915cb91061f14359329c89e5038e3491052ff3df894a"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "6f161428af67a1635364660a8ec6d7c785350204d5bac602ebcd32861e9baf62"; }
|
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "f133efa32b74f0203186abfeb5b191bf50711f04bf29762e2569b78e0feb66e3"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "2088379539a9b4ece3012b603a5731c92567fa4b3e5c448ae54e2729c8df0658"; }
|
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "15d71526ef072de2b9adacb300e0eb158170839be82a7def9efa6ac55adcda37"; }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
8
pkgs/applications/science/robotics/gazebo/6.nix
Normal file
8
pkgs/applications/science/robotics/gazebo/6.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ stdenv, fetchurl, callPackage, ignition, gazeboSimulator, ... } @ args:
|
||||||
|
|
||||||
|
callPackage ./default.nix (args // rec {
|
||||||
|
version = "6.5.1";
|
||||||
|
src-sha256 = "96260aa23f1a1f24bc116f8e359d31f3bc65011033977cb7fb2c64d574321908";
|
||||||
|
sdformat = gazeboSimulator.sdformat3;
|
||||||
|
})
|
||||||
|
|
81
pkgs/applications/science/robotics/gazebo/default.nix
Normal file
81
pkgs/applications/science/robotics/gazebo/default.nix
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{ stdenv, fetchurl, cmake, pkgconfig, boost, protobuf, freeimage
|
||||||
|
, boost-build, boost_process
|
||||||
|
, xorg_sys_opengl, tbb, ogre, tinyxml-2
|
||||||
|
, libtar, glxinfo, libusb, libxslt, ruby, ignition
|
||||||
|
, pythonPackages, utillinux
|
||||||
|
|
||||||
|
# these deps are hidden; cmake doesn't catch them
|
||||||
|
, gazeboSimulator, sdformat ? gazeboSimulator.sdformat, curl, tinyxml, kde4, x11
|
||||||
|
, withIgnitionTransport ? true
|
||||||
|
, libav, withLibAvSupport ? true
|
||||||
|
, openal, withAudioSupport ? false
|
||||||
|
, withQuickBuild ? false, withHeadless ? false, withLowMemorySupport ? false
|
||||||
|
, doxygen, withDocs ? true
|
||||||
|
, bullet, withBulletEngineSupport ? false
|
||||||
|
, graphviz, withModelEditorSchematicView ? true # graphviz needed for this view
|
||||||
|
, gdal, withDigitalElevationTerrainsSupport ? true
|
||||||
|
, gts, withConstructiveSolidGeometrySupport ? true
|
||||||
|
, hdf5, withHdf5Support ? true
|
||||||
|
, version ? "7.0.0"
|
||||||
|
, src-sha256 ? "127q2g93kvmak2b6vhl13xzg56h09v14s4pki8wv7aqjv0c3whbl"
|
||||||
|
, ...
|
||||||
|
}: with stdenv.lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
inherit version;
|
||||||
|
name = "gazebo-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://osrf-distributions.s3.amazonaws.com/gazebo/releases/${name}.tar.bz2";
|
||||||
|
sha256 = src-sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true; # gazebo needs this so bad
|
||||||
|
cmakeFlags = []
|
||||||
|
++ optional withQuickBuild [ "-DENABLE_TESTS_COMPILATION=False" ]
|
||||||
|
++ optional withLowMemorySupport [ "-DUSE_LOW_MEMORY_TESTS=True" ]
|
||||||
|
++ optional withHeadless [ "-DENABLE_SCREEN_TESTS=False" ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
#cmake pkgconfig boost protobuf
|
||||||
|
freeimage
|
||||||
|
xorg_sys_opengl
|
||||||
|
tbb
|
||||||
|
ogre
|
||||||
|
tinyxml-2
|
||||||
|
libtar
|
||||||
|
glxinfo
|
||||||
|
libusb
|
||||||
|
libxslt
|
||||||
|
ignition.math2
|
||||||
|
sdformat
|
||||||
|
pythonPackages.pyopengl
|
||||||
|
|
||||||
|
# TODO: add these hidden deps to cmake configuration & submit upstream
|
||||||
|
curl
|
||||||
|
tinyxml
|
||||||
|
x11
|
||||||
|
kde4.qt4
|
||||||
|
] ++ optional stdenv.isLinux utillinux # on Linux needs uuid/uuid.h
|
||||||
|
++ optional withDocs doxygen
|
||||||
|
++ optional withLibAvSupport libav #TODO: package rubygem-ronn and put it here
|
||||||
|
++ optional withAudioSupport openal
|
||||||
|
++ optional withBulletEngineSupport bullet
|
||||||
|
++ optional withIgnitionTransport ignition.transport
|
||||||
|
++ optional withModelEditorSchematicView graphviz
|
||||||
|
++ optional withDigitalElevationTerrainsSupport gdal
|
||||||
|
++ optional withConstructiveSolidGeometrySupport gts
|
||||||
|
++ optional withHdf5Support hdf5;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
|
||||||
|
propagatedNativeBuildInputs = [ boost boost-build boost_process protobuf ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://gazebosim.org/;
|
||||||
|
description = "Multi-robot simulator for outdoor environments";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ pxc ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2.7.4";
|
version = "2.8.0";
|
||||||
svn = subversionClient.override { perlBindings = true; };
|
svn = subversionClient.override { perlBindings = true; };
|
||||||
in
|
in
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||||
sha256 = "0ys55v2xrhzj74jrrqx75xpr458klnyxshh8d8swfpp0zgg79rfy";
|
sha256 = "0k77b5x41k80fqqmkmg59rdvs92xgp73iigh01l49h383r7rl2cs";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
|
@ -1,46 +1,115 @@
|
||||||
{stdenv, fetchurl, cmake, pkgconfig, libxml2, qt4, gtk, gettext, SDL,
|
{ stdenv, lib, fetchurl, cmake, pkgconfig, lndir
|
||||||
libXv, pixman, libpthreadstubs, libXau, libXdmcp, libxslt, x264,
|
, zlib, gettext, libvdpau, libva, libXv, sqlite, x265
|
||||||
alsaLib, lame, faad2, libvorbis, yasm, libvpx, xvidcore, libva,
|
, yasm, fribidi, gtk3, qt4
|
||||||
faac ? null, faacSupport ? false }:
|
, withX264 ? true, x264
|
||||||
|
, withLAME ? true, lame
|
||||||
|
, withFAAC ? false, faac
|
||||||
|
, withVorbis ? true, libvorbis
|
||||||
|
, withPulse ? true, libpulseaudio
|
||||||
|
, withFAAD ? true, faad2
|
||||||
|
, withOpus ? true, libopus
|
||||||
|
, withVPX ? true, libvpx
|
||||||
|
}:
|
||||||
|
|
||||||
assert stdenv ? glibc;
|
stdenv.mkDerivation rec {
|
||||||
assert faacSupport -> faac != null;
|
name = "avidemux-${version}";
|
||||||
|
version = "2.6.12";
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "avidemux-2.5.6";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://sourceforge/avidemux/avidemux_2.5.6.tar.gz;
|
url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
|
||||||
sha256 = "12wvxz0n2g85f079d8mdkkp2zm279d34m9v7qgcqndh48cn7znnn";
|
sha256 = "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake pkgconfig libxml2 qt4 gtk gettext SDL libXv
|
nativeBuildInputs = [ cmake pkgconfig yasm lndir ];
|
||||||
pixman libpthreadstubs libXau libXdmcp libxslt x264 alsaLib
|
buildInputs = [ zlib gettext libvdpau libva libXv sqlite x265 fribidi gtk3 qt4 ]
|
||||||
lame faad2 libvorbis yasm libvpx xvidcore libva
|
++ lib.optional withX264 x264
|
||||||
] ++ stdenv.lib.optional faacSupport faac;
|
++ lib.optional withLAME lame
|
||||||
|
++ lib.optional withFAAC faac
|
||||||
|
++ lib.optional withVorbis libvorbis
|
||||||
|
++ lib.optional withPulse libpulseaudio
|
||||||
|
++ lib.optional withFAAD faad2
|
||||||
|
++ lib.optional withOpus libopus
|
||||||
|
++ lib.optional withVPX libvpx
|
||||||
|
;
|
||||||
|
|
||||||
cmakeFlags = "-DPTHREAD_INCLUDE_DIR=${stdenv.glibc}/include" +
|
enableParallelBuilding = false;
|
||||||
" -DGETTEXT_INCLUDE_DIR=${gettext}/include" +
|
|
||||||
" -DSDL_INCLUDE_DIR=${SDL}/include/SDL";
|
|
||||||
|
|
||||||
NIX_LDFLAGS="-lpthread";
|
outputs = [ "out" "cli" "gtk" "qt4" ];
|
||||||
|
|
||||||
postInstall = ''
|
patches = [ ./dynamic_install_dir.patch ];
|
||||||
cd $NIX_BUILD_TOP/$sourceRoot
|
|
||||||
mkdir build_plugins
|
|
||||||
cd build_plugins
|
|
||||||
cmake $cmakeFlags -DAVIDEMUX_INSTALL_PREFIX=$out \
|
|
||||||
-DAVIDEMUX_SOURCE_DIR=$NIX_BUILD_TOP/$sourceRoot \
|
|
||||||
-DAVIDEMUX_CORECONFIG_DIR=$NIX_BUILD_TOP/$sourceRoot/build/config ../plugins
|
|
||||||
|
|
||||||
make
|
buildCommand = ''
|
||||||
make install
|
unpackPhase
|
||||||
|
cd "$sourceRoot"
|
||||||
|
patchPhase
|
||||||
|
|
||||||
|
export cmakeFlags="$cmakeFlags -DAVIDEMUX_SOURCE_DIR=$(pwd)"
|
||||||
|
|
||||||
|
function buildOutput() {
|
||||||
|
( plugin_ui="$1"
|
||||||
|
output_dir="$2"
|
||||||
|
shift 2
|
||||||
|
export cmakeFlags="$cmakeFlags -DPLUGIN_UI=$plugin_ui -DCMAKE_INSTALL_PREFIX=$output_dir"
|
||||||
|
for i in "$@" avidemux_plugins; do
|
||||||
|
( cd "$i"
|
||||||
|
cmakeConfigurePhase
|
||||||
|
buildPhase
|
||||||
|
installPhase
|
||||||
|
)
|
||||||
|
done
|
||||||
|
rm -rf avidemux_plugins/build
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildUi() {
|
||||||
|
plugin_ui="$1"
|
||||||
|
output_dir="$2"
|
||||||
|
shift 2
|
||||||
|
|
||||||
|
# Hack to split builds properly
|
||||||
|
mkdir -p $output_dir
|
||||||
|
lndir $out $output_dir
|
||||||
|
buildOutput $plugin_ui $output_dir "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
function fixupUi() {
|
||||||
|
output_dir="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
find $output_dir -lname $out\* -delete
|
||||||
|
find $output_dir -type f | while read -r f; do
|
||||||
|
rpath="$(patchelf --print-rpath $f 2>/dev/null)" || continue
|
||||||
|
new_rpath=""
|
||||||
|
IFS=':' read -ra old_rpath <<< "$rpath"
|
||||||
|
for p in "''${old_rpath[@]}"; do
|
||||||
|
new_rpath="$new_rpath:$p"
|
||||||
|
if [[ $p = $output_dir* ]]; then
|
||||||
|
new_rpath="$new_rpath:$out/''${p#$output_dir}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
patchelf --set-rpath "$new_rpath" $f
|
||||||
|
patchelf --shrink-rpath $f
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
buildOutput COMMON $out avidemux_core
|
||||||
|
buildOutput SETTINGS $out
|
||||||
|
buildUi CLI $cli avidemux/cli
|
||||||
|
buildUi GTK $gtk avidemux/gtk
|
||||||
|
buildUi QT4 $qt4 avidemux/qt4
|
||||||
|
|
||||||
|
fixupPhase
|
||||||
|
|
||||||
|
fixupUi $cli
|
||||||
|
fixupUi $gtk
|
||||||
|
fixupUi $qt4
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://fixounet.free.fr/avidemux/;
|
homepage = http://fixounet.free.fr/avidemux/;
|
||||||
description = "Free video editor designed for simple video editing tasks";
|
description = "Free video editor designed for simple video editing tasks";
|
||||||
maintainers = with stdenv.lib.maintainers; [viric];
|
maintainers = with stdenv.lib.maintainers; [ viric abbradar ];
|
||||||
platforms = with stdenv.lib.platforms; linux;
|
platforms = with stdenv.lib.platforms; linux;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
12
pkgs/applications/video/avidemux/dynamic_install_dir.patch
Normal file
12
pkgs/applications/video/avidemux/dynamic_install_dir.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ru3 avidemux_2.6.12.old/avidemux_core/ADM_core/src/ADM_fileio.cpp avidemux_2.6.12/avidemux_core/ADM_core/src/ADM_fileio.cpp
|
||||||
|
--- avidemux_2.6.12.old/avidemux_core/ADM_core/src/ADM_fileio.cpp 2016-03-25 15:26:00.368213627 +0300
|
||||||
|
+++ avidemux_2.6.12/avidemux_core/ADM_core/src/ADM_fileio.cpp 2016-03-26 02:32:56.163550537 +0300
|
||||||
|
@@ -393,7 +393,7 @@
|
||||||
|
|
||||||
|
return ADM_getRelativePath(buffer, base1, base2, base3);
|
||||||
|
#else
|
||||||
|
- return ADM_getRelativePath(ADM_INSTALL_DIR, base1, base2, base3);
|
||||||
|
+ return ADM_getRelativePath(getenv("ADM_ROOT_DIR"), base1, base2, base3);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
29
pkgs/applications/video/avidemux/wrapper.nix
Normal file
29
pkgs/applications/video/avidemux/wrapper.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ buildEnv, avidemux, makeWrapper
|
||||||
|
# GTK version is broken upstream, see https://bugzilla.redhat.com/show_bug.cgi?id=1244340
|
||||||
|
, withUi ? "qt4"
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
ui = builtins.getAttr withUi avidemux;
|
||||||
|
|
||||||
|
in buildEnv {
|
||||||
|
name = "avidemux-${withUi}-" + avidemux.version;
|
||||||
|
|
||||||
|
paths = [ avidemux ui ];
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
postBuild = ''
|
||||||
|
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
||||||
|
if [ -L $out/bin ]; then
|
||||||
|
rm $out/bin
|
||||||
|
mkdir $out/bin
|
||||||
|
for i in ${ui}/bin/*; do
|
||||||
|
ln -s $i $out/bin
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
for i in $out/bin/*; do
|
||||||
|
wrapProgram $i --set ADM_ROOT_DIR $out
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,9 +1,8 @@
|
||||||
{ runCommand, lib, writeText, writeScriptBin, stdenv, bash, ruby } :
|
{ runCommand, lib, writeText, writeScriptBin, stdenv, ruby } :
|
||||||
{ env, runScript ? "${bash}/bin/bash", extraBindMounts ? [], extraInstallCommands ? "", importMeta ? {} } :
|
{ env, runScript ? "bash", extraBindMounts ? [], extraInstallCommands ? "", importMeta ? {} } :
|
||||||
|
|
||||||
let
|
let
|
||||||
name = env.pname;
|
name = env.pname;
|
||||||
bash' = "${bash}/bin/bash";
|
|
||||||
|
|
||||||
# Sandboxing script
|
# Sandboxing script
|
||||||
chroot-user = writeScriptBin "chroot-user" ''
|
chroot-user = writeScriptBin "chroot-user" ''
|
||||||
|
@ -33,7 +32,7 @@ in runCommand name {
|
||||||
runCommand "${name}-shell-env" {
|
runCommand "${name}-shell-env" {
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:$CHROOTENV_EXTRA_BINDS"
|
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:$CHROOTENV_EXTRA_BINDS"
|
||||||
exec ${chroot-user}/bin/chroot-user ${env} ${bash'} -l ${init bash'} "$(pwd)"
|
exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init "bash"} "$(pwd)"
|
||||||
'';
|
'';
|
||||||
} ''
|
} ''
|
||||||
echo >&2 ""
|
echo >&2 ""
|
||||||
|
@ -46,7 +45,7 @@ in runCommand name {
|
||||||
cat <<EOF >$out/bin/${name}
|
cat <<EOF >$out/bin/${name}
|
||||||
#! ${stdenv.shell}
|
#! ${stdenv.shell}
|
||||||
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:\$CHROOTENV_EXTRA_BINDS"
|
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:\$CHROOTENV_EXTRA_BINDS"
|
||||||
exec ${chroot-user}/bin/chroot-user ${env} ${bash'} ${init runScript} "\$(pwd)" "\$@"
|
exec ${chroot-user}/bin/chroot-user ${env} bash ${init runScript} "\$(pwd)" "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod +x $out/bin/${name}
|
chmod +x $out/bin/${name}
|
||||||
${extraInstallCommands}
|
${extraInstallCommands}
|
||||||
|
|
|
@ -1,11 +1,26 @@
|
||||||
{ stdenv, fetch-bower, git }: name: version: target: outputHash: stdenv.mkDerivation {
|
{ stdenv, lib, bower2nix }:
|
||||||
name = "${name}-${version}";
|
let
|
||||||
buildCommand = ''
|
bowerVersion = version:
|
||||||
out=$PWD/out fetch-bower "${name}" "${version}" "${target}"
|
let
|
||||||
cp -R out $out
|
components = lib.splitString "#" version;
|
||||||
'';
|
hash = lib.last components;
|
||||||
outputHashMode = "recursive";
|
ver = if builtins.length components == 1 then version else hash;
|
||||||
outputHashAlgo = "sha256";
|
in ver;
|
||||||
inherit outputHash;
|
|
||||||
buildInputs = [git fetch-bower];
|
fetchbower = name: version: target: outputHash: stdenv.mkDerivation {
|
||||||
}
|
name = "${name}-${bowerVersion version}";
|
||||||
|
buildCommand = ''
|
||||||
|
fetch-bower --quiet --out=$PWD/out "${name}" "${target}" "${version}"
|
||||||
|
# In some cases, the result of fetchBower is different depending
|
||||||
|
# on the output directory (e.g. if the bower package contains
|
||||||
|
# symlinks). So use a local output directory before copying to
|
||||||
|
# $out.
|
||||||
|
cp -R out $out
|
||||||
|
'';
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHashAlgo = "sha256";
|
||||||
|
inherit outputHash;
|
||||||
|
buildInputs = [ bower2nix ];
|
||||||
|
};
|
||||||
|
|
||||||
|
in fetchbower
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
{ stdenv, fetchurl, fetchFromGitHub, optipng, cairo, unzip, fontforge, pythonPackages, pkgconfig }:
|
{ stdenv, fetchurl, fetchFromGitHub, optipng, cairo, unzip, pythonPackages, pkgconfig, pngquant, which, imagemagick }:
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
# 18MB
|
# 18MB
|
||||||
noto-fonts = let version = "git-2015-09-08"; in stdenv.mkDerivation {
|
noto-fonts = let version = "git-2016-03-29"; in stdenv.mkDerivation {
|
||||||
name = "noto-fonts-${version}";
|
name = "noto-fonts-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "googlei18n";
|
owner = "googlei18n";
|
||||||
repo = "noto-fonts";
|
repo = "noto-fonts";
|
||||||
rev = "9d677e7e47a13f6e88052833277783fe4f27671f";
|
rev = "e8b0af48b15d64bd490edab4418b5e396cf29644";
|
||||||
sha256 = "1dw1142znlk19a4mzhfi9pg3jzmz8pl1ivix7sd2grg70vxscxqc";
|
sha256 = "02yv12fbb4n1gp9g9m0qxnj6adpg9hfsr9377h2d4xsf6sxcgy6f";
|
||||||
};
|
};
|
||||||
phases = "unpackPhase installPhase";
|
|
||||||
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/share/fonts/noto
|
mkdir -p $out/share/fonts/noto
|
||||||
cp hinted/*.ttf $out/share/fonts/noto
|
cp hinted/*.ttf $out/share/fonts/noto
|
||||||
|
@ -19,6 +23,9 @@ rec {
|
||||||
cp -n unhinted/*.ttf $out/share/fonts/noto
|
cp -n unhinted/*.ttf $out/share/fonts/noto
|
||||||
cp -n alpha/*.ttf $out/share/fonts/noto
|
cp -n alpha/*.ttf $out/share/fonts/noto
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit version;
|
inherit version;
|
||||||
description = "Beautiful and free fonts for many languages";
|
description = "Beautiful and free fonts for many languages";
|
||||||
|
@ -51,9 +58,9 @@ rec {
|
||||||
sha256 = "1vg3si6slvk8cklq6s5c76s84kqjc4wvwzr4ysljzjpgzra2rfn6";
|
sha256 = "1vg3si6slvk8cklq6s5c76s84kqjc4wvwzr4ysljzjpgzra2rfn6";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
|
||||||
phases = "unpackPhase installPhase";
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
@ -86,34 +93,30 @@ rec {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 12MB
|
# 12MB
|
||||||
noto-fonts-emoji = let version = "git-2015-08-17"; in stdenv.mkDerivation {
|
noto-fonts-emoji = let version = "git-2016-03-17"; in stdenv.mkDerivation {
|
||||||
name = "noto-fonts-emoji-${version}";
|
name = "noto-fonts-emoji-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "googlei18n";
|
owner = "googlei18n";
|
||||||
repo = "noto-emoji";
|
repo = "noto-emoji";
|
||||||
rev = "ffd7cfd0c84b7bf37210d0908ac94adfe3259ff2";
|
rev = "c6379827aaa9cb0baca1a08a9d44ae74ca505236";
|
||||||
sha256 = "1pa94gw2y0b6p8r81zbjzcjgi5nrx4dqrqr6mk98wj6jbi465sh2";
|
sha256 = "1zh1b617cjr5laha6lx0ys4k1c3az2zkgzjwc2nlb7dsdmfw1n0q";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with pythonPackages; [
|
buildInputs = [ cairo ];
|
||||||
optipng cairo fontforge python nototools fonttools pkgconfig
|
nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
|
||||||
];
|
++ (with pythonPackages; [ python fonttools nototools ]);
|
||||||
|
|
||||||
#FIXME: perhaps use our pngquant instead
|
postPatch = ''
|
||||||
preConfigure = ''
|
sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
|
||||||
for f in ./*.py ./third_party/pngquant/configure; do
|
patchShebangs flag_glyph_name.py
|
||||||
patchShebangs "$f"
|
|
||||||
done
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = ''
|
enableParallelBuilding = true;
|
||||||
export PYTHONPATH=$PYTHONPATH:$PWD
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/share/fonts/noto
|
mkdir -p $out/share/fonts/noto
|
||||||
cp NotoColorEmoji.ttf NotoEmoji-Regular.ttf $out/share/fonts/noto
|
cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# The trailing slash at the end is necessary!
|
# The trailing slash at the end is necessary!
|
||||||
WGET_ARGS='http://download.kde.org/stable/applications/15.12.1/ -A *.tar.xz'
|
WGET_ARGS='http://download.kde.org/stable/applications/15.12.3/ -A *.tar.xz'
|
||||||
|
|
||||||
mkdir tmp; cd tmp
|
mkdir tmp; cd tmp
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
49
pkgs/development/bower-modules/generic/default.nix
Normal file
49
pkgs/development/bower-modules/generic/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
{ buildInputs ? [], generated, ... } @ attrs:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Fetches the bower packages. `generated` should be the result of a
|
||||||
|
# `bower2nix` command.
|
||||||
|
bowerPackages = import generated {
|
||||||
|
inherit (pkgs) buildEnv fetchbower;
|
||||||
|
};
|
||||||
|
|
||||||
|
in pkgs.stdenv.mkDerivation (
|
||||||
|
attrs
|
||||||
|
//
|
||||||
|
{
|
||||||
|
name = "bower_components-" + attrs.name;
|
||||||
|
|
||||||
|
inherit bowerPackages;
|
||||||
|
|
||||||
|
builder = builtins.toFile "builder.sh" ''
|
||||||
|
source $stdenv/setup
|
||||||
|
|
||||||
|
# The project's bower.json is required
|
||||||
|
cp $src/bower.json .
|
||||||
|
|
||||||
|
# Dereference symlinks -- bower doesn't like them
|
||||||
|
cp --recursive --reflink=auto \
|
||||||
|
--dereference --no-preserve=mode \
|
||||||
|
$bowerPackages bc
|
||||||
|
|
||||||
|
# Bower install in offline mode -- links together the fetched
|
||||||
|
# bower packages.
|
||||||
|
HOME=$PWD bower \
|
||||||
|
--config.storage.packages=bc/packages \
|
||||||
|
--config.storage.registry=bc/registry \
|
||||||
|
--offline install
|
||||||
|
|
||||||
|
# Sets up a single bower_components directory within
|
||||||
|
# the output derivation.
|
||||||
|
mkdir -p $out
|
||||||
|
mv bower_components $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = buildInputs ++ [
|
||||||
|
pkgs.git
|
||||||
|
pkgs.nodePackages.bower
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)
|
|
@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres simons ];
|
maintainers = with stdenv.lib.maintainers; [ marcweber andres simons ];
|
||||||
platforms = ["x86_64-linux" "i686-linux"]; # Darwin is unsupported.
|
platforms = ["x86_64-linux" "i686-linux"]; # Darwin is unsupported.
|
||||||
inherit (ghc.meta) license;
|
inherit (ghc.meta) license;
|
||||||
|
broken = true; # broken by gcc 5.x: http://hydra.nixos.org/build/33627548
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
|
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.0.1";
|
version = "1.0.1-2";
|
||||||
name = "kotlin-${version}";
|
name = "kotlin-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/JetBrains/kotlin/releases/download/${version}/kotlin-compiler-${version}.zip";
|
url = "https://github.com/JetBrains/kotlin/releases/download/${version}/kotlin-compiler-${version}.zip";
|
||||||
sha256 = "1hwdisjgy4q5y25gqnxk8ycd04j7hxb7xd0y6ixi12qfj7259a41";
|
sha256 = "0kdfvkb7qh3icchxswai24ifsiw25y3mq1xxcsp8nd3jn9krnj87";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ jre ] ;
|
propagatedBuildInputs = [ jre ] ;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import ./jdk-linux-base.nix {
|
import ./jdk-linux-base.nix {
|
||||||
productVersion = "8";
|
productVersion = "8";
|
||||||
patchVersion = "73";
|
patchVersion = "77";
|
||||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||||
sha256_i686 = "1bi3yj2ds9w13p2lzvmxffk5gax8syi3bw52w8pam1jr3fmzgwgl";
|
sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
|
||||||
sha256_x86_64 = "1rp3nbnhkncyr48m0nn3pf5fr4bp3lzm0ki4gca7mn7rzag19a26";
|
sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
|
||||||
jceName = "jce_policy-8.zip";
|
jceName = "jce_policy-8.zip";
|
||||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import ./jdk-linux-base.nix {
|
import ./jdk-linux-base.nix {
|
||||||
productVersion = "8";
|
productVersion = "8";
|
||||||
patchVersion = "74";
|
patchVersion = "77";
|
||||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||||
sha256_i686 = "1vc3g89fbrmznb10bhh5gs143hcjg4wsy4j4hwnr1djfj83y8188";
|
sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
|
||||||
sha256_x86_64 = "1pfx7il1h42w3kigscdvm9vfy616lmsp1d2cqvplim3nyxwmvz8b";
|
sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
|
||||||
jceName = "jce_policy-8.zip";
|
jceName = "jce_policy-8.zip";
|
||||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||||
|
|
|
@ -166,7 +166,7 @@ with stdenv.lib; stdenv.mkDerivation {
|
||||||
buildInputs = [ ncurses ]
|
buildInputs = [ ncurses ]
|
||||||
++ optional (!forceBundledLLVM) llvmShared;
|
++ optional (!forceBundledLLVM) llvmShared;
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = false; # missing files during linking, occasionally
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
|
|
@ -960,4 +960,9 @@ self: super: {
|
||||||
# We get lots of strange compiler errors during the test suite run.
|
# We get lots of strange compiler errors during the test suite run.
|
||||||
jsaddle = dontCheck super.jsaddle;
|
jsaddle = dontCheck super.jsaddle;
|
||||||
|
|
||||||
|
# https://github.com/gwern/mueval/issues/14
|
||||||
|
mueval = super.mueval.override {
|
||||||
|
hint = self.hint_0_4_3;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, unzip, cmake, boost }:
|
{ stdenv, fetchurl, unzip, cmake, boost, zlib }:
|
||||||
|
|
||||||
let
|
let
|
||||||
major = "3";
|
major = "3";
|
||||||
|
@ -14,14 +14,14 @@ stdenv.mkDerivation {
|
||||||
sha256 = "17nyzsqzqpafamhi779f1bkh5mfgj8rpas034x3v9a0hdy3jg66s";
|
sha256 = "17nyzsqzqpafamhi779f1bkh5mfgj8rpas034x3v9a0hdy3jg66s";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ unzip cmake boost ];
|
buildInputs = [ unzip cmake boost zlib ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A library to import various 3D model formats";
|
description = "A library to import various 3D model formats";
|
||||||
homepage = http://assimp.sourceforge.net/;
|
homepage = http://assimp.sourceforge.net/;
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ ehmry ];
|
maintainers = with maintainers; [ ehmry ];
|
||||||
platfroms = platforms.linux;
|
platfroms = [ platforms.linux platforms.darwin ];
|
||||||
inherit version;
|
inherit version;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, xcbSupport ? true # no longer experimental since 1.12
|
, xcbSupport ? true # no longer experimental since 1.12
|
||||||
, glSupport ? true, mesa_noglu ? null # mesa is no longer a big dependency
|
, glSupport ? true, mesa_noglu ? null # mesa is no longer a big dependency
|
||||||
, pdfSupport ? true
|
, pdfSupport ? true
|
||||||
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert glSupport -> mesa_noglu != null;
|
assert glSupport -> mesa_noglu != null;
|
||||||
|
@ -11,14 +12,21 @@ assert glSupport -> mesa_noglu != null;
|
||||||
with { inherit (stdenv.lib) optional optionals; };
|
with { inherit (stdenv.lib) optional optionals; };
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cairo-1.14.4";
|
name = "cairo-1.14.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://cairographics.org/releases/${name}.tar.xz";
|
url = "http://cairographics.org/releases/${name}.tar.xz";
|
||||||
sha256 = "05p75r914d809711yg9rapgmmi4hymzbarhd3w0yrfadhiy9rv7n";
|
sha256 = "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty;
|
nativeBuildInputs = [
|
||||||
|
pkgconfig
|
||||||
|
libiconv
|
||||||
|
] ++ libintlOrEmpty ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||||
|
CoreGraphics
|
||||||
|
ApplicationServices
|
||||||
|
Carbon
|
||||||
|
]);
|
||||||
|
|
||||||
propagatedBuildInputs =
|
propagatedBuildInputs =
|
||||||
with xorg; [ xorg.xlibsWrapper fontconfig expat freetype pixman zlib libpng ]
|
with xorg; [ xorg.xlibsWrapper fontconfig expat freetype pixman zlib libpng ]
|
||||||
|
@ -28,11 +36,17 @@ stdenv.mkDerivation rec {
|
||||||
++ optionals glSupport [ mesa_noglu ]
|
++ optionals glSupport [ mesa_noglu ]
|
||||||
;
|
;
|
||||||
|
|
||||||
configureFlags = [ "--enable-tee" ]
|
configureFlags = if stdenv.isDarwin then [
|
||||||
|
"--disable-dependency-tracking"
|
||||||
|
"--enable-quartz"
|
||||||
|
"--enable-quartz-font"
|
||||||
|
"--enable-quartz-image"
|
||||||
|
"--enable-ft"
|
||||||
|
] else ([ "--enable-tee" ]
|
||||||
++ optional xcbSupport "--enable-xcb"
|
++ optional xcbSupport "--enable-xcb"
|
||||||
++ optional glSupport "--enable-gl"
|
++ optional glSupport "--enable-gl"
|
||||||
++ optional pdfSupport "--enable-pdf"
|
++ optional pdfSupport "--enable-pdf"
|
||||||
;
|
);
|
||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
# On FreeBSD, `-ldl' doesn't exist.
|
# On FreeBSD, `-ldl' doesn't exist.
|
||||||
|
|
33
pkgs/development/libraries/cl/default.nix
Normal file
33
pkgs/development/libraries/cl/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{stdenv, fetchurl, SDL, mesa, rebar, erlang, opencl-headers, ocl-icd }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
version = "1.2.1";
|
||||||
|
name = "cl-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/tonyrog/cl/archive/${name}.tar.gz";
|
||||||
|
sha256 = "03jv280h9gqqqkm0mmkjr53srd2mzhvyy1biss77wpjrzq2z12c8";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ erlang rebar opencl-headers ocl-icd ];
|
||||||
|
#propagatedBuildInputs = [ SDL mesa ];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
sed 's/git/"${version}"/' -i src/cl.app.src
|
||||||
|
rebar compile
|
||||||
|
'';
|
||||||
|
|
||||||
|
# 'cp' line taken from Arch recipe
|
||||||
|
# https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/erlang-sdl
|
||||||
|
installPhase = ''
|
||||||
|
DIR=$out/lib/erlang/lib/${name}
|
||||||
|
mkdir -p $DIR
|
||||||
|
cp -ruv c_src doc ebin include priv src $DIR
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://github.com/tonyrog/cl;
|
||||||
|
description = "OpenCL binding for Erlang";
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,18 +1,26 @@
|
||||||
{stdenv, fetchurl, SDL, mesa, erlang}:
|
{stdenv, fetchurl, SDL, mesa, rebar, erlang}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "esdl-1.0.1";
|
name = "esdl-1.3.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/esdl/${name}.src.tar.gz";
|
url = "mirror://sourceforge/esdl/${name}.src.tgz";
|
||||||
sha256 = "0zc7cmr44v10sb593dismdm5qc2v7sm3z9yh22g4r9g6asbg5z0n";
|
sha256 = "0f5ad519600qarsa2anmnaxh6b7djzx1dnwxzi4l36pxsq896y01";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ erlang ];
|
buildInputs = [ erlang rebar ];
|
||||||
propagatedBuildInputs = [ SDL mesa ];
|
propagatedBuildInputs = [ SDL mesa ];
|
||||||
|
|
||||||
preBuild = ''
|
buildPhase = ''
|
||||||
export makeFlags="INSTALLDIR=$out/lib/erlang/addons/${name}";
|
rebar compile
|
||||||
|
'';
|
||||||
|
|
||||||
|
# 'cp' line taken from Arch recipe
|
||||||
|
# https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/erlang-sdl
|
||||||
|
installPhase = ''
|
||||||
|
DIR=$out/lib/erlang/lib/${name}
|
||||||
|
mkdir -p $DIR
|
||||||
|
cp -ruv c_src doc ebin include priv src $DIR
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
diff -ur gobject-introspection-1.46.0-orig/giscanner/ccompiler.py gobject-introspection-1.46.0/giscanner/ccompiler.py
|
||||||
|
--- gobject-introspection-1.46.0-orig/giscanner/ccompiler.py 2016-02-01 12:25:41.000000000 -0500
|
||||||
|
+++ gobject-introspection-1.46.0/giscanner/ccompiler.py 2016-02-01 15:50:36.000000000 -0500
|
||||||
|
@@ -128,11 +128,7 @@
|
||||||
|
self.compiler.add_runtime_library_dir('.')
|
||||||
|
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=625195
|
||||||
|
- args.append('-Wl,-rpath=.')
|
||||||
|
-
|
||||||
|
- # Ensure libraries are always linked as we are going to use ldd to work
|
||||||
|
- # out their names later
|
||||||
|
- args.append('-Wl,--no-as-needed')
|
||||||
|
+ args.append('-Wl,-rpath,.')
|
||||||
|
|
||||||
|
for library in libraries:
|
||||||
|
self.compiler.add_library(library)
|
||||||
|
@@ -140,7 +136,7 @@
|
||||||
|
for library_path in libpaths:
|
||||||
|
args.append('-L' + library_path)
|
||||||
|
if os.path.isabs(library_path):
|
||||||
|
- args.append('-Wl,-rpath=' + library_path)
|
||||||
|
+ args.append('-Wl,-rpath,' + library_path)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# libtool case: assemble linker command arguments, like we did before
|
||||||
|
Only in gobject-introspection-1.46.0/giscanner: ccompiler.py~
|
|
@ -10,6 +10,7 @@ let
|
||||||
ver_maj = "1.46";
|
ver_maj = "1.46";
|
||||||
ver_min = "0";
|
ver_min = "0";
|
||||||
in
|
in
|
||||||
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gobject-introspection-${ver_maj}.${ver_min}";
|
name = "gobject-introspection-${ver_maj}.${ver_min}";
|
||||||
|
|
||||||
|
@ -38,6 +39,9 @@ stdenv.mkDerivation rec {
|
||||||
patches = stdenv.lib.singleton (substituteAll {
|
patches = stdenv.lib.singleton (substituteAll {
|
||||||
src = ./absolute_shlib_path.patch;
|
src = ./absolute_shlib_path.patch;
|
||||||
inherit nixStoreDir;
|
inherit nixStoreDir;
|
||||||
|
}) ++ optional stdenv.isDarwin (substituteAll {
|
||||||
|
src = ./darwin-fixups.patch;
|
||||||
|
inherit nixStoreDir;
|
||||||
});
|
});
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
diff -ur gobject-introspection-1.46.0-orig/giscanner/ccompiler.py gobject-introspection-1.46.0/giscanner/ccompiler.py
|
||||||
|
--- gobject-introspection-1.46.0-orig/giscanner/ccompiler.py 2016-02-01 12:25:41.000000000 -0500
|
||||||
|
+++ gobject-introspection-1.46.0/giscanner/ccompiler.py 2016-02-01 12:26:52.000000000 -0500
|
||||||
|
@@ -128,7 +128,7 @@
|
||||||
|
self.compiler.add_runtime_library_dir('.')
|
||||||
|
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=625195
|
||||||
|
- args.append('-Wl,-rpath=.')
|
||||||
|
+ args.append('-Wl,-rpath,.')
|
||||||
|
|
||||||
|
# Ensure libraries are always linked as we are going to use ldd to work
|
||||||
|
# out their names later
|
||||||
|
@@ -140,7 +140,7 @@
|
||||||
|
for library_path in libpaths:
|
||||||
|
args.append('-L' + library_path)
|
||||||
|
if os.path.isabs(library_path):
|
||||||
|
- args.append('-Wl,-rpath=' + library_path)
|
||||||
|
+ args.append('-Wl,-rpath,' + library_path)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# libtool case: assemble linker command arguments, like we did before
|
|
@ -3,11 +3,14 @@
|
||||||
, xlibs, x11, wayland, libxkbcommon, epoxy
|
, xlibs, x11, wayland, libxkbcommon, epoxy
|
||||||
, xineramaSupport ? stdenv.isLinux
|
, xineramaSupport ? stdenv.isLinux
|
||||||
, cupsSupport ? stdenv.isLinux, cups ? null
|
, cupsSupport ? stdenv.isLinux, cups ? null
|
||||||
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert xineramaSupport -> xlibs.libXinerama != null;
|
assert xineramaSupport -> xlibs.libXinerama != null;
|
||||||
assert cupsSupport -> cups != null;
|
assert cupsSupport -> cups != null;
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "3.18";
|
ver_maj = "3.18";
|
||||||
ver_min = "5";
|
ver_min = "5";
|
||||||
|
@ -27,6 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
propagatedBuildInputs = with xlibs; with stdenv.lib;
|
propagatedBuildInputs = with xlibs; with stdenv.lib;
|
||||||
[ expat glib cairo pango gdk_pixbuf atk at_spi2_atk libXrandr libXrender libXcomposite libXi libXcursor ]
|
[ expat glib cairo pango gdk_pixbuf atk at_spi2_atk libXrandr libXrender libXcomposite libXi libXcursor ]
|
||||||
++ optionals stdenv.isLinux [ wayland ]
|
++ optionals stdenv.isLinux [ wayland ]
|
||||||
|
++ optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa ])
|
||||||
++ optional xineramaSupport libXinerama
|
++ optional xineramaSupport libXinerama
|
||||||
++ optional cupsSupport cups;
|
++ optional cupsSupport cups;
|
||||||
|
|
||||||
|
@ -37,6 +41,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
configureFlags = optional stdenv.isDarwin [
|
||||||
|
"--disable-debug"
|
||||||
|
"--disable-dependency-tracking"
|
||||||
|
"--disable-glibtest"
|
||||||
|
"--with-gdktarget=quartz"
|
||||||
|
"--enable-quartz-backend"
|
||||||
|
];
|
||||||
|
|
||||||
postInstall = "rm -rf $out/share/gtk-doc";
|
postInstall = "rm -rf $out/share/gtk-doc";
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|
23
pkgs/development/libraries/ignition-math/default.nix
Normal file
23
pkgs/development/libraries/ignition-math/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ stdenv, fetchurl, cmake }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "2.3.0";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "ign-math2-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://gazebosim.org/distributions/ign-math/releases/ignition-math2-${version}.tar.bz2";
|
||||||
|
sha256 = "1a2jgq6allcxg62y0r61iv4hgxkfr1whpsxy75hg7k85s7da8dpl";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ cmake ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://ignitionrobotics.org/libraries/math;
|
||||||
|
description = "Math library by Ingition Robotics, created for the Gazebo project";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ pxc ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
9
pkgs/development/libraries/ignition-transport/0.9.0.nix
Normal file
9
pkgs/development/libraries/ignition-transport/0.9.0.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ stdenv, fetchurl, callPackage, ... } @ args :
|
||||||
|
|
||||||
|
callPackage ./generic.nix (args // rec {
|
||||||
|
version = "0.9.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
|
||||||
|
sha256 = "15a8lkxri8q2gc7h0pj1dg2kivhy46v8d3mlxpjy90l77788bw1z";
|
||||||
|
};
|
||||||
|
})
|
9
pkgs/development/libraries/ignition-transport/1.0.1.nix
Normal file
9
pkgs/development/libraries/ignition-transport/1.0.1.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ stdenv, fetchurl, callPackage, ... } @ args :
|
||||||
|
|
||||||
|
callPackage ./generic.nix (args // rec {
|
||||||
|
version = "1.0.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
|
||||||
|
sha256 = "08qyd70vlymms1g4smblags9f057zsn62xxrx29rhd4wy8prnjsq";
|
||||||
|
};
|
||||||
|
})
|
25
pkgs/development/libraries/ignition-transport/generic.nix
Normal file
25
pkgs/development/libraries/ignition-transport/generic.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ stdenv, fetchurl, cmake, pkgconfig, utillinux,
|
||||||
|
protobuf, zeromq, cppzmq,
|
||||||
|
version, src # parametrize version and src so we can easily have pkgs
|
||||||
|
# for different versions
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "ign-transport-${version}";
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
buildInputs = [ cmake protobuf zeromq pkgconfig
|
||||||
|
utillinux # we need utillinux/e2fsprogs uuid/uuid.h
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ cppzmq ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://ignitionrobotics.org/libraries/math;
|
||||||
|
description = "Math library by Ingition Robotics, created for the Gazebo project";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ pxc ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libressl-${version}";
|
name = "libressl-${version}";
|
||||||
version = "2.3.2";
|
version = "2.3.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://openbsd/LibreSSL/${name}.tar.gz";
|
url = "mirror://openbsd/LibreSSL/${name}.tar.gz";
|
||||||
sha256 = "0sm9cjjqvj581sfd4sh0i467sh8p89nq9b8ck2qn3war92p5zx40";
|
sha256 = "1a8anm8nsfyxds03csk738m2cmzjbsb867my1rz5ij3w31k32wvn";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
|
@ -22,7 +22,7 @@ else
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "11.1.1";
|
version = "11.1.2";
|
||||||
# this is the default search path for DRI drivers
|
# this is the default search path for DRI drivers
|
||||||
driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
|
driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
|
||||||
in
|
in
|
||||||
|
@ -38,7 +38,7 @@ stdenv.mkDerivation {
|
||||||
+ head (splitString "." version) + ''.x/${version}/mesa-${version}.tar.xz'')
|
+ head (splitString "." version) + ''.x/${version}/mesa-${version}.tar.xz'')
|
||||||
"https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
|
"https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
|
||||||
];
|
];
|
||||||
sha256 = "087xlxl8dzmhzjilpsdiy19dn106spq120c9ndgnn4qlqm7hgnv4";
|
sha256 = "8f72aead896b340ba0f7a4a474bfaf71681f5d675592aec1cb7ba698e319148b";
|
||||||
};
|
};
|
||||||
|
|
||||||
prePatch = "patchShebangs .";
|
prePatch = "patchShebangs .";
|
||||||
|
|
18
pkgs/development/libraries/ocl-icd/default.nix
Normal file
18
pkgs/development/libraries/ocl-icd/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{stdenv, fetchurl, ruby }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "ocl-icd-2.2.9";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://forge.imag.fr/frs/download.php/716/${name}.tar.gz";
|
||||||
|
sha256 = "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ ruby ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "OpenCL ICD Loader";
|
||||||
|
homepage = https://forge.imag.fr/projects/ocl-icd/;
|
||||||
|
license = licenses.bsd2;
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,11 +8,11 @@
|
||||||
, nvidia_cg_toolkit }:
|
, nvidia_cg_toolkit }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "ogre-1.9.0";
|
name = "ogre-1.9-hg-20160322";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://bitbucket.org/sinbad/ogre/get/v1-9-0.tar.gz";
|
url = "https://bitbucket.org/sinbad/ogre/get/v1-9.tar.gz";
|
||||||
sha256 = "0p8gyn293qn3iyiy1smfmjd9zpnjb8h2zgvff8778fwh0ylbmlpa";
|
sha256 = "0w3argjy1biaxwa3c80zxxgll67wjp8czd83p87awlcvwzdk5mz9";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [ "-DOGRE_INSTALL_SAMPLES=yes" ]
|
cmakeFlags = [ "-DOGRE_INSTALL_SAMPLES=yes" ]
|
||||||
|
|
23
pkgs/development/libraries/opencl-headers/default.nix
Normal file
23
pkgs/development/libraries/opencl-headers/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ stdenv, fetchFromGitHub, cmake }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "opencl-headers-2.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "KhronosGroup";
|
||||||
|
repo = "OpenCL-Headers";
|
||||||
|
rev = "c1770dcc6cf1daadec1905e7393f3691c1dde200";
|
||||||
|
sha256 = "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/include/CL
|
||||||
|
cp * $out/include/CL
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Khronos OpenCL headers";
|
||||||
|
homepage = https://www.khronos.org/registry/cl/;
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,6 +2,8 @@
|
||||||
, fontconfig, freetype, libintlOrEmpty, gobjectIntrospection
|
, fontconfig, freetype, libintlOrEmpty, gobjectIntrospection
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "1.38";
|
ver_maj = "1.38";
|
||||||
ver_min = "1";
|
ver_min = "1";
|
||||||
|
@ -29,6 +31,8 @@ stdenv.mkDerivation rec {
|
||||||
# .../bin/sh: line 5: 14823 Abort trap: 6 srcdir=. PANGO_RC_FILE=./pangorc ${dir}$tst
|
# .../bin/sh: line 5: 14823 Abort trap: 6 srcdir=. PANGO_RC_FILE=./pangorc ${dir}$tst
|
||||||
# FAIL: testiter
|
# FAIL: testiter
|
||||||
|
|
||||||
|
configureFlags = optional stdenv.isDarwin "--without-x";
|
||||||
|
|
||||||
postInstall = "rm -rf $out/share/gtk-doc";
|
postInstall = "rm -rf $out/share/gtk-doc";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
7
pkgs/development/libraries/sdformat/3.nix
Normal file
7
pkgs/development/libraries/sdformat/3.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ stdenv, fetchurl, callPackage, ... } @ args:
|
||||||
|
|
||||||
|
callPackage ./default.nix (args // rec {
|
||||||
|
version = "3.7.0";
|
||||||
|
srchash-sha256 = "07kn8bgvj9mwwinsp2cbmz11z7zw2lgnj61mi1gi1pjg7q9in98q";
|
||||||
|
})
|
||||||
|
|
23
pkgs/development/libraries/sdformat/default.nix
Normal file
23
pkgs/development/libraries/sdformat/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ stdenv, fetchurl, cmake, boost, ruby_1_9, ignition, tinyxml
|
||||||
|
, name ? "sdformat-${version}"
|
||||||
|
, version ? "4.0.0" # versions known to work with this expression include 3.7.0
|
||||||
|
, srchash-sha256 ? "b0f94bb40b0d83e35ff250a7916fdfd6df5cdc1e60c47bc53dd2da5e2378163e"
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
ruby = ruby_1_9;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${name}.tar.bz2";
|
||||||
|
sha256 = srchash-sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit name;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
buildInputs = [
|
||||||
|
cmake boost ruby ignition.math2 tinyxml
|
||||||
|
];
|
||||||
|
}
|
11
pkgs/development/libraries/tinyxml-2/default.nix
Normal file
11
pkgs/development/libraries/tinyxml-2/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ stdenv, fetchurl, cmake }:
|
||||||
|
let version = "3.0.0";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "tinyxml-2-${version}";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/leethomason/tinyxml2/archive/${version}.tar.gz";
|
||||||
|
sha256 = "0ispg7ngkry8vhzzawbq42y8gkj53xjipkycw0rkhh487ras32hj";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
}
|
|
@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ which ];
|
nativeBuildInputs = [ which ];
|
||||||
buildInputs = [ readline python icu ];
|
buildInputs = [ readline python icu ];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
|
||||||
|
|
||||||
buildFlags = [
|
buildFlags = [
|
||||||
"LINK=g++"
|
"LINK=g++"
|
||||||
"-C out"
|
"-C out"
|
||||||
|
@ -48,6 +50,10 @@ stdenv.mkDerivation rec {
|
||||||
"BUILDTYPE=Release"
|
"BUILDTYPE=Release"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPatch = stdenv.lib.optionalString (!stdenv.cc.isClang) ''
|
||||||
|
sed -i build/standalone.gyp -e 's,-Wno-format-pedantic,,g'
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -4,9 +4,15 @@
|
||||||
, libxml2, libsoup, libsecret, libxslt, harfbuzz
|
, libxml2, libsoup, libsecret, libxslt, harfbuzz
|
||||||
, gst-plugins-base
|
, gst-plugins-base
|
||||||
, withGtk2 ? false
|
, withGtk2 ? false
|
||||||
, enableIntrospection ? true
|
, enableIntrospection ? !stdenv.isDarwin
|
||||||
|
, enableCredentialStorage ? !stdenv.isDarwin
|
||||||
|
, readline, libedit
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
assert stdenv.isDarwin -> !enableIntrospection;
|
||||||
|
assert stdenv.isDarwin -> !enableCredentialStorage;
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "webkitgtk-${version}";
|
name = "webkitgtk-${version}";
|
||||||
version = "2.4.9";
|
version = "2.4.9";
|
||||||
|
@ -29,16 +35,32 @@ stdenv.mkDerivation rec {
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
patchShebangs Tools/gtk
|
patchShebangs Tools/gtk
|
||||||
'';
|
'';
|
||||||
patches = [ ./webcore-svg-libxml-cflags.patch ];
|
patches = [
|
||||||
|
./webcore-svg-libxml-cflags.patch
|
||||||
|
] ++ optionals stdenv.isDarwin [
|
||||||
|
./impure-icucore.patch
|
||||||
|
./quartz-webcore.patch
|
||||||
|
./libc++.patch
|
||||||
|
./plugin-none.patch
|
||||||
|
];
|
||||||
|
|
||||||
configureFlags = with stdenv.lib; [
|
configureFlags = with stdenv.lib; [
|
||||||
"--disable-geolocation"
|
"--disable-geolocation"
|
||||||
(optionalString enableIntrospection "--enable-introspection")
|
(optionalString enableIntrospection "--enable-introspection")
|
||||||
] ++ stdenv.lib.optional withGtk2 [
|
] ++ optional withGtk2 [
|
||||||
"--with-gtk=2.0"
|
"--with-gtk=2.0"
|
||||||
|
] ++ optionals (withGtk2 || stdenv.isDarwin) [
|
||||||
"--disable-webkit2"
|
"--disable-webkit2"
|
||||||
|
] ++ optionals stdenv.isDarwin [
|
||||||
|
"--disable-x11-target"
|
||||||
|
"--enable-quartz-target"
|
||||||
|
"--disable-web-audio"
|
||||||
|
] ++ optionals (!enableCredentialStorage) [
|
||||||
|
"--disable-credential-storage"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-DU_NOEXCEPT=";
|
||||||
|
|
||||||
dontAddDisableDepTrack = true;
|
dontAddDisableDepTrack = true;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -47,10 +69,16 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gtk2 wayland libwebp enchant
|
gtk2 libwebp enchant
|
||||||
libxml2 libsecret libxslt
|
libxml2 libxslt
|
||||||
gst-plugins-base sqlite
|
gst-plugins-base sqlite
|
||||||
];
|
] ++ optionals enableCredentialStorage [
|
||||||
|
libsecret
|
||||||
|
] ++ (if stdenv.isDarwin then [
|
||||||
|
readline libedit
|
||||||
|
] else [
|
||||||
|
wayland
|
||||||
|
]);
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
libsoup harfbuzz/*icu in *.la*/
|
libsoup harfbuzz/*icu in *.la*/
|
||||||
|
|
10
pkgs/development/libraries/webkitgtk/adding-libintl.patch
Normal file
10
pkgs/development/libraries/webkitgtk/adding-libintl.patch
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- webkitgtk-2.10.4-orig/Source/WebKit2/CMakeLists.txt 2015-11-11 02:42:51.000000000 -0500
|
||||||
|
+++ webkitgtk-2.10.4/Source/WebKit2/CMakeLists.txt 2016-01-31 18:27:49.000000000 -0500
|
||||||
|
@@ -738,6 +738,7 @@
|
||||||
|
set(WebKit2_LIBRARIES
|
||||||
|
JavaScriptCore
|
||||||
|
WebCore
|
||||||
|
+ intl
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PluginProcess_LIBRARIES
|
|
@ -2,11 +2,13 @@
|
||||||
, pkgconfig, gettext, gobjectIntrospection, libnotify
|
, pkgconfig, gettext, gobjectIntrospection, libnotify
|
||||||
, gtk2, gtk3, wayland, libwebp, enchant
|
, gtk2, gtk3, wayland, libwebp, enchant
|
||||||
, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
|
, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
|
||||||
, enableGeoLocation ? true, geoclue2, sqlite
|
, enableGeoLocation ? false, geoclue2, sqlite
|
||||||
, gst-plugins-base
|
, enableCredentialStorage ? !stdenv.isDarwin
|
||||||
|
, gst-plugins-base, readline, libedit
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert enableGeoLocation -> geoclue2 != null;
|
assert enableGeoLocation -> geoclue2 != null;
|
||||||
|
assert stdenv.isDarwin -> !enableCredentialStorage;
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -29,16 +31,37 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "0mghsbfnmmf6nsf7cb3ah76s77aigkzf3k6kw96wgh6all6jdy6v";
|
sha256 = "0mghsbfnmmf6nsf7cb3ah76s77aigkzf3k6kw96wgh6all6jdy6v";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./finding-harfbuzz-icu.patch
|
patches = [
|
||||||
|
./finding-harfbuzz-icu.patch
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
name = "glibc-isnan.patch";
|
name = "glibc-isnan.patch";
|
||||||
url = "http://trac.webkit.org/changeset/194518/trunk/Source/JavaScriptCore"
|
url = "http://trac.webkit.org/changeset/194518/trunk/Source/JavaScriptCore"
|
||||||
+ "/runtime/Options.cpp?format=diff&new=194518";
|
+ "/runtime/Options.cpp?format=diff&new=194518";
|
||||||
sha256 = "0pzdv1zmlym751n9d310cx3yp752yzsc49cysbvgnrib4dh68nbm";
|
sha256 = "0pzdv1zmlym751n9d310cx3yp752yzsc49cysbvgnrib4dh68nbm";
|
||||||
})
|
})
|
||||||
];
|
] ++ optional stdenv.isDarwin ./adding-libintl.patch;
|
||||||
|
|
||||||
cmakeFlags = [ "-DPORT=GTK" "-DUSE_LIBHYPHEN=0" ];
|
cmakeFlags = [
|
||||||
|
"-DPORT=GTK"
|
||||||
|
"-DUSE_LIBHYPHEN=OFF"
|
||||||
|
] ++ optionals (!enableCredentialStorage) [
|
||||||
|
"-DENABLE_CREDENTIAL_STORAGE=OFF"
|
||||||
|
] ++ optionals (!enableGeoLocation) [
|
||||||
|
"-DENABLE_GEOLOCATION=OFF"
|
||||||
|
] ++ optionals stdenv.isDarwin [
|
||||||
|
"-DENABLE_WEBKIT=ON"
|
||||||
|
"-DENABLE_X11_TARGET=OFF"
|
||||||
|
"-DENABLE_QUARTZ_TARGET=ON"
|
||||||
|
"-DENABLE_TOOLS=ON"
|
||||||
|
"-DENABLE_MINIBROWSER=ON"
|
||||||
|
"-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
|
||||||
|
"-DENABLE_VIDEO=OFF"
|
||||||
|
"-DENABLE_WEB_AUDIO=OFF"
|
||||||
|
"-DENABLE_OPENGL=OFF"
|
||||||
|
"-DENABLE_INTROSPECTION=OFF"
|
||||||
|
"-DUSE_LIBNOTIFY=OFF"
|
||||||
|
"-DCMAKE_SHARED_LINKER_FLAGS=-L/path/to/nonexistent/folder"
|
||||||
|
];
|
||||||
|
|
||||||
# XXX: WebKit2 missing include path for gst-plugins-base.
|
# XXX: WebKit2 missing include path for gst-plugins-base.
|
||||||
# Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
|
# Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
|
||||||
|
@ -50,10 +73,16 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gtk2 wayland libwebp enchant libnotify
|
gtk2 libwebp enchant libnotify
|
||||||
libxml2 libsecret libxslt harfbuzz libpthreadstubs
|
libxml2 libxslt harfbuzz libpthreadstubs
|
||||||
gst-plugins-base
|
gst-plugins-base
|
||||||
] ++ optional enableGeoLocation geoclue2;
|
] ++ optionals enableCredentialStorage [
|
||||||
|
libsecret
|
||||||
|
] ++ (if stdenv.isDarwin then [
|
||||||
|
readline libedit
|
||||||
|
] else [
|
||||||
|
wayland
|
||||||
|
]) ++ optional enableGeoLocation geoclue2;
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
libsoup gtk3
|
libsoup gtk3
|
||||||
|
|
12
pkgs/development/libraries/webkitgtk/impure-icucore.patch
Normal file
12
pkgs/development/libraries/webkitgtk/impure-icucore.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ru webkitgtk-2.4.9-orig/configure webkitgtk-2.4.9/configure
|
||||||
|
--- webkitgtk-2.4.9-orig/configure 2016-02-02 13:23:22.000000000 -0500
|
||||||
|
+++ webkitgtk-2.4.9/configure 2016-02-02 13:24:13.000000000 -0500
|
||||||
|
@@ -17715,7 +17715,7 @@
|
||||||
|
case "$host" in
|
||||||
|
*-*-darwin*)
|
||||||
|
UNICODE_CFLAGS="-I$srcdir/Source/JavaScriptCore/icu -I$srcdir/Source/WebCore/icu"
|
||||||
|
- UNICODE_LIBS="-licucore"
|
||||||
|
+ UNICODE_LIBS="/usr/lib/libicucore.dylib"
|
||||||
|
;;
|
||||||
|
*-*-mingw*)
|
||||||
|
|
20
pkgs/development/libraries/webkitgtk/libc++.patch
Normal file
20
pkgs/development/libraries/webkitgtk/libc++.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- webkitgtk-2.4.9-orig/GNUmakefile.in 2016-02-02 13:23:23.000000000 -0500
|
||||||
|
+++ webkitgtk-2.4.9/GNUmakefile.in 2016-02-02 22:10:23.000000000 -0500
|
||||||
|
@@ -23321,7 +23321,7 @@
|
||||||
|
$(WINMM_LIBS) \
|
||||||
|
-lm \
|
||||||
|
-lpthread \
|
||||||
|
- -lstdc++
|
||||||
|
+ -lc++
|
||||||
|
|
||||||
|
Programs_minidom_LDFLAGS = \
|
||||||
|
-no-install
|
||||||
|
@@ -23344,7 +23344,7 @@
|
||||||
|
$(WINMM_LIBS) \
|
||||||
|
-lm \
|
||||||
|
-lpthread \
|
||||||
|
- -lstdc++
|
||||||
|
+ -lc++
|
||||||
|
|
||||||
|
Programs_LLIntOffsetsExtractor_LDFLAGS = \
|
||||||
|
-no-install
|
38
pkgs/development/libraries/webkitgtk/plugin-none.patch
Normal file
38
pkgs/development/libraries/webkitgtk/plugin-none.patch
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
--- webkitgtk-2.4.9-orig/GNUmakefile.in 2016-02-02 13:23:23.000000000 -0500
|
||||||
|
+++ webkitgtk-2.4.9/GNUmakefile.in 2016-02-08 00:27:10.000000000 -0500
|
||||||
|
@@ -4799,6 +4799,8 @@
|
||||||
|
Source/WebCore/plugins/PluginViewBase.h \
|
||||||
|
Source/WebCore/plugins/PluginView.cpp \
|
||||||
|
Source/WebCore/plugins/PluginView.h \
|
||||||
|
+ Source/WebCore/plugins/PluginViewNone.cpp \
|
||||||
|
+ Source/WebCore/plugins/PluginPackageNone.cpp \
|
||||||
|
Source/WebCore/plugins/npapi.h \
|
||||||
|
Source/WebCore/plugins/npfunctions.h \
|
||||||
|
Source/WebCore/plugins/npruntime.h \
|
||||||
|
@@ -6375,6 +6377,8 @@
|
||||||
|
Source/WebCore/plugins/libWebCore_la-PluginPackage.lo \
|
||||||
|
Source/WebCore/plugins/libWebCore_la-PluginStream.lo \
|
||||||
|
Source/WebCore/plugins/libWebCore_la-PluginView.lo \
|
||||||
|
+ Source/WebCore/plugins/libWebCore_la-PluginViewNone.lo \
|
||||||
|
+ Source/WebCore/plugins/libWebCore_la-PluginPackageNone.lo \
|
||||||
|
Source/WebCore/rendering/libWebCore_la-AutoTableLayout.lo \
|
||||||
|
Source/WebCore/rendering/libWebCore_la-BidiRun.lo \
|
||||||
|
Source/WebCore/rendering/libWebCore_la-break_lines.lo \
|
||||||
|
@@ -10796,6 +10800,8 @@
|
||||||
|
Source/WebKit2/WebProcess/Plugins/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-PluginProcessConnectionManager.lo \
|
||||||
|
Source/WebKit2/WebProcess/Plugins/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-PluginProxy.lo \
|
||||||
|
Source/WebKit2/WebProcess/Plugins/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-PluginView.lo \
|
||||||
|
+ Source/WebKit2/WebProcess/Plugins/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-PluginViewNone.lo \
|
||||||
|
+ Source/WebKit2/WebProcess/Plugins/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-PluginPackageNone.lo \
|
||||||
|
Source/WebKit2/WebProcess/ResourceCache/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-WebResourceCacheManager.lo \
|
||||||
|
Source/WebKit2/WebProcess/Storage/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-StorageAreaImpl.lo \
|
||||||
|
Source/WebKit2/WebProcess/Storage/libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la-StorageAreaMap.lo \
|
||||||
|
@@ -19503,6 +19509,8 @@
|
||||||
|
Source/WebCore/plugins/PluginViewBase.h \
|
||||||
|
Source/WebCore/plugins/PluginView.cpp \
|
||||||
|
Source/WebCore/plugins/PluginView.h \
|
||||||
|
+ Source/WebCore/plugins/PluginViewNone.cpp \
|
||||||
|
+ Source/WebCore/plugins/PluginPackageNone.cpp \
|
||||||
|
Source/WebCore/plugins/npapi.h \
|
||||||
|
Source/WebCore/plugins/npfunctions.h \
|
||||||
|
Source/WebCore/plugins/npruntime.h \
|
22
pkgs/development/libraries/webkitgtk/quartz-webcore.patch
Normal file
22
pkgs/development/libraries/webkitgtk/quartz-webcore.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
--- webkitgtk-2.4.9-orig/Source/WebCore/plugins/PluginView.cpp 2016-02-02 13:23:23.000000000 -0500
|
||||||
|
+++ webkitgtk-2.4.9/Source/WebCore/plugins/PluginView.cpp 2016-02-02 18:28:07.000000000 -0500
|
||||||
|
@@ -839,7 +839,7 @@
|
||||||
|
#if defined(XP_MACOSX)
|
||||||
|
, m_contextRef(0)
|
||||||
|
#endif
|
||||||
|
-#if defined(XP_UNIX) && ENABLE(NETSCAPE_PLUGIN_API)
|
||||||
|
+#if defined(X11) && ENABLE(NETSCAPE_PLUGIN_API)
|
||||||
|
, m_hasPendingGeometryChange(true)
|
||||||
|
, m_drawable(0)
|
||||||
|
, m_visual(0)
|
||||||
|
--- webkitgtk-2.4.9-orig/Source/WebCore/plugins/PluginView.h 2016-02-02 13:23:23.000000000 -0500
|
||||||
|
+++ webkitgtk-2.4.9/Source/WebCore/plugins/PluginView.h 2016-02-02 18:26:37.000000000 -0500
|
||||||
|
@@ -378,7 +378,7 @@
|
||||||
|
void setNPWindowIfNeeded();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(XP_UNIX) && ENABLE(NETSCAPE_PLUGIN_API)
|
||||||
|
+#if PLATFORM(X11) && ENABLE(NETSCAPE_PLUGIN_API)
|
||||||
|
bool m_hasPendingGeometryChange;
|
||||||
|
Pixmap m_drawable;
|
||||||
|
Visual* m_visual;
|
|
@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
|
# otherwise libxmlsec1-gnutls.so won't find libgcrypt.so, after #909
|
||||||
|
NIX_LDFLAGS = [ "-lgcrypt" ];
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
wrapProgram "$out/bin/xmlsec1" --prefix LD_LIBRARY_PATH ":" "$out/lib"
|
wrapProgram "$out/bin/xmlsec1" --prefix LD_LIBRARY_PATH ":" "$out/lib"
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ stdenv, fetchurl, ocaml, findlib, ocurl, cryptokit, ocaml_extlib, yojson, ocamlnet, xmlm }:
|
{ stdenv, fetchurl, ocaml, findlib, ocurl, cryptokit, ocaml_extlib, yojson, ocamlnet, xmlm }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gapi-ocaml-0.2.6";
|
name = "gapi-ocaml-0.2.10";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://forge.ocamlcore.org/frs/download.php/1468/${name}.tar.gz";
|
url = "https://forge.ocamlcore.org/frs/download.php/1601/${name}.tar.gz";
|
||||||
sha256 = "1sqsir07xxk9xy723l206r7d10sp6rfid9dvi0g34vbkvshm50y2";
|
sha256 = "0kg4j7dhr7jynpy8x53bflqjf78jyl14j414l6px34xz7c9qx5fl";
|
||||||
};
|
};
|
||||||
buildInputs = [ ocaml findlib ];
|
buildInputs = [ ocaml findlib ];
|
||||||
propagatedBuildInputs = [ ocurl cryptokit ocaml_extlib yojson ocamlnet xmlm ];
|
propagatedBuildInputs = [ ocurl cryptokit ocaml_extlib yojson ocamlnet xmlm ];
|
||||||
|
|
|
@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
|
||||||
cmakeFlags =
|
cmakeFlags =
|
||||||
stdenv.lib.optional (qt4 != null) "-Dbuild_wizard=YES";
|
stdenv.lib.optional (qt4 != null) "-Dbuild_wizard=YES";
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE =
|
||||||
|
stdenv.lib.optional stdenv.isDarwin "-mmacosx-version-min=10.9";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "global-6.5.3";
|
name = "global-6.5.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/global/${name}.tar.gz";
|
url = "mirror://gnu/global/${name}.tar.gz";
|
||||||
sha256 = "00h3p10rn312rnsipfvpyr61bsfdqyfpxp506yy6ji58skqr2vrk";
|
sha256 = "19hxajpwld6qx0faz4rzyh1hfs25ycjmws6bas8pavx4hskf05mg";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ libtool makeWrapper ];
|
nativeBuildInputs = [ libtool makeWrapper ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, gettext, perl, perlXMLParser }:
|
{ stdenv, fetchurl, fetchpatch, gettext, perl, perlXMLParser }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "intltool-${version}";
|
name = "intltool-${version}";
|
||||||
|
@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7";
|
sha256 = "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# fix "unescaped left brace" errors when using intltool in some cases
|
||||||
|
patches = [(fetchpatch {
|
||||||
|
name = "perl-5.22.patch";
|
||||||
|
url = "https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/intltool"
|
||||||
|
+ "/debian/patches/perl5.22-regex-fixes?revision=47255&view=co";
|
||||||
|
sha256 = "17clqczb9fky7hp8czxa0fy82b5478irvz4f3fnans3sqxl95hx3";
|
||||||
|
})];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gettext perl perlXMLParser ];
|
propagatedBuildInputs = [ gettext perl perlXMLParser ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -85,6 +85,7 @@ let
|
||||||
libpulseaudio
|
libpulseaudio
|
||||||
alsaLib
|
alsaLib
|
||||||
openalSoft
|
openalSoft
|
||||||
|
libva
|
||||||
] ++ lib.optional newStdcpp gcc.cc;
|
] ++ lib.optional newStdcpp gcc.cc;
|
||||||
|
|
||||||
ourRuntime = if runtimeOnly then []
|
ourRuntime = if runtimeOnly then []
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index b6a40f9..87ca301 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -261,9 +261,10 @@ target_link_libraries(OSRM ${STXXL_LIBRARY})
|
|
||||||
target_link_libraries(osrm-extract ${STXXL_LIBRARY})
|
|
||||||
target_link_libraries(osrm-prepare ${STXXL_LIBRARY})
|
|
||||||
|
|
||||||
-if(MINGW)
|
|
||||||
- # STXXL needs OpenMP library
|
|
||||||
- target_link_libraries(osrm-extract gomp)
|
|
||||||
+find_package(OpenMP)
|
|
||||||
+if (OPENMP_FOUND)
|
|
||||||
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
|
||||||
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package( OSMPBF REQUIRED )
|
|
|
@ -1,17 +1,17 @@
|
||||||
{stdenv, fetchFromGitHub, cmake, luabind, libosmpbf, stxxl, tbb, boost, expat, protobuf, bzip2, zlib, substituteAll}:
|
{stdenv, fetchFromGitHub, cmake, luabind, libosmpbf, stxxl, tbb, boost, expat, protobuf, bzip2, zlib, substituteAll}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "osrm-backend-4.5.0";
|
name = "osrm-backend-${version}";
|
||||||
|
version = "4.9.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v4.5.0";
|
rev = "v${version}";
|
||||||
owner = "Project-OSRM";
|
owner = "Project-OSRM";
|
||||||
repo = "osrm-backend";
|
repo = "osrm-backend";
|
||||||
sha256 = "19a8d1llvsrysyk1q48dpmh75qcbibfjlszndrysk11yh62hdvsz";
|
sha256 = "1r4dwniwxgfppnb9asdh98w5qxqwkjhp9gc5fabmck0gk73cwkcc";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./4.5.0-openmp.patch
|
|
||||||
./4.5.0-gcc-binutils.patch
|
./4.5.0-gcc-binutils.patch
|
||||||
(substituteAll {
|
(substituteAll {
|
||||||
src = ./4.5.0-default-profile-path.template.patch;
|
src = ./4.5.0-default-profile-path.template.patch;
|
||||||
|
|
|
@ -35,7 +35,8 @@ stdenv.mkDerivation rec {
|
||||||
] ++ stdenv.lib.optional (builtins.elem stdenv.system
|
] ++ stdenv.lib.optional (builtins.elem stdenv.system
|
||||||
stdenv.lib.platforms.x86_64) "--with-sse2=yes";
|
stdenv.lib.platforms.x86_64) "--with-sse2=yes";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
# fatal error: inlined-icons.h: No such file or directory
|
||||||
|
enableParallelBuilding = false;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
|
|
|
@ -22,6 +22,16 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = [ libpcap ];
|
buildInputs = [ libpcap ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
make install
|
||||||
|
install -D -m 755 scripts/{pon,poff,plog} $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
substituteInPlace $out/bin/{pon,poff,plog} --replace "/usr/sbin" "$out/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://ppp.samba.org/;
|
homepage = https://ppp.samba.org/;
|
||||||
description = "Point-to-point implementation for Linux and Solaris";
|
description = "Point-to-point implementation for Linux and Solaris";
|
||||||
|
|
|
@ -62,6 +62,7 @@ doNotDisplayTwice rec {
|
||||||
mssys = ms-sys; # added 2015-12-13
|
mssys = ms-sys; # added 2015-12-13
|
||||||
multipath_tools = multipath-tools; # added 2016-01-21
|
multipath_tools = multipath-tools; # added 2016-01-21
|
||||||
mupen64plus1_5 = mupen64plus; # added 2016-02-12
|
mupen64plus1_5 = mupen64plus; # added 2016-02-12
|
||||||
|
ncat = nmap; # added 2016-01-26
|
||||||
nfsUtils = nfs-utils; # added 2014-12-06
|
nfsUtils = nfs-utils; # added 2014-12-06
|
||||||
phonon_qt5 = qt5.phonon; # added 2015-12-19
|
phonon_qt5 = qt5.phonon; # added 2015-12-19
|
||||||
phonon_qt5_backend_gstreamer = qt5.phonon-backend-gstreamer; # added 2015-12-19
|
phonon_qt5_backend_gstreamer = qt5.phonon-backend-gstreamer; # added 2015-12-19
|
||||||
|
|
|
@ -171,7 +171,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchbower = callPackage ../build-support/fetchbower {
|
fetchbower = callPackage ../build-support/fetchbower {
|
||||||
inherit (nodePackages) fetch-bower;
|
inherit (nodePackages) bower2nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchbzr = callPackage ../build-support/fetchbzr { };
|
fetchbzr = callPackage ../build-support/fetchbzr { };
|
||||||
|
@ -1568,6 +1568,28 @@ in
|
||||||
|
|
||||||
gawp = goPackages.gawp.bin // { outputs = [ "bin" ]; };
|
gawp = goPackages.gawp.bin // { outputs = [ "bin" ]; };
|
||||||
|
|
||||||
|
gazeboSimulator = recurseIntoAttrs {
|
||||||
|
sdformat = gazeboSimulator.sdformat4;
|
||||||
|
|
||||||
|
sdformat3 = callPackage ../development/libraries/sdformat/3.nix { };
|
||||||
|
|
||||||
|
sdformat4 = callPackage ../development/libraries/sdformat { };
|
||||||
|
|
||||||
|
gazebo6 = callPackage ../applications/science/robotics/gazebo/6.nix { };
|
||||||
|
|
||||||
|
gazebo6-headless = callPackage ../applications/science/robotics/gazebo/6.nix { withHeadless = true; };
|
||||||
|
|
||||||
|
gazebo7 = callPackage ../applications/science/robotics/gazebo { };
|
||||||
|
|
||||||
|
gazebo7-headless = callPackage ../applications/science/robotics/gazebo { withHeadless = true; };
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# at present, Gazebo 7.0.0 does not match Gazebo 6.5.1 for compatibility
|
||||||
|
gazebo = gazeboSimulator.gazebo6;
|
||||||
|
|
||||||
|
gazebo-headless = gazeboSimulator.gazebo6-headless;
|
||||||
|
|
||||||
gbdfed = callPackage ../tools/misc/gbdfed {
|
gbdfed = callPackage ../tools/misc/gbdfed {
|
||||||
gtk = gtk2;
|
gtk = gtk2;
|
||||||
};
|
};
|
||||||
|
@ -1902,6 +1924,20 @@ in
|
||||||
|
|
||||||
ifuse = callPackage ../tools/filesystems/ifuse/default.nix { };
|
ifuse = callPackage ../tools/filesystems/ifuse/default.nix { };
|
||||||
|
|
||||||
|
ignition = recurseIntoAttrs {
|
||||||
|
|
||||||
|
math = callPackage ../development/libraries/ignition-math { };
|
||||||
|
|
||||||
|
math2 = ignition.math;
|
||||||
|
|
||||||
|
transport0 = callPackage ../development/libraries/ignition-transport/0.9.0.nix { };
|
||||||
|
|
||||||
|
transport1 = callPackage ../development/libraries/ignition-transport/1.0.1.nix { };
|
||||||
|
|
||||||
|
transport = ignition.transport0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
|
ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
|
||||||
inherit (haskellPackages) ihaskell ghcWithPackages;
|
inherit (haskellPackages) ihaskell ghcWithPackages;
|
||||||
|
|
||||||
|
@ -6358,6 +6394,8 @@ in
|
||||||
stdenv = overrideInStdenv stdenv [gnumake380];
|
stdenv = overrideInStdenv stdenv [gnumake380];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cl = callPackage ../development/libraries/cl { };
|
||||||
|
|
||||||
clanlib = callPackage ../development/libraries/clanlib { };
|
clanlib = callPackage ../development/libraries/clanlib { };
|
||||||
|
|
||||||
classads = callPackage ../development/libraries/classads { };
|
classads = callPackage ../development/libraries/classads { };
|
||||||
|
@ -8143,6 +8181,8 @@ in
|
||||||
|
|
||||||
nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { };
|
nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { };
|
||||||
|
|
||||||
|
ocl-icd = callPackage ../development/libraries/ocl-icd { };
|
||||||
|
|
||||||
ode = callPackage ../development/libraries/ode { };
|
ode = callPackage ../development/libraries/ode { };
|
||||||
|
|
||||||
ogre = callPackage ../development/libraries/ogre {};
|
ogre = callPackage ../development/libraries/ogre {};
|
||||||
|
@ -8170,6 +8210,8 @@ in
|
||||||
|
|
||||||
opencascade_oce = callPackage ../development/libraries/opencascade/oce.nix { };
|
opencascade_oce = callPackage ../development/libraries/opencascade/oce.nix { };
|
||||||
|
|
||||||
|
opencl-headers = callPackage ../development/libraries/opencl-headers { };
|
||||||
|
|
||||||
opencollada = callPackage ../development/libraries/opencollada { };
|
opencollada = callPackage ../development/libraries/opencollada { };
|
||||||
|
|
||||||
opencsg = callPackage ../development/libraries/opencsg { };
|
opencsg = callPackage ../development/libraries/opencsg { };
|
||||||
|
@ -8750,6 +8792,8 @@ in
|
||||||
|
|
||||||
tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
|
tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
|
||||||
|
|
||||||
|
tinyxml-2 = callPackage ../development/libraries/tinyxml-2 { };
|
||||||
|
|
||||||
tk = tk-8_6;
|
tk = tk-8_6;
|
||||||
|
|
||||||
tk-8_6 = callPackage ../development/libraries/tk/8.6.nix { };
|
tk-8_6 = callPackage ../development/libraries/tk/8.6.nix { };
|
||||||
|
@ -9116,6 +9160,10 @@ in
|
||||||
|
|
||||||
yuicompressor = callPackage ../development/tools/yuicompressor { };
|
yuicompressor = callPackage ../development/tools/yuicompressor { };
|
||||||
|
|
||||||
|
### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
|
||||||
|
|
||||||
|
buildBowerComponents = callPackage ../development/bower-modules/generic { };
|
||||||
|
|
||||||
### DEVELOPMENT / GO MODULES
|
### DEVELOPMENT / GO MODULES
|
||||||
|
|
||||||
go14Packages = callPackage ./go-packages.nix {
|
go14Packages = callPackage ./go-packages.nix {
|
||||||
|
@ -9572,8 +9620,6 @@ in
|
||||||
|
|
||||||
osrm-backend = callPackage ../servers/osrm-backend { };
|
osrm-backend = callPackage ../servers/osrm-backend { };
|
||||||
|
|
||||||
osrm-backend_luajit = callPackage ../servers/osrm-backend { luabind = luabind_luajit; };
|
|
||||||
|
|
||||||
p910nd = callPackage ../servers/p910nd { };
|
p910nd = callPackage ../servers/p910nd { };
|
||||||
|
|
||||||
petidomo = callPackage ../servers/mail/petidomo { };
|
petidomo = callPackage ../servers/mail/petidomo { };
|
||||||
|
@ -11446,7 +11492,11 @@ in
|
||||||
|
|
||||||
autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
|
autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
|
||||||
|
|
||||||
avidemux = callPackage ../applications/video/avidemux { };
|
avidemux_unwrapped = callPackage ../applications/video/avidemux { };
|
||||||
|
|
||||||
|
avidemux = callPackage ../applications/video/avidemux/wrapper.nix {
|
||||||
|
avidemux = avidemux_unwrapped;
|
||||||
|
};
|
||||||
|
|
||||||
avogadro = callPackage ../applications/science/chemistry/avogadro {
|
avogadro = callPackage ../applications/science/chemistry/avogadro {
|
||||||
eigen = eigen2;
|
eigen = eigen2;
|
||||||
|
@ -13168,6 +13218,8 @@ in
|
||||||
|
|
||||||
openbrf = callPackage ../applications/misc/openbrf { };
|
openbrf = callPackage ../applications/misc/openbrf { };
|
||||||
|
|
||||||
|
opencpn = callPackage ../applications/misc/opencpn { };
|
||||||
|
|
||||||
openimageio = callPackage ../applications/graphics/openimageio { };
|
openimageio = callPackage ../applications/graphics/openimageio { };
|
||||||
|
|
||||||
openjump = callPackage ../applications/misc/openjump { };
|
openjump = callPackage ../applications/misc/openjump { };
|
||||||
|
@ -14047,10 +14099,7 @@ in
|
||||||
|
|
||||||
winswitch = callPackage ../tools/X11/winswitch { };
|
winswitch = callPackage ../tools/X11/winswitch { };
|
||||||
|
|
||||||
wings = callPackage ../applications/graphics/wings {
|
wings = callPackage ../applications/graphics/wings { };
|
||||||
erlang = erlangR14;
|
|
||||||
esdl = esdl.override { erlang = erlangR14; };
|
|
||||||
};
|
|
||||||
|
|
||||||
wmname = callPackage ../applications/misc/wmname { };
|
wmname = callPackage ../applications/misc/wmname { };
|
||||||
|
|
||||||
|
@ -16312,4 +16361,3 @@ in
|
||||||
togglesg-download = callPackage ../tools/misc/togglesg-download { };
|
togglesg-download = callPackage ../tools/misc/togglesg-download { };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -122,7 +122,6 @@
|
||||||
, "git-run"
|
, "git-run"
|
||||||
, "bower"
|
, "bower"
|
||||||
, "bower2nix"
|
, "bower2nix"
|
||||||
, "fetch-bower"
|
|
||||||
, "npm-check-updates"
|
, "npm-check-updates"
|
||||||
, "node-stringprep"
|
, "node-stringprep"
|
||||||
, "ltx"
|
, "ltx"
|
||||||
|
|
|
@ -63,6 +63,12 @@ in rec {
|
||||||
sha1 = "26220f7e43ee3c0d714860db61c4d0ecc9bb3d89";
|
sha1 = "26220f7e43ee3c0d714860db61c4d0ecc9bb3d89";
|
||||||
}} ../webdrvr/chromedriver_linux64.zip
|
}} ../webdrvr/chromedriver_linux64.zip
|
||||||
'';
|
'';
|
||||||
|
bower2nix.buildInputs = [ pkgs.makeWrapper ];
|
||||||
|
bower2nix.postInstall = ''
|
||||||
|
for prog in bower2nix fetch-bower; do
|
||||||
|
wrapProgram "$out/bin/$prog" --prefix PATH : "${pkgs.git}/bin"
|
||||||
|
done
|
||||||
|
'';
|
||||||
} // args.overrides or {};
|
} // args.overrides or {};
|
||||||
|
|
||||||
# Apply overrides and back compatiblity transformations
|
# Apply overrides and back compatiblity transformations
|
||||||
|
|
|
@ -2124,13 +2124,13 @@ in modules // {
|
||||||
|
|
||||||
billiard = buildPythonPackage rec {
|
billiard = buildPythonPackage rec {
|
||||||
name = "billiard-${version}";
|
name = "billiard-${version}";
|
||||||
version = "3.3.0.21";
|
version = "3.3.0.23";
|
||||||
|
|
||||||
disabled = isPyPy;
|
disabled = isPyPy;
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "https://pypi.python.org/packages/source/b/billiard/${name}.tar.gz";
|
url = "https://pypi.python.org/packages/source/b/billiard/${name}.tar.gz";
|
||||||
sha256 = "1sfsrkm5xv820wp2mz5zn2rnw6s0c9wal69v1fkr26wp1a7zf1cp";
|
sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with self; [ nose unittest2 mock ];
|
buildInputs = with self; [ nose unittest2 mock ];
|
||||||
|
@ -2942,13 +2942,13 @@ in modules // {
|
||||||
|
|
||||||
celery = buildPythonPackage rec {
|
celery = buildPythonPackage rec {
|
||||||
name = "celery-${version}";
|
name = "celery-${version}";
|
||||||
version = "3.1.19";
|
version = "3.1.23";
|
||||||
|
|
||||||
disabled = pythonOlder "2.6";
|
disabled = pythonOlder "2.6";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "https://pypi.python.org/packages/source/c/celery/${name}.tar.gz";
|
url = "https://pypi.python.org/packages/source/c/celery/${name}.tar.gz";
|
||||||
sha256 = "0wbbsrg3vfq8v7y2nylal1gqmn3h4a5vqzbsjiwcybl21hlj2smx";
|
sha256 = "0614ppp18vmiwdk0rxvz0wn62d7svanwdnx7jgqxpy9pb20rqd8s";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with self; [ mock nose unittest2 ];
|
buildInputs = with self; [ mock nose unittest2 ];
|
||||||
|
@ -6911,6 +6911,8 @@ in modules // {
|
||||||
preBuild = "${python}/bin/${python.executable} setup.py build_ext" +
|
preBuild = "${python}/bin/${python.executable} setup.py build_ext" +
|
||||||
" --include-dirs=${pkgs.poppler_qt4}/include/poppler/";
|
" --include-dirs=${pkgs.poppler_qt4}/include/poppler/";
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${pkgs.poppler_qt4}/include/poppler/";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A Python binding to Poppler-Qt4";
|
description = "A Python binding to Poppler-Qt4";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -8305,7 +8307,7 @@ in modules // {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
django_redis = makeOverridable ({ django ? self.django }: buildPythonPackage rec {
|
django_redis = buildPythonPackage rec {
|
||||||
name = "django-redis-${version}";
|
name = "django-redis-${version}";
|
||||||
version = "4.2.0";
|
version = "4.2.0";
|
||||||
|
|
||||||
|
@ -8316,29 +8318,29 @@ in modules // {
|
||||||
|
|
||||||
buildInputs = [ self.mock ];
|
buildInputs = [ self.mock ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ django ] ++
|
propagatedBuildInputs = with self; [
|
||||||
(with self; [
|
django
|
||||||
redis
|
redis
|
||||||
msgpack
|
msgpack
|
||||||
]);
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Full featured redis cache backend for Django";
|
description = "Full featured redis cache backend for Django";
|
||||||
homepage = https://github.com/niwibe/django-redis;
|
homepage = https://github.com/niwibe/django-redis;
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
};
|
};
|
||||||
}) {};
|
};
|
||||||
|
|
||||||
django_reversion = buildPythonPackage rec {
|
django_reversion = buildPythonPackage rec {
|
||||||
name = "django-reversion-${version}";
|
name = "django-reversion-${version}";
|
||||||
version = "1.8.5";
|
version = "1.10.1";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "http://pypi.python.org/packages/source/d/django-reversion/${name}.tar.gz";
|
url = "https://pypi.python.org/packages/source/d/django-reversion/${name}.tar.gz";
|
||||||
sha256 = "0z8fxvxgbxfnalr5br74rsw6g42nry2q656rx7rsgmicd8n42v2r";
|
sha256 = "01iv8w6lmmq98qjhxmnp8ddjxifmhxcmp612ijd91wc8nv8lk12w";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with self; [ django_1_7 ] ++
|
propagatedBuildInputs = with self; [ django ] ++
|
||||||
(optionals (pythonOlder "2.7") [ importlib ordereddict ]);
|
(optionals (pythonOlder "2.7") [ importlib ordereddict ]);
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -8348,7 +8350,7 @@ in modules // {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
django_silk = makeOverridable ({ django ? self.django }: buildPythonPackage rec {
|
django_silk = buildPythonPackage rec {
|
||||||
name = "django-silk-${version}";
|
name = "django-silk-${version}";
|
||||||
version = "0.5.6";
|
version = "0.5.6";
|
||||||
|
|
||||||
|
@ -8359,25 +8361,25 @@ in modules // {
|
||||||
|
|
||||||
buildInputs = [ self.mock ];
|
buildInputs = [ self.mock ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ django ] ++
|
propagatedBuildInputs = with self; [
|
||||||
(with self; [
|
django
|
||||||
pygments
|
pygments
|
||||||
simplejson
|
simplejson
|
||||||
dateutil
|
dateutil
|
||||||
requests2
|
requests2
|
||||||
sqlparse
|
sqlparse
|
||||||
jinja2
|
jinja2
|
||||||
autopep8
|
autopep8
|
||||||
pytz
|
pytz
|
||||||
pillow
|
pillow
|
||||||
]);
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Silky smooth profiling for the Django Framework";
|
description = "Silky smooth profiling for the Django Framework";
|
||||||
homepage = https://github.com/mtford90/silk;
|
homepage = https://github.com/mtford90/silk;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
};
|
};
|
||||||
}) {};
|
};
|
||||||
|
|
||||||
django_taggit = buildPythonPackage rec {
|
django_taggit = buildPythonPackage rec {
|
||||||
name = "django-taggit-${version}";
|
name = "django-taggit-${version}";
|
||||||
|
@ -11049,23 +11051,23 @@ in modules // {
|
||||||
|
|
||||||
kombu = buildPythonPackage rec {
|
kombu = buildPythonPackage rec {
|
||||||
name = "kombu-${version}";
|
name = "kombu-${version}";
|
||||||
version = "3.0.33";
|
version = "3.0.35";
|
||||||
|
|
||||||
disabled = pythonOlder "2.6";
|
disabled = pythonOlder "2.6";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "https://pypi.python.org/packages/source/k/kombu/${name}.tar.gz";
|
url = "https://pypi.python.org/packages/source/k/kombu/${name}.tar.gz";
|
||||||
sha256 = "16brjx2lgwbj2a37d0pjbfb84nvld6irghmqrs3qfncajp51hgc5";
|
sha256 = "09xpxpjz9nk8d14dj361dqdwyjwda3jlf1a7v6jif9wn2xm37ar2";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with self; optionals (!isPy3k) [ anyjson mock unittest2 nose ];
|
# most of these are simply to allow the test suite to do its job
|
||||||
|
buildInputs = with self; [ mock unittest2 nose redis qpid-python pymongo sqlalchemy pyyaml msgpack boto ];
|
||||||
|
|
||||||
propagatedBuildInputs = with self; [ amqp anyjson ] ++
|
propagatedBuildInputs = with self; [ amqp anyjson ] ++
|
||||||
(optionals (pythonOlder "2.7") [ importlib ordereddict ]);
|
(optionals (pythonOlder "2.7") [ importlib ordereddict ]);
|
||||||
|
|
||||||
# tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
|
# tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
|
||||||
# tests also appear to depend on anyjson, which has Py3k problems
|
doCheck = (pythonAtLeast "2.7");
|
||||||
doCheck = (pythonAtLeast "2.7") && !isPy3k ;
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Messaging library for Python";
|
description = "Messaging library for Python";
|
||||||
|
@ -11832,11 +11834,17 @@ in modules // {
|
||||||
};
|
};
|
||||||
|
|
||||||
nototools = buildPythonPackage rec {
|
nototools = buildPythonPackage rec {
|
||||||
version = "git-2015-09-16";
|
version = "git-2016-03-25";
|
||||||
name = "nototools-${version}";
|
name = "nototools-${version}";
|
||||||
disabled = isPy3k;
|
|
||||||
|
|
||||||
pythonPath = with self; [ fonttools numpy ];
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "googlei18n";
|
||||||
|
repo = "nototools";
|
||||||
|
rev = "4f7b067d1b18f59288e5eaee34db5b0abd3a3f63";
|
||||||
|
sha256 = "05brbkfg77ij4pmcrhq9302albzdalr9gv6jfdsbyyi2k8j85gbn";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = with self; [ fonttools numpy ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
|
sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
|
||||||
|
@ -11846,11 +11854,12 @@ in modules // {
|
||||||
cp -r third_party $out
|
cp -r third_party $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
disabled = isPy3k;
|
||||||
owner = "googlei18n";
|
|
||||||
repo = "nototools";
|
meta = {
|
||||||
rev = "5a79bee819941849da7b414447929fc7ba6c2c08";
|
description = "Noto fonts support tools and scripts plus web site generation";
|
||||||
sha256 = "0srrmyrjgksk4c6smgi1flyq325r4ma8r6bpkvbn731q3yykhmaa";
|
license = licenses.asl20;
|
||||||
|
homepage = https://github.com/googlei18n/nototools;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -13207,7 +13216,7 @@ in modules // {
|
||||||
blas = pkgs.openblasCompat_2_14;
|
blas = pkgs.openblasCompat_2_14;
|
||||||
};
|
};
|
||||||
|
|
||||||
numpy = self.numpy_1_11;
|
numpy = self.numpy_1_10;
|
||||||
|
|
||||||
numpy_1_10 = self.buildNumpyPackage rec {
|
numpy_1_10 = self.buildNumpyPackage rec {
|
||||||
version = "1.10.4";
|
version = "1.10.4";
|
||||||
|
|
Loading…
Reference in a new issue