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>";
aszlig = "aszlig <aszlig@redmoonstudios.org>";
bbenoist = "Baptist BENOIST <return_0@live.com>";
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
bjg = "Brian Gough <bjg@gnu.org>";
bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";

View file

@ -497,7 +497,7 @@ sub waitForX {
retry sub {
my ($status, $out) = $self->execute("journalctl -bu systemd-logind | grep Linked");
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;
}
});

View file

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

View file

@ -61,6 +61,7 @@
./security/apparmor.nix
./security/apparmor-suid.nix
./security/ca.nix
./security/duosec.nix
./security/pam.nix
./security/pam_usb.nix
./security/polkit.nix
@ -154,6 +155,7 @@
./services/networking/avahi-daemon.nix
./services/networking/bind.nix
./services/networking/bitlbee.nix
./services/networking/btsync.nix
./services/networking/connman.nix
./services/networking/cntlm.nix
./services/networking/chrony.nix
@ -179,6 +181,7 @@
./services/networking/minidlna.nix
./services/networking/nat.nix
./services/networking/networkmanager.nix
./services/networking/ngircd.nix
./services/networking/notbit.nix
./services/networking/ntopng.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";
wantedBy = [ "multi-user.target" ];
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 ];

View file

@ -250,9 +250,6 @@ in
rm /tmp/mysql_init
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 {
type = types.bool;
default = true;
default = false;
description = ''
Whether to show the NixOS manual on one of the virtual
consoles.

View file

@ -4,17 +4,31 @@ with pkgs.lib;
let
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; ''
--nodaemon --syslog --prefix=${name} --pidfile /var/run/${name}.pid \
--uid ${toString uids.graphite} --gid ${toString uids.graphite} ${name}
--nodaemon --syslog --prefix=${name} --pidfile ${dataDir}/${name}.pid ${name}
'';
carbonEnv = {
PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
GRAPHITE_ROOT = dataDir;
GRAPHITE_CONF_DIR = "/etc/graphite/";
GRAPHITE_CONF_DIR = configDir;
GRAPHITE_STORAGE_DIR = dataDir;
};
@ -23,6 +37,14 @@ in {
###### interface
options.services.graphite = {
dataDir = mkOption {
type = types.path;
default = "/var/db/graphite";
description = ''
Data directory for graphite.
'';
};
web = {
enable = mkOption {
description = "Whether to enable graphite web frontend";
@ -38,8 +60,8 @@ in {
port = mkOption {
description = "Graphite web frontend port";
default = "8080";
type = types.str;
default = 8080;
type = types.int;
};
};
@ -152,31 +174,17 @@ in {
###### implementation
config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable) {
environment.etc = lists.filter (el: el.source != null) [
{ source = writeTextOrNull "carbon.conf" cfg.carbon.config;
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 {
systemd.services.carbonCache = {
enable = cfg.carbon.enableCache;
description = "Graphite Data Storage Backend";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
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 = [
pkgs.pythonPackages.carbon
cfg.carbon.config
@ -185,33 +193,45 @@ in {
cfg.carbon.rewriteRules
];
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";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
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 = [
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";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
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 = [
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";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
@ -224,14 +244,15 @@ in {
serviceConfig = {
ExecStart = ''
${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'';
User = "graphite";
Group = "graphite";
};
preStart = ''
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
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
@ -259,7 +280,6 @@ in {
uid = config.ids.uids.graphite;
description = "Graphite daemon user";
home = dataDir;
createHome = true;
};
users.extraGroups.graphite.gid = config.ids.gids.graphite;
};

View file

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

View file

@ -46,6 +46,16 @@ in
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";
stopOn = "stopping network-interfaces";
preStart = ''
mkdir -m 0755 /afs || true
mkdir -m 0755 -p ${cfg.cacheDirectory} || true
preStart = ''
mkdir -p -m 0755 /afs
mkdir -m 0700 -p ${cfg.cacheDirectory}
${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 = ''
umount /afs
# Doing this in preStop, because after these commands AFS is basically
# 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
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
cfg = config.services.elasticsearch;
es_home = "/var/lib/elasticsearch";
configFile = pkgs.writeText "elasticsearch.yml" ''
esConfig = ''
network.host: ${cfg.host}
network.port: ${cfg.port}
network.tcp.port: ${cfg.tcp_port}
network.port: ${toString cfg.port}
network.tcp.port: ${toString cfg.tcp_port}
cluster.name: ${cfg.cluster_name}
${cfg.extraConf}
'';
configDir = pkgs.buildEnv {
name = "elasticsearch-config";
paths = [
(pkgs.writeTextDir "elasticsearch.yml" esConfig)
(pkgs.writeTextDir "logging.yml" cfg.logging)
];
};
in {
###### interface
@ -34,14 +40,14 @@ in {
port = mkOption {
description = "Elasticsearch port to listen for HTTP traffic";
default = "9200";
type = types.str;
default = 9200;
type = types.int;
};
tcp_port = mkOption {
description = "Elasticsearch port for the node to node communication";
default = "9300";
type = types.str;
default = 9300;
type = types.int;
};
cluster_name = mkOption {
@ -79,27 +85,32 @@ in {
'';
type = types.str;
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/elasticsearch";
description = ''
Data directory for elasticsearch.
'';
};
};
###### implementation
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 = {
description = "Elasticsearch daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = { ES_HOME = es_home; };
environment = { ES_HOME = cfg.dataDir; };
serviceConfig = {
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=/etc/elasticsearch";
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=${configDir}";
User = "elasticsearch";
};
preStart = ''
mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
'';
};
environment.systemPackages = [ pkgs.elasticsearch ];
@ -108,8 +119,7 @@ in {
name = "elasticsearch";
uid = config.ids.uids.elasticsearch;
description = "Elasticsearch daemon user";
home = es_home;
createHome = true;
home = cfg.dataDir;
};
};
}

View file

@ -6,6 +6,26 @@ let
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 {
options = {
@ -101,7 +121,8 @@ in {
inherit (cfg) user group javaPackage;
warFile = "${cfg.solrPackage}/lib/solr.war";
extraOptions = [
"--commonLibFolder=${cfg.solrPackage}/lib/ext"
"--commonLibFolder=${solrJars}/lib"
"--useJasper"
] ++ cfg.extraWinstoneOptions;
extraJavaOptions = [
"-Dsolr.solr.home=${cfg.solrHome}"

View file

@ -9,6 +9,11 @@ let
user ${cfg.user} ${cfg.group};
daemon off;
${cfg.config}
${optionalString (cfg.httpConfig != "") ''
http {
${cfg.httpConfig}
}
''}
${cfg.appendConfig}
'';
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 {
default = "/var/spool/nginx";
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 =
[ gnome3.evince
gnome3.eog

View file

@ -81,7 +81,7 @@ in
environment.pathsToLink =
[ "/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.
services.udisks2.enable = true;

View file

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

View file

@ -131,13 +131,12 @@ if ! mountpoint -q /run; then
mount -t tmpfs -o "mode=0755,size=@runSize@" none /run
fi
# Create a ramfs on /run/keys to hold secrets that shouldn't
# be written to disk (generally used for nixops, harmless
# elsehwere)
# Create a ramfs on /run/keys to hold secrets that shouldn't be
# written to disk (generally used for NixOps, harmless elsewhere).
if ! mountpoint -q /run/keys; then
rm -rf /run/keys
mkdir -m 0750 /run/keys
chown root:keys /run/keys
chown 0:96 /run/keys
mount -t ramfs none /run/keys
fi
@ -162,6 +161,12 @@ echo "running activation script..."
$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.
ln -sfn "$systemConfig" /run/booted-system

View file

@ -19,6 +19,8 @@ let
sources = map (x: x.source) etc';
targets = map (x: x.target) etc';
modes = map (x: x.mode) etc';
uids = map (x: x.uid) etc';
gids = map (x: x.gid) etc';
};
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 = {

View file

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

View file

@ -60,7 +60,15 @@ sub link {
if ($mode eq "direct-symlink") {
atomicSymlink readlink("$static/$fn"), $target or warn;
} 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;
chown int($uid), int($gid), "$target.tmp" or warn;
chmod oct($mode), "$target.tmp" or warn;
rename "$target.tmp", $target or warn;
}

View file

@ -1,7 +1,9 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
diskSize = "100G";
in
{
imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ];
@ -12,7 +14,7 @@ with pkgs.lib;
''
mkdir $out
diskImage=$out/$diskImageBase
truncate $diskImage --size 10G
truncate $diskImage --size ${diskSize}
mv closure xchg/
'';
@ -20,8 +22,9 @@ with pkgs.lib;
''
PATH=$PATH:${pkgs.gnutar}/bin:${pkgs.gzip}/bin
pushd $out
tar -Szcf $diskImageBase.tar.gz $diskImageBase
rm $out/$diskImageBase
mv $diskImageBase disk.raw
tar -Szcf $diskImageBase.tar.gz disk.raw
rm $out/disk.raw
popd
'';
diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
@ -32,7 +35,7 @@ with pkgs.lib;
''
# Create partition table
${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
. /sys/class/block/vda1/uevent
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";
license = licenses.gpl2;
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
, librdf_rasqal, jackaudio, flac, libsamplerate, alsaLib, libxml2
, lilv, lv2, serd, sord, sratom, suil # these are probably optional
, libxslt, libsndfile, libsigcxx, libusb, cairomm, glib, pango
, gtk, glibmm, gtkmm, libgnomecanvas, libgnomecanvasmm, liblo, aubio
, fftwSinglePrec, libmad, automake, autoconf, libtool, liblrdf, curl }:
{ 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-${version}";
version = "2.8.16";
name = "ardour-${tag}";
src = fetchurl {
url = "mirror://gentoo/distfiles/${name}.tar.bz2";
sha256 = "0h2y0x4yznalllja53anjil2gmgcb26f39zshc4gl1d1kc8k5vip";
src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git;
rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
};
postPatch = ''
#sed -e "s#/usr/bin/which#type -P#" -i libs/glibmm2/autogen.sh
echo '#include "ardour/svn_revision.h"' > libs/ardour/svn_revision.cc
echo -e 'namespace ARDOUR {\n extern const char* svn_revision = "2.8.12";\n }\n' >> libs/ardour/svn_revision.cc
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
'';
buildInputs = [
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
];
configurePhase = "python waf configure --optimize --prefix=$out";
buildPhase = ''
mkdir -p $out
export CXX=g++
scons PREFIX=$out SYSLIBS=1 install
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
'';
installPhase = ":";
meta = {
meta = with stdenv.lib; {
description = "Multi-track hard disk recording software";
longDescription = ''
Broken: use ardour3-svn instead
Also read "The importance of Paying Something" on their homepage, please!
'';
homepage = http://ardour.org/;
branch = "2";
license = "GPLv2";
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
};
}

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";
license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View file

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

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "LASH Audio Session Handler";
description = "A Linux Audio Session Handler";
longDescription = ''
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";
license = licenses.gpl3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View file

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

View file

@ -1,28 +1,20 @@
{ stdenv, fetchurl, kdevplatform, cmake, pkgconfig, automoc4, shared_mime_info,
kdebase_workspace, gettext, perl, okteta }:
kdebase_workspace, gettext, perl, okteta, qjson }:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "4.3.1";
version = "4.6.0";
pname = "kdevelop";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
sha256 = "0015hv39rqhyq1w6jw65lx7ls4l5pc3a2asvd5zsd65831vrfxxs";
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
sha256 = "1ee9e7b8c46f575dd29d920cfd6284130f2e738a2e1f52dfd97b075fab2e4c73";
};
buildInputs = [ kdevplatform kdebase_workspace okteta ];
buildInputs = [ kdevplatform kdebase_workspace okteta qjson ];
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";
meta = with stdenv.lib; {

View file

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

View file

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

View file

@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "yi";
version = "0.7.1";
sha256 = "111xg7qpjhsqf6pfr136wh8km3lrgpzghd9h5rlypafr61w59vly";
version = "0.7.2";
sha256 = "0g0hvr4zqcrmdl6mbdmrfxd5m51fhkhslvl9piwq83g2wirxqbvm";
isLibrary = true;
isExecutable = true;
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 = ''
make install
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
'';

View file

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

View file

@ -6,13 +6,13 @@
sha256 = "0qbv6prxl18y5824pfd13ng9798g561gzb6nypwp502hqr45jvb6";
};
beta = {
version = "34.0.1847.45";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.45.tar.xz";
sha256 = "0ypz6cclddiasmy8z5p97ndpl9xb7p5ncn9dxm6zkffxyagnx531";
version = "34.0.1847.60";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.60.tar.xz";
sha256 = "1na5d6z4a0wkabn7cj62vyiv3mmvcb6qdvrkyy6fj79h7gk2hb7k";
};
stable = {
version = "33.0.1750.149";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.149.tar.xz";
sha256 = "111hml6kjfzps9addvhcjygjb2k65spknx2zc6pnz4ygshynspqn";
version = "33.0.1750.152";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.152.tar.xz";
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 }:
stdenv.mkDerivation rec {
name = "newsbeuter-2.7";
name = "newsbeuter-2.8";
src = fetchurl {
url = "http://www.newsbeuter.org/downloads/${name}.tar.gz";
sha256 = "0flhzzlbdirjmrq738gmcxqqnifg3kb7plcwqcxshpizmjkhswp6";
sha256 = "013qi8yghpms2qq1b3xbrlmfgpj0ybgk0qhj245ni4kpxila0wn8";
};
buildInputs
# use gettext instead of libintlOrEmpty so we have access to the msgfmt
# command
= [ pkgconfig sqlite curl libxml2 stfl json_c ncurses gettext perl ]
= [ pkgconfig sqlite curl libxml2 stfl json-c-0-11 ncurses gettext perl ]
++ libiconvOrEmpty
++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
preBuild = ''
sed -i -e 104,108d config.sh
sed -i -e 110,114d config.sh
sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
export LDFLAGS=-lncursesw
'';

View file

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

View file

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

View file

@ -17,6 +17,13 @@ stdenv.mkDerivation rec {
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 = ''
wrapProgram "$out/bin/weechat" \
--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 }:
stdenv.mkDerivation rec {
version = "20131130";
version = "20140312";
name = "sup-${version}";
meta = {
@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = git://github.com/sup-heliotrope/sup.git;
rev = "a5a1e39034204ac4b05c9171a71164712690b010";
sha256 = "0w2w7dcif1ri1qq81csz7gj45rqd9z7hjd6x29awibybyyqyvj5s";
rev = "0cad7b308237c07b8a46149908b2ad4806ac3d1d";
sha256 = "83534b6ad9fb6aa883d630c927e3a71bd09a646e3254b4eb0cc7a09f69a525bc";
};
buildInputs =

View file

@ -6,14 +6,14 @@
}:
let pname = "liferea";
version = "1.10.6";
version = "1.10.7";
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.gz";
sha256 = "0vp19z4p3cn3zbg1zjpg2iyzwq893dx5c1kh6aac06s3rf1124gm";
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
sha256 = "17kvg44brdz99firr5h5qx8icvadlr7p1cz3xr3437sf5rhj25wh";
};
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;
pname = "ktorrent";
version = "4.2.1";
version = "4.3.1";
src = fetchurl {
url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
sha256 = "1b6w7i1vvq8mlw9yrlxvb51hvaj6rpl8lv9b9zagyl3wcanz73zd";
sha256 = "66094f6833347afb0c49e332f0ec15ec48db652cbe66476840846ffd5ca0e4a1";
};
patches = [ ./find-workspace.diff ];
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
meta = {
description = "KDE integrated BtTorrent client";
homepage = http://ktorrent.org;
homepage = http://ktorrent.pwsp.net;
maintainers = with stdenv.lib.maintainers; [ sander urkud ];
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
, dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance
, extensibleExceptions, feed, filepath, git, gnupg1, gnutls, hamlet
@ -7,31 +7,31 @@
, MonadCatchIOTransformers, monadControl, mtl, network
, networkConduit, networkInfo, networkMulticast
, networkProtocolXmpp, openssh, optparseApplicative, perl
, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, SHA, stm
, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text, time
, transformers, unixCompat, utf8String, uuid, wai, waiLogger, warp
, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault
, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, securemem
, SHA, stm, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text
, time, transformers, unixCompat, utf8String, uuid, wai, waiLogger
, warp, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault
, yesodForm, yesodStatic
}:
cabal.mkDerivation (self: {
pname = "git-annex";
version = "5.20140306";
sha256 = "1kjgqrz0wnccylrbdiwj1yndg7v2k09f5h2vkk06bnx02xmwvjl9";
version = "5.20140320";
sha256 = "0jhg5nbvdsiaprpj4h57fpfskhx0nqva4yx6krfd90i9gwgkm8l5";
isLibrary = false;
isExecutable = true;
buildDepends = [
aeson async blazeBuilder bloomfilter caseInsensitive clientsession
cryptoApi cryptohash dataDefault dataenc DAV dbus dlist dns
editDistance extensibleExceptions feed filepath gnutls hamlet
hinotify hS3 hslogger HTTP httpClient httpConduit httpTypes IfElse
json liftedBase MissingH MonadCatchIOTransformers monadControl mtl
network networkConduit networkInfo networkMulticast
networkProtocolXmpp optparseApplicative QuickCheck random regexTdfa
SafeSemaphore SHA stm tasty tastyHunit tastyQuickcheck tastyRerun
text time transformers unixCompat utf8String uuid wai waiLogger
warp warpTls xmlTypes yesod yesodCore yesodDefault yesodForm
yesodStatic
aeson async blazeBuilder bloomfilter byteable caseInsensitive
clientsession cryptoApi cryptohash dataDefault dataenc DAV dbus
dlist dns editDistance extensibleExceptions feed filepath gnutls
hamlet hinotify hS3 hslogger HTTP httpClient httpConduit httpTypes
IfElse json liftedBase MissingH MonadCatchIOTransformers
monadControl mtl network networkConduit networkInfo
networkMulticast networkProtocolXmpp optparseApplicative QuickCheck
random regexTdfa SafeSemaphore securemem SHA stm tasty tastyHunit
tastyQuickcheck tastyRerun text time transformers unixCompat
utf8String uuid wai waiLogger warp warpTls xmlTypes yesod yesodCore
yesodDefault yesodForm yesodStatic
];
buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
configureFlags = "-fS3

View file

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

View file

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

View file

@ -5,6 +5,7 @@
python3Packages.buildPythonPackage rec {
name = "kazam-${version}";
version = "1.4.3";
namePrefix = "";
src = fetchurl {
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!
# Now, it will just download and package Waf, mimetizing bootstrap.py behaviour
let
let
waf = fetchurl {
url = https://waf.googlecode.com/files/waf-1.7.13;
sha256 = "03cc750049350ee01cdbc584b70924e333fcc17ba4a2d04648dab1535538a873";
@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
python3 ${waf} install
# Maybe not needed, but it doesn't hurt anyway: a standard font
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 = {

View file

@ -13,12 +13,12 @@ stdenv.mkDerivation rec {
version = "1.20";
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";
};
buildInputs = with stdenv.lib;
optionals localBios [ nasm ]
optionals localBios [ nasm ]
++ optionals sdlSupport [ SDL ];
builder = ./builder.sh;
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
description = "An open-source 8086 emulator";
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 based on an IOCCC 2013 winning entry. In fact that is the "unobfuscated" version :)
'';
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";
sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr";
};
buildInputs = with stdenv.lib;
[ libX11 mesa ]
++ optionals sdlSupport [ SDL ]
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
++ optionals curlSupport [ curl ];
configureFlags = ''
--with-x11
--with-x11
--with-term=${if termSupport then "yes" else "no"}
--with-sdl=${if sdlSupport then "yes" else "no"}
--with-svga=no
@ -42,11 +42,11 @@ stdenv.mkDerivation rec {
--enable-plugins=no
--enable-disasm
--enable-debugger
--enable-ne2000
--enable-e1000
--enable-sb16
--enable-voodoo
--enable-usb
--enable-ne2000
--enable-e1000
--enable-sb16
--enable-voodoo
--enable-usb
--enable-pnic
'';

View file

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

View file

@ -2,7 +2,7 @@
, kernel ? pkgs.linux_3_10
, img ? "bzImage"
, 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;
@ -57,6 +57,7 @@ rec {
mknod ${dev}/random c 1 8
mknod ${dev}/urandom c 1 9
mknod ${dev}/tty c 5 0
mknod ${dev}/rtc c 254 0
. /sys/class/block/${hd}/uevent
mknod ${dev}/${hd} b $MAJOR $MINOR
'';
@ -159,6 +160,10 @@ rec {
#! ${bash}/bin/sh
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_BUILD_TOP=/tmp
export TMPDIR=/tmp

View file

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

View file

@ -128,5 +128,6 @@ rec {
gitg = callPackage ./misc/gitg { };
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 {
buildInputs = [ kdelibs ];
enableParallelBuilding = false;
meta = {
description = "KDE free disk space utility";
};

View file

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

View file

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

View file

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

View file

@ -1,18 +1,30 @@
{ stdenv, fetchurl, mono, unzip, pkgconfig
} :
stdenv.mkDerivation rec {
pname = "fsharp";
date = "2011-08-10";
name = "${pname}-${date}";
{ stdenv, fetchgit, mono, pkgconfig, autoconf, automake, which }:
src = fetchurl {
url = "http://download.mono-project.com/sources/fsharp/fsharp-cc126f2.zip";
sha256 = "03j2ypnfddl2zpvg8ivhafjy8dlz49b38rdy89l8c3irxdsb7k6i";
stdenv.mkDerivation rec {
name = "fsharp-${version}";
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:
# The file "/nix/store/path/whatever.exe" is an not a valid CIL image
@ -20,9 +32,9 @@ stdenv.mkDerivation rec {
meta = {
description = "A functional CLI language";
homepage = "http://tryfsharp.org/";
homepage = "http://fsharp.org/";
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.raskin ];
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
platforms = with stdenv.lib.platforms; linux;
};
}

View file

@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
echo "${buildMK}" > mk/build.mk
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}"
'';

View file

@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
echo "${buildMK}" > mk/build.mk
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}"
'';

View file

@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
echo "${buildMK}" > mk/build.mk
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}"
'';

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 {
name = "mono-2.11.4";
name = "mono-${version}";
version = "3.2.8";
src = fetchurl {
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];
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
# 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":
# 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
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`)
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
#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/;
description = "Cross platform, open source .NET development framework";
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 ?
};
}

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
majorVersion = "3.4";
version = "${majorVersion}.0";
fullVersion = "${version}rc2";
fullVersion = "${version}";
buildInputs = filter (p: p != null) [
zlib bzip2 gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
@ -30,7 +30,7 @@ stdenv.mkDerivation {
src = fetchurl {
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";

View file

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

View file

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

View file

@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
};
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";
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;
stdenv.mkDerivation rec {
name = "ffmpeg-0.10.11";
name = "ffmpeg-0.10.12";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "1l1nyvsfafl9w0falv1hcm65r2rlxyb59har0rkrrpi56fj1ma4r";
sha256 = "00nvm3iysn8zincpvv1abqrxqj1ky0322dh2j9csjw983358538i";
};
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that

View file

@ -1,24 +1,19 @@
a :
let
s = import ./src-for-default.nix;
buildInputs = with a; [
zlib
];
in
rec {
src = a.fetchUrlFromSrcInfo s;
{ stdenv, fetchurl }:
inherit (s) name;
inherit buildInputs;
configureFlags = [];
let version = "1.6.0"; in
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
stdenv.mkDerivation {
name = "geoip-${version}";
src = fetchurl {
url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz";
sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7";
};
meta = {
description = "Geolocation API";
maintainers = [
a.lib.maintainers.raskin
];
maintainers = [ stdenv.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;
stdenv.mkDerivation rec {
name = "gnutls-3.2.12";
name = "gnutls-3.2.12.1";
src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
sha256 = "1zwk9qkxn3190nssyamd7jsb3ag6mnnln3jwbgmjs1w306dzwafi";
sha256 = "1787n4iard3ad0p44xbl4aj3r3f5ir3sz0b2s27qpaaia2w4774g";
};
patches =

View file

@ -9,11 +9,18 @@
stdenv.mkDerivation rec {
name = "gst-plugins-bad-1.2.3";
meta = {
homepage = "http://gstreamer.freedesktop.org";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
meta = with stdenv.lib; {
description = "Gstreamer Bad Plugins";
homepage = "http://gstreamer.freedesktop.org";
longDescription = ''
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 {

View file

@ -14,4 +14,8 @@ rec {
gst-libav = callPackage ./libav { inherit gst-plugins-base; };
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 {
name = "gst-plugins-good-1.2.3";
meta = {
homepage = "http://gstreamer.freedesktop.org";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
meta = with stdenv.lib; {
description = "Gstreamer Good Plugins";
homepage = "http://gstreamer.freedesktop.org";
longDescription = ''
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 {

View file

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

View file

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

View file

@ -7,11 +7,18 @@
stdenv.mkDerivation rec {
name = "gst-plugins-ugly-1.2.3";
meta = {
homepage = "http://gstreamer.freedesktop.org";
license = stdenv.lib.licenses.lgpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
meta = with stdenv.lib; {
description = "Gstreamer Ugly Plugins";
homepage = "http://gstreamer.freedesktop.org";
longDescription = ''
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 {

View file

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

View file

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

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "HaXml";
version = "1.24";
sha256 = "18kvavqa84k2121ppxngn39fjz4w63chngb3255w1fhdz13v3ydn";
version = "1.24.1";
sha256 = "1pvqgczksxasayvdb6d4g7ya7g7w1v9hsa35kaxm9bcic9y8q9az";
isLibrary = true;
isExecutable = true;
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: {
pname = "alsa-pcm";
version = "0.6";
sha256 = "10cmlf1s9y65cs81wn7xwgcd4218n3h3p34avibv3fa7n3q9b4x1";
version = "0.6.0.1";
sha256 = "0gnq4p172sqmlks6aykzr5l2qx2shrs2fypcvs4g56c9zpk3c3ax";
isLibrary = true;
isExecutable = true;
buildDepends = [

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