Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2014-11-24 22:14:25 +01:00
commit a9bad25ffe
374 changed files with 5842 additions and 2060 deletions

View File

@ -134,6 +134,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "Unspecified free software license";
};
gpl1 = spdx {
shortName = "GPL-1.0";
fullName = "GNU General Public License v1.0 only";
};
gpl1Plus = spdx {
spdxId = "GPL-1.0+";
fullName = "GNU General Public License v1.0 or later";

View File

@ -7,6 +7,7 @@
_1126 = "Christian Lask <mail@elfsechsundzwanzig.de>";
abbradar = "Nikolay Amiantov <ab@fmap.me>";
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
aherrmann = "Andreas Herrmann <andreash87@gmx.ch>";
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
akc = "Anders Claesson <akc@akc.is>";
algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
@ -84,7 +85,9 @@
joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
joamaki = "Jussi Maki <joamaki@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>";
jpbernardy = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";
jwiegley = "John Wiegley <johnw@newartisans.com>";
jzellner = "Jeff Zellner <jeffz@eml.cc>";
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
koral = "Koral <koral@mailoo.org>";
kragniz = "Louis Taylor <kragniz@gmail.com>";
@ -95,6 +98,7 @@
lovek323 = "Jason O'Conal <jason@oconal.id.au>";
ludo = "Ludovic Courtès <ludo@gnu.org>";
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
marcweber = "Marc Weber <marco-oweber@gmx.de>";
matejc = "Matej Cotman <cotman.matej@gmail.com>";
@ -105,6 +109,7 @@
MP2E = "Cray Elliott <MP2E@archlinux.us>";
msackman = "Matthew Sackman <matthew@wellquite.org>";
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";

View File

@ -30,34 +30,13 @@ let
else
fn;
# Convert the list of options into an XML file and a JSON file. The builtin
# unsafeDiscardStringContext is used to prevent the realisation of the store
# paths which are used in options definitions.
# Convert the list of options into an XML file. The builtin
# unsafeDiscardStringContext is used to prevent the realisation of
# the store paths which are used in options definitions.
optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext (builtins.toXML optionsList'));
optionsJSON = builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsList'));
# Tools-friendly version of the list of NixOS options.
options' = stdenv.mkDerivation {
name = "options";
buildCommand = ''
# Export list of options in different format.
dst=$out/share/doc/nixos
mkdir -p $dst
cp ${optionsJSON} $dst/options.json
cp ${optionsXML} $dst/options.xml
mkdir -p $out/nix-support
echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products
echo "file xml $dst/options.xml" >> $out/nix-support/hydra-build-products
''; # */
meta.description = "List of NixOS options in various formats.";
};
optionsDocBook = runCommand "options-db.xml" {} ''
optionsXML=${options'}/share/doc/nixos/options.xml
optionsXML=${optionsXML}
if grep /nixpkgs/nixos/modules $optionsXML; then
echo "The manual appears to depend on the location of Nixpkgs, which is bad"
echo "since this prevents sharing via the NixOS channel. This is typically"
@ -83,8 +62,25 @@ let
in rec {
# Tools-friendly version of the list of NixOS options.
options = options';
# The NixOS options in JSON format.
optionsJSON = stdenv.mkDerivation {
name = "options-json";
buildCommand = ''
# Export list of options in different format.
dst=$out/share/doc/nixos
mkdir -p $dst
cp ${builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON
(listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList'))))
} $dst/options.json
mkdir -p $out/nix-support
echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products
''; # */
meta.description = "List of NixOS options in JSON format";
};
# Generate the NixOS manual.
manual = stdenv.mkDerivation {

View File

@ -11,14 +11,9 @@
<listitem><para>Boot from the CD.</para></listitem>
<listitem><para>The CD contains a basic NixOS installation. (It
also contains Memtest86+, useful if you want to test new hardware.)
also contains Memtest86+, useful if you want to test new hardware).
When its finished booting, it should have detected most of your
hardware and brought up networking (check
<command>ifconfig</command>). Networking is necessary for the
installer, since it will download lots of stuff (such as source
tarballs or Nixpkgs channel binaries). Its best if you have a DHCP
server on your network. Otherwise configure networking manually
using <command>ifconfig</command>.</para></listitem>
hardware.</para></listitem>
<listitem><para>The NixOS manual is available on virtual console 8
(press Alt+F8 to access).</para></listitem>
@ -29,6 +24,16 @@
<listitem><para>If you downloaded the graphical ISO image, you can
run <command>start display-manager</command> to start KDE.</para></listitem>
<listitem><para>The boot process should have brought up networking (check
<command>ifconfig</command>). Networking is necessary for the
installer, since it will download lots of stuff (such as source
tarballs or Nixpkgs channel binaries). Its best if you have a DHCP
server on your network. Otherwise configure networking manually
using <command>ifconfig</command>.</para>
<para>To manually configure the network on the graphical installer,
first disable NetworkManager with
<command>stop NetworkManager</command>.</para></listitem>
<listitem><para>The NixOS installer doesnt do any partitioning or
formatting yet, so you need to that yourself. Use the following
commands:

View File

@ -28,6 +28,8 @@ services.httpd.package = pkgs.apacheHttpd_2_2;
is now called <literal>ve-<replaceable>container-name</replaceable></literal>
rather than <literal>c-<replaceable>container-name</replaceable></literal>.</para></listitem>
<listitem><para>GNOME 3.10 support has been dropped. The default GNOME version is now 3.12.</para></listitem>
</itemizedlist>
</para>

View File

@ -14,6 +14,10 @@ with lib;
# Include gparted for partitioning disks
environment.systemPackages = [ pkgs.gparted ];
# Provide networkmanager for easy wireless configuration.
networking.networkmanager.enable = true;
networking.wireless.enable = mkForce false;
# KDE complains if power management is disabled (to be precise, if
# there is no power management backend such as upower).
powerManagement.enable = true;

View File

@ -430,7 +430,7 @@ my $hwConfig = <<EOF;
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
{
imports =${\multiLineList(" ", @imports)};

View File

@ -159,6 +159,16 @@
prosody = 149;
i2pd = 150;
dnscrypt-proxy = 151;
systemd-network = 152;
systemd-resolve = 153;
systemd-timesync = 154;
liquidsoap = 155;
etcd = 156;
docker-registry = 157;
hbase = 158;
opentsdb = 159;
scollector = 160;
bosun = 161;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -278,12 +288,20 @@
mlmmj = 135;
riemann = 137;
riemanndash = 138;
hbase = 139;
opentsdb = 140;
uhub = 142;
mailpile = 146;
redmine = 147;
seeks = 148;
prosody = 149;
i2pd = 150;
systemd-network = 152;
systemd-resolve = 153;
systemd-timesync = 154;
liquidsoap = 155;
scollector = 156;
bosun = 157;
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!

View File

@ -89,6 +89,7 @@
./services/audio/alsa.nix
# Disabled as fuppes it does no longer builds.
# ./services/audio/fuppes.nix
./services/audio/liquidsoap.nix
./services/audio/mpd.nix
./services/audio/mopidy.nix
./services/backup/almir.nix
@ -107,6 +108,7 @@
./services/databases/4store.nix
./services/databases/couchdb.nix
./services/databases/firebird.nix
./services/databases/hbase.nix
./services/databases/influxdb.nix
./services/databases/memcached.nix
./services/databases/monetdb.nix
@ -114,6 +116,7 @@
./services/databases/mysql.nix
./services/databases/neo4j.nix
./services/databases/openldap.nix
./services/databases/opentsdb.nix
./services/databases/postgresql.nix
./services/databases/redis.nix
./services/databases/virtuoso.nix
@ -165,6 +168,8 @@
./services/misc/cgminer.nix
./services/misc/dictd.nix
./services/misc/disnix.nix
./services/misc/docker-registry.nix
./services/misc/etcd.nix
./services/misc/felix.nix
./services/misc/folding-at-home.nix
./services/misc/gitolite.nix
@ -185,6 +190,7 @@
./services/misc/uhub.nix
./services/misc/zookeeper.nix
./services/monitoring/apcupsd.nix
./services/monitoring/bosun.nix
./services/monitoring/collectd.nix
./services/monitoring/dd-agent.nix
./services/monitoring/graphite.nix
@ -193,6 +199,7 @@
./services/monitoring/nagios.nix
./services/monitoring/riemann.nix
./services/monitoring/riemann-dash.nix
./services/monitoring/scollector.nix
./services/monitoring/smartd.nix
./services/monitoring/statsd.nix
./services/monitoring/systemhealth.nix

View File

@ -0,0 +1,74 @@
{ config, lib, pkgs, ... }:
with lib;
let
streams = builtins.attrNames config.services.liquidsoap.streams;
streamService =
name:
let stream = builtins.getAttr name config.services.liquidsoap.streams; in
{ inherit name;
value = {
after = [ "network-online.target" "sound.target" ];
description = "${name} liquidsoap stream";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.wget ];
preStart =
''
mkdir -p /var/log/liquidsoap
chown liquidsoap -R /var/log/liquidsoap
'';
serviceConfig = {
PermissionsStartOnly="true";
ExecStart = "${pkgs.liquidsoap}/bin/liquidsoap ${stream}";
User = "liquidsoap";
};
};
};
in
{
##### interface
options = {
services.liquidsoap.streams = mkOption {
description =
''
Set of Liquidsoap streams to start,
one systemd service per stream.
'';
default = {};
example = {
myStream1 = literalExample "\"/etc/liquidsoap/myStream1.liq\"";
myStream2 = literalExample "./myStream2.liq";
myStream3 = literalExample "\"out(playlist(\"/srv/music/\"))\"";
};
type = types.attrsOf (types.either types.path types.str);
};
};
##### implementation
config = mkIf (builtins.length streams != 0) {
users.extraUsers.liquidsoap = {
uid = config.ids.uids.liquidsoap;
group = "liquidsoap";
extraGroups = [ "audio" ];
description = "Liquidsoap streaming user";
home = "/var/lib/liquidsoap";
createHome = true;
};
users.extraGroups.liquidsoap.gid = config.ids.gids.liquidsoap;
systemd.services = builtins.listToAttrs ( map streamService streams );
};
}

View File

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
let
cfg = config.services.crashplan;
@ -6,7 +6,7 @@ let
varDir = "/var/lib/crashplan";
in
with pkgs.lib;
with lib;
{
options = {
@ -60,4 +60,4 @@ with pkgs.lib;
};
};
};
}
}

View File

@ -0,0 +1,133 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.hbase;
configFile = pkgs.writeText "hbase-site.xml" ''
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file://${cfg.dataDir}/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>${cfg.dataDir}/zookeeper</value>
</property>
</configuration>
'';
configDir = pkgs.runCommand "hbase-config-dir" {} ''
mkdir -p $out
cp ${cfg.package}/conf/* $out/
rm $out/hbase-site.xml
ln -s ${configFile} $out/hbase-site.xml
'' ;
in {
###### interface
options = {
services.hbase = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to run HBase.
'';
};
package = mkOption {
type = types.package;
default = pkgs.hbase;
example = literalExample "pkgs.hbase";
description = ''
HBase package to use.
'';
};
user = mkOption {
type = types.string;
default = "hbase";
description = ''
User account under which HBase runs.
'';
};
group = mkOption {
type = types.string;
default = "hbase";
description = ''
Group account under which HBase runs.
'';
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/hbase";
description = ''
Specifies location of HBase database files. This location should be
writable and readable for the user the HBase service runs as
(hbase by default).
'';
};
logDir = mkOption {
type = types.path;
default = "/var/log/hbase";
description = ''
Specifies the location of HBase log files.
'';
};
};
};
###### implementation
config = mkIf config.services.hbase.enable {
systemd.services.hbase = {
description = "HBase Server";
wantedBy = [ "multi-user.target" ];
environment = {
JAVA_HOME = "${pkgs.jre}";
HBASE_LOG_DIR = cfg.logDir;
};
preStart =
''
mkdir -p ${cfg.dataDir};
mkdir -p ${cfg.logDir};
if [ "$(id -u)" = 0 ]; then
chown ${cfg.user}:${cfg.group} ${cfg.dataDir}
chown ${cfg.user}:${cfg.group} ${cfg.logDir}
fi
'';
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
ExecStart = "${cfg.package}/bin/hbase --config ${configDir} master start";
};
};
users.extraUsers.hbase = {
description = "HBase Server user";
group = "hbase";
uid = config.ids.uids.hbase;
};
users.extraGroups.hbase.gid = config.ids.gids.hbase;
};
}

View File

@ -0,0 +1,100 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.opentsdb;
configFile = pkgs.writeText "opentsdb.conf" ''
tsd.core.auto_create_metrics = true
tsd.http.request.enable_chunked = true
'';
in {
###### interface
options = {
services.opentsdb = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to run OpenTSDB.
'';
};
package = mkOption {
type = types.package;
default = pkgs.opentsdb;
example = literalExample "pkgs.opentsdb";
description = ''
OpenTSDB package to use.
'';
};
user = mkOption {
type = types.string;
default = "opentsdb";
description = ''
User account under which OpenTSDB runs.
'';
};
group = mkOption {
type = types.string;
default = "opentsdb";
description = ''
Group account under which OpenTSDB runs.
'';
};
port = mkOption {
type = types.int;
default = 4242;
description = ''
Which port OpenTSDB listens on.
'';
};
};
};
###### implementation
config = mkIf config.services.opentsdb.enable {
systemd.services.opentsdb = {
description = "OpenTSDB Server";
wantedBy = [ "multi-user.target" ];
requires = [ "hbase.service" ];
environment.JAVA_HOME = "${pkgs.jre}";
path = [ pkgs.gnuplot ];
preStart =
''
COMPRESSION=NONE HBASE_HOME=${config.services.hbase.package} ${cfg.package}/share/opentsdb/tools/create_table.sh
'';
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
ExecStart = "${cfg.package}/bin/tsdb tsd --staticroot=${cfg.package}/share/opentsdb/static --cachedir=/tmp/opentsdb --port=${toString cfg.port} --config=${configFile}";
};
};
users.extraUsers.opentsdb = {
description = "OpenTSDB Server user";
group = "opentsdb";
uid = config.ids.uids.opentsdb;
};
users.extraGroups.opentsdb.gid = config.ids.gids.opentsdb;
};
}

View File

@ -0,0 +1,82 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.dockerRegistry;
in {
###### interface
options.services.dockerRegistry = {
enable = mkOption {
description = "Whether to enable docker registry server.";
default = false;
type = types.bool;
};
host = mkOption {
description = "Docker registry host or ip to bind to.";
default = "127.0.0.1";
type = types.str;
};
port = mkOption {
description = "Docker registry port to bind to.";
default = 5000;
type = types.int;
};
storagePath = mkOption {
type = types.path;
default = "/var/lib/docker/registry";
description = "Docker registry strorage path.";
};
extraConfig = mkOption {
description = ''
Docker extra registry configuration. See
<link xlink:href="https://github.com/docker/docker-registry/blob/master/config/config_sample.yml"/>
'';
default = {};
type = types.attrsOf types.str;
};
};
config = mkIf cfg.enable {
systemd.services.docker-registry = {
description = "Docker Container Registry";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
environment = {
REGISTRY_HOST = cfg.host;
REGISTRY_PORT = toString cfg.port;
GUNICORN_OPTS = "[--preload]"; # see https://github.com/docker/docker-registry#sqlalchemy
STORAGE_PATH = cfg.storagePath;
} // cfg.extraConfig;
serviceConfig = {
ExecStart = "${pkgs.pythonPackages.docker_registry}/bin/docker-registry";
User = "docker-registry";
Group = "docker";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -p ${cfg.storagePath}
if [ "$(id -u)" = 0 ]; then
chown -R docker-registry:docker ${cfg.storagePath}
fi
'';
postStart = ''
until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.host}:${toString cfg.port}/'; do
sleep 1;
done
'';
};
users.extraGroups.docker.gid = mkDefault config.ids.gids.docker;
users.extraUsers.docker-registry.uid = config.ids.uids.docker-registry;
};
}

View File

@ -0,0 +1,144 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.etcd;
in {
options.services.etcd = {
enable = mkOption {
description = "Whether to enable etcd.";
default = false;
type = types.uniq types.bool;
};
name = mkOption {
description = "Etcd unique node name.";
default = config.networking.hostName;
type = types.str;
};
advertiseClientUrls = mkOption {
description = "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
default = cfg.listenClientUrls;
type = types.listOf types.str;
};
listenClientUrls = mkOption {
description = "Etcd list of URLs to listen on for client traffic.";
default = ["http://localhost:4001"];
type = types.listOf types.str;
};
listenPeerUrls = mkOption {
description = "Etcd list of URLs to listen on for peer traffic.";
default = ["http://localhost:7001"];
type = types.listOf types.str;
};
initialAdvertisePeerUrls = mkOption {
description = "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
default = cfg.listenPeerUrls;
type = types.listOf types.str;
};
initialCluster = mkOption {
description = "Etcd initial cluster configuration for bootstrapping.";
default = ["${cfg.name}=http://localhost:7001"];
type = types.listOf types.str;
};
initialClusterState = mkOption {
description = "Etcd initial cluster configuration for bootstrapping.";
default = "new";
type = types.enum ["new" "existing"];
};
initialClusterToken = mkOption {
description = "Etcd initial cluster token for etcd cluster during bootstrap.";
default = "etcd-cluster";
type = types.str;
};
discovery = mkOption {
description = "Etcd discovery url";
default = "";
type = types.str;
};
extraConf = mkOption {
description = ''
Etcd extra configuration. See
<link xlink:href='https://github.com/coreos/etcd/blob/master/Documentation/configuration.md#environment-variables' />
'';
type = types.attrsOf types.str;
default = {};
example = literalExample ''
{
"CORS": "*",
"NAME": "default-name",
"MAX_RESULT_BUFFER": "1024",
"MAX_CLUSTER_SIZE": "9",
"MAX_RETRY_ATTEMPTS": "3"
}
'';
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/etcd";
description = "Etcd data directory.";
};
};
config = mkIf cfg.enable {
systemd.services.etcd = {
description = "Etcd Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = {
ETCD_NAME = cfg.name;
ETCD_DISCOVERY = cfg.discovery;
ETCD_DATA_DIR = cfg.dataDir;
ETCD_ADVERTISE_CLIENT_URLS = concatStringsSep "," cfg.advertiseClientUrls;
ETCD_LISTEN_CLIENT_URLS = concatStringsSep "," cfg.listenClientUrls;
ETCD_LISTEN_PEER_URLS = concatStringsSep "," cfg.listenPeerUrls;
ETCD_INITIAL_ADVERTISE_PEER_URLS = concatStringsSep "," cfg.initialAdvertisePeerUrls;
} // (optionalAttrs (cfg.discovery == ""){
ETCD_INITIAL_CLUSTER = concatStringsSep "," cfg.initialCluster;
ETCD_INITIAL_CLUSTER_STATE = cfg.initialClusterState;
ETCD_INITIAL_CLUSTER_TOKEN = cfg.initialClusterToken;
}) // (mapAttrs' (n: v: nameValuePair "ETCD_${n}" v) cfg.extraConf);
serviceConfig = {
ExecStart = "${pkgs.etcd}/bin/etcd";
User = "etcd";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown etcd ${cfg.dataDir}; fi
'';
postStart = ''
until ${pkgs.etcdctl}/bin/etcdctl set /nixos/state 'up'; do
sleep 1;
done
until ${pkgs.etcdctl}/bin/etcdctl get /nixos/state | grep up; do
sleep 1;
done
'';
};
environment.systemPackages = [ pkgs.etcdctl ];
users.extraUsers = singleton {
name = "etcd";
uid = config.ids.uids.etcd;
description = "Etcd daemon user";
home = cfg.dataDir;
};
};
}

View File

@ -46,11 +46,19 @@ in
A list of custom git hooks that get copied to <literal>~/.gitolite/hooks/common</literal>.
'';
};
user = mkOption {
type = types.str;
default = "gitolite";
description = ''
Gitolite user account. This is the username of the gitolite endpoint.
'';
};
};
};
config = mkIf cfg.enable {
users.extraUsers.gitolite = {
users.extraUsers.${cfg.user} = {
description = "Gitolite user";
home = cfg.dataDir;
createHome = true;
@ -62,7 +70,7 @@ in
description = "Gitolite initialization";
wantedBy = [ "multi-user.target" ];
serviceConfig.User = "gitolite";
serviceConfig.User = "${cfg.user}";
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;

0
nixos/modules/services/misc/zookeeper.nix Executable file → Normal file
View File

View File

@ -0,0 +1,136 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.bosun;
configFile = pkgs.writeText "bosun.conf" ''
tsdbHost = ${cfg.opentsdbHost}
httpListen = ${cfg.listenAddress}
stateFile = ${cfg.stateFile}
checkFrequency = 5m
${cfg.extraConfig}
'';
in {
options = {
services.bosun = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to run bosun.
'';
};
package = mkOption {
type = types.package;
default = pkgs.bosun;
example = literalExample "pkgs.bosun";
description = ''
bosun binary to use.
'';
};
user = mkOption {
type = types.string;
default = "bosun";
description = ''
User account under which bosun runs.
'';
};
group = mkOption {
type = types.string;
default = "bosun";
description = ''
Group account under which bosun runs.
'';
};
opentsdbHost = mkOption {
type = types.string;
default = "localhost:4242";
description = ''
Host and port of the OpenTSDB database that stores bosun data.
'';
};
listenAddress = mkOption {
type = types.string;
default = ":8070";
description = ''
The host address and port that bosun's web interface will listen on.
'';
};
stateFile = mkOption {
type = types.string;
default = "/var/lib/bosun/bosun.state";
description = ''
Path to bosun's state file.
'';
};
extraConfig = mkOption {
type = types.string;
default = "";
description = ''
Extra configuration options for Bosun. You should describe your
desired templates, alerts, macros, etc through this configuration
option.
A detailed description of the supported syntax can be found at-spi2-atk
http://bosun.org/configuration.html
'';
};
};
};
config = mkIf config.services.bosun.enable {
systemd.services.bosun = {
description = "bosun metrics collector (part of Bosun)";
wantedBy = [ "multi-user.target" ];
preStart =
''
mkdir -p `dirname ${cfg.stateFile}`;
touch ${cfg.stateFile}
touch ${cfg.stateFile}.tmp
if [ "$(id -u)" = 0 ]; then
chown ${cfg.user}:${cfg.group} ${cfg.stateFile}
chown ${cfg.user}:${cfg.group} ${cfg.stateFile}.tmp
fi
'';
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
ExecStart = ''
${cfg.package}/bin/bosun -c ${configFile}
'';
};
};
users.extraUsers.bosun = {
description = "bosun user";
group = "bosun";
uid = config.ids.uids.bosun;
};
users.extraGroups.bosun.gid = config.ids.gids.bosun;
};
}

View File

@ -11,11 +11,15 @@ let
cfg.extraClasspathEntries ++ [ "${riemann}/share/java/riemann.jar" ]
);
riemannConfig = concatStringsSep "\n" (
[cfg.config] ++ (map (f: ''(load-file "${f}")'') cfg.configFiles)
);
launcher = writeScriptBin "riemann" ''
#!/bin/sh
exec ${openjdk}/bin/java ${concatStringsSep "\n" cfg.extraJavaOpts} \
-cp ${classpath} \
riemann.bin ${writeText "riemann.config" cfg.config}
riemann.bin ${writeText "riemann-config.clj" riemannConfig}
'';
in {
@ -36,6 +40,16 @@ in {
Contents of the Riemann configuration file.
'';
};
configFiles = mkOption {
type = with types; listOf path;
default = [];
description = ''
Extra files containing Riemann configuration. These files will be
loaded at runtime by Riemann (with Clojure's
<literal>load-file</literal> function) at the end of the
configuration.
'';
};
extraClasspathEntries = mkOption {
type = with types; listOf str;
default = [];

View File

@ -0,0 +1,114 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.scollector;
collectors = pkgs.runCommand "collectors" {}
''
mkdir -p $out
${lib.concatStringsSep
"\n"
(lib.mapAttrsToList
(frequency: binaries:
"mkdir -p $out/${frequency}\n" +
(lib.concatStringsSep
"\n"
(map (path: "ln -s ${path} $out/${frequency}/$(basename ${path})")
binaries)))
cfg.collectors)}
'';
in {
options = {
services.scollector = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to run scollector.
'';
};
package = mkOption {
type = types.package;
default = pkgs.scollector;
example = literalExample "pkgs.scollector";
description = ''
scollector binary to use.
'';
};
user = mkOption {
type = types.string;
default = "scollector";
description = ''
User account under which scollector runs.
'';
};
group = mkOption {
type = types.string;
default = "scollector";
description = ''
Group account under which scollector runs.
'';
};
bosunHost = mkOption {
type = types.string;
default = "localhost:8070";
description = ''
Host and port of the bosun server that will store the collected
data.
'';
};
collectors = mkOption {
type = types.attrs;
default = {};
example = literalExample "{ 0 = [ \"\${postgresStats}/bin/collect-stats\" ]; }";
description = ''
An attribute set mapping the frequency of collection to a list of
binaries that should be executed at that frequency. You can use "0"
to run a binary forever.
'';
};
};
};
config = mkIf config.services.scollector.enable {
systemd.services.scollector = {
description = "scollector metrics collector (part of Bosun)";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.coreutils pkgs.iproute ];
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
ExecStart = ''
${cfg.package}/bin/scollector -h=${cfg.bosunHost} -c=${collectors}
'';
};
};
users.extraUsers.scollector = {
description = "scollector user";
group = "scollector";
uid = config.ids.uids.scollector;
};
users.extraGroups.scollector.gid = config.ids.gids.scollector;
};
}

View File

@ -6,13 +6,14 @@ let
dnscrypt-proxy = pkgs.dnscrypt-proxy;
cfg = config.services.dnscrypt-proxy;
uid = config.ids.uids.dnscrypt-proxy;
daemonArgs = [ "--daemonize"
"--user=dnscrypt-proxy"
"--local-address=${cfg.localAddress}:${toString cfg.port}"
(optionalString cfg.tcpOnly "--tcp-only")
"--resolvers-list=${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
"--resolver-name=${cfg.resolverName}"
];
daemonArgs =
[ "--daemonize"
"--user=dnscrypt-proxy"
"--local-address=${cfg.localAddress}:${toString cfg.port}"
(optionalString cfg.tcpOnly "--tcp-only")
"--resolvers-list=${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
"--resolver-name=${cfg.resolverName}"
];
in
{

View File

@ -1,9 +1,24 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, utils, ... }:
with lib;
let
cfg = config.services.unifi;
stateDir = "/var/lib/unifi";
cmd = "@${pkgs.icedtea7_jre}/bin/java java -jar ${stateDir}/lib/ace.jar";
mountPoints = [
{
what = "${pkgs.unifi}/dl";
where = "${stateDir}/dl";
}
{
what = "${pkgs.unifi}/lib";
where = "${stateDir}/lib";
}
{
what = "${pkgs.mongodb}/bin";
where = "${stateDir}/bin";
}
];
systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
in
{
@ -32,30 +47,18 @@ in
# to be used as the working directory.
systemd.mounts = map ({ what, where }: {
bindsTo = [ "unifi.service" ];
requiredBy = [ "unifi.service" ];
before = [ "unifi.service" ];
partOf = [ "unifi.service" ];
options = "bind";
what = what;
where = where;
}) [
{
what = "${pkgs.unifi}/dl";
where = "${stateDir}/dl";
}
{
what = "${pkgs.unifi}/lib";
where = "${stateDir}/lib";
}
{
what = "${pkgs.mongodb}/bin";
where = "${stateDir}/bin";
}
];
}) mountPoints;
systemd.services.unifi = {
description = "UniFi controller daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
after = [ "network.target" ] ++ systemdMountPoints;
partOf = systemdMountPoints;
bindsTo = systemdMountPoints;
preStart = ''
# Ensure privacy of state
@ -63,14 +66,14 @@ in
chmod 0700 "${stateDir}"
# Create the volatile webapps
rm -rf "${stateDir}/webapps"
mkdir -p "${stateDir}/webapps"
chown unifi "${stateDir}/webapps"
rm -f "{stateDir}/webapps/ROOT.war"
ln -s "${pkgs.unifi}/webapps/ROOT.war" "${stateDir}/webapps/ROOT.war"
'';
postStop = ''
rm "${stateDir}/webapps/ROOT.war"
rm -rf "${stateDir}/webapps"
'';
serviceConfig = {

View File

@ -37,6 +37,7 @@ let
paths = cfg.drivers;
pathsToLink = [ "/lib/cups" "/share/cups" "/bin" "/etc/cups" ];
postBuild = cfg.bindirCmds;
ignoreCollisions = true;
};
in
@ -107,7 +108,7 @@ in
type = types.listOf types.path;
example = literalExample "[ pkgs.splix ]";
description = ''
CUPS drivers to use. Drivers provided by CUPS, Ghostscript
CUPS drivers to use. Drivers provided by CUPS, cups-filters, Ghostscript
and Samba are added unconditionally.
'';
};
@ -175,7 +176,7 @@ in
};
services.printing.drivers =
[ pkgs.cups pkgs.cups_pdf_filter pkgs.ghostscript additionalBackends
[ pkgs.cups pkgs.ghostscript pkgs.cups_filters additionalBackends
pkgs.perl pkgs.coreutils pkgs.gnused pkgs.bc pkgs.gawk pkgs.gnugrep
];

View File

@ -46,7 +46,7 @@ in
systemd.services.haveged =
{ description = "Entropy Harvesting Daemon";
unitConfig.documentation = "man:haveged(8)";
unitConfig.Documentation = "man:haveged(8)";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.haveged ];
@ -60,4 +60,4 @@ in
};
}
}

View File

@ -308,8 +308,6 @@ in
'';
}) config.containers;
# FIXME: auto-start containers.
# Generate /etc/hosts entries for the containers.
networking.extraHosts = concatStrings (mapAttrsToList (name: cfg: optionalString (cfg.localAddress != null)
''

View File

@ -130,6 +130,7 @@ in rec {
manual = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manual);
manualPDF = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manualPDF)).x86_64-linux;
manpages = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manpages);
options = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux;
# Build the initial ramdisk so Hydra can keep track of its size over time.
@ -235,8 +236,11 @@ in rec {
tests.avahi = callTest tests/avahi.nix {};
tests.bittorrent = callTest tests/bittorrent.nix {};
tests.blivet = callTest tests/blivet.nix {};
tests.chromium = callTest tests/chromium.nix {};
tests.cjdns = callTest tests/cjdns.nix {};
tests.containers = callTest tests/containers.nix {};
tests.dockerRegistry = callTest tests/docker-registry.nix {};
tests.etcd = callTest tests/etcd.nix {};
tests.firefox = callTest tests/firefox.nix {};
tests.firewall = callTest tests/firewall.nix {};
tests.gnome3 = callTest tests/gnome3.nix {};

164
nixos/tests/chromium.nix Normal file
View File

@ -0,0 +1,164 @@
import ./make-test.nix (
{ pkgs
, channelMap ? {
stable = pkgs.chromium;
beta = pkgs.chromiumBeta;
dev = pkgs.chromiumDev;
}
, ...
}: rec {
name = "chromium";
machine.imports = [ ./common/x11.nix ];
startupHTML = pkgs.writeText "chromium-startup.html" ''
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Chromium startup notifier</title>
</head>
<body onload="javascript:document.title='startup done'">
<img src="file://${pkgs.fetchurl {
url = "http://nixos.org/logo/nixos.svg";
sha256 = "0p2iaqcx2cj24xqycfw1pi4i5461gnn0034lafpi99ph435x6z68";
}}" />
</body>
</html>
'';
testScript = let
xdo = name: text: let
xdoScript = pkgs.writeText "${name}.xdo" text;
in "${pkgs.xdotool}/bin/xdotool '${xdoScript}'";
in ''
sub createNewWin {
$machine->nest("creating a new Chromium window", sub {
$machine->execute("${xdo "new-window" ''
search --onlyvisible --name "startup done"
windowfocus --sync
windowactivate --sync
key Ctrl+n
''}");
});
}
sub closeWin {
Machine::retry sub {
$machine->execute("${xdo "close-window" ''
search --onlyvisible --name "new tab"
windowfocus --sync
windowactivate --sync
key Ctrl+w
''}");
for (1..20) {
my ($status, $out) = $machine->execute("${xdo "wait-for-close" ''
search --onlyvisible --name "new tab"
''}");
return 1 if $status != 0;
$machine->sleep(1);
}
}
}
sub waitForNewWin {
my $ret = 0;
$machine->nest("waiting for new Chromium window to appear", sub {
for (1..20) {
my ($status, $out) = $machine->execute("${xdo "wait-for-window" ''
search --onlyvisible --name "new tab"
windowfocus --sync
windowactivate --sync
''}");
if ($status == 0) {
$ret = 1;
last;
}
$machine->sleep(1);
}
});
return $ret;
}
sub createAndWaitForNewWin {
for (1..3) {
createNewWin;
return 1 if waitForNewWin;
}
die "new window didn't appear within 60 seconds";
}
sub testNewWin {
my ($desc, $code) = @_;
createAndWaitForNewWin;
subtest($desc, $code);
closeWin;
}
sub chromiumTest {
my ($channel, $pkg, $code) = @_;
$machine->waitForX;
my $url = "file://${startupHTML}";
my $args = "--user-data-dir=/tmp/chromium-$channel";
$machine->execute(
"ulimit -c unlimited; ".
"$pkg/bin/chromium $args \"$url\" & disown"
);
$machine->waitUntilSucceeds("${xdo "check-startup" ''
search --sync --onlyvisible --name "startup done"
# close first start help popup
key Escape
windowfocus --sync
windowactivate --sync
''}");
createAndWaitForNewWin;
$machine->screenshot($channel."_emptywin");
closeWin;
$machine->screenshot($channel."_startup_done");
subtest("Chromium $channel", $code);
$machine->shutdown;
}
for (${let
mkArray = name: pkg: "[\"${name}\", \"${pkg}\"]";
chanArrays = pkgs.lib.mapAttrsToList mkArray channelMap;
in pkgs.lib.concatStringsSep ", " chanArrays}) {
my ($channel, $pkg) = @$_;
chromiumTest $channel, $pkg, sub {
testNewWin "check sandbox", sub {
$machine->succeed("${xdo "type-url" ''
search --sync --onlyvisible --name "new tab"
windowfocus --sync
type --delay 1000 "chrome://sandbox"
''}");
$machine->succeed("${xdo "submit-url" ''
search --sync --onlyvisible --name "new tab"
windowfocus --sync
key --delay 1000 Return
''}");
$machine->screenshot($channel."_sandbox");
$machine->succeed("${xdo "submit-url" ''
search --sync --onlyvisible --name "sandbox status"
windowfocus --sync
key --delay 1000 Ctrl+a Ctrl+c
''}");
my $clipboard = $machine->succeed("${pkgs.xclip}/bin/xclip -o");
die "sandbox not working properly: $clipboard"
unless $clipboard =~ /suid sandbox.*yes/mi
&& $clipboard =~ /pid namespaces.*yes/mi
&& $clipboard =~ /network namespaces.*yes/mi
&& $clipboard =~ /seccomp.*sandbox.*yes/mi;
};
};
}
'';
})

View File

@ -0,0 +1,40 @@
# This test runs docker-registry and check if it works
import ./make-test.nix {
name = "docker-registry";
nodes = {
registry = { config, pkgs, ... }: {
services.dockerRegistry.enable = true;
services.dockerRegistry.port = 8080;
services.dockerRegistry.host = "0.0.0.0";
networking.firewall.allowedTCPPorts = [ 8080 ];
};
client1 = { config, pkgs, ...}: {
virtualisation.docker.enable = true;
virtualisation.docker.extraOptions = "--insecure-registry registry:8080";
};
client2 = { config, pkgs, ...}: {
virtualisation.docker.enable = true;
virtualisation.docker.extraOptions = "--insecure-registry registry:8080";
};
};
testScript = ''
$client1->start();
$client1->waitForUnit("docker.service");
$client1->succeed("tar cv --files-from /dev/null | docker import - scratch");
$client1->succeed("docker tag scratch registry:8080/scratch");
$registry->start();
$registry->waitForUnit("docker-registry.service");
$client1->succeed("docker push registry:8080/scratch");
$client2->start();
$client2->waitForUnit("docker.service");
$client2->succeed("docker pull registry:8080/scratch");
$client2->succeed("docker images | grep scratch");
'';
}

108
nixos/tests/etcd.nix Normal file
View File

@ -0,0 +1,108 @@
# This test runs etcd as single node, multy node and using discovery
import ./make-test.nix {
name = "etcd";
nodes = {
simple =
{ config, pkgs, nodes, ... }:
{
services.etcd.enable = true;
services.etcd.listenClientUrls = ["http://0.0.0.0:4001"];
environment.systemPackages = [ pkgs.curl ];
networking.firewall.allowedTCPPorts = [ 4001 ];
};
node1 =
{ config, pkgs, nodes, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://node1:7001"];
initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
node2 =
{ config, pkgs, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://node2:7001"];
initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
discovery1 =
{ config, pkgs, nodes, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://discovery1:7001"];
discovery = "http://simple:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/";
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
discovery2 =
{ config, pkgs, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://discovery2:7001"];
discovery = "http://simple:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/";
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
};
testScript = ''
subtest "single node", sub {
$simple->start();
$simple->waitForUnit("etcd.service");
$simple->succeed("etcdctl set /foo/bar 'Hello world'");
$simple->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
};
subtest "multy node", sub {
$node1->start();
$node2->start();
$node1->waitForUnit("etcd.service");
$node2->waitForUnit("etcd.service");
$node1->succeed("etcdctl set /foo/bar 'Hello world'");
$node2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
$node1->shutdown();
$node2->shutdown();
};
subtest "discovery", sub {
$simple->succeed("curl -X PUT http://localhost:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/_config/size -d value=2");
$discovery1->start();
$discovery2->start();
$discovery1->waitForUnit("etcd.service");
$discovery2->waitForUnit("etcd.service");
$discovery1->succeed("etcdctl set /foo/bar 'Hello world'");
$discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
};
'';
}

View File

@ -6,7 +6,7 @@
, perl, pkgconfig, python, serd, sord, sratom, suil }:
let
tag = "3.5.380";
tag = "3.5.403";
in
stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git;
rev = "refs/tags/${tag}";
sha256 = "dbcbb2d9143e196d079c27b15266e47d24b81cb7591fe64b717f3485965ded7b";
sha256 = "7d7c8e2c7ccccca6c8324fd874509e1b0d89f3f42cb92982c50d212797463f4c";
};
buildInputs =

View File

@ -12,13 +12,13 @@
}:
stdenv.mkDerivation {
name = "csound-5.19.01";
name = "csound-6.03.2";
enableParallelBuilding = true;
src = fetchurl {
url = mirror://sourceforge/csound/Csound5.19.01.tar.gz;
sha256 = "078i69jwgadmxwa5ffn8h1py7cmd9asa8swnh38fyp56lzgzn669";
url = mirror://sourceforge/csound/Csound6.03.2.tar.gz;
sha256 = "0w6ij57dbfjljpf05bb9r91jphwaq1v63rh0713vl2n11d73dy7m";
};
buildInputs = [ cmake libsndfile flex bison alsaLib pulseaudio tcltk ];

View File

@ -0,0 +1,51 @@
{ fetchurl, stdenv, unzip }:
stdenv.mkDerivation rec {
version = "0.9.67";
name = "faust-compiler-${version}";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/faudiostream/faust-${version}.zip";
sha256 = "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1";
};
buildInputs = [ unzip ];
patchPhase = ''
sed -i '77,101d' Makefile
sed -i 's#?= $(shell uname -s)#:= Linux#g' architecture/osclib/oscpack/Makefile
sed -e "s@\$FAUST_INSTALL /usr/local /usr /opt /opt/local@$out@g" -i tools/faust2appls/faustpath
'';
postInstallPhase = ''
rm -rf $out/include/
'';
makeFlags = "PREFIX=$(out)";
FPATH = "$out"; # <- where to search
meta = with stdenv.lib; {
description = "A functional programming language for realtime audio signal processing";
longDescription = ''
FAUST (Functional Audio Stream) is a functional programming
language specifically designed for real-time signal processing
and synthesis. FAUST targets high-performance signal processing
applications and audio plug-ins for a variety of platforms and
standards.
The Faust compiler translates DSP specifications into very
efficient C++ code. Thanks to the notion of architecture,
FAUST programs can be easily deployed on a large variety of
audio platforms and plugin formats (jack, alsa, ladspa, maxmsp,
puredata, csound, supercollider, pure, vst, coreaudio) without
any change to the FAUST code.
This package has just the compiler. Install faust for the full
set of faust2somethingElse tools.
'';
homepage = http://faust.grame.fr/;
downloadPage = http://sourceforge.net/projects/faudiostream/files/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.magnetophon ];
};
}

View File

@ -1,6 +1,5 @@
{ pkgs, stdenv, fetchurl, python, buildPythonPackage, pythonPackages, mygpoclient, intltool,
ipodSupport ? true, libgpod, gpodderHome ? "", gpodderDownloadDir ? "",
gnome3, hicolor_icon_theme }:
ipodSupport ? true, libgpod, gnome3, hicolor_icon_theme }:
with pkgs.lib;
@ -8,20 +7,23 @@ let
inherit (pythonPackages) coverage feedparser minimock sqlite3 dbus pygtk eyeD3;
in buildPythonPackage rec {
name = "gpodder-3.8.0";
name = "gpodder-3.8.3";
src = fetchurl {
url = "http://gpodder.org/src/${name}.tar.gz";
sha256 = "0731f08f4270c81872b841b55200ae80feb4502706397d0085079471fb9a8fe4";
sha256 = "8ac120a6084bded6bc88ecadbbc9df54a85f44ef4507f73a76de1d7a5574303c";
};
buildInputs = [
coverage feedparser minimock sqlite3 mygpoclient intltool
gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
hicolor_icon_theme
gnome3.gnome_themes_standard gnome3.gnome_icon_theme
gnome3.gnome_icon_theme_symbolic hicolor_icon_theme
gnome3.gsettings_desktop_schemas
];
propagatedBuildInputs = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ]
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
pythonPath = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ]
++ stdenv.lib.optional ipodSupport libgpod;
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
@ -30,8 +32,6 @@ in buildPythonPackage rec {
preFixup = ''
wrapProgram $out/bin/gpodder \
${optionalString (gpodderHome != "") "--set GPODDER_HOME ${gpodderHome}"} \
${optionalString (gpodderDownloadDir != "") "--set GPODDER_DOWNLOAD_DIR ${gpodderDownloadDir}"} \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "guitarix-${version}";
version = "0.31.0";
version = "0.32.0";
src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
sha256 = "0n3swk4xahspf42qglikfmvcz8my43wmp6sp4ns7h4m8hr9lgfk6";
sha256 = "06qxydcba1ga1l19kyqy0mk141mv6pa4wbkyh75xbwhyr65bwkc4";
};
buildInputs = [

View File

@ -1,11 +1,12 @@
{ stdenv, fetchurl, alsaLib, gtk, pkgconfig }:
let version = "5401"; in
stdenv.mkDerivation {
name = "praat-5365";
name = "praat-${version}";
src = fetchurl {
url = http://www.fon.hum.uva.nl/praat/praat5365_sources.tar.gz;
sha256 = "1w3mcq0mipx88i7ckhvzhmdj0p67nhppnn7kbkp21d01yyyz5rgq";
url = "http://www.fon.hum.uva.nl/praat/praat${version}_sources.tar.gz";
sha256 = "1hx0simc0hp5w5scyaiw8h8lrpafra4h1zy1jn1kzb0299yd06n3";
};
configurePhase = ''

View File

@ -3,12 +3,12 @@
, libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
stdenv.mkDerivation rec {
version = "0.6.3";
version = "0.6.4";
name = "qtractor-${version}";
src = fetchurl {
url = "mirror://sourceforge/qtractor/${name}.tar.gz";
sha256 = "1lsmd83vhgfzb3bf02hi6xp5ryh08lz4h21agy7wm3acjqc6gsc2";
sha256 = "1wgm9cx9mrxgd69kdabh78vb3nlyhhfbpd5k4g9s15ifny9cgwz4";
};
buildInputs =

View File

@ -0,0 +1,48 @@
{ stdenv, fetchurl, cmake, pkgconfig, attica, boost, gnutls, libechonest
, liblastfm, lucenepp, phonon, phonon_backend_vlc, qca2, qjson, qt4, qtkeychain
, quazip, sparsehash, taglib, websocketpp
, enableXMPP ? true, libjreen ? null
, enableKDE ? false, kdelibs ? null
, enableTelepathy ? false, telepathy_qt ? null
}:
assert enableXMPP -> libjreen != null;
assert enableKDE -> kdelibs != null;
assert enableTelepathy -> telepathy_qt != null;
let
quazipQt4 = quazip.override { qt = qt4; };
in stdenv.mkDerivation rec {
name = "tomahawk-${version}";
version = "0.8.1";
src = fetchurl {
url = "http://download.tomahawk-player.org/tomahawk-0.8.1.tar.bz2";
sha256 = "0ca6fah30a2s8nnlryav95wyzhwys1ikjfwakrqf2hb0y5aczdpw";
};
cmakeFlags = [
"-DLUCENEPP_INCLUDE_DIR=${lucenepp}/include"
"-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib"
];
buildInputs = [
cmake pkgconfig attica boost gnutls libechonest liblastfm lucenepp phonon
qca2 qjson qt4 qtkeychain quazipQt4 sparsehash taglib websocketpp
] ++ stdenv.lib.optional enableXMPP libjreen
++ stdenv.lib.optional enableKDE kdelibs
++ stdenv.lib.optional enableTelepathy telepathy_qt;
propagatedBuildInputs = [ phonon_backend_vlc ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "A multi-source music player";
homepage = "http://tomahawk-player.org/";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.aszlig ];
};
}

View File

@ -0,0 +1,29 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, c2hs, dataDefault, deepseq, filepath, hspec
, hspecExpectations, libmpd, mtl, ncurses, QuickCheck, time
, transformers, utf8String, wcwidth
}:
cabal.mkDerivation (self: {
pname = "vimus";
version = "0.2.0";
sha256 = "0s7hfyil9rnr9rmjb08g1l1sxybx3qdkw2f59p433fkdjp2m140h";
isLibrary = true;
isExecutable = true;
buildDepends = [
dataDefault deepseq filepath libmpd mtl time utf8String wcwidth
];
testDepends = [
dataDefault hspec hspecExpectations mtl QuickCheck transformers
wcwidth
];
buildTools = [ c2hs ];
extraLibraries = [ ncurses ];
meta = {
description = "An MPD client with vim-like key bindings";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ jzellner ];
};
})

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, makeWrapper, jre, cpio, gawk, gnugrep, gnused, procps, swt, gtk2, glib, libXtst }:
let version = "3.6.3";
let version = "3.6.4";
in stdenv.mkDerivation rec {
name = "crashplan-${version}";
crashPlanArchive = fetchurl {
url = "http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_${version}_Linux.tgz";
sha256 = "0v01fzc62bxr6lpamnxg1nb7vh4a8ky6mahbq76kmjxfqv7q0mb0";
sha256 = "0xmzpxfm8vghk552jy167wg1nky1pp93dqds1p922hn73g0x5cv3";
};
srcs = [ crashPlanArchive ];

View File

@ -16,11 +16,11 @@ let
};
in stdenv.mkDerivation rec {
name = "atom-${version}";
version = "0.139.0";
version = "0.150.0";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0732s4r9qx0sgsnz415z5r9685scly2084q80kz2xw0d2gfx04xr";
sha256 = "1vvsxj1pwpcz0hn58k1hsrv994vm61lxkih58ix1rkj32wpvdjxn";
name = "${name}.deb";
};
@ -39,6 +39,8 @@ in stdenv.mkDerivation rec {
$out/share/atom/resources/app/apm/node_modules/atom-package-manager/bin/node
wrapProgram $out/bin/atom \
--prefix "LD_LIBRARY_PATH" : "${atomEnv}/lib:${atomEnv}/lib64"
wrapProgram $out/bin/apm \
--prefix "LD_LIBRARY_PATH" : "${atomEnv}/lib:${atomEnv}/lib64"
'';
meta = with stdenv.lib; {

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
emacsName = "emacs-24.4";
name = "${emacsName}-mac-5.0";
name = "${emacsName}-mac-5.1";
#builder = ./builder.sh;
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
macportSrc = fetchurl {
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
sha256 = "14ipkwmzv0b02sclhgp2xj0cvhl3gk40sc2l21s87621kk640dzv";
sha256 = "0qn200vv91qxf93x6y8fdi7l3bsni3clqzf8rcjdpbva1qzgcx27";
};
patches = [ ./darwin-new-sections.patch ];

View File

@ -1,12 +1,12 @@
{ stdenv, fetchgit, emacs }:
stdenv.mkDerivation {
name = "js2-mode-0-20140114";
name = "js2-mode-0-20141118";
src = fetchgit {
url = "git://github.com/mooz/js2-mode.git";
rev = "b250efaad886dd07b8c69d4573425d095c6652e2";
sha256 = "30e61e7d364e9175d408bdaf57fda886a4eea22cf5cbd97abb5c307c52b05918";
rev = "3abcd90ddc2f446ddf0fb874dd79ba870c26ad2d";
sha256 = "c0aaab4eeb8d60cfd5c382c3e30d4725e5ec492720d573e663ea69ee43aa73a8";
};
buildInputs = [ emacs ];

View File

@ -1,13 +1,13 @@
{stdenv, fetchurl, emacs}:
let version = "1.3.12";
let version = "1.3.13";
in stdenv.mkDerivation {
name = "emacs-rainbow-delimiters-${version}";
src = fetchurl {
url = "https://github.com/jlr/rainbow-delimiters/archive/${version}.tar.gz";
sha256 = "0l65rqmnrc02q1b406kxc29w5cfpmrmq0glv493pjzhzc5m3r63z";
sha256 = "075j3nsk4jm0rs5671n28c1wksrfbvpl9a4f89kzcd7sk1h6ncvl";
};
buildInputs = [ emacs ];

View File

@ -1,4 +1,4 @@
{ fetchurl, stdenv, glib, xlibs, cairo, gtk, pango, makeWrapper}:
{ fetchurl, stdenv, glib, xlibs, cairo, gtk, pango, makeWrapper, openssl, bzip2 }:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@ -41,7 +41,7 @@ in let
mkdir -p $out
cp -prvd * $out/
# Without this, plugin_host crashes, even though it has the rpath
wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.gcc.gcc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1
wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.gcc.gcc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1:${openssl}/lib/libssl.so:${bzip2}/lib/libbz2.so
'';
};
in stdenv.mkDerivation {

View File

@ -1,5 +1,8 @@
args@{...}: with args;
let tag = "20140827";
sha256 = "02adf2212872db3c5d133642d2c12fbfc28b506e4c0c42552e3d079756f63f65";
in
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {
@ -9,14 +12,14 @@ composableDerivation {
else stdenv ).mkDerivation;
} (fix: {
name = "qvim-7.4";
name = "qvim-7.4." + tag;
enableParallelBuilding = true; # test this
src = fetchgit {
url = https://bitbucket.org/equalsraf/vim-qt.git ;
rev = "4160bfd5c1380e899d2f426b494fc4f1cf6ae85e";
sha256 = "1qa3xl1b9gqw66p71h53l7ibs4y3zfyj553jss70ybxaxchbhi5b";
rev = "refs/tags/package-" + tag;
inherit sha256;
};
# FIXME: adopt Darwin fixes from vim/default.nix, then chage meta.platforms.linux
@ -119,7 +122,7 @@ composableDerivation {
meta = with stdenv.lib; {
description = "The most popular clone of the VI editor (Qt GUI fork)";
homepage = https://bitbucket.org/equalsraf/vim-qt/wiki/Home;
maintainers = with maintainers; [ smironov ];
maintainers = with maintainers; [ smironov ttuegel ];
platforms = platforms.linux;
};
})

View File

@ -4,11 +4,11 @@ liblqr1, lensfun, pkgconfig, qjson, libkdcraw, opencv, libkexiv2, libkipi, boost
shared_desktop_ontologies, marble, mysql }:
stdenv.mkDerivation rec {
name = "digikam-3.5.0";
name = "digikam-4.4.0";
src = fetchurl {
url = "http://download.kde.org/stable/digikam/${name}.tar.bz2";
sha256 = "0an4awlg0b8pwl6v8p5zfl3aghgnxck2pc322cyk6i6yznj2mgap";
sha256 = "1sflh3i989f9xi4qym3rzcrx7ahrjf1n9si8c5q05dgm039a4s2w";
};
nativeBuildInputs = [ cmake automoc4 pkgconfig ];

View File

@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
postInstall = ''
if test "$udevSupport" = "1"; then
mkdir -p $out/etc/udev/rules.d/
./tools/sane-desc -m udev > $out/etc/udev/rules.d/60-libsane.rules || \
cp tools/udev/libsane.rules $out/etc/udev/rules.d/60-libsane.rules
./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
fi
'';

View File

@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-2.10.0";
name = "calibre-2.11.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "06nya8r3bfkgfjsl83fl6l6g3ccw3mpmn3kih4i51gpcgma3aa6b";
sha256 = "19pn55yvc7yiz21gri5838zf7n88l6m2abbwzswn4x8v9915lls1";
};
inherit python;

View File

@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
homepage = http://doomseeker.drdteam.org/;
description = "Multiplayer server browser for many Doom source ports";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ MP2E ];
};
}

View File

@ -1,16 +1,16 @@
{ stdenv, fetchurl, perl, libX11, libjpeg, libpng, libtiff, pkgconfig,
librsvg, glib, gtk, libXext, libXxf86vm, poppler }:
librsvg, glib, gtk, libXext, libXxf86vm, poppler, xineLib }:
stdenv.mkDerivation rec {
name = "eaglemode-0.85.0";
name = "eaglemode-0.86.0";
src = fetchurl {
url = "mirror://sourceforge/eaglemode/${name}.tar.bz2";
sha256 = "0mz4rg2k36wvcv55dg0a5znaczpl5h4gwkkb34syj89xk8jlbwsc";
sha256 = "1a2hzyck95g740qg4p4wd4fjwsmlknh75i9sbx5r5v9pyr4i3m4f";
};
buildInputs = [ perl libX11 libjpeg libpng libtiff pkgconfig
librsvg glib gtk libXxf86vm libXext poppler ];
librsvg glib gtk libXxf86vm libXext poppler xineLib ];
# The program tries to dlopen both Xxf86vm and Xext, so we use the
# trick on NIX_LDFLAGS and dontPatchELF to make it find them.

View File

@ -1,19 +1,27 @@
{ stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses }:
{ stdenv, fetchurl, pkgconfig, gtk, gettext, withBuildColors ? true, ncurses ? null}:
assert withBuildColors -> ncurses != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "girara-0.2.3";
name = "girara-${version}";
version = "0.2.3";
src = fetchurl {
url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
sha256 = "1phfmqp8y17zcy9yi6pm2f80x8ldbk60iswpm4bmjz5217jwqzxh";
};
preConfigure = ''
sed -i 's/ifdef TPUT_AVAILABLE/ifneq ($(TPUT_AVAILABLE), 0)/' colors.mk
'';
buildInputs = [ pkgconfig gtk gettext ];
makeFlags = [
"PREFIX=$(out)"
"TPUT=${ncurses}/bin/tput"
];
makeFlags = [ "PREFIX=$(out)" ]
++ optional withBuildColors "TPUT=${ncurses}/bin/tput"
++ optional (!withBuildColors) "TPUT_AVAILABLE=0"
;
meta = {
homepage = http://pwmt.org/projects/girara/;
@ -22,9 +30,8 @@ stdenv.mkDerivation rec {
girara is a library that implements a GTK+ based VIM-like user interface
that focuses on simplicity and minimalism.
'';
license = stdenv.lib.licenses.zlib;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.garbas ];
license = licenses.zlib;
platforms = platforms.linux;
maintainers = [ maintainers.garbas ];
};
}

View File

@ -1,34 +1,30 @@
a@{fetchsvn, libxml2, gtk, curl, pkgconfig, lib, ...} :
let
fetchsvn = a.fetchsvn;
{ stdenv, fetchsvn, libxml2, gtk, curl, pkgconfig } :
buildInputs = with a; [
libxml2 gtk curl pkgconfig
];
let
version = "30811";
in
rec {
stdenv.mkDerivation {
name = "gosmore-r${version}";
src = fetchsvn {
url = http://svn.openstreetmap.org/applications/rendering/gosmore;
sha256 = "0ds61gl75rnzvm0hj9papl5sfcgdv4310df9ch7x9rifssfli9zm";
rev = "24178";
} + "/";
sha256 = "0qyvrb4xgy4msc7f65widzkvjzc8mlddc4dyr1i76b7wd3gpk0xj";
rev = "${version}";
};
inherit buildInputs;
configureFlags = [];
buildInputs = [ libxml2 gtk curl ];
/* doConfigure should be removed if not needed */
phaseNames = ["fixCurlIncludes" "doConfigure" "doMakeInstall"];
nativeBuildInputs = [ pkgconfig ];
fixCurlIncludes = a.fullDepEntry ''
prePatch = ''
sed -e '/curl.types.h/d' -i *.{c,h,hpp,cpp}
'' ["minInit" "doUnpack"];
'';
name = "gosmore-r21657";
meta = {
meta = with stdenv.lib; {
description = "Open Street Map viewer";
maintainers = [
a.lib.maintainers.raskin
homepage = http://sourceforge.net/projects/gosmore/;
maintainers = with maintainers; [
raskin
];
platforms = a.lib.platforms.linux;
platforms = platforms.linux;
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "hello-2.9";
name = "hello-2.10";
src = fetchurl {
url = "mirror://gnu/hello/${name}.tar.gz";
sha256 = "19qy37gkasc4csb1d3bdiz9snn8mir2p3aj0jgzmfv0r2hi7mfzc";
sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
};
doCheck = true;
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
'';
homepage = http://www.gnu.org/software/hello/manual/;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.eelco ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -3,11 +3,11 @@
, GConf, dbus, dbus_glib, makeWrapper, gtk, pygtk, pyxdg, geoclue }:
stdenv.mkDerivation rec {
version = "1.8";
version = "1.9.1";
name = "redshift-${version}";
src = fetchurl {
url = "https://github.com/jonls/redshift/archive/v${version}.tar.gz";
sha256 = "1srj2dwy32h71iqikb4ysv5ipclym80i9lys2ns8vjmclg7hj3vi";
sha256 = "0rj7lyg4ikwpk1hr1k2bgk9gjqvvv51z8hydsgpx2k2lqdv6lqri";
};
buildInputs = [

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, cmake, qt4, qscintilla }:
stdenv.mkDerivation rec {
name = "sqliteman";
version = "1.2.0-c41b89e1";
src = fetchurl {
url = https://github.com/pvanek/sqliteman/archive/1.2.0.tar.gz;
sha256 = "1x4ppwf01jdnz3a4ycia6vv5qf3w2smbqx690z1pnkwbvk337akm";
};
buildInputs = [ cmake qt4 qscintilla ];
prePatch = ''
sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp
'';
preConfigure = ''
cd Sqliteman
sed -i 's,/usr/include/Qsci,${qscintilla}/include/Qsci,' cmake/modules/FindQScintilla.cmake
sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla}/libs,' cmake/modules/FindQScintilla.cmake
'';
meta = with stdenv.lib; {
description = "Sqliteman is simple but powerfull Sqlite3 GUI database manager.";
homepage = http://sqliteman.yarpen.cz/;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eikek ];
};
}

View File

@ -1,16 +1,19 @@
{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput, curl
, cryptopp ? null, unzip }:
{ stdenv, fetchFromGitHub, cmake, x11, libX11, libXi, libXtst, libXrandr
, xinput, curl, cryptopp ? null, unzip }:
assert stdenv.isLinux -> cryptopp != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "synergy-1.5.1";
name = "synergy-${version}";
version = "1.6.1";
src = fetchurl {
url = "http://synergy-project.org/files/packages/${name}-r2398-Source.tar.gz";
sha256 = "19q8ck15f0jgpbzlm34dzp046wf3iiwa21s1qfyj5sj7xjxwa367";
src = fetchFromGitHub {
owner = "synergy";
repo = "synergy";
rev = "1.6.1";
sha256 = "1043101c4phv1nbxiqp2jn1jhgzspv9q6v75z0kfzwgii5n5xq1c";
};
patches = optional stdenv.isLinux ./cryptopp.patch;

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "tilda-${version}";
version = "1.1.13";
version = "1.2.2";
src = fetchurl {
url = "https://github.com/lanoxx/tilda/archive/${name}.tar.gz";
sha256 = "1b9rnyrdvqmw2xjv899a4k6hvr9w482c4xvlpfnckckxdyp2852d";
sha256 = "1mzly0llsrxpc2yd1hml3gmwm023my2j3aszjw383pp34dab2nl5";
};
buildInputs = [ pkgconfig autoreconfHook gettext confuse vte gtk makeWrapper ];

View File

@ -12,7 +12,7 @@ mkChromiumDerivation (base: rec {
cp -v "$buildPath/"*.pak "$libExecPath/"
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
cp -v $buildPath/libffmpegsumo.so "$libExecPath/"
cp -v "$buildPath/libpdf.so" "$buildPath/libffmpegsumo.so" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"

View File

@ -69,7 +69,7 @@ let
use_system_xdg_utils = true;
use_system_yasm = true;
use_system_zlib = false;
use_system_protobuf = true;
use_system_protobuf = versionOlder source.version "40.0.0.0";
use_system_harfbuzz = false;
use_system_icu = false; # Doesn't support ICU 52 yet.

View File

@ -9,7 +9,6 @@
, gnomeKeyringSupport ? false
, proprietaryCodecs ? true
, enablePepperFlash ? false
, enablePepperPDF ? false
, enableWideVine ? false
, cupsSupport ? false
, pulseSupport ? false
@ -36,7 +35,7 @@ let
sandbox = callPackage ./sandbox.nix { };
plugins = callPackage ./plugins.nix {
inherit enablePepperFlash enablePepperPDF enableWideVine;
inherit enablePepperFlash enableWideVine;
};
};
@ -74,6 +73,7 @@ in stdenv.mkDerivation {
ln -s "${chromium.browser}/share" "$out/share"
makeWrapper "${browserBinary}" "$out/bin/chromium" \
--set CHROMIUM_SANDBOX_BINARY_PATH "${sandboxBinary}" \
--run "export ${chromium.plugins.envVarsEnabled}" \
--add-flags "${chromium.plugins.flagsEnabled}"
ln -s "$out/bin/chromium" "$out/bin/chromium-browser"

View File

@ -1,6 +1,5 @@
{ stdenv
, enablePepperFlash ? false
, enablePepperPDF ? false
, enableWideVine ? false
, source
@ -16,7 +15,7 @@ let
src = source.plugins;
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
outputs = [ "pdf" "flash" "widevine" ];
outputs = [ "flash" "widevine" ];
unpackCmd = let
chan = if source.channel == "dev" then "chrome-unstable"
@ -26,7 +25,6 @@ let
mkdir -p plugins
ar p "$src" data.tar.lzma | tar xJ -C plugins --strip-components=4 \
./opt/google/${chan}/PepperFlash \
./opt/google/${chan}/libpdf.so \
./opt/google/${chan}/libwidevinecdm.so \
./opt/google/${chan}/libwidevinecdmadapter.so
'';
@ -40,7 +38,7 @@ let
rpaths = [ stdenv.gcc.gcc ];
mkrpath = p: "${makeSearchPath "lib64" p}:${makeSearchPath "lib" p}";
in ''
for sofile in PepperFlash/libpepflashplayer.so libpdf.so \
for sofile in PepperFlash/libpepflashplayer.so \
libwidevinecdm.so libwidevinecdmadapter.so; do
chmod +x "$sofile"
patchelf --set-rpath "${mkrpath rpaths}" "$sofile"
@ -51,25 +49,12 @@ let
'';
installPhase = let
pdfName = "Chrome PDF Viewer";
pdfDescription = "Portable Document Format";
pdfMimeTypes = concatStringsSep ";" [
"application/pdf"
"application/x-google-chrome-print-preview-pdf"
];
pdfInfo = "#${pdfName}#${pdfDescription};${pdfMimeTypes}";
wvName = "Widevine Content Decryption Module";
wvDescription = "Playback of encrypted HTML audio/video content";
wvMimeTypes = "application/x-ppapi-widevine-cdm";
wvModule = "$widevine/lib/libwidevinecdmadapter.so";
wvInfo = "#${wvName}#${wvDescription}:${wvMimeTypes}";
in ''
install -vD libpdf.so "$pdf/lib/libpdf.so"
mkdir -p "$pdf/nix-support"
echo "--register-pepper-plugins='$pdf/lib/libpdf.so${pdfInfo}'" \
> "$pdf/nix-support/chromium-flags"
flashVersion="$(
sed -n -r 's/.*"version": "([^"]+)",.*/\1/p' PepperFlash/manifest.json
)"
@ -88,13 +73,18 @@ let
mkdir -p "$widevine/nix-support"
echo "--register-pepper-plugins='${wvModule}${wvInfo}'" \
> "$widevine/nix-support/chromium-flags"
echo "NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE=$widevine/lib" \
> "$widevine/nix-support/chromium-env-vars"
'';
passthru.flagsEnabled = let
passthru = let
enabledPlugins = optional enablePepperFlash plugins.flash
++ optional enablePepperPDF plugins.pdf
++ optional enableWideVine plugins.widevine;
getFlags = plugin: "$(< ${plugin}/nix-support/chromium-flags)";
in concatStringsSep " " (map getFlags enabledPlugins);
getEnvVars = plugin: "$(< ${plugin}/nix-support/chromium-env-vars)";
in {
flagsEnabled = concatStringsSep " " (map getFlags enabledPlugins);
envVarsEnabled = concatStringsSep " " (map getEnvVars enabledPlugins);
};
};
in plugins

View File

@ -22,9 +22,7 @@ stdenv.mkDerivation {
prePatch = "patchShebangs .";
patches = let
onPre39 = optional (versionOlder version "39.0.0.0");
in [ ./sandbox_userns_36.patch ] ++ onPre39 ./missing_alg_import.patch;
patches = [ ./sandbox_userns_36.patch ./nix_plugin_paths.patch ];
postPatch = ''
sed -i -r \

View File

@ -1,11 +0,0 @@
diff -Naur chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc
--- chromium-37.0.2062.94.old/media/cast/logging/encoding_event_subscriber.cc 2014-08-29 02:05:15.149140733 -0700
+++ chromium-37.0.2062.94/media/cast/logging/encoding_event_subscriber.cc 2014-08-29 02:06:00.182853590 -0700
@@ -4,6 +4,7 @@
#include "media/cast/logging/encoding_event_subscriber.h"
+#include <algorithm>
#include <cstring>
#include <utility>

View File

@ -0,0 +1,99 @@
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
index 8a205a6..d5c24e1 100644
--- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc
@@ -97,21 +97,14 @@ static base::LazyInstance<base::FilePath>
g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
// Gets the path for internal plugins.
-bool GetInternalPluginsDirectory(base::FilePath* result) {
-#if defined(OS_MACOSX) && !defined(OS_IOS)
- // If called from Chrome, get internal plugins from a subdirectory of the
- // framework.
- if (base::mac::AmIBundled()) {
- *result = chrome::GetFrameworkBundlePath();
- DCHECK(!result->empty());
- *result = result->Append("Internet Plug-Ins");
- return true;
- }
- // In tests, just look in the module directory (below).
-#endif
-
- // The rest of the world expects plugins in the module directory.
- return PathService::Get(base::DIR_MODULE, result);
+bool GetInternalPluginsDirectory(base::FilePath* result,
+ const std::string& ident) {
+ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident;
+ const char* value = getenv(full_env.c_str());
+ if (value == NULL)
+ return PathService::Get(base::DIR_MODULE, result);
+ else
+ *result = base::FilePath(value);
}
} // namespace
@@ -248,11 +241,11 @@ bool PathProvider(int key, base::FilePath* result) {
create_dir = true;
break;
case chrome::DIR_INTERNAL_PLUGINS:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "ALL"))
return false;
break;
case chrome::DIR_PEPPER_FLASH_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
return false;
cur = cur.Append(kPepperFlashBaseDirectory);
break;
@@ -285,7 +278,7 @@ bool PathProvider(int key, base::FilePath* result) {
cur = cur.Append(FILE_PATH_LITERAL("script.log"));
break;
case chrome::FILE_FLASH_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "FILEFLASH"))
return false;
cur = cur.Append(kInternalFlashPluginFileName);
break;
@@ -295,12 +288,12 @@ bool PathProvider(int key, base::FilePath* result) {
cur = cur.Append(chrome::kPepperFlashPluginFilename);
break;
case chrome::FILE_PDF_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "PDF"))
return false;
cur = cur.Append(kInternalPDFPluginFileName);
break;
case chrome::FILE_EFFECTS_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "FILE_EFFECTS"))
return false;
cur = cur.Append(kEffectsPluginFileName);
break;
@@ -308,7 +301,7 @@ bool PathProvider(int key, base::FilePath* result) {
// We currently need a path here to look up whether the plugin is disabled
// and what its permissions are.
case chrome::FILE_NACL_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "NACL"))
return false;
cur = cur.Append(kInternalNaClPluginFileName);
break;
@@ -343,7 +336,7 @@ bool PathProvider(int key, base::FilePath* result) {
cur = cur.DirName();
}
#else
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "PNACL"))
return false;
#endif
cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
@@ -372,7 +365,7 @@ bool PathProvider(int key, base::FilePath* result) {
// In the component case, this is the source adapter. Otherwise, it is the
// actual Pepper module that gets loaded.
case chrome::FILE_WIDEVINE_CDM_ADAPTER:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "WIDEVINE"))
return false;
cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
break;

View File

@ -1,21 +1,21 @@
# This file is autogenerated from update.sh in the parent directory.
{
dev = {
version = "40.0.2182.3";
sha256 = "1713y6f2q5qh32wg027nphkv6p6rgq0q1awqcy543ypbk9p1jvbm";
sha256bin32 = "0qf0ccfg77qc17iy5cndkp827s8li3qyxasmgjq224g579wcj0bl";
sha256bin64 = "07f97m548kj7indpzyyvksa4gisndxc1s8qslk43mgsx26kz62rf";
version = "41.0.2224.3";
sha256 = "04lgklidxx4bryqhnm7kjqbfr12ns8ic9g4yxk3dig71081sas5f";
sha256bin32 = "17fgh57yckk318r7r6qkc934dpq35qa6ps4x5fwscl070rzjf81k";
sha256bin64 = "1qsvjm38cxx3inrw0hs4q9f4i9arqfj9cs57xh64wflrnh2z52zf";
};
beta = {
version = "39.0.2171.19";
sha256 = "19j86hzh552a73mvabzgdiq0s1ypr30b6lkn4kfxc2vhs1ds8nmg";
sha256bin32 = "06imcc3r6g4f7yi8b4mzknqk11khzk44pjrw0qnw40kgjf0kkgd3";
sha256bin64 = "0qd594rbg049g1h4s7lgw9abcccx6wrl3fggkd1z9bl8ihj54j4b";
version = "40.0.2214.10";
sha256 = "0wxkxgj6z18l2qkm0k16r8bpv9rdxk1g1ias03zzvlbj1bw3brdn";
sha256bin32 = "0wr2vg97d3qrryb5sz31sd3ycb1l17irrs79vfa04ip85jqv89zn";
sha256bin64 = "0bclgy386vdmfdf59hwkypcs8wwmlpgl3npp089hmcdvv7dmars8";
};
stable = {
version = "38.0.2125.101";
sha256 = "12hrl7i0xrjdwz8yaap5jhc6bzn29pk6dcz96743n6j7mcckac6k";
sha256bin32 = "1c35j4wx53njcqbdqznz2m0791bb9lpmhnpkrll36051437f25wl";
sha256bin64 = "1k8hrrxlqc1mv88v2qkyq8188lfaibvqpqg0g8qgj2ha5vsnvwvw";
version = "39.0.2171.65";
sha256 = "0lglcjvyhgmdm0sd76wv509pgwcfl86rlp9rj83z9giadwqlcmxi";
sha256bin32 = "1iqzi462vw8da5f8ysk76q68xhiw5ndqc3hhc6djipsc6h240bji";
sha256bin64 = "1gxh3sxpnl0167la9ncnz7l85gzi4ax6g5pqni1nma5g5cqqm177";
};
}

View File

@ -15,14 +15,14 @@
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
let version = "33.1"; in
let version = "33.1.1"; in
stdenv.mkDerivation rec {
name = "firefox-${version}";
src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
sha1 = "bc87055d3b68e8458f07d0c04503b6aaed3771df";
sha1 = "1e9e3176e7d221c4f2ce479f37ee7c432236a0ec";
};
buildInputs =

View File

@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub, which, go, makeWrapper, iptables,rsync }:
stdenv.mkDerivation rec {
name = "kubernetes-${version}";
version = "v0.5.2";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "kubernetes";
rev = version;
sha256 = "0nrm59v43jx0cskpd294q946053cfw3y2cgs53ji35dnhgj6fl6w";
};
buildInputs = [ makeWrapper which go iptables rsync ];
preBuild = "patchShebangs ./hack";
installPhase = ''
mkdir -p "$out/bin"
cp _output/local/go/bin/* "$out/bin/"
'';
preFixup = ''
wrapProgram "$out/bin/kube-proxy" --set "PATH" "${iptables}/bin"
'';
meta = with stdenv.lib; {
description = "Open source implementation of container cluster management.";
license = licenses.asl20;
homepage = https://github.com/GoogleCloudPlatform;
maintainers = with maintainers; [offline];
platforms = with platforms; linux;
};
}

View File

@ -25,9 +25,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Dropbox client for: ${stdenv.system} not supported!";
version = "2.10.30";
sha256 = if stdenv.system == "x86_64-linux" then "1gdch4fka5f671zwl329j6b60igki1rzxw9ggxcywcg1h4rlvw7r"
else if stdenv.system == "i686-linux" then "1a4pswpy945iqzvi8kcs1r0sydb04h28v5zv0hdyra0c548wsm2g"
version = "2.10.52";
sha256 = if stdenv.system == "x86_64-linux" then "0fn2frp00f0p0r6v5czzxfbw1ifan9w12k3ry8gq1m4bvx6g27p6"
else if stdenv.system == "i686-linux" then "1rm5kspb53zqgaz48v8x3ffk1mcfi0nh0zsmsdniyrgqbis5mmm9"
else throw "Dropbox client for: ${stdenv.system} not supported!";
# relative location where the dropbox libraries are stored

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, python, intltool, pkgconfig, libX11, gtk
, ldns, pyopenssl, pythonDBus, pythonPackages
, ldns, pythonDBus, pythonPackages
, enableJingle ? true, farstream ? null, gst_plugins_bad ? null
, libnice ? null
@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
pythonPackages.sqlite3 pythonPackages.pyasn1
pythonPackages.pyxdg
pythonPackages.nbxmpp
pyopenssl pythonDBus
pythonPackages.pyopenssl pythonDBus
] ++ optionals enableJingle [ farstream gst_plugins_bad libnice ]
++ optional enableE2E pythonPackages.pycrypto
++ optional enableRST pythonPackages.docutils

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth}:
{stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth, libotr}:
stdenv.mkDerivation rec {
name = "mcabber-${version}";
@ -6,12 +6,12 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://mcabber.com/files/mcabber-${version}.tar.bz2";
sha256 = "1248cgci1v2ypb90wfhyipwdyp1wskn3gzh78af5ai1a4w5rrjq0";
sha256 = "0vgsqw6yn0lzzcnr4fql4ycgf3gwqj6w4p0l4nqnvhkc94w62ikp";
};
buildInputs = [openssl ncurses pkgconfig glib loudmouth];
buildInputs = [openssl ncurses pkgconfig glib loudmouth libotr];
configureFlags = "--with-openssl=${openssl}";
configureFlags = "--with-openssl=${openssl} --enable-modules --enable-otr";
meta = with stdenv.lib; {
homepage = http://mcabber.com/;

View File

@ -12,7 +12,8 @@
stdenv.mkDerivation rec {
name = "pidgin-${version}";
version = "2.10.10";
majorVersion = "2";
version = "${majorVersion}.10.10";
src = fetchurl {
url = "mirror://sourceforge/pidgin/${name}.tar.bz2";
@ -51,6 +52,8 @@ stdenv.mkDerivation rec {
]
++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]);
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Multi-protocol instant messaging client";
homepage = http://pidgin.im;

View File

@ -17,7 +17,7 @@ drv = buildEnv {
done
fi
wrapProgram $out/bin/pidgin \
--suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.version} $out/lib/pidgin" \
--suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \
${toString extraArgs}
'';
};

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
name = "jmeter-2.11";
src = fetchurl {
url = "http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-${name}.tgz";
url = "http://archive.apache.org/dist/jmeter/binaries/apache-${name}.tgz";
sha256 = "1fr3sw06qncb6yygcf2lbnkxma4v1dbigpf39ajrm0isxbpyv944";
};

View File

@ -0,0 +1,38 @@
{stdenv, fetchurl, ncurses, tcl, openssl, pam, pkgconfig, gettext, kerberos
, openldap
}:
let
s =
rec {
version = "2.00";
url = "ftp://ftp.cac.washington.edu/alpine/alpine-${version}.tar.bz2";
sha256 = "19m2w21dqn55rhxbh5lr9qarc2fqa9wmpj204jx7a0zrb90bhpf8";
baseName = "alpine";
name = "${baseName}-${version}";
};
buildInputs = [
ncurses tcl openssl pam kerberos openldap
];
in
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchurl {
inherit (s) url sha256;
};
configureFlags = [
"--with-ssl-include-dir=${openssl}/include/openssl"
"--with-tcl-lib=tcl8.5"
];
preConfigure = ''
export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
'';
meta = {
inherit (s) version;
description = ''Console mail reader'';
license = stdenv.lib.licenses.asl20;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
homepage = "https://www.washington.edu/alpine/";
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, openssl, lua, pcre }:
stdenv.mkDerivation rec {
name = "imapfilter-2.5.6";
name = "imapfilter-2.5.7";
src = fetchurl {
url = "https://github.com/lefcha/imapfilter/archive/v2.5.6.tar.gz";
sha256 = "0c94xdcnkk33d2filzkbraymfzm09np78486kqzqwidnnfllsk86";
url = "https://github.com/lefcha/imapfilter/archive/v2.5.7.tar.gz";
sha256 = "1l7sg7pyw1i8cxqnyb5xv983fakj8mxq6w44qd7w3kc7l6ixd4n7";
};
makeFlagsArray = "PREFIX=$(out)";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, ncurses, which, perl, automake, autoconf
{ stdenv, fetchurl, ncurses, which, perl, autoreconfHook
, sslSupport ? true
, imapSupport ? true
, headerCache ? true
@ -14,6 +14,7 @@
assert headerCache -> gdbm != null;
assert sslSupport -> openssl != null;
assert saslSupport -> cyrus_sasl != null;
assert gpgmeSupport -> gpgme != null;
let
version = "1.5.23";
@ -26,15 +27,14 @@ stdenv.mkDerivation rec {
sha256 = "0dzx4qk50pjfsb6cs5jahng96a52k12f7pm0sc78iqdrawg71w1s";
};
buildInputs = [
ncurses which perl
(if headerCache then gdbm else null)
(if sslSupport then openssl else null)
(if saslSupport then cyrus_sasl else null)
(if gpgmeSupport then gpgme else null)
]
++ (stdenv.lib.optionals withSidebar [automake autoconf])
;
buildInputs = with stdenv.lib;
[ ncurses which perl ]
++ optional headerCache gdbm
++ optional sslSupport openssl
++ optional saslSupport cyrus_sasl
++ optional gpgmeSupport gpgme;
nativeBuildInputs = stdenv.lib.optional withSidebar autoreconfHook;
configureFlags = [
"--with-mailpath=" "--enable-smtp"
@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
patches = [] ++
(stdenv.lib.optional withSidebar (fetchurl {
url = http://lunar-linux.org/~tchan/mutt/patch-1.5.23.sidebar.20140412.txt;
sha256 = "0bq556sycl0qkr5vg5c3l16bh2bifqc2j7d64n4hw19q0ba2b45w";
sha256 = "1i2r7dj0pd1k0z3jjxn2szi6sf0k28i8dwhr4f65pn8r2lh3wisz";
}));
meta = with stdenv.lib; {

View File

@ -0,0 +1,39 @@
{stdenv, fetchurl, ncurses, tcl, openssl, pam, pkgconfig, gettext, kerberos
, openldap
}:
let
s =
rec {
version = "2.03";
url = "mirror://sourceforge/re-alpine/re-alpine-${version}.tar.bz2";
sha256 = "11xspzbk9cwmklmcw6rxsan7j71ysd4m9c7qldlc59ck595k5nbh";
baseName = "re-alpine";
name = "${baseName}-${version}";
};
buildInputs = [
ncurses tcl openssl pam kerberos openldap
];
in
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchurl {
inherit (s) url sha256;
};
configureFlags = [
"--with-ssl-include-dir=${openssl}/include/openssl"
"--with-tcl-lib=tcl8.5"
];
preConfigure = ''
export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
'';
meta = {
inherit (s) version;
description = ''Console mail reader'';
license = stdenv.lib.licenses.asl20;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
homepage = "http://re-alpine.sf.net/";
downloadPage = "http://sourceforge.net/projects/re-alpine/files/";
};
}

View File

@ -0,0 +1,32 @@
{ stdenv, fetchurl, cmake, qt4, pkgconfig, neon, qtkeychain, sqlite }:
stdenv.mkDerivation rec {
name = "owncloud-client" + "-" + version;
version = "1.7.0";
src = fetchurl {
url = "https://download.owncloud.com/desktop/stable/mirall-${version}.tar.bz2";
sha256 = "b1cb0612e5022de263dc4c6309eba8207d694a40a80dae6762b4a56fa8d4d944";
};
buildInputs =
[ cmake qt4 pkgconfig neon qtkeychain sqlite];
#configurePhase = ''
# mkdir build
# cd build
# cmake -DBUILD_WITH_QT4=on \
# -DCMAKE_INSTALL_PREFIX=$out \
# -DCMAKE_BUILD_TYPE=Release \
# ..
#'';
enableParallelBuilding = true;
meta = {
description = "Synchronise your ownCloud with your computer using this desktop client";
homepage = https://owncloud.org;
maintainers = with stdenv.lib.maintainers; [ qknight ];
};
}

View File

@ -11,6 +11,7 @@ stdenv.mkDerivation (rec {
meta = {
description = "Client for many p2p networks, with multiple frontends";
homepage = http://mldonkey.sourceforge.net/;
license = stdenv.lib.licenses.gpl2;
};
buildInputs = [ ocaml zlib ncurses bzip2 file gd libpng ];

View File

@ -0,0 +1,32 @@
{ stdenv, lib, fetchgit, fetchhg, go, trousers }:
let deps = import ./deps.nix {
inherit stdenv lib fetchgit fetchhg;
};
in stdenv.mkDerivation rec {
name = "pond";
buildInputs = [ go trousers ];
unpackPhase = ''
export GOPATH=$PWD
echo $PWD
cp -LR ${deps}/src src
chmod u+w -R src
'';
installPhase = ''
export GOPATH="$PWD"
mkdir -p $out/bin
go build --tags nogui -v -o $out/bin/pond-cli github.com/agl/pond/client
'';
meta = with lib; {
description = "Forward secure, asynchronous messaging for the discerning";
homepage = https://pond.imperialviolet.org;
license = licenses.bsd3;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,60 @@
# This file was generated by go2nix.
{ stdenv, lib, fetchgit, fetchhg}:
let
goDeps = [
{
root = "github.com/agl/pond";
src = fetchgit {
url = "git://github.com/agl/pond.git";
rev = "f4e441c77a2039814046ff8219629c547fe8b689";
sha256 = "f2dfc6cb96cc4b8ae732e41d1958b62036f40cb346df2e14f27b5964a1416026";
};
}
{
root = "github.com/agl/ed25519";
src = fetchgit {
url = "git://github.com/agl/ed25519.git";
rev = "d2b94fd789ea21d12fac1a4443dd3a3f79cda72c";
sha256 = "83e3010509805d1d315c7aa85a356fda69d91b51ff99ed98a503d63adb3613e9";
};
}
{
root = "code.google.com/p/go.crypto";
src = fetchhg {
url = "https://code.google.com/p/go.crypto";
rev = "31393df5baea";
sha256 = "0b95dpsvxxapcjjvhj05fdmyn0mzffamc25hvxy7xgsl2l9yy3nw";
};
}
{
root = "code.google.com/p/go.net";
src = fetchhg {
url = "https://code.google.com/p/go.net";
rev = "90e232e2462d";
sha256 = "0hqvkaa0rbxwbi74xa6aqbkf63zk662x5hp3bp8vbhzkc4yl1h59";
};
}
{
root = "code.google.com/p/goprotobuf";
src = fetchhg {
url = "https://code.google.com/p/goprotobuf";
rev = "36be16571e14";
sha256 = "14yay2sgfbbs0bx3q03bdqn1kivyvxfdm34rmp2612gvinlll215";
};
}
];
in
stdenv.mkDerivation rec {
name = "go-deps";
buildCommand =
lib.concatStrings
(map (dep: ''
mkdir -p $out/src/`dirname ${dep.root}`
ln -s ${dep.src} $out/src/${dep.root}
'') goDeps);
}

View File

@ -6,11 +6,11 @@
}:
stdenv.mkDerivation rec {
name = "calligra-2.7.5";
name = "calligra-2.8.6";
src = fetchurl {
url = "mirror://kde/stable/${name}/${name}.tar.xz";
sha256 = "0png8ac10xywxsml1z18as18kc9k9162l6an67hi6lgx0rv27ldi";
sha256 = "587dda4a340f46e28fe69de8f292fa33a3cf237445013f6ce5ceafa191cb3694";
};
nativeBuildInputs = [ cmake perl pkgconfig ];

View File

@ -3,7 +3,7 @@
{stdenv, fetchgit, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
let
version = "8.5pre-edbd6a21";
version = "8.5pre-52f51fb3";
coq-version = "8.5";
buildIde = lablgtk != null;
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
@ -17,8 +17,8 @@ stdenv.mkDerivation {
src = fetchgit {
url = git://scm.gforge.inria.fr/coq/coq.git;
rev = "edbd6a211c934778d9721c36463836ef902b4fdd";
sha256 = "19zk1lghqljh86z2kv6kpxwzinpkbwxzf244dmszx31zw4zdrskl";
rev = "52f51fb385d6a1c90bd7d055185fee50ef2670be";
sha256 = "0pgp59j2j8vk7nmcja5smly39dpkqfhpp29wpsn71piq6n52pql3";
};
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];

View File

@ -1,13 +0,0 @@
Index: Makefile
===================================================================
--- /Makefile (révision 199)
+++ /Makefile (copie de travail)
@@ -59,7 +59,7 @@
then cp pa_j_3.1x_6.02.1.ml pa_j.ml; \
else if test ${CAMLP5_VERSION} = "6.02.2" -o ${CAMLP5_VERSION} = "6.02.3" -o ${CAMLP5_VERSION} = "6.03" -o ${CAMLP5_VERSION} = "6.04" -o ${CAMLP5_VERSION} = "6.05" -o ${CAMLP5_VERSION} = "6.06" ; \
then cp pa_j_3.1x_6.02.2.ml pa_j.ml; \
- else if test ${CAMLP5_VERSION} = "6.06" -o ${CAMLP5_VERSION} = "6.07" -o ${CAMLP5_VERSION} = "6.08" -o ${CAMLP5_VERSION} = "6.09" -o ${CAMLP5_VERSION} = "6.10" -o ${CAMLP5_VERSION} = "6.11" ; \
+ else if test ${CAMLP5_VERSION} = "6.06" -o ${CAMLP5_VERSION} = "6.07" -o ${CAMLP5_VERSION} = "6.08" -o ${CAMLP5_VERSION} = "6.09" -o ${CAMLP5_VERSION} = "6.10" -o ${CAMLP5_VERSION} = "6.11" -o ${CAMLP5_VERSION} = "6.12" ; \
then cp pa_j_3.1x_6.11.ml pa_j.ml; \
else cp pa_j_3.1x_${CAMLP5_BINARY_VERSION}.xx.ml pa_j.ml; \
fi \

View File

@ -10,18 +10,16 @@ in
stdenv.mkDerivation rec {
name = "hol_light-${version}";
version = "199";
version = "205";
src = fetchsvn {
url = http://hol-light.googlecode.com/svn/trunk;
rev = version;
sha256 = "0308nw91iww18wvl30g5ygf6lhw329jh1vqi9hsh30inhb3dx3jw";
sha256 = "1qnk3fkfr6f74nd8wsi84s9kg872cw766sa15a2ldlhs9ma76chj";
};
buildInputs = [ ocaml findlib camlp5 ];
patches = [ ./Makefile.patch ];
installPhase = ''
mkdir -p "$out/lib/hol_light" "$out/bin"
cp -a . $out/lib/hol_light

View File

@ -3,12 +3,12 @@
}:
stdenv.mkDerivation rec {
version = "0.42";
version = "0.43";
name = "gource-${version}";
src = fetchurl {
url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz";
sha256 = "08ab57z44y8b5wxg1193j6hiy50njbpi6dwafjh6nb0apcq8ziz5";
sha256 = "1r5x9ai86f609hf584n0xaf5hxkbilj5qihn89v7ghpmwk40m945";
};
buildInputs = [
@ -20,10 +20,10 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = "-fpermissive"; # fix build with newer gcc versions
meta = {
homepage = "http://code.google.com/p/gource/";
description = "software version control visualization tool";
license = stdenv.lib.licenses.gpl3Plus;
meta = with stdenv.lib; {
homepage = http://code.google.com/p/gource/;
description = "A Software version control visualization tool";
license = licenses.gpl3Plus;
longDescription = ''
Software projects are displayed by Gource as an animated tree with
the root directory of the project at its centre. Directories
@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
Mercurial and Bazaar and SVN. Gource can also parse logs produced
by several third party tools for CVS repositories.
'';
platforms = stdenv.lib.platforms.linux;
platforms = platforms.linux;
maintainers = with maintainers; [ pSub ];
};
}

View File

@ -1,56 +1,31 @@
{ stdenv, fetchurl, perl }:
stdenv.mkDerivation rec {
version = "1.13";
name = "mr-" + version;
version = "1.20141024";
name = "mr-${version}";
src = fetchurl {
url = "http://ftp.de.debian.org/debian/pool/main/m/mr/mr_${version}.tar.gz";
sha256 = "1q3qxk8dwbv30v2xxh852wnwl1msgkvk5cgxyicpqj8kh5b96zlz";
url = "https://github.com/joeyh/myrepos/archive/${version}.tar.gz";
sha256 = "7b68183476867d15d6f111fc9678335b94824dcfa09f07c761a72d64cdf5ad4a";
};
buildInputs = [perl];
buildInputs = [ perl ];
buildPhase = ''
make build
'';
installPhase = ''
mkdir -pv $out/bin $out/share/man/man1 $out/share/mr
cp -v mr $out/bin
cp -v webcheckout $out/bin
cp -v mr.1 $out/share/man/man1
cp -v webcheckout.1 $out/share/man/man1
cp -v lib/* $out/share/mr
'';
makeFlags = "PREFIX=$(out)";
meta = {
description = "Multiple Repository management tool";
longDescription = ''The mr(1) command can checkout, update, or perform other actions on a
set of repositories as if they were one combined respository. It
supports any combination of subversion, git, cvs, mercurial, bzr,
darcs, cvs, vcsh, fossil and veracity repositories, and support for
other revision control systems can easily be added. (There are
extensions adding support for unison and git-svn.)
It is extremely configurable via simple shell scripting. Some examples
of things it can do include:
- Update a repository no more frequently than once every twelve
hours.
- Run an arbitrary command before committing to a
repository.
- When updating a git repository, pull from two
different upstreams and merge the two together.
- Run several repository updates in parallel, greatly speeding
up the update process.
- Remember actions that failed due to a laptop being
offline, so they can be retried when it comes back online.
longDescription = ''
mr is a tool to manage all your version control repos. It can
checkout, update, or perform other actions on a set of
repositories as if they were one combined repository. It
supports any combination of subversion, git, cvs, mercurial,
bzr, darcs, fossil and veracity repositories, and support for
other version control systems can easily be added.
'';
homepage = http://joeyh.name/code/mr/;
homepage = http://myrepos.branchable.com/;
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.antono ];
maintainers = with stdenv.lib.maintainers; [ antono henrytill ];
};
}

View File

@ -0,0 +1,38 @@
{ stdenv, fetchurl, python, rcs, git }:
stdenv.mkDerivation rec {
name = "src-0.12";
src = fetchurl {
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
sha256 = "1w8k9z2dxim99nniid9kjsc5lzri7m4sd0n819y73aqcdi54lr1s";
};
buildInputs = [ python ];
patches = [ ./path.patch ];
postPatch = ''
sed -i \
-e 's|@python@|${python}|' \
-e 's|@rcs@|${rcs}|' \
-e 's|@git@|${git}|' \
src srctest
'';
makeFlags = [ "prefix=$(out)" ];
doCheck = true;
meta = {
description = "Simple single-file revision control";
homepage = http://www.catb.org/~esr/src/;
license = [ stdenv.lib.licenses.bsd3 ];
maintainers = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -0,0 +1,30 @@
diff -Naur src-0.12-orig/src src-0.12/src
--- src-0.12-orig/src 2014-11-21 08:19:59.000000000 -0500
+++ src-0.12/src 2014-11-21 15:54:54.598113846 -0500
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!@python@/bin/python
#
# src - simple revision control.
#
@@ -58,6 +58,8 @@
import sys, os, subprocess, time, calendar, stat, glob, shutil, hashlib
+os.environ['PATH'] = "@rcs@/bin:@git@/bin:" + os.environ['PATH']
+
version="0.12"
def rfc3339(t):
diff -Naur src-0.12-orig/srctest src-0.12/srctest
--- src-0.12-orig/srctest 2014-11-21 08:12:00.000000000 -0500
+++ src-0.12/srctest 2014-11-21 15:58:31.370500990 -0500
@@ -12,7 +12,7 @@
# Set the PATH to include the current directory, so the repository
# head version of src can always be tested.
-PATH="$(pwd)":$PATH
+PATH="$(pwd)":@git@/bin:$PATH
trap "rm -fr $SANDBOX" 0 1 2 15

View File

@ -4,17 +4,17 @@
stdenv.mkDerivation rec {
name = "makemkv-${ver}";
ver = "1.8.14";
ver = "1.9.0";
builder = ./builder.sh;
src_bin = fetchurl {
url = "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz";
sha256 = "1kjxawqh6xnjcgvaqy7idg8k0g3zqrr1w5r2r3bf11pg0h1ys5l5";
sha256 = "1rcvg7a1h59mfwsl5w0fr89m101pkqm9vgj06dl91hkgp5nh3wah";
};
src_oss = fetchurl {
url = "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz";
sha256 = "0cq3h45yyqma0kzi594dz0gbgjf3gyjcgxkiynifz3hacrbxbnd5";
sha256 = "0415gw2nacb57sz5m0hcaznynmznc6v8qb6028qnsqgv39d4w8f8";
};
buildInputs = [openssl qt4 mesa zlib pkgconfig libav];
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
libPath = stdenv.lib.makeLibraryPath [stdenv.gcc.gcc openssl mesa qt4 zlib ]
+ ":" + stdenv.gcc.gcc + "/lib64";
meta = {
meta = with stdenv.lib; {
description = "convert blu-ray and dvd to mkv";
longDescription = ''
makemkv is a one-click QT application that transcodes an encrypted
@ -33,7 +33,8 @@ stdenv.mkDerivation rec {
can always download the latest version from makemkv.com that will reset the
expiration date.
'';
license = stdenv.lib.licenses.unfree;
license = licenses.unfree;
homepage = http://makemkv.com;
maintainers = [ maintainers.titanous ];
};
}

View File

@ -58,11 +58,11 @@ in
stdenv.mkDerivation rec {
name = "mpv-${version}";
version = "0.6.1";
version = "0.6.2";
src = fetchurl {
url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz";
sha256 = "03vzsvvb1dvm4rn70m97fdbzhlqj9crk7zpvcp00bcl956xjfc9s";
sha256 = "1s42i3vf8i86lx62kw00vvimjizvp8zpxdq53mqhdz1p5im2ylr0";
};
buildInputs = with stdenv.lib;

View File

@ -2,7 +2,7 @@
, pkgconfig, libtool
, gtk, mesa, readline, libX11, libXpm
, docbook_xml_dtd_45, docbook_xsl
, sdlSupport ? true, SDL ? null
, sdlSupport ? true, SDL2 ? null
, termSupport ? true , ncurses ? null
, wxSupport ? false, wxGTK ? null # Warning! Broken
# Optional, undocumented dependencies
@ -10,7 +10,7 @@
, curlSupport ? false, curl ? null
}:
assert sdlSupport -> (SDL != null);
assert sdlSupport -> (SDL2 != null);
assert termSupport -> (ncurses != null);
assert wxSupport -> (gtk != null && wxGTK != null);
assert wgetSupport -> (wget != null);
@ -19,11 +19,11 @@ assert curlSupport -> (curl != null);
stdenv.mkDerivation rec {
name = "bochs-${version}";
version = "2.6.6";
version = "2.6.7";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz";
sha256 = "0nlrl218x93vz97n46aw2szsalx97r020mn43fjsif100v7zix6f";
sha256 = "10l2pgzwnmng0rd44kqv7y46nwpcc18j53h3kf3dlqlnd7mlwdd4";
};
# The huge list of configurable options
@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
buildInputs = with stdenv.lib;
[ pkgconfig libtool gtk mesa readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
++ optionals termSupport [ ncurses ]
++ optionals sdlSupport [ SDL ]
++ optionals sdlSupport [ SDL2 ]
++ optionals wxSupport [ wxGTK ]
++ optionals wgetSupport [ wget ]
++ optionals curlSupport [ curl ];
@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
"--enable-raw-serial=no" ]
# Boolean flags
++ stdenv.lib.optional termSupport "--with-term"
++ stdenv.lib.optional sdlSupport "--with-sdl"
++ stdenv.lib.optional sdlSupport "--with-sdl2"
++ stdenv.lib.optional wxSupport "--with-wx"
++ stdenv.lib.optional largefile "--enable-largefile"
++ stdenv.lib.optional idleHack "--enable-idle-hack"

View File

@ -3,11 +3,11 @@ btrfsProgs, iptables, bash, e2fsprogs, xz}:
stdenv.mkDerivation rec {
name = "docker-${version}";
version = "1.3.0";
version = "1.3.1";
src = fetchurl {
url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
sha256 = "09bn88i8acv7kw39js1p7mgf3sglq7d782xnafkp0i97svf0x4y9";
sha256 = "0w1gz1apkcrmhgng2rkkzy7wmxm68zgs6a16bi4cx3a38n4mgday";
};
buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs];

View File

@ -81,16 +81,16 @@ assert builtins.isList urls;
assert urls != [] -> url == "";
assert url != "" -> urls == [];
assert showURLs || (outputHash != "" && outputHashAlgo != "")
|| md5 != "" || sha1 != "" || sha256 != "";
let
hasHash = showURLs || (outputHash != "" && outputHashAlgo != "")
|| md5 != "" || sha1 != "" || sha256 != "";
urls_ = if urls != [] then urls else [url];
in
stdenv.mkDerivation {
if (!hasHash) then throw "Specify hash for fetchurl fixed-output derivation: ${stdenv.lib.concatStringsSep ", " urls_}" else stdenv.mkDerivation {
name =
if showURLs then "urls"
else if name != "" then name

View File

@ -2,7 +2,7 @@ findTarball() {
local suffix i
if [ -d "$1/tarballs/" ]; then
for suffix in tar.gz tgz tar.bz2 tbz2 tar.xz tar.lzma; do
for i in $1/tarballs/*.$suffix; do echo $i; return; done
for i in $1/tarballs/*.$suffix; do echo $i; break; done
done | sort | head -1
return
else

View File

@ -52,11 +52,11 @@ rec {
createDeviceNodes = dev:
''
mknod ${dev}/null c 1 3
mknod ${dev}/zero c 1 5
mknod ${dev}/random c 1 8
mknod ${dev}/urandom c 1 9
mknod ${dev}/tty c 5 0
mknod -m 666 ${dev}/null c 1 3
mknod -m 666 ${dev}/zero c 1 5
mknod -m 666 ${dev}/random c 1 8
mknod -m 666 ${dev}/urandom c 1 9
mknod -m 666 ${dev}/tty c 5 0
mknod ${dev}/rtc c 254 0
. /sys/class/block/${hd}/uevent
mknod ${dev}/${hd} b $MAJOR $MINOR
@ -118,7 +118,7 @@ rec {
mount -t 9p store /fs/nix/store -o trans=virtio,version=9p2000.L,msize=262144,cache=loose
mkdir -p /fs/tmp
mount -t tmpfs -o "mode=755" none /fs/tmp
mount -t tmpfs -o "mode=1777" none /fs/tmp
echo "mounting host's temporary directory..."
mkdir -p /fs/tmp/xchg
@ -1511,6 +1511,40 @@ rec {
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
};
ubuntu1410i386 = {
name = "ubuntu-14.10-utopic-i386";
fullName = "Ubuntu 14.10 Utopic (i386)";
packagesLists =
[ (fetchurl {
url = mirror://ubuntu/dists/utopic/main/binary-i386/Packages.bz2;
sha256 = "d703032d9291783772c790c17d428ea6cf6d04c3baac5159e623ae60b681e64e";
})
(fetchurl {
url = mirror://ubuntu/dists/utopic/universe/binary-i386/Packages.bz2;
sha256 = "cc9232b7fd937bd8894ad6daf28bd4b2a7428e09a0c1661c708e846b3af24ec8";
})
];
urlPrefix = mirror://ubuntu;
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
};
ubuntu1410x86_64 = {
name = "ubuntu-14.10-utopic-amd64";
fullName = "Ubuntu 14.10 Utopic (amd64)";
packagesList =
[ (fetchurl {
url = mirror://ubuntu/dists/utopic/main/binary-amd64/Packages.bz2;
sha256 = "56b5cce1a2c8ae1ea46b1d4c50345f0fc8f1108a8db27f6dd8409d566eb517c9";
})
(fetchurl {
url = mirror://ubuntu/dists/utopic/universe/binary-amd64/Packages.bz2;
sha256 = "66ca2bf3363b4b45b97e5f5047bd736947d672c31693ed78bacd36e63b19bb63";
})
];
urlPrefix = mirror://ubuntu;
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
};
debian40i386 = {
name = "debian-4.0r9-etch-i386";
fullName = "Debian 4.0r9 Etch (i386)";
@ -1582,22 +1616,22 @@ rec {
debian70x86_64 = debian7x86_64;
debian7i386 = {
name = "debian-7.6-wheezy-i386";
fullName = "Debian 7.6 Wheezy (i386)";
name = "debian-7.7-wheezy-i386";
fullName = "Debian 7.7 Wheezy (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
sha256 = "1j093d6dwixyrk87sdvaayh3ffcn5aqwik36blndiw5njw2qkzgj";
sha256 = "f2fd890597b6f0d82c5d66ccc8b12a963937a0576a377dd0ccbe47de4c1b09c8";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
debian7x86_64 = {
name = "debian-7.6-wheezy-amd64";
fullName = "Debian 7.6 Wheezy (amd64)";
name = "debian-7.7-wheezy-amd64";
fullName = "Debian 7.7 Wheezy (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
sha256 = "1n46fxq8a2dm1i7ysc80s5lg10z5dh0hyd8k3h532n5wzs44xqcc";
sha256 = "8ce14e88febc58310a1c13350f016ce583f068d10031ed4f0cb50985707786d8";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;

View File

@ -0,0 +1,32 @@
{ stdenv, curl, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "stdman-${version}";
version = "d860212";
src = fetchFromGitHub {
owner = "jeaye";
repo = "stdman";
rev = "d860212767ca60472e33aa3bad22a3eac834b1f8";
sha256 = "09c5gjhcz97ghfrv9zkgfb1wckvmqnhbzga0xidbm1ir7640di8l";
};
preConfigure = "
patchShebangs ./configure
patchShebangs ./do_install
";
buildInputs = [ curl ];
meta = with stdenv.lib; {
description = "Formatted C++11/14 stdlib man pages (cppreference)";
longDescription = "stdman is a tool that parses archived HTML
files from cppreference and generates groff-formatted manual
pages for Unix-based systems. The goal is to provide excellent
formatting for easy readability.";
homepage = https://github.com/jeaye/stdman;
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.twey ];
};
}

View File

@ -1,15 +1,15 @@
{stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "symbola-7.17";
name = "symbola-7.18";
src = fetchurl {
url = "http://users.teilar.gr/~g1951d/Symbola.zip";
sha256 = "19q5wcqk1rz8ps7jvvx1rai6x8ais79z71sm8d36hvsk2vr135al";
sha256 = "1dk0qawlgdfh58pz2wb80rs9h8m20nmnr4bhk6jmva8201ixz62f";
};
docs_pdf = fetchurl {
url = "http://users.teilar.gr/~g1951d/Symbola.pdf";
sha256 = "11h2202p1p4np4nv5m8k41wk7431p2m35sjpmbi1ygizakkbla3p";
sha256 = "16f37fsi2zyy3ka409g3m5d9c09l0ba3rqkz912j90p4588dvk85";
};
buildInputs = [ unzip ];

View File

@ -21,4 +21,7 @@ import ./generic.nix {
postInstall = "
sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml
";
meta = {
branch = "4.1.2";
};
}

View File

@ -7,4 +7,7 @@ import ./generic.nix {
url = http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip;
md5 = "73fe50dfe74ca631c1602f558ed8961f";
};
meta = {
branch = "4.2";
};
}

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