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>:
<programlisting>
{buildPerlPackage, fetchurl, db}:
{ buildPerlPackage, fetchurl, db }:
buildPerlPackage rec {
name = "BerkeleyDB-0.36";
@ -191,45 +191,424 @@ you need it.</para>
</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>
Python packages that
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link>,
which many Python packages do nowadays, can be built very simply using
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.)
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link> or <literal>distutils</literal>,
can be built using the <varname>buildPythonPackage</varname> function as documented below.
</para>
<para>
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>.
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>
All packages depending on any Python interpreter get appended <varname>$out/${python.libPrefix}/site-packages</varname>
to <literal>$PYTHONPATH</literal> if such directory exists.
</para>
<variablelist>
<title>
Useful attributes on interpreters packages:
</title>
<varlistentry>
<term><varname>libPrefix</varname></term>
<listitem><para>
Name of the folder in <literal>${python}/lib/</literal> for corresponding interpreter.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>interpreter</varname></term>
<listitem><para>
Alias for <literal>${python}/bin/${executable}.</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>buildEnv</varname></term>
<listitem><para>
Function to build python interpreter environments with extra packages bundled together.
See <xref linkend="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>

View File

@ -1120,12 +1120,9 @@ echo @foo@
<varlistentry>
<term>Python</term>
<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
variable.</para>
<note><para>This should be generalised: the Python version
shouldnt be hard-coded.</para></note></listitem>
variable.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -223,4 +223,14 @@ rec {
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>";
falsifian = "James Cook <james.cook@utoronto.ca>";
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
@ -80,6 +81,7 @@
jcumming = "Jack Cummings <jack@mudshark.org>";
jgeerds = "Jascha Geerds <jg@ekby.de>";
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
joamaki = "Jussi Maki <joamaki@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>";
jwiegley = "John Wiegley <johnw@newartisans.com>";

View File

@ -45,6 +45,9 @@ with lib;
# Add support for cow filesystems and their utilities
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.
users.extraUsers.root.initialHashedPassword = "";
}

View File

@ -476,6 +476,14 @@ 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);
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
@ -491,6 +499,7 @@ EOF
$bootLoaderConfig
# networking.hostName = "nixos"; # Define your hostname.
networking.hostId = "$hostIdHex";
# networking.wireless.enable = true; # Enables wireless.
# Select internationalisation properties.

View File

@ -158,6 +158,7 @@
seeks = 148;
prosody = 149;
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!

View File

@ -221,6 +221,7 @@
./services/networking/ddclient.nix
./services/networking/dhcpcd.nix
./services/networking/dhcpd.nix
./services/networking/dnscrypt-proxy.nix
./services/networking/dnsmasq.nix
./services/networking/ejabberd.nix
./services/networking/firewall.nix
@ -386,8 +387,10 @@
./virtualisation/containers.nix
./virtualisation/docker.nix
./virtualisation/libvirtd.nix
./virtualisation/lxc.nix
#./virtualisation/nova.nix
./virtualisation/openvswitch.nix
./virtualisation/parallels-guest.nix
./virtualisation/virtualbox-guest.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
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}
'';

View File

@ -79,7 +79,7 @@ in
{ description = "MiniDLNA Server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
after = [ "network.target" "local-fs.target" ];
preStart =
''

View File

@ -98,6 +98,9 @@ let
# Authorization: is the user allowed access?
"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.
"ext_filter" "include" "log_config" "env" "mime_magic"
"cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"

View File

@ -122,6 +122,9 @@ for o in $(cat /proc/cmdline); do
esac
done
# Set hostid before modules are loaded.
# This is needed by the spl/zfs modules.
@setHostId@
# Load the required kernel modules.
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
# 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.
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"
fail
fi

View File

@ -190,6 +190,15 @@ let
fsInfo =
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));
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:
# - crontab for scrubs, etc
# - zfs tunables
# - /etc/zfs/zpool.cache handling
with utils;
with lib;
let
@ -31,6 +30,20 @@ let
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
{
@ -38,28 +51,73 @@ in
###### interface
options = {
boot.spl.hostid = mkOption {
default = "";
example = "0xdeadbeef";
description = ''
ZFS uses a system's hostid to determine if a storage pool (zpool) is
native to this system, and should thus be imported automatically.
Unfortunately, this hostid can change under linux from boot to boot (by
changing network adapters, for instance). Specify a unique 32 bit hostid in
hex here for zfs to prevent getting a random hostid between boots and having to
manually import pools.
'';
};
boot.zfs = {
useGit = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Use the git version of the SPL and ZFS packages.
Note that these are unreleased versions, with less testing, and therefore
may be more unstable.
'';
};
boot.zfs.useGit = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Use the git version of the SPL and ZFS packages.
Note that these are unreleased versions, with less testing, and therefore
may be more unstable.
'';
extraPools = mkOption {
type = types.listOf types.str;
default = [];
example = [ "tank" "data" ];
description = ''
Name or GUID of extra ZFS pools that you wish to import during boot.
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 = {
@ -124,12 +182,20 @@ in
config = mkMerge [
(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 = {
kernelModules = [ "spl" "zfs" ] ;
extraModulePackages = [ splPkg zfsPkg ];
extraModprobeConfig = mkIf (cfgSpl.hostid != "") ''
options spl spl_hostid=${cfgSpl.hostid}
'';
};
boot.initrd = mkIf inInitrd {
@ -142,50 +208,84 @@ in
cp -pdv ${zfsPkg}/lib/lib*.so* $out/lib
cp -pdv ${pkgs.zlib}/lib/lib*.so* $out/lib
'';
postDeviceCommands =
''
zpool import -f -a
'';
postDeviceCommands = concatStringsSep "\n" ([''
ZFS_FORCE="${optionalString cfgZfs.forceImportRoot "-f"}"
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 {
zfsSupport = true;
};
systemd.services."zpool-import" = {
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;
};
environment.etc."zfs/zed.d".source = "${zfsPkg}/etc/zfs/zed.d/*";
system.fsPackages = [ zfsPkg ]; # XXX: needed? zfs doesn't have (need) a fsck
environment.systemPackages = [ zfsPkg ];
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 {
systemd.services."zfs-snapshot-frequent" = {
description = "ZFS auto-snapshotting every 15 mins";
after = [ "zpool-import.service" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${zfsAutoSnap} frequent ${toString cfgSnapshots.frequent}";
@ -196,7 +296,7 @@ in
systemd.services."zfs-snapshot-hourly" = {
description = "ZFS auto-snapshotting every hour";
after = [ "zpool-import.service" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${zfsAutoSnap} hourly ${toString cfgSnapshots.hourly}";
@ -207,7 +307,7 @@ in
systemd.services."zfs-snapshot-daily" = {
description = "ZFS auto-snapshotting every day";
after = [ "zpool-import.service" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${zfsAutoSnap} daily ${toString cfgSnapshots.daily}";
@ -218,7 +318,7 @@ in
systemd.services."zfs-snapshot-weekly" = {
description = "ZFS auto-snapshotting every week";
after = [ "zpool-import.service" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${zfsAutoSnap} weekly ${toString cfgSnapshots.weekly}";
@ -229,7 +329,7 @@ in
systemd.services."zfs-snapshot-monthly" = {
description = "ZFS auto-snapshotting every month";
after = [ "zpool-import.service" ];
after = [ "zfs-import.target" ];
serviceConfig = {
Type = "oneshot";
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
{
@ -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 {
default = true;
description = ''
@ -513,10 +531,15 @@ in
config = {
assertions =
flip map interfaces (i: {
(flip map interfaces (i: {
assertion = i.subnetMask == null;
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 = [ ]
++ optional cfg.enableIPv6 "ipv6"
@ -872,14 +895,29 @@ in
# clear it if it's not configured in the NixOS configuration,
# since it may have been set by dhcpcd in the meantime.
system.activationScripts.hostname =
optionalString (config.networking.hostName != "") ''
hostname "${config.networking.hostName}"
optionalString (cfg.hostName != "") ''
hostname "${cfg.hostName}"
'';
system.activationScripts.domain =
optionalString (config.networking.domain != "") ''
domainname "${config.networking.domain}"
optionalString (cfg.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 =
''
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 {
name = "yoshimi-${version}";
version = "1.2.4";
version = "1.2.5";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "0wz2bc0x0h989schwzqjj6sx9hvzxkw4jrkflwhyrzjini1pvkxz";
sha256 = "0lixrxv0wds3p50kmy9k166qhavdjkhlxs432s248hk43k7n6c1h";
};
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 {
name = "jedit-${version}";
src = fetchurl {
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";
installPhase = ''
mkdir -p $out/share/jEdit
cp build/jedit.jar $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
cp -r build/jedit.jar doc icons keymaps macros modes startup $out/share/jEdit
sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
mkdir -p $out/share/applications
@ -44,9 +59,11 @@ stdenv.mkDerivation {
chmod +x $out/bin/jedit
'';
meta = {
meta = with stdenv.lib; {
description = "Mature programmer's text editor (Java based)";
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;
tclSupport = config.vim.tcl 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
# by default, compile with darwin support if we're compiling on darwin, but

View File

@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
HOME=$TMPDIR
'';
configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ];
doCheck = true;
enableParallelBuilding = true;
@ -45,5 +47,6 @@ stdenv.mkDerivation rec {
homepage = "http://www.bitcoin.org/";
maintainers = [ maintainers.roconnor ];
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-2.9.0";
name = "calibre-2.10.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0g6vhah736ps88maw3ggn7pcvnmani2mp8b29ksasv0683q7lldw";
sha256 = "06nya8r3bfkgfjsl83fl6l6g3ccw3mpmn3kih4i51gpcgma3aa6b";
};
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
version = "1.07.98";
version = "1.08.02";
in
stdenv.mkDerivation {
name = "qtbitcointrader-${version}";
src = fetchurl {
url = "mirror://sourceforge/bitcointrader/SRC/QtBitcoinTrader-${version}.tar.gz";
sha256 = "1irz17q71fx64dfkmgajlyva7d1wifv4bxgb2iwz7d69rvhzaqzx";
src = fetchFromGitHub {
owner = "JulyIGHOR";
repo = "QtBitcoinTrader";
rev = "452db3ee9447b8f9e7d63253f834b31394b23d92";
sha256 = "1l2a021dy2j4sr4nmq7wn27r2zli9nigwbviqzain3nlyzq9fjpg";
};
buildInputs = [ qt4 ];
buildInputs = [ qt ];
postUnpack = "sourceRoot=\${sourceRoot}/src";
@ -23,11 +25,11 @@ stdenv.mkDerivation {
QtBitcoinTrader_Desktop.pro
'';
meta = {
description = "Secure bitcoin trading client";
homepage = http://qtopentrader.com;
license = stdenv.lib.licenses.lgpl21Plus;
platforms = stdenv.lib.platforms.linux; # arbitrary choice
maintainers = [ stdenv.lib.maintainers.emery ];
};
}
meta = with stdenv.lib;
{ description = "Secure bitcoin trading client";
homepage = https://centrabit.com/;
license = licenses.lgpl3;
platforms = platforms.linux; # arbitrary choice
maintainers = [ maintainers.emery ];
};
}

View File

@ -36,7 +36,7 @@
let
# -> http://get.adobe.com/flashplayer/
version = "11.2.202.411";
version = "11.2.202.418";
src =
if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec {
inherit version;
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
if debug then
@ -60,7 +60,7 @@ let
else rec {
inherit version;
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";

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 }:
stdenv.mkDerivation rec {
name = "ettercap-${version}";
version = "0.8.0";
version = "0.8.1";
src = fetchurl {
url = "https://github.com/Ettercap/ettercap/archive/v${version}.tar.gz";
sha256 = "1g69782wk2hag8h76jqy81szw5jhvqqnn3m4v0wjkbv9zjxy44w0";
src = fetchFromGitHub {
owner = "Ettercap";
repo = "ettercap";
rev = "v${version}";
sha256 = "017398fiqcl2x1bjfnz97y6j8v5n83gbsniy73vbx21kmhh5pacg";
};
buildInputs = [
@ -16,7 +18,8 @@ stdenv.mkDerivation rec {
];
preConfigure = ''
substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc
substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \
--replace /usr \$\{INSTALL_PREFIX\}
'';
cmakeFlags = [
@ -24,10 +27,11 @@ stdenv.mkDerivation rec {
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
];
meta = {
meta = with stdenv.lib; {
description = "Comprehensive suite for man in the middle attacks";
homepage = http://ettercap.github.io/ettercap/;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ pSub ];
};
}

View File

@ -55,7 +55,7 @@ stdenv.mkDerivation {
# Install git-subtree.
pushd contrib/subtree
make
make install install-doc
make install ${stdenv.lib.optionalString withManual "install-doc"}
popd
rm -rf contrib/subtree

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "github-backup";
version = "1.20141031";
sha256 = "1rg8hz7g12k6h3vflm51l6gdi0wckmxwdq1213ykrbl8w8bvlkm8";
version = "1.20141110";
sha256 = "0675zcijfap757076r3j7js4iadnj1jbihmchf6ikzaanczmq1kg";
isLibrary = false;
isExecutable = true;
buildDepends = [

View File

@ -1,25 +1,20 @@
{ stdenv, fetchurl, gcc, unzip, curl }:
{ stdenv, fetchurl, unzip, curl }:
stdenv.mkDerivation {
name = "dmd-2.064.2";
name = "dmd-2.066.1";
src = fetchurl {
url = http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip;
sha256 = "1i0jdybigffwyb7c43j0c4aayxx3b93zzqrjxyw6zgp06yhi06pm";
url = http://downloads.dlang.org/releases/2014/dmd.2.066.1.zip;
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 = ''
cd src/dmd
make -f posix.mak INSTALL_DIR=$out
export DMD=$PWD/dmd
cd ../druntime
cd ../druntime
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
cd ../phobos
make -f posix.mak INSTALL_DIR=$out DMD=$DMD
@ -28,25 +23,36 @@ stdenv.mkDerivation {
installPhase = ''
cd src/dmd
tee dmd.conf.default << EOF
[Environment]
DFLAGS=-I$out/import -L-L$out/lib
EOF
mkdir $out
mkdir $out/bin
cp dmd $out/bin
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
make -f posix.mak INSTALL_DIR=$out install
cd ../..
mkdir $out/lib
${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";
homepage = http://dlang.org/;
license = "open source, see included files";
maintainers = with stdenv.lib.maintainers; [ vlstill ];
platforms = stdenv.lib.platforms.unix;
license = licenses.free; # parts under different licenses
platforms = platforms.unix;
};
}

View File

@ -22,9 +22,15 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
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;
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 {
name = "rdmd-2.064";
src = fetchurl {
url = https://raw2.github.com/D-Programming-Language/tools/2.064/rdmd.d;
sha256 = "0b1g3ng6bkanvg00r6xb4ycpbh9x8b9dw589av665azxbcraqrs1";
name = "rdmd-src";
};
name = "rdmd-20141113";
buildInputs = [ dmd ];
builder = writeText "drmd-builder.sh" ''
source $stdenv/setup
cp $src rdmd.d
dmd rdmd.d
mkdir -p $out/bin
cp rdmd $out/bin/
src = fetchgit {
url = git://github.com/D-Programming-Language/tools.git;
rev = "f496c68ee4e776597bd7382aa47f05da698a69e";
sha256 = "0vbhmz8nbh8ayml4vad0239kfg982vqfyqqrjv6wrlnjah97n5ms";
};
buildPhase = ''
dmd rdmd.d
'';
installPhase = ''
mkdir -p $out/bin
cp rdmd $out/bin/
'';
meta = {
description = "Wrapper for D language compiler";
homepage = http://dlang.org/rdmd.html;
license = lib.licenses.boost;
maintainers = with stdenv.lib.maintainers; [ vlstill ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, sbclBootstrap, clisp}:
{ stdenv, fetchurl, sbclBootstrap, clisp, which}:
stdenv.mkDerivation rec {
name = "sbcl-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0nmb9amygr5flzk2z9fa6wzwqknbgd2qrkybxkxkamvbdwyayvzr";
};
buildInputs = [ ]
buildInputs = [ which ]
++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
++ (stdenv.lib.optional stdenv.isLinux clisp)
;
@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
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)))'
# Fix software version retrieval
sed -e "s@/bin/uname@$(which uname)@g" -i src/code/*-os.lisp
# Fix the tests
sed -e '/deftest pwent/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
version = "2.0.1";
version = "2.0.2";
in stdenv.mkDerivation {
name = "nix-exec-${version}";
src = fetchurl {
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
sha256 = "1iyz19c15yw0p5lgfbfh8arja2cy3apx5697cm671j4qzjkws32p";
sha256 = "0vgvvj0qywx9a1ihc8nddc3fcw69dinf136spw4i7qz4bszbs9j5";
};
buildInputs = [ pkgconfig nix git ];

View File

@ -95,11 +95,12 @@ let
--set LIBRARY_PATH "${LIBRARY_PATH}"
'';
passthru = {
passthru = rec {
inherit zlibSupport libPrefix;
executable = "pypy";
isPypy = true;
buildEnv = callPackage ../../python/wrapper.nix { python = self; };
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -93,6 +93,7 @@ let
libPrefix = "python${majorVersion}";
executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages";
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -101,6 +101,7 @@ let
libPrefix = "python${majorVersion}";
executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages";
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -80,6 +80,7 @@ stdenv.mkDerivation {
isPy32 = true;
is_py3k = true; # deprecated
sitePackages = "lib/${libPrefix}/site-packages";
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -81,6 +81,7 @@ stdenv.mkDerivation {
isPy33 = true;
is_py3k = true; # deprecated
sitePackages = "lib/${libPrefix}/site-packages";
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -83,6 +83,7 @@ stdenv.mkDerivation {
isPy34 = true;
is_py3k = true; # deprecated
sitePackages = "lib/${libPrefix}/site-packages";
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;

View File

@ -1,38 +1,47 @@
{ stdenv, fetchurl, cairo, file, pango, glib, gtk
, which, libtool, makeWrapper, libjpeg, libpng
, fontconfig, liberation_ttf, sqlite, openssl } :
{ stdenv, fetchurl, cairo, file, fontconfig, glib, gtk, freefont_ttf
, libjpeg, libpng, libtool, makeWrapper, openssl, pango, sqlite, which } :
stdenv.mkDerivation rec {
pname = "racket";
version = "6.1";
version = "6.1.1";
name = "${pname}-${version}";
src = fetchurl {
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
sha256 = "fde283bf5899bb9266ce721db44631c9bac4a4864a7c3211de413fd9503178c6";
sha256 = "090269522d20e7a5ce85d2251a126745746ebf5e87554c05efe03f3b7173da75";
};
# Various racket executables do run-time searches for these.
ffiSharedLibs = "${glib}/lib:${cairo}/lib:${pango}/lib:${gtk}/lib:${libjpeg}/lib:${libpng}/lib:${sqlite}/lib:${openssl}/lib";
# Various Racket executables do runtime searches for these.
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 = ''
export LD_LIBRARY_PATH=${ffiSharedLibs}:$LD_LIBRARY_PATH
# Chroot builds do not have access to /etc/fonts/fonts.conf, but the Racket bootstrap
# needs a working fontconfig, so here a simple standin is used.
# Chroot builds do not have access to /etc/fonts/fonts.conf,
# but the Racket bootstrap needs a working fontconfig,
# so here a simple temporary stand-in is used.
mkdir chroot-fontconfig
cat ${fontconfig}/etc/fonts/fonts.conf > 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
# 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
cd src
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" ];
@ -41,25 +50,25 @@ stdenv.mkDerivation rec {
postInstall = ''
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
'';
meta = {
description = "Programming language derived from Scheme (formerly called PLT Scheme)";
description = "A programmable programming language";
longDescription = ''
Racket (formerly called PLT Scheme) is a programming language derived
from Scheme. The Racket project has four primary components: the
implementation of Racket, a JIT compiler; DrRacket, the Racket program
development environment; the TeachScheme! outreach, an attempt to turn
Computing and Programming into "an indispensable part of the liberal
arts curriculum"; and PLaneT, Racket's web-based package
distribution system for user-contributed packages.
Racket is a full-spectrum programming language. It goes beyond
Lisp and Scheme with dialects that support objects, types,
laziness, and more. Racket enables programmers to link
components written in different dialects, and it empowers
programmers to create new, project-specific dialects. Racket's
libraries support applications from web servers and databases to
GUIs and charts.
'';
homepage = http://racket-lang.org/;
license = stdenv.lib.licenses.lgpl2Plus; # and licenses of contained libraries
maintainers = [ stdenv.lib.maintainers.kkallio ];
license = stdenv.lib.licenses.lgpl3;
maintainers = with stdenv.lib.maintainers; [ kkallio henrytill ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, python }:
stdenv.mkDerivation {
name = "clearsilver-0.10.3";
stdenv.mkDerivation rec {
name = "clearsilver-0.10.5";
src = fetchurl {
url = http://www.clearsilver.net/downloads/clearsilver-0.10.3.tar.gz;
sha256 = "1lhbbf5rrqxb44y5clga7iifcfrh8sfjwpj4phnr3qabk92wdn3i";
url = "http://www.clearsilver.net/downloads/${name}.tar.gz";
sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
};
builder = ./builder.sh;

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "cminpack-1.3.2";
stdenv.mkDerivation rec {
name = "cminpack-1.3.4";
src = fetchurl {
url = http://devernay.free.fr/hacks/cminpack/cminpack-1.3.2.tar.gz;
sha256 = "09bqr44wqancbdsc39lvhdz7rci3hknmlrrrzv46skvwx6rgk9x0";
url = "http://devernay.free.fr/hacks/cminpack/${name}.tar.gz";
sha256 = "1jh3ymxfcy3ykh6gnvds5bbkf38aminvjgc8halck356vkvpnl9v";
};
patchPhase = ''
@ -18,7 +18,7 @@ stdenv.mkDerivation {
meta = {
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";
};

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "HDBC-odbc";
version = "2.3.1.1";
sha256 = "0zypgwy8yxzp69c2775gkzi8591b0l3wncn7vmq11l16ign95fc7";
version = "2.4.0.0";
sha256 = "0zjq5j095jyh0axmgnr59fwhh1nhipj6flz77z46kygagygrg2qz";
isLibrary = true;
isExecutable = true;
buildDepends = [ HDBC mtl time utf8String ];

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "HFuse";
version = "0.2.4.3";
sha256 = "1daka673mx0gsnsa04pxani7n4wp93hflzxs3imzy4sgb30p7l01";
version = "0.2.4.4";
sha256 = "1wsrf9y90dk27da9pm9m11hnrxwrqwvq6c9799b91a91mc2lxslc";
isLibrary = true;
isExecutable = true;
extraLibraries = [ fuse ];
@ -17,6 +17,6 @@ cabal.mkDerivation (self: {
description = "HFuse is a binding for the Linux FUSE library";
license = self.stdenv.lib.licenses.bsd3;
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: {
pname = "HandsomeSoup";
version = "0.3.4";
sha256 = "0xpimys8pb0kzqnfxxf04dbxfmcrry5pzgmagyydcrmafacg0vjb";
version = "0.3.5";
sha256 = "1d1zanlr1mdxjc69xvbxg5kn5bc08gd960j6lb1x3grhcgmj9krm";
isLibrary = true;
isExecutable = true;
buildDepends = [
@ -15,7 +15,6 @@ cabal.mkDerivation (self: {
];
testDepends = [ hspec hxt ];
jailbreak = true;
doCheck = false;
meta = {
homepage = "https://github.com/egonSchiele/HandsomeSoup";
description = "Work with HTML more easily in HXT";

View File

@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
isExecutable = true;
buildDepends = [ systemFilepath text ];
testDepends = [ hspec systemFilepath text ];
jailbreak = true;
meta = {
homepage = "http://github.com/rampion/ReadArgs";
description = "Simple command line argument parsing";

View File

@ -8,7 +8,7 @@ cabal.mkDerivation (self: {
sha256 = "1gp04mc6irycwazykl9kpyhkkryn3hbnpn08ih6cjbsm3p8yi8b4";
buildDepends = [ filepath pureMD5 regexTdfa zlib ];
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";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "cabal-cargs";
version = "0.7.3";
sha256 = "10707nja5j9hbx5yj7pq8s9zgfx21n36r4xhs71g70g6hwpciqjb";
version = "0.7.4";
sha256 = "0dar64xk3bcccyaz2b9v1qc8y63vrm60vb54k8c4n1j6cqzcdp8h";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "cabal-lenses";
version = "0.4";
sha256 = "19ryd1qvsc301kdpk0zvw89aqhvk26ccbrgddm9j5m31mn62jl2d";
version = "0.4.1";
sha256 = "0gkd82g6q8ahrrfmnjzr4r9n5cgdmhpxkqvnsy50k043v0faa0cx";
buildDepends = [ Cabal lens unorderedContainers ];
jailbreak = true;
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: {
pname = "cgrep";
version = "6.4.6";
sha256 = "13plsh6411k273qllpkcrkakwxcdmw0p6arj0j3gdqa7bbxii99s";
version = "6.4.7";
sha256 = "1937dvd69igx41sp1ljpghwqz0ki436pv0xmwz6bq1vny0axwmp7";
isLibrary = false;
isExecutable = true;
buildDepends = [

View File

@ -4,13 +4,14 @@
cabal.mkDerivation (self: {
pname = "colors";
version = "0.1.1";
sha256 = "1i1n05prbp0l3xgx0w2lxzc5r81pcmbzclsamdr7fmjvhvh8blqm";
version = "0.2";
sha256 = "009qkab6m1gnvxc23ayhv5h2v9mpiji5hasiym7a8nm69p8678xa";
buildDepends = [ profunctors ];
meta = {
homepage = "https://github.com/fumieval/colors";
description = "A type for colors";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
};
})

View File

@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "conduit-combinators";
version = "0.3.0";
sha256 = "1ggdzll71a05743x3a8y1n43ais85simlqsng9da2z3qa42a9dz9";
version = "0.3.0.4";
sha256 = "1aphk79r3ibpb9gykdnz55isp7kf48jhz4h4vgplb0ndbmz8f8zm";
buildDepends = [
base16Bytestring base64Bytestring chunkedData conduit conduitExtra
monadControl monoTraversable mwcRandom primitive resourcet

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "conduit-extra";
version = "1.1.4.1";
sha256 = "18q2d9ga49gldw4i8a5vnncsr712b21ik0160gdw3czqilvf8nbr";
version = "1.1.4.2";
sha256 = "0s2ggca6g2104dylbrkn090xwsfrp0946bhwf7fgpfpg9gi1sz1g";
buildDepends = [
attoparsec blazeBuilder conduit filepath monadControl network
primitive resourcet stm streamingCommons text transformers

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "conduit";
version = "1.2.2";
sha256 = "04wx9c7lybqmrvhw8h6zb9vp5qyqfs9p7a9a2m2yicf1p3p0q4n8";
version = "1.2.2.2";
sha256 = "0jabdv91zc64bwk709hkpjd7n4gy2cmsv2dhr5ydv35whmkhyry2";
buildDepends = [
exceptions liftedBase mmorph monadControl mtl resourcet
transformers transformersBase void

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "crypto-conduit";
version = "0.5.4";
sha256 = "1z628gj4sf50s7pd6p41c670rz98f8b6p3n2dvl93haczcg53l1n";
version = "0.5.5";
sha256 = "0zd4smj3rk2x1msl8z8f5y01x4b87rhgm45g26g6c3dsdasn1lyf";
buildDepends = [
cereal conduit conduitExtra cryptoApi resourcet transformers
];

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "cufft";
version = "0.1.0.3";
sha256 = "1jj1ixacmhwjcb2syv4fglawpya5vmdhdk2xqrw4wwfxw4wc9ypi";
version = "0.1.1.0";
sha256 = "0d13nf61698gzh0hcycx1z9bm2xpikkg27bjymsjhfwimvqn7z8h";
buildDepends = [ cuda ];
buildTools = [ c2hs ];
meta = {

View File

@ -1,16 +1,17 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, exceptions, free, monadControl, MonadRandom, mtl
, semigroupoids, semigroups, transformers, transformersBase
{ cabal, bifunctors, exceptions, free, monadControl, MonadRandom
, mtl, profunctors, semigroupoids, semigroups, transformers
, transformersBase
}:
cabal.mkDerivation (self: {
pname = "either";
version = "4.3.1";
sha256 = "1k7aqy3k0ivpbqhym79q49dx41gnrkn1nw2inkm6gv8dy7bj9h6x";
version = "4.3.2";
sha256 = "0bmw4qc263fs5ivf94qfzrq26v8kflb13gims7c474d4jhg8g0w1";
buildDepends = [
exceptions free monadControl MonadRandom mtl semigroupoids
semigroups transformers transformersBase
bifunctors exceptions free monadControl MonadRandom mtl profunctors
semigroupoids semigroups transformers transformersBase
];
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.6";
meta = {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "entropy";
version = "0.3.4";
sha256 = "1khfvrk49zf0rd90d34983048mxy093ci2qk8866qq0hwi53b0q0";
version = "0.3.4.1";
sha256 = "10myxs2a7838sywnlfggpsd7lmvzphl10zdh1vbbi18n3x79gyk0";
meta = {
homepage = "https://github.com/TomMD/entropy";
description = "A platform independent entropy source";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "extra";
version = "0.7";
sha256 = "11839h4915xjgmz8av60pn8qaw3b0ckbpw4l9nq5a77qb9rgpbfs";
version = "0.8";
sha256 = "06ydgniar294i9xzviz7qmr3xpnlkpvyvgigwxqfz50kv77w8ijw";
buildDepends = [ filepath time ];
testDepends = [ filepath QuickCheck time ];
meta = {

View File

@ -1,18 +1,19 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, aeson, attoparsec, caseInsensitive, conduit, cryptohash
, dataDefault, failure, hashable, HTTP, httpConduit, httpTypes
, network, text, time, unorderedContainers, vector
{ cabal, aeson, attoparsec, base16Bytestring, byteable
, caseInsensitive, conduit, cryptohash, dataDefault, failure
, hashable, HTTP, httpConduit, httpTypes, network, text, time
, unorderedContainers, vector
}:
cabal.mkDerivation (self: {
pname = "github";
version = "0.11.1";
sha256 = "0s94ivp3c40zhwwfxa6nzzgwh2frfih8as81i0kidx4ca35wf92k";
version = "0.13";
sha256 = "1vvfrlz6p43mrzskvhp9skh6xbgd5pqcn06wvxw31plpamf5pmzn";
buildDepends = [
aeson attoparsec caseInsensitive conduit cryptohash dataDefault
failure hashable HTTP httpConduit httpTypes network text time
unorderedContainers vector
aeson attoparsec base16Bytestring byteable caseInsensitive conduit
cryptohash dataDefault failure hashable HTTP httpConduit httpTypes
network text time unorderedContainers vector
];
meta = {
homepage = "https://github.com/fpco/github";

View File

@ -26,6 +26,7 @@ cabal.mkDerivation (self: {
description = "Libgit2 backend for gitlib";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
hydraPlatforms = self.stdenv.lib.platforms.none;
maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
};
})

View File

@ -18,5 +18,6 @@ cabal.mkDerivation (self: {
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
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: {
pname = "highlighting-kate";
version = "0.5.9";
sha256 = "025j6d97nwjhhyhdz7bsfhzgpb1ld28va4r8yv7zfh1dvczs6lkr";
version = "0.5.11";
sha256 = "0jfgz4cyn6fylfrsk1yi0fykir8mhxdniq80h7hy5i2xv7qwf5vw";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "hoauth2";
version = "0.4.2";
sha256 = "08vdrgzn1j02gn2j5apjhnv2lgp7i8xhvibqjcjf4l80spmja2h0";
version = "0.4.3";
sha256 = "1qmhk9h3rwp29dsjqbgsma4zgzdd6cw1jcryzd17rk32biiiylvg";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "hsimport";
version = "0.6.2";
sha256 = "02v32gh5has3y8qk55cpdr0336n2hi33d5aw0ifpg84p89k8kr33";
version = "0.6.3";
sha256 = "0pmlspz09qj8zb1qpv6dxd25l69hh2ccsyvc37914dis74g9rw03";
isLibrary = true;
isExecutable = true;
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!
{ cabal, ansiTerminal, async, deepseq, filepath, hspecExpectations
, HUnit, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
, HUnit, QuickCheck, quickcheckIo, random, setenv, time
, transformers
}:
cabal.mkDerivation (self: {
pname = "hspec-meta";
version = "1.12.3";
sha256 = "106wzvramjw18a2wvmfik3z47zshq7yalgax389gx340g3wnrfp7";
version = "2.0.0";
sha256 = "0x1k2d4nycglzn9l4i32xrampr9fgzjpp4j1jyy7pj89cfl8jc8f";
isLibrary = true;
isExecutable = true;
buildDepends = [
ansiTerminal async deepseq filepath hspecExpectations HUnit
QuickCheck quickcheckIo random setenv tfRandom time transformers
QuickCheck quickcheckIo random setenv time transformers
];
doCheck = false;
meta = {

View File

@ -1,26 +1,17 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
, random, setenv, silently, stringbuilder, tfRandom, time
, transformers
{ cabal, hspecCore, hspecDiscover, hspecExpectations, hspecMeta
, QuickCheck, stringbuilder, transformers
}:
cabal.mkDerivation (self: {
pname = "hspec";
version = "1.12.3";
sha256 = "0lqihgsk46lwm4k2nc81pbi1gdfk7qnmjli90bvf4pbbhg5igjkn";
isLibrary = true;
isExecutable = true;
version = "2.0.1";
sha256 = "05kwxn5sws8gc1v8im2pyirrj5bzc6lnj22q2klgj4mg3apjd0jb";
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
hspecCore hspecDiscover hspecExpectations QuickCheck transformers
];
testDepends = [ hspecCore hspecMeta QuickCheck stringbuilder ];
doCheck = false;
meta = {
homepage = "http://hspec.github.io/";

View File

@ -1,31 +1,16 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, ansiTerminal, async, deepseq, filepath, ghcPaths
, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
, random, setenv, silently, stringbuilder, tfRandom, time
, transformers
}:
{ cabal, hspec, hspecDiscover }:
cabal.mkDerivation (self: {
pname = "hspec2";
version = "0.5.1";
sha256 = "1ax507vb0zm5jalp6pvlk1fjfil766pf7w61d1igpxr0s00lnvlq";
isLibrary = true;
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
];
version = "0.6.1";
sha256 = "0zlvm7r46q8yhgx2kx9mfrf6x2f5amdbi3a59fh69dsqs4lbgmf4";
buildDepends = [ hspec hspecDiscover ];
meta = {
homepage = "http://hspec.github.io/";
description = "Alpha version of Hspec 2.0";
license = self.stdenv.lib.licenses.mit;
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!
{ cabal, async, conduit, doctest, exceptions, filepath, free, hspec
, hspecExpectationsLens, httpClient, httpConduit, httpTypes, lens
, monadControl, network, networkUri, resourcet, text, transformers
, xmlConduit
{ cabal, async, attoparsec, doctest, filepath, free, hspec
, hspecExpectationsLens, httpClient, httpClientTls, httpTypes, lens
, liftedAsync, liftedBase, monadControl, mtl, network, networkUri
, profunctors, text, transformers, xmlConduit
}:
cabal.mkDerivation (self: {
pname = "libjenkins";
version = "0.5.0";
sha256 = "010gid9r3kcajijg7x56c77l93vlbh7fy7akjrg7b73i4zy6jnl7";
version = "0.6.0";
sha256 = "0rcqmj5myi2wy2acd59gqdfwiiapw1zwzm71bjqb1y66z0rnrkx4";
buildDepends = [
async conduit exceptions free httpClient httpConduit httpTypes lens
monadControl network networkUri resourcet text transformers
xmlConduit
attoparsec free httpClient httpClientTls httpTypes liftedAsync
liftedBase monadControl mtl network networkUri profunctors text
transformers
];
testDepends = [
async conduit doctest exceptions filepath free hspec
hspecExpectationsLens httpClient httpConduit httpTypes lens
monadControl network networkUri resourcet text transformers
async attoparsec doctest filepath free hspec hspecExpectationsLens
httpClient httpClientTls httpTypes lens liftedAsync liftedBase
monadControl mtl network networkUri profunctors text transformers
xmlConduit
];
jailbreak = true;

View File

@ -8,8 +8,8 @@
cabal.mkDerivation (self: {
pname = "linear";
version = "1.11.3";
sha256 = "12a3qfkyb4h14630k312gpb5j7dxr38bqk5y2lnnafka8hcc6w5n";
version = "1.13";
sha256 = "1gad6dvri7a21v8zx6m2m3ghcvb4zfrra3c4ghrc7ywccxvzmxpc";
buildDepends = [
adjunctions binary distributive hashable lens reflection
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: {
pname = "pipes-text";
version = "0.0.0.13";
sha256 = "1sqwrs5y9s16zikwb5w21fvrqf06ld0915kc065ikdcrd6z4sk43";
version = "0.0.0.15";
sha256 = "10906gdb9gjhxxmxvmib6kw7py6fl2r4df5bryqvbjvr1afcc3x9";
buildDepends = [
pipes pipesBytestring pipesGroup pipesParse pipesSafe
streamingCommons text transformers

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "rethinkdb";
version = "1.15.2.0";
sha256 = "1cca6nrdaia5dgq2ah6sfr9qy01iasilw7zdw6k8vp5907alsh0f";
version = "1.15.2.1";
sha256 = "017fq9mhqdw78hrnjm9n0nipi182361bxh1qzjpb8djc8azx49b5";
buildDepends = [
aeson base64Bytestring binary dataDefault mtl network scientific
text time unorderedContainers utf8String vector

View File

@ -1,13 +1,15 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, SDL2 }:
{ cabal, SDL2, transformers }:
cabal.mkDerivation (self: {
pname = "sdl2";
version = "1.2.0";
sha256 = "19q7x74b9ismxmlsblqvfy4w91bspl9n1fjccz8w1qylyilr6ca2";
version = "1.3.0";
sha256 = "0fi9kjf12qlp64r2pxwc1k9241s23j6xm0dmwdsc18y8f6acvqxa";
buildDepends = [ transformers ];
extraLibraries = [ SDL2 ];
pkgconfigDepends = [ SDL2 ];
noHaddock = true;
meta = {
description = "Low-level bindings to SDL2";
license = self.stdenv.lib.licenses.bsd3;

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "shakespeare";
version = "2.0.1.1";
sha256 = "0xddm8xby19323d9bcd196b1ninlvfkv5b93w1da23m7w0hy509p";
version = "2.0.2";
sha256 = "18yzihkjxgchb4358pbm45xk9zcmpgbp3rr27mx08nj5n0mdkwyy";
buildDepends = [
aeson blazeHtml blazeMarkup exceptions parsec systemFileio
systemFilepath text time transformers

View File

@ -1,6 +1,6 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, clientsession, configurator, errors
{ cabal, clientsession, configurator, errors, lens
, MonadCatchIOTransformers, mtl, postgresqlSimple
, resourcePoolCatchio, snap, text, transformers
, unorderedContainers
@ -8,10 +8,10 @@
cabal.mkDerivation (self: {
pname = "snaplet-postgresql-simple";
version = "0.5";
sha256 = "0pzn0lg1slrllrrx1n9s1kp1pmq2ahrkjypcwnnld8zxzvz4g5jm";
version = "0.6";
sha256 = "042mpyj84d089pr2qjix9fvzfj4ir74kjkdx3jg84jwn602lhzi6";
buildDepends = [
clientsession configurator errors MonadCatchIOTransformers mtl
clientsession configurator errors lens MonadCatchIOTransformers mtl
postgresqlSimple resourcePoolCatchio snap text transformers
unorderedContainers
];
@ -20,7 +20,5 @@ cabal.mkDerivation (self: {
description = "postgresql-simple snaplet for the Snap Framework";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
hydraPlatforms = self.stdenv.lib.platforms.none;
broken = true;
};
})

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "system-fileio";
version = "0.3.14";
sha256 = "1x5cricx2n1wwvdad4i3q8s3gb28a129v3kkj9rn9803xh43zh29";
version = "0.3.15";
sha256 = "06cnr3hzw8xd75529nfqajgb5xy5i4ddqybgjw1v1nwpq04mhihi";
buildDepends = [ systemFilepath text time ];
testDepends = [
chell systemFilepath temporary text time transformers

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "terminal-size";
version = "0.2.1.0";
sha256 = "0d41af1is3vdb1kgd8dk82fags86bgs67vkbzpdhjdwa3aimsxgn";
version = "0.3.0";
sha256 = "0g8v08d20hlfsah9dlgv2v2pzj0m4dva0zp6zi4jrkxjhg6vi7bw";
meta = {
description = "Get terminal window height and width";
license = self.stdenv.lib.licenses.bsd3;

View File

@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "twitter-conduit";
version = "0.0.7";
sha256 = "1xwfyhjkbdl19b7cpw12lgnjzqhpiqvfhag2l8zhks21yv0l3kg0";
version = "0.0.8";
sha256 = "16yxf9qdy1x2w4l4ix1kp1a9vcgmd1cvkqffkj52rzckcjpyd6fs";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -5,14 +5,14 @@
, ghcPaths, httpConduit, httpReverseProxy, httpTypes, liftedBase
, network, optparseApplicative, parsec, projectTemplate, resourcet
, shakespeare, split, streamingCommons, systemFileio
, systemFilepath, tar, text, time, transformers, unixCompat
, unorderedContainers, wai, waiExtra, warp, yaml, zlib
, systemFilepath, tar, text, time, transformers, transformersCompat
, unixCompat, unorderedContainers, wai, waiExtra, warp, yaml, zlib
}:
cabal.mkDerivation (self: {
pname = "yesod-bin";
version = "1.4.0.5";
sha256 = "06rwmcag0vlj8q647mwimk5fsjfmrxc6d1yg95b7a2g48rh1m25x";
version = "1.4.0.6";
sha256 = "1sx8fwi191zzq4p4lmmvk430dgf0zkik01ckxnkswvazmbjlm5vj";
isLibrary = false;
isExecutable = true;
buildDepends = [
@ -20,8 +20,9 @@ cabal.mkDerivation (self: {
dataDefaultClass fileEmbed filepath fsnotify ghcPaths httpConduit
httpReverseProxy httpTypes liftedBase network optparseApplicative
parsec projectTemplate resourcet shakespeare split streamingCommons
systemFileio systemFilepath tar text time transformers unixCompat
unorderedContainers wai waiExtra warp yaml zlib
systemFileio systemFilepath tar text time transformers
transformersCompat unixCompat unorderedContainers wai waiExtra warp
yaml zlib
];
meta = {
homepage = "http://www.yesodweb.com/";

View File

@ -13,8 +13,8 @@
cabal.mkDerivation (self: {
pname = "yesod-core";
version = "1.4.3";
sha256 = "1mglavffzvav4dzwqq70agz5rd4bdb66p40qa445fq1dxwbwcq6i";
version = "1.4.3.1";
sha256 = "11zds9zh6vpc83vv8aizd8vm5ajlnqdha5l0rz35n75c21iygg3w";
buildDepends = [
aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
clientsession conduit conduitExtra cookie dataDefault deepseq

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