Merge remote-tracking branch 'upstream/master'

This commit is contained in:
AndersonTorres 2014-03-23 11:52:03 -03:00
commit d8648c47cf
270 changed files with 2506 additions and 885 deletions

View file

@ -1 +1,7 @@
import ./pkgs/top-level/all-packages.nix if ! builtins ? nixVersion || builtins.compareVersions "1.6" builtins.nixVersion == 1 then
abort "This version of Nixpkgs requires Nix >= 1.6, please upgrade!"
else
import ./pkgs/top-level/all-packages.nix

View file

@ -15,6 +15,7 @@
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>"; astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
aszlig = "aszlig <aszlig@redmoonstudios.org>"; aszlig = "aszlig <aszlig@redmoonstudios.org>";
bbenoist = "Baptist BENOIST <return_0@live.com>"; bbenoist = "Baptist BENOIST <return_0@live.com>";
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
bjg = "Brian Gough <bjg@gnu.org>"; bjg = "Brian Gough <bjg@gnu.org>";
bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>"; bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>"; bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";

View file

@ -497,7 +497,7 @@ sub waitForX {
retry sub { retry sub {
my ($status, $out) = $self->execute("journalctl -bu systemd-logind | grep Linked"); my ($status, $out) = $self->execute("journalctl -bu systemd-logind | grep Linked");
return 0 if $status != 0; return 0 if $status != 0;
my ($status, $out) = $self->execute("xwininfo -root > /dev/null 2>&1"); ($status, $out) = $self->execute("xwininfo -root > /dev/null 2>&1");
return 1 if $status == 0; return 1 if $status == 0;
} }
}); });

View file

@ -120,6 +120,8 @@
jenkins = 109; jenkins = 109;
systemd-journal-gateway = 110; systemd-journal-gateway = 110;
notbit = 111; notbit = 111;
ngircd = 112;
btsync = 113;
# When adding a uid, make sure it doesn't match an existing gid. # When adding a uid, make sure it doesn't match an existing gid.

View file

@ -61,6 +61,7 @@
./security/apparmor.nix ./security/apparmor.nix
./security/apparmor-suid.nix ./security/apparmor-suid.nix
./security/ca.nix ./security/ca.nix
./security/duosec.nix
./security/pam.nix ./security/pam.nix
./security/pam_usb.nix ./security/pam_usb.nix
./security/polkit.nix ./security/polkit.nix
@ -154,6 +155,7 @@
./services/networking/avahi-daemon.nix ./services/networking/avahi-daemon.nix
./services/networking/bind.nix ./services/networking/bind.nix
./services/networking/bitlbee.nix ./services/networking/bitlbee.nix
./services/networking/btsync.nix
./services/networking/connman.nix ./services/networking/connman.nix
./services/networking/cntlm.nix ./services/networking/cntlm.nix
./services/networking/chrony.nix ./services/networking/chrony.nix
@ -179,6 +181,7 @@
./services/networking/minidlna.nix ./services/networking/minidlna.nix
./services/networking/nat.nix ./services/networking/nat.nix
./services/networking/networkmanager.nix ./services/networking/networkmanager.nix
./services/networking/ngircd.nix
./services/networking/notbit.nix ./services/networking/notbit.nix
./services/networking/ntopng.nix ./services/networking/ntopng.nix
./services/networking/ntpd.nix ./services/networking/ntpd.nix

View file

@ -0,0 +1,198 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.security.duosec;
boolToStr = b: if b then "yes" else "no";
configFile = ''
[duo]
ikey=${cfg.ikey}
skey=${cfg.skey}
host=${cfg.host}
${optionalString (cfg.group != "") ("group="+cfg.group)}
failmode=${cfg.failmode}
pushinfo=${boolToStr cfg.pushinfo}
autopush=${boolToStr cfg.autopush}
motd=${boolToStr cfg.motd}
prompts=${toString cfg.prompts}
accept_env_factor=${boolToStr cfg.acceptEnvFactor}
fallback_local_ip=${boolToStr cfg.fallbackLocalIP}
'';
loginCfgFile = optional cfg.ssh.enable
{ source = pkgs.writeText "login_duo.conf" configFile;
mode = "0600";
uid = config.ids.uids.sshd;
target = "duo/login_duo.conf";
};
pamCfgFile = optional cfg.pam.enable
{ source = pkgs.writeText "pam_duo.conf" configFile;
mode = "0600";
uid = config.ids.uids.sshd;
target = "duo/pam_duo.conf";
};
in
{
options = {
security.duosec = {
ssh.enable = mkOption {
type = types.bool;
default = false;
description = "If enabled, protect SSH logins with Duo Security.";
};
pam.enable = mkOption {
type = types.bool;
default = false;
description = "If enabled, protect logins with Duo Security using PAM support.";
};
ikey = mkOption {
type = types.str;
description = "Integration key.";
};
skey = mkOption {
type = types.str;
description = "Secret key.";
};
host = mkOption {
type = types.str;
description = "Duo API hostname.";
};
group = mkOption {
type = types.str;
default = "";
description = "Use Duo authentication for users only in this group.";
};
failmode = mkOption {
type = types.str;
default = "safe";
description = ''
On service or configuration errors that prevent Duo
authentication, fail "safe" (allow access) or "secure" (deny
access). The default is "safe".
'';
};
pushinfo = mkOption {
type = types.bool;
default = false;
description = ''
Include information such as the command to be executed in
the Duo Push message.
'';
};
autopush = mkOption {
type = types.bool;
default = false;
description = ''
If <literal>true</literal>, Duo Unix will automatically send
a push login request to the users phone, falling back on a
phone call if push is unavailable. If
<literal>false</literal>, the user will be prompted to
choose an authentication method. When configured with
<literal>autopush = yes</literal>, we recommend setting
<literal>prompts = 1</literal>.
'';
};
motd = mkOption {
type = types.bool;
default = false;
description = ''
Print the contents of <literal>/etc/motd</literal> to screen
after a succesful login.
'';
};
prompts = mkOption {
type = types.int;
default = 3;
description = ''
If a user fails to authenticate with a second factor, Duo
Unix will prompt the user to authenticate again. This option
sets the maximum number of prompts that Duo Unix will
display before denying access. Must be 1, 2, or 3. Default
is 3.
For example, when <literal>prompts = 1</literal>, the user
will have to successfully authenticate on the first prompt,
whereas if <literal>prompts = 2</literal>, if the user
enters incorrect information at the initial prompt, he/she
will be prompted to authenticate again.
When configured with <literal>autopush = true</literal>, we
recommend setting <literal>prompts = 1</literal>.
'';
};
acceptEnvFactor = mkOption {
type = types.bool;
default = false;
description = ''
Look for factor selection or passcode in the
<literal>$DUO_PASSCODE</literal> environment variable before
prompting the user for input.
When $DUO_PASSCODE is non-empty, it will override
autopush. The SSH client will need SendEnv DUO_PASSCODE in
its configuration, and the SSH server will similarily need
AcceptEnv DUO_PASSCODE.
'';
};
fallbackLocalIP = mkOption {
type = types.bool;
default = false;
description = ''
Duo Unix reports the IP address of the authorizing user, for
the purposes of authorization and whitelisting. If Duo Unix
cannot detect the IP address of the client, setting
<literal>fallbackLocalIP = yes</literal> will cause Duo Unix
to send the IP address of the server it is running on.
If you are using IP whitelisting, enabling this option could
cause unauthorized logins if the local IP is listed in the
whitelist.
'';
};
};
};
config = mkIf (cfg.ssh.enable || cfg.pam.enable) {
assertions =
[ { assertion = cfg.failmode == "safe" || cfg.failmode == "secure";
message = "Invalid value for failmode (must be safe or secure).";
}
{ assertion = cfg.prompts == 1 || cfg.prompts == 2 || cfg.prompts == 3;
message = "Invalid value for prompts (must be 1, 2, or 3).";
}
{ assertion = !cfg.pam.enable;
message = "PAM support is currently not implemented.";
}
];
environment.systemPackages = [ pkgs.duo-unix ];
security.setuidPrograms = [ "login_duo" ];
environment.etc = loginCfgFile ++ pamCfgFile;
/* If PAM *and* SSH are enabled, then don't do anything special.
If PAM isn't used, set the default SSH-only options. */
services.openssh.extraConfig = mkIf (cfg.ssh.enable || cfg.pam.enable) (
if cfg.pam.enable then "UseDNS no" else ''
# Duo Security configuration
ForceCommand ${config.security.wrapperDir}/login_duo
PermitTunnel no
AllowTcpForwarding no
'');
};
}

View file

@ -154,7 +154,8 @@ in {
description = "Almir web app"; description = "Almir web app";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ pkgs.pythonPackages.almir ]; path = [ pkgs.pythonPackages.almir ];
serviceConfig.ExecStart = "${pkgs.pythonPackages.almir}/bin/pserve ${productionini}"; environment.PYTHONPATH = "${pkgs.pythonPackages.almir}/lib/${pkgs.pythonPackages.python.libPrefix}/site-packages";
serviceConfig.ExecStart = "${pkgs.pythonPackages.pyramid}/bin/pserve ${productionini}";
}; };
environment.systemPackages = [ pkgs.pythonPackages.almir ]; environment.systemPackages = [ pkgs.pythonPackages.almir ];

View file

@ -250,9 +250,6 @@ in
rm /tmp/mysql_init rm /tmp/mysql_init
fi fi
''; # */ ''; # */
serviceConfig.ExecStop =
"${mysql}/bin/mysqladmin ${optionalString (cfg.rootPassword != null) "--user=root --password=\"$(cat ${cfg.rootPassword})\""} shutdown";
}; };
}; };

View file

@ -63,7 +63,7 @@ in
services.nixosManual.showManual = mkOption { services.nixosManual.showManual = mkOption {
type = types.bool; type = types.bool;
default = true; default = false;
description = '' description = ''
Whether to show the NixOS manual on one of the virtual Whether to show the NixOS manual on one of the virtual
consoles. consoles.

View file

@ -4,17 +4,31 @@ with pkgs.lib;
let let
cfg = config.services.graphite; cfg = config.services.graphite;
writeTextOrNull = f: t: if t == null then null else pkgs.writeText f t; writeTextOrNull = f: t: if t == null then null else pkgs.writeTextDir f t;
dataDir = cfg.dataDir;
configDir = pkgs.buildEnv {
name = "graphite-config";
paths = lists.filter (el: el != null) [
(writeTextOrNull "carbon.conf" cfg.carbon.config)
(writeTextOrNull "storage-agregation.conf" cfg.carbon.storageAggregation)
(writeTextOrNull "storage-schemas.conf" cfg.carbon.storageSchemas)
(writeTextOrNull "blacklist.conf" cfg.carbon.blacklist)
(writeTextOrNull "whitelist.conf" cfg.carbon.whitelist)
(writeTextOrNull "rewrite-rules.conf" cfg.carbon.rewriteRules)
(writeTextOrNull "relay-rules.conf" cfg.carbon.relayRules)
(writeTextOrNull "aggregation-rules.conf" cfg.carbon.aggregationRules)
];
};
dataDir = "/var/db/graphite";
carbonOpts = name: with config.ids; '' carbonOpts = name: with config.ids; ''
--nodaemon --syslog --prefix=${name} --pidfile /var/run/${name}.pid \ --nodaemon --syslog --prefix=${name} --pidfile ${dataDir}/${name}.pid ${name}
--uid ${toString uids.graphite} --gid ${toString uids.graphite} ${name}
''; '';
carbonEnv = { carbonEnv = {
PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages"; PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
GRAPHITE_ROOT = dataDir; GRAPHITE_ROOT = dataDir;
GRAPHITE_CONF_DIR = "/etc/graphite/"; GRAPHITE_CONF_DIR = configDir;
GRAPHITE_STORAGE_DIR = dataDir; GRAPHITE_STORAGE_DIR = dataDir;
}; };
@ -23,6 +37,14 @@ in {
###### interface ###### interface
options.services.graphite = { options.services.graphite = {
dataDir = mkOption {
type = types.path;
default = "/var/db/graphite";
description = ''
Data directory for graphite.
'';
};
web = { web = {
enable = mkOption { enable = mkOption {
description = "Whether to enable graphite web frontend"; description = "Whether to enable graphite web frontend";
@ -38,8 +60,8 @@ in {
port = mkOption { port = mkOption {
description = "Graphite web frontend port"; description = "Graphite web frontend port";
default = "8080"; default = 8080;
type = types.str; type = types.int;
}; };
}; };
@ -152,31 +174,17 @@ in {
###### implementation ###### implementation
config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable) { config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable) {
environment.etc = lists.filter (el: el.source != null) [ systemd.services.carbonCache = {
{ source = writeTextOrNull "carbon.conf" cfg.carbon.config; enable = cfg.carbon.enableCache;
target = "graphite/carbon.conf"; }
{ source = writeTextOrNull "storage-agregation.conf" cfg.carbon.storageAggregation;
target = "graphite/storage-agregation.conf"; }
{ source = writeTextOrNull "storage-schemas.conf" cfg.carbon.storageSchemas;
target = "graphite/storage-schemas.conf"; }
{ source = writeTextOrNull "blacklist.conf" cfg.carbon.blacklist;
target = "graphite/blacklist.conf"; }
{ source = writeTextOrNull "whitelist.conf" cfg.carbon.whitelist;
target = "graphite/whitelist.conf"; }
{ source = writeTextOrNull "rewrite-rules.conf" cfg.carbon.rewriteRules;
target = "graphite/rewrite-rules.conf"; }
{ source = writeTextOrNull "relay-rules.conf" cfg.carbon.relayRules;
target = "graphite/relay-rules.conf"; }
{ source = writeTextOrNull "aggregation-rules.conf" cfg.carbon.aggregationRules;
target = "graphite/aggregation-rules.conf"; }
];
systemd.services.carbonCache = mkIf cfg.carbon.enableCache {
description = "Graphite Data Storage Backend"; description = "Graphite Data Storage Backend";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}"; serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon pkgs.pythonPackages.carbon
cfg.carbon.config cfg.carbon.config
@ -185,33 +193,45 @@ in {
cfg.carbon.rewriteRules cfg.carbon.rewriteRules
]; ];
preStart = '' preStart = ''
mkdir -p ${dataDir}/whisper mkdir -m 0700 -p ${cfg.dataDir}/whisper
if [ "$(id -u)" = 0 ]; then chown -R graphite:graphite ${cfg.dataDir}; fi
''; '';
}; };
systemd.services.carbonAggregator = mkIf cfg.carbon.enableAggregator { systemd.services.carbonAggregator = {
enable = cfg.carbon.enableAggregator;
description = "Carbon Data Aggregator"; description = "Carbon Data Aggregator";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}"; serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
]; ];
}; };
systemd.services.carbonRelay = mkIf cfg.carbon.enableRelay { systemd.services.carbonRelay = {
enable = cfg.carbon.enableRelay;
description = "Carbon Data Relay"; description = "Carbon Data Relay";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}"; serviceConfig = {
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules
]; ];
}; };
systemd.services.graphiteWeb = mkIf cfg.web.enable { systemd.services.graphiteWeb = {
enable = cfg.web.enable;
description = "Graphite Web Interface"; description = "Graphite Web Interface";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
@ -224,14 +244,15 @@ in {
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''
${pkgs.python27Packages.waitress}/bin/waitress-serve \ ${pkgs.python27Packages.waitress}/bin/waitress-serve \
--host=${cfg.web.host} --port=${cfg.web.port} \ --host=${cfg.web.host} --port=${toString cfg.web.port} \
--call django.core.handlers.wsgi:WSGIHandler''; --call django.core.handlers.wsgi:WSGIHandler'';
User = "graphite"; User = "graphite";
Group = "graphite"; Group = "graphite";
}; };
preStart = '' preStart = ''
if ! test -e ${dataDir}/db-created; then if ! test -e ${dataDir}/db-created; then
mkdir -p ${dataDir}/{whisper/,log/webapp/} mkdir -m 0700 -p ${dataDir}/{whisper/,log/webapp/}
if [ "$(id -u)" = 0 ]; then chown -R graphite:graphite ${cfg.dataDir}; fi
# populate database # populate database
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput ${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
@ -259,7 +280,6 @@ in {
uid = config.ids.uids.graphite; uid = config.ids.uids.graphite;
description = "Graphite daemon user"; description = "Graphite daemon user";
home = dataDir; home = dataDir;
createHome = true;
}; };
users.extraGroups.graphite.gid = config.ids.gids.graphite; users.extraGroups.graphite.gid = config.ids.gids.graphite;
}; };

View file

@ -64,13 +64,13 @@ in
graphiteHost = mkOption { graphiteHost = mkOption {
description = "Hostname or IP of Graphite server"; description = "Hostname or IP of Graphite server";
default = "127.0.0.1"; default = config.services.graphite.web.host;
type = types.str; type = types.str;
}; };
graphitePort = mkOption { graphitePort = mkOption {
description = "Port of Graphite server"; description = "Port of Graphite server";
default = 2003; default = config.services.graphite.web.port;
type = types.uniq types.int; type = types.uniq types.int;
}; };

View file

@ -46,6 +46,16 @@ in
description = "Cache directory."; description = "Cache directory.";
}; };
crypt = mkOption {
default = false;
description = "Whether to enable (weak) protocol encryption.";
};
sparse = mkOption {
default = false;
description = "Minimal cell list in /afs.";
};
}; };
}; };
@ -70,18 +80,23 @@ in
startOn = "started network-interfaces"; startOn = "started network-interfaces";
stopOn = "stopping network-interfaces"; stopOn = "stopping network-interfaces";
preStart = '' preStart = ''
mkdir -m 0755 /afs || true mkdir -p -m 0755 /afs
mkdir -m 0755 -p ${cfg.cacheDirectory} || true mkdir -m 0700 -p ${cfg.cacheDirectory}
${pkgs.module_init_tools}/sbin/insmod ${openafsPkgs}/lib/openafs/libafs-*.ko || true ${pkgs.module_init_tools}/sbin/insmod ${openafsPkgs}/lib/openafs/libafs-*.ko || true
${openafsPkgs}/sbin/afsd -confdir ${afsConfig} -cachedir ${cfg.cacheDirectory} -dynroot -fakestat ${openafsPkgs}/sbin/afsd -confdir ${afsConfig} -cachedir ${cfg.cacheDirectory} ${if cfg.sparse then "-dynroot-sparse" else "-dynroot"} -fakestat -afsdb
''; ${openafsPkgs}/bin/fs setcrypt ${if cfg.crypt then "on" else "off"}
'';
postStop = '' # Doing this in preStop, because after these commands AFS is basically
umount /afs # stopped, so systemd has nothing to do, just noticing it. If done in
# postStop, then we get a hang + kernel oops, because AFS can't be
# stopped simply by sending signals to processes.
preStop = ''
${pkgs.utillinux}/bin/umount /afs
${openafsPkgs}/sbin/afsd -shutdown ${openafsPkgs}/sbin/afsd -shutdown
rmmod libafs ${pkgs.module_init_tools}/sbin/rmmod libafs
''; '';
}; };

View file

@ -0,0 +1,280 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.btsync;
listenAddr = cfg.httpListenAddr + ":" + (toString cfg.httpListenPort);
boolStr = x: if x then "true" else "false";
optionalEmptyStr = b: v: optionalString (b != "") v;
webUIConfig = optionalString cfg.enableWebUI
''
"webui":
{
${optionalEmptyStr cfg.httpLogin "\"login\": \"${cfg.httpLogin}\","}
${optionalEmptyStr cfg.httpPass "\"password\": \"${cfg.httpPass}\","}
${optionalEmptyStr cfg.apiKey "\"api_key\": \"${cfg.apiKey}\","}
"listen": "${listenAddr}"
}
'';
knownHosts = e:
optionalString (e ? "knownHosts")
(concatStringsSep "," (map (v: "\"${v}\"") e."knownHosts"));
sharedFoldersRecord = with pkgs.lib;
concatStringsSep "," (map (entry:
let helper = attr: v:
if (entry ? attr) then boolStr entry.attr else boolStr v;
in
''
{
"secret": "${entry.secret}",
"dir": "${entry.directory}",
"use_relay_server": ${helper "useRelayServer" true},
"use_tracker": ${helper "useTracker" true},
"use_dht": ${helper "useDHT" false},
"search_lan": ${helper "searchLAN" true},
"use_sync_trash": ${helper "useSyncTrash" true},
"known_hosts": [${knownHosts entry}]
}
'') cfg.sharedFolders);
sharedFoldersConfig = optionalString (cfg.sharedFolders != [])
''
"shared_folders":
[
${sharedFoldersRecord}
]
'';
configFile = pkgs.writeText "btsync.config"
''
{
"device_name": "${cfg.deviceName}",
"storage_path": "/var/lib/btsync",
"listening_port": ${toString cfg.listeningPort},
"use_gui": false,
"check_for_updates": ${boolStr cfg.checkForUpdates},
"use_upnp": ${boolStr cfg.useUpnp},
"download_limit": ${toString cfg.downloadLimit},
"upload_limit": ${toString cfg.uploadLimit},
"lan_encrypt_data": ${boolStr cfg.encryptLAN},
${webUIConfig}
${sharedFoldersConfig}
}
'';
in
{
options = {
services.btsync = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
If enabled, start the Bittorrent Sync daemon. Once enabled,
you can interact with the service through the Web UI, or
configure it in your NixOS configuration. Enabling the
<literal>btsync</literal> service also installs a
multi-instance systemd unit which can be used to start
user-specific copies of the daemon. Once installed, you can
use <literal>systemctl start btsync@user</literal> to start
the daemon only for user <literal>user</literal>, using the
configuration file located at
<literal>$HOME/.config/btsync.conf</literal>
'';
};
deviceName = mkOption {
type = types.str;
example = "Voltron";
description = ''
Name of the Bittorrent Sync device.
'';
};
listeningPort = mkOption {
type = types.int;
default = 0;
example = 44444;
description = ''
Listening port. Defaults to 0 which randomizes the port.
'';
};
checkForUpdates = mkOption {
type = types.bool;
default = true;
description = ''
Determines whether to check for updates and alert the user
about them in the UI.
'';
};
useUpnp = mkOption {
type = types.bool;
default = true;
description = ''
Use Universal Plug-n-Play (UPnP)
'';
};
downloadLimit = mkOption {
type = types.int;
default = 0;
example = 1024;
description = ''
Download speed limit. 0 is unlimited (default).
'';
};
uploadLimit = mkOption {
type = types.int;
default = 0;
example = 1024;
description = ''
Upload speed limit. 0 is unlimited (default).
'';
};
httpListenAddr = mkOption {
type = types.str;
default = "0.0.0.0";
example = "1.2.3.4";
description = ''
HTTP address to bind to.
'';
};
httpListenPort = mkOption {
type = types.int;
default = 9000;
description = ''
HTTP port to bind on.
'';
};
httpLogin = mkOption {
type = types.str;
example = "allyourbase";
description = ''
HTTP web login username.
'';
};
httpPass = mkOption {
type = types.str;
example = "arebelongtous";
description = ''
HTTP web login password.
'';
};
encryptLAN = mkOption {
type = types.bool;
default = true;
description = "Encrypt LAN data.";
};
enableWebUI = mkOption {
type = types.bool;
default = false;
description = ''
Enable Web UI for administration. Bound to the specified
<literal>httpListenAddress</literal> and
<literal>httpListenPort</literal>.
'';
};
apiKey = mkOption {
type = types.str;
default = "";
description = "API key, which enables the developer API.";
};
sharedFolders = mkOption {
default = [];
example =
[ { secret = "AHMYFPCQAHBM7LQPFXQ7WV6Y42IGUXJ5Y";
directory = "/home/user/sync_test";
useRelayServer = true;
useTracker = true;
useDHT = false;
searchLAN = true;
useSyncTrash = true;
knownHosts =
[ "192.168.1.2:4444"
"192.168.1.3:4444"
];
}
];
description = ''
Shared folder list. If enabled, web UI must be
disabled. Secrets can be generated using <literal>btsync
--generate-secret</literal>. Note that this secret will be
put inside the Nix store, so it is realistically not very
secret.
'';
};
};
};
config = mkIf cfg.enable {
assertions =
[ { assertion = cfg.deviceName != "";
message = "Device name cannot be empty.";
}
{ assertion = cfg.enableWebUI -> cfg.sharedFolders == [];
message = "If using shared folders, the web UI cannot be enabled.";
}
{ assertion = cfg.apiKey != "" -> cfg.enableWebUI;
message = "If you're using an API key, you must enable the web server.";
}
# TODO FIXME: the README says not specifying the login/pass means it
# should disable authentication, but apparently it doesn't?
{ assertion = cfg.enableWebUI -> cfg.httpLogin != "" && cfg.httpPass != "";
message = "If using the web UI, you must configure a login/password.";
}
# TODO FIXME: assert the existence of sharedFolder directories?
];
users.extraUsers.btsync = {
description = "Bittorrent Sync Service user";
home = "/var/lib/btsync";
createHome = true;
uid = config.ids.uids.btsync;
};
systemd.services.btsync = with pkgs; {
description = "Bittorrent Sync Service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Restart = "on-abort";
User = "btsync";
ExecStart =
"${bittorrentSync}/bin/btsync --nodaemon --config ${configFile}";
};
};
systemd.services."btsync@" = with pkgs; {
description = "Bittorrent Sync Service for %i";
after = [ "network.target" ];
serviceConfig = {
Restart = "on-abort";
User = "%i";
ExecStart =
"${bittorrentSync}/bin/btsync --nodaemon --config %h/.config/btsync.conf";
};
};
environment.systemPackages = [ pkgs.bittorrentSync ];
};
}

View file

@ -0,0 +1,58 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.ngircd;
configFile = pkgs.stdenv.mkDerivation {
name = "ngircd.conf";
text = cfg.config;
preferLocalBuild = true;
buildCommand = ''
echo -n "$text" > $out
${cfg.package}/sbin/ngircd --config $out --configtest
'';
};
in {
options = {
services.ngircd = {
enable = mkEnableOption "the ngircd IRC server";
config = mkOption {
description = "The ngircd configuration (see ngircd.conf(5)).";
type = types.lines;
};
package = mkOption {
description = "The ngircd package.";
type = types.package;
default = pkgs.ngircd;
};
};
};
config = mkIf cfg.enable {
#!!! TODO: Use ExecReload (see https://github.com/NixOS/nixpkgs/issues/1988)
systemd.services.ngircd = {
description = "The ngircd IRC server";
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${cfg.package}/sbin/ngircd --config ${configFile} --nodaemon";
serviceConfig.User = "ngircd";
};
users.extraUsers.ngircd = {
uid = config.ids.uids.ngircd;
description = "ngircd user.";
};
};
}

View file

@ -5,16 +5,22 @@ with pkgs.lib;
let let
cfg = config.services.elasticsearch; cfg = config.services.elasticsearch;
es_home = "/var/lib/elasticsearch"; esConfig = ''
configFile = pkgs.writeText "elasticsearch.yml" ''
network.host: ${cfg.host} network.host: ${cfg.host}
network.port: ${cfg.port} network.port: ${toString cfg.port}
network.tcp.port: ${cfg.tcp_port} network.tcp.port: ${toString cfg.tcp_port}
cluster.name: ${cfg.cluster_name} cluster.name: ${cfg.cluster_name}
${cfg.extraConf} ${cfg.extraConf}
''; '';
configDir = pkgs.buildEnv {
name = "elasticsearch-config";
paths = [
(pkgs.writeTextDir "elasticsearch.yml" esConfig)
(pkgs.writeTextDir "logging.yml" cfg.logging)
];
};
in { in {
###### interface ###### interface
@ -34,14 +40,14 @@ in {
port = mkOption { port = mkOption {
description = "Elasticsearch port to listen for HTTP traffic"; description = "Elasticsearch port to listen for HTTP traffic";
default = "9200"; default = 9200;
type = types.str; type = types.int;
}; };
tcp_port = mkOption { tcp_port = mkOption {
description = "Elasticsearch port for the node to node communication"; description = "Elasticsearch port for the node to node communication";
default = "9300"; default = 9300;
type = types.str; type = types.int;
}; };
cluster_name = mkOption { cluster_name = mkOption {
@ -79,27 +85,32 @@ in {
''; '';
type = types.str; type = types.str;
}; };
dataDir = mkOption {
type = types.path;
default = "/var/lib/elasticsearch";
description = ''
Data directory for elasticsearch.
'';
};
}; };
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.etc = [
{ source = configFile;
target = "elasticsearch/elasticsearch.yml"; }
{ source = pkgs.writeText "logging.yml" cfg.logging;
target = "elasticsearch/logging.yml"; }
];
systemd.services.elasticsearch = { systemd.services.elasticsearch = {
description = "Elasticsearch daemon"; description = "Elasticsearch daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { ES_HOME = es_home; }; environment = { ES_HOME = cfg.dataDir; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=/etc/elasticsearch"; ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=${configDir}";
User = "elasticsearch"; User = "elasticsearch";
}; };
preStart = ''
mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
'';
}; };
environment.systemPackages = [ pkgs.elasticsearch ]; environment.systemPackages = [ pkgs.elasticsearch ];
@ -108,8 +119,7 @@ in {
name = "elasticsearch"; name = "elasticsearch";
uid = config.ids.uids.elasticsearch; uid = config.ids.uids.elasticsearch;
description = "Elasticsearch daemon user"; description = "Elasticsearch daemon user";
home = es_home; home = cfg.dataDir;
createHome = true;
}; };
}; };
} }

View file

@ -6,6 +6,26 @@ let
cfg = config.services.solr; cfg = config.services.solr;
# Assemble all jars needed for solr
solrJars = pkgs.stdenv.mkDerivation {
name = "solr-jars";
src = pkgs.fetchurl {
url = http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.36/bin/apache-tomcat-5.5.36.tar.gz;
sha256 = "01mzvh53wrs1p2ym765jwd00gl6kn8f9k3nhdrnhdqr8dhimfb2p";
};
buildPhases = [ "unpackPhase" "installPhase" ];
installPhase = ''
mkdir -p $out/lib
cp common/lib/*.jar $out/lib/
ln -s ${pkgs.ant}/lib/ant/lib/ant.jar $out/lib/
ln -s ${cfg.solrPackage}/lib/ext/* $out/lib/
ln -s ${pkgs.openjdk}/lib/openjdk/lib/tools.jar $out/lib/
'';
};
in { in {
options = { options = {
@ -101,7 +121,8 @@ in {
inherit (cfg) user group javaPackage; inherit (cfg) user group javaPackage;
warFile = "${cfg.solrPackage}/lib/solr.war"; warFile = "${cfg.solrPackage}/lib/solr.war";
extraOptions = [ extraOptions = [
"--commonLibFolder=${cfg.solrPackage}/lib/ext" "--commonLibFolder=${solrJars}/lib"
"--useJasper"
] ++ cfg.extraWinstoneOptions; ] ++ cfg.extraWinstoneOptions;
extraJavaOptions = [ extraJavaOptions = [
"-Dsolr.solr.home=${cfg.solrHome}" "-Dsolr.solr.home=${cfg.solrHome}"

View file

@ -9,6 +9,11 @@ let
user ${cfg.user} ${cfg.group}; user ${cfg.user} ${cfg.group};
daemon off; daemon off;
${cfg.config} ${cfg.config}
${optionalString (cfg.httpConfig != "") ''
http {
${cfg.httpConfig}
}
''}
${cfg.appendConfig} ${cfg.appendConfig}
''; '';
in in
@ -51,6 +56,12 @@ in
''; '';
}; };
httpConfig = mkOption {
type = types.lines;
default = "";
description = "Configuration lines to be appended inside of the http {} block.";
};
stateDir = mkOption { stateDir = mkOption {
default = "/var/spool/nginx"; default = "/var/spool/nginx";
description = " description = "

View file

@ -43,7 +43,7 @@ in {
''; '';
}; };
environment.variables.GIO_EXTRA_MODULES = "${gnome3.dconf}/lib/gio/modules"; environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" ];
environment.systemPackages = environment.systemPackages =
[ gnome3.evince [ gnome3.evince
gnome3.eog gnome3.eog

View file

@ -81,7 +81,7 @@ in
environment.pathsToLink = environment.pathsToLink =
[ "/share/xfce4" "/share/themes" "/share/mime" "/share/desktop-directories" "/share/gtksourceview-2.0" ]; [ "/share/xfce4" "/share/themes" "/share/mime" "/share/desktop-directories" "/share/gtksourceview-2.0" ];
environment.variables.GIO_EXTRA_MODULES = "${pkgs.xfce.gvfs}/lib/gio/modules"; environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.xfce.gvfs}/lib/gio/modules" ];
# Enable helpful DBus services. # Enable helpful DBus services.
services.udisks2.enable = true; services.udisks2.enable = true;

View file

@ -203,6 +203,9 @@ in
# To wait for SCSI devices to appear. # To wait for SCSI devices to appear.
"scsi_wait_scan" "scsi_wait_scan"
# Needed by the stage 2 init script.
"rtc_cmos"
]; ];
boot.initrd.kernelModules = boot.initrd.kernelModules =

View file

@ -131,13 +131,12 @@ if ! mountpoint -q /run; then
mount -t tmpfs -o "mode=0755,size=@runSize@" none /run mount -t tmpfs -o "mode=0755,size=@runSize@" none /run
fi fi
# Create a ramfs on /run/keys to hold secrets that shouldn't # Create a ramfs on /run/keys to hold secrets that shouldn't be
# be written to disk (generally used for nixops, harmless # written to disk (generally used for NixOps, harmless elsewhere).
# elsehwere)
if ! mountpoint -q /run/keys; then if ! mountpoint -q /run/keys; then
rm -rf /run/keys rm -rf /run/keys
mkdir -m 0750 /run/keys mkdir -m 0750 /run/keys
chown root:keys /run/keys chown 0:96 /run/keys
mount -t ramfs none /run/keys mount -t ramfs none /run/keys
fi fi
@ -162,6 +161,12 @@ echo "running activation script..."
$systemConfig/activate $systemConfig/activate
# Restore the system time from the hardware clock. We do this after
# running the activation script to be sure that /etc/localtime points
# at the current time zone.
hwclock --hctosys
# Record the boot configuration. # Record the boot configuration.
ln -sfn "$systemConfig" /run/booted-system ln -sfn "$systemConfig" /run/booted-system

View file

@ -19,6 +19,8 @@ let
sources = map (x: x.source) etc'; sources = map (x: x.source) etc';
targets = map (x: x.target) etc'; targets = map (x: x.target) etc';
modes = map (x: x.mode) etc'; modes = map (x: x.mode) etc';
uids = map (x: x.uid) etc';
gids = map (x: x.gid) etc';
}; };
in in
@ -87,6 +89,24 @@ in
''; '';
}; };
uid = mkOption {
default = 0;
type = types.int;
description = ''
UID of created file. Only takes affect when the file is
copied (that is, the mode is not 'symlink').
'';
};
gid = mkOption {
default = 0;
type = types.int;
description = ''
GID of created file. Only takes affect when the file is
copied (that is, the mode is not 'symlink').
'';
};
}; };
config = { config = {

View file

@ -6,6 +6,8 @@ set -f
sources_=($sources) sources_=($sources)
targets_=($targets) targets_=($targets)
modes_=($modes) modes_=($modes)
uids_=($uids)
gids_=($gids)
set +f set +f
for ((i = 0; i < ${#targets_[@]}; i++)); do for ((i = 0; i < ${#targets_[@]}; i++)); do
@ -35,6 +37,8 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
if test "${modes_[$i]}" != symlink; then if test "${modes_[$i]}" != symlink; then
echo "${modes_[$i]}" > $out/etc/$target.mode echo "${modes_[$i]}" > $out/etc/$target.mode
echo "${uids_[$i]}" > $out/etc/$target.uid
echo "${gids_[$i]}" > $out/etc/$target.gid
fi fi
fi fi

View file

@ -60,7 +60,15 @@ sub link {
if ($mode eq "direct-symlink") { if ($mode eq "direct-symlink") {
atomicSymlink readlink("$static/$fn"), $target or warn; atomicSymlink readlink("$static/$fn"), $target or warn;
} else { } else {
open UID, "<$_.uid";
my $uid = <UID>; chomp $uid;
close UID;
open GID, "<$_.gid";
my $gid = <GID>; chomp $gid;
close GID;
copy "$static/$fn", "$target.tmp" or warn; copy "$static/$fn", "$target.tmp" or warn;
chown int($uid), int($gid), "$target.tmp" or warn;
chmod oct($mode), "$target.tmp" or warn; chmod oct($mode), "$target.tmp" or warn;
rename "$target.tmp", $target or warn; rename "$target.tmp", $target or warn;
} }

View file

@ -1,7 +1,9 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
with pkgs.lib; with pkgs.lib;
let
diskSize = "100G";
in
{ {
imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ]; imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ];
@ -12,7 +14,7 @@ with pkgs.lib;
'' ''
mkdir $out mkdir $out
diskImage=$out/$diskImageBase diskImage=$out/$diskImageBase
truncate $diskImage --size 10G truncate $diskImage --size ${diskSize}
mv closure xchg/ mv closure xchg/
''; '';
@ -20,8 +22,9 @@ with pkgs.lib;
'' ''
PATH=$PATH:${pkgs.gnutar}/bin:${pkgs.gzip}/bin PATH=$PATH:${pkgs.gnutar}/bin:${pkgs.gzip}/bin
pushd $out pushd $out
tar -Szcf $diskImageBase.tar.gz $diskImageBase mv $diskImageBase disk.raw
rm $out/$diskImageBase tar -Szcf $diskImageBase.tar.gz disk.raw
rm $out/disk.raw
popd popd
''; '';
diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw"; diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
@ -32,7 +35,7 @@ with pkgs.lib;
'' ''
# Create partition table # Create partition table
${pkgs.parted}/sbin/parted /dev/vda mklabel msdos ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos
${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 10G ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize}
${pkgs.parted}/sbin/parted /dev/vda print ${pkgs.parted}/sbin/parted /dev/vda print
. /sys/class/block/vda1/uevent . /sys/class/block/vda1/uevent
mknod /dev/vda1 b $MAJOR $MINOR mknod /dev/vda1 b $MAJOR $MINOR

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system"; description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -1,62 +0,0 @@
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jackaudio
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
, perl, pkgconfig, python, serd, sord, sratom, suil }:
let
tag = "3.5.357";
in
stdenv.mkDerivation rec {
name = "ardour-${tag}";
src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git;
rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
};
buildInputs =
[ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
glibmm gtk gtkmm jackaudio libgnomecanvas libgnomecanvasmm liblo
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
makeWrapper pango perl pkgconfig python serd sord sratom suil
];
patchPhase = ''
# The funny revision number is from `git describe rev`
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-gce4d125\"; }\n' > libs/ardour/revision.cc
# Note the different version number
sed -i '33i rev = \"3.5-357-gce4d125\"' wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
'';
configurePhase = "python waf configure --optimize --prefix=$out";
buildPhase = "python waf";
# For the custom ardour clearlooks gtk-engine to work, it must be
# moved to a directory called "engines" and added to GTK_PATH
installPhase = ''
python waf install
mkdir -pv $out/gtk2/engines
cp build/libs/clearlooks-newer/libclearlooks.so $out/gtk2/engines/
wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2
'';
meta = with stdenv.lib; {
description = "Multi-track hard disk recording software";
longDescription = ''
Also read "The importance of Paying Something" on their homepage, please!
'';
homepage = http://ardour.org/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -1,51 +1,62 @@
{ stdenv, fetchurl, scons, boost, pkgconfig, fftw, librdf_raptor2 { stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
, librdf_rasqal, jackaudio, flac, libsamplerate, alsaLib, libxml2 , fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jackaudio
, lilv, lv2, serd, sord, sratom, suil # these are probably optional , libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
, libxslt, libsndfile, libsigcxx, libusb, cairomm, glib, pango , librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
, gtk, glibmm, gtkmm, libgnomecanvas, libgnomecanvasmm, liblo, aubio , libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
, fftwSinglePrec, libmad, automake, autoconf, libtool, liblrdf, curl }: , perl, pkgconfig, python, serd, sord, sratom, suil }:
let
tag = "3.5.357";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ardour-${version}"; name = "ardour-${tag}";
version = "2.8.16";
src = fetchurl { src = fetchgit {
url = "mirror://gentoo/distfiles/${name}.tar.bz2"; url = git://git.ardour.org/ardour/ardour.git;
sha256 = "0h2y0x4yznalllja53anjil2gmgcb26f39zshc4gl1d1kc8k5vip"; rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
}; };
postPatch = '' buildInputs =
#sed -e "s#/usr/bin/which#type -P#" -i libs/glibmm2/autogen.sh [ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
echo '#include "ardour/svn_revision.h"' > libs/ardour/svn_revision.cc glibmm gtk gtkmm jackaudio libgnomecanvas libgnomecanvasmm liblo
echo -e 'namespace ARDOUR {\n extern const char* svn_revision = "2.8.12";\n }\n' >> libs/ardour/svn_revision.cc libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
makeWrapper pango perl pkgconfig python serd sord sratom suil
];
patchPhase = ''
# The funny revision number is from `git describe rev`
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-gce4d125\"; }\n' > libs/ardour/revision.cc
# Note the different version number
sed -i '33i rev = \"3.5-357-gce4d125\"' wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
''; '';
buildInputs = [ configurePhase = "python waf configure --optimize --prefix=$out";
scons boost pkgconfig fftw librdf_raptor2 librdf_rasqal jackaudio
flac libsamplerate alsaLib libxml2 libxslt libsndfile libsigcxx
#lilv lv2 serd sord sratom suil
libusb cairomm glib pango gtk glibmm gtkmm libgnomecanvas libgnomecanvasmm liblrdf
liblo aubio fftwSinglePrec libmad autoconf automake libtool curl
];
buildPhase = '' buildPhase = "python waf";
mkdir -p $out
export CXX=g++ # For the custom ardour clearlooks gtk-engine to work, it must be
scons PREFIX=$out SYSLIBS=1 install # moved to a directory called "engines" and added to GTK_PATH
installPhase = ''
python waf install
mkdir -pv $out/gtk2/engines
cp build/libs/clearlooks-newer/libclearlooks.so $out/gtk2/engines/
wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2
''; '';
installPhase = ":"; meta = with stdenv.lib; {
meta = {
description = "Multi-track hard disk recording software"; description = "Multi-track hard disk recording software";
longDescription = '' longDescription = ''
Broken: use ardour3-svn instead
Also read "The importance of Paying Something" on their homepage, please! Also read "The importance of Paying Something" on their homepage, please!
''; '';
homepage = http://ardour.org/; homepage = http://ardour.org/;
branch = "2"; license = licenses.gpl2;
license = "GPLv2"; platforms = platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ]; maintainers = [ maintainers.goibhniu ];
platforms = stdenv.lib.platforms.linux;
}; };
} }

View file

@ -0,0 +1,39 @@
{ stdenv, fetchurl, pkgconfig
, libsndfile, pulseaudio
}:
let
version = "5.8.2";
in stdenv.mkDerivation rec {
name = "ekho-${version}";
meta = with stdenv.lib; {
description = "Chinese text-to-speech software";
homepage = "http://www.eguidedog.net/ekho.php";
longDescription = ''
Ekho () is a free, open source and multilingual text-to-speech (TTS)
software. It supports Cantonese (Chinese dialect spoken in Hong Kong and
part of Guangdong province), Mandarin (standard Chinese), Zhaoan Hakka
(a dialect in Taiwan), Tibetan, Ngangien (an ancient Chinese before
Yuan Dynasty) and Korean (in trial).
'';
license = licenses.gpl2Plus;
platforms = platforms.linux;
hydraPlatforms = [];
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "mirror://sourceforge/e-guidedog/Ekho/${version}/${name}.tar.xz";
sha256 = "0ym6lpcpsvwvsiwlzkl1509a2hljwcw7synngrmqjq1n49ww00nj";
};
preConfigure = with stdenv.lib; ''
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE ${optionalString stdenv.is64bit "-D_x86_64"}"
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DEKHO_DATA_PATH=\"$out/share/ekho-data\""
'';
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libsndfile pulseaudio ];
}

View file

@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
description = "Gigasampler file access library"; description = "Gigasampler file access library";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
homepage = http://drobilla.net/software/jalv; homepage = http://drobilla.net/software/jalv;
license = licenses.isc; license = licenses.isc;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "LASH Audio Session Handler"; description = "A Linux Audio Session Handler";
longDescription = '' longDescription = ''
Session management system for GNU/Linux audio applications. Session management system for GNU/Linux audio applications.
''; '';

View file

@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
description = "A simple tool which maps midi notes to simulated keystrokes"; description = "A simple tool which maps midi notes to simulated keystrokes";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
description = "graphical frontend to LinuxSampler"; description = "graphical frontend to LinuxSampler";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -1,28 +1,20 @@
{ stdenv, fetchurl, kdevplatform, cmake, pkgconfig, automoc4, shared_mime_info, { stdenv, fetchurl, kdevplatform, cmake, pkgconfig, automoc4, shared_mime_info,
kdebase_workspace, gettext, perl, okteta }: kdebase_workspace, gettext, perl, okteta, qjson }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
version = "4.3.1"; version = "4.6.0";
pname = "kdevelop"; pname = "kdevelop";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2"; url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
sha256 = "0015hv39rqhyq1w6jw65lx7ls4l5pc3a2asvd5zsd65831vrfxxs"; sha256 = "1ee9e7b8c46f575dd29d920cfd6284130f2e738a2e1f52dfd97b075fab2e4c73";
}; };
buildInputs = [ kdevplatform kdebase_workspace okteta ]; buildInputs = [ kdevplatform kdebase_workspace okteta qjson ];
nativeBuildInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ]; nativeBuildInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ];
patches =
[ ( fetchurl {
url = https://git.reviewboard.kde.org/r/105211/diff/raw/;
name = "okteta-0.9.patch"; # fixes build with KDE-4.9.x
sha256 = "1mvqhw7jr1vi66l3jgam3slyfafcvwy4g3iapfi69dpfnzhmcxl0";
} )
];
NIX_CFLAGS_COMPILE = "-I${okteta}/include/KDE"; NIX_CFLAGS_COMPILE = "-I${okteta}/include/KDE";
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -2,10 +2,12 @@
let let
vimrcfile = writeText "vimrc" (if vimrc == null then "" else vimrc); vimrcfile = writeText "vimrc" vimrc;
p = builtins.parseDrvName vim.name;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "vimwrapper-${vim.version}"; name = "${p.name}-with-vimrc-${p.version}";
buildInputs = [ makeWrapper vim vimrcfile ]; buildInputs = [ makeWrapper vim vimrcfile ];

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "yi-contrib"; pname = "yi-contrib";
version = "0.7.1"; version = "0.7.2";
sha256 = "0915ikck01kc5npbvywd9r7azylqrhfymzc72rf4iaghz4w939li"; sha256 = "074cq1y0pp66r2fqqszd8w2pws8jbfwq9g39w3rsgjnw83058fr8";
buildDepends = [ dataAccessor filepath mtl split yi ]; buildDepends = [ dataAccessor filepath mtl split yi ];
meta = { meta = {
homepage = "http://haskell.org/haskellwiki/Yi"; homepage = "http://haskell.org/haskellwiki/Yi";

View file

@ -9,8 +9,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "yi"; pname = "yi";
version = "0.7.1"; version = "0.7.2";
sha256 = "111xg7qpjhsqf6pfr136wh8km3lrgpzghd9h5rlypafr61w59vly"; sha256 = "0g0hvr4zqcrmdl6mbdmrfxd5m51fhkhslvl9piwq83g2wirxqbvm";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View file

@ -0,0 +1,56 @@
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite, webkit
, pkgconfig, gnome3, gst_all_1, which, udev, libraw, glib, json_glib, gettext, desktop_file_utils
, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils }:
# for dependencies see http://www.yorba.org/projects/shotwell/install/
let
rest = stdenv.mkDerivation rec {
name = "rest-0.7.12";
src = fetchurl {
url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz";
sha256 = "0fmg7fq5fx0jg3ryk71kwdkspsvj42acxy9imk7vznkqj29a9zqn";
};
configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt";
buildInputs = [ pkgconfig glib libsoup ];
};
in stdenv.mkDerivation rec {
version = "0.18.0";
name = "shotwell-${version}";
src = fetchurl {
url = "mirror://gnome/sources/shotwell/0.18/${name}.tar.xz";
sha256 = "0cq0zs13f3f4xyz46yvj4qfpm5nh4ypds7r53pkqm4a3n8ybf5v7";
};
NIX_CFLAGS_COMPILE = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
configureFlags = [ "--disable-gsettings-convert-install" ];
preConfigure = ''
patchShebangs .
'';
postInstall = ''
wrapProgram "$out/bin/shotwell" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gsettings_desktop_schemas}/share:${gtk3}/share:$out/share"
'';
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkit pkgconfig
gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee which udev gnome3.gexiv2
libraw rest json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
makeWrapper gnome_doc_utils ];
meta = with stdenv.lib; {
description = "Popular photo organizer for the GNOME desktop";
homepage = http://www.yorba.org/projects/shotwell/;
license = licenses.lgpl21Plus;
maintainers = with maintainers; [iElectric];
platforms = platforms.linux;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
make install make install
for file in "$out"/bin/* "$out"/sbin/*; do for file in "$out"/bin/* "$out"/sbin/*; do
wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl}/lib:${gcc.gcc}/lib:${libedit}/lib:${qt4}/lib" wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl}/lib:${gcc.gcc}/lib:${stdenv.glibc}/lib::${gcc.gcc}/lib64:${stdenv.glibc}/lib64:${libedit}/lib:${qt4}/lib"
done done
''; '';

View file

@ -5,8 +5,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "xmobar"; pname = "xmobar";
version = "0.20"; version = "0.20.1";
sha256 = "06ra5nx53rlijkb3hhp5p5a0b3bx14921jgkkp1xqciscnspj2nv"; sha256 = "16jfgn6ciqxrwj6qjhbcpms7mzlbxfaxyxfxp64xvnw626xlpjvk";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View file

@ -6,13 +6,13 @@
sha256 = "0qbv6prxl18y5824pfd13ng9798g561gzb6nypwp502hqr45jvb6"; sha256 = "0qbv6prxl18y5824pfd13ng9798g561gzb6nypwp502hqr45jvb6";
}; };
beta = { beta = {
version = "34.0.1847.45"; version = "34.0.1847.60";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.45.tar.xz"; url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.60.tar.xz";
sha256 = "0ypz6cclddiasmy8z5p97ndpl9xb7p5ncn9dxm6zkffxyagnx531"; sha256 = "1na5d6z4a0wkabn7cj62vyiv3mmvcb6qdvrkyy6fj79h7gk2hb7k";
}; };
stable = { stable = {
version = "33.0.1750.149"; version = "33.0.1750.152";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.149.tar.xz"; url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.152.tar.xz";
sha256 = "111hml6kjfzps9addvhcjygjb2k65spknx2zc6pnz4ygshynspqn"; sha256 = "0byc23vwn9alsva0jqvwvgnbx2bm7x48m3jln02y4fpf1f265m4z";
}; };
} }

View file

@ -1,23 +1,24 @@
{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json_c, ncurses { stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json-c-0-11, ncurses
, gettext, libiconvOrEmpty, makeWrapper, perl }: , gettext, libiconvOrEmpty, makeWrapper, perl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "newsbeuter-2.7"; name = "newsbeuter-2.8";
src = fetchurl { src = fetchurl {
url = "http://www.newsbeuter.org/downloads/${name}.tar.gz"; url = "http://www.newsbeuter.org/downloads/${name}.tar.gz";
sha256 = "0flhzzlbdirjmrq738gmcxqqnifg3kb7plcwqcxshpizmjkhswp6"; sha256 = "013qi8yghpms2qq1b3xbrlmfgpj0ybgk0qhj245ni4kpxila0wn8";
}; };
buildInputs buildInputs
# use gettext instead of libintlOrEmpty so we have access to the msgfmt # use gettext instead of libintlOrEmpty so we have access to the msgfmt
# command # command
= [ pkgconfig sqlite curl libxml2 stfl json_c ncurses gettext perl ] = [ pkgconfig sqlite curl libxml2 stfl json-c-0-11 ncurses gettext perl ]
++ libiconvOrEmpty ++ libiconvOrEmpty
++ stdenv.lib.optional stdenv.isDarwin makeWrapper; ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
preBuild = '' preBuild = ''
sed -i -e 104,108d config.sh sed -i -e 110,114d config.sh
sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
export LDFLAGS=-lncursesw export LDFLAGS=-lncursesw
''; '';

View file

@ -2,11 +2,12 @@
, gettext, libiconvOrEmpty, makeWrapper, perl }: , gettext, libiconvOrEmpty, makeWrapper, perl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "newsbeuter-dev-20131118"; name = "newsbeuter-dev-20140309";
src = fetchgit { src = fetchgit {
url = "https://github.com/akrennmair/newsbeuter.git"; url = "https://github.com/akrennmair/newsbeuter.git";
rev = "18b73f7d44a99a698d4878fe7d226f55842132c2"; rev = "1427bdb0705806368db39576a9b803df82fa0415";
sha256 = "b29a304a46bf56b439d0d35ea586f7fd0fbf1a5565dca95de76e774885d8b64b";
}; };
buildInputs buildInputs
@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isDarwin makeWrapper; ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
preBuild = '' preBuild = ''
sed -i -e 104,108d config.sh sed -i -e 110,114d config.sh
sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
export LDFLAGS=-lncursesw export LDFLAGS=-lncursesw
''; '';

View file

@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Integrated IRC client for KDE"; description = "Integrated IRC client for KDE";
repositories.git = git://anongit.kde.org/konversation;
license = "GPL"; license = "GPL";
inherit (kdelibs.meta) maintainers platforms; inherit (kdelibs.meta) maintainers platforms;
}; };

View file

@ -17,6 +17,13 @@ stdenv.mkDerivation rec {
cacert cmake cacert cmake
]; ];
# This patch is based on
# weechat/c324610226cef15ecfb1235113c8243b068084c8. It fixes
# freeze/crash on /exit when using nixpkgs' gnutls 3.2. The next
# weechat release (0.4.4) will include this, so it's safe to remove
# then.
patches = [ ./fix-gnutls-32.diff ];
postInstall = '' postInstall = ''
wrapProgram "$out/bin/weechat" \ wrapProgram "$out/bin/weechat" \
--prefix PYTHONPATH : "$PYTHONPATH" \ --prefix PYTHONPATH : "$PYTHONPATH" \

View file

@ -0,0 +1,16 @@
diff --git a/src/gui/curses/CMakeLists.txt b/src/gui/curses/CMakeLists.txt
index 325c611..a8927bc 100644
--- a/src/gui/curses/CMakeLists.txt
+++ b/src/gui/curses/CMakeLists.txt
@@ -53,9 +53,7 @@ IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
ENDIF(HAVE_BACKTRACE)
ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
-IF(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
- LIST(APPEND EXTRA_LIBS "pthread")
-ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
+LIST(APPEND EXTRA_LIBS "pthread")
IF(ICONV_LIBRARY)
LIST(APPEND EXTRA_LIBS ${ICONV_LIBRARY})

View file

@ -3,7 +3,7 @@
, gettext, iconv, locale, text, highline, rmail_sup, unicode, gnupg, which }: , gettext, iconv, locale, text, highline, rmail_sup, unicode, gnupg, which }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "20131130"; version = "20140312";
name = "sup-${version}"; name = "sup-${version}";
meta = { meta = {
@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
src = fetchgit { src = fetchgit {
url = git://github.com/sup-heliotrope/sup.git; url = git://github.com/sup-heliotrope/sup.git;
rev = "a5a1e39034204ac4b05c9171a71164712690b010"; rev = "0cad7b308237c07b8a46149908b2ad4806ac3d1d";
sha256 = "0w2w7dcif1ri1qq81csz7gj45rqd9z7hjd6x29awibybyyqyvj5s"; sha256 = "83534b6ad9fb6aa883d630c927e3a71bd09a646e3254b4eb0cc7a09f69a525bc";
}; };
buildInputs = buildInputs =

View file

@ -6,14 +6,14 @@
}: }:
let pname = "liferea"; let pname = "liferea";
version = "1.10.6"; version = "1.10.7";
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.gz"; url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
sha256 = "0vp19z4p3cn3zbg1zjpg2iyzwq893dx5c1kh6aac06s3rf1124gm"; sha256 = "17kvg44brdz99firr5h5qx8icvadlr7p1cz3xr3437sf5rhj25wh";
}; };
buildInputs = with gst_all_1; [ buildInputs = with gst_all_1; [

View file

@ -0,0 +1,31 @@
{ stdenv, fetchurl,
slang, ncurses
}:
let version = "1.0.1"; in
stdenv.mkDerivation {
name = "slrn-${version}";
src = fetchurl {
url = "http://www.jedsoft.org/slrn/download/slrn-1.0.1.tar.gz";
sha256 = "1rmaprfwvshzkv0c5vi43839cz3laqjpl306b9z0ghwyjdha1d06";
};
preConfigure = ''
sed -i -e "s|-ltermcap|-lncurses|" configure
sed -i autoconf/Makefile.in src/Makefile.in \
-e "s|/bin/cp|cp|" \
-e "s|/bin/rm|rm|"
'';
configureFlags = "--with-slang=${slang}";
buildInputs = [ slang ncurses ];
meta = {
description = "The slrn (S-Lang read news) newsreader";
homepage = http://slrn.sourceforge.net/index.html;
license = stdenv.lib.licenses.gpl2;
};
}

View file

@ -5,11 +5,11 @@ stdenv.mkDerivation rec {
name = pname + "-" + version; name = pname + "-" + version;
pname = "ktorrent"; pname = "ktorrent";
version = "4.2.1"; version = "4.3.1";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2"; url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
sha256 = "1b6w7i1vvq8mlw9yrlxvb51hvaj6rpl8lv9b9zagyl3wcanz73zd"; sha256 = "66094f6833347afb0c49e332f0ec15ec48db652cbe66476840846ffd5ca0e4a1";
}; };
patches = [ ./find-workspace.diff ]; patches = [ ./find-workspace.diff ];
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "KDE integrated BtTorrent client"; description = "KDE integrated BtTorrent client";
homepage = http://ktorrent.org; homepage = http://ktorrent.pwsp.net;
maintainers = with stdenv.lib.maintainers; [ sander urkud ]; maintainers = with stdenv.lib.maintainers; [ sander urkud ];
inherit (libktorrent.meta) platforms; inherit (libktorrent.meta) platforms;
}; };

View file

@ -0,0 +1,19 @@
{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }:
stdenv.mkDerivation rec {
name = "ncdc-${version}";
version = "1.19";
src = fetchurl {
url = "http://dev.yorhel.nl/download/ncdc-1.19.tar.gz";
sha256 = "1wgvqwfxq9kc729h2r528n55821w87sfbm4h21mr6pvkpfw30hf2";
};
buildInputs = [ ncurses zlib bzip2 sqlite pkgconfig glib gnutls ];
meta = {
description = "modern and lightweight direct connect client with a friendly ncurses interface";
homepage = http://dev.yorhel.nl/ncdc;
license = stdenv.lib.licenses.mit;
};
}

View file

@ -1,4 +1,4 @@
{ cabal, aeson, async, blazeBuilder, bloomfilter, bup { cabal, aeson, async, blazeBuilder, bloomfilter, bup, byteable
, caseInsensitive, clientsession, cryptoApi, cryptohash, curl , caseInsensitive, clientsession, cryptoApi, cryptohash, curl
, dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance , dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance
, extensibleExceptions, feed, filepath, git, gnupg1, gnutls, hamlet , extensibleExceptions, feed, filepath, git, gnupg1, gnutls, hamlet
@ -7,31 +7,31 @@
, MonadCatchIOTransformers, monadControl, mtl, network , MonadCatchIOTransformers, monadControl, mtl, network
, networkConduit, networkInfo, networkMulticast , networkConduit, networkInfo, networkMulticast
, networkProtocolXmpp, openssh, optparseApplicative, perl , networkProtocolXmpp, openssh, optparseApplicative, perl
, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, SHA, stm , QuickCheck, random, regexTdfa, rsync, SafeSemaphore, securemem
, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text, time , SHA, stm, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text
, transformers, unixCompat, utf8String, uuid, wai, waiLogger, warp , time, transformers, unixCompat, utf8String, uuid, wai, waiLogger
, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault , warp, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault
, yesodForm, yesodStatic , yesodForm, yesodStatic
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "git-annex"; pname = "git-annex";
version = "5.20140306"; version = "5.20140320";
sha256 = "1kjgqrz0wnccylrbdiwj1yndg7v2k09f5h2vkk06bnx02xmwvjl9"; sha256 = "0jhg5nbvdsiaprpj4h57fpfskhx0nqva4yx6krfd90i9gwgkm8l5";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
aeson async blazeBuilder bloomfilter caseInsensitive clientsession aeson async blazeBuilder bloomfilter byteable caseInsensitive
cryptoApi cryptohash dataDefault dataenc DAV dbus dlist dns clientsession cryptoApi cryptohash dataDefault dataenc DAV dbus
editDistance extensibleExceptions feed filepath gnutls hamlet dlist dns editDistance extensibleExceptions feed filepath gnutls
hinotify hS3 hslogger HTTP httpClient httpConduit httpTypes IfElse hamlet hinotify hS3 hslogger HTTP httpClient httpConduit httpTypes
json liftedBase MissingH MonadCatchIOTransformers monadControl mtl IfElse json liftedBase MissingH MonadCatchIOTransformers
network networkConduit networkInfo networkMulticast monadControl mtl network networkConduit networkInfo
networkProtocolXmpp optparseApplicative QuickCheck random regexTdfa networkMulticast networkProtocolXmpp optparseApplicative QuickCheck
SafeSemaphore SHA stm tasty tastyHunit tastyQuickcheck tastyRerun random regexTdfa SafeSemaphore securemem SHA stm tasty tastyHunit
text time transformers unixCompat utf8String uuid wai waiLogger tastyQuickcheck tastyRerun text time transformers unixCompat
warp warpTls xmlTypes yesod yesodCore yesodDefault yesodForm utf8String uuid wai waiLogger warp warpTls xmlTypes yesod yesodCore
yesodStatic yesodDefault yesodForm yesodStatic
]; ];
buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ]; buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
configureFlags = "-fS3 configureFlags = "-fS3

View file

@ -10,7 +10,7 @@
let let
version = "1.9.0"; version = "1.9.1";
svn = subversionClient.override { perlBindings = true; }; svn = subversionClient.override { perlBindings = true; };
@ -20,8 +20,8 @@ stdenv.mkDerivation {
name = "git-${version}"; name = "git-${version}";
src = fetchurl { src = fetchurl {
url = "http://git-core.googlecode.com/files/git-${version}.tar.gz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "10lq71vrg1zbqm923wb0p36ily6y5x057f2bryk4wqkdqgyrfc6y"; sha256 = "0yx7qf9hqgfvrliqvk775pw3zh982nx5r16iw7n997q4ik7gnqpr";
}; };
patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ]; patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ];

View file

@ -5,7 +5,7 @@
, libass, fftw, ffms , libass, fftw, ffms
, ffmpeg, pkgconfig, zlib # Undocumented (?) dependencies , ffmpeg, pkgconfig, zlib # Undocumented (?) dependencies
, spellChecking ? true, hunspell ? null , spellChecking ? true, hunspell ? null
, automationSupport ? true, lua ? null , automationSupport ? true, lua ? null
, openalSupport ? false, openal ? null , openalSupport ? false, openal ? null
, alsaSupport ? true, alsaLib ? null , alsaSupport ? true, alsaLib ? null
, pulseaudioSupport ? true, pulseaudio ? null , pulseaudioSupport ? true, pulseaudio ? null
@ -39,11 +39,11 @@ stdenv.mkDerivation rec {
; ;
NIX_LDFLAGS = "-liconv -lavutil -lavformat -lavcodec -lswscale -lz -lm"; NIX_LDFLAGS = "-liconv -lavutil -lavformat -lavcodec -lswscale -lz -lm";
preConfigure = "cd aegisub"; preConfigure = "cd aegisub";
postInstall = "ln -s $out/bin/aegisub-3.0 $out/bin/aegisub"; postInstall = "ln -s $out/bin/aegisub-3.0 $out/bin/aegisub";
meta = { meta = {
description = "An advanced subtitle editor"; description = "An advanced subtitle editor";
longDescription = '' longDescription = ''
@ -53,8 +53,8 @@ stdenv.mkDerivation rec {
built-in real-time video preview. built-in real-time video preview.
''; '';
homepage = http://www.aegisub.org/; homepage = http://www.aegisub.org/;
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
# The Aegisub sources are itself BSD/ISC, # The Aegisub sources are itself BSD/ISC,
# but they are linked against GPL'd softwares # but they are linked against GPL'd softwares
# - so the resulting program will be GPL # - so the resulting program will be GPL
maintainers = [ stdenv.lib.maintainers.AndersonTorres ]; maintainers = [ stdenv.lib.maintainers.AndersonTorres ];

View file

@ -5,6 +5,7 @@
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
name = "kazam-${version}"; name = "kazam-${version}";
version = "1.4.3"; version = "1.4.3";
namePrefix = "";
src = fetchurl { src = fetchurl {
url = "https://launchpad.net/kazam/stable/${version}/+download/kazam-${version}.tar.gz"; url = "https://launchpad.net/kazam/stable/${version}/+download/kazam-${version}.tar.gz";

View file

@ -46,7 +46,7 @@ assert cacaSupport -> libcaca != null;
# but by purity reasons it should be avoided; thanks the-kenny to point it out! # but by purity reasons it should be avoided; thanks the-kenny to point it out!
# Now, it will just download and package Waf, mimetizing bootstrap.py behaviour # Now, it will just download and package Waf, mimetizing bootstrap.py behaviour
let let
waf = fetchurl { waf = fetchurl {
url = https://waf.googlecode.com/files/waf-1.7.13; url = https://waf.googlecode.com/files/waf-1.7.13;
sha256 = "03cc750049350ee01cdbc584b70924e333fcc17ba4a2d04648dab1535538a873"; sha256 = "03cc750049350ee01cdbc584b70924e333fcc17ba4a2d04648dab1535538a873";
@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
python3 ${waf} install python3 ${waf} install
# Maybe not needed, but it doesn't hurt anyway: a standard font # Maybe not needed, but it doesn't hurt anyway: a standard font
mkdir -p $out/share/mpv mkdir -p $out/share/mpv
ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
''; '';
meta = { meta = {

View file

@ -13,12 +13,12 @@ stdenv.mkDerivation rec {
version = "1.20"; version = "1.20";
src = fetchurl { src = fetchurl {
url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_120.tar.bz2"; url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_120.tar.bz2";
sha256 = "0yapnr8wvlx7h1q1w98yfy2vsbf0rlp4wd99r3xb0b7l70b36mpw"; sha256 = "0yapnr8wvlx7h1q1w98yfy2vsbf0rlp4wd99r3xb0b7l70b36mpw";
}; };
buildInputs = with stdenv.lib; buildInputs = with stdenv.lib;
optionals localBios [ nasm ] optionals localBios [ nasm ]
++ optionals sdlSupport [ SDL ]; ++ optionals sdlSupport [ SDL ];
builder = ./builder.sh; builder = ./builder.sh;
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
description = "An open-source 8086 emulator"; description = "An open-source 8086 emulator";
longDescription = '' longDescription = ''
8086tiny is a tiny, open source (MIT), portable (little-endian hosts) Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny emulates a "late 80's era" PC XT-type machine. 8086tiny is a tiny, open source (MIT), portable (little-endian hosts) Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny emulates a "late 80's era" PC XT-type machine.
8086tiny is based on an IOCCC 2013 winning entry. In fact that is the "unobfuscated" version :) 8086tiny is based on an IOCCC 2013 winning entry. In fact that is the "unobfuscated" version :)
''; '';
homepage = http://www.megalith.co.uk/8086tiny/index.html; homepage = http://www.megalith.co.uk/8086tiny/index.html;
@ -37,4 +37,4 @@ stdenv.mkDerivation rec {
}; };
} }
# TODO: add support for a locally made BIOS # TODO: add support for a locally made BIOS

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz"; url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz";
sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr"; sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr";
}; };
buildInputs = with stdenv.lib; buildInputs = with stdenv.lib;
[ libX11 mesa ] [ libX11 mesa ]
++ optionals sdlSupport [ SDL ] ++ optionals sdlSupport [ SDL ]
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
++ optionals curlSupport [ curl ]; ++ optionals curlSupport [ curl ];
configureFlags = '' configureFlags = ''
--with-x11 --with-x11
--with-term=${if termSupport then "yes" else "no"} --with-term=${if termSupport then "yes" else "no"}
--with-sdl=${if sdlSupport then "yes" else "no"} --with-sdl=${if sdlSupport then "yes" else "no"}
--with-svga=no --with-svga=no
@ -42,11 +42,11 @@ stdenv.mkDerivation rec {
--enable-plugins=no --enable-plugins=no
--enable-disasm --enable-disasm
--enable-debugger --enable-debugger
--enable-ne2000 --enable-ne2000
--enable-e1000 --enable-e1000
--enable-sb16 --enable-sb16
--enable-voodoo --enable-voodoo
--enable-usb --enable-usb
--enable-pnic --enable-pnic
''; '';

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, ncurses, perl, pixman { stdenv, fetchurl, python, zlib, pkgconfig, glib, ncurses, perl, pixman
, attr, libcap, vde2, alsaLib, texinfo, libuuid , attr, libcap, vde2, alsaLib, texinfo, libuuid, flex, bison
, makeWrapper , makeWrapper
, sdlSupport ? true, SDL , sdlSupport ? true, SDL
, vncSupport ? true, libjpeg, libpng , vncSupport ? true, libjpeg, libpng
@ -7,19 +7,19 @@
, x86Only ? false , x86Only ? false
}: }:
let n = "qemu-1.5.2"; in let n = "qemu-1.7.0"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = n + (if x86Only then "-x86-only" else ""); name = n + (if x86Only then "-x86-only" else "");
src = fetchurl { src = fetchurl {
url = "http://wiki.qemu.org/download/${n}.tar.bz2"; url = "http://wiki.qemu.org/download/${n}.tar.bz2";
sha256 = "0l52jwlxmwp9g3jpq0g7ix9dq4qgh46nd2h58lh47f0a35yi8qgn"; sha256 = "050kq9mz8c2jcshm7nn7dldypsk8jr590ybnlw2wc51dbyl37wri";
}; };
buildInputs = buildInputs =
[ python zlib pkgconfig glib ncurses perl pixman attr libcap [ python zlib pkgconfig glib ncurses perl pixman attr libcap
vde2 alsaLib texinfo libuuid makeWrapper vde2 alsaLib texinfo libuuid flex bison makeWrapper
] ]
++ stdenv.lib.optionals sdlSupport [ SDL ] ++ stdenv.lib.optionals sdlSupport [ SDL ]
++ stdenv.lib.optionals vncSupport [ libjpeg libpng ] ++ stdenv.lib.optionals vncSupport [ libjpeg libpng ]
@ -43,11 +43,11 @@ stdenv.mkDerivation rec {
fi fi
''; '';
meta = { meta = with stdenv.lib; {
homepage = http://www.qemu.org/; homepage = http://www.qemu.org/;
description = "A generic and open source machine emulator and virtualizer"; description = "A generic and open source machine emulator and virtualizer";
license = "GPLv2+"; license = licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ viric shlevy eelco ]; maintainers = with maintainers; [ viric shlevy eelco ];
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -2,7 +2,7 @@
, kernel ? pkgs.linux_3_10 , kernel ? pkgs.linux_3_10
, img ? "bzImage" , img ? "bzImage"
, rootModules ? , rootModules ?
[ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" ] [ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
}: }:
with pkgs; with pkgs;
@ -57,6 +57,7 @@ rec {
mknod ${dev}/random c 1 8 mknod ${dev}/random c 1 8
mknod ${dev}/urandom c 1 9 mknod ${dev}/urandom c 1 9
mknod ${dev}/tty c 5 0 mknod ${dev}/tty c 5 0
mknod ${dev}/rtc c 254 0
. /sys/class/block/${hd}/uevent . /sys/class/block/${hd}/uevent
mknod ${dev}/${hd} b $MAJOR $MINOR mknod ${dev}/${hd} b $MAJOR $MINOR
''; '';
@ -159,6 +160,10 @@ rec {
#! ${bash}/bin/sh #! ${bash}/bin/sh
source /tmp/xchg/saved-env source /tmp/xchg/saved-env
# Set the system time from the hardware clock. Works around an
# apparent KVM > 1.5.2 bug.
${pkgs.utillinux}/sbin/hwclock -s
export NIX_STORE=/nix/store export NIX_STORE=/nix/store
export NIX_BUILD_TOP=/tmp export NIX_BUILD_TOP=/tmp
export TMPDIR=/tmp export TMPDIR=/tmp

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl}: {stdenv, fetchurl}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "man-pages-posix-2003a"; name = "man-pages-posix-2013-a";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/man-pages-posix-2003-a.tar.bz2"; url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${name}.tar.xz";
sha256 = "1sj97lbj27w935f9ia91ih1mwlz4j3qcr3d3nkvcxm6cpfvv2mg3"; sha256 = "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr";
}; };
preBuild = preBuild =

View file

@ -128,5 +128,6 @@ rec {
gitg = callPackage ./misc/gitg { }; gitg = callPackage ./misc/gitg { };
libgit2-glib = callPackage ./misc/libgit2-glib { }; libgit2-glib = callPackage ./misc/libgit2-glib { };
gexiv2 = callPackage ./misc/gexiv2 { };
} }

View file

@ -0,0 +1,25 @@
{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4 }:
stdenv.mkDerivation rec {
name = "gexiv2-${version}";
version = "0.7.0";
src = fetchurl {
url = "mirror://gnome/sources/gexiv2/0.7/${name}.tar.xz";
sha256 = "12pfc5a57dhlf0c3yg5x3jissxi7jy2b6ir6y99cn510801gwcdn";
};
preConfigure = ''
patchShebangs .
'';
buildInputs = [ pkgconfig glib libtool m4 ];
propagatedBuildInputs = [ exiv2 ];
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/gexiv2;
description = "GObject wrapper around the Exiv2 photo metadata library";
platforms = platforms.linux;
};
}

View file

@ -3,6 +3,8 @@
kde { kde {
buildInputs = [ kdelibs ]; buildInputs = [ kdelibs ];
enableParallelBuilding = false;
meta = { meta = {
description = "KDE free disk space utility"; description = "KDE free disk space utility";
}; };

View file

@ -3,20 +3,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "gigolo"; p_name = "gigolo";
ver_maj = "0.4"; ver_maj = "0.4";
ver_min = "1"; ver_min = "2";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; sha256 = "0r4ij0mlnp0bqq44pyrdcpz18r1zwsksw6w5yc0jzgg7wj7wfgsm";
}; };
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs = [ python gettext intltool gtk pkgconfig gvfs]; buildInputs = [ python gettext intltool gtk pkgconfig gvfs];
preConfigure = ''
sed -i "waf" -e "1 s^.*/env[ ]*python^#!${python}/bin/python^";
'';
meta = { meta = {
homepage = "http://goodies.xfce.org/projects/applications/${p_name}"; homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
description = "A frontend to easily manage connections to remote filesystems"; description = "A frontend to easily manage connections to remote filesystems";

View file

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "xfce4-taskmanager"; p_name = "xfce4-taskmanager";
ver_maj = "1.0"; ver_maj = "1.0";
ver_min = "0"; ver_min = "1";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; sha256 = "11pfiglfg3mzsmpiwva6l7dj44zsv76vyf0282pghwcrvnb2gapm";
}; };
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";

View file

@ -4,11 +4,11 @@ libgsf, poppler, bzip2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "tumbler"; p_name = "tumbler";
ver_maj = "0.1"; ver_maj = "0.1";
ver_min = "29"; ver_min = "30";
src = fetchurl { src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2"; url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "14zw69x5979d19brjbyq81wvbikb13vgv901gxnbw8lyc3pc9fn3"; sha256 = "013kacqyy1vya7kp6jgc1almp3cbbvq96a3r7f5myiihr1whvhp7";
}; };
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";

View file

@ -1,18 +1,30 @@
{ stdenv, fetchurl, mono, unzip, pkgconfig { stdenv, fetchgit, mono, pkgconfig, autoconf, automake, which }:
} :
stdenv.mkDerivation rec {
pname = "fsharp";
date = "2011-08-10";
name = "${pname}-${date}";
src = fetchurl { stdenv.mkDerivation rec {
url = "http://download.mono-project.com/sources/fsharp/fsharp-cc126f2.zip"; name = "fsharp-${version}";
sha256 = "03j2ypnfddl2zpvg8ivhafjy8dlz49b38rdy89l8c3irxdsb7k6i"; version = "3.1";
src = fetchgit {
url = "https://github.com/fsharp/fsharp";
rev = "refs/heads/fsharp_31";
sha256 = "0d41ae31c57ec9ac8a4ea149b615ae085f3774b8877d8e53ddbf68856c32eda0";
}; };
buildInputs = [mono unzip pkgconfig]; buildInputs = [ mono pkgconfig autoconf automake which ];
configurePhase = ''
substituteInPlace ./autogen.sh "/usr/bin/env sh" "/bin/sh"
./autogen.sh --prefix $out
'';
sourceRoot = "fsharp"; # Make sure the executables use the right mono binary,
# and set up some symlinks for backwards compatibility.
postInstall = ''
substituteInPlace $out/bin/fsharpc --replace " mono " " ${mono}/bin/mono "
substituteInPlace $out/bin/fsharpi --replace " mono " " ${mono}/bin/mono "
substituteInPlace $out/bin/fsharpiAnyCpu --replace " mono " " ${mono}/bin/mono "
ln -s $out/bin/fsharpc $out/bin/fsc
ln -s $out/bin/fsharpi $out/bin/fsi
'';
# To fix this error when running: # To fix this error when running:
# The file "/nix/store/path/whatever.exe" is an not a valid CIL image # The file "/nix/store/path/whatever.exe" is an not a valid CIL image
@ -20,9 +32,9 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "A functional CLI language"; description = "A functional CLI language";
homepage = "http://tryfsharp.org/"; homepage = "http://fsharp.org/";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.raskin ]; maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
}; };
} }

View file

@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
echo "${buildMK}" > mk/build.mk echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}" export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
''; '';

View file

@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
echo "${buildMK}" > mk/build.mk echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}" export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
''; '';

View file

@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
echo "${buildMK}" > mk/build.mk echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}" export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
''; '';

View file

@ -0,0 +1,12 @@
diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt.old b/lib/CodeGen/AsmPrinter/CMakeLists.txt
index be484a6..c92ff46 100644
--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt.old
+++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt
@@ -10,6 +10,7 @@ add_llvm_library(LLVMAsmPrinter
DwarfCompileUnit.cpp
DwarfDebug.cpp
DwarfException.cpp
+ DwarfMonoException.cpp
ErlangGCPrinter.cpp
OcamlGCPrinter.cpp
Win64Exception.cpp

View file

@ -1,13 +1,18 @@
{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11}: { stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? true }:
let
llvm = callPackage ./llvm.nix { };
llvmOpts = stdenv.lib.optionalString withLLVM "--enable-llvm --enable-llvmloaded --with-llvm=${llvm}";
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mono-2.11.4"; name = "mono-${version}";
version = "3.2.8";
src = fetchurl { src = fetchurl {
url = "http://download.mono-project.com/sources/mono/${name}.tar.bz2"; url = "http://download.mono-project.com/sources/mono/${name}.tar.bz2";
sha256 = "0wv8pnj02mq012sihx2scx0avyw51b5wb976wn7x86zda0vfcsnr"; sha256 = "0h0s42pmgrhwqaym0b1401h70dcpr179ngcsp7f8i4hl4snqrd7x";
}; };
buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11]; buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11 ncurses zlib];
propagatedBuildInputs = [glib]; propagatedBuildInputs = [glib];
NIX_LDFLAGS = "-lgcc_s" ; NIX_LDFLAGS = "-lgcc_s" ;
@ -17,7 +22,7 @@ stdenv.mkDerivation rec {
# In fact I think this line does not help at all to what I # In fact I think this line does not help at all to what I
# wanted to achieve: have mono to find libgdiplus automatically # wanted to achieve: have mono to find libgdiplus automatically
configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so"; configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so ${llvmOpts}";
# Attempt to fix this error when running "mcs --version": # Attempt to fix this error when running "mcs --version":
# The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image # The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
@ -26,10 +31,14 @@ stdenv.mkDerivation rec {
# Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601 # Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601
enableParallelBuilding = false; enableParallelBuilding = false;
preBuild = " # Patch all the necessary scripts. Also, if we're using LLVM, we fix the default
# LLVM path to point into the Mono LLVM build, since it's private anyway.
preBuild = ''
makeFlagsArray=(INSTALL=`type -tp install`) makeFlagsArray=(INSTALL=`type -tp install`)
patchShebangs ./ patchShebangs ./
"; '' + stdenv.lib.optionalString withLLVM ''
substituteInPlace mono/mini/aot-compiler.c --replace "llvm_path = g_strdup (\"\")" "llvm_path = g_strdup (\"${llvm}/bin/\")"
'';
#Fix mono DLLMap so it can find libX11 and gdiplus to run winforms apps #Fix mono DLLMap so it can find libX11 and gdiplus to run winforms apps
#Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive #Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive
@ -46,7 +55,7 @@ stdenv.mkDerivation rec {
homepage = http://mono-project.com/; homepage = http://mono-project.com/;
description = "Cross platform, open source .NET development framework"; description = "Cross platform, open source .NET development framework";
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [viric]; maintainers = with stdenv.lib.maintainers; [ viric thoughtpolice ];
license = "free"; # Combination of LGPL/X11/GPL ? license = "free"; # Combination of LGPL/X11/GPL ?
}; };
} }

View file

@ -0,0 +1,59 @@
{ stdenv
, fetchurl
, perl
, groff
, cmake
, python
, libffi
, binutils
, libxml2
, valgrind
, ncurses
, zlib
}:
stdenv.mkDerivation rec {
name = "llvm-${version}";
version = "3.4svn-mono-f9b1a74368";
src = fetchurl {
# from the HEAD of the 'mono3' branch
url = "https://github.com/mono/llvm/archive/f9b1a74368ec299fc04c4cfef4b5aa0992b7b806.tar.gz";
name = "${name}.tar.gz";
sha256 = "1bbkx4p5zdnk3nbdd5jxvbwqx8cdq8z1n1nhf639i98mggs0zhdg";
};
patches = [ ./build-fix-llvm.patch ];
unpackPhase = ''
unpackFile ${src}
mv llvm-* llvm
sourceRoot=$PWD/llvm
'';
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
propagatedBuildInputs = [ ncurses zlib ];
# hacky fix: created binaries need to be run before installation
preBuild = ''
mkdir -p $out/
ln -sv $PWD/lib $out
'';
postBuild = "rm -fR $out";
cmakeFlags = with stdenv; [
"-DCMAKE_BUILD_TYPE=Release"
"-DLLVM_ENABLE_FFI=ON"
"-DLLVM_BINUTILS_INCDIR=${binutils}/include"
"-DCMAKE_CXX_FLAGS=-std=c++11"
] ++ stdenv.lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
enableParallelBuilding = true;
meta = {
description = "Collection of modular and reusable compiler and toolchain technologies - Mono build";
homepage = http://llvm.org/;
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
platforms = stdenv.lib.platforms.all;
};
}

View file

@ -18,7 +18,7 @@ with stdenv.lib;
let let
majorVersion = "3.4"; majorVersion = "3.4";
version = "${majorVersion}.0"; version = "${majorVersion}.0";
fullVersion = "${version}rc2"; fullVersion = "${version}";
buildInputs = filter (p: p != null) [ buildInputs = filter (p: p != null) [
zlib bzip2 gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto zlib bzip2 gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
@ -30,7 +30,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz"; url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
sha256 = "0v37mlkwzbc8m54h3nb04x6xm2yx5fmd7flq2shn37ixf9d0ih6z"; sha256 = "1gjcn5c3zqg161vwzh43ciha15w0plf5v7cyfm372pnllb08cdpi";
}; };
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A C library to make the use of LV2 plugins"; description = "A C library to make the use of LV2 plugins";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A plugin standard for audio systems"; description = "A plugin standard for audio systems";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A library for serialising LV2 atoms to/from RDF"; description = "A library for serialising LV2 atoms to/from RDF";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A lightweight C library for loading and wrapping LV2 plugin UIs"; description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
}; };
} }

View file

@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
}; };
dontAddPrefix = 1; dontAddPrefix = 1;
patchPhase = "sed -e 's@mkdir@mkdir -p@' -i Makefile"; patches = [ ./ocaml_4.xx.patch ];
postPatch = "sed -e 's@mkdir@mkdir -p@' -i Makefile";
postConfigure = "make -C src .depend"; postConfigure = "make -C src .depend";
makeFlags = "FACILEDIR=\${out}/lib/ocaml/facile"; makeFlags = "FACILEDIR=\${out}/lib/ocaml/facile";

View file

@ -0,0 +1,12 @@
diff -rupN facile-1.1/src/fcl_data.ml facile-1.1-patched//src/fcl_data.ml
--- facile-1.1/src/fcl_data.ml 2004-09-08 11:51:02.000000000 +0200
+++ facile-1.1-patched//src/fcl_data.ml 2012-12-16 13:49:36.286722670 +0100
@@ -16,7 +16,7 @@ end
module Hashtbl = struct
type ('a, 'b) t = ('a, 'b) Hashtbl.t
- let create = Hashtbl.create
+ let create x = Hashtbl.create x
let get h = h
let add h k d =

View file

@ -21,11 +21,11 @@ assert vdpauSupport -> libvdpau != null;
assert faacSupport -> faac != null; assert faacSupport -> faac != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ffmpeg-0.10.11"; name = "ffmpeg-0.10.12";
src = fetchurl { src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2"; url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "1l1nyvsfafl9w0falv1hcm65r2rlxyb59har0rkrrpi56fj1ma4r"; sha256 = "00nvm3iysn8zincpvv1abqrxqj1ky0322dh2j9csjw983358538i";
}; };
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that # `--enable-gpl' (as well as the `postproc' and `swscale') mean that

View file

@ -1,24 +1,19 @@
a : { stdenv, fetchurl }:
let
s = import ./src-for-default.nix;
buildInputs = with a; [
zlib
];
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name; let version = "1.6.0"; in
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */ stdenv.mkDerivation {
phaseNames = ["doConfigure" "doMakeInstall"]; name = "geoip-${version}";
src = fetchurl {
url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz";
sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7";
};
meta = { meta = {
description = "Geolocation API"; description = "Geolocation API";
maintainers = [ maintainers = [ stdenv.lib.maintainers.raskin ];
a.lib.maintainers.raskin license = stdenv.lib.licenses.lgpl21;
]; platforms = stdenv.lib.platforms.linux;
}; };
} }

View file

@ -1,8 +0,0 @@
rec {
advertisedUrl="http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz";
version = "1.4.6";
url="http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.6.0.tar.gz";
hash = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7";
name = "geoip-1.6.0";
}

View file

@ -1,6 +0,0 @@
{
downloadPage = "http://geolite.maxmind.com/download/geoip/api/c/";
sourceRegexp = "GeoIP-[0-9.]+[.]tar[.]gz";
choiceCommand = "tail -1";
baseName = "geoip";
}

View file

@ -4,11 +4,11 @@
assert guileBindings -> guile != null; assert guileBindings -> guile != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnutls-3.2.12"; name = "gnutls-3.2.12.1";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz"; url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
sha256 = "1zwk9qkxn3190nssyamd7jsb3ag6mnnln3jwbgmjs1w306dzwafi"; sha256 = "1787n4iard3ad0p44xbl4aj3r3f5ir3sz0b2s27qpaaia2w4774g";
}; };
patches = patches =

View file

@ -9,11 +9,18 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-bad-1.2.3"; name = "gst-plugins-bad-1.2.3";
meta = { meta = with stdenv.lib; {
homepage = "http://gstreamer.freedesktop.org"; description = "Gstreamer Bad Plugins";
license = stdenv.lib.licenses.gpl2Plus; homepage = "http://gstreamer.freedesktop.org";
platforms = stdenv.lib.platforms.linux; longDescription = ''
maintainers = with stdenv.lib.maintainers; [ iyzsong ]; a set of plug-ins that aren't up to par compared to the
rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
}; };
src = fetchurl { src = fetchurl {

View file

@ -14,4 +14,8 @@ rec {
gst-libav = callPackage ./libav { inherit gst-plugins-base; }; gst-libav = callPackage ./libav { inherit gst-plugins-base; };
gst-python = callPackage ./python { inherit gst-plugins-base gstreamer; }; gst-python = callPackage ./python { inherit gst-plugins-base gstreamer; };
gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; };
gst-editing-services = callPackage ./ges { inherit gnonlin; };
} }

View file

@ -0,0 +1,24 @@
{ stdenv, fetchurl, pkgconfig, python
, gnonlin, libxml2
}:
stdenv.mkDerivation rec {
name = "gstreamer-editing-services-1.2.0";
meta = with stdenv.lib; {
description = "Library for creation of audio/video non-linear editors";
homepage = "http://gstreamer.freedesktop.org";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz";
sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0";
};
nativeBuildInputs = [ pkgconfig python ];
propagatedBuildInputs = [ gnonlin libxml2 ];
}

View file

@ -0,0 +1,29 @@
{ stdenv, fetchurl, pkgconfig
, gst-plugins-base
}:
stdenv.mkDerivation rec {
name = "gnonlin-1.2.0";
meta = with stdenv.lib; {
description = "Gstreamer Non-Linear Multimedia Editing Plugins";
homepage = "http://gstreamer.freedesktop.org";
longDescription = ''
Gnonlin is a library built on top of GStreamer which provides
support for writing non-linear audio and video editing
applications. It introduces the concept of a timeline.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "${meta.homepage}/src/gnonlin/${name}.tar.xz";
sha256 = "15hyb0kg8sm92kj37cir4l3sa21b8zy4la1ccfhb358b4mf24vl7";
};
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ gst-plugins-base ];
}

View file

@ -9,11 +9,17 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-good-1.2.3"; name = "gst-plugins-good-1.2.3";
meta = { meta = with stdenv.lib; {
homepage = "http://gstreamer.freedesktop.org"; description = "Gstreamer Good Plugins";
license = stdenv.lib.licenses.gpl2Plus; homepage = "http://gstreamer.freedesktop.org";
platforms = stdenv.lib.platforms.linux; longDescription = ''
maintainers = with stdenv.lib.maintainers; [ iyzsong ]; a set of plug-ins that we consider to have good quality code,
correct functionality, our preferred license (LGPL for the plug-in
code, LGPL or LGPL-compatible for the supporting library).
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
}; };
src = fetchurl { src = fetchurl {

View file

@ -2,12 +2,12 @@
, automoc4, flex, bison, pkgconfig }: , automoc4, flex, bison, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-0.10.2"; name = "${pname}-0.10.3";
pname = "qt-gstreamer"; pname = "qt-gstreamer";
src = fetchurl { src = fetchurl {
url = "http://gstreamer.freedesktop.org/src/${pname}/${name}.tar.bz2"; url = "http://gstreamer.freedesktop.org/src/${pname}/${name}.tar.bz2";
sha256 = "1laryg5vgc3prdi7dmpfwa71nsrc3ngv27sgax44c4qfrgpsgwbf"; sha256 = "1pqg9sxzk8sdrf7pazb5v21hasqai9i4l203gbdqz29w2ll1ybsl";
}; };
buildInputs = [ gstreamer gst_plugins_base glib qt4 ]; buildInputs = [ gstreamer gst_plugins_base glib qt4 ];

View file

@ -3,14 +3,14 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-python-1.1.90"; name = "gst-python-1.2.0";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"${meta.homepage}/src/gst-python/${name}.tar.bz2" "${meta.homepage}/src/gst-python/${name}.tar.bz2"
"mirror://gentoo/distfiles/${name}.tar.bz2" "mirror://gentoo/distfiles/${name}.tar.bz2"
]; ];
sha256 = "1vsykx2l5360y19c0rxspa9nf1ilml2c1ybsv8cw8p696scryb2l"; sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1";
}; };
buildInputs = buildInputs =

View file

@ -7,11 +7,18 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gst-plugins-ugly-1.2.3"; name = "gst-plugins-ugly-1.2.3";
meta = { meta = with stdenv.lib; {
homepage = "http://gstreamer.freedesktop.org"; description = "Gstreamer Ugly Plugins";
license = stdenv.lib.licenses.lgpl2Plus; homepage = "http://gstreamer.freedesktop.org";
platforms = stdenv.lib.platforms.linux; longDescription = ''
maintainers = with stdenv.lib.maintainers; [ iyzsong ]; a set of plug-ins that have good quality and correct functionality,
but distributing them might pose problems. The license on either
the plug-ins or the supporting libraries might not be how we'd
like. The code might be widely known to present patent problems.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
}; };
src = fetchurl { src = fetchurl {

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "Glob"; pname = "Glob";
version = "0.7.3"; version = "0.7.4";
sha256 = "0yl0wxbd03dv0hfr2aqwm9f3xnhjkdicymqv3nmhjjslqq3a59zd"; sha256 = "00f6xznqh27vbr8rggsrdphqsq1cvv931pa06b1grs7w01dcmw8s";
buildDepends = [ dlist filepath transformers ]; buildDepends = [ dlist filepath transformers ];
meta = { meta = {
homepage = "http://iki.fi/matti.niemenmaa/glob/"; homepage = "http://iki.fi/matti.niemenmaa/glob/";

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "HDBC"; pname = "HDBC";
version = "2.3.1.2"; version = "2.4.0.0";
sha256 = "1rjamh8xscb9jhxgxcrs2qnvs2ipv9dqgnn0bpv5vwclmzmn5j87"; sha256 = "1zwkrr0pbgxi2y75n2sjr3xs8xa3pxbmnqg3phqkjqcz3j4gcq6y";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ convertible mtl text time utf8String ]; buildDepends = [ convertible mtl text time utf8String ];

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "HaXml"; pname = "HaXml";
version = "1.24"; version = "1.24.1";
sha256 = "18kvavqa84k2121ppxngn39fjz4w63chngb3255w1fhdz13v3ydn"; sha256 = "1pvqgczksxasayvdb6d4g7ya7g7w1v9hsa35kaxm9bcic9y8q9az";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ filepath polyparse random ]; buildDepends = [ filepath polyparse random ];

View file

@ -0,0 +1,19 @@
{ cabal, random, testFramework, tfRandom }:
cabal.mkDerivation (self: {
pname = "QuickCheck";
version = "2.7.1";
sha256 = "1hk19q7lfvja7g626hbbq0xs30zsgjpqfalgmdr24fy8sgdchm21";
buildDepends = [ random tfRandom ];
testDepends = [ testFramework ];
patchPhase = ''
sed -i -e 's|QuickCheck == .*,|QuickCheck,|' QuickCheck.cabal
'';
meta = {
homepage = "http://code.haskell.org/QuickCheck";
description = "Automatic testing of Haskell programs";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View file

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "alsa-pcm"; pname = "alsa-pcm";
version = "0.6"; version = "0.6.0.1";
sha256 = "10cmlf1s9y65cs81wn7xwgcd4218n3h3p34avibv3fa7n3q9b4x1"; sha256 = "0gnq4p172sqmlks6aykzr5l2qx2shrs2fypcvs4g56c9zpk3c3ax";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

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