Merge branch 'master' into staging

Conflicts (simple):
	pkgs/development/lisp-modules/clwrapper/setup-hook.sh
This commit is contained in:
Vladimír Čunát 2014-11-14 14:28:23 +01:00
commit b4af993c3f
151 changed files with 6654 additions and 1254 deletions

View File

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

View File

@ -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
shouldnt be hard-coded.</para></note></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 &lt;pool-name&gt;", 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}";

View File

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

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

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

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

View File

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

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

View 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 &quot;paper.type&quot;"
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>

View File

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

View File

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

View File

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

View File

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

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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