mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
Merge branch 'master' into staging
Conflicts (simple): pkgs/development/lisp-modules/clwrapper/setup-hook.sh
This commit is contained in:
commit
b4af993c3f
@ -108,7 +108,7 @@ a <varname>preConfigure</varname> hook to generate a configuration
|
|||||||
file used by <filename>Makefile.PL</filename>:
|
file used by <filename>Makefile.PL</filename>:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{buildPerlPackage, fetchurl, db}:
|
{ buildPerlPackage, fetchurl, db }:
|
||||||
|
|
||||||
buildPerlPackage rec {
|
buildPerlPackage rec {
|
||||||
name = "BerkeleyDB-0.36";
|
name = "BerkeleyDB-0.36";
|
||||||
@ -191,45 +191,424 @@ you need it.</para>
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section><title>Python</title>
|
<section xml:id="python"><title>Python</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Currently supported interpreters are <varname>python26</varname>, <varname>python27</varname>,
|
||||||
|
<varname>python32</varname>, <varname>python33</varname>, <varname>python34</varname>
|
||||||
|
and <varname>pypy</varname>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<varname>python</varname> is an alias of <varname>python27</varname> and <varname>python3</varname> is an alias of <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>
|
<para>
|
||||||
Python packages that
|
Python packages that
|
||||||
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link>,
|
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link> or <literal>distutils</literal>,
|
||||||
which many Python packages do nowadays, can be built very simply using
|
can be built using the <varname>buildPythonPackage</varname> function as documented below.
|
||||||
the <varname>buildPythonPackage</varname> function. This 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>
|
|
||||||
and works similarly to <varname>buildPerlPackage</varname>. (See
|
|
||||||
<xref linkend="ssec-language-perl"/> for details.)
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Python packages that use <varname>buildPythonPackage</varname> are
|
All packages depending on any Python interpreter get appended <varname>$out/${python.libPrefix}/site-packages</varname>
|
||||||
defined
|
to <literal>$PYTHONPATH</literal> if such directory exists.
|
||||||
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>.
|
|
||||||
Most of them are simple. For example:
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
twisted = buildPythonPackage {
|
|
||||||
name = "twisted-8.1.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
|
||||||
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
|
||||||
};
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ pkgs.ZopeInterface ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://twistedmatrix.com/;
|
|
||||||
description = "Twisted, an event-driven networking engine written in Python";
|
|
||||||
license = "MIT";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
</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="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="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>python32Packages</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>configurePhase</varname>, it patches
|
||||||
|
<literal>setup.py</literal> to always include setuptools before
|
||||||
|
distutils for monkeypatching machinery to take place.
|
||||||
|
</para></listitem>
|
||||||
|
|
||||||
|
<listitem><para>
|
||||||
|
In the <varname>buildPhase</varname>, it calls
|
||||||
|
<literal>${python.interpreter} setup.py build ...</literal>
|
||||||
|
</para></listitem>
|
||||||
|
|
||||||
|
<listitem><para>
|
||||||
|
In the <varname>installPhase</varname>, it calls
|
||||||
|
<literal>${python.interpreter} setup.py install ...</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>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>By default <varname>doCheck = true</varname> is set and tests are run with
|
||||||
|
<literal>${python.interpreter} setup.py test</literal> command in <varname>checkPhase</varname>.</para>
|
||||||
|
|
||||||
|
<para><varname>propagatedBuildInputs</varname> packages are propagated to user environment.</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>setupPyInstallFlags</varname></term>
|
||||||
|
<listitem><para>
|
||||||
|
List of flags passed to <command>setup.py install</command> command.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>setupPyBuildFlags</varname></term>
|
||||||
|
<listitem><para>
|
||||||
|
List of flags passed to <command>setup.py build</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 into user environment
|
||||||
|
(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>distutilsExtraCfg</varname></term>
|
||||||
|
<listitem><para>
|
||||||
|
Extra lines passed to <varname>[easy_install]</varname> section of
|
||||||
|
<filename>distutils.cfg</filename> (acts as global setup.cfg
|
||||||
|
configuration).
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="python-build-env"><title><function>python.buildEnv</function> function</title>
|
||||||
|
<para>
|
||||||
|
Create Python envorinments 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>
|
||||||
|
|
||||||
|
<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="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 prefered 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="python-development"><title>Development</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To develop Python packages <function>bulidPythonPackage</function> has
|
||||||
|
additional logic inside <varname>shellPhase</varname> to run
|
||||||
|
<command>${python.interpreter} setup.py develop</command> for the package.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Note: there is a boolean value <varname>lib.inNixShell</varname> set to
|
||||||
|
<varname>true</varname> if nix-shell is invoked.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="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="python-build-env" /> to create self-contained
|
||||||
|
interpreter with a set of packages.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section xml:id="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>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1120,12 +1120,9 @@ echo @foo@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>Python</term>
|
<term>Python</term>
|
||||||
<listitem><para>Adds the
|
<listitem><para>Adds the
|
||||||
<filename>lib/python2.5/site-packages</filename> subdirectory of
|
<filename>lib/${python.libPrefix}/site-packages</filename> subdirectory of
|
||||||
each build input to the <envar>PYTHONPATH</envar> environment
|
each build input to the <envar>PYTHONPATH</envar> environment
|
||||||
variable.</para>
|
variable.</para></listitem>
|
||||||
|
|
||||||
<note><para>This should be generalised: the Python version
|
|
||||||
shouldn’t be hard-coded.</para></note></listitem>
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -223,4 +223,14 @@ rec {
|
|||||||
|
|
||||||
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
|
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
|
||||||
|
|
||||||
|
# Remove duplicate elements from the list
|
||||||
|
unique = list:
|
||||||
|
if list == [] then
|
||||||
|
[]
|
||||||
|
else
|
||||||
|
let
|
||||||
|
x = head list;
|
||||||
|
xs = unique (drop 1 list);
|
||||||
|
in [x] ++ remove x xs;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
||||||
falsifian = "James Cook <james.cook@utoronto.ca>";
|
falsifian = "James Cook <james.cook@utoronto.ca>";
|
||||||
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
||||||
|
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
|
||||||
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
|
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
|
||||||
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
|
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
|
||||||
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
|
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
|
||||||
@ -80,6 +81,7 @@
|
|||||||
jcumming = "Jack Cummings <jack@mudshark.org>";
|
jcumming = "Jack Cummings <jack@mudshark.org>";
|
||||||
jgeerds = "Jascha Geerds <jg@ekby.de>";
|
jgeerds = "Jascha Geerds <jg@ekby.de>";
|
||||||
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
|
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
|
||||||
|
joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
|
||||||
joamaki = "Jussi Maki <joamaki@gmail.com>";
|
joamaki = "Jussi Maki <joamaki@gmail.com>";
|
||||||
joelteon = "Joel Taylor <me@joelt.io>";
|
joelteon = "Joel Taylor <me@joelt.io>";
|
||||||
jwiegley = "John Wiegley <johnw@newartisans.com>";
|
jwiegley = "John Wiegley <johnw@newartisans.com>";
|
||||||
|
@ -45,6 +45,9 @@ with lib;
|
|||||||
# Add support for cow filesystems and their utilities
|
# Add support for cow filesystems and their utilities
|
||||||
boot.supportedFilesystems = [ "zfs" "btrfs" ];
|
boot.supportedFilesystems = [ "zfs" "btrfs" ];
|
||||||
|
|
||||||
|
# Configure host id for ZFS to work
|
||||||
|
networking.hostId = "8425e349";
|
||||||
|
|
||||||
# Allow the user to log in as root without a password.
|
# Allow the user to log in as root without a password.
|
||||||
users.extraUsers.root.initialHashedPassword = "";
|
users.extraUsers.root.initialHashedPassword = "";
|
||||||
}
|
}
|
||||||
|
@ -476,6 +476,14 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Generate a random 32-bit value to use as the host id
|
||||||
|
open my $rnd, "<", "/dev/urandom" or die $!;
|
||||||
|
read $rnd, $hostIdBin, 4;
|
||||||
|
close $rnd;
|
||||||
|
|
||||||
|
# Convert the 32-bit value to a hex string
|
||||||
|
my $hostIdHex = unpack("H*", $hostIdBin);
|
||||||
|
|
||||||
write_file($fn, <<EOF);
|
write_file($fn, <<EOF);
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
@ -491,6 +499,7 @@ EOF
|
|||||||
|
|
||||||
$bootLoaderConfig
|
$bootLoaderConfig
|
||||||
# networking.hostName = "nixos"; # Define your hostname.
|
# networking.hostName = "nixos"; # Define your hostname.
|
||||||
|
networking.hostId = "$hostIdHex";
|
||||||
# networking.wireless.enable = true; # Enables wireless.
|
# networking.wireless.enable = true; # Enables wireless.
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
|
@ -158,6 +158,7 @@
|
|||||||
seeks = 148;
|
seeks = 148;
|
||||||
prosody = 149;
|
prosody = 149;
|
||||||
i2pd = 150;
|
i2pd = 150;
|
||||||
|
dnscrypt-proxy = 151;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
|
@ -221,6 +221,7 @@
|
|||||||
./services/networking/ddclient.nix
|
./services/networking/ddclient.nix
|
||||||
./services/networking/dhcpcd.nix
|
./services/networking/dhcpcd.nix
|
||||||
./services/networking/dhcpd.nix
|
./services/networking/dhcpd.nix
|
||||||
|
./services/networking/dnscrypt-proxy.nix
|
||||||
./services/networking/dnsmasq.nix
|
./services/networking/dnsmasq.nix
|
||||||
./services/networking/ejabberd.nix
|
./services/networking/ejabberd.nix
|
||||||
./services/networking/firewall.nix
|
./services/networking/firewall.nix
|
||||||
@ -386,8 +387,10 @@
|
|||||||
./virtualisation/containers.nix
|
./virtualisation/containers.nix
|
||||||
./virtualisation/docker.nix
|
./virtualisation/docker.nix
|
||||||
./virtualisation/libvirtd.nix
|
./virtualisation/libvirtd.nix
|
||||||
|
./virtualisation/lxc.nix
|
||||||
#./virtualisation/nova.nix
|
#./virtualisation/nova.nix
|
||||||
./virtualisation/openvswitch.nix
|
./virtualisation/openvswitch.nix
|
||||||
|
./virtualisation/parallels-guest.nix
|
||||||
./virtualisation/virtualbox-guest.nix
|
./virtualisation/virtualbox-guest.nix
|
||||||
#./virtualisation/xen-dom0.nix
|
#./virtualisation/xen-dom0.nix
|
||||||
]
|
]
|
||||||
|
133
nixos/modules/services/networking/dnscrypt-proxy.nix
Normal file
133
nixos/modules/services/networking/dnscrypt-proxy.nix
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
apparmorEnabled = config.security.apparmor.enable;
|
||||||
|
dnscrypt-proxy = pkgs.dnscrypt-proxy;
|
||||||
|
cfg = config.services.dnscrypt-proxy;
|
||||||
|
uid = config.ids.uids.dnscrypt-proxy;
|
||||||
|
daemonArgs = [ "--daemonize"
|
||||||
|
"--user=dnscrypt-proxy"
|
||||||
|
"--local-address=${cfg.localAddress}:${toString cfg.port}"
|
||||||
|
(optionalString cfg.tcpOnly "--tcp-only")
|
||||||
|
"--resolvers-list=${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
|
||||||
|
"--resolver-name=${cfg.resolverName}"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
##### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.dnscrypt-proxy = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable dnscrypt-proxy.
|
||||||
|
The proxy relays regular DNS queries to a DNSCrypt enabled
|
||||||
|
upstream resolver.
|
||||||
|
The traffic between the client and the upstream resolver is
|
||||||
|
encrypted and authenticated, which may mitigate the risk of MITM
|
||||||
|
attacks and third-party snooping (assuming the upstream is
|
||||||
|
trustworthy).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
localAddress = mkOption {
|
||||||
|
default = "127.0.0.1";
|
||||||
|
type = types.string;
|
||||||
|
description = ''
|
||||||
|
Listen for DNS queries on this address.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
default = 53;
|
||||||
|
type = types.int;
|
||||||
|
description = ''
|
||||||
|
Listen on this port.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
resolverName = mkOption {
|
||||||
|
default = "opendns";
|
||||||
|
type = types.string;
|
||||||
|
description = ''
|
||||||
|
The name of the upstream DNSCrypt resolver to use.
|
||||||
|
See <literal>${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv</literal>
|
||||||
|
for alternative resolvers (e.g., if you are concerned about logging
|
||||||
|
and/or server location).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tcpOnly = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
Force sending encrypted DNS queries to the upstream resolver
|
||||||
|
over TCP instead of UDP (on port 443).
|
||||||
|
Enabling this option may help circumvent filtering, but should
|
||||||
|
not be used otherwise.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
##### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
### AppArmor profile
|
||||||
|
|
||||||
|
security.apparmor.profiles = mkIf apparmorEnabled [
|
||||||
|
(pkgs.writeText "apparmor-dnscrypt-proxy" ''
|
||||||
|
|
||||||
|
${dnscrypt-proxy}/sbin/dnscrypt-proxy {
|
||||||
|
capability ipc_lock,
|
||||||
|
capability net_bind_service,
|
||||||
|
capability net_admin,
|
||||||
|
capability sys_chroot,
|
||||||
|
capability setgid,
|
||||||
|
capability setuid,
|
||||||
|
|
||||||
|
/dev/null rw,
|
||||||
|
/dev/urandom r,
|
||||||
|
|
||||||
|
${pkgs.glibc}/lib/*.so mr,
|
||||||
|
${pkgs.tzdata}/share/zoneinfo/** r,
|
||||||
|
|
||||||
|
${dnscrypt-proxy}/share/dnscrypt-proxy/** r,
|
||||||
|
${pkgs.gcc.gcc}/lib/libssp.so.* mr,
|
||||||
|
${pkgs.libsodium}/lib/libsodium.so.* mr,
|
||||||
|
}
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
### User
|
||||||
|
|
||||||
|
users.extraUsers = singleton {
|
||||||
|
inherit uid;
|
||||||
|
name = "dnscrypt-proxy";
|
||||||
|
description = "dnscrypt-proxy daemon user";
|
||||||
|
};
|
||||||
|
|
||||||
|
### Service definition
|
||||||
|
|
||||||
|
systemd.services.dnscrypt-proxy = {
|
||||||
|
description = "dnscrypt-proxy daemon";
|
||||||
|
after = [ "network.target" ] ++ optional apparmorEnabled "apparmor.service";
|
||||||
|
requires = mkIf apparmorEnabled [ "apparmor.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${dnscrypt-proxy}/sbin/dnscrypt-proxy ${toString daemonArgs}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -187,6 +187,12 @@ let
|
|||||||
# Clean up after added ruleset
|
# Clean up after added ruleset
|
||||||
ip46tables -D INPUT -j nixos-fw 2>/dev/null || true
|
ip46tables -D INPUT -j nixos-fw 2>/dev/null || true
|
||||||
|
|
||||||
|
${optionalString (kernelHasRPFilter && cfg.checkReversePath) ''
|
||||||
|
if ! ip46tables -D PREROUTING -t raw -m rpfilter --invert -j DROP; then
|
||||||
|
echo "<2>failed to stop rpfilter support" >&2
|
||||||
|
fi
|
||||||
|
''}
|
||||||
|
|
||||||
${cfg.extraStopCommands}
|
${cfg.extraStopCommands}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ in
|
|||||||
{ description = "MiniDLNA Server";
|
{ description = "MiniDLNA Server";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" "local-fs.target" ];
|
||||||
|
|
||||||
preStart =
|
preStart =
|
||||||
''
|
''
|
||||||
|
@ -98,6 +98,9 @@ let
|
|||||||
# Authorization: is the user allowed access?
|
# Authorization: is the user allowed access?
|
||||||
"authz_user" "authz_groupfile" "authz_host"
|
"authz_user" "authz_groupfile" "authz_host"
|
||||||
|
|
||||||
|
# For compatibility with old configurations, the new module mod_access_compat is provided.
|
||||||
|
(if version24 then "access_compat" else "")
|
||||||
|
|
||||||
# Other modules.
|
# Other modules.
|
||||||
"ext_filter" "include" "log_config" "env" "mime_magic"
|
"ext_filter" "include" "log_config" "env" "mime_magic"
|
||||||
"cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"
|
"cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"
|
||||||
|
@ -122,6 +122,9 @@ for o in $(cat /proc/cmdline); do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Set hostid before modules are loaded.
|
||||||
|
# This is needed by the spl/zfs modules.
|
||||||
|
@setHostId@
|
||||||
|
|
||||||
# Load the required kernel modules.
|
# Load the required kernel modules.
|
||||||
mkdir -p /lib
|
mkdir -p /lib
|
||||||
@ -398,7 +401,7 @@ echo /sbin/modprobe > /proc/sys/kernel/modprobe
|
|||||||
# Start stage 2. `switch_root' deletes all files in the ramfs on the
|
# Start stage 2. `switch_root' deletes all files in the ramfs on the
|
||||||
# current root. Note that $stage2Init might be an absolute symlink,
|
# current root. Note that $stage2Init might be an absolute symlink,
|
||||||
# in which case "-e" won't work because we're not in the chroot yet.
|
# in which case "-e" won't work because we're not in the chroot yet.
|
||||||
if ! test -e "$targetRoot/$stage2Init" -o -L "$targetRoot/$stage2Init"; then
|
if ! test -e "$targetRoot/$stage2Init" -o ! -L "$targetRoot/$stage2Init"; then
|
||||||
echo "stage 2 init script ($targetRoot/$stage2Init) not found"
|
echo "stage 2 init script ($targetRoot/$stage2Init) not found"
|
||||||
fail
|
fail
|
||||||
fi
|
fi
|
||||||
|
@ -190,6 +190,15 @@ let
|
|||||||
fsInfo =
|
fsInfo =
|
||||||
let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType fs.options ];
|
let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType fs.options ];
|
||||||
in pkgs.writeText "initrd-fsinfo" (concatStringsSep "\n" (concatMap f fileSystems));
|
in pkgs.writeText "initrd-fsinfo" (concatStringsSep "\n" (concatMap f fileSystems));
|
||||||
|
|
||||||
|
setHostId = optionalString (config.networking.hostId != null) ''
|
||||||
|
hi="${config.networking.hostId}"
|
||||||
|
${if pkgs.stdenv.isBigEndian then ''
|
||||||
|
echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > /etc/hostid
|
||||||
|
'' else ''
|
||||||
|
echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > /etc/hostid
|
||||||
|
''}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, utils, ... }:
|
||||||
#
|
#
|
||||||
# todo:
|
# todo:
|
||||||
# - crontab for scrubs, etc
|
# - crontab for scrubs, etc
|
||||||
# - zfs tunables
|
# - zfs tunables
|
||||||
# - /etc/zfs/zpool.cache handling
|
|
||||||
|
|
||||||
|
|
||||||
|
with utils;
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -31,6 +30,20 @@ let
|
|||||||
|
|
||||||
zfsAutoSnap = "${autosnapPkg}/bin/zfs-auto-snapshot";
|
zfsAutoSnap = "${autosnapPkg}/bin/zfs-auto-snapshot";
|
||||||
|
|
||||||
|
datasetToPool = x: elemAt (splitString "/" x) 0;
|
||||||
|
|
||||||
|
fsToPool = fs: datasetToPool fs.device;
|
||||||
|
|
||||||
|
zfsFilesystems = filter (x: x.fsType == "zfs") (attrValues config.fileSystems);
|
||||||
|
|
||||||
|
isRoot = fs: fs.neededForBoot || elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
|
||||||
|
|
||||||
|
allPools = unique ((map fsToPool zfsFilesystems) ++ cfgZfs.extraPools);
|
||||||
|
|
||||||
|
rootPools = unique (map fsToPool (filter isRoot zfsFilesystems));
|
||||||
|
|
||||||
|
dataPools = unique (filter (pool: !(elem pool rootPools)) allPools);
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -38,28 +51,73 @@ in
|
|||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
boot.spl.hostid = mkOption {
|
boot.zfs = {
|
||||||
default = "";
|
useGit = mkOption {
|
||||||
example = "0xdeadbeef";
|
type = types.bool;
|
||||||
description = ''
|
default = false;
|
||||||
ZFS uses a system's hostid to determine if a storage pool (zpool) is
|
example = true;
|
||||||
native to this system, and should thus be imported automatically.
|
description = ''
|
||||||
Unfortunately, this hostid can change under linux from boot to boot (by
|
Use the git version of the SPL and ZFS packages.
|
||||||
changing network adapters, for instance). Specify a unique 32 bit hostid in
|
Note that these are unreleased versions, with less testing, and therefore
|
||||||
hex here for zfs to prevent getting a random hostid between boots and having to
|
may be more unstable.
|
||||||
manually import pools.
|
'';
|
||||||
'';
|
};
|
||||||
};
|
|
||||||
|
|
||||||
boot.zfs.useGit = mkOption {
|
extraPools = mkOption {
|
||||||
type = types.bool;
|
type = types.listOf types.str;
|
||||||
default = false;
|
default = [];
|
||||||
example = true;
|
example = [ "tank" "data" ];
|
||||||
description = ''
|
description = ''
|
||||||
Use the git version of the SPL and ZFS packages.
|
Name or GUID of extra ZFS pools that you wish to import during boot.
|
||||||
Note that these are unreleased versions, with less testing, and therefore
|
|
||||||
may be more unstable.
|
Usually this is not necessary. Instead, you should set the mountpoint property
|
||||||
'';
|
of ZFS filesystems to <literal>legacy</literal> and add the ZFS filesystems to
|
||||||
|
NixOS's <option>fileSystems</option> option, which makes NixOS automatically
|
||||||
|
import the associated pool.
|
||||||
|
|
||||||
|
However, in some cases (e.g. if you have many filesystems) it may be preferable
|
||||||
|
to exclusively use ZFS commands to manage filesystems. If so, since NixOS/systemd
|
||||||
|
will not be managing those filesystems, you will need to specify the ZFS pool here
|
||||||
|
so that NixOS automatically imports it on every boot.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
forceImportRoot = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
example = false;
|
||||||
|
description = ''
|
||||||
|
Forcibly import the ZFS root pool(s) during early boot.
|
||||||
|
|
||||||
|
This is enabled by default for backwards compatibility purposes, but it is highly
|
||||||
|
recommended to disable this option, as it bypasses some of the safeguards ZFS uses
|
||||||
|
to protect your ZFS pools.
|
||||||
|
|
||||||
|
If you set this option to <literal>false</literal> and NixOS subsequently fails to
|
||||||
|
boot because it cannot import the root pool, you should boot with the
|
||||||
|
<literal>zfs_force=1</literal> option as a kernel parameter (e.g. by manually
|
||||||
|
editing the kernel params in grub during boot). You should only need to do this
|
||||||
|
once.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
forceImportAll = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
example = false;
|
||||||
|
description = ''
|
||||||
|
Forcibly import all ZFS pool(s).
|
||||||
|
|
||||||
|
This is enabled by default for backwards compatibility purposes, but it is highly
|
||||||
|
recommended to disable this option, as it bypasses some of the safeguards ZFS uses
|
||||||
|
to protect your ZFS pools.
|
||||||
|
|
||||||
|
If you set this option to <literal>false</literal> and NixOS subsequently fails to
|
||||||
|
import your non-root ZFS pool(s), you should manually import each pool with
|
||||||
|
"zpool import -f <pool-name>", and then reboot. You should only need to do
|
||||||
|
this once.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.zfs.autoSnapshot = {
|
services.zfs.autoSnapshot = {
|
||||||
@ -124,12 +182,20 @@ in
|
|||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf enableZfs {
|
(mkIf enableZfs {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = config.networking.hostId != null;
|
||||||
|
message = "ZFS requires config.networking.hostId to be set";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
assertion = !cfgZfs.forceImportAll || cfgZfs.forceImportRoot;
|
||||||
|
message = "If you enable boot.zfs.forceImportAll, you must also enable boot.zfs.forceImportRoot";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelModules = [ "spl" "zfs" ] ;
|
kernelModules = [ "spl" "zfs" ] ;
|
||||||
extraModulePackages = [ splPkg zfsPkg ];
|
extraModulePackages = [ splPkg zfsPkg ];
|
||||||
extraModprobeConfig = mkIf (cfgSpl.hostid != "") ''
|
|
||||||
options spl spl_hostid=${cfgSpl.hostid}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd = mkIf inInitrd {
|
boot.initrd = mkIf inInitrd {
|
||||||
@ -142,50 +208,84 @@ in
|
|||||||
cp -pdv ${zfsPkg}/lib/lib*.so* $out/lib
|
cp -pdv ${zfsPkg}/lib/lib*.so* $out/lib
|
||||||
cp -pdv ${pkgs.zlib}/lib/lib*.so* $out/lib
|
cp -pdv ${pkgs.zlib}/lib/lib*.so* $out/lib
|
||||||
'';
|
'';
|
||||||
postDeviceCommands =
|
postDeviceCommands = concatStringsSep "\n" ([''
|
||||||
''
|
ZFS_FORCE="${optionalString cfgZfs.forceImportRoot "-f"}"
|
||||||
zpool import -f -a
|
|
||||||
'';
|
for o in $(cat /proc/cmdline); do
|
||||||
|
case $o in
|
||||||
|
zfs_force|zfs_force=1)
|
||||||
|
ZFS_FORCE="-f"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
''] ++ (map (pool: ''
|
||||||
|
echo "importing root ZFS pool \"${pool}\"..."
|
||||||
|
zpool import -N $ZFS_FORCE "${pool}"
|
||||||
|
'') rootPools));
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.loader.grub = mkIf inInitrd {
|
boot.loader.grub = mkIf inInitrd {
|
||||||
zfsSupport = true;
|
zfsSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services."zpool-import" = {
|
environment.etc."zfs/zed.d".source = "${zfsPkg}/etc/zfs/zed.d/*";
|
||||||
description = "Import zpools";
|
|
||||||
after = [ "systemd-udev-settle.service" ];
|
|
||||||
wantedBy = [ "local-fs.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
ExecStart = "${zfsPkg}/sbin/zpool import -f -a";
|
|
||||||
};
|
|
||||||
restartIfChanged = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services."zfs-mount" = {
|
|
||||||
description = "Mount ZFS Volumes";
|
|
||||||
after = [ "zpool-import.service" ];
|
|
||||||
wantedBy = [ "local-fs.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
ExecStart = "${zfsPkg}/sbin/zfs mount -a";
|
|
||||||
ExecStop = "${zfsPkg}/sbin/zfs umount -a";
|
|
||||||
};
|
|
||||||
restartIfChanged = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.fsPackages = [ zfsPkg ]; # XXX: needed? zfs doesn't have (need) a fsck
|
system.fsPackages = [ zfsPkg ]; # XXX: needed? zfs doesn't have (need) a fsck
|
||||||
environment.systemPackages = [ zfsPkg ];
|
environment.systemPackages = [ zfsPkg ];
|
||||||
services.udev.packages = [ zfsPkg ]; # to hook zvol naming, etc.
|
services.udev.packages = [ zfsPkg ]; # to hook zvol naming, etc.
|
||||||
|
systemd.packages = [ zfsPkg ];
|
||||||
|
|
||||||
|
systemd.services = let
|
||||||
|
getPoolFilesystems = pool:
|
||||||
|
filter (x: x.fsType == "zfs" && (fsToPool x) == pool) (attrValues config.fileSystems);
|
||||||
|
|
||||||
|
getPoolMounts = pool:
|
||||||
|
let
|
||||||
|
mountPoint = fs: escapeSystemdPath fs.mountPoint;
|
||||||
|
in
|
||||||
|
map (x: "${mountPoint x}.mount") (getPoolFilesystems pool);
|
||||||
|
|
||||||
|
createImportService = pool:
|
||||||
|
nameValuePair "zfs-import-${pool}" {
|
||||||
|
description = "Import ZFS pool \"${pool}\"";
|
||||||
|
requires = [ "systemd-udev-settle.service" ];
|
||||||
|
after = [ "systemd-udev-settle.service" "systemd-modules-load.service" ];
|
||||||
|
wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ];
|
||||||
|
before = (getPoolMounts pool) ++ [ "local-fs.target" ];
|
||||||
|
unitConfig = {
|
||||||
|
DefaultDependencies = "no";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
zpool_cmd="${zfsPkg}/sbin/zpool"
|
||||||
|
("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in listToAttrs (map createImportService dataPools) // {
|
||||||
|
"zfs-mount" = { after = [ "systemd-modules-load.service" ]; };
|
||||||
|
"zfs-share" = { after = [ "systemd-modules-load.service" ]; };
|
||||||
|
"zed" = { after = [ "systemd-modules-load.service" ]; };
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.targets."zfs-import" =
|
||||||
|
let
|
||||||
|
services = map (pool: "zfs-import-${pool}.service") dataPools;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
requires = services;
|
||||||
|
after = services;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.targets."zfs".wantedBy = [ "multi-user.target" ];
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf enableAutoSnapshots {
|
(mkIf enableAutoSnapshots {
|
||||||
systemd.services."zfs-snapshot-frequent" = {
|
systemd.services."zfs-snapshot-frequent" = {
|
||||||
description = "ZFS auto-snapshotting every 15 mins";
|
description = "ZFS auto-snapshotting every 15 mins";
|
||||||
after = [ "zpool-import.service" ];
|
after = [ "zfs-import.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsAutoSnap} frequent ${toString cfgSnapshots.frequent}";
|
ExecStart = "${zfsAutoSnap} frequent ${toString cfgSnapshots.frequent}";
|
||||||
@ -196,7 +296,7 @@ in
|
|||||||
|
|
||||||
systemd.services."zfs-snapshot-hourly" = {
|
systemd.services."zfs-snapshot-hourly" = {
|
||||||
description = "ZFS auto-snapshotting every hour";
|
description = "ZFS auto-snapshotting every hour";
|
||||||
after = [ "zpool-import.service" ];
|
after = [ "zfs-import.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsAutoSnap} hourly ${toString cfgSnapshots.hourly}";
|
ExecStart = "${zfsAutoSnap} hourly ${toString cfgSnapshots.hourly}";
|
||||||
@ -207,7 +307,7 @@ in
|
|||||||
|
|
||||||
systemd.services."zfs-snapshot-daily" = {
|
systemd.services."zfs-snapshot-daily" = {
|
||||||
description = "ZFS auto-snapshotting every day";
|
description = "ZFS auto-snapshotting every day";
|
||||||
after = [ "zpool-import.service" ];
|
after = [ "zfs-import.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsAutoSnap} daily ${toString cfgSnapshots.daily}";
|
ExecStart = "${zfsAutoSnap} daily ${toString cfgSnapshots.daily}";
|
||||||
@ -218,7 +318,7 @@ in
|
|||||||
|
|
||||||
systemd.services."zfs-snapshot-weekly" = {
|
systemd.services."zfs-snapshot-weekly" = {
|
||||||
description = "ZFS auto-snapshotting every week";
|
description = "ZFS auto-snapshotting every week";
|
||||||
after = [ "zpool-import.service" ];
|
after = [ "zfs-import.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsAutoSnap} weekly ${toString cfgSnapshots.weekly}";
|
ExecStart = "${zfsAutoSnap} weekly ${toString cfgSnapshots.weekly}";
|
||||||
@ -229,7 +329,7 @@ in
|
|||||||
|
|
||||||
systemd.services."zfs-snapshot-monthly" = {
|
systemd.services."zfs-snapshot-monthly" = {
|
||||||
description = "ZFS auto-snapshotting every month";
|
description = "ZFS auto-snapshotting every month";
|
||||||
after = [ "zpool-import.service" ];
|
after = [ "zfs-import.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsAutoSnap} monthly ${toString cfgSnapshots.monthly}";
|
ExecStart = "${zfsAutoSnap} monthly ${toString cfgSnapshots.monthly}";
|
||||||
|
@ -189,6 +189,10 @@ let
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hexChars = stringToCharacters "0123456789abcdef";
|
||||||
|
|
||||||
|
isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -205,6 +209,20 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.hostId = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = "4e98920d";
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
description = ''
|
||||||
|
The 32-bit host ID of the machine, formatted as 8 hexadecimal characters.
|
||||||
|
|
||||||
|
You should try to make this ID unique among your machines. You can
|
||||||
|
generate a random 32-bit ID using the following command:
|
||||||
|
|
||||||
|
<literal>head -c4 /dev/urandom | od -A none -t x4</literal>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
networking.enableIPv6 = mkOption {
|
networking.enableIPv6 = mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = ''
|
||||||
@ -513,10 +531,15 @@ in
|
|||||||
config = {
|
config = {
|
||||||
|
|
||||||
assertions =
|
assertions =
|
||||||
flip map interfaces (i: {
|
(flip map interfaces (i: {
|
||||||
assertion = i.subnetMask == null;
|
assertion = i.subnetMask == null;
|
||||||
message = "The networking.interfaces.${i.name}.subnetMask option is defunct. Use prefixLength instead.";
|
message = "The networking.interfaces.${i.name}.subnetMask option is defunct. Use prefixLength instead.";
|
||||||
});
|
})) ++ [
|
||||||
|
{
|
||||||
|
assertion = cfg.hostId == null || (stringLength cfg.hostId == 8 && isHexString cfg.hostId);
|
||||||
|
message = "Invalid value given to the networking.hostId option.";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
boot.kernelModules = [ ]
|
boot.kernelModules = [ ]
|
||||||
++ optional cfg.enableIPv6 "ipv6"
|
++ optional cfg.enableIPv6 "ipv6"
|
||||||
@ -872,14 +895,29 @@ in
|
|||||||
# clear it if it's not configured in the NixOS configuration,
|
# clear it if it's not configured in the NixOS configuration,
|
||||||
# since it may have been set by dhcpcd in the meantime.
|
# since it may have been set by dhcpcd in the meantime.
|
||||||
system.activationScripts.hostname =
|
system.activationScripts.hostname =
|
||||||
optionalString (config.networking.hostName != "") ''
|
optionalString (cfg.hostName != "") ''
|
||||||
hostname "${config.networking.hostName}"
|
hostname "${cfg.hostName}"
|
||||||
'';
|
'';
|
||||||
system.activationScripts.domain =
|
system.activationScripts.domain =
|
||||||
optionalString (config.networking.domain != "") ''
|
optionalString (cfg.domain != "") ''
|
||||||
domainname "${config.networking.domain}"
|
domainname "${cfg.domain}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
environment.etc = mkIf (cfg.hostId != null)
|
||||||
|
[
|
||||||
|
{
|
||||||
|
target = "hostid";
|
||||||
|
source = pkgs.runCommand "gen-hostid" {} ''
|
||||||
|
hi="${cfg.hostId}"
|
||||||
|
${if pkgs.stdenv.isBigEndian then ''
|
||||||
|
echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
|
||||||
|
'' else ''
|
||||||
|
echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
|
||||||
|
''}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
services.udev.extraRules =
|
services.udev.extraRules =
|
||||||
''
|
''
|
||||||
KERNEL=="tun", TAG+="systemd"
|
KERNEL=="tun", TAG+="systemd"
|
||||||
|
75
nixos/modules/virtualisation/lxc.nix
Normal file
75
nixos/modules/virtualisation/lxc.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# LXC Configuration
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.virtualisation.lxc;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options.virtualisation.lxc = {
|
||||||
|
enable =
|
||||||
|
mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
This enables Linux Containers (LXC), which provides tools
|
||||||
|
for creating and managing system or application containers
|
||||||
|
on Linux.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
systemConfig =
|
||||||
|
mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
This is the system-wide LXC config. See lxc.system.conf(5).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultConfig =
|
||||||
|
mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
Default config (default.conf) for new containers, i.e. for
|
||||||
|
network config. See lxc.container.conf(5).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
usernetConfig =
|
||||||
|
mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
This is the config file for managing unprivileged user network
|
||||||
|
administration access in LXC. See lxc-user-net(5).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.lxc ];
|
||||||
|
|
||||||
|
environment.etc."lxc/lxc.conf".text = cfg.systemConfig;
|
||||||
|
environment.etc."lxc/lxc-usernet".text = cfg.usernetConfig;
|
||||||
|
environment.etc."lxc/default.conf".text = cfg.defaultConfig;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
93
nixos/modules/virtualisation/parallels-guest.nix
Normal file
93
nixos/modules/virtualisation/parallels-guest.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ config, lib, pkgs, pkgs_i686, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
prl-tools = config.boot.kernelPackages.prl-tools;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
hardware.parallels = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
This enables Parallel Tools for Linux guests, along with provided
|
||||||
|
video, mouse and other hardware drivers.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.hardware.parallels.enable {
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
drivers = singleton
|
||||||
|
{ name = "prlvideo"; modules = [ prl-tools ]; libPath = [ prl-tools ]; };
|
||||||
|
|
||||||
|
screenSection = ''
|
||||||
|
Option "NoMTRR"
|
||||||
|
'';
|
||||||
|
|
||||||
|
config = ''
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "prlmouse"
|
||||||
|
MatchIsPointer "on"
|
||||||
|
MatchTag "prlmouse"
|
||||||
|
Driver "prlmouse"
|
||||||
|
EndSection
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.opengl.package = prl-tools;
|
||||||
|
hardware.opengl.package32 = pkgs_i686.linuxPackages.prl-tools.override { libsOnly = true; kernel = null; };
|
||||||
|
|
||||||
|
services.udev.packages = [ prl-tools ];
|
||||||
|
|
||||||
|
environment.systemPackages = [ prl-tools ];
|
||||||
|
|
||||||
|
boot.extraModulePackages = [ prl-tools ];
|
||||||
|
|
||||||
|
boot.kernelModules = [ "prl_tg" "prl_eth" "prl_fs" "prl_fs_freeze" "acpi_memhotplug" ];
|
||||||
|
|
||||||
|
services.ntp.enable = false;
|
||||||
|
|
||||||
|
systemd.services.prltoolsd = {
|
||||||
|
description = "Parallels Tools' service";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${prl-tools}/bin/prltoolsd -f";
|
||||||
|
PIDFile = "/var/run/prltoolsd.pid";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.prlfsmountd = {
|
||||||
|
description = "Parallels Shared Folders Daemon";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = rec {
|
||||||
|
ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}";
|
||||||
|
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media";
|
||||||
|
ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u";
|
||||||
|
PIDFile = "/run/prlfsmountd.pid";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.prlshprint = {
|
||||||
|
description = "Parallels Shared Printer Tool";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
bindsTo = [ "cupsd.service" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${prl-tools}/bin/prlshprint";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
39
pkgs/applications/audio/caudec/default.nix
Normal file
39
pkgs/applications/audio/caudec/default.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{ stdenv, fetchurl, makeWrapper, bash, bc, findutils, flac, lame, opusTools, procps, sox }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "1.7.5";
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "caudec-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://caudec.net/downloads/caudec-${version}.tar.gz";
|
||||||
|
sha256 = "5d1f5ab3286bb748bd29cbf45df2ad2faf5ed86070f90deccf71c60be832f3d5";
|
||||||
|
};
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
patchShebangs ./install.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [ bash makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
./install.sh --prefix=$out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
for executable in $(cd $out/bin && ls); do
|
||||||
|
wrapProgram $out/bin/$executable \
|
||||||
|
--prefix PATH : "${bc}/bin:${findutils}/bin:${sox}/bin:${procps}/bin:${opusTools}/bin:${lame}/bin:${flac}/bin"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://caudec.net/;
|
||||||
|
description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
|
maintainers = with maintainers; [ _1126 ];
|
||||||
|
};
|
||||||
|
}
|
@ -6,11 +6,11 @@ assert stdenv ? glibc;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yoshimi-${version}";
|
name = "yoshimi-${version}";
|
||||||
version = "1.2.4";
|
version = "1.2.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
||||||
sha256 = "0wz2bc0x0h989schwzqjj6sx9hvzxkw4jrkflwhyrzjini1pvkxz";
|
sha256 = "0lixrxv0wds3p50kmy9k166qhavdjkhlxs432s248hk43k7n6c1h";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
23
pkgs/applications/editors/bluefish/default.nix
Normal file
23
pkgs/applications/editors/bluefish/default.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{stdenv, fetchurl, intltool, pkgconfig , gtk, libxml2
|
||||||
|
, enchant, gucharmap, python
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "bluefish-2.2.6";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
|
||||||
|
sha256 = "05j2mv6s2llf2pxknddhk8fzbghr7yff58xhkxy2icky64n8khjl";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [intltool pkgconfig gtk libxml2
|
||||||
|
enchant gucharmap python];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A powerful editor targeted towards programmers and webdevelopers";
|
||||||
|
homepage = http://bluefish.openoffice.nl/;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainer = [maintainers.vbgl];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
252
pkgs/applications/editors/jedit/build.xml.patch
Normal file
252
pkgs/applications/editors/jedit/build.xml.patch
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
--- a/build.xml 2013-07-28 18:03:55.000000000 +0100
|
||||||
|
+++ b/build.xml 2014-11-12 21:54:48.443482074 +0000
|
||||||
|
@@ -42,16 +42,6 @@
|
||||||
|
<property name="textAreaPackage"
|
||||||
|
location="../textarea"/>
|
||||||
|
|
||||||
|
- <!-- Ivy Properties -->
|
||||||
|
- <property name="config.ivy.version"
|
||||||
|
- value="2.2.0"/>
|
||||||
|
- <property name="ivy.jar.dir"
|
||||||
|
- location="${lib.dir}/ivy"/>
|
||||||
|
- <property name="ivy.jar.filename"
|
||||||
|
- value="ivy-${config.ivy.version}.jar"/>
|
||||||
|
- <property name="ivy.jar.file"
|
||||||
|
- location="${ivy.jar.dir}/${ivy.jar.filename}"/>
|
||||||
|
-
|
||||||
|
<!-- Miscellaneous -->
|
||||||
|
<property name="jar.filename"
|
||||||
|
value="${ant.project.name}.jar"/>
|
||||||
|
@@ -89,51 +79,8 @@
|
||||||
|
value="true"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
- <target name="check-ivy"
|
||||||
|
- depends="init">
|
||||||
|
- <available property="ivy.jar.present"
|
||||||
|
- file="${ivy.jar.file}"
|
||||||
|
- type="file"/>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
- <target name="download-ivy"
|
||||||
|
- depends="init,check-ivy"
|
||||||
|
- unless="ivy.jar.present">
|
||||||
|
- <mkdir dir="${ivy.jar.dir}"/>
|
||||||
|
- <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
|
||||||
|
- dest="${ivy.jar.file}"
|
||||||
|
- usetimestamp="true"/>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
- <target name="init-ivy"
|
||||||
|
- depends="init,download-ivy"
|
||||||
|
- unless="${ivy.done}">
|
||||||
|
- <property name="ivy.retrieve.pattern"
|
||||||
|
- value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
|
||||||
|
- <taskdef resource="org/apache/ivy/ant/antlib.xml"
|
||||||
|
- classpath="${ivy.jar.file}"
|
||||||
|
- loaderref="ivy.loader"
|
||||||
|
- uri="antlib:org.apache.ivy.ant"/>
|
||||||
|
- <ivy:settings file="ivysettings.xml"/>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
- <target name="retrieve"
|
||||||
|
- description="retrieve the dependencies"
|
||||||
|
- depends="init,init-ivy"
|
||||||
|
- unless="${ivy.done}">
|
||||||
|
- <ivy:retrieve sync="true"/>
|
||||||
|
- <ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
|
||||||
|
- organisation="org.apache.ivy"
|
||||||
|
- module="ivy"
|
||||||
|
- revision="${config.ivy.version}"
|
||||||
|
- conf="default"
|
||||||
|
- inline="true"/>
|
||||||
|
- <property name="ivy.done"
|
||||||
|
- value="true"/>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
<target name="setup"
|
||||||
|
- depends="init,retrieve">
|
||||||
|
+ depends="init">
|
||||||
|
<taskdef resource="net/sf/antcontrib/antlib.xml"
|
||||||
|
uri="antlib:net.sf.antcontrib">
|
||||||
|
<classpath>
|
||||||
|
@@ -238,37 +185,6 @@
|
||||||
|
</javac>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
- <target name="compile-test"
|
||||||
|
- depends="init,retrieve,compile">
|
||||||
|
- <mkdir dir="${classes.dir}/test"/>
|
||||||
|
- <depend srcDir="${basedir}/test"
|
||||||
|
- destDir="${classes.dir}/test"
|
||||||
|
- cache="${classes.dir}"/>
|
||||||
|
- <dependset>
|
||||||
|
- <srcfilelist files="build.xml"/>
|
||||||
|
- <srcfilelist files="ivy.xml"/>
|
||||||
|
- <targetfileset dir="${classes.dir}/test"/>
|
||||||
|
- </dependset>
|
||||||
|
- <javac srcdir="test"
|
||||||
|
- destdir="${classes.dir}/test"
|
||||||
|
- debug="true"
|
||||||
|
- debuglevel="${config.build.debuglevel}"
|
||||||
|
- nowarn="${config.build.nowarn}"
|
||||||
|
- deprecation="${config.build.deprecation}"
|
||||||
|
- source="${target.java.version}"
|
||||||
|
- target="${target.java.version}"
|
||||||
|
- compiler="modern"
|
||||||
|
- encoding="UTF-8"
|
||||||
|
- includeAntRuntime="false">
|
||||||
|
- <classpath id="classpath.test">
|
||||||
|
- <fileset dir="${lib.dir}/test"
|
||||||
|
- includes="*.jar"/>
|
||||||
|
- <pathelement location="${classes.dir}/core"/>
|
||||||
|
- </classpath>
|
||||||
|
- <compilerarg line="${config.build.compilerarg}"/>
|
||||||
|
- </javac>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
<target name="prepare-textArea"
|
||||||
|
depends="init">
|
||||||
|
<delete includeemptydirs="true"
|
||||||
|
@@ -425,32 +341,8 @@
|
||||||
|
</javac>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
- <target name="test"
|
||||||
|
- depends="init,retrieve,compile,compile-test"
|
||||||
|
- description="run unit tests">
|
||||||
|
- <delete dir="${build.dir}/test/raw-reports"/>
|
||||||
|
- <mkdir dir="${build.dir}/test/raw-reports"/>
|
||||||
|
- <junit printsummary="true"
|
||||||
|
- failureproperty="tests.failed"
|
||||||
|
- enabletestlistenerevents="true">
|
||||||
|
- <classpath refid="classpath.test"/>
|
||||||
|
- <classpath location="${classes.dir}/test"/>
|
||||||
|
- <formatter type="xml"/>
|
||||||
|
- <batchtest todir="${build.dir}/test/raw-reports">
|
||||||
|
- <fileset dir="test"/>
|
||||||
|
- </batchtest>
|
||||||
|
- </junit>
|
||||||
|
- <mkdir dir="${build.dir}/test/merged-reports"/>
|
||||||
|
- <junitreport todir="${build.dir}/test/merged-reports">
|
||||||
|
- <fileset dir="${build.dir}/test/raw-reports"/>
|
||||||
|
- <report todir="${build.dir}/test/reports"/>
|
||||||
|
- </junitreport>
|
||||||
|
- <fail message="Unit test(s) failed! See reports at ${build.dir}/test/reports/index.html"
|
||||||
|
- if="tests.failed"/>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
<target name="build"
|
||||||
|
- depends="init,retrieve,setup,compile"
|
||||||
|
+ depends="init,setup,compile"
|
||||||
|
description="build the jEdit JAR-file with full debug-information">
|
||||||
|
<mkdir dir="${jar.location}"/>
|
||||||
|
<jar destfile="${jar.location}/${jar.filename}"
|
||||||
|
@@ -508,7 +400,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build-exe-launcher"
|
||||||
|
- depends="init,retrieve,setup,filter-package-files"
|
||||||
|
+ depends="init,setup,filter-package-files"
|
||||||
|
description="build the EXE launcher">
|
||||||
|
<contrib:if>
|
||||||
|
<os family="windows"/>
|
||||||
|
@@ -611,7 +503,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="unpack-docbook-xsl"
|
||||||
|
- depends="init,retrieve">
|
||||||
|
+ depends="init">
|
||||||
|
<unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
|
||||||
|
dest="${build.dir}/docbook-xsl/"/>
|
||||||
|
</target>
|
||||||
|
@@ -655,7 +547,7 @@
|
||||||
|
</presetdef>
|
||||||
|
|
||||||
|
<target name="generate-doc-faq"
|
||||||
|
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||||
|
+ depends="init,setup,unpack-docbook-xsl">
|
||||||
|
<dependset.html>
|
||||||
|
<srcfileset dir="doc/FAQ"/>
|
||||||
|
<targetfileset dir="${jar.location}/doc/FAQ"/>
|
||||||
|
@@ -679,7 +571,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="generate-doc-news"
|
||||||
|
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||||
|
+ depends="init,setup,unpack-docbook-xsl">
|
||||||
|
<dependset.html>
|
||||||
|
<srcfileset dir="doc/whatsnew"/>
|
||||||
|
<targetfileset dir="${jar.location}/doc/whatsnew"/>
|
||||||
|
@@ -703,7 +595,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="generate-doc-users-guide"
|
||||||
|
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||||
|
+ depends="init,setup,unpack-docbook-xsl">
|
||||||
|
<dependset.html>
|
||||||
|
<srcfileset dir="doc/users-guide"/>
|
||||||
|
<targetfileset dir="${jar.location}/doc/users-guide"/>
|
||||||
|
@@ -838,7 +730,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="generate-pdf-users-guide"
|
||||||
|
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||||
|
+ depends="init,setup,unpack-docbook-xsl">
|
||||||
|
<fail message="Please set the property "paper.type""
|
||||||
|
unless="paper.type"/>
|
||||||
|
<contrib:switch value="${paper.type}">
|
||||||
|
@@ -1143,7 +1035,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="compile-jarbundler"
|
||||||
|
- depends="init,retrieve">
|
||||||
|
+ depends="init">
|
||||||
|
<mkdir dir="${classes.dir}/jarbundler"/>
|
||||||
|
<depend srcDir="${basedir}"
|
||||||
|
destDir="${classes.dir}/jarbundler"
|
||||||
|
@@ -1173,7 +1065,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="dist-mac-finish"
|
||||||
|
- depends="init,retrieve,setup"
|
||||||
|
+ depends="init,setup"
|
||||||
|
description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
|
||||||
|
<fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
|
||||||
|
<condition>
|
||||||
|
@@ -1271,7 +1163,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="dist-mac"
|
||||||
|
- depends="init,retrieve,setup,prepare-dist-files"
|
||||||
|
+ depends="init,setup,prepare-dist-files"
|
||||||
|
description="build the Mac OS X disk image (DMG-file)">
|
||||||
|
<antcall target="compile-jarbundler">
|
||||||
|
<param name="config.build.debuglevel"
|
||||||
|
@@ -1386,7 +1278,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="prepare-dist-files"
|
||||||
|
- depends="init,retrieve,setup">
|
||||||
|
+ depends="init,setup">
|
||||||
|
<antcall target="build">
|
||||||
|
<param name="config.build.debuglevel"
|
||||||
|
value="lines,source"/>
|
||||||
|
@@ -1567,7 +1459,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="dist-deb"
|
||||||
|
- depends="init,retrieve,setup,prepare-dist-files"
|
||||||
|
+ depends="init,setup,prepare-dist-files"
|
||||||
|
description="build the DEB Package">
|
||||||
|
<antcall target="compile-ar">
|
||||||
|
<param name="config.build.debuglevel"
|
||||||
|
@@ -1813,7 +1705,7 @@
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="dist-sign-deb-Release"
|
||||||
|
- depends="init,retrieve,setup"
|
||||||
|
+ depends="init,setup"
|
||||||
|
description="sign the DEB Release file">
|
||||||
|
<contrib:if>
|
||||||
|
<not>
|
@ -1,32 +1,47 @@
|
|||||||
{ stdenv, fetchurl, ant, jdk }:
|
{stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging}:
|
||||||
|
|
||||||
let version = "4.4.2"; in
|
let
|
||||||
|
version = "5.1.0";
|
||||||
|
bsh = fetchurl {
|
||||||
|
url = http://www.beanshell.org/bsh-2.0b4.jar;
|
||||||
|
sha256 = "1di7hj2yms1m3wa8k70jpw0wzfnrgibpqnvdk33ahfaqi03mqfci";
|
||||||
|
};
|
||||||
|
bcpg = fetchurl {
|
||||||
|
url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
|
||||||
|
sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
|
||||||
|
};
|
||||||
|
jsr305 = fetchurl {
|
||||||
|
url = http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar;
|
||||||
|
sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "jedit-${version}";
|
name = "jedit-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/jedit/jedit${version}source.tar.bz2";
|
url = "mirror://sourceforge/jedit/jedit${version}source.tar.bz2";
|
||||||
sha256 = "5e9ad9c32871b77ef0b9fe46dcfcea57ec52558d36113b7280194a33430b8ceb";
|
sha256 = "015rn4339mp4wrd901x56nr42wfcy429pg54n835c6n34b2jjdc6";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ant jdk ];
|
buildInputs = [ ant jdk commonsBsf commonsLogging ];
|
||||||
|
|
||||||
sourceRoot = "jEdit";
|
# This patch removes from the build process:
|
||||||
|
# - the automatic download of dependencies (see configurePhase);
|
||||||
|
# - the tests
|
||||||
|
patches = [ ./build.xml.patch ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
mkdir -p lib/ant-contrib/ lib/scripting lib/compile lib/default-plugins
|
||||||
|
cp ${ant}/lib/ant/lib/ant-contrib-*.jar lib/ant-contrib/
|
||||||
|
cp ${bsh} ${bcpg} lib/scripting/
|
||||||
|
cp ${jsr305} lib/compile/
|
||||||
|
'';
|
||||||
|
|
||||||
buildPhase = "ant build";
|
buildPhase = "ant build";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/share/jEdit
|
mkdir -p $out/share/jEdit
|
||||||
cp build/jedit.jar $out/share/jEdit
|
cp -r build/jedit.jar doc icons keymaps macros modes startup $out/share/jEdit
|
||||||
mkdir -p $out/share/jEdit/modes
|
|
||||||
cp -r modes/* $out/share/jEdit/modes
|
|
||||||
mkdir -p $out/share/jEdit/icons
|
|
||||||
cp -r icons/* $out/share/jEdit/icons
|
|
||||||
mkdir -p $out/share/jEdit/macros
|
|
||||||
cp -r macros/* $out/share/jEdit/macros
|
|
||||||
mkdir -p $out/share/jEdit/doc
|
|
||||||
cp -r doc/* $out/share/jEdit/doc
|
|
||||||
|
|
||||||
sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
|
sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
|
||||||
mkdir -p $out/share/applications
|
mkdir -p $out/share/applications
|
||||||
@ -44,9 +59,11 @@ stdenv.mkDerivation {
|
|||||||
chmod +x $out/bin/jedit
|
chmod +x $out/bin/jedit
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "Mature programmer's text editor (Java based)";
|
description = "Mature programmer's text editor (Java based)";
|
||||||
homepage = http://www.jedit.org;
|
homepage = http://www.jedit.org;
|
||||||
license = "GPL";
|
license = licenses.gpl2;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.vbgl ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,7 @@ composableDerivation {
|
|||||||
nlsSupport = config.vim.nls or false;
|
nlsSupport = config.vim.nls or false;
|
||||||
tclSupport = config.vim.tcl or false;
|
tclSupport = config.vim.tcl or false;
|
||||||
multibyteSupport = config.vim.multibyte or false;
|
multibyteSupport = config.vim.multibyte or false;
|
||||||
cscopeSupport = config.vim.cscope or false;
|
cscopeSupport = config.vim.cscope or true;
|
||||||
netbeansSupport = config.netbeans or true; # eg envim is using it
|
netbeansSupport = config.netbeans or true; # eg envim is using it
|
||||||
|
|
||||||
# by default, compile with darwin support if we're compiling on darwin, but
|
# by default, compile with darwin support if we're compiling on darwin, but
|
||||||
|
@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
|
|||||||
HOME=$TMPDIR
|
HOME=$TMPDIR
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
@ -45,5 +47,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = "http://www.bitcoin.org/";
|
homepage = "http://www.bitcoin.org/";
|
||||||
maintainers = [ maintainers.roconnor ];
|
maintainers = [ maintainers.roconnor ];
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-2.9.0";
|
name = "calibre-2.10.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||||
sha256 = "0g6vhah736ps88maw3ggn7pcvnmani2mp8b29ksasv0683q7lldw";
|
sha256 = "06nya8r3bfkgfjsl83fl6l6g3ccw3mpmn3kih4i51gpcgma3aa6b";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
37
pkgs/applications/misc/keybase-node-client/default.nix
Normal file
37
pkgs/applications/misc/keybase-node-client/default.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ stdenv, fetchurl, makeWrapper, callPackage, gnupg, utillinux }:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
nodePackages = callPackage (import <nixpkgs/pkgs/top-level/node-packages.nix>) {
|
||||||
|
neededNatives = [] ++ optional (stdenv.isLinux) utillinux;
|
||||||
|
self = nodePackages;
|
||||||
|
generated = ./package.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
in nodePackages.buildNodePackage rec {
|
||||||
|
name = "keybase-node-client-${version}";
|
||||||
|
version = "0.7.0";
|
||||||
|
|
||||||
|
src = [(fetchurl {
|
||||||
|
url = "https://github.com/keybase/node-client/archive/v${version}.tar.gz";
|
||||||
|
sha256 = "0n73v4f61rq2dvy2yd3s4l8qvvjzp3ncqj70llm4i6cvbp9kym1v";
|
||||||
|
})];
|
||||||
|
|
||||||
|
deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));
|
||||||
|
buildInputs = [ makeWrapper gnupg ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram "$out/bin/keybase" --set NODE_PATH "$out/lib/node_modules/keybase/node_modules/"
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.names = ["keybase"];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "CLI for keybase.io written in/for Node.js";
|
||||||
|
license = licenses.mit;
|
||||||
|
homepage = https://keybase.io/docs/command_line;
|
||||||
|
maintainers = with maintainers; [manveru];
|
||||||
|
platforms = with platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
2518
pkgs/applications/misc/keybase-node-client/package.nix
Normal file
2518
pkgs/applications/misc/keybase-node-client/package.nix
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,17 +1,19 @@
|
|||||||
{ stdenv, fetchurl, qt4 }:
|
{ stdenv, fetchFromGitHub, qt }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.07.98";
|
version = "1.08.02";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "qtbitcointrader-${version}";
|
name = "qtbitcointrader-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "mirror://sourceforge/bitcointrader/SRC/QtBitcoinTrader-${version}.tar.gz";
|
owner = "JulyIGHOR";
|
||||||
sha256 = "1irz17q71fx64dfkmgajlyva7d1wifv4bxgb2iwz7d69rvhzaqzx";
|
repo = "QtBitcoinTrader";
|
||||||
|
rev = "452db3ee9447b8f9e7d63253f834b31394b23d92";
|
||||||
|
sha256 = "1l2a021dy2j4sr4nmq7wn27r2zli9nigwbviqzain3nlyzq9fjpg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt4 ];
|
buildInputs = [ qt ];
|
||||||
|
|
||||||
postUnpack = "sourceRoot=\${sourceRoot}/src";
|
postUnpack = "sourceRoot=\${sourceRoot}/src";
|
||||||
|
|
||||||
@ -23,11 +25,11 @@ stdenv.mkDerivation {
|
|||||||
QtBitcoinTrader_Desktop.pro
|
QtBitcoinTrader_Desktop.pro
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib;
|
||||||
description = "Secure bitcoin trading client";
|
{ description = "Secure bitcoin trading client";
|
||||||
homepage = http://qtopentrader.com;
|
homepage = https://centrabit.com/;
|
||||||
license = stdenv.lib.licenses.lgpl21Plus;
|
license = licenses.lgpl3;
|
||||||
platforms = stdenv.lib.platforms.linux; # arbitrary choice
|
platforms = platforms.linux; # arbitrary choice
|
||||||
maintainers = [ stdenv.lib.maintainers.emery ];
|
maintainers = [ maintainers.emery ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
# -> http://get.adobe.com/flashplayer/
|
# -> http://get.adobe.com/flashplayer/
|
||||||
version = "11.2.202.411";
|
version = "11.2.202.418";
|
||||||
|
|
||||||
src =
|
src =
|
||||||
if stdenv.system == "x86_64-linux" then
|
if stdenv.system == "x86_64-linux" then
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
else rec {
|
else rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
|
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
|
||||||
sha256 = "1983rj824bhzk48yhgminsiil778vwq0217hfrhbmymhrq3p7gzd";
|
sha256 = "0c7iid6apab99axrhl509hycbc4yc55k8xrh0pvr005q5jlmx99n";
|
||||||
}
|
}
|
||||||
else if stdenv.system == "i686-linux" then
|
else if stdenv.system == "i686-linux" then
|
||||||
if debug then
|
if debug then
|
||||||
@ -60,7 +60,7 @@ let
|
|||||||
else rec {
|
else rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
|
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
|
||||||
sha256 = "1bxp94s63i3136pjxgcm8106mqzaj4h096mkf7iq6ddkcvi0cxzn";
|
sha256 = "17mpjvkvvb7wwmyvwz93w7q4lvjrpma1f9lcf83i927jqpzg8x73";
|
||||||
}
|
}
|
||||||
else throw "Flash Player is not supported on this platform";
|
else throw "Flash Player is not supported on this platform";
|
||||||
|
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
{ stdenv, fetchurl, cmake, libpcap, libnet, zlib, curl, pcre,
|
{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre,
|
||||||
openssl, ncurses, glib, gtk, atk, pango, flex, bison }:
|
openssl, ncurses, glib, gtk, atk, pango, flex, bison }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ettercap-${version}";
|
name = "ettercap-${version}";
|
||||||
version = "0.8.0";
|
version = "0.8.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/Ettercap/ettercap/archive/v${version}.tar.gz";
|
owner = "Ettercap";
|
||||||
sha256 = "1g69782wk2hag8h76jqy81szw5jhvqqnn3m4v0wjkbv9zjxy44w0";
|
repo = "ettercap";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "017398fiqcl2x1bjfnz97y6j8v5n83gbsniy73vbx21kmhh5pacg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -16,7 +18,8 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc
|
substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \
|
||||||
|
--replace /usr \$\{INSTALL_PREFIX\}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
@ -24,10 +27,11 @@ stdenv.mkDerivation rec {
|
|||||||
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
|
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "Comprehensive suite for man in the middle attacks";
|
description = "Comprehensive suite for man in the middle attacks";
|
||||||
homepage = http://ettercap.github.io/ettercap/;
|
homepage = http://ettercap.github.io/ettercap/;
|
||||||
license = stdenv.lib.licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
maintainers = with maintainers; [ pSub ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ stdenv.mkDerivation {
|
|||||||
# Install git-subtree.
|
# Install git-subtree.
|
||||||
pushd contrib/subtree
|
pushd contrib/subtree
|
||||||
make
|
make
|
||||||
make install install-doc
|
make install ${stdenv.lib.optionalString withManual "install-doc"}
|
||||||
popd
|
popd
|
||||||
rm -rf contrib/subtree
|
rm -rf contrib/subtree
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "github-backup";
|
pname = "github-backup";
|
||||||
version = "1.20141031";
|
version = "1.20141110";
|
||||||
sha256 = "1rg8hz7g12k6h3vflm51l6gdi0wckmxwdq1213ykrbl8w8bvlkm8";
|
sha256 = "0675zcijfap757076r3j7js4iadnj1jbihmchf6ikzaanczmq1kg";
|
||||||
isLibrary = false;
|
isLibrary = false;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -1,25 +1,20 @@
|
|||||||
{ stdenv, fetchurl, gcc, unzip, curl }:
|
{ stdenv, fetchurl, unzip, curl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "dmd-2.064.2";
|
name = "dmd-2.066.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip;
|
url = http://downloads.dlang.org/releases/2014/dmd.2.066.1.zip;
|
||||||
sha256 = "1i0jdybigffwyb7c43j0c4aayxx3b93zzqrjxyw6zgp06yhi06pm";
|
sha256 = "1qifwgrl6h232zsnvcx3kmb5d0fsy7j9zv17r3b4vln7x5rvzc66";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gcc unzip curl ];
|
buildInputs = [ unzip curl ];
|
||||||
|
|
||||||
configurePhase = "";
|
|
||||||
patchPhase = ''
|
|
||||||
cp src/VERSION src/dmd/
|
|
||||||
cp license.txt src/phobos/LICENSE_1_0.txt
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
cd src/dmd
|
cd src/dmd
|
||||||
make -f posix.mak INSTALL_DIR=$out
|
make -f posix.mak INSTALL_DIR=$out
|
||||||
export DMD=$PWD/dmd
|
export DMD=$PWD/dmd
|
||||||
cd ../druntime
|
cd ../druntime
|
||||||
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
|
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
|
||||||
cd ../phobos
|
cd ../phobos
|
||||||
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
|
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
|
||||||
@ -28,25 +23,36 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
cd src/dmd
|
cd src/dmd
|
||||||
tee dmd.conf.default << EOF
|
mkdir $out
|
||||||
[Environment]
|
mkdir $out/bin
|
||||||
DFLAGS=-I$out/import -L-L$out/lib
|
cp dmd $out/bin
|
||||||
EOF
|
|
||||||
|
cd ../druntime
|
||||||
|
mkdir $out/include
|
||||||
|
mkdir $out/include/d2
|
||||||
|
cp -r import/* $out/include/d2
|
||||||
|
|
||||||
make -f posix.mak INSTALL_DIR=$out install
|
|
||||||
export DMD=$PWD/dmd
|
|
||||||
cd ../druntime
|
|
||||||
make -f posix.mak INSTALL_DIR=$out install
|
|
||||||
cd ../phobos
|
cd ../phobos
|
||||||
make -f posix.mak INSTALL_DIR=$out install
|
mkdir $out/lib
|
||||||
cd ../..
|
${let bits = if stdenv.is64bit then "64" else "32"; in
|
||||||
|
"cp generated/linux/release/${bits}/libphobos2.a $out/lib"
|
||||||
|
}
|
||||||
|
|
||||||
|
cp -r std $out/include/d2
|
||||||
|
cp -r etc $out/include/d2
|
||||||
|
|
||||||
|
cd $out/bin
|
||||||
|
tee dmd.conf << EOF
|
||||||
|
[Environment]
|
||||||
|
DFLAGS=-I$out/include/d2 -L-L$out/lib -L--no-warn-search-mismatch -L--export-dynamic
|
||||||
|
EOF
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "D language compiler";
|
description = "D language compiler";
|
||||||
homepage = http://dlang.org/;
|
homepage = http://dlang.org/;
|
||||||
license = "open source, see included files";
|
license = licenses.free; # parts under different licenses
|
||||||
maintainers = with stdenv.lib.maintainers; [ vlstill ];
|
platforms = platforms.unix;
|
||||||
platforms = stdenv.lib.platforms.unix;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,9 +22,15 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "http://www.mozart-oz.org/";
|
homepage = "http://www.mozart-oz.org/";
|
||||||
description = "The Mozart Programming System combines ongoing research in programming language design and implementation, constraint logic programming, distributed computing, and human-computer interfaces. Mozart implements the Oz language and provides both expressive power and advanced functionality.";
|
description = "Multiplatform implementation of the Oz programming language";
|
||||||
|
longDescription = ''
|
||||||
|
The Mozart Programming System combines ongoing research in
|
||||||
|
programming language design and implementation, constraint logic
|
||||||
|
programming, distributed computing, and human-computer
|
||||||
|
interfaces. Mozart implements the Oz language and provides both
|
||||||
|
expressive power and advanced functionality.
|
||||||
|
'';
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = ["x86_64-linux"];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
{ stdenv, fetchurl, writeText, lib, dmd }:
|
{stdenv, lib, fetchgit, dmd}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "rdmd-2.064";
|
name = "rdmd-20141113";
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = https://raw2.github.com/D-Programming-Language/tools/2.064/rdmd.d;
|
|
||||||
sha256 = "0b1g3ng6bkanvg00r6xb4ycpbh9x8b9dw589av665azxbcraqrs1";
|
|
||||||
name = "rdmd-src";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ dmd ];
|
buildInputs = [ dmd ];
|
||||||
|
|
||||||
builder = writeText "drmd-builder.sh" ''
|
src = fetchgit {
|
||||||
source $stdenv/setup
|
url = git://github.com/D-Programming-Language/tools.git;
|
||||||
cp $src rdmd.d
|
rev = "f496c68ee4e776597bd7382aa47f05da698a69e";
|
||||||
dmd rdmd.d
|
sha256 = "0vbhmz8nbh8ayml4vad0239kfg982vqfyqqrjv6wrlnjah97n5ms";
|
||||||
mkdir -p $out/bin
|
};
|
||||||
cp rdmd $out/bin/
|
|
||||||
|
buildPhase = ''
|
||||||
|
dmd rdmd.d
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp rdmd $out/bin/
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Wrapper for D language compiler";
|
description = "Wrapper for D language compiler";
|
||||||
homepage = http://dlang.org/rdmd.html;
|
homepage = http://dlang.org/rdmd.html;
|
||||||
license = lib.licenses.boost;
|
license = lib.licenses.boost;
|
||||||
maintainers = with stdenv.lib.maintainers; [ vlstill ];
|
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = stdenv.lib.platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, sbclBootstrap, clisp}:
|
{ stdenv, fetchurl, sbclBootstrap, clisp, which}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "sbcl-${version}";
|
name = "sbcl-${version}";
|
||||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0nmb9amygr5flzk2z9fa6wzwqknbgd2qrkybxkxkamvbdwyayvzr";
|
sha256 = "0nmb9amygr5flzk2z9fa6wzwqknbgd2qrkybxkxkamvbdwyayvzr";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ]
|
buildInputs = [ which ]
|
||||||
++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
|
++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
|
||||||
++ (stdenv.lib.optional stdenv.isLinux clisp)
|
++ (stdenv.lib.optional stdenv.isLinux clisp)
|
||||||
;
|
;
|
||||||
@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
|
|||||||
sed -i src/code/target-load.lisp -e \
|
sed -i src/code/target-load.lisp -e \
|
||||||
'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
|
'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
|
||||||
|
|
||||||
|
# Fix software version retrieval
|
||||||
|
sed -e "s@/bin/uname@$(which uname)@g" -i src/code/*-os.lisp
|
||||||
|
|
||||||
# Fix the tests
|
# Fix the tests
|
||||||
sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
|
sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
|
||||||
sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
|
sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
|
||||||
|
26
pkgs/development/coq-modules/unimath/default.nix
Normal file
26
pkgs/development/coq-modules/unimath/default.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{stdenv, fetchgit, coq}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "coq-unimath-${coq.coq-version}-${version}";
|
||||||
|
version = "a2714eca";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://github.com/UniMath/UniMath.git;
|
||||||
|
rev = "a2714eca29444a595cd280ea961ec33d17712009";
|
||||||
|
sha256 = "0brhbslx4sxl8m9nxjbdl91gi99vcrikykl6b00f4cx5ww43csln";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ coq.ocaml coq.camlp5 ];
|
||||||
|
propagatedBuildInputs = [ coq ];
|
||||||
|
|
||||||
|
installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/UniMath/UniMath;
|
||||||
|
description = "UniMath aims to formalize a substantial body of mathematics using the univalent point of view.";
|
||||||
|
maintainers = with maintainers; [ jwiegley ];
|
||||||
|
platforms = coq.meta.platforms;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, nix, git }: let
|
{ stdenv, fetchurl, pkgconfig, nix, git }: let
|
||||||
version = "2.0.1";
|
version = "2.0.2";
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "nix-exec-${version}";
|
name = "nix-exec-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
|
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
|
||||||
|
|
||||||
sha256 = "1iyz19c15yw0p5lgfbfh8arja2cy3apx5697cm671j4qzjkws32p";
|
sha256 = "0vgvvj0qywx9a1ihc8nddc3fcw69dinf136spw4i7qz4bszbs9j5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig nix git ];
|
buildInputs = [ pkgconfig nix git ];
|
||||||
|
@ -95,11 +95,12 @@ let
|
|||||||
--set LIBRARY_PATH "${LIBRARY_PATH}"
|
--set LIBRARY_PATH "${LIBRARY_PATH}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = rec {
|
||||||
inherit zlibSupport libPrefix;
|
inherit zlibSupport libPrefix;
|
||||||
executable = "pypy";
|
executable = "pypy";
|
||||||
isPypy = true;
|
isPypy = true;
|
||||||
buildEnv = callPackage ../../python/wrapper.nix { python = self; };
|
buildEnv = callPackage ../../python/wrapper.nix { python = self; };
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -93,6 +93,7 @@ let
|
|||||||
libPrefix = "python${majorVersion}";
|
libPrefix = "python${majorVersion}";
|
||||||
executable = libPrefix;
|
executable = libPrefix;
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
sitePackages = "lib/${libPrefix}/site-packages";
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -101,6 +101,7 @@ let
|
|||||||
libPrefix = "python${majorVersion}";
|
libPrefix = "python${majorVersion}";
|
||||||
executable = libPrefix;
|
executable = libPrefix;
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
sitePackages = "lib/${libPrefix}/site-packages";
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -80,6 +80,7 @@ stdenv.mkDerivation {
|
|||||||
isPy32 = true;
|
isPy32 = true;
|
||||||
is_py3k = true; # deprecated
|
is_py3k = true; # deprecated
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
sitePackages = "lib/${libPrefix}/site-packages";
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -81,6 +81,7 @@ stdenv.mkDerivation {
|
|||||||
isPy33 = true;
|
isPy33 = true;
|
||||||
is_py3k = true; # deprecated
|
is_py3k = true; # deprecated
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
sitePackages = "lib/${libPrefix}/site-packages";
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -83,6 +83,7 @@ stdenv.mkDerivation {
|
|||||||
isPy34 = true;
|
isPy34 = true;
|
||||||
is_py3k = true; # deprecated
|
is_py3k = true; # deprecated
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
sitePackages = "lib/${libPrefix}/site-packages";
|
||||||
|
interpreter = "${self}/bin/${executable}";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -1,38 +1,47 @@
|
|||||||
{ stdenv, fetchurl, cairo, file, pango, glib, gtk
|
{ stdenv, fetchurl, cairo, file, fontconfig, glib, gtk, freefont_ttf
|
||||||
, which, libtool, makeWrapper, libjpeg, libpng
|
, libjpeg, libpng, libtool, makeWrapper, openssl, pango, sqlite, which } :
|
||||||
, fontconfig, liberation_ttf, sqlite, openssl } :
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "racket";
|
pname = "racket";
|
||||||
version = "6.1";
|
version = "6.1.1";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
|
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
|
||||||
sha256 = "fde283bf5899bb9266ce721db44631c9bac4a4864a7c3211de413fd9503178c6";
|
sha256 = "090269522d20e7a5ce85d2251a126745746ebf5e87554c05efe03f3b7173da75";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Various racket executables do run-time searches for these.
|
# Various Racket executables do runtime searches for these.
|
||||||
ffiSharedLibs = "${glib}/lib:${cairo}/lib:${pango}/lib:${gtk}/lib:${libjpeg}/lib:${libpng}/lib:${sqlite}/lib:${openssl}/lib";
|
ffiSharedLibs = "${cairo}/lib:${fontconfig}/lib:${glib}/lib:${gtk}/lib:${libjpeg}/lib:"
|
||||||
|
+ "${libpng}/lib:${openssl}/lib:${pango}/lib:${sqlite}/lib";
|
||||||
|
|
||||||
buildInputs = [ file libtool which makeWrapper fontconfig liberation_ttf sqlite ];
|
buildInputs = [ file fontconfig freefont_ttf libtool makeWrapper sqlite which ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export LD_LIBRARY_PATH=${ffiSharedLibs}:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${ffiSharedLibs}:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
# Chroot builds do not have access to /etc/fonts/fonts.conf, but the Racket bootstrap
|
# Chroot builds do not have access to /etc/fonts/fonts.conf,
|
||||||
# needs a working fontconfig, so here a simple standin is used.
|
# but the Racket bootstrap needs a working fontconfig,
|
||||||
|
# so here a simple temporary stand-in is used.
|
||||||
mkdir chroot-fontconfig
|
mkdir chroot-fontconfig
|
||||||
cat ${fontconfig}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
|
cat ${fontconfig}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
|
||||||
sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
|
sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
|
||||||
echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf
|
echo "<dir>${freefont_ttf}</dir>" >> chroot-fontconfig/fonts.conf
|
||||||
echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
|
echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
|
||||||
|
|
||||||
|
# remove extraneous directories from temporary fonts.conf
|
||||||
|
sed -e 's@<dir></dir>@@g' \
|
||||||
|
-e 's@<dir prefix="xdg">fonts</dir>@@g' \
|
||||||
|
-e 's@<dir>~/.fonts</dir>@@g' \
|
||||||
|
-e 's@<cachedir prefix="xdg">fontconfig</cachedir>@@g' \
|
||||||
|
-e 's@<cachedir>~/.fontconfig</cachedir>@@g' \
|
||||||
|
-i chroot-fontconfig/fonts.conf
|
||||||
|
|
||||||
export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
|
export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
|
||||||
|
|
||||||
cd src
|
cd src
|
||||||
sed -e 's@/usr/bin/uname@'"$(which uname)"'@g' -i configure
|
sed -e 's@/usr/bin/uname@'"$(which uname)"'@g' -i configure
|
||||||
sed -e 's@/usr/bin/file@'"$(which file)"'@g' -i foreign/libffi/configure
|
sed -e 's@/usr/bin/file@'"$(which file)"'@g' -i foreign/libffi/configure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
|
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
|
||||||
@ -41,25 +50,25 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
for p in $(ls $out/bin/) ; do
|
for p in $(ls $out/bin/) ; do
|
||||||
wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}" ;
|
wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}";
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Programming language derived from Scheme (formerly called PLT Scheme)";
|
description = "A programmable programming language";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Racket (formerly called PLT Scheme) is a programming language derived
|
Racket is a full-spectrum programming language. It goes beyond
|
||||||
from Scheme. The Racket project has four primary components: the
|
Lisp and Scheme with dialects that support objects, types,
|
||||||
implementation of Racket, a JIT compiler; DrRacket, the Racket program
|
laziness, and more. Racket enables programmers to link
|
||||||
development environment; the TeachScheme! outreach, an attempt to turn
|
components written in different dialects, and it empowers
|
||||||
Computing and Programming into "an indispensable part of the liberal
|
programmers to create new, project-specific dialects. Racket's
|
||||||
arts curriculum"; and PLaneT, Racket's web-based package
|
libraries support applications from web servers and databases to
|
||||||
distribution system for user-contributed packages.
|
GUIs and charts.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = http://racket-lang.org/;
|
homepage = http://racket-lang.org/;
|
||||||
license = stdenv.lib.licenses.lgpl2Plus; # and licenses of contained libraries
|
license = stdenv.lib.licenses.lgpl3;
|
||||||
maintainers = [ stdenv.lib.maintainers.kkallio ];
|
maintainers = with stdenv.lib.maintainers; [ kkallio henrytill ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, python }:
|
{ stdenv, fetchurl, python }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "clearsilver-0.10.3";
|
name = "clearsilver-0.10.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://www.clearsilver.net/downloads/clearsilver-0.10.3.tar.gz;
|
url = "http://www.clearsilver.net/downloads/${name}.tar.gz";
|
||||||
sha256 = "1lhbbf5rrqxb44y5clga7iifcfrh8sfjwpj4phnr3qabk92wdn3i";
|
sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
|
||||||
};
|
};
|
||||||
|
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{stdenv, fetchurl}:
|
{stdenv, fetchurl}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "cminpack-1.3.2";
|
name = "cminpack-1.3.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://devernay.free.fr/hacks/cminpack/cminpack-1.3.2.tar.gz;
|
url = "http://devernay.free.fr/hacks/cminpack/${name}.tar.gz";
|
||||||
sha256 = "09bqr44wqancbdsc39lvhdz7rci3hknmlrrrzv46skvwx6rgk9x0";
|
sha256 = "1jh3ymxfcy3ykh6gnvds5bbkf38aminvjgc8halck356vkvpnl9v";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
@ -18,7 +18,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://devernay.free.fr/hacks/cminpack/cminpack.html;
|
homepage = http://devernay.free.fr/hacks/cminpack/cminpack.html;
|
||||||
license = "BSD";
|
license = stdenv.lib.licenses.bsd3;
|
||||||
description = "Software for solving nonlinear equations and nonlinear least squares problems";
|
description = "Software for solving nonlinear equations and nonlinear least squares problems";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "HDBC-odbc";
|
pname = "HDBC-odbc";
|
||||||
version = "2.3.1.1";
|
version = "2.4.0.0";
|
||||||
sha256 = "0zypgwy8yxzp69c2775gkzi8591b0l3wncn7vmq11l16ign95fc7";
|
sha256 = "0zjq5j095jyh0axmgnr59fwhh1nhipj6flz77z46kygagygrg2qz";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [ HDBC mtl time utf8String ];
|
buildDepends = [ HDBC mtl time utf8String ];
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "HFuse";
|
pname = "HFuse";
|
||||||
version = "0.2.4.3";
|
version = "0.2.4.4";
|
||||||
sha256 = "1daka673mx0gsnsa04pxani7n4wp93hflzxs3imzy4sgb30p7l01";
|
sha256 = "1wsrf9y90dk27da9pm9m11hnrxwrqwvq6c9799b91a91mc2lxslc";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
extraLibraries = [ fuse ];
|
extraLibraries = [ fuse ];
|
||||||
@ -17,6 +17,6 @@ cabal.mkDerivation (self: {
|
|||||||
description = "HFuse is a binding for the Linux FUSE library";
|
description = "HFuse is a binding for the Linux FUSE library";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.stdenv.lib.platforms.linux;
|
platforms = self.stdenv.lib.platforms.linux;
|
||||||
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
maintainers = with self.stdenv.lib.maintainers; [ andres ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "HandsomeSoup";
|
pname = "HandsomeSoup";
|
||||||
version = "0.3.4";
|
version = "0.3.5";
|
||||||
sha256 = "0xpimys8pb0kzqnfxxf04dbxfmcrry5pzgmagyydcrmafacg0vjb";
|
sha256 = "1d1zanlr1mdxjc69xvbxg5kn5bc08gd960j6lb1x3grhcgmj9krm";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
@ -15,7 +15,6 @@ cabal.mkDerivation (self: {
|
|||||||
];
|
];
|
||||||
testDepends = [ hspec hxt ];
|
testDepends = [ hspec hxt ];
|
||||||
jailbreak = true;
|
jailbreak = true;
|
||||||
doCheck = false;
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/egonSchiele/HandsomeSoup";
|
homepage = "https://github.com/egonSchiele/HandsomeSoup";
|
||||||
description = "Work with HTML more easily in HXT";
|
description = "Work with HTML more easily in HXT";
|
||||||
|
@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
|
|||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [ systemFilepath text ];
|
buildDepends = [ systemFilepath text ];
|
||||||
testDepends = [ hspec systemFilepath text ];
|
testDepends = [ hspec systemFilepath text ];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/rampion/ReadArgs";
|
homepage = "http://github.com/rampion/ReadArgs";
|
||||||
description = "Simple command line argument parsing";
|
description = "Simple command line argument parsing";
|
||||||
|
@ -8,7 +8,7 @@ cabal.mkDerivation (self: {
|
|||||||
sha256 = "1gp04mc6irycwazykl9kpyhkkryn3hbnpn08ih6cjbsm3p8yi8b4";
|
sha256 = "1gp04mc6irycwazykl9kpyhkkryn3hbnpn08ih6cjbsm3p8yi8b4";
|
||||||
buildDepends = [ filepath pureMD5 regexTdfa zlib ];
|
buildDepends = [ filepath pureMD5 regexTdfa zlib ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://src.seereason.com/haskell-unixutils";
|
homepage = "https://github.com/seereason/haskell-unixutils";
|
||||||
description = "A crude interface between Haskell and Unix-like operating systems";
|
description = "A crude interface between Haskell and Unix-like operating systems";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cabal-cargs";
|
pname = "cabal-cargs";
|
||||||
version = "0.7.3";
|
version = "0.7.4";
|
||||||
sha256 = "10707nja5j9hbx5yj7pq8s9zgfx21n36r4xhs71g70g6hwpciqjb";
|
sha256 = "0dar64xk3bcccyaz2b9v1qc8y63vrm60vb54k8c4n1j6cqzcdp8h";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cabal-lenses";
|
pname = "cabal-lenses";
|
||||||
version = "0.4";
|
version = "0.4.1";
|
||||||
sha256 = "19ryd1qvsc301kdpk0zvw89aqhvk26ccbrgddm9j5m31mn62jl2d";
|
sha256 = "0gkd82g6q8ahrrfmnjzr4r9n5cgdmhpxkqvnsy50k043v0faa0cx";
|
||||||
buildDepends = [ Cabal lens unorderedContainers ];
|
buildDepends = [ Cabal lens unorderedContainers ];
|
||||||
jailbreak = true;
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
|
||||||
|
|
||||||
{ cabal, cairo, gtk2hsBuildtools, libc, mtl, pkgconfig, utf8String
|
|
||||||
, zlib
|
|
||||||
}:
|
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
|
||||||
pname = "cairo";
|
|
||||||
version = "0.12.5.3";
|
|
||||||
sha256 = "1g5wn7dzz8cc7my09igr284j96d795jlnmy1q2hhlvssfhwbbvg7";
|
|
||||||
buildDepends = [ mtl utf8String ];
|
|
||||||
buildTools = [ gtk2hsBuildtools ];
|
|
||||||
extraLibraries = [ cairo libc pkgconfig zlib ];
|
|
||||||
pkgconfigDepends = [ cairo ];
|
|
||||||
meta = {
|
|
||||||
homepage = "http://projects.haskell.org/gtk2hs/";
|
|
||||||
description = "Binding to the Cairo library";
|
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
|
||||||
platforms = self.ghc.meta.platforms;
|
|
||||||
hydraPlatforms = self.stdenv.lib.platforms.none;
|
|
||||||
};
|
|
||||||
})
|
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cgrep";
|
pname = "cgrep";
|
||||||
version = "6.4.6";
|
version = "6.4.7";
|
||||||
sha256 = "13plsh6411k273qllpkcrkakwxcdmw0p6arj0j3gdqa7bbxii99s";
|
sha256 = "1937dvd69igx41sp1ljpghwqz0ki436pv0xmwz6bq1vny0axwmp7";
|
||||||
isLibrary = false;
|
isLibrary = false;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -4,13 +4,14 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "colors";
|
pname = "colors";
|
||||||
version = "0.1.1";
|
version = "0.2";
|
||||||
sha256 = "1i1n05prbp0l3xgx0w2lxzc5r81pcmbzclsamdr7fmjvhvh8blqm";
|
sha256 = "009qkab6m1gnvxc23ayhv5h2v9mpiji5hasiym7a8nm69p8678xa";
|
||||||
buildDepends = [ profunctors ];
|
buildDepends = [ profunctors ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/fumieval/colors";
|
homepage = "https://github.com/fumieval/colors";
|
||||||
description = "A type for colors";
|
description = "A type for colors";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "conduit-combinators";
|
pname = "conduit-combinators";
|
||||||
version = "0.3.0";
|
version = "0.3.0.4";
|
||||||
sha256 = "1ggdzll71a05743x3a8y1n43ais85simlqsng9da2z3qa42a9dz9";
|
sha256 = "1aphk79r3ibpb9gykdnz55isp7kf48jhz4h4vgplb0ndbmz8f8zm";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
base16Bytestring base64Bytestring chunkedData conduit conduitExtra
|
base16Bytestring base64Bytestring chunkedData conduit conduitExtra
|
||||||
monadControl monoTraversable mwcRandom primitive resourcet
|
monadControl monoTraversable mwcRandom primitive resourcet
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "conduit-extra";
|
pname = "conduit-extra";
|
||||||
version = "1.1.4.1";
|
version = "1.1.4.2";
|
||||||
sha256 = "18q2d9ga49gldw4i8a5vnncsr712b21ik0160gdw3czqilvf8nbr";
|
sha256 = "0s2ggca6g2104dylbrkn090xwsfrp0946bhwf7fgpfpg9gi1sz1g";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
attoparsec blazeBuilder conduit filepath monadControl network
|
attoparsec blazeBuilder conduit filepath monadControl network
|
||||||
primitive resourcet stm streamingCommons text transformers
|
primitive resourcet stm streamingCommons text transformers
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "conduit";
|
pname = "conduit";
|
||||||
version = "1.2.2";
|
version = "1.2.2.2";
|
||||||
sha256 = "04wx9c7lybqmrvhw8h6zb9vp5qyqfs9p7a9a2m2yicf1p3p0q4n8";
|
sha256 = "0jabdv91zc64bwk709hkpjd7n4gy2cmsv2dhr5ydv35whmkhyry2";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
exceptions liftedBase mmorph monadControl mtl resourcet
|
exceptions liftedBase mmorph monadControl mtl resourcet
|
||||||
transformers transformersBase void
|
transformers transformersBase void
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "crypto-conduit";
|
pname = "crypto-conduit";
|
||||||
version = "0.5.4";
|
version = "0.5.5";
|
||||||
sha256 = "1z628gj4sf50s7pd6p41c670rz98f8b6p3n2dvl93haczcg53l1n";
|
sha256 = "0zd4smj3rk2x1msl8z8f5y01x4b87rhgm45g26g6c3dsdasn1lyf";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
cereal conduit conduitExtra cryptoApi resourcet transformers
|
cereal conduit conduitExtra cryptoApi resourcet transformers
|
||||||
];
|
];
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cufft";
|
pname = "cufft";
|
||||||
version = "0.1.0.3";
|
version = "0.1.1.0";
|
||||||
sha256 = "1jj1ixacmhwjcb2syv4fglawpya5vmdhdk2xqrw4wwfxw4wc9ypi";
|
sha256 = "0d13nf61698gzh0hcycx1z9bm2xpikkg27bjymsjhfwimvqn7z8h";
|
||||||
buildDepends = [ cuda ];
|
buildDepends = [ cuda ];
|
||||||
buildTools = [ c2hs ];
|
buildTools = [ c2hs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, exceptions, free, monadControl, MonadRandom, mtl
|
{ cabal, bifunctors, exceptions, free, monadControl, MonadRandom
|
||||||
, semigroupoids, semigroups, transformers, transformersBase
|
, mtl, profunctors, semigroupoids, semigroups, transformers
|
||||||
|
, transformersBase
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "either";
|
pname = "either";
|
||||||
version = "4.3.1";
|
version = "4.3.2";
|
||||||
sha256 = "1k7aqy3k0ivpbqhym79q49dx41gnrkn1nw2inkm6gv8dy7bj9h6x";
|
sha256 = "0bmw4qc263fs5ivf94qfzrq26v8kflb13gims7c474d4jhg8g0w1";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
exceptions free monadControl MonadRandom mtl semigroupoids
|
bifunctors exceptions free monadControl MonadRandom mtl profunctors
|
||||||
semigroups transformers transformersBase
|
semigroupoids semigroups transformers transformersBase
|
||||||
];
|
];
|
||||||
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.6";
|
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.6";
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "entropy";
|
pname = "entropy";
|
||||||
version = "0.3.4";
|
version = "0.3.4.1";
|
||||||
sha256 = "1khfvrk49zf0rd90d34983048mxy093ci2qk8866qq0hwi53b0q0";
|
sha256 = "10myxs2a7838sywnlfggpsd7lmvzphl10zdh1vbbi18n3x79gyk0";
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/TomMD/entropy";
|
homepage = "https://github.com/TomMD/entropy";
|
||||||
description = "A platform independent entropy source";
|
description = "A platform independent entropy source";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "extra";
|
pname = "extra";
|
||||||
version = "0.7";
|
version = "0.8";
|
||||||
sha256 = "11839h4915xjgmz8av60pn8qaw3b0ckbpw4l9nq5a77qb9rgpbfs";
|
sha256 = "06ydgniar294i9xzviz7qmr3xpnlkpvyvgigwxqfz50kv77w8ijw";
|
||||||
buildDepends = [ filepath time ];
|
buildDepends = [ filepath time ];
|
||||||
testDepends = [ filepath QuickCheck time ];
|
testDepends = [ filepath QuickCheck time ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, aeson, attoparsec, caseInsensitive, conduit, cryptohash
|
{ cabal, aeson, attoparsec, base16Bytestring, byteable
|
||||||
, dataDefault, failure, hashable, HTTP, httpConduit, httpTypes
|
, caseInsensitive, conduit, cryptohash, dataDefault, failure
|
||||||
, network, text, time, unorderedContainers, vector
|
, hashable, HTTP, httpConduit, httpTypes, network, text, time
|
||||||
|
, unorderedContainers, vector
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "github";
|
pname = "github";
|
||||||
version = "0.11.1";
|
version = "0.13";
|
||||||
sha256 = "0s94ivp3c40zhwwfxa6nzzgwh2frfih8as81i0kidx4ca35wf92k";
|
sha256 = "1vvfrlz6p43mrzskvhp9skh6xbgd5pqcn06wvxw31plpamf5pmzn";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson attoparsec caseInsensitive conduit cryptohash dataDefault
|
aeson attoparsec base16Bytestring byteable caseInsensitive conduit
|
||||||
failure hashable HTTP httpConduit httpTypes network text time
|
cryptohash dataDefault failure hashable HTTP httpConduit httpTypes
|
||||||
unorderedContainers vector
|
network text time unorderedContainers vector
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/fpco/github";
|
homepage = "https://github.com/fpco/github";
|
||||||
|
@ -26,6 +26,7 @@ cabal.mkDerivation (self: {
|
|||||||
description = "Libgit2 backend for gitlib";
|
description = "Libgit2 backend for gitlib";
|
||||||
license = self.stdenv.lib.licenses.mit;
|
license = self.stdenv.lib.licenses.mit;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
|
hydraPlatforms = self.stdenv.lib.platforms.none;
|
||||||
maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
|
maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -18,5 +18,6 @@ cabal.mkDerivation (self: {
|
|||||||
license = self.stdenv.lib.licenses.mit;
|
license = self.stdenv.lib.licenses.mit;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
|
maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
|
||||||
|
|
||||||
{ cabal, glib, gtk2hsBuildtools, libc, pkgconfig, utf8String
|
|
||||||
}:
|
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
|
||||||
pname = "glib";
|
|
||||||
version = "0.12.5.4";
|
|
||||||
sha256 = "1jbqfcsmsghq67lwnk6yifs34lxvh6xfbzxzfryalifb4zglccz6";
|
|
||||||
buildDepends = [ utf8String ];
|
|
||||||
buildTools = [ gtk2hsBuildtools ];
|
|
||||||
extraLibraries = [ libc pkgconfig ];
|
|
||||||
pkgconfigDepends = [ glib ];
|
|
||||||
patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./gtk2hs.patch ];
|
|
||||||
meta = {
|
|
||||||
homepage = "http://projects.haskell.org/gtk2hs/";
|
|
||||||
description = "Binding to the GLIB library for Gtk2Hs";
|
|
||||||
license = self.stdenv.lib.licenses.lgpl21;
|
|
||||||
platforms = self.ghc.meta.platforms;
|
|
||||||
};
|
|
||||||
})
|
|
@ -1,15 +0,0 @@
|
|||||||
Author: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
|
|
||||||
Date: Mon Jul 7 21:28:50 2014 +1200
|
|
||||||
|
|
||||||
Fixes #1
|
|
||||||
|
|
||||||
--- a/glib.cabal.orig 2014-11-03 14:52:40.000000000 -0600
|
|
||||||
+++ b/glib.cabal 2014-11-03 14:52:51.000000000 -0600
|
|
||||||
@@ -36,6 +36,7 @@
|
|
||||||
utf8-string >= 0.2 && < 0.4,
|
|
||||||
containers
|
|
||||||
build-tools: gtk2hsC2hs >= 0.13.8
|
|
||||||
+ cpp-options: -U__BLOCKS__ -D__attribute__(A)=
|
|
||||||
if flag(closure_signals)
|
|
||||||
cpp-options: -DUSE_GCLOSURE_SIGNALS_IMPL
|
|
||||||
c-sources: System/Glib/hsgclosure.ccommit aa22754e04616c354557fc350f96a8f7f331e984
|
|
@ -1,22 +0,0 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
|
||||||
|
|
||||||
{ cabal, cairo, gio, glib, gtk, gtk2hsBuildtools, libc, mtl, pango
|
|
||||||
, pkgconfig, text
|
|
||||||
}:
|
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
|
||||||
pname = "gtk";
|
|
||||||
version = "0.12.5.7";
|
|
||||||
sha256 = "0hax4ixdz523753rc774c8g76bjlj56lsabyl5nwkpnppffpa73w";
|
|
||||||
buildDepends = [ cairo gio glib mtl pango text ];
|
|
||||||
buildTools = [ gtk2hsBuildtools ];
|
|
||||||
extraLibraries = [ libc pkgconfig ];
|
|
||||||
pkgconfigDepends = [ glib gtk ];
|
|
||||||
patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./gtk.patch ];
|
|
||||||
meta = {
|
|
||||||
homepage = "http://projects.haskell.org/gtk2hs/";
|
|
||||||
description = "Binding to the Gtk+ graphical user interface library";
|
|
||||||
license = self.stdenv.lib.licenses.lgpl21;
|
|
||||||
platforms = self.ghc.meta.platforms;
|
|
||||||
};
|
|
||||||
})
|
|
@ -1,10 +0,0 @@
|
|||||||
--- a/gtk.cabal.orig 2014-11-03 15:13:42.000000000 -0600
|
|
||||||
+++ b/gtk.cabal 2014-11-03 15:14:05.000000000 -0600
|
|
||||||
@@ -148,6 +148,7 @@
|
|
||||||
|
|
||||||
build-tools: gtk2hsC2hs >= 0.13.8,
|
|
||||||
gtk2hsHookGenerator, gtk2hsTypeGen
|
|
||||||
+ cpp-options: -U__BLOCKS__ -D__attribute__(A)=
|
|
||||||
|
|
||||||
exposed-modules:
|
|
||||||
Graphics.UI.Gtk
|
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "highlighting-kate";
|
pname = "highlighting-kate";
|
||||||
version = "0.5.9";
|
version = "0.5.11";
|
||||||
sha256 = "025j6d97nwjhhyhdz7bsfhzgpb1ld28va4r8yv7zfh1dvczs6lkr";
|
sha256 = "0jfgz4cyn6fylfrsk1yi0fykir8mhxdniq80h7hy5i2xv7qwf5vw";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hoauth2";
|
pname = "hoauth2";
|
||||||
version = "0.4.2";
|
version = "0.4.3";
|
||||||
sha256 = "08vdrgzn1j02gn2j5apjhnv2lgp7i8xhvibqjcjf4l80spmja2h0";
|
sha256 = "1qmhk9h3rwp29dsjqbgsma4zgzdd6cw1jcryzd17rk32biiiylvg";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hsimport";
|
pname = "hsimport";
|
||||||
version = "0.6.2";
|
version = "0.6.3";
|
||||||
sha256 = "02v32gh5has3y8qk55cpdr0336n2hi33d5aw0ifpg84p89k8kr33";
|
sha256 = "0pmlspz09qj8zb1qpv6dxd25l69hh2ccsyvc37914dis74g9rw03";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
27
pkgs/development/libraries/haskell/hspec-core/default.nix
Normal file
27
pkgs/development/libraries/haskell/hspec-core/default.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
|
{ cabal, ansiTerminal, async, deepseq, ghcPaths, hspecExpectations
|
||||||
|
, hspecMeta, HUnit, QuickCheck, quickcheckIo, random, setenv
|
||||||
|
, silently, tfRandom, time, transformers
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "hspec-core";
|
||||||
|
version = "2.0.1";
|
||||||
|
sha256 = "1yr2hkr1p95bpj5n6hqw20g8imqal6pva4nrvy0hmxdg53jyxcf7";
|
||||||
|
buildDepends = [
|
||||||
|
ansiTerminal async deepseq hspecExpectations HUnit QuickCheck
|
||||||
|
quickcheckIo random setenv tfRandom time transformers
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
ansiTerminal async deepseq ghcPaths hspecExpectations hspecMeta
|
||||||
|
HUnit QuickCheck quickcheckIo random setenv silently tfRandom time
|
||||||
|
transformers
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://hspec.github.io/";
|
||||||
|
description = "A Testing Framework for Haskell";
|
||||||
|
license = self.stdenv.lib.licenses.mit;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -0,0 +1,20 @@
|
|||||||
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
|
{ cabal, filepath, hspecMeta }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "hspec-discover";
|
||||||
|
version = "2.0.1";
|
||||||
|
sha256 = "0k54j1id5yj60kjxs16w4hr52wanc55l131arypcjgf9w4yx3x3w";
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
buildDepends = [ filepath ];
|
||||||
|
testDepends = [ filepath hspecMeta ];
|
||||||
|
noHaddock = true;
|
||||||
|
meta = {
|
||||||
|
homepage = "http://hspec.github.io/";
|
||||||
|
description = "Automatically discover and run Hspec tests";
|
||||||
|
license = self.stdenv.lib.licenses.mit;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -1,19 +1,19 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, ansiTerminal, async, deepseq, filepath, hspecExpectations
|
{ cabal, ansiTerminal, async, deepseq, filepath, hspecExpectations
|
||||||
, HUnit, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
|
, HUnit, QuickCheck, quickcheckIo, random, setenv, time
|
||||||
, transformers
|
, transformers
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hspec-meta";
|
pname = "hspec-meta";
|
||||||
version = "1.12.3";
|
version = "2.0.0";
|
||||||
sha256 = "106wzvramjw18a2wvmfik3z47zshq7yalgax389gx340g3wnrfp7";
|
sha256 = "0x1k2d4nycglzn9l4i32xrampr9fgzjpp4j1jyy7pj89cfl8jc8f";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
ansiTerminal async deepseq filepath hspecExpectations HUnit
|
ansiTerminal async deepseq filepath hspecExpectations HUnit
|
||||||
QuickCheck quickcheckIo random setenv tfRandom time transformers
|
QuickCheck quickcheckIo random setenv time transformers
|
||||||
];
|
];
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,26 +1,17 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
|
{ cabal, hspecCore, hspecDiscover, hspecExpectations, hspecMeta
|
||||||
, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
|
, QuickCheck, stringbuilder, transformers
|
||||||
, random, setenv, silently, stringbuilder, tfRandom, time
|
|
||||||
, transformers
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hspec";
|
pname = "hspec";
|
||||||
version = "1.12.3";
|
version = "2.0.1";
|
||||||
sha256 = "0lqihgsk46lwm4k2nc81pbi1gdfk7qnmjli90bvf4pbbhg5igjkn";
|
sha256 = "05kwxn5sws8gc1v8im2pyirrj5bzc6lnj22q2klgj4mg3apjd0jb";
|
||||||
isLibrary = true;
|
|
||||||
isExecutable = true;
|
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
ansiTerminal async deepseq filepath hspecExpectations HUnit
|
hspecCore hspecDiscover hspecExpectations QuickCheck transformers
|
||||||
QuickCheck quickcheckIo random setenv tfRandom time transformers
|
|
||||||
];
|
|
||||||
testDepends = [
|
|
||||||
ansiTerminal async deepseq filepath ghcPaths hspecExpectations
|
|
||||||
hspecMeta HUnit QuickCheck quickcheckIo random setenv silently
|
|
||||||
stringbuilder tfRandom time transformers
|
|
||||||
];
|
];
|
||||||
|
testDepends = [ hspecCore hspecMeta QuickCheck stringbuilder ];
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://hspec.github.io/";
|
homepage = "http://hspec.github.io/";
|
||||||
|
@ -1,31 +1,16 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
|
{ cabal, hspec, hspecDiscover }:
|
||||||
, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
|
|
||||||
, random, setenv, silently, stringbuilder, tfRandom, time
|
|
||||||
, transformers
|
|
||||||
}:
|
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hspec2";
|
pname = "hspec2";
|
||||||
version = "0.5.1";
|
version = "0.6.1";
|
||||||
sha256 = "1ax507vb0zm5jalp6pvlk1fjfil766pf7w61d1igpxr0s00lnvlq";
|
sha256 = "0zlvm7r46q8yhgx2kx9mfrf6x2f5amdbi3a59fh69dsqs4lbgmf4";
|
||||||
isLibrary = true;
|
buildDepends = [ hspec hspecDiscover ];
|
||||||
isExecutable = true;
|
|
||||||
buildDepends = [
|
|
||||||
ansiTerminal async deepseq filepath hspecExpectations HUnit
|
|
||||||
QuickCheck quickcheckIo random setenv tfRandom time transformers
|
|
||||||
];
|
|
||||||
testDepends = [
|
|
||||||
ansiTerminal async deepseq filepath ghcPaths hspecExpectations
|
|
||||||
hspecMeta HUnit QuickCheck quickcheckIo random setenv silently
|
|
||||||
stringbuilder tfRandom time transformers
|
|
||||||
];
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://hspec.github.io/";
|
homepage = "http://hspec.github.io/";
|
||||||
description = "Alpha version of Hspec 2.0";
|
description = "Alpha version of Hspec 2.0";
|
||||||
license = self.stdenv.lib.licenses.mit;
|
license = self.stdenv.lib.licenses.mit;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
broken = true;
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
14
pkgs/development/libraries/haskell/labeled-tree/default.nix
Normal file
14
pkgs/development/libraries/haskell/labeled-tree/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
|
{ cabal }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "labeled-tree";
|
||||||
|
version = "1.0.0.0";
|
||||||
|
sha256 = "1cnnyic5z5y21hpxpmx66ph34mjyysckgiasmzg7yx202y2ih7s7";
|
||||||
|
meta = {
|
||||||
|
description = "Labeled tree structure";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -1,24 +1,24 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, async, conduit, doctest, exceptions, filepath, free, hspec
|
{ cabal, async, attoparsec, doctest, filepath, free, hspec
|
||||||
, hspecExpectationsLens, httpClient, httpConduit, httpTypes, lens
|
, hspecExpectationsLens, httpClient, httpClientTls, httpTypes, lens
|
||||||
, monadControl, network, networkUri, resourcet, text, transformers
|
, liftedAsync, liftedBase, monadControl, mtl, network, networkUri
|
||||||
, xmlConduit
|
, profunctors, text, transformers, xmlConduit
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "libjenkins";
|
pname = "libjenkins";
|
||||||
version = "0.5.0";
|
version = "0.6.0";
|
||||||
sha256 = "010gid9r3kcajijg7x56c77l93vlbh7fy7akjrg7b73i4zy6jnl7";
|
sha256 = "0rcqmj5myi2wy2acd59gqdfwiiapw1zwzm71bjqb1y66z0rnrkx4";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
async conduit exceptions free httpClient httpConduit httpTypes lens
|
attoparsec free httpClient httpClientTls httpTypes liftedAsync
|
||||||
monadControl network networkUri resourcet text transformers
|
liftedBase monadControl mtl network networkUri profunctors text
|
||||||
xmlConduit
|
transformers
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
async conduit doctest exceptions filepath free hspec
|
async attoparsec doctest filepath free hspec hspecExpectationsLens
|
||||||
hspecExpectationsLens httpClient httpConduit httpTypes lens
|
httpClient httpClientTls httpTypes lens liftedAsync liftedBase
|
||||||
monadControl network networkUri resourcet text transformers
|
monadControl mtl network networkUri profunctors text transformers
|
||||||
xmlConduit
|
xmlConduit
|
||||||
];
|
];
|
||||||
jailbreak = true;
|
jailbreak = true;
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "linear";
|
pname = "linear";
|
||||||
version = "1.11.3";
|
version = "1.13";
|
||||||
sha256 = "12a3qfkyb4h14630k312gpb5j7dxr38bqk5y2lnnafka8hcc6w5n";
|
sha256 = "1gad6dvri7a21v8zx6m2m3ghcvb4zfrra3c4ghrc7ywccxvzmxpc";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
adjunctions binary distributive hashable lens reflection
|
adjunctions binary distributive hashable lens reflection
|
||||||
semigroupoids semigroups tagged transformers unorderedContainers
|
semigroupoids semigroups tagged transformers unorderedContainers
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
|
||||||
|
|
||||||
{ cabal, cairo, glib, gtk2hsBuildtools, libc, mtl, pango, pkgconfig
|
|
||||||
, text
|
|
||||||
}:
|
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
|
||||||
pname = "pango";
|
|
||||||
version = "0.12.5.3";
|
|
||||||
sha256 = "1n64ppz0jqrbzvimbz4avwnx3z0n5z2gbmbmca0hw9wqf9j6y79a";
|
|
||||||
buildDepends = [ cairo glib mtl text ];
|
|
||||||
buildTools = [ gtk2hsBuildtools ];
|
|
||||||
extraLibraries = [ libc pkgconfig ];
|
|
||||||
pkgconfigDepends = [ cairo pango ];
|
|
||||||
patches = self.stdenv.lib.optionals self.stdenv.isDarwin [ ./pango.patch ];
|
|
||||||
meta = {
|
|
||||||
homepage = "http://projects.haskell.org/gtk2hs/";
|
|
||||||
description = "Binding to the Pango text rendering engine";
|
|
||||||
license = self.stdenv.lib.licenses.lgpl21;
|
|
||||||
platforms = self.ghc.meta.platforms;
|
|
||||||
};
|
|
||||||
})
|
|
@ -1,10 +0,0 @@
|
|||||||
--- a/pango.cabal.orig 2014-11-03 15:11:35.000000000 -0600
|
|
||||||
+++ b/pango.cabal 2014-11-03 15:11:57.000000000 -0600
|
|
||||||
@@ -52,6 +52,7 @@
|
|
||||||
build-depends: base < 4
|
|
||||||
|
|
||||||
build-tools: gtk2hsC2hs >= 0.13.8, gtk2hsTypeGen
|
|
||||||
+ cpp-options: -U__BLOCKS__ -D__attribute__(A)=
|
|
||||||
|
|
||||||
exposed-modules: Graphics.Rendering.Pango
|
|
||||||
Graphics.Rendering.Pango.Font
|
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "pipes-text";
|
pname = "pipes-text";
|
||||||
version = "0.0.0.13";
|
version = "0.0.0.15";
|
||||||
sha256 = "1sqwrs5y9s16zikwb5w21fvrqf06ld0915kc065ikdcrd6z4sk43";
|
sha256 = "10906gdb9gjhxxmxvmib6kw7py6fl2r4df5bryqvbjvr1afcc3x9";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
pipes pipesBytestring pipesGroup pipesParse pipesSafe
|
pipes pipesBytestring pipesGroup pipesParse pipesSafe
|
||||||
streamingCommons text transformers
|
streamingCommons text transformers
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "rethinkdb";
|
pname = "rethinkdb";
|
||||||
version = "1.15.2.0";
|
version = "1.15.2.1";
|
||||||
sha256 = "1cca6nrdaia5dgq2ah6sfr9qy01iasilw7zdw6k8vp5907alsh0f";
|
sha256 = "017fq9mhqdw78hrnjm9n0nipi182361bxh1qzjpb8djc8azx49b5";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson base64Bytestring binary dataDefault mtl network scientific
|
aeson base64Bytestring binary dataDefault mtl network scientific
|
||||||
text time unorderedContainers utf8String vector
|
text time unorderedContainers utf8String vector
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, SDL2 }:
|
{ cabal, SDL2, transformers }:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "sdl2";
|
pname = "sdl2";
|
||||||
version = "1.2.0";
|
version = "1.3.0";
|
||||||
sha256 = "19q7x74b9ismxmlsblqvfy4w91bspl9n1fjccz8w1qylyilr6ca2";
|
sha256 = "0fi9kjf12qlp64r2pxwc1k9241s23j6xm0dmwdsc18y8f6acvqxa";
|
||||||
|
buildDepends = [ transformers ];
|
||||||
extraLibraries = [ SDL2 ];
|
extraLibraries = [ SDL2 ];
|
||||||
pkgconfigDepends = [ SDL2 ];
|
pkgconfigDepends = [ SDL2 ];
|
||||||
|
noHaddock = true;
|
||||||
meta = {
|
meta = {
|
||||||
description = "Low-level bindings to SDL2";
|
description = "Low-level bindings to SDL2";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "shakespeare";
|
pname = "shakespeare";
|
||||||
version = "2.0.1.1";
|
version = "2.0.2";
|
||||||
sha256 = "0xddm8xby19323d9bcd196b1ninlvfkv5b93w1da23m7w0hy509p";
|
sha256 = "18yzihkjxgchb4358pbm45xk9zcmpgbp3rr27mx08nj5n0mdkwyy";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson blazeHtml blazeMarkup exceptions parsec systemFileio
|
aeson blazeHtml blazeMarkup exceptions parsec systemFileio
|
||||||
systemFilepath text time transformers
|
systemFilepath text time transformers
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||||
|
|
||||||
{ cabal, clientsession, configurator, errors
|
{ cabal, clientsession, configurator, errors, lens
|
||||||
, MonadCatchIOTransformers, mtl, postgresqlSimple
|
, MonadCatchIOTransformers, mtl, postgresqlSimple
|
||||||
, resourcePoolCatchio, snap, text, transformers
|
, resourcePoolCatchio, snap, text, transformers
|
||||||
, unorderedContainers
|
, unorderedContainers
|
||||||
@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "snaplet-postgresql-simple";
|
pname = "snaplet-postgresql-simple";
|
||||||
version = "0.5";
|
version = "0.6";
|
||||||
sha256 = "0pzn0lg1slrllrrx1n9s1kp1pmq2ahrkjypcwnnld8zxzvz4g5jm";
|
sha256 = "042mpyj84d089pr2qjix9fvzfj4ir74kjkdx3jg84jwn602lhzi6";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
clientsession configurator errors MonadCatchIOTransformers mtl
|
clientsession configurator errors lens MonadCatchIOTransformers mtl
|
||||||
postgresqlSimple resourcePoolCatchio snap text transformers
|
postgresqlSimple resourcePoolCatchio snap text transformers
|
||||||
unorderedContainers
|
unorderedContainers
|
||||||
];
|
];
|
||||||
@ -20,7 +20,5 @@ cabal.mkDerivation (self: {
|
|||||||
description = "postgresql-simple snaplet for the Snap Framework";
|
description = "postgresql-simple snaplet for the Snap Framework";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
hydraPlatforms = self.stdenv.lib.platforms.none;
|
|
||||||
broken = true;
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "system-fileio";
|
pname = "system-fileio";
|
||||||
version = "0.3.14";
|
version = "0.3.15";
|
||||||
sha256 = "1x5cricx2n1wwvdad4i3q8s3gb28a129v3kkj9rn9803xh43zh29";
|
sha256 = "06cnr3hzw8xd75529nfqajgb5xy5i4ddqybgjw1v1nwpq04mhihi";
|
||||||
buildDepends = [ systemFilepath text time ];
|
buildDepends = [ systemFilepath text time ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
chell systemFilepath temporary text time transformers
|
chell systemFilepath temporary text time transformers
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "terminal-size";
|
pname = "terminal-size";
|
||||||
version = "0.2.1.0";
|
version = "0.3.0";
|
||||||
sha256 = "0d41af1is3vdb1kgd8dk82fags86bgs67vkbzpdhjdwa3aimsxgn";
|
sha256 = "0g8v08d20hlfsah9dlgv2v2pzj0m4dva0zp6zi4jrkxjhg6vi7bw";
|
||||||
meta = {
|
meta = {
|
||||||
description = "Get terminal window height and width";
|
description = "Get terminal window height and width";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "twitter-conduit";
|
pname = "twitter-conduit";
|
||||||
version = "0.0.7";
|
version = "0.0.8";
|
||||||
sha256 = "1xwfyhjkbdl19b7cpw12lgnjzqhpiqvfhag2l8zhks21yv0l3kg0";
|
sha256 = "16yxf9qdy1x2w4l4ix1kp1a9vcgmd1cvkqffkj52rzckcjpyd6fs";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
, ghcPaths, httpConduit, httpReverseProxy, httpTypes, liftedBase
|
, ghcPaths, httpConduit, httpReverseProxy, httpTypes, liftedBase
|
||||||
, network, optparseApplicative, parsec, projectTemplate, resourcet
|
, network, optparseApplicative, parsec, projectTemplate, resourcet
|
||||||
, shakespeare, split, streamingCommons, systemFileio
|
, shakespeare, split, streamingCommons, systemFileio
|
||||||
, systemFilepath, tar, text, time, transformers, unixCompat
|
, systemFilepath, tar, text, time, transformers, transformersCompat
|
||||||
, unorderedContainers, wai, waiExtra, warp, yaml, zlib
|
, unixCompat, unorderedContainers, wai, waiExtra, warp, yaml, zlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "yesod-bin";
|
pname = "yesod-bin";
|
||||||
version = "1.4.0.5";
|
version = "1.4.0.6";
|
||||||
sha256 = "06rwmcag0vlj8q647mwimk5fsjfmrxc6d1yg95b7a2g48rh1m25x";
|
sha256 = "1sx8fwi191zzq4p4lmmvk430dgf0zkik01ckxnkswvazmbjlm5vj";
|
||||||
isLibrary = false;
|
isLibrary = false;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
@ -20,8 +20,9 @@ cabal.mkDerivation (self: {
|
|||||||
dataDefaultClass fileEmbed filepath fsnotify ghcPaths httpConduit
|
dataDefaultClass fileEmbed filepath fsnotify ghcPaths httpConduit
|
||||||
httpReverseProxy httpTypes liftedBase network optparseApplicative
|
httpReverseProxy httpTypes liftedBase network optparseApplicative
|
||||||
parsec projectTemplate resourcet shakespeare split streamingCommons
|
parsec projectTemplate resourcet shakespeare split streamingCommons
|
||||||
systemFileio systemFilepath tar text time transformers unixCompat
|
systemFileio systemFilepath tar text time transformers
|
||||||
unorderedContainers wai waiExtra warp yaml zlib
|
transformersCompat unixCompat unorderedContainers wai waiExtra warp
|
||||||
|
yaml zlib
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.yesodweb.com/";
|
homepage = "http://www.yesodweb.com/";
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "yesod-core";
|
pname = "yesod-core";
|
||||||
version = "1.4.3";
|
version = "1.4.3.1";
|
||||||
sha256 = "1mglavffzvav4dzwqq70agz5rd4bdb66p40qa445fq1dxwbwcq6i";
|
sha256 = "11zds9zh6vpc83vv8aizd8vm5ajlnqdha5l0rz35n75c21iygg3w";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
|
aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
|
||||||
clientsession conduit conduitExtra cookie dataDefault deepseq
|
clientsession conduit conduitExtra cookie dataDefault deepseq
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user