Merge recent master into staging

Hydra nixpkgs: ?compare=1156478
This commit is contained in:
Vladimír Čunát 2014-10-23 17:40:41 +02:00
commit 2cf17b0802
271 changed files with 5900 additions and 2711 deletions

View File

@ -1 +1 @@
14.10 14.11

View File

@ -62,6 +62,8 @@ rec {
makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs)); makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
deepOverride = newArgs: deepOverride = newArgs:
makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs); makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
overrideDerivation = fdrv:
makeOverridable (args: overrideDerivation (f args) fdrv) origArgs;
}) })
else ff; else ff;

View File

@ -285,6 +285,12 @@ rec {
unfreeRedistributableFirmware = "unfree-redistributable-firmware"; unfreeRedistributableFirmware = "unfree-redistributable-firmware";
unlicense = {
shortName = "Unlicense";
fullName = "Unlicense";
url = http://unlicense.org/;
};
wadalab = { wadalab = {
shortName = "wadalab"; shortName = "wadalab";
fullName = "Wadalab Font License"; fullName = "Wadalab Font License";

View File

@ -57,6 +57,7 @@
ertes = "Ertugrul Söylemez <ertesx@gmx.de>"; ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
falsifian = "James Cook <james.cook@utoronto.ca>"; falsifian = "James Cook <james.cook@utoronto.ca>";
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>"; flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>"; ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>"; funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>"; fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";

View File

@ -10,7 +10,7 @@
<para>This section lists the release notes for each stable version of NixOS.</para> <para>This section lists the release notes for each stable version of NixOS.</para>
</partintro> </partintro>
<xi:include href="rl-1410.xml" /> <xi:include href="rl-1411.xml" />
<xi:include href="rl-1404.xml" /> <xi:include href="rl-1404.xml" />
<xi:include href="rl-1310.xml" /> <xi:include href="rl-1310.xml" />

View File

@ -2,9 +2,9 @@
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0" version="5.0"
xml:id="sec-release-14.10"> xml:id="sec-release-14.11">
<title>Release 14.10 (“Caterpillar”, 2014/10/??)</title> <title>Release 14.11 (“Caterpillar”, 2014/11/??)</title>
<para>When upgrading from a previous release, please be aware of the <para>When upgrading from a previous release, please be aware of the
following incompatible changes: following incompatible changes:

View File

@ -1,7 +1,7 @@
# This module generates nixos-install, nixos-rebuild, # This module generates nixos-install, nixos-rebuild,
# nixos-generate-config, etc. # nixos-generate-config, etc.
{ config, pkgs, modulesPath, lib, ... }: { config, pkgs, modulesPath, ... }:
let let

View File

@ -156,8 +156,7 @@
mailpile = 146; mailpile = 146;
redmine = 147; redmine = 147;
seeks = 148; seeks = 148;
prosody = 149;
prosody = 148;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -281,8 +280,7 @@
mailpile = 146; mailpile = 146;
redmine = 147; redmine = 147;
seeks = 148; seeks = 148;
prosody = 149;
prosody = 148;
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399! # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!

View File

@ -364,6 +364,7 @@
./tasks/filesystems/cifs.nix ./tasks/filesystems/cifs.nix
./tasks/filesystems/ext.nix ./tasks/filesystems/ext.nix
./tasks/filesystems/f2fs.nix ./tasks/filesystems/f2fs.nix
./tasks/filesystems/jfs.nix
./tasks/filesystems/nfs.nix ./tasks/filesystems/nfs.nix
./tasks/filesystems/reiserfs.nix ./tasks/filesystems/reiserfs.nix
./tasks/filesystems/unionfs-fuse.nix ./tasks/filesystems/unionfs-fuse.nix

View File

@ -30,7 +30,7 @@ in
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Enable the stable grsecurity patch, based on Linux 3.2. Enable the stable grsecurity patch, based on Linux 3.14.
''; '';
}; };
@ -38,7 +38,7 @@ in
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Enable the testing grsecurity patch, based on Linux 3.13. Enable the testing grsecurity patch, based on Linux 3.17.
''; '';
}; };

View File

@ -19,7 +19,7 @@ let
org.neo4j.server.webadmin.rrdb.location=${cfg.dataDir}/data/rrd org.neo4j.server.webadmin.rrdb.location=${cfg.dataDir}/data/rrd
org.neo4j.server.webadmin.data.uri=/db/data/ org.neo4j.server.webadmin.data.uri=/db/data/
org.neo4j.server.webadmin.management.uri=/db/manage/ org.neo4j.server.webadmin.management.uri=/db/manage/
org.neo4j.server.db.tuning.properties=${pkgs.neo4j}/share/neo4j/conf/neo4j.properties org.neo4j.server.db.tuning.properties=${cfg.package}/share/neo4j/conf/neo4j.properties
org.neo4j.server.manage.console_engines=shell org.neo4j.server.manage.console_engines=shell
${cfg.extraServerConfig} ${cfg.extraServerConfig}
''; '';
@ -46,6 +46,12 @@ in {
type = types.uniq types.bool; type = types.uniq types.bool;
}; };
package = mkOption {
description = "Neo4j package to use.";
default = pkgs.neo4j;
type = types.package;
};
host = mkOption { host = mkOption {
description = "Neo4j listen address."; description = "Neo4j listen address.";
default = "127.0.0.1"; default = "127.0.0.1";
@ -119,7 +125,7 @@ in {
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { NEO4J_INSTANCE = cfg.dataDir; }; environment = { NEO4J_INSTANCE = cfg.dataDir; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.neo4j}/bin/neo4j console"; ExecStart = "${cfg.package}/bin/neo4j console";
User = "neo4j"; User = "neo4j";
PermissionsStartOnly = true; PermissionsStartOnly = true;
}; };

View File

@ -169,7 +169,6 @@ in
hardware.firmware = mkOption { hardware.firmware = mkOption {
type = types.listOf types.path; type = types.listOf types.path;
default = []; default = [];
example = [ "/root/my-firmware" ];
description = '' description = ''
List of directories containing firmware files. Such files List of directories containing firmware files. Such files
will be loaded automatically if the kernel asks for them will be loaded automatically if the kernel asks for them
@ -178,10 +177,10 @@ in
firmware file with the same name, the first path in the list firmware file with the same name, the first path in the list
takes precedence. Note that you must rebuild your system if takes precedence. Note that you must rebuild your system if
you add files to any of these directories. For quick testing, you add files to any of these directories. For quick testing,
put firmware files in /root/test-firmware and add that put firmware files in <filename>/root/test-firmware</filename>
directory to the list. and add that directory to the list. Note that you can also
Note that you can also add firmware packages to this add firmware packages to this list as these are directories in
list as these are directories in the nix store. the nix store.
''; '';
apply = list: pkgs.buildEnv { apply = list: pkgs.buildEnv {
name = "firmware"; name = "firmware";
@ -245,6 +244,11 @@ in
echo "regenerating udev hardware database..." echo "regenerating udev hardware database..."
${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd ${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd
fi fi
# Allow the kernel to find our firmware.
if [ -e /sys/module/firmware_class/parameters/path ]; then
echo -n "${config.hardware.firmware}" > /sys/module/firmware_class/parameters/path
fi
''; '';
systemd.services.systemd-udevd = systemd.services.systemd-udevd =

View File

@ -24,6 +24,8 @@ let
GRAPHITE_URL = cfg.seyren.graphiteUrl; GRAPHITE_URL = cfg.seyren.graphiteUrl;
} // cfg.seyren.extraConfig; } // cfg.seyren.extraConfig;
pagerConfig = pkgs.writeText "alarms.yaml" cfg.pager.alerts;
configDir = pkgs.buildEnv { configDir = pkgs.buildEnv {
name = "graphite-config"; name = "graphite-config";
paths = lists.filter (el: el != null) [ paths = lists.filter (el: el != null) [
@ -83,13 +85,21 @@ in {
api = { api = {
enable = mkOption { enable = mkOption {
description = "Whether to enable graphite api."; description = ''
Whether to enable graphite api. Graphite api is lightweight alternative
to graphite web, with api and without dashboard. It's advised to use
grafana as alternative dashboard and influxdb as alternative to
graphite carbon.
For more information visit
<link xlink:href="http://graphite-api.readthedocs.org/en/latest/"/>
'';
default = false; default = false;
type = types.uniq types.bool; type = types.uniq types.bool;
}; };
finders = mkOption { finders = mkOption {
description = "List of finder plugins load."; description = "List of finder plugins to load.";
default = []; default = [];
example = [ pkgs.python27Packages.graphite_influxdb ]; example = [ pkgs.python27Packages.graphite_influxdb ];
type = types.listOf types.package; type = types.listOf types.package;
@ -301,170 +311,238 @@ in {
''; '';
}; };
}; };
pager = {
enable = mkOption {
description = ''
Whether to enable graphite-pager service. For more information visit
<link xlink:href="https://github.com/seatgeek/graphite-pager"/>
'';
default = false;
type = types.uniq types.bool;
};
redisUrl = mkOption {
description = "Redis connection string.";
default = "redis://localhost:${toString config.services.redis.port}/";
type = types.str;
};
graphiteUrl = mkOption {
description = "URL to your graphite service.";
default = "http://${cfg.web.host}:${toString cfg.web.port}";
type = types.str;
};
alerts = mkOption {
description = "Alerts configuration for graphite-pager.";
default = ''
alerts:
- target: constantLine(100)
warning: 90
critical: 200
name: Test
'';
example = literalExample ''
pushbullet_key: pushbullet_api_key
alerts:
- target: stats.seatgeek.app.deal_quality.venue_info_cache.hit
warning: .5
critical: 1
name: Deal quality venue cache hits
'';
type = types.lines;
};
};
}; };
###### implementation ###### implementation
config = mkIf ( config = mkMerge [
cfg.carbon.enableAggregator || (mkIf cfg.carbon.enableCache {
cfg.carbon.enableCache || systemd.services.carbonCache = {
cfg.carbon.enableRelay || description = "Graphite Data Storage Backend";
cfg.web.enable || wantedBy = [ "multi-user.target" ];
cfg.api.enable || after = [ "network-interfaces.target" ];
cfg.seyren.enable environment = carbonEnv;
) { serviceConfig = {
systemd.services.carbonCache = { ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
enable = cfg.carbon.enableCache; User = "graphite";
description = "Graphite Data Storage Backend"; Group = "graphite";
wantedBy = [ "multi-user.target" ]; PermissionsStartOnly = true;
after = [ "network-interfaces.target" ]; };
environment = carbonEnv; preStart = ''
serviceConfig = { mkdir -p ${cfg.dataDir}/whisper
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}"; chmod 0700 ${cfg.dataDir}/whisper
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -p ${cfg.dataDir}/whisper
chmod 0700 ${cfg.dataDir}/whisper
chown -R graphite:graphite ${cfg.dataDir}
'';
};
systemd.services.carbonAggregator = {
enable = cfg.carbon.enableAggregator;
description = "Carbon Data Aggregator";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = carbonEnv;
serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
User = "graphite";
Group = "graphite";
};
};
systemd.services.carbonRelay = {
enable = cfg.carbon.enableRelay;
description = "Carbon Data Relay";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = carbonEnv;
serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
User = "graphite";
Group = "graphite";
};
};
systemd.services.graphiteWeb = {
enable = cfg.web.enable;
description = "Graphite Web Interface";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
path = [ pkgs.perl ];
environment = {
PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
DJANGO_SETTINGS_MODULE = "graphite.settings";
GRAPHITE_CONF_DIR = configDir;
GRAPHITE_STORAGE_DIR = dataDir;
};
serviceConfig = {
ExecStart = ''
${pkgs.python27Packages.waitress}/bin/waitress-serve \
--host=${cfg.web.host} --port=${toString cfg.web.port} \
--call django.core.handlers.wsgi:WSGIHandler'';
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}/{whisper/,log/webapp/}
chmod 0700 ${dataDir}/{whisper/,log/webapp/}
# populate database
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
# create index
${pkgs.python27Packages.graphite_web}/bin/build-index.sh
touch ${dataDir}/db-created
chown -R graphite:graphite ${cfg.dataDir} chown -R graphite:graphite ${cfg.dataDir}
fi
'';
};
systemd.services.graphiteApi = {
enable = cfg.api.enable;
description = "Graphite Api Interface";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = {
PYTHONPATH =
"${cfg.api.package}/lib/python2.7/site-packages:" +
concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders;
GRAPHITE_API_CONFIG = graphiteApiConfig;
LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
};
serviceConfig = {
ExecStart = ''
${pkgs.python27Packages.waitress}/bin/waitress-serve \
--host=${cfg.api.host} --port=${toString cfg.api.port} \
graphite_api.app:app
''; '';
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
}; };
preStart = '' })
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}/cache/
chmod 0700 ${dataDir}/cache/
touch ${dataDir}/db-created (mkIf cfg.carbon.enableAggregator {
systemd.services.carbonAggregator = {
chown -R graphite:graphite ${cfg.dataDir} enable = cfg.carbon.enableAggregator;
fi description = "Carbon Data Aggregator";
''; wantedBy = [ "multi-user.target" ];
}; after = [ "network-interfaces.target" ];
environment = carbonEnv;
systemd.services.seyren = { serviceConfig = {
enable = cfg.seyren.enable; ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
description = "Graphite Alerting Dashboard"; User = "graphite";
wantedBy = [ "multi-user.target" ]; Group = "graphite";
after = [ "network-interfaces.target" "mongodb.service" ]; };
environment = seyrenConfig;
serviceConfig = {
ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}";
WorkingDirectory = dataDir;
User = "graphite";
Group = "graphite";
}; };
preStart = '' })
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}
chown -R graphite:graphite ${dataDir}
fi
'';
};
services.mongodb.enable = mkDefault cfg.seyren.enable; (mkIf cfg.carbon.enableRelay {
systemd.services.carbonRelay = {
description = "Carbon Data Relay";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = carbonEnv;
serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
User = "graphite";
Group = "graphite";
};
};
})
environment.systemPackages = [ (mkIf (cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay) {
pkgs.pythonPackages.carbon environment.systemPackages = [
pkgs.python27Packages.graphite_web pkgs.pythonPackages.carbon
pkgs.python27Packages.waitress ];
]; })
users.extraUsers = singleton { (mkIf cfg.web.enable {
name = "graphite"; systemd.services.graphiteWeb = {
uid = config.ids.uids.graphite; description = "Graphite Web Interface";
description = "Graphite daemon user"; wantedBy = [ "multi-user.target" ];
home = dataDir; after = [ "network-interfaces.target" ];
}; path = [ pkgs.perl ];
users.extraGroups.graphite.gid = config.ids.gids.graphite; environment = {
}; PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
DJANGO_SETTINGS_MODULE = "graphite.settings";
GRAPHITE_CONF_DIR = configDir;
GRAPHITE_STORAGE_DIR = dataDir;
};
serviceConfig = {
ExecStart = ''
${pkgs.python27Packages.waitress}/bin/waitress-serve \
--host=${cfg.web.host} --port=${toString cfg.web.port} \
--call django.core.handlers.wsgi:WSGIHandler'';
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}/{whisper/,log/webapp/}
chmod 0700 ${dataDir}/{whisper/,log/webapp/}
# populate database
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
# create index
${pkgs.python27Packages.graphite_web}/bin/build-index.sh
touch ${dataDir}/db-created
chown -R graphite:graphite ${cfg.dataDir}
fi
'';
};
environment.systemPackages = [ pkgs.python27Packages.graphite_web ];
})
(mkIf cfg.api.enable {
systemd.services.graphiteApi = {
description = "Graphite Api Interface";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = {
PYTHONPATH =
"${cfg.api.package}/lib/python2.7/site-packages:" +
concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders;
GRAPHITE_API_CONFIG = graphiteApiConfig;
LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
};
serviceConfig = {
ExecStart = ''
${pkgs.python27Packages.waitress}/bin/waitress-serve \
--host=${cfg.api.host} --port=${toString cfg.api.port} \
graphite_api.app:app
'';
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}/cache/
chmod 0700 ${dataDir}/cache/
touch ${dataDir}/db-created
chown -R graphite:graphite ${cfg.dataDir}
fi
'';
};
})
(mkIf cfg.seyren.enable {
systemd.services.seyren = {
description = "Graphite Alerting Dashboard";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "mongodb.service" ];
environment = seyrenConfig;
serviceConfig = {
ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}";
WorkingDirectory = dataDir;
User = "graphite";
Group = "graphite";
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}
chown -R graphite:graphite ${dataDir}
fi
'';
};
services.mongodb.enable = mkDefault true;
})
(mkIf cfg.pager.enable {
systemd.services.graphitePager = {
description = "Graphite Pager Alerting Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "redis.service" ];
environment = {
REDIS_URL = cfg.pager.redisUrl;
GRAPHITE_URL = cfg.pager.graphiteUrl;
};
serviceConfig = {
ExecStart = "${pkgs.pythonPackages.graphite_pager}/bin/graphite-pager --config ${pagerConfig}";
User = "graphite";
Group = "graphite";
};
};
services.redis.enable = mkDefault true;
environment.systemPackages = [ pkgs.pythonPackages.graphite_pager ];
})
{
users.extraUsers = singleton {
name = "graphite";
uid = config.ids.uids.graphite;
description = "Graphite daemon user";
home = dataDir;
};
users.extraGroups.graphite.gid = config.ids.gids.graphite;
}
];
} }

View File

@ -0,0 +1,11 @@
pubs=($pubs)
hosts=($hosts)
lines="''\n"
for ((i = 0; i < ${#pubs[*]}; i++)); do
addr=$($cjdns/bin/publictoip6 ${pubs[i]})
lines="${lines}$addr ${hosts[i]}\n"
done
lines="${lines}''"
echo -ne $lines > $out

View File

@ -4,8 +4,46 @@ with lib;
let let
pkg = pkgs.cjdns;
cfg = config.services.cjdns; cfg = config.services.cjdns;
connectToSubmodule =
{ options, ... }:
{ options =
{ password = mkOption {
type = types.str;
description = "Authorized password to the opposite end of the tunnel.";
};
publicKey = mkOption {
type = types.str;
description = "Public key at the opposite end of the tunnel.";
};
hostname = mkOption {
default = "";
example = "foobar.hype";
type = types.str;
description = "Optional hostname to add to /etc/hosts; prevents reverse lookup failures.";
};
};
};
peers = mapAttrsToList (n: v: v) (cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo);
pubs = toString (map (p: if p.hostname == "" then "" else p.publicKey) peers);
hosts = toString (map (p: if p.hostname == "" then "" else p.hostname) peers);
cjdnsHosts =
if hosts != "" then
import (pkgs.stdenv.mkDerivation {
name = "cjdns-hosts";
builder = ./cjdns-hosts.sh;
inherit (pkgs) cjdns;
inherit pubs hosts;
})
else "";
# would be nice to merge 'cfg' with a //, # would be nice to merge 'cfg' with a //,
# but the json nesting is wacky. # but the json nesting is wacky.
cjdrouteConf = builtins.toJSON ( { cjdrouteConf = builtins.toJSON ( {
@ -44,7 +82,7 @@ in
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
Whether to enable the cjdns network encryption Whether to enable the cjdns network encryption
and routing engine. A file at /etc/cjdns.keys will and routing engine. A file at /etc/cjdns.keys will
@ -53,84 +91,80 @@ in
''; '';
}; };
confFile = mkOption {
type = types.str;
default = "";
example = "/etc/cjdroute.conf";
description = ''
Ignore all other cjdns options and load configuration from this file.
'';
};
authorizedPasswords = mkOption { authorizedPasswords = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ example = [
"snyrfgkqsc98qh1y4s5hbu0j57xw5s0" "snyrfgkqsc98qh1y4s5hbu0j57xw5s0"
"z9md3t4p45mfrjzdjurxn4wuj0d8swv" "z9md3t4p45mfrjzdjurxn4wuj0d8swv"
"49275fut6tmzu354pq70sr5b95qq0vj" "49275fut6tmzu354pq70sr5b95qq0vj"
]; ];
description = '' description = ''
Any remote cjdns nodes that offer these passwords on Any remote cjdns nodes that offer these passwords on
connection will be allowed to route through this node. connection will be allowed to route through this node.
''; '';
}; };
admin = { admin = {
bind = mkOption { bind = mkOption {
type = types.string; type = types.string;
default = "127.0.0.1:11234"; default = "127.0.0.1:11234";
description = '' description = ''
Bind the administration port to this address and port. Bind the administration port to this address and port.
''; '';
}; };
}; };
UDPInterface = { UDPInterface = {
bind = mkOption { bind = mkOption {
type = types.string; type = types.string;
default = ""; default = "";
example = "192.168.1.32:43211"; example = "192.168.1.32:43211";
description = '' description = ''
Address and port to bind UDP tunnels to. Address and port to bind UDP tunnels to.
''; '';
}; };
connectTo = mkOption { connectTo = mkOption {
type = types.attrsOf ( types.submodule ( type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
{ options, ... }: default = { };
{ options = {
# TODO make host an option, and add it to networking.extraHosts
password = mkOption {
type = types.str;
description = "Authorized password to the opposite end of the tunnel.";
};
publicKey = mkOption {
type = types.str;
description = "Public key at the opposite end of the tunnel.";
};
};
}
));
default = { };
example = { example = {
"192.168.1.1:27313" = { "192.168.1.1:27313" = {
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM"; hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k"; publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
}; };
}; };
description = '' description = ''
Credentials for making UDP tunnels. Credentials for making UDP tunnels.
''; '';
}; };
}; };
ETHInterface = { ETHInterface = {
bind = mkOption { bind = mkOption {
default = ""; default = "";
example = "eth0"; example = "eth0";
description = '' description = ''
Bind to this device for native ethernet operation. Bind to this device for native ethernet operation.
''; '';
}; };
beacon = mkOption { beacon = mkOption {
type = types.int; type = types.int;
default = 2; default = 2;
description = '' description = ''
Auto-connect to other cjdns nodes on the same network. Auto-connect to other cjdns nodes on the same network.
Options: Options:
0: Disabled. 0: Disabled.
1: Accept beacons, this will cause cjdns to accept incoming 1: Accept beacons, this will cause cjdns to accept incoming
beacon messages and try connecting to the sender. beacon messages and try connecting to the sender.
2: Accept and send beacons, this will cause cjdns to broadcast 2: Accept and send beacons, this will cause cjdns to broadcast
@ -142,32 +176,20 @@ in
}; };
connectTo = mkOption { connectTo = mkOption {
type = types.attrsOf ( types.submodule ( type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
{ options, ... }: default = { };
{ options = {
password = mkOption {
type = types.str;
description = "Authorized password to the opposite end of the tunnel.";
};
publicKey = mkOption {
type = types.str;
description = "Public key at the opposite end of the tunnel.";
};
};
}
));
default = { };
example = { example = {
"01:02:03:04:05:06" = { "01:02:03:04:05:06" = {
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM"; hostname = "homer.hype";
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k"; publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
}; };
}; };
description = '' description = ''
Credentials for connecting look similar to UDP credientials Credentials for connecting look similar to UDP credientials
except they begin with the mac address. except they begin with the mac address.
''; '';
}; };
}; };
}; };
@ -185,34 +207,48 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
script = '' script = (
source /etc/cjdns.keys if cfg.confFile != "" then "${pkg}/bin/cjdroute < ${cfg.confFile}" else
echo '${cjdrouteConf}' | sed \ ''
-e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \ source /etc/cjdns.keys
-e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \ echo '${cjdrouteConf}' | sed \
| ${pkgs.cjdns}/bin/cjdroute -e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \
''; -e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \
| ${pkg}/bin/cjdroute
''
);
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
Restart = "on-failure"; Restart = "on-failure";
}; };
}; };
system.activationScripts.cjdns = '' system.activationScripts.cjdns = if (cfg.confFile == "") then "" else ''
cjdnsWriteKeys() {
private=$1
ipv6=$2
public=$3
echo "CJDNS_PRIVATE_KEY=$1" >> /etc/cjdns.keys
echo -e "CJDNS_IPV6=$2\nCJDNS_PUBLIC_KEY=$3" > /etc/cjdns.public
chmod 600 /etc/cjdns.keys
chmod 444 /etc/cjdns.public
}
grep -q "CJDNS_PRIVATE_KEY=" /etc/cjdns.keys || \ grep -q "CJDNS_PRIVATE_KEY=" /etc/cjdns.keys || \
echo "CJDNS_PRIVATE_KEY=$(${pkgs.cjdns}/bin/makekey)" \ cjdnsWriteKeys $(${pkg}/bin/makekeys)
>> /etc/cjdns.keys
grep -q "CJDNS_ADMIN_PASSWORD=" /etc/cjdns.keys || \ grep -q "CJDNS_ADMIN_PASSWORD=" /etc/cjdns.keys || \
echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \ echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \
>> /etc/cjdns.keys >> /etc/cjdns.keys
chmod 600 /etc/cjdns.keys
''; '';
networking.extraHosts = "${cjdnsHosts}";
assertions = [ assertions = [
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" ); { assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" || cfg.confFile == "" );
message = "Neither cjdns.ETHInterface.bind nor cjdns.UDPInterface.bind defined."; message = "Neither cjdns.ETHInterface.bind nor cjdns.UDPInterface.bind defined.";
} }
{ assertion = config.networking.enableIPv6; { assertion = config.networking.enableIPv6;

View File

@ -18,7 +18,7 @@ in
# determines the default: later modules (if enabled) are preferred. # determines the default: later modules (if enabled) are preferred.
# E.g., if KDE is enabled, it supersedes xterm. # E.g., if KDE is enabled, it supersedes xterm.
imports = [ imports = [
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde4_next.nix ./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
./e17.nix ./e18.nix ./e19.nix ./gnome3.nix ./xbmc.nix ./e17.nix ./e18.nix ./e19.nix ./gnome3.nix ./xbmc.nix
]; ];

View File

@ -146,8 +146,10 @@ in
pkgs.strigi # used by nepomuk pkgs.strigi # used by nepomuk
pkgs.mysql # used by akonadi pkgs.mysql # used by akonadi
] ]
++ [ nepomukConfig ] ++ phononBackendPackages ++ lib.optional config.hardware.pulseaudio.enable pkgs.kde4.kmix # Perhaps this should always be enabled
++ config.environment.kdePackages; ++ lib.optional config.hardware.bluetooth.enable pkgs.kde4.bluedevil
++ lib.optional config.networking.networkmanager.enable pkgs.kde4.networkmanagement
++ [ nepomukConfig ] ++ phononBackendPackages;
environment.pathsToLink = [ "/share" ]; environment.pathsToLink = [ "/share" ];

View File

@ -1,163 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.kde4_next;
xorg = pkgs.xorg;
kde = pkgs.kde4_next;
# Disable Nepomuk and Strigi by default. As of KDE 4.7, they don't
# really work very well (e.g. searching files often fails to find
# files), segfault sometimes and consume significant resources.
# They can be re-enabled in the KDE System Settings under "Desktop
# Search".
nepomukConfig = pkgs.writeTextFile
{ name = "nepomuk-config";
destination = "/share/config/nepomukserverrc";
text =
''
[Basic Settings]
Start Nepomuk=false
[Service-nepomukstrigiservice]
autostart=false
'';
};
phononBackends = {
gstreamer = [
pkgs.phonon_backend_gstreamer
pkgs.gst_all.gstPluginsBase
pkgs.gst_all.gstPluginsGood
pkgs.gst_all.gstPluginsUgly
pkgs.gst_all.gstPluginsBad
pkgs.gst_all.gstFfmpeg # for mp3 playback
pkgs.gst_all.gstreamer # needed?
];
vlc = [pkgs.phonon_backend_vlc];
};
phononBackendPackages = flip concatMap cfg.phononBackends
(name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends);
in
{
options = {
services.xserver.desktopManager.kde4_next = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable the KDE 4 desktop environment.";
};
phononBackends = mkOption {
type = types.listOf types.str;
default = ["gstreamer"];
example = ["gstreamer" "vlc"];
description = "Which phonon multimedia backend kde should use";
};
};
};
config = mkIf (xcfg.enable && cfg.enable) {
# If KDE 4 is enabled, make it the default desktop manager (unless
# overridden by the user's configuration).
# !!! doesn't work yet ("Multiple definitions. Only one is allowed
# for this option.")
# services.xserver.desktopManager.default = mkOverride 900 "kde4";
services.xserver.desktopManager.session = singleton
{ name = "kde4_next";
bgSupport = true;
start =
''
# The KDE icon cache is supposed to update itself
# automatically, but it uses the timestamp on the icon
# theme directory as a trigger. Since in Nix the
# timestamp is always the same, this doesn't work. So as
# a workaround, nuke the icon cache on login. This isn't
# perfect, since it may require logging out after
# installing new applications to update the cache.
# See http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html
rm -fv $HOME/.kde/cache-*/icon-cache.kcache
# Qt writes a weird libraryPath line to
# ~/.config/Trolltech.conf that causes the KDE plugin
# paths of previous KDE invocations to be searched.
# Obviously using mismatching KDE libraries is potentially
# disastrous, so here we nuke references to the Nix store
# in Trolltech.conf. A better solution would be to stop
# Qt from doing this wackiness in the first place.
if [ -e $HOME/.config/Trolltech.conf ]; then
sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf
fi
# Start KDE.
exec ${kde.kdebase_workspace}/bin/startkde
'';
};
security.setuidOwners = singleton
{ program = "kcheckpass";
source = "${kde.kdebase_workspace}/lib/kde4/libexec/kcheckpass";
owner = "root";
group = "root";
setuid = true;
};
environment.systemPackages =
[ kde.kdelibs
kde.kde_baseapps # Splitted kdebase
kde.kde_workspace
kde.kde_runtime
kde.konsole
kde.kate
kde.kde_wallpapers # contains kdm's default background
kde.oxygen_icons
pkgs.virtuoso # to enable Nepomuk to find Virtuoso
# Starts KDE's Polkit authentication agent.
kde.polkit_kde_agent
# Miscellaneous runtime dependencies.
kde.qt4 # needed for qdbus
pkgs.shared_mime_info
xorg.xmessage # so that startkde can show error messages
xorg.xset # used by startkde, non-essential
xorg.xauth # used by kdesu
pkgs.shared_desktop_ontologies # used by nepomuk
pkgs.strigi # used by nepomuk
pkgs.mysql # used by akonadi
]
++ lib.optional config.hardware.pulseaudio.enable kde.kmix # Perhaps this should always be enabled
++ lib.optional config.hardware.bluetooth.enable kde.bluedevil
++ lib.optional config.networking.networkmanager.enable kde.networkmanagement
++ [ nepomukConfig ] ++ phononBackendPackages;
environment.pathsToLink = [ "/share" ];
environment.etc = singleton
{ source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
target = "X11/xkb";
};
# Enable helpful DBus services.
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
security.pam.services.kde = { allowNullPassword = true; };
};
}

View File

@ -10,15 +10,19 @@ let
systemd = cfg.package; systemd = cfg.package;
makeUnit = name: unit: makeUnit = name: unit:
let
pathSafeName = lib.replaceChars ["@" "\\"] ["-" "-"] name;
in
if unit.enable then if unit.enable then
pkgs.runCommand "unit" { preferLocalBuild = true; inherit (unit) text; } pkgs.runCommand "unit-${pathSafeName}" { preferLocalBuild = true; inherit (unit) text; }
'' ''
mkdir -p $out mkdir -p $out
echo -n "$text" > $out/${shellEscape name} echo -n "$text" > $out/${shellEscape name}
'' ''
else else
pkgs.runCommand "unit" { preferLocalBuild = true; } pkgs.runCommand "unit-${pathSafeName}-disabled" { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
ln -s /dev/null $out/${shellEscape name} ln -s /dev/null $out/${shellEscape name}

View File

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
with lib;
let
inInitrd = any (fs: fs == "jfs") config.boot.initrd.supportedFilesystems;
in
{
config = mkIf (any (fs: fs == "jfs") config.boot.supportedFilesystems) {
system.fsPackages = [ pkgs.jfsutils ];
boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
boot.initrd.extraUtilsCommands = mkIf inInitrd ''
cp -v ${pkgs.jfsutils}/sbin/fsck.jfs "$out/bin/"
'';
};
}

View File

@ -65,6 +65,7 @@ in rec {
mysql51 mysql51
mysql55 mysql55
nginx nginx
openjdk
openssh openssh
php php
postgresql92 postgresql92

View File

@ -234,6 +234,7 @@ in rec {
# nix-build tests/login.nix -A result. # nix-build tests/login.nix -A result.
tests.avahi = callTest tests/avahi.nix {}; tests.avahi = callTest tests/avahi.nix {};
tests.bittorrent = callTest tests/bittorrent.nix {}; tests.bittorrent = callTest tests/bittorrent.nix {};
tests.blivet = callTest tests/blivet.nix {};
tests.containers = callTest tests/containers.nix {}; tests.containers = callTest tests/containers.nix {};
tests.firefox = callTest tests/firefox.nix {}; tests.firefox = callTest tests/firefox.nix {};
tests.firewall = callTest tests/firewall.nix {}; tests.firewall = callTest tests/firewall.nix {};

85
nixos/tests/blivet.nix Normal file
View File

@ -0,0 +1,85 @@
import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
name = "blivet";
machine = {
environment.systemPackages = [ pkgs.python blivet mock ];
boot.supportedFilesystems = [ "btrfs" "jfs" "reiserfs" "xfs" ];
virtualisation.memorySize = 768;
};
debugBlivet = false;
debugProgramCalls = false;
pythonTestRunner = pkgs.writeText "run-blivet-tests.py" ''
import sys
import logging
from unittest import TestLoader
from unittest.runner import TextTestRunner
${pkgs.lib.optionalString debugProgramCalls ''
blivet_program_log = logging.getLogger("program")
blivet_program_log.setLevel(logging.DEBUG)
blivet_program_log.addHandler(logging.StreamHandler(sys.stderr))
''}
${pkgs.lib.optionalString debugBlivet ''
blivet_log = logging.getLogger("blivet")
blivet_log.setLevel(logging.DEBUG)
blivet_log.addHandler(logging.StreamHandler(sys.stderr))
''}
runner = TextTestRunner(verbosity=2, failfast=False, buffer=False)
result = runner.run(TestLoader().discover('tests/', pattern='*_test.py'))
sys.exit(not result.wasSuccessful())
'';
blivetTest = pkgs.writeScript "blivet-test.sh" ''
#!${pkgs.stdenv.shell} -e
# Use the hosts temporary directory, because we have a tmpfs within the VM
# and we don't want to increase the memory size of the VM for no reason.
mkdir -p /tmp/xchg/bigtmp
TMPDIR=/tmp/xchg/bigtmp
export TMPDIR
mkPythonPath() {
nix-store -qR "$@" \
| sed -e 's|$|/lib/${pkgs.python.libPrefix}/site-packages|'
}
cp -Rd "${blivet.src}/tests" .
# Skip SELinux tests
rm -f tests/formats_test/selinux_test.py
# Race conditions in growing/shrinking during resync
rm -f tests/devicelibs_test/mdraid_*
# Deactivate small BTRFS device test, because it fails with newer btrfsprogs
sed -i -e '/^class *BTRFSAsRootTestCase3(/,/^[^ ]/ {
/^class *BTRFSAsRootTestCase3(/d
/^$/d
/^ /d
}' tests/devicelibs_test/btrfs_test.py
# How on earth can these tests ever work even upstream? O_o
sed -i -e '/def testDiskChunk[12]/,/^ *[^ ]/{n; s/^ */&return # /}' \
tests/partitioning_test.py
# fix hardcoded temporary directory
sed -i \
-e '1i import tempfile' \
-e 's|_STORE_FILE_PATH = .*|_STORE_FILE_PATH = tempfile.gettempdir()|' \
tests/loopbackedtestcase.py
PYTHONPATH=".:$(mkPythonPath "${blivet}" "${mock}" | paste -sd :)" \
python "${pythonTestRunner}"
'';
testScript = ''
$machine->waitForUnit("multi-user.target");
$machine->succeed("${blivetTest}");
$machine->execute("rm -rf /tmp/xchg/bigtmp");
'';
})

View File

@ -67,7 +67,7 @@ in {
machine = { config, pkgs, ... }: { machine = { config, pkgs, ... }: {
environment.systemPackages = [ environment.systemPackages = [
pkgs.pythonPackages.nixpart pkgs.pythonPackages.nixpart0
pkgs.file pkgs.btrfsProgs pkgs.xfsprogs pkgs.lvm2 pkgs.file pkgs.btrfsProgs pkgs.xfsprogs pkgs.lvm2
]; ];
virtualisation.emptyDiskImages = [ 4096 4096 ]; virtualisation.emptyDiskImages = [ 4096 4096 ];
@ -209,7 +209,7 @@ in {
ensurePartition("swap", "swap"); ensurePartition("swap", "swap");
ensurePartition("boot", "f2fs"); ensurePartition("boot", "f2fs");
ensurePartition("root", "f2fs"); ensurePartition("root", "f2fs");
remoteAndCheck; remountAndCheck;
ensureMountPoint("/mnt/boot", "f2fs"); ensureMountPoint("/mnt/boot", "f2fs");
}; };

View File

@ -0,0 +1,30 @@
{ stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig
, boost, readline, libiconvOrEmpty }:
stdenv.mkDerivation rec {
version = "0.6_beta5";
name = "ncmpcpp-${version}";
src = fetchurl {
url = "http://ncmpcpp.rybczak.net/stable/ncmpcpp-${version}.tar.bz2";
sha256 = "05h4mahnh39y9ab333whsgspj5mnbdkqfssgfi4r0zf1fvjwlwj6";
};
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig boost readline ]
++ libiconvOrEmpty;
configureFlags = [
"BOOST_LIB_SUFFIX="
];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
homepage = http://unkart.ovh.org/ncmpcpp/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ fpletz ];
platforms = platforms.all;
};
}

View File

@ -9,13 +9,13 @@ assert (libXft != null) -> libpng != null; # probably a bug
assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "emacs-24.3"; name = "emacs-24.4";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://gnu/emacs/${name}.tar.xz"; url = "mirror://gnu/emacs/${name}.tar.xz";
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"; sha256 = "1zflm6ac34s6v166p58ilxrxbxjm0q2wfc25f8y0mjml1lbr3qs7";
}; };
patches = [ ./darwin-new-sections.patch ]; patches = [ ./darwin-new-sections.patch ];

View File

@ -2,19 +2,19 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
emacsName = "emacs-24.3"; emacsName = "emacs-24.4";
name = "${emacsName}-mac-4.8"; name = "${emacsName}-mac-5.0";
#builder = ./builder.sh; #builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = "mirror://gnu/emacs/${emacsName}.tar.xz"; url = "mirror://gnu/emacs/${emacsName}.tar.xz";
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"; sha256 = "1zflm6ac34s6v166p58ilxrxbxjm0q2wfc25f8y0mjml1lbr3qs7";
}; };
macportSrc = fetchurl { macportSrc = fetchurl {
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz"; url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
sha256 = "194y341zrpjp75mc3099kjc0inr1d379wwsnav257bwsc967h8yx"; sha256 = "14ipkwmzv0b02sclhgp2xj0cvhl3gk40sc2l21s87621kk640dzv";
}; };
patches = [ ./darwin-new-sections.patch ]; patches = [ ./darwin-new-sections.patch ];

View File

@ -0,0 +1,29 @@
{ stdenv, fetchFromGitHub, emacs }:
let
version = "0.15.0-8-g4e10851";
in
stdenv.mkDerivation {
name = "git-modes-${version}";
src = fetchFromGitHub {
owner = "magit";
repo = "git-modes";
rev = "4e10851843145e0c05fc665683d3b487a57ad114";
sha256 = "13j794a2p4ql9dnw2z0c1m0ybclxsicbk8cmmfqcchs4ygiyc6ag";
};
buildInputs = [ emacs ];
installPhase = ''
mkdir -p $out/share/emacs/site-lisp
mv *.el *.elc $out/share/emacs/site-lisp/
'';
meta = {
homepage = "https://github.com/magit/git-modes";
description = "Emacs modes for various Git-related files";
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ simons ];
};
}

View File

@ -1,25 +1,35 @@
{ stdenv, fetchurl, emacs, texinfo }: { stdenv, fetchFromGitHub, emacs, texinfo, gitModes, git }:
let let
version = "1.2.0"; version = "90141016";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "magit-${version}"; name = "magit-${version}";
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/downloads/magit/magit/${name}.tar.gz"; owner = "magit";
sha256 = "1a8vvilhd5y5vmlpsh194qpl4qlg0a1brylfscxcacpfp0cmhlzg"; repo = "magit";
rev = version;
sha256 = "11d3gzj0hlb7wqsjzjb0vf9i0ik4xzwdyayjy4hfgx0gjmymkfx3";
}; };
buildInputs = [ emacs texinfo ]; buildInputs = [ emacs texinfo git ];
propagatedUserEnvPkgs = [ gitModes ];
configurePhase = "makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )"; configurePhase = ''
makeFlagsArray=(
PREFIX="$out"
EFLAGS="-L ${gitModes}/share/emacs/site-lisp"
lispdir="$out/share/emacs/site-lisp"
)
'';
doCheck = true;
checkTarget = "test";
# Add (require 'magit-site-init) to your ~/.emacs file to set-up magit mode.
postInstall = '' postInstall = ''
mv $out/etc/emacs/site-start.d/50magit.el $out/share/emacs/site-lisp/magit-site-init.el mkdir -p $out/bin
sed -i -e 's|50magit|magit-site-init|' $out/share/emacs/site-lisp/magit-site-init.el mv "bin/"* $out/bin/
rmdir $out/etc/emacs/site-start.d $out/etc/emacs $out/etc
''; '';
meta = { meta = {
@ -39,7 +49,6 @@ stdenv.mkDerivation rec {
save you from learning Git itself. save you from learning Git itself.
''; '';
platforms = stdenv.lib.platforms.all;
maintainers = with stdenv.lib.maintainers; [ simons ]; maintainers = with stdenv.lib.maintainers; [ simons ];
}; };
} }

View File

@ -1,17 +1,16 @@
{ stdenv, stdenvAdapters, gccApple, fetchFromGitHub, ncurses, gettext, { stdenv, fetchFromGitHub, ncurses, gettext,
pkgconfig, cscope, python, ruby, tcl, perl, luajit pkgconfig, cscope, python, ruby, tcl, perl, luajit
}: }:
let inherit (stdenvAdapters.overrideGCC stdenv gccApple) mkDerivation; stdenv.mkDerivation rec {
in mkDerivation rec {
name = "macvim-${version}"; name = "macvim-${version}";
version = "7.4.355"; version = "7.4.479";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "genoma"; owner = "genoma";
repo = "macvim"; repo = "macvim";
rev = "c18a61f9723565664ffc2eda9179e96c95860e25"; rev = "f9c084b97fa9d5cad2448dfd3eff3d9b7f0fac59";
sha256 = "190bngg8m4bwqcia7w24gn7mmqkhk0mavxy81ziwysam1f652ymf"; sha256 = "190bngg8m4bwqcia7w24gn7mmqkhk0mavxy81ziwysam1f652ymf";
}; };
@ -46,6 +45,7 @@ in mkDerivation rec {
"--enable-perlinterp=dynamic" "--enable-perlinterp=dynamic"
"--enable-rubyinterp=dynamic" "--enable-rubyinterp=dynamic"
"--enable-tclinterp=yes" "--enable-tclinterp=yes"
"--without-local-dir"
"--with-luajit" "--with-luajit"
"--with-lua-prefix=${luajit}" "--with-lua-prefix=${luajit}"
"--with-ruby-command=${ruby}/bin/ruby" "--with-ruby-command=${ruby}/bin/ruby"
@ -54,6 +54,8 @@ in mkDerivation rec {
"--with-compiledby=Nix" "--with-compiledby=Nix"
]; ];
makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"'';
preConfigure = '' preConfigure = ''
DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
configureFlagsArray+=( configureFlagsArray+=(

View File

@ -187,3 +187,36 @@ index bc9f074..9b9125e 100755
# Use ||, not &&, to avoid exiting from the if with $? = 1, which # Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction. # would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1 $ac_cs_success || as_fn_exit 1
diff --git a/src/Makefile b/src/Makefile
index 1c4d104..fff2015 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1298,7 +1298,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
MacVim/MacVim.m
MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \
objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
+MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
MACVIMGUI_IPATH =
MACVIMGUI_LIBS_DIR =
MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
diff --git a/src/if_python.c b/src/if_python.c
index b356bf7..b7bfa78 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -55,11 +55,7 @@
#define PY_SSIZE_T_CLEAN
-#ifdef FEAT_GUI_MACVIM
-# include <Python/Python.h>
-#else
-# include <Python.h>
-#endif
+#include <Python.h>
#if !defined(PY_VERSION_HEX) || PY_VERSION_HEX < 0x02050000
# undef PY_SSIZE_T_CLEAN
MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon

View File

@ -9,34 +9,32 @@
# reload and similar functions should all work as long as the user # reload and similar functions should all work as long as the user
# doesn't need new libraries at which point they should add them to # doesn't need new libraries at which point they should add them to
# extraPackages and rebuild from the expression. # extraPackages and rebuild from the expression.
{ cabal, yi, extraPackages, makeWrapper }: { cabal, yi, extraPackages, makeWrapper, ghcWithPackages }:
let
w = ghcWithPackages (self: [ yi ] ++ extraPackages self);
wrappedGhc = w.override { ignoreCollisions = true; };
in
cabal.mkDerivation (self: rec { cabal.mkDerivation (self: rec {
pname = "yi-custom"; pname = "yi-custom";
version = "0.0.0.1"; version = "0.0.0.1";
src = ./yi-custom-cabal; src = ./yi-custom-cabal;
isLibrary = true; isLibrary = true;
buildDepends = extraPackages ++ [ yi ]; buildDepends = [ yi ];
buildTools = [ makeWrapper ]; buildTools = [ makeWrapper ];
noHaddock = true; noHaddock = true;
doCheck = false; doCheck = false;
# Allows Yi to find the libraries it needs at runtime. We drop : # put custom GHC env in front which stops crap from being picked up
# from this GHC_PACKAGE_PATH because we're wrapping over a different # from user database
# wrapper that used --prefix: if we didn't, we end up with a
# double-colon, confusing GHC.
postInstall = '' postInstall = ''
makeWrapper ${yi}/bin/yi $out/bin/yi --set GHC_PACKAGE_PATH ''${GHC_PACKAGE_PATH%?} makeWrapper ${yi}/bin/yi $out/bin/yi --prefix PATH : ${wrappedGhc}/bin
''; '';
meta = { meta = {
homepage = "http://haskell.org/haskellwiki/Yi"; homepage = "http://haskell.org/haskellwiki/Yi";
description = "Wrapper over user-specified Haskell libraries for use in Yi config"; description = "Wrapper over user-specified Haskell libraries for use in Yi config";
license = self.stdenv.lib.licenses.publicDomain; license = self.stdenv.lib.licenses.publicDomain;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ]; maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
# The wrapper does not yet work properly if we actually try to use it.
broken = true;
}; };
}) })

View File

@ -2,11 +2,11 @@
{ cabal, binary, Cabal, cautiousFile, dataDefault, derive, dlist { cabal, binary, Cabal, cautiousFile, dataDefault, derive, dlist
, dynamicState, dyre, filepath, glib, gtk, hashable, hint, HUnit , dynamicState, dyre, filepath, glib, gtk, hashable, hint, HUnit
, lens, makeWrapper, mtl, ooPrototypes, pango, parsec, pointedlist , lens, mtl, ooPrototypes, pango, parsec, pointedlist, QuickCheck
, QuickCheck, random, regexBase, regexTdfa, safe, semigroups, split , random, regexBase, regexTdfa, safe, semigroups, split, tagged
, tagged, tasty, tastyHunit, tastyQuickcheck, text, time , tasty, tastyHunit, tastyQuickcheck, text, time, transformersBase
, transformersBase, unixCompat, unorderedContainers, utf8String , unixCompat, unorderedContainers, utf8String, vty, wordTrie
, vty, wordTrie, xdgBasedir, yiLanguage, yiRope , xdgBasedir, yiLanguage, yiRope
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
@ -27,12 +27,8 @@ cabal.mkDerivation (self: {
filepath HUnit lens QuickCheck semigroups tasty tastyHunit filepath HUnit lens QuickCheck semigroups tasty tastyHunit
tastyQuickcheck text yiLanguage yiRope tastyQuickcheck text yiLanguage yiRope
]; ];
buildTools = [ makeWrapper ];
configureFlags = "-fpango -fvty"; configureFlags = "-fpango -fvty";
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.8"; noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.8";
postInstall = ''
wrapProgram $out/bin/yi --suffix GHC_PACKAGE_PATH : $out/lib/ghc-${self.ghc.version}/package.conf.d/yi-$version.installedconf:$GHC_PACKAGE_PATH
'';
meta = { meta = {
homepage = "http://haskell.org/haskellwiki/Yi"; homepage = "http://haskell.org/haskellwiki/Yi";
description = "The Haskell-Scriptable Editor"; description = "The Haskell-Scriptable Editor";

View File

@ -18,14 +18,14 @@
}: }:
let let
version = "6.8.9-0"; version = "6.8.9-8";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ImageMagick-${version}"; name = "ImageMagick-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://imagemagick/${name}.tar.xz"; url = "mirror://imagemagick/${name}.tar.xz";
sha256 = "1lapn2798fkc2wn81slpms5p21kq4dsyg45khsk7n8p69cvrmw2b"; sha256 = "1c792hbwi308lm9xkml319xaa4w3bz6hwy6i92jwrm7kqr4h8di7";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/muennich/sxiv"; homepage = "https://github.com/muennich/sxiv";
license = stdenv.lib.licenses.gpl2Plus; license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
}; };
} }

View File

@ -9,11 +9,11 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "blender-2.72"; name = "blender-2.72b";
src = fetchurl { src = fetchurl {
url = "http://download.blender.org/source/${name}.tar.gz"; url = "http://download.blender.org/source/${name}.tar.gz";
sha256 = "0wydh5bs1pxnx3ya65lfy3val1s8wz027a5kb4va6wg3aqnwlvlv"; sha256 = "0ixz8h3c08p4f84x8r85nzddwvc0h5lw1ci8gdg2x3m2mw2cfdj4";
}; };
buildInputs = buildInputs =

View File

@ -5,11 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "calibre-2.5.0"; name = "calibre-2.6.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz"; url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0zl2rpwn5xdgwm4ffb5pizk3247wfghl8ilz0i80hyp36zzxgl8p"; sha256 = "0z7nnqsal8yfi83fqari7z9xywq6l84jm0nma2mw0gvybysys4cv";
}; };
inherit python; inherit python;

View File

@ -0,0 +1,110 @@
# Build procedure lifted from https://aur.archlinux.org/packages/k2/k2pdfopt/PKGBUILD
{ stdenv, fetchzip, fetchurl, writeScript, libX11, libXext, autoconf, automake, libtool
, leptonica, libpng, libtiff, zlib, openjpeg, freetype, jbig2dec, djvulibre
, openssl }:
let
mupdf_src = fetchurl {
url = http://www.mupdf.com/downloads/archive/mupdf-1.5-source.tar.gz;
sha256 = "0sl47zqf4c9fhs4h5zg046vixjmwgy4vhljhr5g4md733nash7z4";
};
tess_src = fetchurl {
url = http://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz;
sha256 = "0g81m9y4iydp7kgr56mlkvjdwpp3mb01q385yhdnyvra7z5kkk96";
};
gocr_src = fetchurl {
url = http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.49.tar.gz;
sha256 = "06hpzp7rkkwfr1fvmc8kcfz9v490i9yir7f7imh13gmka0fr6afc";
};
in stdenv.mkDerivation rec {
name = "k2pdfopt";
src = fetchzip {
url = http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.21_src.zip;
sha256 = "1vy0yw41z6p95gmivjk4r534zbg0kqap4lr9ps56kvjw51q8r54j";
};
buildInputs = [ libX11 libXext autoconf automake libtool leptonica libpng libtiff zlib
openjpeg freetype jbig2dec djvulibre openssl ];
NIX_LDFLAGS = "-lX11 -lXext";
k2_pa = ./k2pdfopt.patch;
tess_pa = ./tesseract.patch;
builder = writeScript "builder.sh" ''
. ${stdenv}/setup
set -e
plibs=`pwd`/patched_libraries
tar zxf ${mupdf_src}
cp $src/mupdf_mod/font.c $src/mupdf_mod/string.c mupdf-1.5-source/source/fitz/
cp $src/mupdf_mod/pdf-* mupdf-1.5-source/source/pdf
tar zxf ${tess_src}
cp $src/tesseract_mod/dawg.cpp tesseract-ocr/dict
cp $src/tesseract_mod/tessdatamanager.cpp tesseract-ocr/ccutil
cp $src/tesseract_mod/tessedit.cpp tesseract-ocr/ccmain
cp $src/tesseract_mod/tesscapi.cpp tesseract-ocr/api
cp $src/include_mod/tesseract.h $src/include_mod/leptonica.h tesseract-ocr/api
cp -a $src k2pdfopt_v2.21
chmod -R +w k2pdfopt_v2.21
patch -p0 -i $tess_pa
patch -p0 -i $k2_pa
cd tesseract-ocr
./autogen.sh
substituteInPlace "configure" \
--replace 'LIBLEPT_HEADERSDIR="/usr/local/include /usr/include"' \
'LIBLEPT_HEADERSDIR=${leptonica}/include'
./configure --prefix=$plibs --disable-shared
make install
cd ..
tar zxf ${gocr_src}
cd gocr-0.49
./configure
cp src/{gocr.h,pnm.h,unicode.h,list.h} $plibs/include
cp include/config.h $plibs/include
make libs
cp src/libPgm2asc.a $plibs/lib
cd ../mupdf-1.5-source
make prefix=$plibs install
install -Dm644 build/debug/libmujs.a $plibs/lib
cd ../k2pdfopt_v2.21/k2pdfoptlib
gcc -Ofast -Wall -c *.c -I ../include_mod/ -I $plibs/include \
-I . -I ../willuslib
ar rcs libk2pdfopt.a *.o
cd ../willuslib
gcc -Ofast -Wall -c *.c -I ../include_mod/ -I $plibs/include
ar rcs libwillus.a *.o
cd ..
gcc -Wall -Ofast -o k2pdfopt.o -c k2pdfopt.c -I k2pdfoptlib/ -I willuslib/ \
-I include_mod/ -I $plibs/include
g++ -Ofast k2pdfopt.o -o k2pdfopt -I willuslib/ -I k2pdfoptlib/ -I include_mod/ \
-I $plibs/include -L $plibs/lib/ \
-L willuslib/ -L k2pdfoptlib/ -lk2pdfopt -lwillus -ldjvulibre -lz -lmupdf \
-ljbig2dec -ljpeg -lopenjp2 -lpng -lfreetype -lpthread -lmujs \
-lPgm2asc -llept -ltesseract -lcrypto
mkdir -p $out/bin
cp k2pdfopt $out/bin
'';
meta = with stdenv.lib; {
description = "K2pdfopt optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones.";
homepage = http://www.willus.com/k2pdfopt;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.bosu ];
};
}

View File

@ -0,0 +1,95 @@
diff -aur k2pdfopt_v2.21/willuslib/array.c k2pdfopt_v2.21.new/willuslib/array.c
--- k2pdfopt_v2.21/willuslib/array.c 2014-05-23 16:29:58.000000000 -0300
+++ k2pdfopt_v2.21.new/willuslib/array.c 2014-07-26 11:35:49.829825567 -0300
@@ -1055,7 +1055,7 @@
void arrayf_sort(float *a,int n)
{
- sort(a,(long)n);
+ willus_sort(a,(long)n);
}
diff -aur k2pdfopt_v2.21/willuslib/math.c k2pdfopt_v2.21.new/willuslib/math.c
--- k2pdfopt_v2.21/willuslib/math.c 2013-08-15 21:33:50.000000000 -0300
+++ k2pdfopt_v2.21.new/willuslib/math.c 2014-07-26 11:36:02.853170659 -0300
@@ -532,7 +532,7 @@
-void sort(float *x,int n)
+void willus_sort(float *x,int n)
{
int top,n1;
diff -aur k2pdfopt_v2.21/willuslib/ocrjocr.c k2pdfopt_v2.21.new/willuslib/ocrjocr.c
--- k2pdfopt_v2.21/willuslib/ocrjocr.c 2012-11-12 13:09:42.000000000 -0300
+++ k2pdfopt_v2.21.new/willuslib/ocrjocr.c 2014-07-26 11:36:46.699837185 -0300
@@ -29,6 +29,8 @@
#ifdef HAVE_GOCR_LIB
#include <gocr.h>
+job_t *JOB;
+
/*
** bmp8 must be grayscale
** (x1,y1) and (x2,y2) from top left of bitmap
@@ -66,6 +68,7 @@
h=y2-y1+1;
dh=h+bw*2;
job=&_job;
+ JOB=job;
job_init(job);
job_init_image(job);
// willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
diff -aur k2pdfopt_v2.21/willuslib/string.c k2pdfopt_v2.21.new/willuslib/string.c
--- k2pdfopt_v2.21/willuslib/string.c 2014-02-03 00:37:44.000000000 -0300
+++ k2pdfopt_v2.21.new/willuslib/string.c 2014-07-26 11:37:01.766506277 -0300
@@ -81,7 +81,7 @@
** Returns NULL if EOF, otherwise returns pointer to the string.
**
*/
-char *get_line(char *buf,int max,FILE *f)
+char *willus_get_line(char *buf,int max,FILE *f)
{
int i;
diff -aur k2pdfopt_v2.21/willuslib/willus.h k2pdfopt_v2.21.new/willuslib/willus.h
--- k2pdfopt_v2.21/willuslib/willus.h 2014-07-25 15:03:51.000000000 -0300
+++ k2pdfopt_v2.21.new/willuslib/willus.h 2014-07-26 11:37:56.316506038 -0300
@@ -214,9 +214,6 @@
** CMAKE handles the defines, not this source
** (Mod from Dirk Thierbach, 31-Dec-2013)
*/
-#ifdef USE_CMAKE
-#include "config.h"
-#else /* USE_CMAKE */
#ifndef HAVE_Z_LIB
#define HAVE_Z_LIB
@@ -268,7 +265,6 @@
#undef HAVE_GSL_LIB
#endif
-#endif /* USE_CMAKE */
/*
** Consistency check
*/
@@ -533,7 +529,7 @@
int *n,FILE *err);
int readxyz_ex (char *filename,double **x,double **y,double **z,
int *n,FILE *err,int ignore_after_semicolon);
-void sort (float *x,int n);
+void willus_sort (float *x,int n);
void sortd (double *x,int n);
void sorti (int *x,int n);
void sortxy (float *x,float *y,int n);
@@ -602,7 +598,7 @@
/* string.c */
void clean_line (char *buf);
void clean_line_end(char *buf);
-char *get_line (char *buf,int max,FILE *f);
+char *willus_get_line (char *buf,int max,FILE *f);
char *get_line_cf (char *buf,int max,FILE *f);
int mem_get_line_cf(char *buf,int maxlen,char *cptr,long *cindex,long csize);
int in_string (char *buffer,char *pattern);

View File

@ -0,0 +1,12 @@
diff -aur tesseract-ocr/api/Makefile.am tesseract-ocr.new/api/Makefile.am
--- tesseract-ocr/api/Makefile.am 2012-10-09 14:18:39.000000000 -0300
+++ tesseract-ocr.new/api/Makefile.am 2014-03-20 18:43:13.926030341 -0300
@@ -36,7 +36,7 @@
if VISIBILITY
libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS
endif
-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp
+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp tesscapi.cpp
lib_LTLIBRARIES += libtesseract.la
libtesseract_la_LDFLAGS =

View File

@ -0,0 +1,39 @@
{stdenv, fetchurl, qt4, pkgconfig, popplerQt4, djvulibre, libspectre, cups
, file, ghostscript
}:
let
s = # Generated upstream information
rec {
baseName="qpdfview";
version="0.4.12";
name="${baseName}-${version}";
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
sha256="1h6lrrh1vblqkxrd89nmid7d21anyn30iahj24z62yny35lidf0g";
};
buildInputs = [
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript
];
in
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchurl {
inherit (s) url sha256;
};
configurePhase = ''
qmake *.pro
for i in *.pro; do
qmake "$i" -o "Makefile.$(basename "$i" .pro)"
done
sed -e "s@/usr/@$out/@g" -i Makefile*
'';
meta = {
inherit (s) version;
description = "A tabbed document viewer";
license = stdenv.lib.licenses.gpl2;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
homepage = "https://launchpad.net/qpdfview";
updateWalker = true;
};
}

View File

@ -1,12 +1,12 @@
{ stdenv, fetchgit, unzip, xulrunner, makeWrapper }: { stdenv, fetchgit, unzip, firefox, makeWrapper }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "conkeror-1.0pre-20140616"; name = "conkeror-1.0pre-20140616";
src = fetchgit { src = fetchgit {
url = git://repo.or.cz/conkeror.git; url = git://repo.or.cz/conkeror.git;
rev = "8a26fff5896a3360549e2adfbf06b1d57e909266"; rev = "98e89c7e5ff3a1069a0984338da01273cdb189a2";
sha256 = "56f1c71ca1753a63d7599d3e8bf52277711b2693e7709ed7c146f34940441cb4"; sha256 = "284ba966efebfa0aaa768abc1a4f901e2ecf5db9d0391d904a49118b0b94fcd7";
}; };
buildInputs = [ unzip makeWrapper ]; buildInputs = [ unzip makeWrapper ];
@ -15,8 +15,8 @@ stdenv.mkDerivation {
mkdir -p $out/libexec/conkeror mkdir -p $out/libexec/conkeror
cp -r * $out/libexec/conkeror cp -r * $out/libexec/conkeror
makeWrapper ${xulrunner}/bin/xulrunner $out/bin/conkeror \ makeWrapper ${firefox}/bin/firefox $out/bin/conkeror \
--add-flags $out/libexec/conkeror/application.ini --add-flags "-app $out/libexec/conkeror/application.ini"
''; '';
meta = { meta = {

View File

@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
] ]
++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
else [ "--disable-debug" "--enable-release" else [ "--disable-debug" "--enable-release"
"--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O3"}" "--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O1"}"
"--enable-strip" ]) "--enable-strip" ])
++ lib.optional enableOfficialBranding "--enable-official-branding"; ++ lib.optional enableOfficialBranding "--enable-official-branding";

View File

@ -36,7 +36,7 @@
let let
# -> http://get.adobe.com/flashplayer/ # -> http://get.adobe.com/flashplayer/
version = "11.2.202.406"; version = "11.2.202.411";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "05akcw89kz0cnhan6wp72banz2asmvqfhb2cw1krn66qgd7bl0x0"; sha256 = "1983rj824bhzk48yhgminsiil778vwq0217hfrhbmymhrq3p7gzd";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
if debug then if debug then
@ -60,7 +60,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "10f3842vi80kszj42f4c8sw7plrmvsin5k860cqvlzgdhndz8i4b"; sha256 = "1bxp94s63i3136pjxgcm8106mqzaj4h096mkf7iq6ddkcvi0cxzn";
} }
else throw "Flash Player is not supported on this platform"; else throw "Flash Player is not supported on this platform";

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, pythonPackages, pyqt4, cython, libvncserver, zlib, twisted, gnutls }:
pythonPackages.buildPythonPackage rec {
name = "blink-${version}";
version = "0.9.1";
src = fetchurl {
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
sha256 = "f578e5186893c3488e7773fbb775028ae54540433a0c51aefa5af983ca2bfdae";
};
patches = [ ./pythonpath.patch ];
propagatedBuildInputs = [ pyqt4 pythonPackages.cjson pythonPackages.sipsimple twisted ];
buildInputs = [ cython zlib libvncserver ];
postInstall = ''
wrapProgram $out/bin/blink \
--prefix LD_LIBRARY_PATH : ${gnutls}/lib
'';
meta = {
homepage = http://icanblink.com/;
description = "A state of the art, easy to use SIP client";
};
}

View File

@ -0,0 +1,12 @@
diff --git a/blink/resources.py b/blink/resources.py
index 524d9e5..c271887 100644
--- a/blink/resources.py
+++ b/blink/resources.py
@@ -64,6 +64,7 @@ class Resources(object):
if script == '':
application_directory = os.path.realpath(script) # executed in interactive interpreter
else:
+ script = os.path.join(sys.path[0], script)
binary_directory = os.path.dirname(os.path.realpath(script))
if os.path.basename(binary_directory) == 'bin':
application_directory = os.path.dirname(binary_directory)

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, unzip, xulrunner, makeWrapper }: { stdenv, fetchurl, unzip, firefox, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "chatzilla-0.9.90.1"; name = "chatzilla-0.9.91";
src = fetchurl { src = fetchurl {
# Obtained from http://chatzilla.rdmsoft.com/xulrunner/. # Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
url = "http://chatzilla.rdmsoft.com/xulrunner/download/${name}.en-US.xulapp"; url = "http://chatzilla.rdmsoft.com/xulrunner/download/${name}.en-US.xulapp";
sha256 = "0z38jig91h10cb14rvs30rpg2pgn3v890nyxyy8lxzbv5ncxmngw"; sha256 = "1bmjw2wvp8gh7fdl8czkxc55iari6dy672446hps20xixrh8hl8r";
}; };
buildInputs = [ unzip makeWrapper ]; buildInputs = [ unzip makeWrapper ];
@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
mkdir -p $out/libexec/chatzilla mkdir -p $out/libexec/chatzilla
unzip $src -d $out/libexec/chatzilla unzip $src -d $out/libexec/chatzilla
makeWrapper ${xulrunner}/bin/xulrunner $out/bin/chatzilla \ makeWrapper ${firefox}/bin/firefox $out/bin/chatzilla \
--add-flags $out/libexec/chatzilla/application.ini --add-flags "-app $out/libexec/chatzilla/application.ini"
sed -i $out/libexec/chatzilla/application.ini -e 's/.*MaxVersion.*/MaxVersion=99.*/' sed -i $out/libexec/chatzilla/application.ini -e 's/.*MaxVersion.*/MaxVersion=99.*/'
''; '';

View File

@ -1,4 +1,5 @@
{ fetchurl, stdenv, bash, emacs, gdb, glib, gmime, gnupg, { fetchurl, stdenv, bash, emacs, fixDarwinDylibNames,
gdb, glib, gmime, gnupg,
pkgconfig, talloc, xapian pkgconfig, talloc, xapian
}: }:
@ -10,51 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj"; sha256 = "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj";
}; };
buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ]; buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ]
++ stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
patchPhase = '' patchPhase = ''
(cd test && for prg in \ find test -type f -exec \
aggregate-results.sh \ sed -i \
argument-parsing \ "1s_#!/usr/bin/env bash_#!${bash}/bin/bash_" \
atomicity \ "{}" ";"
author-order \
basic \
crypto \
count \
dump-restore \
emacs \
emacs-large-search-buffer \
encoding \
from-guessing \
help-test \
hooks \
json \
long-id \
maildir-sync \
multipart \
new \
notmuch-test \
python \
raw \
reply \
search \
search-by-folder \
search-insufficient-from-quoting \
search-folder-coherence \
search-limiting \
search-output \
search-position-overlap-bug \
symbol-hiding \
tagging \
test-lib.sh \
test-verbose \
thread-naming \
thread-order \
uuencode \
;do
substituteInPlace "$prg" \
--replace "#!/usr/bin/env bash" "#!${bash}/bin/bash"
done)
for src in \ for src in \
crypto.c \ crypto.c \
@ -65,6 +29,16 @@ stdenv.mkDerivation rec {
done done
''; '';
preFixup = if stdenv.isDarwin then
''
prg="$out/bin/notmuch"
target="libnotmuch.3.dylib"
echo "$prg: fixing link to $target"
install_name_tool -change "$target" "$out/lib/$target" "$prg"
''
else
"";
# XXX: emacs tests broken # XXX: emacs tests broken
doCheck = false; doCheck = false;
checkTarget = "test"; checkTarget = "test";

View File

@ -6,14 +6,14 @@
}: }:
let pname = "liferea"; let pname = "liferea";
version = "1.10.11"; version = "1.10.12";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2"; url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
sha256 = "0mf5mpdj60j8if4qi5656l4pzhgwzhshf31yp0h53l1j442v109a"; sha256 = "0c046r3cgf2adcjkgcny1gf2yj3hs0fhrc1zmcz2ja7grcbx46si";
}; };
buildInputs = with gst_all_1; [ buildInputs = with gst_all_1; [

View File

@ -1,77 +1,42 @@
{ stdenv { stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor
, fetchgit , libXdamage, libXext, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv
, cmake , pulseaudio ? null, cups ? null, pcsclite ? null
, openssl
, printerSupport ? true, cups
, pkgconfig
, zlib
, libX11
, libXcursor
, libXdamage
, libXext
, alsaLib
, ffmpeg
, libxkbfile
#, xmlto, docbook_xml_dtd_412, docbook_xml_xslt
, libXinerama
#, directfb
#, cunit
, libXv
, pulseaudioSupport ? true, pulseaudio
}: }:
assert printerSupport -> cups != null;
let rev = "ec6effcb1e7759551cf31f5b18d768afc67db97d"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "freerdp-1.1pre-${stdenv.lib.strings.substring 0 7 rev}"; name = "freerdp-1.2.0-beta1";
src = fetchgit { src = fetchFromGitHub {
url = git://github.com/FreeRDP/FreeRDP.git; owner = "FreeRDP";
inherit rev; repo = "FreeRDP";
sha256 = "4e5af9a6769c4b34c6b75dffe83a385d1d86068c523ea9f62fabc651a2958455"; rev = "1.2.0-beta1+android7";
sha256 = "08nn18jydblrif1qs92pakzd3ww7inr0i378ssn1bjp09lm1bkk0";
}; };
buildInputs = [ buildInputs = [
cmake cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext glib
openssl alsaLib ffmpeg libxkbfile libXinerama libXv cups pulseaudio pcsclite
pkgconfig ];
zlib
libX11
libXcursor
libXdamage
libXext
# directfb
# cunit
alsaLib
ffmpeg
libxkbfile
# xmlto docbook_xml_dtd_412 docbook_xml_xslt
libXinerama
libXv
] ++ stdenv.lib.optional printerSupport cups;
doCheck = false; doCheck = false;
checkPhase = ''LD_LIBRARY_PATH="libfreerdp-cache:libfreerdp-chanman:libfreerdp-common:libfreerdp-core:libfreerdp-gdi:libfreerdp-kbd:libfreerdp-rail:libfreerdp-rfx:libfreerdp-utils" cunit/test_freerdp''; cmakeFlags = [
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DWITH_CUNIT=OFF"
] ++ stdenv.lib.optional (pulseaudio != null) "-DWITH_PULSE=ON"
++ stdenv.lib.optional (cups != null) "-DWITH_CUPS=ON"
++ stdenv.lib.optional (pcsclite != null) "-DWITH_PCSC=ON";
cmakeFlags = [ "-DWITH_DIRECTFB=OFF" "-DWITH_CUNIT=OFF" "-DWITH_MANPAGES=OFF" meta = with stdenv.lib; {
] ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON";
meta = {
description = "A Remote Desktop Protocol Client"; description = "A Remote Desktop Protocol Client";
longDescription = '' longDescription = ''
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
following the Microsoft Open Specifications. following the Microsoft Open Specifications.
''; '';
homepage = http://www.freerdp.com/; homepage = http://www.freerdp.com/;
license = licenses.asl20;
license = "free-non-copyleft"; maintainers = with maintainers; [ wkennington ];
platforms = platforms.unix;
broken = true; # fails to build
}; };
} }

View File

@ -3,7 +3,7 @@
assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"); assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
let let
version = "4.0.22"; version = "4.0.23";
arch = if stdenv.system == "x86_64-linux" arch = if stdenv.system == "x86_64-linux"
then "linux-x86_64" then "linux-x86_64"
else "linux-i686"; else "linux-i686";
@ -14,8 +14,8 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2"; url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
sha256 = if stdenv.system == "x86_64-linux" sha256 = if stdenv.system == "x86_64-linux"
then "0dq4x1cc0lnhs7g6w85qjdlb7sajr13mr2zcf4yvrciwhwy3r1i1" then "1fz5xn69vapfw8d20207zr9p5r1h9x5kahh334pl2dn1h8il0sm8"
else "0s4j2karaq85fwnd1niz8hzx5k71cqs493g38pg337i3iwxad9hg"; else "1kmsvvg2lh881rzy3rxbigzivixjamyrwf5x7vmn1kzhvsvifrng";
}; };
# Strip the bundled xulrunner # Strip the bundled xulrunner

View File

@ -17,8 +17,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "git-annex"; pname = "git-annex";
version = "5.20140927"; version = "5.20141013";
sha256 = "02zmg8pcrdavfna2xy51n6chn6i5g0b8p20rba1vj29rlfj3cask"; sha256 = "1p2hvw2x0rm9nhk176mzwisl75xphqxv7mhd43mvwlb3q9f57lnc";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
@ -48,6 +48,5 @@ cabal.mkDerivation (self: {
license = self.stdenv.lib.licenses.gpl3; license = self.stdenv.lib.licenses.gpl3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ simons ]; maintainers = with self.stdenv.lib.maintainers; [ simons ];
broken = true;
}; };
}) })

View File

@ -81,13 +81,13 @@ in
plugin = "svtplay"; plugin = "svtplay";
namespace = "plugin.video.svtplay"; namespace = "plugin.video.svtplay";
version = "4.0.6"; version = "4.0.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nilzen"; owner = "nilzen";
repo = "xbmc-" + plugin; repo = "xbmc-" + plugin;
rev = "4f27254edbd6dc48350152832833c5b164ca58de"; rev = "967dc429201200200dba0e755ede3a0e9cb1b137";
sha256 = "11r8vljpx9fxwdx20cvkb5szlaypfrn6c235jwcg61s4hmjy4kl8"; sha256 = "0kaxcci9zbblpkn1mrmdl49844r90agww41frz9vw6q2ajq1z16k";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -3,11 +3,11 @@ btrfsProgs, iptables, bash, e2fsprogs, xz}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "docker-${version}"; name = "docker-${version}";
version = "1.2.0"; version = "1.3.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz"; url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
sha256 = "1nk74p9k17bllgw4992ixx7z3w87icp2wabbpbgfyi20k2q9mayp"; sha256 = "09bn88i8acv7kw39js1p7mgf3sglq7d782xnafkp0i97svf0x4y9";
}; };
buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs]; buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs];
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
buildPhase = '' buildPhase = ''
patchShebangs ./hack patchShebangs ./hack
export AUTO_GOPATH=1 export AUTO_GOPATH=1
export DOCKER_GITCOMMIT="fa7b24f" export DOCKER_GITCOMMIT="c78088f"
./hack/make.sh dynbinary ./hack/make.sh dynbinary
''; '';

View File

@ -5,6 +5,7 @@
, javaBindings ? false, jdk ? null , javaBindings ? false, jdk ? null
, pythonBindings ? false, python ? null , pythonBindings ? false, python ? null
, enableExtensionPack ? false, requireFile ? null, patchelf ? null , enableExtensionPack ? false, requireFile ? null, patchelf ? null
, pulseSupport ? false, pulseaudio ? null
}: }:
with stdenv.lib; with stdenv.lib;
@ -64,7 +65,8 @@ in stdenv.mkDerivation {
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
pkgconfig which libXmu ] pkgconfig which libXmu ]
++ optional javaBindings jdk ++ optional javaBindings jdk
++ optional pythonBindings python; ++ optional pythonBindings python
++ optional pulseSupport pulseaudio;
prePatch = '' prePatch = ''
set -x set -x
@ -86,7 +88,8 @@ in stdenv.mkDerivation {
./configure --with-qt4-dir=${qt4} \ ./configure --with-qt4-dir=${qt4} \
${optionalString (!javaBindings) "--disable-java"} \ ${optionalString (!javaBindings) "--disable-java"} \
${optionalString (!pythonBindings) "--disable-python"} \ ${optionalString (!pythonBindings) "--disable-python"} \
--disable-pulse --disable-hardening --disable-kmods \ ${optionalString (!pulseSupport) "--disable-pulse"} \
--disable-hardening --disable-kmods \
--with-mkisofs=${xorriso}/bin/xorrisofs --with-mkisofs=${xorriso}/bin/xorrisofs
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \ sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
-i AutoConfig.kmk -i AutoConfig.kmk

View File

@ -1,33 +1,44 @@
{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon { stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon, cairo, libxcb
, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev , libXcursor, x11, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput
, libjpeg, pam, autoconf, automake, libtool, dbus }: , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
, libwebp ? null
}:
let version = "1.5.0"; in let version = "1.6.0"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "weston-${version}"; name = "weston-${version}";
src = fetchurl { src = fetchurl {
url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
sha256 = "113nig2dmbgrjhi79k0zw77vicnx8vkaihawd0nsg6n79ah8nf06"; sha256 = "0kb1mb54l7adihmr2y77xgsdb00dvifnq886q2mmy0mz7g8sagnw";
}; };
#ToDo: libinput can be split away
buildInputs = [ buildInputs = [
pkgconfig wayland mesa libxkbcommon pkgconfig wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm
cairo libxcb libXcursor x11 udev libdrm mtdev libjpeg pam dbus.libs mtdev libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva
libwebp
]; ];
NIX_CFLAGS_COMPILE = "-I${libdrm}/include/libdrm";
configureFlags = [ configureFlags = [
"--enable-xwayland"
"--enable-x11-compositor"
"--enable-drm-compositor"
"--enable-wayland-compositor"
"--enable-headless-compositor"
"--enable-fbdev-compositor"
"--enable-screen-sharing"
"--enable-clients"
"--enable-weston-launch"
"--disable-setuid-install" # prevent install target to chown root weston-launch, which fails "--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
]; ] ++ stdenv.lib.optional (freerdp != null) "--enable-rdp-compositor"
++ stdenv.lib.optional (vaapi != null) "--enabe-vaapi-recorder";
meta = { meta = with stdenv.lib; {
description = "Reference implementation of a Wayland compositor"; description = "Reference implementation of a Wayland compositor";
homepage = http://wayland.freedesktop.org/; homepage = http://wayland.freedesktop.org/;
license = stdenv.lib.licenses.mit; license = licenses.mit;
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ wkennington ];
}; };
} }

View File

@ -23,4 +23,4 @@ mount --rbind /run $chrootenvDest/run
mount --bind /etc $chrootenvDest/host-etc mount --bind /etc $chrootenvDest/host-etc
# Bind mount /tmp # Bind mount /tmp
mount --bind /tmp/chrootenv-@name@ /run/chrootenv/steam/tmp mount --bind /tmp/chrootenv-@name@ $chrootenvDest/tmp

View File

@ -57,6 +57,13 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs; propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs;
doCheck = enableCheckPhase && x.doCheck; doCheck = enableCheckPhase && x.doCheck;
hyperlinkSource = enableHyperlinkSource && x.hyperlinkSource; hyperlinkSource = enableHyperlinkSource && x.hyperlinkSource;
# Disable Darwin builds: <https://github.com/NixOS/nixpkgs/issues/2689>.
meta = let meta = x.meta or {};
hydraPlatforms = meta.hydraPlatforms or meta.platforms or [];
noElem = p: ps: !stdenv.lib.elem p ps;
noDarwin = p: noElem p stdenv.lib.platforms.darwin;
in
meta // { hydraPlatforms = filter noDarwin hydraPlatforms; };
}; };
defaults = defaults =
@ -210,9 +217,6 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) '' ${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) ''
configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names" configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names"
''} ''}
${optionalString (versionOlder "7.8" ghc.version) ''
configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES"
''}
echo "configure flags: $extraConfigureFlags $configureFlags" echo "configure flags: $extraConfigureFlags $configureFlags"
./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \ ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \

View File

@ -32,7 +32,7 @@ let
grKernel = if cfg.stable grKernel = if cfg.stable
then mkKernel pkgs.linux_3_14 stable-patch then mkKernel pkgs.linux_3_14 stable-patch
else mkKernel pkgs.linux_3_16 test-patch; else mkKernel pkgs.linux_3_17 test-patch;
## -- grsecurity configuration --------------------------------------------- ## -- grsecurity configuration ---------------------------------------------

View File

@ -0,0 +1,22 @@
{ stdenv }:
args:
stdenv.mkDerivation ({
name = if args ? name then args.name else baseNameOf (toString args.src);
builder = with stdenv.lib; builtins.toFile "builder.sh" ''
source $stdenv/setup
set -o pipefail
eval "$preInstall"
args=
cd "$src"
echo -ne "${concatStringsSep "\\0" args.files}" | xargs -0 -n1 -I {} -- find {} -type f -print0 | while read -d "" line; do
mkdir -p "$out/$(dirname "$line")"
substituteAll "$line" "$out/$line"
done
'';
preferLocalBuild = true;
} // args)

View File

@ -1586,7 +1586,7 @@ rec {
fullName = "Debian 7.6 Wheezy (i386)"; fullName = "Debian 7.6 Wheezy (i386)";
packagesList = fetchurl { packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2; url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
sha256 = "773ba601513cd7ef1d5192ad8baa795fa050573d82568c577cdf79adade698a3"; sha256 = "1j093d6dwixyrk87sdvaayh3ffcn5aqwik36blndiw5njw2qkzgj";
}; };
urlPrefix = mirror://debian; urlPrefix = mirror://debian;
packages = commonDebianPackages; packages = commonDebianPackages;
@ -1597,7 +1597,7 @@ rec {
fullName = "Debian 7.6 Wheezy (amd64)"; fullName = "Debian 7.6 Wheezy (amd64)";
packagesList = fetchurl { packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2; url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
sha256 = "11a8bd3648d51f51e56c9f5382168cc47267d67ef6a050826e1cd358ed46cc17"; sha256 = "1n46fxq8a2dm1i7ysc80s5lg10z5dh0hyd8k3h532n5wzs44xqcc";
}; };
urlPrefix = mirror://debian; urlPrefix = mirror://debian;
packages = commonDebianPackages; packages = commonDebianPackages;

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Econnman is a user interface for the connman network connection manager"; description = "Econnman is a user interface for the connman network connection manager";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.lgpl3; license = stdenv.lib.licenses.lgpl3;
}; };

View File

@ -3,10 +3,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "efl-${version}"; name = "efl-${version}";
version = "1.11.2"; version = "1.11.3";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.gz"; url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.gz";
sha256 = "123jrcifd7i0r9zh8qllqiz3d378fyy7fzkanyki9wbxlz91rk7k"; sha256 = "0s9pm3lfp7f2yf877xywjw8ihgr2yrns3gibak0gcwx7d8bfljfr";
}; };
buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL2 SDL mesa giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-libav pulseaudio libsndfile xlibs.libXcursor xlibs.printproto xlibs.libX11 libdrm udev utillinuxCurses luajit ]; buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL2 SDL mesa giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-libav pulseaudio libsndfile xlibs.libXcursor xlibs.printproto xlibs.libX11 libdrm udev utillinuxCurses luajit ];
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Enlightenment Core libraries"; description = "Enlightenment Core libraries";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.lgpl3; license = stdenv.lib.licenses.lgpl3;
}; };

View File

@ -1,10 +1,10 @@
{ stdenv, fetchurl, pkgconfig, e19, libcap, gdbm }: { stdenv, fetchurl, pkgconfig, e19, libcap, gdbm }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "elementary-${version}"; name = "elementary-${version}";
version = "1.11.2"; version = "1.11.3";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.gz"; url = "http://download.enlightenment.org/rel/libs/elementary/${name}.tar.gz";
sha256 = "041hwp81qyq4wsw483g2jh52gcanqg046f91pmd0vzgwcgxyixqq"; sha256 = "1yr96imam9sckgagnp7wdvwmvr1xwakw29dih3gxp7nz7xsa0j8k";
}; };
buildInputs = [ pkgconfig e19.efl gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ]; buildInputs = [ pkgconfig e19.efl gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
preConfigure = '' preConfigure = ''
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Widget set/toolkit"; description = "Widget set/toolkit";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.lgpl2; license = stdenv.lib.licenses.lgpl2;
}; };

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Extra video decoders"; description = "Extra video decoders";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd2; license = stdenv.lib.licenses.bsd2;
}; };

View File

@ -4,10 +4,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "enlightenment-${version}"; name = "enlightenment-${version}";
version = "0.19.0"; version = "0.19.1";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz"; url = "http://download.enlightenment.org/rel/apps/enlightenment/${name}.tar.xz";
sha256 = "0d9s8gwma32hj8h000k1bzibr3zj8qajcf14va3w81k87gkilxfp"; sha256 = "016z1vilhjarpxzn5bwcw696d8b66rklnhkrwzfa5mcxn8gpmvap";
}; };
buildInputs = [ pkgconfig e19.efl e19.elementary xlibs.libXdmcp xlibs.libxcb xlibs.xcbutilkeysyms xlibs.libXrandr libffi pam alsaLib luajit bzip2 libpthreadstubs gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ]; buildInputs = [ pkgconfig e19.efl e19.elementary xlibs.libXdmcp xlibs.libxcb xlibs.xcbutilkeysyms xlibs.libXrandr libffi pam alsaLib luajit bzip2 libpthreadstubs gdbm ] ++ stdenv.lib.optionals stdenv.isLinux [ libcap ];
preConfigure = '' preConfigure = ''
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "The Compositing Window Manager and Desktop Shell"; description = "The Compositing Window Manager and Desktop Shell";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd2; license = stdenv.lib.licenses.bsd2;
}; };

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Extra image decoders"; description = "Extra image decoders";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
}; };

View File

@ -1,10 +1,10 @@
{ stdenv, fetchurl, pkgconfig, e19 }: { stdenv, fetchurl, pkgconfig, e19 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "terminology-${version}"; name = "terminology-${version}";
version = "0.6.1"; version = "0.7.0";
src = fetchurl { src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.gz"; url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.gz";
sha256 = "1wi9njyfs95y4nb9jd30032qqka5cg7k0wacck8s1yqxwg5ng38x"; sha256 = "1x248dh9r292r8ycvf43vrfk4l8wpli50sgywp0zy3q93f8ljgs5";
}; };
buildInputs = [ pkgconfig e19.efl e19.elementary ]; buildInputs = [ pkgconfig e19.efl e19.elementary ];
preConfigure = '' preConfigure = ''
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "The best terminal emulator written with the EFL"; description = "The best terminal emulator written with the EFL";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;
maintainers = [ stdenv.lib.maintainers.matejc ]; maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd2; license = stdenv.lib.licenses.bsd2;
}; };

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Framework for managing passwords and other secrets"; description = "Framework for managing passwords and other secrets";
homepage = http://live.gnome.org/GnomeKeyring; homepage = http://live.gnome.org/GnomeKeyring;
# TODO license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
inherit (glib.meta) platforms maintainers; inherit (glib.meta) platforms maintainers;
longDescription = '' longDescription = ''

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/Yelp; homepage = https://wiki.gnome.org/Apps/Yelp;
description = "Yelp's universal stylesheets for Mallard and DocBook"; description = "Yelp's universal stylesheets for Mallard and DocBook";
maintainers = with maintainers; [ lethalman ]; maintainers = with maintainers; [ lethalman ];
# TODO license = [licenses.gpl2 licenses.lgpl2]; license = [licenses.gpl2 licenses.lgpl2];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -184,7 +184,9 @@ rec {
gitg = callPackage ./misc/gitg { }; gitg = callPackage ./misc/gitg { };
libgit2-glib = callPackage ./misc/libgit2-glib { }; libgit2-glib = callPackage ./misc/libgit2-glib {
libgit2 = pkgs.libgit2.override { libssh2 = null; };
};
libmediaart = callPackage ./misc/libmediaart { }; libmediaart = callPackage ./misc/libmediaart { };

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Framework for managing passwords and other secrets"; description = "Framework for managing passwords and other secrets";
homepage = http://live.gnome.org/GnomeKeyring; homepage = http://live.gnome.org/GnomeKeyring;
# TODO license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
inherit (glib.meta) platforms maintainers; inherit (glib.meta) platforms maintainers;
longDescription = '' longDescription = ''

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/Yelp; homepage = https://wiki.gnome.org/Apps/Yelp;
description = "Yelp's universal stylesheets for Mallard and DocBook"; description = "Yelp's universal stylesheets for Mallard and DocBook";
maintainers = with maintainers; [ lethalman ]; maintainers = with maintainers; [ lethalman ];
# TODO license = [licenses.gpl2 licenses.lgpl2]; license = [licenses.gpl2 licenses.lgpl2];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -233,7 +233,9 @@ rec {
libgda = callPackage ./misc/libgda { }; libgda = callPackage ./misc/libgda { };
libgit2-glib = callPackage ./misc/libgit2-glib { }; libgit2-glib = callPackage ./misc/libgit2-glib {
libgit2 = pkgs.libgit2.override { libssh2 = null; };
};
libmediaart = callPackage ./misc/libmediaart { }; libmediaart = callPackage ./misc/libmediaart { };

View File

@ -32,15 +32,15 @@ stdenv.mkDerivation rec {
# that in turn causes GHCi to abort # that in turn causes GHCi to abort
stripDebugFlags = [ "-S" "--keep-file-symbols" ]; stripDebugFlags = [ "-S" "--keep-file-symbols" ];
meta = { meta = with stdenv.lib; {
homepage = "http://haskell.org/ghc"; homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler"; description = "The Glasgow Haskell Compiler";
maintainers = [ maintainers = [ maintainers.marcweber maintainers.andres maintainers.simons ];
stdenv.lib.maintainers.marcweber inherit (ghc.meta) license;
stdenv.lib.maintainers.andres # Filter old "i686-darwin" platform which is unsupported these days.
stdenv.lib.maintainers.simons platforms = filter (x: elem x platforms.all) ghc.meta.platforms;
]; # Disable Darwin builds: <https://github.com/NixOS/nixpkgs/issues/2689>.
inherit (ghc.meta) license platforms; hydraPlatforms = filter (x: !elem x platforms.darwin) meta.platforms;
}; };
} }

View File

@ -0,0 +1,157 @@
{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
, readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
, ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
, tcl, tk, xproto, libX11, git, mpfr, which
} :
assert stdenv.isLinux;
let
realGcc = stdenv.gcc.gcc;
in
stdenv.mkDerivation rec {
pname = "julia";
version = "0.3.1";
name = "${pname}-${version}";
dsfmt_ver = "2.2";
grisu_ver = "1.1.1";
openblas_ver = "v0.2.10";
lapack_ver = "3.5.0";
arpack_ver = "3.1.5";
lighttpd_ver = "1.4.29";
patchelf_ver = "0.6";
pcre_ver = "8.31";
utf8proc_ver = "1.1.6";
dsfmt_src = fetchurl {
url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
name = "dsfmt-${dsfmt_ver}.tar.gz";
sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
};
grisu_src = fetchurl {
url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
};
openblas_src = fetchurl {
url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
name = "openblas-${openblas_ver}.tar.gz";
sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za";
};
arpack_src = fetchurl rec {
url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_${arpack_ver}.tar.gz";
sha256 = "05fmg4m0yri47rzgsl2mnr1qbzrs7qyd557p3v9wwxxw0rwcwsd2";
};
lapack_src = fetchurl {
url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
name = "lapack-${lapack_ver}.tgz";
sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
};
lighttpd_src = fetchurl {
url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${lighttpd_ver}.tar.gz";
sha256 = "ff9f4de3901d03bb285634c5b149191223d17f1c269a16c863bac44238119c85";
};
patchelf_src = fetchurl {
url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2";
sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw";
};
pcre_src = fetchurl {
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_ver}.tar.bz2";
sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
};
utf8proc_src = fetchurl {
url = "http://www.public-software-group.org/pub/projects/utf8proc/v${utf8proc_ver}/utf8proc-v${utf8proc_ver}.tar.gz";
sha256 = "1rwr84pw92ajjlbcxq0da7yxgg3ijngmrj7vhh2qzsr2h2kqzp7y";
};
src = fetchgit {
url = "git://github.com/JuliaLang/julia.git";
rev = "refs/tags/v0.3.1";
sha256 = "1m6jyh7dn03q00gpwb64pq6dypglj4yqac7rkw21z2jknb5x33vb";
};
buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
openblas liblapack tcl tk xproto libX11 git mpfr which
];
configurePhase = ''
for i in GMP LLVM PCRE READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR;
do
makeFlags="$makeFlags USE_SYSTEM_$i=1 "
done
copy_kill_hash(){
cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
}
for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${patchelf_src}" \
"${pcre_src}" "${utf8proc_src}" "${lapack_src}" "${openblas_src}"; do
copy_kill_hash "$i" deps
done
${if realGcc ==null then "" else
''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr -lblas -lopenblas -L$out/lib"''}
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
export GLPK_PREFIX="${glpk}/include"
mkdir -p "$out/lib"
sed -e "s@/usr/local/lib@$out/lib@g" -i deps/Makefile
sed -e "s@/usr/lib@$out/lib@g" -i deps/Makefile
export makeFlags="$makeFlags PREFIX=$out SHELL=${stdenv.shell} prefix=$out"
export dontPatchELF=1
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia"
patchShebangs . contrib
export PATH="$PATH:${stdenv.gcc.libc}/sbin"
# ldconfig doesn't seem to ever work on NixOS; system-wide ldconfig cache
# is probably not what we want anyway on non-NixOS
sed -e "s@/sbin/ldconfig@true@" -i src/ccall.*
ln -s "${openblas}/lib/libopenblas.so" "$out/lib/libblas.so"
'';
preBuild = ''
mkdir -p usr/lib
echo "$out"
mkdir -p "$out/lib"
(
cd "$(mktemp -d)"
for i in "${suitesparse}"/lib/lib*.a; do
ar -x $i
done
gcc *.o --shared -o "$out/lib/libsuitesparse.so"
)
cp "$out/lib/libsuitesparse.so" usr/lib
for i in umfpack cholmod amd camd colamd spqr; do
ln -s libsuitesparse.so "$out"/lib/lib$i.so;
ln -s libsuitesparse.so "usr"/lib/lib$i.so;
done
'';
dontStrip = true;
enableParallelBuilding = true;
postInstall = ''
rm -f "$out"/lib/julia/sys.{so,dylib,dll}
'';
meta = {
description = "High-level performance-oriented dynamical language for technical computing";
homepage = "http://julialang.org/";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.raskin ];
platforms = with stdenv.lib.platforms; linux;
broken = false;
};
}

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "lessc-${version}"; name = "lessc-${version}";
version = "1.4.2"; version = "1.7.5";
src = fetchgit { src = fetchgit {
url = https://github.com/less/less.js.git; url = https://github.com/less/less.js.git;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "1v3b4f1np3mxkj0irh1pk52r26nzpf4k2ax14cbn7mxx16mqjp50"; sha256 = "0r8bcad247v5fyh543a7dppmfbf49ai4my3vcizk42fsbnjs8q2x";
}; };
phases = [ "installPhase" ]; phases = [ "installPhase" ];

View File

@ -1,9 +1,9 @@
import ./jdk-linux-base.nix { import ./jdk-linux-base.nix {
productVersion = "7"; productVersion = "7";
patchVersion = "67"; patchVersion = "72";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html; downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
sha256_i686 = "0p58pag1x85r911lxhmr4blk687ivjqigflx175vp7rcmmj108xn"; sha256_i686 = "01zl82hnb9pynxw04zaq4745av42cga97cbckcwb8lh752hchxh3";
sha256_x86_64 = "0db36jg08qy8712qy6lgyifdqlqb468rrnjm3aa6937ixl9ixpal"; sha256_x86_64 = "13nyx8p27crnnybkzdaiv9l1azap7c8g4na6xasrnjvx3f7467fx";
jceName = "UnlimitedJCEPolicyJDK7.zip"; jceName = "UnlimitedJCEPolicyJDK7.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html; jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d"; sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";

View File

@ -16,19 +16,19 @@ assert stdenv.gcc.gcc != null;
*/ */
with ((import ./common.nix) {inherit stdenv; version = "0.11.0"; }); with ((import ./common.nix) {inherit stdenv; version = "0.12.0"; });
let snapshot = if stdenv.system == "i686-linux" let snapshot = if stdenv.system == "i686-linux"
then "84339ea0f796ae468ef86797ef4587274bec19ea" then "555aca74f9a268f80cab2df1147dc6406403e9e4"
else if stdenv.system == "x86_64-linux" else if stdenv.system == "x86_64-linux"
then "bd8a6bc1f28845b7f4b768f6bfa06e7fbdcfcaae" then "6a43c2f6c8ba2cbbcb9da1f7b58f748aef99f431"
else if stdenv.system == "i686-darwin" else if stdenv.system == "i686-darwin"
then "3f25b2680efbab16ad074477a19d49dcce475977" then "331bd7ef519cbb424188c546273e8c7d738f0894"
else if stdenv.system == "x86_64-darwin" else if stdenv.system == "x86_64-darwin"
then "4a8c2e1b7634d73406bac32a1a97893ec3ed818d" then "2c83a79a9febfe1d326acb17c3af76ba053c6ca9"
else abort "no-snapshot for platform ${stdenv.system}"; else abort "no-snapshot for platform ${stdenv.system}";
snapshotDate = "2014-06-21"; snapshotDate = "2014-10-04";
snapshotRev = "db9af1d"; snapshotRev = "749ff5e";
snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2"; snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
in stdenv.mkDerivation { in stdenv.mkDerivation {
@ -37,8 +37,8 @@ in stdenv.mkDerivation {
inherit meta; inherit meta;
src = fetchurl { src = fetchurl {
url = http://static.rust-lang.org/dist/rust-0.11.0.tar.gz; url = http://static.rust-lang.org/dist/rust-0.12.0.tar.gz;
sha256 = "1fhi8iiyyj5j48fpnp93sfv781z1dm0xy94h534vh4mz91jf7cyi"; sha256 = "1dv9wxh41230zknbwj34zgjnh1kgvvy6k12kbiy9bnch9nr6cgl8";
}; };
# We need rust to build rust. If we don't provide it, configure will try to download it. # We need rust to build rust. If we don't provide it, configure will try to download it.
@ -65,7 +65,8 @@ in stdenv.mkDerivation {
patches = [ ./hardcode_paths.patch ./local_stage0.patch ]; patches = [ ./hardcode_paths.patch ./local_stage0.patch ];
postPatch = '' postPatch = ''
substituteInPlace src/librustc/back/link.rs \ substituteInPlace src/librustc/back/link.rs \
--subst-var-by "ccPath" "${stdenv.gcc}/bin/cc" \ --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc"
substituteInPlace src/librustc_back/archive.rs \
--subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar" --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
''; '';

View File

@ -1,8 +1,8 @@
diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs
index 7a3e912..ced75fa 100644 index 1cc60fc..2e94b99 100644
--- a/src/librustc/back/link.rs --- a/src/librustc/back/link.rs
+++ b/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs
@@ -766,24 +766,15 @@ pub fn output_lib_filename(id: &CrateId) -> String { @@ -383,18 +383,9 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
pub fn get_cc_prog(sess: &Session) -> String { pub fn get_cc_prog(sess: &Session) -> String {
match sess.opts.cg.linker { match sess.opts.cg.linker {
@ -15,18 +15,23 @@ index 7a3e912..ced75fa 100644
- // In the future, FreeBSD will use clang as default compiler. - // In the future, FreeBSD will use clang as default compiler.
- // It would be flexible to use cc (system's default C compiler) - // It would be flexible to use cc (system's default C compiler)
- // instead of hard-coded gcc. - // instead of hard-coded gcc.
- // For win32, there is no cc command, so we add a condition to make it use gcc. - // For Windows, there is no cc command, so we add a condition to make it use gcc.
- match sess.targ_cfg.os { - match sess.targ_cfg.os {
- abi::OsWin32 => "gcc", - abi::OsWindows => "gcc",
- _ => "cc", - _ => "cc",
- }.to_string() - }.to_string()
} }
pub fn get_ar_prog(sess: &Session) -> String { pub fn remove(sess: &Session, path: &Path) {
match sess.opts.cg.ar { diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs
Some(ref ar) => (*ar).clone(), index 060dda5..fecf76b 100644
- None => "ar".to_string() --- a/src/librustc_back/archive.rs
+ None => "@arPath@".to_string() +++ b/src/librustc_back/archive.rs
} @@ -53,7 +53,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option<String>,
} paths: &[&Path]) -> ProcessOutput {
let ar = match *maybe_ar_prog {
Some(ref ar) => ar.as_slice(),
- None => "ar"
+ None => "@arPath@"
};
let mut cmd = Command::new(ar);

View File

@ -2,7 +2,7 @@ diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh
index e78f231..6b6773b 100755 index e78f231..6b6773b 100755
--- a/src/etc/local_stage0.sh --- a/src/etc/local_stage0.sh
+++ b/src/etc/local_stage0.sh +++ b/src/etc/local_stage0.sh
@@ -53,8 +53,3 @@ if [ -z $TARG_DIR ]; then @@ -53,11 +53,6 @@
fi fi
cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/ cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
@ -11,3 +11,6 @@ index e78f231..6b6773b 100755
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
# do not fail if one of the above fails, as all we need is a working rustc!
exit 0

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, makeWrapper, jre }: { stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "scala-2.11.1"; name = "scala-2.11.2";
src = fetchurl { src = fetchurl {
url = "http://www.scala-lang.org/files/archive/${name}.tgz"; url = "http://www.scala-lang.org/files/archive/${name}.tgz";
sha256 = "1vjsmqjwpxavyj29wrbvvx7799fsa65d4iha5mj63cgs8qp605gk"; sha256 = "0mnjhjiixjphr9v101v408815hkl6hlghx9h7lmmylv5z7gk3p8k";
}; };
buildInputs = [ jre makeWrapper ] ; buildInputs = [ jre makeWrapper ] ;

View File

@ -0,0 +1,33 @@
{stdenv, bash, which, autoconf, automake, fetchurl, coq}:
stdenv.mkDerivation rec {
name = "coq-flocq-${coq.coq-version}-${version}";
version = "2.4.0";
src = fetchurl {
url = https://gforge.inria.fr/frs/download.php/file/33979/flocq-2.4.0.tar.gz;
sha256 = "020x4nkkrvndkvp5zwb9vads8a2jh603khcwrm40yhqldgfd8zlv";
};
buildInputs = [ coq.ocaml coq.camlp5 bash which autoconf automake ];
propagatedBuildInputs = [ coq ];
buildPhase = ''
${bash}/bin/bash autogen.sh
${bash}/bin/bash configure --libdir=$out/lib/coq/${coq.coq-version}/user-contrib/Flocq
./remake
'';
installPhase = ''
./remake install
'';
meta = with stdenv.lib; {
homepage = http://flocq.gforge.inria.fr/;
description = "Flocq (Floats for Coq) is a floating-point formalization for the Coq system";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};
}

View File

@ -0,0 +1,66 @@
{ stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11
, libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto
, libffi, libffcall, coreutils, automake, autoconf, linuxHeaders
, groff
}:
stdenv.mkDerivation rec {
version = "2.33.2";
name = "clisp-${version}";
src = fetchurl {
url = "mirror://gnu/clisp/release/${version}/${name}.tar.gz";
sha256 = "0rqyggviixaa68n5ll092ll4a2xy4y7jraq65l0gn0hkjhjnm5zh";
};
buildInputs =
[ libsigsegv gettext ncurses readline libX11 libXau libXt pcre
zlib libXpm xproto libXext xextproto libffi libffcall
automake autoconf groff
]
++ (stdenv.lib.optional stdenv.isLinux linuxHeaders)
;
# First, replace port 9090 (rather low, can be used)
# with 64237 (much higher, IANA private area, not
# anything rememberable).
# Also remove reference to a type that disappeared from recent glibc
# (seems the correct thing to do, found no reference to any solution)
postPatch = ''
sed -i 's@/bin/pwd@${coreutils}&@' src/clisp-link.in
find . -type f | xargs sed -e 's/-lICE/-lXau &/' -i
substituteInPlace modules/bindings/glibc/linux.lisp --replace "(def-c-type __swblk_t)" ""
'';
configureFlags =
''
builddir
--with-readline --with-ffcall --with-dynamic-ffi
--with-module=readline --with-module=i18n --with-module=pcre
--with-module=syscalls --with-modules=zlib --with-module=curses
'';
preBuild = ''
echo Pre-build starting!
sed -e '/avcall.h/a\#include "config.h"' -i src/foreign.d
sed -e '/asm\/page.h/d' -i src/unix.d
cd builddir
./makemake $configureFlags > Makefile
make config.lisp
cat config.lisp
'';
NIX_CFLAGS_COMPILE="-O0 -lreadline -lncursesw";
# TODO : make mod-check fails
doCheck = false;
meta = {
description = "ANSI Common Lisp Implementation";
homepage = http://clisp.cons.org;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
branch = "2.44";
};
}

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils, curl, bash, cacert }: { stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils, curl, bash, cacert }:
let let
version = "1.0.0"; version = "1.0.2";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "elixir-${version}"; name = "elixir-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz"; url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
sha256 = "1ci8g6nh89xnn0ax9kazcs47w406nqsj1d4rf8sb1b6abfq78xsj"; sha256 = "6156ee396e85045358d11a6839e157e8fa9573b7414bddbd2c91843ed2b4b962";
}; };
buildInputs = [ erlang rebar makeWrapper ]; buildInputs = [ erlang rebar makeWrapper ];

View File

@ -29,12 +29,12 @@ rec {
/* doConfigure should be removed if not needed */ /* doConfigure should be removed if not needed */
phaseNames = ["doUnpack" "doBuildJ" "doDeploy"]; phaseNames = ["doUnpack" "doBuildJ" "doDeploy"];
bits = if a.stdenv.system == "i686-linux" then bits = if a.stdenv.is64bit then
"32"
else if a.stdenv.system == "x86_64-linux" then
"64" "64"
else if a.stdenv.isi686 then
"32"
else else
throw "Oops, unknown system: ${a.stdenv.system}"; builtins.trace "assuming ${a.stdenv.system} is 32 bits" "32";
doBuildJ = a.fullDepEntry '' doBuildJ = a.fullDepEntry ''
sed -i bin/jconfig -e 's@bits=32@bits=${bits}@g; s@readline=0@readline=1@; s@LIBREADLINE=""@LIBREADLINE=" -lreadline "@' sed -i bin/jconfig -e 's@bits=32@bits=${bits}@g; s@readline=0@readline=1@; s@LIBREADLINE=""@LIBREADLINE=" -lreadline "@'
@ -69,7 +69,7 @@ rec {
raskin raskin
]; ];
platforms = with a.lib.platforms; platforms = with a.lib.platforms;
linux; unix;
license = a.lib.licenses.gpl3Plus; license = a.lib.licenses.gpl3Plus;
}; };
passthru = { passthru = {

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, nix }: let { stdenv, fetchurl, pkgconfig, nix }: let
version = "1.0.0"; version = "1.1.0";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "nix-exec-${version}"; name = "nix-exec-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz"; url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
sha256 = "0w89ma69iil1ki68zvs1l0ii0d87in64791l3a4yzyv9d3ncl3w6"; sha256 = "0w1dq2svv1l8x18q5syraf80xpyyrcxbrab51cszc3v4m04b4saa";
}; };
buildInputs = [ pkgconfig nix ]; buildInputs = [ pkgconfig nix ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi
, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11 , sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11
, makeWrapper }: , makeWrapper, callPackage, self }:
assert zlibSupport -> zlib != null; assert zlibSupport -> zlib != null;
@ -99,6 +99,7 @@ let
inherit zlibSupport libPrefix; inherit zlibSupport libPrefix;
executable = "pypy"; executable = "pypy";
isPypy = true; isPypy = true;
buildEnv = callPackage ../../python/wrapper.nix { python = self; };
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, includeModules ? false { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, includeModules ? false
, sqlite, tcl, tk, x11, openssl, readline, db, ncurses, gdbm}: , sqlite, tcl, tk, x11, openssl, readline, db, ncurses, gdbm, self, callPackage }:
assert zlibSupport -> zlib != null; assert zlibSupport -> zlib != null;
@ -82,6 +82,7 @@ let
inherit zlibSupport; inherit zlibSupport;
isPy2 = true; isPy2 = true;
isPy26 = true; isPy26 = true;
buildEnv = callPackage ../wrapper.nix { python = self; };
libPrefix = "python${majorVersion}"; libPrefix = "python${majorVersion}";
executable = libPrefix; executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages"; sitePackages = "lib/${libPrefix}/site-packages";

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, includeModules ? false { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, includeModules ? false
, sqlite, tcl, tk, x11, openssl, readline, db, ncurses, gdbm, libX11 }: , sqlite, tcl, tk, x11, openssl, readline, db, ncurses, gdbm, libX11, self, callPackage }:
assert zlibSupport -> zlib != null; assert zlibSupport -> zlib != null;
@ -88,6 +88,7 @@ let
inherit zlibSupport; inherit zlibSupport;
isPy2 = true; isPy2 = true;
isPy27 = true; isPy27 = true;
buildEnv = callPackage ../wrapper.nix { python = self; };
libPrefix = "python${majorVersion}"; libPrefix = "python${majorVersion}";
executable = libPrefix; executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages"; sitePackages = "lib/${libPrefix}/site-packages";

View File

@ -9,6 +9,8 @@
, sqlite , sqlite
, tcl, tk , tcl, tk
, zlib , zlib
, callPackage
, self
}: }:
assert readline != null -> ncurses != null; assert readline != null -> ncurses != null;
@ -64,6 +66,7 @@ stdenv.mkDerivation {
zlibSupport = zlib != null; zlibSupport = zlib != null;
sqliteSupport = sqlite != null; sqliteSupport = sqlite != null;
dbSupport = db != null; dbSupport = db != null;
buildEnv = callPackage ../wrapper.nix { python = self; };
readlineSupport = readline != null; readlineSupport = readline != null;
opensslSupport = openssl != null; opensslSupport = openssl != null;
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null); tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);

View File

@ -10,6 +10,8 @@
, sqlite , sqlite
, tcl, tk , tcl, tk
, zlib , zlib
, callPackage
, self
}: }:
assert readline != null -> ncurses != null; assert readline != null -> ncurses != null;
@ -66,6 +68,7 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null); tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}"; libPrefix = "python${majorVersion}";
executable = "python3.3m"; executable = "python3.3m";
buildEnv = callPackage ../wrapper.nix { python = self; };
isPy3 = true; isPy3 = true;
isPy33 = true; isPy33 = true;
is_py3k = true; # deprecated is_py3k = true; # deprecated

View File

@ -10,6 +10,8 @@
, sqlite , sqlite
, tcl, tk , tcl, tk
, zlib , zlib
, callPackage
, self
}: }:
assert readline != null -> ncurses != null; assert readline != null -> ncurses != null;
@ -67,6 +69,7 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null); tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}"; libPrefix = "python${majorVersion}";
executable = "python3.4m"; executable = "python3.4m";
buildEnv = callPackage ../wrapper.nix { python = self; };
isPy3 = true; isPy3 = true;
isPy34 = true; isPy34 = true;
is_py3k = true; # deprecated is_py3k = true; # deprecated

View File

@ -1,10 +1,14 @@
{ stdenv, python, buildEnv, makeWrapper, recursivePthLoader, extraLibs ? [], postBuild ? "" { stdenv, python, buildEnv, makeWrapper
, extraLibs ? []
, postBuild ? ""
, ignoreCollisions ? false }: , ignoreCollisions ? false }:
# Create a python executable that knows about additional packages. # Create a python executable that knows about additional packages.
let
recursivePthLoader = import ../../python-modules/recursive-pth-loader/default.nix { stdenv = stdenv; python = python; };
in
(buildEnv { (buildEnv {
name = "python-${python.version}-env"; name = "${python.name}-env";
paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ]; paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ];
inherit ignoreCollisions; inherit ignoreCollisions;

View File

@ -4,12 +4,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "racket"; pname = "racket";
version = "6.0.1"; version = "6.1";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz"; url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
sha256 = "e2bc0d4d0fcdfc3327a58c931f203c07a06d4724703f9708ba2e4c8ea0f9694d"; sha256 = "fde283bf5899bb9266ce721db44631c9bac4a4864a7c3211de413fd9503178c6";
}; };
# Various racket executables do run-time searches for these. # Various racket executables do run-time searches for these.

View File

@ -3,21 +3,18 @@
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
, hunspell, libevent, libstartup_notification, libvpx , hunspell, libevent, libstartup_notification, libvpx
, cairo, gstreamer, gst_plugins_base, icu , cairo, gstreamer, gst_plugins_base, icu, firefox
, debugBuild ? false , debugBuild ? false
}: }:
assert stdenv.gcc ? libc && stdenv.gcc.libc != null; assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
let version = "31.0"; in let version = firefox.version; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xulrunner-${version}"; name = "xulrunner-${version}";
src = fetchurl { src = firefox.src;
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
sha1 = "a6c3e25ee3aeb7da42db2aaeb50a385d63532beb";
};
buildInputs = buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2
@ -58,9 +55,10 @@ stdenv.mkDerivation rec {
"--disable-updater" "--disable-updater"
"--disable-pulseaudio" "--disable-pulseaudio"
] ]
++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] ++ (if debugBuild
else [ "--disable-debug" "--enable-release" then [ "--enable-debug" "--enable-profiling"]
"--enable-optimize" "--enable-strip" ]); else [ "--disable-debug" "--enable-release" "--enable-strip"
"--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O1"}" ]);
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -31,11 +31,11 @@ assert playSupport -> SDL != null;
assert freetypeSupport -> freetype != null; assert freetypeSupport -> freetype != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ffmpeg-1.2.8"; name = "ffmpeg-1.2.9";
src = fetchurl { src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2"; url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "0n9fklr8zqkd60dc5ai161l6k4dbiac5hqy0pi1w82yamc25k6s2"; sha256 = "02wsnlix92a9k8wf3b4bad3a14v1c5iiz0fv6wlk1zn82cp93paw";
}; };
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
@ -100,7 +100,9 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = http://www.ffmpeg.org/; homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video"; description = "A complete, cross-platform solution to record, convert and stream audio and video";
license = if faacSupport then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ the-kenny ]; maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = stdenv.lib.platforms.unix;
branch = "1"; branch = "1";
}; };
} }

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, cmake, zlib, python}: {stdenv, fetchurl, cmake, zlib, python, libssh2, openssl, http-parser}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.21.1"; version = "0.21.1";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
cmakeFlags = "-DTHREADSAFE=ON"; cmakeFlags = "-DTHREADSAFE=ON";
nativeBuildInputs = [ cmake python ]; nativeBuildInputs = [ cmake python ];
buildInputs = [ zlib ]; buildInputs = [ zlib libssh2 openssl http-parser ];
meta = { meta = {
description = "the Git linkable library"; description = "the Git linkable library";

View File

@ -0,0 +1,22 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, deepseq, HUnit, QuickCheck, testFramework
, testFrameworkHunit, testFrameworkQuickcheck2
}:
cabal.mkDerivation (self: {
pname = "Decimal";
version = "0.4.2";
sha256 = "0qa2z2lq1hrvakhyhj624mg8sd05ikhb66zwpa6x9vcyji93dxf5";
buildDepends = [ deepseq ];
testDepends = [
deepseq HUnit QuickCheck testFramework testFrameworkHunit
testFrameworkQuickcheck2
];
meta = {
homepage = "https://github.com/PaulJohnson/Haskell-Decimal";
description = "Decimal numbers with variable precision";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

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