Merge recent master

This commit is contained in:
Vladimír Čunát 2014-06-15 17:55:35 +02:00
commit 9757785295
118 changed files with 1797 additions and 298 deletions

View File

@ -446,7 +446,7 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix
<literal>stdenv</literal>; the formed changes the C compiler, and
the latter adds additional packages to the front of
<literal>stdenv</literal>s initial <envar>PATH</envar>, allowing
tools to be overriden.</para>
tools to be overridden.</para>
<para>For instance, the package <varname>strategoxt</varname>
doesnt build with the GNU Make in <literal>stdenv</literal>

View File

@ -56,7 +56,7 @@ details.)</para>
<para>Often it is necessary to override or modify some aspect of the
build. To make this easier, the standard environment breaks the
package build into a number of <emphasis>phases</emphasis>, all of
which can be overriden or modified individually: unpacking the
which can be overridden or modified individually: unpacking the
sources, applying patches, configuring, building, and installing.
(There are some others; see <xref linkend="ssec-stdenv-phases"/>.)
For instance, a package that doesnt supply a makefile but instead has
@ -233,7 +233,7 @@ specific parts of the build (e.g., unpacking the sources or installing
the binaries). Furthermore, it allows a nicer presentation of build
logs in the Nix build farm.</para>
<para>Each phase can be overriden in its entirety either by setting
<para>Each phase can be overridden in its entirety either by setting
the environment variable
<varname><replaceable>name</replaceable>Phase</varname> to a string
containing some shell commands to be executed, or by redefining the

View File

@ -873,7 +873,7 @@ Any package in Nixpkgs that depends on <literal>emacs</literal> will
be passed your customised instance. (However, the value
<literal>pkgs.emacs</literal> in
<varname>nixpkgs.config.packageOverrides</varname> refers to the
original rather than overriden instance, to prevent an infinite
original rather than overridden instance, to prevent an infinite
recursion.)</para>
</section>

View File

@ -12,11 +12,11 @@ let
declarations = map (fn: stripPrefix fn) opt.declarations;
});
prefix = toString pkgs.path;
prefix = toString ../../..;
stripPrefix = fn:
if substring 0 (stringLength prefix) fn == prefix then
substring (add (stringLength prefix) 1) 1000 fn
substring (stringLength prefix + 1) 1000 fn
else
fn;

View File

@ -76,7 +76,7 @@ in
environment.systemPackages = [ glibcLocales ];
environment.systemVariables =
environment.sessionVariables =
{ LANG = config.i18n.defaultLocale;
LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
};

View File

@ -149,6 +149,12 @@ in
system.build.binsh = pkgs.bashInteractive;
# Set session variables in the shell as well. This is usually
# unnecessary, but it allows changes to session variables to take
# effect without restarting the session (e.g. by opening a new
# terminal instead of logging out of X11).
environment.variables = config.environment.sessionVariables;
environment.etc."shells".text =
''
${concatStringsSep "\n" cfg.shells}

View File

@ -14,7 +14,7 @@ in
options = {
environment.systemVariables = mkOption {
environment.sessionVariables = mkOption {
default = {};
description = ''
A set of environment variables used in the global environment.
@ -48,7 +48,7 @@ in
''
${concatStringsSep "\n" (
(mapAttrsToList (n: v: ''${n}="${concatStringsSep ":" v}"'')
(zipAttrsWith (const concatLists) ([ (mapAttrs (n: v: [ v ]) cfg.systemVariables) ]))))}
(zipAttrsWith (const concatLists) ([ (mapAttrs (n: v: [ v ]) cfg.sessionVariables) ]))))}
'';
};

View File

@ -30,7 +30,7 @@ in
config = {
environment.systemVariables.TZDIR = "/etc/zoneinfo";
environment.sessionVariables.TZDIR = "/etc/zoneinfo";
systemd.globalEnvironment.TZDIR = tzdir;

View File

@ -0,0 +1,138 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.zramSwap;
devices = map (nr: "zram${toString nr}") (range 0 (cfg.numDevices - 1));
modprobe = "${config.system.sbin.modprobe}/sbin/modprobe";
in
{
###### interface
options = {
zramSwap = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
Enable in-memory compressed swap space provided by the zram kernel
module. It is recommended to enable only for kernel 3.14 or higher.
'';
};
numDevices = mkOption {
default = 4;
type = types.int;
description = ''
Number of zram swap devices to create. It should be equal to the
number of CPU cores your system has.
'';
};
memoryPercent = mkOption {
default = 50;
type = types.int;
description = ''
Maximum amount of memory that can be used by the zram swap devices
(as a percentage of your total memory). Defaults to 1/2 of your total
RAM.
'';
};
priority = mkOption {
default = 5;
type = types.int;
description = ''
Priority of the zram swap devices. It should be a number higher than
the priority of your disk-based swap devices (so that the system will
fill the zram swap devices before falling back to disk swap).
'';
};
};
};
config = mkIf cfg.enable {
system.requiredKernelConfig = with config.lib.kernelConfig; [
(isModule "ZRAM")
];
# Disabling this for the moment, as it would create and mkswap devices twice,
# once in stage 2 boot, and again when the zram-reloader service starts.
# boot.kernelModules = [ "zram" ];
boot.extraModprobeConfig = ''
options zram num_devices=${toString cfg.numDevices}
'';
services.udev.extraRules = ''
KERNEL=="zram[0-9]*", ENV{SYSTEMD_WANTS}="zram-init-%k.service", TAG+="systemd"
'';
systemd.services =
let
createZramInitService = dev:
nameValuePair "zram-init-${dev}" {
description = "Init swap on zram-based device ${dev}";
bindsTo = [ "dev-${dev}.swap" ];
after = [ "dev-${dev}.device" "zram-reloader.service" ];
requires = [ "dev-${dev}.device" "zram-reloader.service" ];
before = [ "dev-${dev}.swap" ];
requiredBy = [ "dev-${dev}.swap" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStop = "${pkgs.stdenv.shell} -c 'echo 1 > /sys/class/block/${dev}/reset'";
};
script = ''
set -u
set -o pipefail
PATH=${pkgs.procps}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin
# Calculate memory to use for zram
totalmem=$(free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//')
mem=$(((totalmem * ${toString cfg.memoryPercent} / 100 / ${toString cfg.numDevices}) * 1024))
echo $mem > /sys/class/block/${dev}/disksize
${pkgs.utillinux}/sbin/mkswap /dev/${dev}
'';
restartIfChanged = false;
};
in listToAttrs ((map createZramInitService devices) ++ [(nameValuePair "zram-reloader"
{
description = "Reload zram kernel module when number of devices changes";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${modprobe} -r zram";
ExecStart = "${modprobe} zram";
ExecStop = "${modprobe} -r zram";
};
restartTriggers = [ cfg.numDevices ];
restartIfChanged = true;
})]);
swapDevices =
let
useZramSwap = dev:
{
device = "/dev/${dev}";
priority = cfg.priority;
};
in map useZramSwap devices;
};
}

View File

@ -466,7 +466,7 @@ $bootLoaderConfig
# };
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
# \$ nix-env -qaP | grep wget
# environment.systemPackages = with pkgs; [
# wget
# ];

View File

@ -133,6 +133,7 @@
spiped = 123;
teamspeak = 124;
influxdb = 125;
nsd = 126;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -240,6 +241,7 @@
spiped = 123;
teamspeak = 124;
influxdb = 125;
nsd = 126;
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!

View File

@ -21,6 +21,7 @@
./config/timezone.nix
./config/unix-odbc-drivers.nix
./config/users-groups.nix
./config/zram.nix
./hardware/all-firmware.nix
./hardware/cpu/intel-microcode.nix
./hardware/cpu/amd-microcode.nix
@ -206,6 +207,7 @@
./services/networking/networkmanager.nix
./services/networking/ngircd.nix
./services/networking/notbit.nix
./services/networking/nsd.nix
./services/networking/ntopng.nix
./services/networking/ntpd.nix
./services/networking/oidentd.nix

View File

@ -23,7 +23,7 @@ in
EDITOR = "nano";
};
environment.systemVariables =
environment.sessionVariables =
{ NIX_PATH =
[ "/nix/var/nix/profiles/per-user/root/channels/nixos"
"nixpkgs=/etc/nixos/nixpkgs"

View File

@ -12,7 +12,7 @@ with lib;
}
];
environment.systemVariables =
environment.sessionVariables =
{ OPENSSL_X509_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt";
CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt";
GIT_SSL_CAINFO = "/etc/ssl/certs/ca-bundle.crt";

View File

@ -318,7 +318,7 @@ in
};
# Set up the environment variables for running Nix.
environment.systemVariables = cfg.envVars;
environment.sessionVariables = cfg.envVars;
environment.extraInit =
''

View File

@ -0,0 +1,751 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.nsd;
username = "nsd";
stateDir = "/var/lib/nsd";
pidFile = stateDir + "/var/nsd.pid";
zoneFiles = pkgs.stdenv.mkDerivation {
preferLocalBuild = true;
name = "nsd-env";
buildCommand = concatStringsSep "\n"
[ "mkdir -p $out"
(concatStrings (mapAttrsToList (zoneName: zoneOptions: ''
cat > "$out/${zoneName}" <<_EOF_
${zoneOptions.data}
_EOF_
'') zoneConfigs))
];
};
configFile = pkgs.writeText "nsd.conf" ''
server:
username: ${username}
chroot: "${stateDir}"
# The directory for zonefile: files. The daemon chdirs here.
zonesdir: "${stateDir}"
# the list of dynamically added zones.
zonelistfile: "${stateDir}/var/zone.list"
database: "${stateDir}/var/nsd.db"
logfile: "${stateDir}/var/nsd.log"
pidfile: "${pidFile}"
xfrdfile: "${stateDir}/var/xfrd.state"
xfrdir: "${stateDir}/tmp"
# interfaces
${forEach " ip-address: " cfg.interfaces}
server-count: ${toString cfg.serverCount}
ip-transparent: ${yesOrNo cfg.ipTransparent}
do-ip4: ${yesOrNo cfg.ipv4}
do-ip6: ${yesOrNo cfg.ipv6}
port: ${toString cfg.port}
verbosity: ${toString cfg.verbosity}
hide-version: ${yesOrNo cfg.hideVersion}
identity: "${cfg.identity}"
${maybeString "nsid: " cfg.nsid}
tcp-count: ${toString cfg.tcpCount}
tcp-query-count: ${toString cfg.tcpQueryCount}
tcp-timeout: ${toString cfg.tcpTimeout}
ipv4-edns-size: ${toString cfg.ipv4EDNSSize}
ipv6-edns-size: ${toString cfg.ipv6EDNSSize}
${if cfg.statistics == null then "" else "statistics: ${toString cfg.statistics}"}
xfrd-reload-timeout: ${toString cfg.xfrdReloadTimeout}
zonefiles-check: ${yesOrNo cfg.zonefilesCheck}
rrl-size: ${toString cfg.ratelimit.size}
rrl-ratelimit: ${toString cfg.ratelimit.ratelimit}
rrl-whitelist-ratelimit: ${toString cfg.ratelimit.whitelistRatelimit}
${maybeString "rrl-slip: " cfg.ratelimit.slip}
${maybeString "rrl-ipv4-prefix-length: " cfg.ratelimit.ipv4PrefixLength}
${maybeString "rrl-ipv6-prefix-length: " cfg.ratelimit.ipv6PrefixLength}
${keyConfigFile}
remote-control:
control-enable: ${yesOrNo cfg.remoteControl.enable}
${forEach " control-interface: " cfg.remoteControl.interfaces}
control-port: ${toString cfg.port}
server-key-file: "${cfg.remoteControl.serverKeyFile}"
server-cert-file: "${cfg.remoteControl.serverCertFile}"
control-key-file: "${cfg.remoteControl.controlKeyFile}"
control-cert-file: "${cfg.remoteControl.controlCertFile}"
# zone files reside in "${zoneFiles}" linked to "${stateDir}/zones"
${concatStrings (mapAttrsToList zoneConfigFile zoneConfigs)}
${cfg.extraConfig}
'';
yesOrNo = b: if b then "yes" else "no";
maybeString = pre: s: if s == null then "" else ''${pre} "${s}"'';
forEach = pre: l: concatMapStrings (x: pre + x + "\n") l;
keyConfigFile = concatStrings (mapAttrsToList (keyName: keyOptions: ''
key:
name: "${keyName}"
algorithm: "${keyOptions.algorithm}"
include: "${stateDir}/private/${keyName}"
'') cfg.keys);
copyKeys = concatStrings (mapAttrsToList (keyName: keyOptions: ''
secret=$(cat "${keyOptions.keyFile}")
dest="${stateDir}/private/${keyName}"
echo " secret: \"$secret\"" > "$dest"
${pkgs.coreutils}/bin/chown ${username}:${username} "$dest"
${pkgs.coreutils}/bin/chmod 0400 "$dest"
'') cfg.keys);
zoneConfigFile = name: zone: ''
zone:
name: "${name}"
zonefile: "${stateDir}/zones/${name}"
${maybeString "outgoing-interface: " zone.outgoingInterface}
${forEach " rrl-whitelist: " zone.rrlWhitelist}
${forEach " allow-notify: " zone.allowNotify}
${forEach " request-xfr: " zone.requestXFR}
allow-axfr-fallback: ${yesOrNo zone.allowAXFRFallback}
${forEach " notify: " zone.notify}
notify-retry: ${toString zone.notifyRetry}
${forEach " provide-xfr: " zone.provideXFR}
'';
zoneConfigs = zoneConfigs' {} "" { children = cfg.zones; };
zoneConfigs' = parent: name: zone:
if !(zone ? children) || zone.children == null || zone.children == { }
# leaf -> actual zone
then listToAttrs [ (nameValuePair name (parent // zone)) ]
# fork -> pattern
else zipAttrsWith (name: head) (
mapAttrsToList (name: child: zoneConfigs' (parent // zone // { children = {}; }) name child)
zone.children
);
# fighting infinite recursion
zoneOptions = zoneOptionsRaw // childConfig zoneOptions1 true;
zoneOptions1 = zoneOptionsRaw // childConfig zoneOptions2 false;
zoneOptions2 = zoneOptionsRaw // childConfig zoneOptions3 false;
zoneOptions3 = zoneOptionsRaw // childConfig zoneOptions4 false;
zoneOptions4 = zoneOptionsRaw // childConfig zoneOptions5 false;
zoneOptions5 = zoneOptionsRaw // childConfig zoneOptions6 false;
zoneOptions6 = zoneOptionsRaw // childConfig null false;
childConfig = x: v: { options.children = { type = types.attrsOf x; visible = v; }; };
zoneOptionsRaw = types.submodule (
{ options, ... }:
{ options = {
children = mkOption {
default = {};
description = ''
Children zones inherit all options of their parents. Attributes
defined in a child will overwrite the ones of its parent. Only
leaf zones will be actually served. This way it's possible to
define maybe zones which share most attributes without
duplicating everything. This mechanism replaces nsd's patterns
in a save and functional way.
'';
};
allowNotify = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
"10.0.3.4&255.255.0.0 BLOCKED"
];
description = ''
Listed primary servers are allowed to notify this secondary server.
<screen><![CDATA[
Format: <ip> <key-name | NOKEY | BLOCKED>
<ip> either a plain IPv4/IPv6 address or range. Valid patters for ranges:
* 10.0.0.0/24 # via subnet size
* 10.0.0.0&255.255.255.0 # via subnet mask
* 10.0.0.1-10.0.0.254 # via range
A optional port number could be added with a '@':
* 2001:1234::1@1234
<key-name | NOKEY | BLOCKED>
* <key-name> will use the specified TSIG key
* NOKEY no TSIG signature is required
* BLOCKED notifies from non-listed or blocked IPs will be ignored
* ]]></screen>
'';
};
requestXFR = mkOption {
type = types.listOf types.str;
default = [];
example = [];
description = ''
Format: <code>[AXFR|UDP] &lt;ip-address&gt; &lt;key-name | NOKEY&gt;</code>
'';
};
allowAXFRFallback = mkOption {
type = types.bool;
default = true;
description = ''
If NSD as secondary server should be allowed to AXFR if the primary
server does not allow IXFR.
'';
};
notify = mkOption {
type = types.listOf types.str;
default = [];
example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
description = ''
This primary server will notify all given secondary servers about
zone changes.
<screen><![CDATA[
Format: <ip> <key-name | NOKEY>
<ip> a plain IPv4/IPv6 address with on optional port number (ip@port)
<key-name | NOKEY>
* <key-name> sign notifies with the specified key
* NOKEY don't sign notifies
]]></screen>
'';
};
notifyRetry = mkOption {
type = types.int;
default = 5;
description = ''
Specifies the number of retries for failed notifies. Set this along with notify.
'';
};
provideXFR = mkOption {
type = types.listOf types.str;
default = [];
example = [ "192.0.2.0/24 NOKEY" "192.0.2.0/24 my_tsig_key_name" ];
description = ''
Allow these IPs and TSIG to transfer zones, addr TSIG|NOKEY|BLOCKED
address range 192.0.2.0/24, 1.2.3.4&amp;255.255.0.0, 3.0.2.20-3.0.2.40
'';
};
outgoingInterface = mkOption {
type = types.nullOr types.str;
default = null;
example = "2000::1@1234";
description = ''
This address will be used for zone-transfere requests if configured
as a secondary server or notifications in case of a primary server.
Supply either a plain IPv4 or IPv6 address with an optional port
number (ip@port).
'';
};
rrlWhitelist = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Whitelists the given rrl-types.
The RRL classification types are: nxdomain, error, referral, any,
rrsig, wildcard, nodata, dnskey, positive, all
'';
};
data = mkOption {
type = types.str;
default = "";
example = "";
description = ''
The actual zone data. This is the content of your zone file.
Use imports or pkgs.lib.readFile if you don't want this data in your config file.
'';
};
};
}
);
in
{
options = {
services.nsd = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable the NSD authoritative domain name server.
'';
};
rootServer = mkOption {
type = types.bool;
default = false;
description = ''
Wheter if this server will be a root server (a DNS root server, you
usually don't want that).
'';
};
interfaces = mkOption {
type = types.listOf types.str;
default = [ "127.0.0.0" "::1" ];
description = ''
What addresses the server should listen to.
'';
};
serverCount = mkOption {
type = types.int;
default = 1;
description = ''
Number of NSD servers to fork. Put the number of CPUs to use here.
'';
};
ipTransparent = mkOption {
type = types.bool;
default = false;
description = ''
Allow binding to non local addresses.
'';
};
ipv4 = mkOption {
type = types.bool;
default = true;
description = ''
Wheter to listen on IPv4 connections.
'';
};
ipv6 = mkOption {
type = types.bool;
default = true;
description = ''
Wheter to listen on IPv6 connections.
'';
};
port = mkOption {
type = types.int;
default = 53;
description = ''
Port the service should bind do.
'';
};
verbosity = mkOption {
type = types.int;
default = 0;
description = ''
Verbosity level.
'';
};
hideVersion = mkOption {
type = types.bool;
default = true;
description = ''
Wheter NSD should answer VERSION.BIND and VERSION.SERVER CHAOS class queries.
'';
};
identity = mkOption {
type = types.str;
default = "unidentified server";
description = ''
Identify the server (CH TXT ID.SERVER entry).
'';
};
nsid = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
NSID identity (hex string, or "ascii_somestring").
'';
};
tcpCount = mkOption {
type = types.int;
default = 100;
description = ''
Maximum number of concurrent TCP connections per server.
'';
};
tcpQueryCount = mkOption {
type = types.int;
default = 0;
description = ''
Maximum number of queries served on a single TCP connection.
0 means no maximum.
'';
};
tcpTimeout = mkOption {
type = types.int;
default = 120;
description = ''
TCP timeout in seconds.
'';
};
ipv4EDNSSize = mkOption {
type = types.int;
default = 4096;
description = ''
Preferred EDNS buffer size for IPv4.
'';
};
ipv6EDNSSize = mkOption {
type = types.int;
default = 4096;
description = ''
Preferred EDNS buffer size for IPv6.
'';
};
statistics = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Statistics are produced every number of seconds. Prints to log.
If null no statistics are logged.
'';
};
xfrdReloadTimeout = mkOption {
type = types.int;
default = 1;
description = ''
Number of seconds between reloads triggered by xfrd.
'';
};
zonefilesCheck = mkOption {
type = types.bool;
default = true;
description = ''
Wheter to check mtime of all zone files on start and sighup.
'';
};
extraConfig = mkOption {
type = types.str;
default = "";
description = ''
Extra nsd config.
'';
};
ratelimit = mkOption {
type = types.submodule (
{ options, ... }:
{ options = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable ratelimit capabilities.
'';
};
size = mkOption {
type = types.int;
default = 1000000;
description = ''
Size of the hashtable. More buckets use more memory but lower
the chance of hash hash collisions.
'';
};
ratelimit = mkOption {
type = types.int;
default = 200;
description = ''
Max qps allowed from any query source.
0 means unlimited. With an verbosity of 2 blocked and
unblocked subnets will be logged.
'';
};
whitelistRatelimit = mkOption {
type = types.int;
default = 2000;
description = ''
Max qps allowed from whitelisted sources.
0 means unlimited. Set the rrl-whitelist option for specific
queries to apply this limit instead of the default to them.
'';
};
slip = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Number of packets that get discarded before replying a SLIP response.
0 disables SLIP responses. 1 will make every response a SLIP response.
'';
};
ipv4PrefixLength = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
IPv4 prefix length. Addresses are grouped by netblock.
'';
};
ipv6PrefixLength = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
IPv6 prefix length. Addresses are grouped by netblock.
'';
};
};
});
default = {
};
example = {};
description = ''
'';
};
remoteControl = mkOption {
type = types.submodule (
{ config, options, ... }:
{ options = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Wheter to enable remote control via nsd-control(8).
'';
};
interfaces = mkOption {
type = types.listOf types.str;
default = [ "127.0.0.1" "::1" ];
description = ''
Which interfaces NSD should bind to for remote control.
'';
};
port = mkOption {
type = types.int;
default = 8952;
description = ''
Port number for remote control operations (uses TLS over TCP).
'';
};
serverKeyFile = mkOption {
type = types.path;
default = "/etc/nsd/nsd_server.key";
description = ''
Path to the server private key, which is used by the server
but not by nsd-control. This file is generated by nsd-control-setup.
'';
};
serverCertFile = mkOption {
type = types.path;
default = "/etc/nsd/nsd_server.pem";
description = ''
Path to the server self signed certificate, which is used by the server
but and by nsd-control. This file is generated by nsd-control-setup.
'';
};
controlKeyFile = mkOption {
type = types.path;
default = "/etc/nsd/nsd_control.key";
description = ''
Path to the client private key, which is used by nsd-control
but not by the server. This file is generated by nsd-control-setup.
'';
};
controlCertFile = mkOption {
type = types.path;
default = "/etc/nsd/nsd_control.pem";
description = ''
Path to the client certificate signed with the server certificate.
This file is used by nsd-control and generated by nsd-control-setup.
'';
};
};
});
default = {
};
example = {};
description = ''
'';
};
keys = mkOption {
type = types.attrsOf (types.submodule (
{ options, ... }:
{ options = {
algorithm = mkOption {
type = types.str;
default = "hmac-sha256";
description = ''
Authentication algorithm for this key.
'';
};
keyFile = mkOption {
type = types.path;
description = ''
Path to the file which contains the actual base64 encoded
key. The key will be copied into "${stateDir}/private" before
NSD starts. The copied file is only accessibly by the NSD
user.
'';
};
};
}));
default = {
};
example = {
"tsig.example.org" = {
algorithm = "hmac-md5";
secret = "aaaaaabbbbbbccccccdddddd";
};
};
description = ''
Define your TSIG keys here.
'';
};
zones = mkOption {
type = types.attrsOf zoneOptions;
default = {};
example = {
"serverGroup1" = {
provideXFR = [ "10.1.2.3 NOKEY" ];
children = {
"example.com." = {
data = ''
$ORIGIN example.com.
$TTL 86400
@ IN SOA a.ns.example.com. admin.example.com. (
...
'';
};
"example.org." = {
data = ''
$ORIGIN example.org.
$TTL 86400
@ IN SOA a.ns.example.com. admin.example.com. (
...
'';
};
};
};
"example.net." = {
provideXFR = [ "10.3.2.1 NOKEY" ];
data = ''...'';
};
};
description = ''
Define your zones here. Zones can cascade other zones and therefore
inherit settings from parent zones. Look at the definition of
children to learn about inheritance and child zones.
The given example will define 3 zones (example.(com|org|net).). Both
example.com. and example.org. inherit their configuration from
serverGroup1.
'';
};
};
};
config = mkIf cfg.enable {
# this is not working :(
nixpkgs.config.nsd = {
ipv6 = cfg.ipv6;
ratelimit = cfg.ratelimit.enable;
rootServer = cfg.rootServer;
};
users.extraGroups = singleton {
name = username;
gid = config.ids.gids.nsd;
};
users.extraUsers = singleton {
name = username;
description = "NSD service user";
home = stateDir;
createHome = true;
uid = config.ids.uids.nsd;
group = username;
};
systemd.services.nsd = {
description = "NSD authoritative only domain name service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "forking";
PIDFile = pidFile;
Restart = "always";
ExecStart = "${pkgs.nsd}/sbin/nsd -c ${configFile}";
};
preStart = ''
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/private"
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/tmp"
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/var"
${pkgs.coreutils}/bin/touch "${stateDir}/don't touch anything in here"
${pkgs.coreutils}/bin/rm -f "${stateDir}/private/"*
${pkgs.coreutils}/bin/rm -f "${stateDir}/tmp/"*
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/private"
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/tmp"
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/var"
${pkgs.coreutils}/bin/rm -rf "${stateDir}/zones"
${pkgs.coreutils}/bin/cp -r "${zoneFiles}" "${stateDir}/zones"
${copyKeys}
'';
};
};
}

View File

@ -104,8 +104,9 @@ in {
after = [ "network-interfaces.target" ];
environment = { ES_HOME = cfg.dataDir; };
serviceConfig = {
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=${configDir}";
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir}";
User = "elasticsearch";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -m 0700 -p ${cfg.dataDir}

View File

@ -183,6 +183,15 @@ in
'';
};
networking.search = mkOption {
default = [];
example = [ "example.com" "local.domain" ];
type = types.listOf types.str;
description = ''
The list of search paths used when resolving domain names.
'';
};
networking.domain = mkOption {
default = "";
example = "home";
@ -424,6 +433,7 @@ in
${optionalString (cfg.nameservers != [] && cfg.domain != "") ''
domain ${cfg.domain}
''}
${optionalString (cfg.search != []) ("search " + concatStringsSep " " cfg.search)}
${flip concatMapStrings cfg.nameservers (ns: ''
nameserver ${ns}
'')}

View File

@ -98,6 +98,10 @@ import ./make-test.nix {
$machine->succeed("touch /tmp2/x");
$machine->succeed("grep '/tmp2 tmpfs' /proc/mounts");
};
subtest "shell-vars", sub {
$machine->succeed('[ -n "$NIX_PATH" ]');
};
'';
}

View File

@ -0,0 +1,20 @@
{ stdenv, fetchurl, pkgconfig, alsaLib, libxmp }:
stdenv.mkDerivation rec {
name = "xmp-4.0.7";
meta = with stdenv.lib; {
description = "Extended module player";
homepage = "http://xmp.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "mirror://sourceforge/xmp/xmp/${name}.tar.gz";
sha256 = "0qgzzaxhshz5l7s21x89xb43pbbi0zap6a4lk4s7gjp1qca2agcw";
};
buildInputs = [ pkgconfig alsaLib libxmp ];
}

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, emacs, texinfo, which, texLive }:
stdenv.mkDerivation rec {
name = "org-8.2.6";
name = "org-8.2.7";
src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz";
sha256 = "0f196r0n9m2np123sjabsqdw68h9qp6qr7l5v257am8qs7rj0jm1";
sha256 = "1n864hnjvx5n2gfi7n0xbwvb1k8l5rdh4a3vpbhw23hy8rx3bvaw";
};
buildInputs = [ emacs ];
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ chaoflow ];
maintainers = with stdenv.lib.maintainers; [ chaoflow pSub ];
platforms = stdenv.lib.platforms.gnu;
};
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurlGnome, gtk, pkgconfig, perl, perlXMLParser, libxml2, gettext
{stdenv, fetchurl, fetchurlGnome, gtk, pkgconfig, perl, perlXMLParser, libxml2, gettext
, python, libxml2Python, docbook5, docbook_xsl, libxslt, intltool, libart_lgpl
, withGNOME ? false, libgnomeui }:
@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
sha256 = "1qgawm7rrf4wd1yc0fp39ywv8gbz4ry1s16k00dzg5w6p67lfqd7";
};
correctPersistence = fetchurl {
url = https://launchpadlibrarian.net/132677658/persistence;
sha256 = "1rv6zv9i03bna4bdp1wzn72lg7kdwi900y1izdq0imibi54nxjsk";
};
buildInputs =
[ gtk perlXMLParser libxml2 gettext python libxml2Python docbook5
libxslt docbook_xsl libart_lgpl
@ -24,7 +29,17 @@ stdenv.mkDerivation rec {
# This file should normally require a gtk-update-icon-cache -q /usr/share/icons/hicolor command
# It have no reasons to exist in a redistribuable package
postInstall = "rm $out/share/icons/hicolor/icon-theme.cache";
postInstall = ''
rm $out/share/icons/hicolor/icon-theme.cache
cd "$out"/bin/
mv dia .dia-wrapped
echo '#! ${stdenv.shell}' >> dia
echo 'test -f "$HOME/.dia/persistence" || cp ${correctPersistence} "$HOME/.dia/persistence" ' >> dia
echo 'chmod u+rw "$HOME/.dia/persistence" ' >> dia
echo "\"$out/bin/"'.dia-wrapped" "$@"' >> dia
chmod a+x dia
'';
meta = {
description = "Gnome Diagram drawing software";

View File

@ -1,14 +1,15 @@
{ stdenv, fetchurl, pkgconfig, gtk, imlib2, file } :
{ stdenv, fetchurl, pkgconfig, gtk, imlib2, file, lcms2, libexif } :
stdenv.mkDerivation (rec {
name = "qiv-2.2.4";
version = "2.3.1";
name = "qiv-${version}";
src = fetchurl {
url = "http://spiegl.de/qiv/download/${name}.tgz";
sha256 = "ed6078dc550c1dc2fe35c1e0f46463c13589a24b83d4f7101b71a7485e51abb7";
sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7";
};
buildInputs = [ pkgconfig gtk imlib2 file ];
buildInputs = [ pkgconfig gtk imlib2 file lcms2 libexif ];
preBuild=''
substituteInPlace Makefile --replace /usr/local "$out"
@ -18,5 +19,6 @@ stdenv.mkDerivation (rec {
meta = {
description = "qiv (quick image viewer)";
homepage = http://spiegl.de/qiv/;
inherit version;
};
})

View File

@ -0,0 +1,3 @@
url http://spiegl.de/qiv/download/
version_link '[.]tgz$'
do_overwrite() { do_overwrite_just_version; }

View File

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-1.31.0";
name = "calibre-1.35.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "1fl42y8ppw8s51v66dqsrg1ib28yi6z5779r9wfvdbl9v1clilfc";
sha256 = "0pzxp1f9d4pw7vksdfkdz6fdgrb8jfwgh4fckjfrarqs039422bi";
};
inherit python;

View File

@ -1,11 +1,12 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, zlib, freetype, libjpeg, jbig2dec, openjpeg
, libX11, libXext }:
stdenv.mkDerivation rec {
name = "mupdf-1.4";
version = "1.5";
name = "mupdf-${version}";
src = fetchurl {
url = "http://mupdf.com/download/archive/${name}-source.tar.gz";
sha256 = "08pc6fv42sb9k9dzjs8ph32nixzrzmr08yxh7arkpsdm42asp2q1";
sha256 = "0sl47zqf4c9fhs4h5zg046vixjmwgy4vhljhr5g4md733nash7z4";
};
buildInputs = [ pkgconfig zlib freetype libjpeg jbig2dec openjpeg libX11 libXext ];
@ -67,5 +68,6 @@ stdenv.mkDerivation rec {
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ viric ];
platforms = with stdenv.lib.platforms; linux;
inherit version;
};
}

View File

@ -0,0 +1,7 @@
url http://mupdf.com/downloads/archive/
do_overwrite(){
ensure_hash
ensure_version
set_var_value version $CURRENT_VERSION
set_var_value sha256 $CURRENT_HASH
}

View File

@ -0,0 +1,66 @@
{ stdenv, fetchurl, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
, p7zip }:
let
mkSweetHome3D =
{ name, module, version, src, license, description }:
stdenv.mkDerivation rec {
inherit name version src description;
exec = stdenv.lib.toLower module;
sweethome3dItem = makeDesktopItem {
inherit name exec;
comment = description;
desktopName = name;
genericName = "Computer Aided (Interior) Design";
categories = "Application;CAD;";
};
buildInputs = [ ant jdk jre makeWrapper p7zip ];
buildPhase = ''
ant furniture textures help
mkdir -p $out/share/{java,applications}
mv build/*.jar $out/share/java/.
ant
'';
installPhase = ''
mkdir -p $out/bin
cp install/${module}-${version}.jar $out/share/java/.
cp ${sweethome3dItem}/share/applications/* $out/share/applications
makeWrapper ${jre}/bin/java $out/bin/$exec \
--add-flags "-jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar ${if stdenv.system == "x86_64-linux" then "-d64" else "-d32"}"
'';
dontStrip = true;
meta = {
homepage = "http://www.sweethome3d.com/index.jsp";
inherit description;
inherit license;
maintainers = [ stdenv.lib.maintainers.edwtjo ];
platforms = stdenv.lib.platforms.linux;
};
};
d2u = stdenv.lib.replaceChars ["."] ["_"];
in rec {
application = mkSweetHome3D rec {
version = "4.3.1";
module = "SweetHome3D";
name = stdenv.lib.toLower module + "-application-" + version;
description = "Design and visualize your future home";
license = stdenv.lib.licenses.gpl2Plus;
src = fetchcvs {
cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
sha256 = "0jn3xamghz8rsmzvpd57cvz32yk8mni8dyx15xizjcki0450bp3f";
module = module;
tag = "V_" + d2u version;
};
};
}

View File

@ -0,0 +1,90 @@
{ stdenv, fetchurl, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
, p7zip, sweethome3dApp }:
let
sweetExec = with stdenv.lib;
m: "sweethome3d-"
+ removeSuffix "libraryeditor" (toLower m)
+ "-editor";
sweetName = m: v: sweetExec m + "-" + v;
mkEditorProject =
{ name, module, version, src, license, description }:
stdenv.mkDerivation rec {
application = sweethome3dApp;
inherit name module version src description;
exec = sweetExec module;
editorItem = makeDesktopItem {
inherit name exec;
comment = description;
desktopName = name;
genericName = "Computer Aided (Interior) Design";
categories = "Application;CAD;";
};
buildInputs = [ ant jre jdk makeWrapper ];
patchPhase = ''
sed -i -e 's,../SweetHome3D,${application.src},g' build.xml
'';
buildPhase = ''
ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk}/lib
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/share/{java,applications}
cp ${module}-${version}.jar $out/share/java/.
cp ${editorItem}/share/applications/* $out/share/applications
makeWrapper ${jre}/bin/java $out/bin/$exec \
--add-flags "-jar $out/share/java/${module}-${version}.jar ${if stdenv.system == "x86_64-linux" then "-d64" else "-d32"}"
'';
dontStrip = true;
meta = {
homepage = "http://www.sweethome3d.com/index.jsp";
inherit description;
inherit license;
maintainers = [ stdenv.lib.maintainers.edwtjo ];
platforms = stdenv.lib.platforms.linux;
};
};
d2u = stdenv.lib.replaceChars ["."] ["_"];
in rec {
textures-editor = mkEditorProject rec {
version = "1.3";
module = "TexturesLibraryEditor";
name = sweetName module version;
description = "Easily create SH3T files and edit the properties of the texture images it contain";
license = stdenv.lib.licenses.gpl2Plus;
src = fetchcvs {
cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
sha256 = "1caf1hmf87bj5dr7w2swnlbvkb3q1jdjr1zgjn1k07d0fxh0ikbx";
module = module;
tag = "V_" + d2u version;
};
};
furniture-editor = mkEditorProject rec {
version = "1.13";
module = "FurnitureLibraryEditor";
name = sweetName module version;
description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
license = stdenv.lib.licenses.gpl2;
src = fetchcvs {
cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
sha256 = "1nll5589rc0g71zd86cwmzl4p2icynykj106schmxric9v17jbv5";
module = module;
tag = "V_" + d2u version;
};
};
}

View File

@ -17,14 +17,14 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec {
firefoxVersion = "29.0.1";
firefoxVersion = "30.0";
xulVersion = "29.0.1"; # this attribute is used by other packages
xulVersion = "30.0"; # this attribute is used by other packages
src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
sha1 = "2819ef63403de2bcfff5496bd21a3b8cb5dfce82";
sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11";
};
commonConfigureFlags =

View File

@ -1,15 +1,15 @@
{ cabal, ansiTerminal, cmdargs, filepath, HTTP, network
{ cabal, ansiTerminal, filepath, HTTP, network, optparseApplicative
, stringsearch, terminalSize, time, zlib
}:
cabal.mkDerivation (self: {
pname = "sloane";
version = "1.7.1";
sha256 = "0d6k33rhp1ixrwdfwy31m39kbk8z81biwzwmkp01fvpgwm96p3va";
version = "1.8";
sha256 = "0c30slsswfqwzi39hk6jraxz1y1a2yn8g8nyjvlnggwajx2rlm6p";
isLibrary = false;
isExecutable = true;
buildDepends = [
ansiTerminal cmdargs filepath HTTP network stringsearch
ansiTerminal filepath HTTP network optparseApplicative stringsearch
terminalSize time zlib
];
postInstall = ''

View File

@ -0,0 +1,56 @@
preFixupPhases+=" scatter_files"
preDistPhases+=" propagate_bin_input"
SCATTER_BIN_DEFAULT=${SCATTER_BIN_DEFAULT:-"/lib/*.so* /bin/*"}
SCATTER_DOC_DEFAULT=${SCATTER_DOC_DEFAULT:-"/share/man/* /share/doc/*"}
scatter_files() {
save_nullglob=$(shopt -p nullglob)
for o in $outputs; do
[[ "$o" == "out" ]] && continue
v=files_${o}
#if files_'output' isn't set in derivative, use defualts for some
[[ ${!v} ]] || {
case $o in
bin)
v=SCATTER_BIN_DEFAULT
;;
doc)
v=SCATTER_DOC_DEFAULT
;;
*)
continue
;;
esac
}
# prepend each path with $out
paths=$out${!v// \// $out/}
shopt -s nullglob
for f in $paths; do
shopt -u nullglob
dist=${!o}${f#$out}
mkdir -p $(dirname $dist)
cp -pr $f $dist
# remove source, not forgetting to clean empty dirs
rm -r $f
rmdir --ignore-fail-on-non-empty $(dirname $f)
done
find ${!o} -type f -exec $SHELL -c 'patchelf --set-rpath $(patchelf --print-rpath {} 2>/dev/null):'${!o}'/lib {} 2>/dev/null && patchelf --shrink-rpath {}' \;
done
eval $save_nullglob
}
propagate_bin_input() {
if [[ -n ${bin:-} ]]; then
mkdir -p $out/nix-support
echo $bin >> $out/nix-support/propagated-native-build-inputs
fi
if [[ -n ${bin:-} && -n ${doc:-} ]]; then
mkdir -p $bin/nix-support
echo $doc >> $bin/nix-support/propagated-user-env-packages
fi
}

View File

@ -246,6 +246,12 @@ do_overwrite () {
mv "$1.new.tmp" "$1"
}
do_overwrite_just_version () {
ensure_hash
set_var_value version $CURRENT_VERSION
set_var_value sha256 $CURRENT_HASH
}
process_config () {
CONFIG_DIR="$(directory_of "$1")"
CONFIG_NAME="$(basename "$1")"

View File

@ -2,10 +2,10 @@
stdenv.mkDerivation rec {
name = "terminology-${version}";
version = "0.4.0";
version = "0.5.1";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.gz";
sha256 = "1ing9l19h7f1f843rcabbjaynps1as4mpc31xz2adkafb3xd3wk3";
sha256 = "1b8m6fhzx2fdr3m6ak2163v33zc4svmg2k875m0xppzifdd9xvyf";
};
buildInputs = [ pkgconfig elementary eina eet evas ecore edje emotion ecore ethumb efreet ];

View File

@ -1,30 +1,28 @@
{ stdenv, fetchsvn, ocaml, zlib, neko }:
{ stdenv, fetchgit, ocaml, zlib, neko }:
stdenv.mkDerivation {
name = "haxe-3.00";
name = "haxe-3.1.3";
buildInputs = [ocaml zlib neko];
src = fetchsvn {
url = "http://haxe.googlecode.com/svn/trunk";
sha256 = "0hg8qailhgrcdk7r4k9kmwfl9d9ds0vy0l7wbv5wdrrc34qzifm4";
rev = 6706;
src = fetchgit {
url = "https://github.com/HaxeFoundation/haxe.git";
sha256 = "1p4yja6flv2r04q9lcrjxia3f3fsmhi3d88s0lz0nf0r4m61bjz0";
fetchSubmodules = true;
# Tag 3.1.3
rev = "7be30670b2f1f9b6082499c8fb9e23c0a6df6c28";
};
prePatch = ''
sed -i -e 's|com.class_path <- \[|&"'"$out/lib/haxe/std/"'";|' main.ml
'';
postBuild = ''
find std/tools -name '*.n' -delete
rm -f std/tools/haxedoc/haxedoc std/tools/haxelib/haxelib
'';
buildFlags = [ "all" "tools" ];
installPhase = ''
install -vd "$out/bin" "$out/lib/haxe/std"
install -vt "$out/bin" haxe haxelib haxedoc
install -vt "$out/bin" haxe haxelib
cp -vr std "$out/lib/haxe"
'';

View File

@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "idris";
version = "0.9.13";
sha256 = "0bpp8b19s1przycndvl542ar9dc285ccnwm7cic33ym1lcqil86n";
version = "0.9.13.1";
sha256 = "09528c2zxriw3l8c7dd2k5db9j1qmqhs6nbqwc7dkskzqv9snz7n";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "urweb";
version = "20140426";
version = "20140531";
name = "${pname}-${version}";
src = fetchurl {
url = "http://www.impredicative.com/ur/${name}.tgz";
sha256 = "0d7mbmjc59y0dwk4k7r4wpxfsn4fzswrdxai9xh2nzjsxg2fa7d2";
sha256 = "0gbk16hzs8267cfhb7w1cqgjxdv2icxg5clxdbda6qsn84jaf3n4";
};
buildInputs = [ stdenv.gcc file openssl mlton mysql postgresql sqlite ];

View File

@ -0,0 +1,12 @@
{ cabal }:
cabal.mkDerivation (self: {
pname = "BoundedChan";
version = "1.0.1.0";
sha256 = "1v4lmp3j8lzk1m2pv5l90j80y0c6yxm6gb1ww9ffsz2jxfzz8vd8";
meta = {
description = "Implementation of bounded channels";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,7 +1,8 @@
{ cabal, blazeHtml, blazeMarkup, caseInsensitive, clientsession
, conduit, conduitExtra, cpphs, extensibleExceptions, httpTypes, monadloc
, mtl, parsec, random, RefSerialize, stm, TCache, text, time
, transformers, utf8String, vector, wai, warp, warpTls, Workflow
, conduit, conduitExtra, cpphs, extensibleExceptions, httpTypes
, monadloc, mtl, parsec, random, RefSerialize, stm, TCache, text
, time, transformers, utf8String, vector, wai, warp, warpTls
, Workflow
}:
cabal.mkDerivation (self: {
@ -10,10 +11,11 @@ cabal.mkDerivation (self: {
sha256 = "1ih9ni14xmqvcfvayjkggmpmw3s9yzp17gf4xzygldmjcs35j4n3";
buildDepends = [
blazeHtml blazeMarkup caseInsensitive clientsession conduit
conduitExtra cpphs extensibleExceptions httpTypes monadloc mtl parsec
conduitExtra extensibleExceptions httpTypes monadloc mtl parsec
random RefSerialize stm TCache text time transformers utf8String
vector wai warp warpTls Workflow
];
buildTools = [ cpphs ];
meta = {
description = "stateful, RESTful web framework";
license = self.stdenv.lib.licenses.bsd3;

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "aeson-qq";
version = "0.7.0";
sha256 = "1sq34pnwiyf5lngqph4m463ijr185akzbrdi3i40zmqlrymssv3c";
version = "0.7.1";
sha256 = "1b2ham1h6mlm49ax9k2agf8yymbgkk094nq2apn703i2d9v00im6";
buildDepends = [ aeson haskellSrcMeta parsec text vector ];
testDepends = [ aeson hspec ];
meta = {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "attoparsec";
version = "0.12.0.0";
sha256 = "04wdb2i2yqybkfnjs3f25nf7xz1nq5sn8z23klbm4xnqaiajmkmr";
version = "0.12.1.0";
sha256 = "1y7sikk5hg9yj3mn21k026ni6lznsih0lx03rgdz4gmb6aqh54bn";
buildDepends = [ deepseq scientific text ];
testDepends = [
deepseq QuickCheck scientific testFramework

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "blaze-builder-enumerator";
version = "0.2.0.5";
sha256 = "0bbbv9wwzw9ss3d02mszdzxzhg6pcrnpwir9bvby7xkmfqpyffaa";
version = "0.2.0.6";
sha256 = "0pdw18drvikb465qh43b8wjyvpqj3wcilyczc21fri5ma4mxdkyp";
buildDepends = [ blazeBuilder enumerator transformers ];
jailbreak = true;
meta = {

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "cabal-cargs";
version = "0.6.1";
sha256 = "1bf903kgs16f054crwq0yyp6ijch80qn3d5ksy4j0fnyxxrdqvsa";
version = "0.7";
sha256 = "1dzmvwmb9sxwdgkzszhk9d5qvq2alnqmprx83dlb17sdi6f9jns1";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cabal-lenses";
version = "0.1";
sha256 = "0jss4h7crh7mndl5ghbpziy37cg9i29cc64fgxvxb63hpk0q2m17";
version = "0.2";
sha256 = "1wfr4rh7ba1hsvi0v7mzpab7fi5k93lz27v8qdfjqzkyybhjglv4";
buildDepends = [ Cabal lens unorderedContainers ];
jailbreak = true;
meta = {

View File

@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
byteable cryptoRandom HUnit QuickCheck testFramework
testFrameworkHunit testFrameworkQuickcheck2 vector
];
doCheck = false;
meta = {
homepage = "http://github.com/vincenthz/hs-crypto-numbers";
description = "Cryptographic numbers: functions and algorithms";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "entropy";
version = "0.3";
sha256 = "0b1yx7409xw8jz2rj8695xscjnw4p7y80niq9cbkqrmnqbqnwj2q";
version = "0.3.2";
sha256 = "1kk0vmfmfqcsw0pzbii9rvz32fvhvxqpn6p6jw6q2x33z6gm5f9x";
meta = {
homepage = "https://github.com/TomMD/entropy";
description = "A platform independent entropy source";

View File

@ -1,12 +1,14 @@
{ cabal, nonNegative, QuickCheck, transformers, utilityHt }:
{ cabal, nonNegative, QuickCheck, random, transformers, utilityHt
}:
cabal.mkDerivation (self: {
pname = "event-list";
version = "0.1.0.2";
sha256 = "01j48871nijhkbqdsfvbvq01yr9b5a056fn03ccgazikfsd368ri";
isLibrary = true;
isExecutable = true;
version = "0.1.1.1";
sha256 = "16qrjvn8z2nlpfp3xlgwsg2abn7b33n3z673qs5k6ashfbkdy5ja";
buildDepends = [ nonNegative QuickCheck transformers utilityHt ];
testDepends = [
nonNegative QuickCheck random transformers utilityHt
];
meta = {
homepage = "http://code.haskell.org/~thielema/event-list/";
description = "Event lists with relative or absolute time stamps";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "force-layout";
version = "0.3.0.4";
sha256 = "1zgqcz9b86qax1hyl32a1giapvn2wpnb4gcfn8czkcr0m7c2iwdg";
version = "0.3.0.5";
sha256 = "01wk8zygw9d3r5dwbycyab82kfk8s05ynnajb6kfjv7i09s9sgcb";
buildDepends = [
dataDefaultClass lens vectorSpace vectorSpacePoints
];

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "ghc-vis";
version = "0.7.2.2";
sha256 = "0abk76cy9qiblyways1r7jfsj996sj4laawzaz1j9p546plfkbnj";
version = "0.7.2.3";
sha256 = "1gl059n85yxksnq8y7i1vrsjdg4al6himzpdmw95v61y59bbs6c2";
buildDepends = [
cairo deepseq fgl ghcHeapView graphviz gtk mtl svgcairo text
transformers xdot

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "haskeline";
version = "0.7.1.2";
sha256 = "178hzal5gqw3rmgijv9ph9xa6d4sld279z4a8cjyx3hv4azciwr4";
version = "0.7.1.3";
sha256 = "1bwyfn7y9mi18g7zxz8wxjkld51azlfbxypxbiqdinpm2fdl63mi";
buildDepends = [ filepath terminfo transformers utf8String ];
configureFlags = "-fterminfo";
jailbreak = true;

View File

@ -0,0 +1,22 @@
{ cabal, attoparsec, BoundedChan, bytestringLexing, HUnit, mtl
, network, resourcePool, testFramework, testFrameworkHunit, time
, vector
}:
cabal.mkDerivation (self: {
pname = "hedis";
version = "0.6.5";
sha256 = "1kn8i49yxms1bpjwpy4m8vyycgi755zvy4zc66w068nmnd1kiykh";
buildDepends = [
attoparsec BoundedChan bytestringLexing mtl network resourcePool
time vector
];
testDepends = [ HUnit mtl testFramework testFrameworkHunit time ];
meta = {
homepage = "https://github.com/informatikr/hedis";
description = "Client library for the Redis datastore: supports full command set, pipelining";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
doCheck = false;
})

View File

@ -2,6 +2,7 @@
, cmdargs, conduit, deepseq, filepath, haskellSrcExts, httpTypes
, parsec, QuickCheck, random, resourcet, safe, shake, tagsoup, text
, time, transformers, uniplate, vector, vectorAlgorithms, wai, warp
, fetchurl
}:
cabal.mkDerivation (self: {
@ -18,6 +19,9 @@ cabal.mkDerivation (self: {
];
testDepends = [ filepath ];
testTarget = "--test-option=--no-net";
patches = [ (fetchurl { url = "https://github.com/ndmitchell/hoogle/commit/5fc294f2b5412fda107c7700f4d833b52f26184c.diff";
sha256 = "1fn52g90p2jsy87gf5rqrcg49s8hfwway5hi4v9i2rpg5mzxaq3i"; })
];
meta = {
homepage = "http://www.haskell.org/hoogle/";
description = "Haskell API Search";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "hourglass";
version = "0.2.0";
sha256 = "13zphy3gfj9p7vsa477qy30968fnz5kq7d0lzb1pyg5hxkx44rim";
version = "0.2.2";
sha256 = "015ipy9adi67nfddjsw9c0ihn0banghgawjli0lgrmiyjz01610c";
buildDepends = [ deepseq ];
testDepends = [
deepseq mtl tasty tastyHunit tastyQuickcheck time

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "hsimport";
version = "0.3";
sha256 = "124dimaa8v4x6vlh51v2r7569d8122l42q19bpzgqih33vw2djcs";
version = "0.4";
sha256 = "1pkj6cfdfyrcrm6gr4a43y6s4qhwpli6zgnlx4ycmhs3yh5kay60";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -1,17 +1,17 @@
{ cabal, ansiTerminal, deepseq, filepath, hspecExpectations, HUnit
, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
{ cabal, ansiTerminal, async, deepseq, filepath, hspecExpectations
, HUnit, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
, transformers
}:
cabal.mkDerivation (self: {
pname = "hspec-meta";
version = "1.9.5";
sha256 = "0y39z9r5icz62dd7hvr3lwdcqas526w4m5rcd1468fp7rlz3402j";
version = "1.10.0";
sha256 = "1x32wgrd1i6rs6790dbr51j9g6abjpcf951cx3nmm4zdcwblyi6a";
isLibrary = true;
isExecutable = true;
buildDepends = [
ansiTerminal deepseq filepath hspecExpectations HUnit QuickCheck
quickcheckIo random setenv tfRandom time transformers
ansiTerminal async deepseq filepath hspecExpectations HUnit
QuickCheck quickcheckIo random setenv tfRandom time transformers
];
doCheck = false;
meta = {

View File

@ -0,0 +1,23 @@
{ cabal, aeson, aesonQq, caseInsensitive, doctest, hspec2
, hspecMeta, httpTypes, markdownUnlit, scotty, text, transformers
, wai, waiExtra
}:
cabal.mkDerivation (self: {
pname = "hspec-wai";
version = "0.2.0";
sha256 = "1hykc6k3kkjzz0x16i6ijcavsxfc003sp7fwvg2v9pzpmf9rfhhd";
buildDepends = [
aeson aesonQq caseInsensitive hspec2 httpTypes text transformers
wai waiExtra
];
testDepends = [
aeson caseInsensitive doctest hspec2 hspecMeta httpTypes
markdownUnlit scotty text transformers wai waiExtra
];
meta = {
description = "Experimental Hspec support for testing WAI applications (depends on hspec2!)";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,24 +1,22 @@
{ cabal, ansiTerminal, async, deepseq, doctest, filepath, ghcPaths
, hspecExpectations, hspecMeta, HUnit, ioMemoize, QuickCheck
, quickcheckIo, random, setenv, silently, tfRandom, time
, transformers
, hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
, random, setenv, silently, tfRandom, time, transformers
}:
cabal.mkDerivation (self: {
pname = "hspec2";
version = "0.3.0";
sha256 = "0ia19jraz2di31c48lh0kswkb2573jxm7msf33i8d5a5yq8y9wwp";
version = "0.3.4";
sha256 = "0vs5y1cqprixmmjdk3sdrig9gr1k63nvn4c91b3z66jj39rdxl21";
isLibrary = true;
isExecutable = true;
buildDepends = [
ansiTerminal async deepseq filepath hspecExpectations HUnit
ioMemoize QuickCheck quickcheckIo random setenv tfRandom time
transformers
QuickCheck quickcheckIo random setenv tfRandom time transformers
];
testDepends = [
ansiTerminal async deepseq doctest filepath ghcPaths
hspecExpectations hspecMeta HUnit ioMemoize QuickCheck quickcheckIo
random setenv silently tfRandom time transformers
hspecExpectations hspecMeta HUnit QuickCheck quickcheckIo random
setenv silently tfRandom time transformers
];
meta = {
homepage = "http://hspec.github.io/";

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "http-client";
version = "0.3.3";
sha256 = "001nmy6f57l2f7gc4mchz1gwam28qldkwmcxzs8jnqwczcirgk38";
version = "0.3.3.1";
sha256 = "0zzh4vr563f8rb51b64gcwmal7gswif8ndsf2x5kw6f7q55md0dw";
buildDepends = [
base64Bytestring blazeBuilder caseInsensitive cookie
dataDefaultClass deepseq exceptions filepath httpTypes mimeTypes

View File

@ -2,13 +2,13 @@
, connection, cookie, dataDefaultClass, hspec, httpClient
, httpClientTls, httpTypes, HUnit, liftedBase, monadControl, mtl
, network, networkConduit, resourcet, streamingCommons, text, time
, transformers, utf8String, wai, warp, warpTls
, transformers, utf8String, wai, waiConduit, warp, warpTls
}:
cabal.mkDerivation (self: {
pname = "http-conduit";
version = "2.1.2";
sha256 = "11g79yfgm2fzcy7gwk9f5np4p6fknsbjkm858v8khb4a1gmbrqvn";
version = "2.1.2.1";
sha256 = "17bq72qkgn7sh31ad5w7gqf15dlzl027nmx8k7kmm268mf9bz0b5";
buildDepends = [
conduit httpClient httpClientTls httpTypes liftedBase monadControl
mtl resourcet transformers
@ -17,7 +17,7 @@ cabal.mkDerivation (self: {
blazeBuilder caseInsensitive conduit conduitExtra connection cookie
dataDefaultClass hspec httpClient httpTypes HUnit liftedBase
network networkConduit streamingCommons text time transformers
utf8String wai warp warpTls
utf8String wai waiConduit warp warpTls
];
doCheck = false;
meta = {

View File

@ -7,13 +7,13 @@
cabal.mkDerivation (self: {
pname = "http-reverse-proxy";
version = "0.3.1.7";
sha256 = "0fhndk9zjv1kcqgrhj42brfg96p7flrcpy609asba1vc0i9213j4";
version = "0.4.0.1";
sha256 = "0gygmykxsy6rs3xmwb24s5c3brmabdgxb1w0ak82vyvfvsnqxz1h";
buildDepends = [
async blazeBuilder caseInsensitive conduit conduitExtra
dataDefaultClass httpClient httpTypes liftedBase monadControl
network networkConduit resourcet streamingCommons text transformers
wai waiLogger word8
network resourcet streamingCommons text transformers wai waiLogger
word8
];
testDepends = [
blazeBuilder conduit conduitExtra hspec httpConduit httpTypes

View File

@ -1,10 +1,10 @@
{ cabal, spawn }:
{ cabal, async }:
cabal.mkDerivation (self: {
pname = "io-memoize";
version = "1.0.0.0";
sha256 = "1z6aimyg7wasaqmacpch7skfm9iyl7khd54lfmb8iwghyfvah5d0";
buildDepends = [ spawn ];
version = "1.1.0.0";
sha256 = "1xnrzrvs5c3lrzdxm4hrqbh8chl8sxv2j98b28na73w8b7yv2agm";
buildDepends = [ async ];
meta = {
description = "Memoize IO actions";
license = self.stdenv.lib.licenses.bsd3;

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "mongoDB";
version = "1.4.4";
sha256 = "11v0k2i0ix67zwm19w1215dslnnqllkc4jlhbs5yva2ix4z7d4gh";
version = "1.5.0";
sha256 = "0dvy8pa79c26hcngds6nnwnayrhsyz1flj18m9bcyrcvwb5q3dd6";
buildDepends = [
binary bson cryptohash hashtables liftedBase monadControl mtl
network parsec random randomShuffle text transformersBase

View File

@ -2,11 +2,10 @@
cabal.mkDerivation (self: {
pname = "non-negative";
version = "0.1";
sha256 = "0aebb6f5518191a02b11230798444997a03b84d63d2aaa6c38cac6718f6c351c";
isLibrary = true;
isExecutable = true;
version = "0.1.1";
sha256 = "163g3j3xrx1jkrbg2wnha3yyxyg1mn7kabmbpg82y3rbl3ihy1p7";
buildDepends = [ QuickCheck utilityHt ];
testDepends = [ QuickCheck utilityHt ];
meta = {
homepage = "http://code.haskell.org/~thielema/non-negative/";
description = "Non-negative numbers";

View File

@ -1,14 +1,14 @@
{ cabal, pipes, pipesBytestring, pipesGroup, pipesParse, pipesSafe
, profunctors, text, textStreamDecode, transformers
, profunctors, streamingCommons, text, transformers
}:
cabal.mkDerivation (self: {
pname = "pipes-text";
version = "0.0.0.10";
sha256 = "05lrxfy6cma7g5h41c74sc22p1y38kzbmiagr3grxk5a5110vhr1";
version = "0.0.0.11";
sha256 = "0c56gxm17bapdjgbp2f55z3f6vq8ryvsljqp3bcjjj18xv5pf1ls";
buildDepends = [
pipes pipesBytestring pipesGroup pipesParse pipesSafe profunctors
text textStreamDecode transformers
streamingCommons text transformers
];
meta = {
homepage = "https://github.com/michaelt/text-pipes";

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "purescript";
version = "0.5.2.2";
sha256 = "07gkd897qcgn7yf81bii5njkiq1hlhfz5jx3spdlv64a492grmg2";
version = "0.5.2.3";
sha256 = "09z56gb3k1ya5c3yznm49sgd1g9i5wvn5ih4mycf5ys2wvy3v9sl";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -1,16 +1,17 @@
{ cabal, aeson, blazeBuilder, caseInsensitive, conduit
, conduitExtra, dataDefault, httpTypes, mtl, regexCompat, text
, transformers, wai, waiExtra, warp
{ cabal, aeson, blazeBuilder, caseInsensitive, conduit, dataDefault
, hspec, httpTypes, mtl, regexCompat, text, transformers, wai
, waiExtra, warp
}:
cabal.mkDerivation (self: {
pname = "scotty";
version = "0.7.3";
sha256 = "1cksnsaghcliwpbigs7fjb2qcxsnrqmjcjwndmf3vbfkn43w2prb";
version = "0.8.0";
sha256 = "07198m8rsavdqr51abxsrmi8jail6h4ldzrr9s47il1djjba6lhh";
buildDepends = [
aeson blazeBuilder caseInsensitive conduit conduitExtra dataDefault
httpTypes mtl regexCompat text transformers wai waiExtra warp
aeson blazeBuilder caseInsensitive conduit dataDefault httpTypes
mtl regexCompat text transformers wai waiExtra warp
];
testDepends = [ hspec httpTypes wai waiExtra ];
jailbreak = true;
meta = {
homepage = "https://github.com/scotty-web/scotty";

View File

@ -0,0 +1,19 @@
{ cabal, configurator, hedis, lens, mtl, network, snap
, transformers
}:
cabal.mkDerivation (self: {
pname = "snaplet-redis";
version = "0.1.3.1";
sha256 = "1aprz9rxs01a86vfr8s7mjydafdfljg89grl7i43vmsw927izc6k";
buildDepends = [
configurator hedis lens mtl network snap transformers
];
meta = {
homepage = "https://github.com/dzhus/snaplet-redis/";
description = "Redis support for Snap Framework";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
jailbreak = true;
})

View File

@ -3,13 +3,13 @@
, hspec, httpDate, httpTypes, mimeTypes, network
, optparseApplicative, systemFileio, systemFilepath, text, time
, transformers, unixCompat, unorderedContainers, wai, waiExtra
, waiTest, warp, zlib
, warp, zlib
}:
cabal.mkDerivation (self: {
pname = "wai-app-static";
version = "2.0.1";
sha256 = "1mygyp70rmhnkc0s8626cxrkvcbil92v4gnx70iz26gfb5q9lc7d";
version = "3.0.0";
sha256 = "117r2ps440i2i156k50b674fkny2ywwbbla6ry0km041604cl733";
isLibrary = true;
isExecutable = true;
buildDepends = [
@ -20,7 +20,7 @@ cabal.mkDerivation (self: {
];
testDepends = [
hspec httpDate httpTypes mimeTypes network text time transformers
unixCompat wai waiTest zlib
unixCompat wai waiExtra zlib
];
meta = {
homepage = "http://www.yesodweb.com/book/web-application-interface";

View File

@ -0,0 +1,14 @@
{ cabal, blazeBuilder, conduit, httpTypes, transformers, wai }:
cabal.mkDerivation (self: {
pname = "wai-conduit";
version = "3.0.0";
sha256 = "0v92jyxkigq7yj3hzy7kg360036nav986ny7b558l6j7zc90jsdg";
buildDepends = [ blazeBuilder conduit httpTypes transformers wai ];
meta = {
homepage = "https://github.com/yesodweb/wai";
description = "conduit wrappers for WAI";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,24 +1,23 @@
{ cabal, ansiTerminal, base64Bytestring, blazeBuilder
, blazeBuilderConduit, caseInsensitive, conduit, conduitExtra
, dataDefault, fastLogger, hspec, httpTypes, HUnit, liftedBase
, network, resourcet, stringsearch, text, time, transformers, void
, wai, waiLogger, waiTest, word8, zlib, zlibBindings, zlibConduit
, caseInsensitive, dataDefault, dataDefaultClass, deepseq
, fastLogger, hspec, httpTypes, HUnit, liftedBase, network
, resourcet, streamingCommons, stringsearch, text, time
, transformers, void, wai, waiLogger, word8, zlib
}:
cabal.mkDerivation (self: {
pname = "wai-extra";
version = "2.1.1.2";
sha256 = "000ksma1jmi7rfg2ib94baj31mcwqj2xfhkyv7lai89di0m0v6s4";
version = "3.0.0";
sha256 = "0spjyimqfj7hx8zgmal4laqy8p1inj8hl2402b5s6zqdn36lldfs";
buildDepends = [
ansiTerminal base64Bytestring blazeBuilder blazeBuilderConduit
caseInsensitive conduit conduitExtra dataDefault fastLogger
httpTypes liftedBase network resourcet stringsearch text time
transformers void wai waiLogger word8 zlibConduit
ansiTerminal base64Bytestring blazeBuilder caseInsensitive
dataDefaultClass deepseq fastLogger httpTypes liftedBase network
resourcet streamingCommons stringsearch text time transformers void
wai waiLogger word8
];
testDepends = [
blazeBuilder conduit conduitExtra dataDefault fastLogger hspec
httpTypes HUnit resourcet text transformers wai waiTest zlib
zlibBindings
blazeBuilder dataDefault fastLogger hspec httpTypes HUnit resourcet
text transformers wai zlib
];
jailbreak = true;
meta = {

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "wai-handler-fastcgi";
version = "2.0.0.1";
sha256 = "14jsibsqfj6z5yqgdrh43aiqps1yldxkgn6fkj4i80zxk099nbxp";
version = "3.0.0";
sha256 = "1cvy95qmbrhc1yjcral7f8y2929xp623abc9xasz7j28m4wwmynh";
buildDepends = [ wai waiExtra ];
extraLibraries = [ fcgi ];
meta = {

View File

@ -1,14 +1,13 @@
{ cabal, blazeBuilder, blazeBuilderConduit, conduit, conduitExtra
, httpTypes, transformers, wai, warp, zlibConduit
{ cabal, blazeBuilder, httpTypes, streamingCommons, transformers
, wai, warp
}:
cabal.mkDerivation (self: {
pname = "wai-handler-launch";
version = "2.0.1.3";
sha256 = "06im28x26jbzbdk9xz33kqvzblglk3b3b60qwal836hima69alsd";
version = "3.0.0";
sha256 = "1dv7w151szjkg9968v870abz11a440pdzy50zwm0xl6blk392nmk";
buildDepends = [
blazeBuilder blazeBuilderConduit conduit conduitExtra httpTypes
transformers wai warp zlibConduit
blazeBuilder httpTypes streamingCommons transformers wai warp
];
meta = {
description = "Launch a web app in the default browser";

View File

@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
unixTime wai
];
testDepends = [ doctest waiTest ];
doCheck = false;
meta = {
description = "A logging system for WAI";
license = self.stdenv.lib.licenses.bsd3;

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "wai-middleware-static";
version = "0.5.0.1";
sha256 = "1pwyy6lsvi7kaxf6x3ghy5013yq4ryjp01c4rrd4isx4jh1ynl31";
version = "0.6.0";
sha256 = "1rsy8qkxcjqdpzqkar0smyy49p8vqapi47k8d24101lz3rym6018";
buildDepends = [ filepath httpTypes mtl text wai ];
jailbreak = true;
meta = {

View File

@ -1,20 +1,14 @@
{ cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
, conduit, conduitExtra, cookie, deepseq, hspec, httpTypes, network
, text, transformers, wai
}:
{ cabal, wai }:
cabal.mkDerivation (self: {
pname = "wai-test";
version = "2.0.1.3";
sha256 = "18j77l2n41941f95awj6fj0w712628v5lsc3bif00cqnaixjmz48";
buildDepends = [
blazeBuilder blazeBuilderConduit caseInsensitive conduit
conduitExtra cookie deepseq httpTypes network text transformers wai
];
testDepends = [ hspec wai ];
version = "3.0.0";
sha256 = "0xys01jniib0pnhadcm7s0v5z0wcxfgi0bf5ax808zm9qzvl3xfx";
buildDepends = [ wai ];
noHaddock = true;
meta = {
homepage = "http://www.yesodweb.com/book/web-application-interface";
description = "Unit test framework (built on HUnit) for WAI applications";
description = "Unit test framework (built on HUnit) for WAI applications. (deprecated)";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};

View File

@ -1,17 +1,17 @@
{ cabal, blazeBuilder, caseInsensitive, conduit, fileEmbed
, httpTypes, ioStreams, network, text, transformers, wai
, waiAppStatic, warp, websockets
{ cabal, blazeBuilder, caseInsensitive, fileEmbed, httpTypes
, ioStreams, network, text, transformers, wai, waiAppStatic, warp
, websockets
}:
cabal.mkDerivation (self: {
pname = "wai-websockets";
version = "2.1.0.2";
sha256 = "16hff38x6fpmp4r1wkjd922s02v5na8zwy6mq5f5gsj7b70n2ww2";
version = "3.0.0";
sha256 = "0bpzkh9a5j0a282z4dj9dqnjsgd0g8gyvvp0xm0a53582zfhfi5s";
isLibrary = true;
isExecutable = true;
buildDepends = [
blazeBuilder caseInsensitive conduit fileEmbed httpTypes ioStreams
network text transformers wai waiAppStatic warp websockets
blazeBuilder caseInsensitive fileEmbed httpTypes ioStreams network
text transformers wai waiAppStatic warp websockets
];
meta = {
homepage = "http://github.com/yesodweb/wai";

View File

@ -1,15 +1,11 @@
{ cabal, blazeBuilder, conduit, conduitExtra, httpTypes, network
, text, transformers, vault
}:
{ cabal, blazeBuilder, hspec, httpTypes, network, text, vault }:
cabal.mkDerivation (self: {
pname = "wai";
version = "2.1.0.3";
sha256 = "0qprvk63fvb4rddg9h385xbd5sr5bcgkpx6fqlw01pjzmmrig1m3";
buildDepends = [
blazeBuilder conduit conduitExtra httpTypes network text
transformers vault
];
version = "3.0.0.1";
sha256 = "1f8alq4lygjdb4pzb7xm6jml3dviygk18siwfwb751va3j2fmi0v";
buildDepends = [ blazeBuilder httpTypes network text vault ];
testDepends = [ blazeBuilder hspec ];
meta = {
homepage = "https://github.com/yesodweb/wai";
description = "Web Application Interface";

View File

@ -1,15 +1,13 @@
{ cabal, conduit, conduitExtra, cprngAes, dataDefaultClass, network
, networkConduit, resourcet, streamingCommons, tls, transformers
{ cabal, cprngAes, dataDefaultClass, network, streamingCommons, tls
, wai, warp
}:
cabal.mkDerivation (self: {
pname = "warp-tls";
version = "2.0.5";
sha256 = "11nc5drys75mjfqww87rs2clhxpx485q008y42f2ymj7s5856db4";
version = "3.0.0";
sha256 = "14gm43a811v9h87ia2b9y9kynafrvq3yw89gswlj832469jx9sfw";
buildDepends = [
conduit conduitExtra cprngAes dataDefaultClass network
networkConduit resourcet streamingCommons tls transformers wai warp
cprngAes dataDefaultClass network streamingCommons tls wai warp
];
meta = {
homepage = "http://github.com/yesodweb/wai";

View File

@ -1,25 +1,22 @@
{ cabal, async, blazeBuilder, blazeBuilderConduit, caseInsensitive
, conduit, conduitExtra, doctest, hashable, hspec, HTTP, httpDate
, httpTypes, HUnit, liftedBase, network, networkConduit, QuickCheck
, simpleSendfile, streamingCommons, text, time, transformers
, unixCompat, void, wai
{ cabal, async, blazeBuilder, caseInsensitive, doctest, hashable
, hspec, HTTP, httpDate, httpTypes, HUnit, liftedBase, network
, QuickCheck, simpleSendfile, streamingCommons, text, time
, transformers, unixCompat, void, wai
}:
cabal.mkDerivation (self: {
pname = "warp";
version = "2.1.5.2";
sha256 = "0rv5fxw1d5dh6jzvs3bg2vjjr702xw59fx7mflygpqh8zivfh4ds";
version = "3.0.0.1";
sha256 = "05x216fj7s1i963xipi0p7vmkz5l0nma1fjqiq040fg3rngw4yqb";
buildDepends = [
blazeBuilder blazeBuilderConduit caseInsensitive conduit
conduitExtra hashable httpDate httpTypes liftedBase network
networkConduit simpleSendfile streamingCommons text transformers
unixCompat void wai
blazeBuilder caseInsensitive hashable httpDate httpTypes network
simpleSendfile streamingCommons text unixCompat void wai
];
testDepends = [
async blazeBuilder blazeBuilderConduit caseInsensitive conduit
conduitExtra doctest hashable hspec HTTP httpDate httpTypes HUnit
liftedBase network networkConduit QuickCheck simpleSendfile
streamingCommons text time transformers unixCompat void wai
async blazeBuilder caseInsensitive doctest hashable hspec HTTP
httpDate httpTypes HUnit liftedBase network QuickCheck
simpleSendfile streamingCommons text time transformers unixCompat
void wai
];
doCheck = false;
meta = {

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "websockets";
version = "0.8.2.3";
sha256 = "0j4lm5hkipd4q6kizrjy1cjdw2b0588m4k6fh50ss5qnqw9rkjkd";
version = "0.8.2.4";
sha256 = "09mq04vhi53isj8z5930ibyai7bv634lnmhl4xl2d3fzz2afvff0";
buildDepends = [
attoparsec base64Bytestring binary blazeBuilder caseInsensitive
entropy ioStreams mtl network random SHA text

View File

@ -10,8 +10,8 @@
cabal.mkDerivation (self: {
pname = "yesod-bin";
version = "1.2.9.4";
sha256 = "0ir77hmg3avkm4x7pgmjx3fijisncpwklg4v1glqx4vqbjjrzk5g";
version = "1.2.10.2";
sha256 = "18faylxjrd790xv6zr77wikkcy99l7824bb1sq1y225kd7a3alsm";
isLibrary = false;
isExecutable = true;
buildDepends = [

View File

@ -11,8 +11,8 @@
cabal.mkDerivation (self: {
pname = "yesod-core";
version = "1.2.15.2";
sha256 = "1k5dqcfpwqac81p9w2i1kz5pcvr21ibia5kh441811bdzlpwsiwq";
version = "1.2.16.1";
sha256 = "1wr5labhp3wc23ki2wvaypanm54qw9vz3v77rxyj1za1y2n1cprw";
buildDepends = [
aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
caseInsensitive cereal clientsession conduit conduitExtra cookie
@ -26,7 +26,7 @@ cabal.mkDerivation (self: {
async blazeBuilder conduit conduitExtra hamlet hspec httpTypes
HUnit liftedBase network networkConduit QuickCheck random resourcet
shakespeare shakespeareCss shakespeareJs streamingCommons text
transformers wai waiTest
transformers wai waiExtra waiTest
];
jailbreak = true;
meta = {

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "yesod-form";
version = "1.3.9.1";
sha256 = "1iw2vcdvp77vz3az9g9y4nk29g098fa9lvqzc7hwypvdawgwpgwm";
version = "1.3.10";
sha256 = "1qq0r5phb6xygz4w5ysir3ky7bw0rmd1q4vz57dz1aza2pchb1ih";
buildDepends = [
aeson attoparsec blazeBuilder blazeHtml blazeMarkup byteable
dataDefault emailValidate hamlet network persistent resourcet

View File

@ -1,19 +1,19 @@
{ cabal, blazeBuilder, conduit, hspec, persistent, persistentSqlite
, persistentTemplate, resourcePool, resourcet, text, transformers
, waiTest, yesodCore
, waiExtra, waiTest, yesodCore
}:
cabal.mkDerivation (self: {
pname = "yesod-persistent";
version = "1.2.2.3";
sha256 = "1699grrxb1qwfiivh9ihnczkcbwl4gcqdk7m02lc09r9gjr920p8";
version = "1.2.3";
sha256 = "1kdspz6y32r8kl0qk89hgwi4n6dnxch7wriv829cnwqm0bzjfdpw";
buildDepends = [
blazeBuilder conduit persistent persistentTemplate resourcePool
resourcet transformers yesodCore
];
testDepends = [
blazeBuilder conduit hspec persistent persistentSqlite text waiTest
yesodCore
blazeBuilder conduit hspec persistent persistentSqlite text
waiExtra waiTest yesodCore
];
meta = {
homepage = "http://www.yesodweb.com/";

View File

@ -3,14 +3,14 @@
, cssText, dataDefault, fileEmbed, filepath, hashable, hjsmin
, hspec, httpTypes, HUnit, mimeTypes, resourcet, shakespeareCss
, systemFileio, systemFilepath, text, transformers, unixCompat
, unorderedContainers, wai, waiAppStatic, waiTest, yesodCore
, yesodTest
, unorderedContainers, wai, waiAppStatic, waiExtra, waiTest
, yesodCore, yesodTest
}:
cabal.mkDerivation (self: {
pname = "yesod-static";
version = "1.2.3";
sha256 = "093lvg7pl71dfnr7qyfmp9r1m3bs64849k0dw4w2qb618y8wb9jh";
version = "1.2.4";
sha256 = "0r5bz1jmgjd7cmvhkp3ahgl610bssvgxxsvb626dvqz2vqc0061z";
buildDepends = [
async attoparsec base64Bytestring blazeBuilder byteable conduit
conduitExtra cryptohash cryptohashConduit cssText dataDefault
@ -23,7 +23,7 @@ cabal.mkDerivation (self: {
cryptohashConduit dataDefault fileEmbed filepath hjsmin hspec
httpTypes HUnit mimeTypes resourcet shakespeareCss systemFileio
systemFilepath text transformers unixCompat unorderedContainers wai
waiAppStatic waiTest yesodCore yesodTest
waiAppStatic waiExtra waiTest yesodCore yesodTest
];
doCheck = false;
meta = {

View File

@ -1,18 +1,18 @@
{ cabal, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
, caseInsensitive, cookie, hspec, htmlConduit, httpTypes, HUnit
, monadControl, network, persistent, text, time, transformers, wai
, waiTest, xmlConduit, xmlTypes, yesodCore, yesodForm
, waiExtra, waiTest, xmlConduit, xmlTypes, yesodCore, yesodForm
}:
cabal.mkDerivation (self: {
pname = "yesod-test";
version = "1.2.2";
sha256 = "1vf5g83mj2a38f34llg6wa63whj13p0vgbzfvi3ic5j7qy5gb8g5";
version = "1.2.3";
sha256 = "082zi53q1pw9xv4l6ld1y3xxnvq3iwgbrdnxjknhwsxph7glkn3p";
buildDepends = [
attoparsec blazeBuilder blazeHtml blazeMarkup caseInsensitive
cookie hspec htmlConduit httpTypes HUnit monadControl network
persistent text time transformers wai waiTest xmlConduit xmlTypes
yesodCore
persistent text time transformers wai waiExtra waiTest xmlConduit
xmlTypes yesodCore
];
testDepends = [
hspec htmlConduit HUnit text wai xmlConduit yesodCore yesodForm

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "yesod";
version = "1.2.5.3";
sha256 = "1w9bbvinnbnhrajjqj6yhy9dgggdf6n98x04dys45anssiwrd2ss";
version = "1.2.6";
sha256 = "0rw46zznczdzg2wvbgp5kpq3yrl6w40vbbs7zyvqpcf6m82jsfz0";
buildDepends = [
aeson blazeHtml blazeMarkup conduitExtra dataDefault fastLogger
hamlet monadControl monadLogger networkConduit safe shakespeare

View File

@ -0,0 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "libmodbus-3.0.6";
src = fetchurl {
url = "http://libmodbus.org/releases/${name}.tar.gz";
sha256 = "1dkijjv3dq0c5vc5z5f1awm8dlssbwg6ivsnvih22pkm1zqn6v84";
};
meta = with stdenv.lib; {
description = "Library to send/receive data according to the Modbus protocol";
homepage = http://libmodbus.org/;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, autoconf, automake, libtool, ruby }:
{ stdenv, fetchurl, autoconf, automake, libtool, ruby, scatterOutputHook }:
stdenv.mkDerivation rec {
version = "0.5.8";
@ -9,17 +9,18 @@ stdenv.mkDerivation rec {
sha256 = "1h6k9kdbfavmw3by5kk3raszwa64hn9k8yw9rdhvl5m8g2lks89k";
};
nativeBuildInputs = [ scatterOutputHook ];
buildInputs = [ autoconf automake libtool ruby ];
outputs = [ "out" "lib" ];
outputs = [ "out" "bin" ];
preConfigure = "./bootstrap";
postInstall = ''
mkdir -p $lib/lib
mv $out/lib/*.so.* $lib/lib/
preConfigure = ''
sed -i s,glibtoolize,libtoolize, ./bootstrap
./bootstrap
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "MessagePack implementation for C and C++";
homepage = http://msgpack.org;

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, ncurses ? null, perl ? null }:
stdenv.mkDerivation rec {
name = "liboping-1.6.2";
src = fetchurl {
url = "http://verplant.org/liboping/files/${name}.tar.bz2";
sha256 = "1kvkpdcd5jinyc15cgir48v91qphpw22c03inydaga5m4yqv8jjz";
};
buildInputs = [ ncurses perl ];
configureFlags = stdenv.lib.optionalString (perl == null) "--with-perl-bindings=no";
meta = with stdenv.lib; {
description = "C library to generate ICMP echo requests (a.k.a. ping packets)";
longDescription = ''
liboping is a C library to generate ICMP echo requests, better known as
"ping packets". It is intended for use in network monitoring applications
or applications that would otherwise need to fork ping(1) frequently.
Included is a sample application, called oping, which demonstrates the
library's abilities.
'';
homepage = http://verplant.org/liboping/;
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@ -4,14 +4,14 @@
, dnsmasq, libnl
}:
let version = "1.2.4"; in
let version = "1.2.5"; in
stdenv.mkDerivation rec {
name = "libvirt-${version}";
src = fetchurl {
url = "http://libvirt.org/sources/${name}.tar.gz";
sha256 = "0xg8m7x4a3dqrg2b9pqcikaghdp6jyl07gkp2z8grsmsnbvcafp4";
sha256 = "0igd74wkksgv24i2xaa8wx51iqpgjp1v7820pk93m0jv8gipvscf";
};
buildInputs = [

View File

@ -0,0 +1,23 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "libxmp-4.2.7";
meta = with stdenv.lib; {
description = "Extended module player library";
homepage = "http://xmp.sourceforge.net/";
longDescription = ''
Libxmp is a library that renders module files to PCM data. It supports
over 90 mainstream and obscure module formats including Protracker (MOD),
Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).
'';
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "mirror://sourceforge/xmp/libxmp/${name}.tar.gz";
sha256 = "1isv8498869w8wc18lagi1p40z4blx684r21j9cligkfyrmri536";
};
}

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl }:
let version = "4.10.5"; in
let version = "4.10.6"; in
stdenv.mkDerivation {
name = "nspr-${version}";
src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
sha1 = "891de2b62ad42f9b38808a0aa58c95e8cbd5c9a9";
sha1 = "3hzcslcfql1rg7drvcn4nmrigy7jfgwz";
};
preConfigure = "cd nspr";

View File

@ -156,12 +156,14 @@ python.stdenv.mkDerivation (attrs // {
'';
shellHook = attrs.shellHook or ''
mkdir -p /tmp/$name/lib/${python.libPrefix}/site-packages
${preShellHook}
export PATH="/tmp/$name/bin:$PATH"
export PYTHONPATH="/tmp/$name/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
python setup.py develop --prefix /tmp/$name
${postShellHook}
if test -e setup.py; then
mkdir -p /tmp/$name/lib/${python.libPrefix}/site-packages
${preShellHook}
export PATH="/tmp/$name/bin:$PATH"
export PYTHONPATH="/tmp/$name/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
${python}/bin/${python.executable} setup.py develop --prefix /tmp/$name
${postShellHook}
fi
'';
meta = with lib.maintainers; {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "cabal-bounds";
version = "0.5";
sha256 = "0sx6vyf3p62khg7qv7nwgd8fns6dsfpw34gpl7zmb6n0c1kjj60b";
version = "0.6";
sha256 = "0dl8rf8y365a20yz5kk1c9y860k5mkg1jp5dipvbf451h7a7h9w5";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -3,8 +3,8 @@
cabal.mkDerivation (self: {
pname = "cabal2nix";
version = "1.61";
sha256 = "058bwswkhsj3rbxl42n23ri79smmhkaj6wid4c6x02yl3m8l7xsy";
version = "1.63";
sha256 = "12frnhm86w5i6rmhghrdngdv658332bh9j5nr04ql439yysvkypj";
isLibrary = false;
isExecutable = true;
buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];

View File

@ -1,21 +1,21 @@
{ cabal, aeson, async, attoparsec, blazeBuilder, caseInsensitive
, conduit, conduitExtra, dataDefault, filepath, fsnotify, hspec
, httpConduit, httpReverseProxy, httpTypes, liftedBase, mtl
, network, networkConduitTls, random, regexTdfa, stm, systemFileio
, systemFilepath, tar, text, time, transformers, unixCompat
, unorderedContainers, vector, wai, waiAppStatic, waiExtra, warp
, warpTls, yaml, zlib
, httpClient, httpConduit, httpReverseProxy, httpTypes, liftedBase
, mtl, network, networkConduitTls, random, regexTdfa, stm
, systemFileio, systemFilepath, tar, text, time, transformers
, unixCompat, unorderedContainers, vector, wai, waiAppStatic
, waiExtra, warp, warpTls, yaml, zlib
}:
cabal.mkDerivation (self: {
pname = "keter";
version = "1.3.0";
sha256 = "1fvb93iga4c0kfv29ksrmn9bjznl7wfspg1v9a5d3svwrszl4is3";
version = "1.3.1";
sha256 = "19isyslrxbp430ira7v2d3r5f1j1526rg7v6lzzyl3dsyfpvxjg6";
isLibrary = true;
isExecutable = true;
buildDepends = [
aeson async attoparsec blazeBuilder caseInsensitive conduit
conduitExtra dataDefault filepath fsnotify httpConduit
conduitExtra dataDefault filepath fsnotify httpClient httpConduit
httpReverseProxy httpTypes liftedBase mtl network networkConduitTls
random regexTdfa stm systemFileio systemFilepath tar text time
transformers unixCompat unorderedContainers vector wai waiAppStatic

View File

@ -0,0 +1,16 @@
{ cabal, json, mtl, parsec, regexCompat }:
cabal.mkDerivation (self: {
pname = "ShellCheck";
version = "0.3.3";
sha256 = "15lmc7cbi6s852qhd6h9asgz7ss1khfhq7wj4sgblr5mgppldg93";
isLibrary = true;
isExecutable = true;
buildDepends = [ json mtl parsec regexCompat ];
meta = {
homepage = "http://www.shellcheck.net/";
description = "Shell script analysis tool";
license = self.stdenv.lib.licenses.agpl3Plus;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="cl-launch";
version="4.0.4";
version="4.0.5";
name="${baseName}-${version}";
hash="152m834myhcgi4iacfqn81fznlbqxn7pvdlxvk2lbba09h0slm56";
url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.0.4.tar.gz";
sha256="152m834myhcgi4iacfqn81fznlbqxn7pvdlxvk2lbba09h0slm56";
hash="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj";
url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.0.5.tar.gz";
sha256="00i11pkwsb9r9cjzxjmj0dsp369i0gpz04f447xss9a9v192dhlj";
};
buildInputs = [
];

View File

@ -12,10 +12,10 @@ let
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="sauerbraten";
version="3331";
version="5000";
name="${baseName}-r${version}";
url="https://svn.code.sf.net/p/sauerbraten/code";
hash="0904hk9rz2x941c9587bfxa4rca81260j3m2hjjrp984w67x2w7y";
hash="17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh";
};
in
rec {

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