Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
d8648c47cf
@ -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
|
||||
|
@ -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>";
|
||||
|
@ -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;
|
||||
}
|
||||
});
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
198
nixos/modules/security/duosec.nix
Normal file
198
nixos/modules/security/duosec.nix
Normal 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 user’s 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
|
||||
'');
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
|
280
nixos/modules/services/networking/btsync.nix
Normal file
280
nixos/modules/services/networking/btsync.nix
Normal 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 ];
|
||||
};
|
||||
}
|
58
nixos/modules/services/networking/ngircd.nix
Normal file
58
nixos/modules/services/networking/ngircd.nix
Normal 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.";
|
||||
};
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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}"
|
||||
|
@ -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 = "
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 =
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
39
pkgs/applications/audio/ekho/default.nix
Normal file
39
pkgs/applications/audio/ekho/default.nix
Normal 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 ];
|
||||
}
|
@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
|
||||
description = "Gigasampler file access library";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://drobilla.net/software/jalv;
|
||||
license = licenses.isc;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -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.
|
||||
'';
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
|
||||
description = "graphical frontend to LinuxSampler";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -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; {
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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 = [
|
||||
|
56
pkgs/applications/graphics/shotwell/default.nix
Normal file
56
pkgs/applications/graphics/shotwell/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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 = [
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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" \
|
||||
|
16
pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff
Normal file
16
pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff
Normal 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})
|
||||
|
@ -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 =
|
||||
|
@ -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; [
|
||||
|
31
pkgs/applications/networking/newsreaders/slrn/default.nix
Normal file
31
pkgs/applications/networking/newsreaders/slrn/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
|
19
pkgs/applications/networking/p2p/ncdc/default.nix
Normal file
19
pkgs/applications/networking/p2p/ncdc/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 =
|
||||
|
@ -128,5 +128,6 @@ rec {
|
||||
gitg = callPackage ./misc/gitg { };
|
||||
|
||||
libgit2-glib = callPackage ./misc/libgit2-glib { };
|
||||
|
||||
|
||||
gexiv2 = callPackage ./misc/gexiv2 { };
|
||||
}
|
||||
|
25
pkgs/desktops/gnome-3/misc/gexiv2/default.nix
Normal file
25
pkgs/desktops/gnome-3/misc/gexiv2/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -3,6 +3,8 @@
|
||||
kde {
|
||||
buildInputs = [ kdelibs ];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
|
||||
meta = {
|
||||
description = "KDE free disk space utility";
|
||||
};
|
||||
|
@ -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";
|
||||
|
@ -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}";
|
||||
|
||||
|
@ -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}";
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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}"
|
||||
'';
|
||||
|
||||
|
@ -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}"
|
||||
'';
|
||||
|
||||
|
@ -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}"
|
||||
'';
|
||||
|
||||
|
12
pkgs/development/compilers/mono/build-fix-llvm.patch
Normal file
12
pkgs/development/compilers/mono/build-fix-llvm.patch
Normal 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
|
@ -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 ?
|
||||
};
|
||||
}
|
||||
|
59
pkgs/development/compilers/mono/llvm.nix
Normal file
59
pkgs/development/compilers/mono/llvm.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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";
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
|
||||
description = "A plugin standard for audio systems";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
12
pkgs/development/libraries/facile/ocaml_4.xx.patch
Normal file
12
pkgs/development/libraries/facile/ocaml_4.xx.patch
Normal 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 =
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
downloadPage = "http://geolite.maxmind.com/download/geoip/api/c/";
|
||||
sourceRegexp = "GeoIP-[0-9.]+[.]tar[.]gz";
|
||||
choiceCommand = "tail -1";
|
||||
baseName = "geoip";
|
||||
}
|
@ -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 =
|
||||
|
@ -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 {
|
||||
|
@ -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; };
|
||||
}
|
||||
|
24
pkgs/development/libraries/gstreamer/ges/default.nix
Normal file
24
pkgs/development/libraries/gstreamer/ges/default.nix
Normal 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 ];
|
||||
}
|
29
pkgs/development/libraries/gstreamer/gnonlin/default.nix
Normal file
29
pkgs/development/libraries/gstreamer/gnonlin/default.nix
Normal 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 ];
|
||||
}
|
@ -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 {
|
||||
|
@ -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 ];
|
||||
|
@ -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 =
|
||||
|
@ -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 {
|
||||
|
@ -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/";
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
19
pkgs/development/libraries/haskell/QuickCheck/2.7.1.nix
Normal file
19
pkgs/development/libraries/haskell/QuickCheck/2.7.1.nix
Normal 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 ];
|
||||
};
|
||||
})
|
@ -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
Loading…
Reference in New Issue
Block a user