3
0
Fork 0
forked from mirrors/nixpkgs

merge master into x-updates (would-be fast-forward)

This commit is contained in:
Vladimír Čunát 2014-03-08 11:22:11 +01:00
commit 39cf7bd19a
424 changed files with 8061 additions and 2726 deletions

View file

@ -1 +1 @@
14.02
14.04

View file

@ -1,7 +1,7 @@
Nixpkgs is a collection of packages for [Nix](http://nixos.org/nix/) package
manager. Nixpkgs also includes [NixOS](http://nixos.org/nixos/) linux distribution source code.
* [NixOS installation instructions](http://nixos.org/nixos/manual/#idm139984689550080)
* [NixOS installation instructions](http://nixos.org/nixos/manual/#installing-nixos)
* [Manual (How to write packages for Nix)](http://nixos.org/nixpkgs/manual/)
* [Manual (NixOS)](http://nixos.org/nixos/manual/)
* [Continuous build](http://hydra.nixos.org/jobset/nixos/trunk-combined)

View file

@ -235,12 +235,7 @@ Most of the time, these are the same. For instance, the package
bound to the variable name <varname>e2fsprogs</varname> in
<filename>all-packages.nix</filename>, and the Nix expression is in
<filename>pkgs/os-specific/linux/e2fsprogs/default.nix</filename>.
However, identifiers in the Nix language dont allow certain
characters (e.g. dashes), so sometimes a different variable name
should be used. For instance, the
<literal>module-init-tools</literal> package is bound to the
<literal>module_init_tools</literal> variable in
<filename>all-packages.nix</filename>.</para>
</para>
<para>There are a few naming guidelines:
@ -261,17 +256,20 @@ should be used. For instance, the
a package named <literal>hello-svn</literal> by
<command>nix-env</command>.</para></listitem>
<listitem><para>Dashes in the package name should be changed to
underscores in variable names, rather than to camel case — e.g.,
<varname>module_init_tools</varname> instead of
<varname>moduleInitTools</varname>.</para></listitem>
<listitem><para>Dashes in the package name should be preserved
in new variable names, rather than converted to underscores
(which was convention up to around 2013 and most names
still have underscores instead of dashes) — e.g.,
<varname>http-parser</varname> instead of
<varname>http_parser</varname>.</para></listitem>
<listitem><para>If there are multiple versions of a package, this
should be reflected in the variable names in
<filename>all-packages.nix</filename>,
e.g. <varname>hello_0_3</varname> and <varname>hello_0_4</varname>.
e.g. <varname>json-c-0-9</varname> and <varname>json-c-0-11</varname>.
If there is an obvious “default” version, make an attribute like
<literal>hello = hello_0_4;</literal>.</para></listitem>
<literal>json-c = json-c-0-9;</literal>.
See also <xref linkend="sec-versioning" /></para></listitem>
</itemizedlist>
@ -288,7 +286,7 @@ dashes between words — not in camel case. For instance, it should be
<filename>allPackages.nix</filename> or
<filename>AllPackages.nix</filename>.</para>
<section><title>Hierachy</title>
<section><title>Hierarchy</title>
<para>Each package should be stored in its own directory somewhere in
the <filename>pkgs/</filename> tree, i.e. in
@ -567,7 +565,7 @@ splitting up an existing category.</para>
</section>
<section><title>Versioning</title>
<section xml:id="sec-versioning"><title>Versioning</title>
<para>Because every version of a package in Nixpkgs creates a
potential maintenance burden, old versions of a package should not be

View file

@ -1156,12 +1156,27 @@ echo @foo@
to Qts path.</para></listitem>
</varlistentry>
<varlistentry>
<term>gdk-pixbuf</term>
<listitem><para>Exports <envar>GDK_PIXBUF_MODULE_FILE</envar>
environment variable the the builder. Add librsvg package
to <varname>buildInputs</varname> to get svg support.</para></listitem>
</varlistentry>
<varlistentry>
<term>GHC</term>
<listitem><para>Creates a temporary package database and registers
every Haskell build input in it (TODO: how?).</para></listitem>
</varlistentry>
<varlistentry>
<term>GStreamer</term>
<listitem><para>Adds the
GStreamer plugins subdirectory of
each build input to the <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar> or
<envar>GST_PLUGIN_SYSTEM_PATH</envar> environment variable.</para></listitem>
</varlistentry>
</variablelist>
</para>

View file

@ -28,6 +28,7 @@
garbas = "Rok Garbas <rok@garbas.si>";
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
guibert = "David Guibert <david.guibert@gmail.com>";
hinton = "Tom Hinton <t@larkery.com>";
ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
iElectric = "Domen Kozar <domen@dev.si>";
iyzsong = "Song Wenwu <iyzsong@gmail.com>";
@ -43,6 +44,7 @@
matejc = "Matej Cotman <cotman.matej@gmail.com>";
modulistic = "Pablo Costa <modulistic@gmail.com>";
mornfall = "Petr Ročkai <me@mornfall.net>";
msackman = "Matthew Sackman <matthew@wellquite.org>";
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
@ -57,6 +59,7 @@
rob = "Rob Vermaas <rob.vermaas@gmail.com>";
roconnor = "Russell O'Connor <roconnor@theorem.ca>";
roelof = "Roelof Wobben <rwobben@hotmail.com>";
romildo = "José Romildo Malaquias <malaquias@gmail.com>";
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
shlevy = "Shea Levy <shea@shealevy.com>";
@ -67,12 +70,14 @@
the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
vcunat = "Vladimír Čunát <vcunat@gmail.com>";
viric = "Lluís Batlle i Rossell <viric@viric.name>";
vizanto = "Danny Wilson <danny@prime.vc>";
vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
z77z = "Marco Maggesi <maggesi@math.unifi.it>";
zef = "Zef Hemel <zef@zef.me>";
zimbatm = "zimbatm <zimbatm@zimbatm.com>";

View file

@ -10,7 +10,6 @@ with import ./strings.nix;
rec {
isType = type: x: (x._type or "") == type;
typeOf = x: x._type or "";
setType = typeName: value: value // {
_type = typeName;

View file

@ -1,5 +1,6 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink">
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="installing-nixos">
<title>Installing NixOS</title>

View file

@ -21,6 +21,10 @@ enhancements are the following:
<listitem><para>NixOS is now based on Glibc 2.18 and GCC
4.8.</para></listitem>
<listitem><para>The mysql55 service has been merged into the
mysql service, which no longer sets a default for the 'package
option.</para></listitem>
</itemizedlist>
</para>

View file

@ -144,6 +144,13 @@ sub runTests {
}
});
$log->nest("syncing", sub {
foreach my $vm (values %vms) {
next unless $vm->isUp();
$vm->execute("sync /tmp/xchg");
}
});
if ($nrTests != 0) {
$log->log("$nrSucceeded out of $nrTests tests succeeded",
($nrSucceeded < $nrTests ? { error => 1 } : { }));

View file

@ -67,62 +67,16 @@ rec {
};
# Generate a coverage report from the coverage data produced by
# runTests.
makeReport = x: runCommand "report" { buildInputs = [rsync]; }
''
mkdir -p $TMPDIR/gcov/
for d in ${x}/coverage-data/*; do
echo "doing $d"
[ -n "$(ls -A "$d")" ] || continue
for i in $(cd $d/nix/store && ls); do
if ! test -e $TMPDIR/gcov/nix/store/$i; then
echo "copying $i"
mkdir -p $TMPDIR/gcov/$(echo $i | cut -c34-)
rsync -rv /nix/store/$i/.build/* $TMPDIR/gcov/
fi
done
chmod -R u+w $TMPDIR/gcov
find $TMPDIR/gcov -name "*.gcda" -exec rm {} \;
for i in $(cd $d/nix/store && ls); do
rsync -rv $d/nix/store/$i/.build/* $TMPDIR/gcov/
done
find $TMPDIR/gcov -name "*.gcda" -exec chmod 644 {} \;
echo "producing info..."
${pkgs.lcov}/bin/geninfo --ignore-errors source,gcov $TMPDIR/gcov --output-file $TMPDIR/app.info
cat $TMPDIR/app.info >> $TMPDIR/full.info
done
echo "making report..."
mkdir -p $out/coverage
${pkgs.lcov}/bin/genhtml --show-details $TMPDIR/full.info -o $out/coverage
cp $TMPDIR/full.info $out/coverage/
mkdir -p $out/nix-support
cat ${x}/nix-support/hydra-build-products >> $out/nix-support/hydra-build-products
echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
[ ! -e ${x}/nix-support/failed ] || touch $out/nix-support/failed
''; # */
makeTest = testFun: complete (call testFun);
makeTests = testsFun: lib.mapAttrs (name: complete) (call testsFun);
apply = makeTest; # compatibility
call = f: f { inherit pkgs system; };
complete = t: t // rec {
complete = { testScript, ... } @ t: t // rec {
nodes = buildVirtualNetwork (
if t ? nodes then t.nodes else
if t ? machine then { machine = t.machine; }
else { } );
t.nodes or (if t ? machine then { machine = t.machine; } else { }));
testScript =
# Call the test script with the computed nodes.
@ -162,7 +116,7 @@ rec {
test = runTests driver;
report = makeReport test;
report = releaseTools.gcovReport { coverageRuns = [ test ]; };
};

View file

@ -77,7 +77,7 @@ in {
};
package = mkOption {
type = types.path;
type = types.package;
default = pulseaudio;
example = literalExample "pulseaudio.override { jackaudioSupport = true; }";
description = ''

View file

@ -256,7 +256,7 @@ foreach my $fs (read_file("/proc/self/mountinfo")) {
$mountPoint = "/" if $mountPoint eq "";
# Skip special filesystems.
next if in($mountPoint, "/proc") || in($mountPoint, "/dev") || in($mountPoint, "/sys") || in($mountPoint, "/run");
next if in($mountPoint, "/proc") || in($mountPoint, "/dev") || in($mountPoint, "/sys") || in($mountPoint, "/run") || $mountPoint eq "/var/lib/nfs/rpc_pipefs";
# Skip the optional fields.
my $n = 6; $n++ while $fields[$n] ne "-"; $n++;
@ -305,7 +305,15 @@ EOF
fileSystems.\"$mountPoint\" =
{ device = \"$device\";
fsType = \"$fsType\";
options = \"${\join ",", uniq(@extraOptions, @superOptions, @mountOptions)}\";
EOF
if (scalar @extraOptions > 0) {
$fileSystems .= <<EOF;
options = \"${\join ",", uniq(@extraOptions)}\";
EOF
}
$fileSystems .= <<EOF;
};
EOF

View file

@ -228,7 +228,7 @@ else
escapeQuotes () { eval echo "$1"; }
nixMap escapeQuotes "$names"
else
echo 1>&2 "An error occured while looking for attribute names."
echo 1>&2 "An error occurred while looking for attribute names."
echo $result
fi
fi

View file

@ -113,6 +113,8 @@
munin = 102;
logcheck = 103;
nix-ssh = 104;
dictd = 105;
couchdb = 106;
# When adding a uid, make sure it doesn't match an existing gid.
@ -204,6 +206,8 @@
connman = 94;
munin = 95;
keys = 96;
dictd = 105;
couchdb = 106;
# When adding a gid, make sure it doesn't match an existing uid.

View file

@ -78,16 +78,17 @@
./services/backup/bacula.nix
./services/backup/mysql-backup.nix
./services/backup/postgresql-backup.nix
./services/backup/sitecopy-backup.nix
./services/backup/rsnapshot.nix
./services/backup/sitecopy-backup.nix
./services/backup/tarsnap.nix
./services/databases/4store-endpoint.nix
./services/databases/4store.nix
./services/databases/couchdb.nix
./services/databases/firebird.nix
./services/databases/memcached.nix
./services/databases/mongodb.nix
./services/databases/redis.nix
./services/databases/mysql.nix
./services/databases/mysql55.nix
./services/databases/openldap.nix
./services/databases/postgresql.nix
./services/databases/virtuoso.nix

View file

@ -45,7 +45,7 @@ in
TERMINFO_DIRS = [ "${i}/share/terminfo" ];
PERL5LIB = [ "${i}/lib/perl5/site_perl" ];
ALSA_PLUGIN_DIRS = [ "${i}/lib/alsa-lib" ];
GST_PLUGIN_PATH = [ "${i}/lib/gstreamer-0.10" ];
GST_PLUGIN_SYSTEM_PATH = [ "${i}/lib/gstreamer-0.10" ];
KDEDIRS = [ "${i}" ];
STRIGI_PLUGIN_PATH = [ "${i}/lib/strigi/" ];
QT_PLUGIN_PATH = [ "${i}/lib/qt4/plugins" "${i}/lib/kde4/plugins" ];

View file

@ -56,7 +56,7 @@ let
inherit visible;
});
}
{ config = setTo (mkIf (fromOf options).isDefined (define (mkMerge (fromOf options).definitions)));
{ config = setTo (mkMerge (if (fromOf options).isDefined then [ (define (mkMerge (fromOf options).definitions)) ] else []));
}
];
@ -115,14 +115,12 @@ in zipModules ([]
# !!! this hardcodes bash, could we detect from config which shell is actually used?
++ obsolete [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ]
++ obsolete [ "services" "xserver" "driSupport" ] [ "services" "mesa" "driSupport" ]
++ obsolete [ "services" "xserver" "driSupport32Bit" ] [ "services" "mesa" "driSupport32Bit" ]
++ obsolete [ "services" "xserver" "s3tcSupport" ] [ "services" "mesa" "s3tcSupport" ]
++ obsolete [ "services" "xserver" "videoDrivers" ] [ "services" "mesa" "videoDrivers" ]
++ obsolete [ "services" "mesa" "driSupport" ] [ "hardware" "opengl" "driSupport" ]
++ obsolete [ "services" "mesa" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ]
++ obsolete [ "services" "mesa" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ]
++ obsolete [ "services" "mesa" "videoDrivers" ] [ "hardware" "opengl" "videoDrivers" ]
++ obsolete [ "services" "xserver" "driSupport" ] [ "hardware" "opengl" "driSupport" ]
++ obsolete [ "services" "xserver" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ]
++ obsolete [ "services" "xserver" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ]
++ obsolete [ "services" "xserver" "videoDrivers" ] [ "hardware" "opengl" "videoDrivers" ]
++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ]
# Options that are obsolete and have no replacement.
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]

View file

@ -0,0 +1,203 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.tarsnap;
optionalNullStr = e: v: if e == null then "" else v;
configFile = pkgs.writeText "tarsnap.conf" ''
cachedir ${cfg.cachedir}
keyfile ${cfg.keyfile}
${optionalString cfg.nodump "nodump"}
${optionalString cfg.printStats "print-stats"}
${optionalNullStr cfg.checkpointBytes "checkpoint-bytes "+cfg.checkpointBytes}
${optionalString cfg.aggressiveNetworking "aggressive-networking"}
${concatStringsSep "\n" (map (v: "exclude "+v) cfg.excludes)}
${concatStringsSep "\n" (map (v: "include "+v) cfg.includes)}
${optionalString cfg.lowmem "lowmem"}
${optionalString cfg.verylowmem "verylowmem"}
'';
in
{
options = {
services.tarsnap = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
If enabled, NixOS will periodically create backups of the
specified directories using the <literal>tarsnap</literal>
backup service. This installs a <literal>systemd</literal>
service called <literal>tarsnap-backup</literal> which is
periodically run by cron, or you may run it on-demand.
See <link xlink:href='http://www.tarsnap.com/gettingstarted.html'>Getting Started</link>
Tarsnap page.
'';
};
label = mkOption {
type = types.str;
default = "nixos";
description = ''
Specifies the label for archives created by Tarsnap. The
full name will be
<literal>label-$(date+"%Y%m%d%H%M%S")</literal>. For
example, by default your backups will look similar to
<literal>nixos-20140301021501</literal>.
'';
};
cachedir = mkOption {
type = types.path;
default = "/var/cache/tarsnap";
description = ''
Tarsnap operations use a "cache directory" which allows
Tarsnap to identify which blocks of data have been
previously stored; this directory is specified via the
<literal>cachedir</literal> option. If the cache directory
is lost or out of date, tarsnap creation/deletion operations
will exit with an error message instructing you to run
<literal>tarsnap --fsck</literal> to regenerate the cache
directory.
'';
};
keyfile = mkOption {
type = types.path;
default = "/root/tarsnap.key";
description = ''
Path to the keyfile which identifies the machine associated
with your Tarsnap account. This file can be created using
the <literal>tarsnap-keygen</literal> utility, and providing
your Tarsnap login credentials.
'';
};
nodump = mkOption {
type = types.bool;
default = true;
description = ''
If set to <literal>true</literal>, then don't archive files
which have the <literal>nodump</literal> flag set.
'';
};
printStats = mkOption {
type = types.bool;
default = true;
description = "Print statistics when creating archives.";
};
checkpointBytes = mkOption {
type = types.nullOr types.str;
default = "1G";
description = ''
Create a checkpoint per a particular amount of uploaded
data. By default, Tarsnap will create checkpoints once per
GB of data uploaded. At minimum,
<literal>checkpointBytes</literal> must be 1GB.
Can also be set to <literal>null</literal> to disable
checkpointing.
'';
};
period = mkOption {
type = types.str;
default = "15 01 * * *";
description = ''
This option defines (in the format used by cron) when
tarsnap is run for backups. The default is to update at
01:15 at night every day.
'';
};
aggressiveNetworking = mkOption {
type = types.bool;
default = false;
description = ''
Aggressive network behaviour: Use multiple TCP connections
when writing archives. Use of this option is recommended
only in cases where TCP congestion control is known to be
the limiting factor in upload performance.
'';
};
directories = mkOption {
type = types.listOf types.path;
default = [];
description = "List of filesystem paths to archive.";
};
excludes = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Exclude files and directories matching the specified patterns.
'';
};
includes = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Include only files and directories matching the specified patterns.
Note that exclusions specified via
<literal>excludes</literal> take precedence over inclusions.
'';
};
lowmem = mkOption {
type = types.bool;
default = false;
description = ''
Attempt to reduce tarsnap memory consumption. This option
will slow down the process of creating archives, but may
help on systems where the average size of files being backed
up is less than 1 MB.
'';
};
verylowmem = mkOption {
type = types.bool;
default = false;
description = ''
Try even harder to reduce tarsnap memory consumption. This
can significantly slow down tarsnap, but reduces its memory
usage by an additional factor of 2 beyond what the
<literal>lowmem</literal> option does.
'';
};
};
};
config = mkIf cfg.enable {
assertions =
[ { assertion = cfg.directories != [];
message = "Must specify directories for Tarsnap to back up";
}
{ assertion = cfg.lowmem -> !cfg.verylowmem && (cfg.verylowmem -> !cfg.lowmem);
message = "You cannot set both lowmem and verylowmem";
}
];
systemd.services.tarsnap-backup = {
description = "Tarsnap Backup process";
path = [ pkgs.tarsnap pkgs.coreutils ];
script = ''
mkdir -p -m 0755 $(dirname ${cfg.cachedir})
mkdir -p -m 0600 ${cfg.cachedir}
exec tarsnap --configfile ${configFile} -c -f ${cfg.label}-$(date +"%Y%m%d%H%M%S") ${concatStringsSep " " cfg.directories}
'';
};
services.cron.systemCronJobs = optional cfg.enable
"${cfg.period} root ${config.systemd.package}/bin/systemctl start tarsnap-backup.service";
environment.systemPackages = [ pkgs.tarsnap ];
};
}

View file

@ -0,0 +1,188 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.couchdb;
configFile = pkgs.writeText "couchdb.ini"
''
[couchdb]
database_dir = ${cfg.databaseDir}
uri_file = ${cfg.uriFile}
view_index_dir = ${cfg.viewIndexDir}
[httpd]
port = ${toString cfg.port}
bind_address = ${cfg.bindAddress}
[log]
file = ${cfg.logFile}
'';
configExtraFile = pkgs.writeText "couchdb-extra.ini" cfg.extraConfig;
in
{
###### interface
options = {
services.couchdb = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to run CouchDB Server.
'';
};
package = mkOption {
type = types.package;
default = pkgs.couchdb;
example = literalExample "pkgs.couchdb";
description = ''
CouchDB package to use.
'';
};
user = mkOption {
type = types.string;
default = "couchdb";
description = ''
User account under which couchdb runs.
'';
};
group = mkOption {
type = types.string;
default = "couchdb";
description = ''
Group account under which couchdb runs.
'';
};
pidFile = mkOption {
type = types.path;
default = "/var/run/couchdb/couchdb.pid";
description = ''
pid file.
'';
};
# couchdb options: http://docs.couchdb.org/en/latest/config/index.html
databaseDir = mkOption {
type = types.path;
default = "/var/lib/couchdb";
description = ''
Specifies location of CouchDB database files (*.couch named). This
location should be writable and readable for the user the CouchDB
service runs as (couchdb by default).
'';
};
uriFile = mkOption {
type = types.path;
default = "/var/run/couchdb/couchdb.uri";
description = ''
This file contains the full URI that can be used to access this
instance of CouchDB. It is used to help discover the port CouchDB is
running on (if it was set to 0 (e.g. automatically assigned any free
one). This file should be writable and readable for the user that
runs the CouchDB service (couchdb by default).
'';
};
viewIndexDir = mkOption {
type = types.path;
default = "/var/lib/couchdb";
description = ''
Specifies location of CouchDB view index files. This location should
be writable and readable for the user that runs the CouchDB service
(couchdb by default).
'';
};
bindAddress = mkOption {
type = types.string;
default = "127.0.0.1";
description = ''
Defines the IP address by which CouchDB will be accessible.
'';
};
port = mkOption {
type = types.int;
default = 5984;
description = ''
Defined the port number to listen.
'';
};
logFile = mkOption {
type = types.path;
default = "/var/log/couchdb.log";
description = ''
Specifies the location of file for logging output.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra configuration. Overrides any other cofiguration.
'';
};
};
};
###### implementation
config = mkIf config.services.couchdb.enable {
environment.systemPackages = [ cfg.package ];
systemd.services.couchdb = {
description = "CouchDB Server";
wantedBy = [ "multi-user.target" ];
preStart =
''
mkdir -p `dirname ${cfg.pidFile}`;
mkdir -p `dirname ${cfg.uriFile}`;
mkdir -p `dirname ${cfg.logFile}`;
touch ${cfg.logFile};
mkdir -p ${cfg.databaseDir};
mkdir -p ${cfg.viewIndexDir};
chown ${cfg.user}:${cfg.group} `dirname ${cfg.pidFile}`
chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}`
chown ${cfg.user}:${cfg.group} ${cfg.logFile}
chown ${cfg.user}:${cfg.group} ${cfg.databaseDir}
chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
'';
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
Type = "forking";
ExecStart = "${cfg.package}/bin/couchdb -b -o /dev/null -e /dev/null -p ${cfg.pidFile} -a ${configFile} -a ${configExtraFile}";
ExecStop = "${cfg.package}/bin/couchdb -d";
};
};
users.extraUsers.couchdb = {
description = "CouchDB Server user";
group = "couchdb";
uid = config.ids.uids.couchdb;
};
users.extraGroups.couchdb.gid = config.ids.gids.couchdb;
};
}

View file

@ -49,6 +49,7 @@ in
package = mkOption {
default = pkgs.firebirdSuper;
type = types.package;
/*
Example: <code>package = pkgs.firebirdSuper.override { icu =
pkgs.icu; };</code> which is not recommended for compatibility

View file

@ -39,6 +39,7 @@ in
package = mkOption {
default = pkgs.mongodb;
type = types.package;
description = "
Which MongoDB derivation to use.
";

View file

@ -8,6 +8,10 @@ let
mysql = cfg.package;
is55 = mysql.mysqlVersion == "5.5";
mysqldDir = if is55 then "${mysql}/bin" else "${mysql}/libexec";
pidFile = "${cfg.pidDir}/mysqld.pid";
mysqldOptions =
@ -19,7 +23,7 @@ let
[mysqld]
${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "log-bin=mysql-bin"}
${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "server-id = ${toString cfg.replication.serverId}"}
${optionalString (cfg.replication.role == "slave")
${optionalString (cfg.replication.role == "slave" && !is55)
''
master-host = ${cfg.replication.masterHost}
master-user = ${cfg.replication.masterUser}
@ -47,7 +51,8 @@ in
};
package = mkOption {
default = pkgs.mysql;
type = types.package;
example = literalExample "pkgs.mysql";
description = "
Which MySQL derivation to use.
";
@ -176,7 +181,7 @@ in
chown -R ${cfg.user} ${cfg.pidDir}
'';
serviceConfig.ExecStart = "${mysql}/libexec/mysqld --defaults-extra-file=${myCnf} ${mysqldOptions}";
serviceConfig.ExecStart = "${mysqldDir}/mysqld --defaults-extra-file=${myCnf} ${mysqldOptions}";
postStart =
''
@ -216,6 +221,16 @@ in
fi
'') cfg.initialDatabases}
${optionalString (cfg.replication.role == "slave" && is55)
''
# Set up the replication master
( echo "stop slave;"
echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
echo "start slave;"
) | ${mysql}/bin/mysql -u root -N
''}
${optionalString (cfg.initialScript != null)
''
# Execute initial script

View file

@ -1,248 +0,0 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.mysql55;
mysql = cfg.package;
pidFile = "${cfg.pidDir}/mysqld.pid";
mysqldOptions =
"--user=${cfg.user} --datadir=${cfg.dataDir} " +
"--pid-file=${pidFile}";
myCnf = pkgs.writeText "my.cnf"
''
[mysqld]
${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "log-bin=mysql-bin"}
${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "server-id = ${toString cfg.replication.serverId}"}
${cfg.extraOptions}
'';
in
{
###### interface
options = {
services.mysql55 = {
enable = mkOption {
default = false;
description = "
Whether to enable the MySQL server.
";
};
package = mkOption {
default = pkgs.mysql55;
description = "
Which MySQL derivation to use.
";
};
port = mkOption {
default = "3306";
description = "Port of MySQL";
};
user = mkOption {
default = "mysql";
description = "User account under which MySQL runs";
};
dataDir = mkOption {
default = "/var/mysql"; # !!! should be /var/db/mysql
description = "Location where MySQL stores its table files";
};
pidDir = mkOption {
default = "/var/run/mysql";
description = "Location of the file which stores the PID of the MySQL server";
};
extraOptions = mkOption {
default = "";
example = ''
key_buffer_size = 6G
table_cache = 1600
log-error = /var/log/mysql_err.log
'';
description = ''
Provide extra options to the MySQL configuration file.
Please note, that these options are added to the
<literal>[mysqld]</literal> section so you don't need to explicitly
state it again.
'';
};
initialDatabases = mkOption {
default = [];
description = "List of database names and their initial schemas that should be used to create databases on the first startup of MySQL";
example = [
{ name = "foodatabase"; schema = literalExample "./foodatabase.sql"; }
{ name = "bardatabase"; schema = literalExample "./bardatabase.sql"; }
];
};
initialScript = mkOption {
default = null;
description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
};
# FIXME: remove this option; it's a really bad idea.
rootPassword = mkOption {
default = null;
description = "Path to a file containing the root password, modified on the first startup. Not specifying a root password will leave the root password empty.";
};
replication = {
role = mkOption {
default = "none";
description = "Role of the MySQL server instance. Can be either: master, slave or none";
};
serverId = mkOption {
default = 1;
description = "Id of the MySQL server instance. This number must be unique for each instance";
};
masterHost = mkOption {
description = "Hostname of the MySQL master server";
};
masterUser = mkOption {
description = "Username of the MySQL replication user";
};
masterPassword = mkOption {
description = "Password of the MySQL replication user";
};
masterPort = mkOption {
default = 3306;
description = "Port number on which the MySQL master server runs";
};
};
};
};
###### implementation
config = mkIf config.services.mysql55.enable {
users.extraUsers.mysql = {
description = "MySQL server user";
group = "mysql";
uid = config.ids.uids.mysql;
};
users.extraGroups.mysql.gid = config.ids.gids.mysql;
environment.systemPackages = [mysql];
systemd.services.mysql =
{ description = "MySQL Server";
wantedBy = [ "multi-user.target" ];
unitConfig.RequiresMountsFor = "${cfg.dataDir}";
preStart =
''
if ! test -e ${cfg.dataDir}/mysql; then
mkdir -m 0700 -p ${cfg.dataDir}
chown -R ${cfg.user} ${cfg.dataDir}
${mysql}/bin/mysql_install_db ${mysqldOptions}
touch /tmp/mysql_init
fi
mkdir -m 0700 -p ${cfg.pidDir}
chown -R ${cfg.user} ${cfg.pidDir}
'';
serviceConfig.ExecStart = "${mysql}/bin/mysqld --defaults-extra-file=${myCnf} ${mysqldOptions}";
postStart =
''
# Wait until the MySQL server is available for use
count=0
while [ ! -e /tmp/mysql.sock ]
do
if [ $count -eq 30 ]
then
echo "Tried 30 times, giving up..."
exit 1
fi
echo "MySQL daemon not yet started. Waiting for 1 second..."
count=$((count++))
sleep 1
done
if [ -f /tmp/mysql_init ]
then
${concatMapStrings (database:
''
# Create initial databases
if ! test -e "${cfg.dataDir}/${database.name}"; then
echo "Creating initial database: ${database.name}"
( echo "create database ${database.name};"
echo "use ${database.name};"
if [ -f "${database.schema}" ]
then
cat ${database.schema}
elif [ -d "${database.schema}" ]
then
cat ${database.schema}/mysql-databases/*.sql
fi
) | ${mysql}/bin/mysql -u root -N
fi
'') cfg.initialDatabases}
${optionalString (cfg.replication.role == "slave")
''
# Set up the replication master
( echo "stop slave;"
echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
echo "start slave;"
) | ${mysql}/bin/mysql -u root -N
''}
${optionalString (cfg.initialScript != null)
''
# Execute initial script
cat ${cfg.initialScript} | ${mysql}/bin/mysql -u root -N
''}
${optionalString (cfg.rootPassword != null)
''
# Change root password
( echo "use mysql;"
echo "update user set Password=password('$(cat ${cfg.rootPassword})') where User='root';"
echo "flush privileges;"
) | ${mysql}/bin/mysql -u root -N
''}
rm /tmp/mysql_init
fi
''; # */
serviceConfig.ExecStop =
"${mysql}/bin/mysqladmin ${optionalString (cfg.rootPassword != null) "--user=root --password=\"$(cat ${cfg.rootPassword})\""} shutdown";
};
};
}

View file

@ -55,7 +55,7 @@ in
};
package = mkOption {
type = types.path;
type = types.package;
example = literalExample "pkgs.postgresql92";
description = ''
PostgreSQL package to use.

View file

@ -45,6 +45,7 @@ in
package = mkOption {
default = pkgs.redis;
description = "Which Redis derivation to use.";
type = types.package;
};
user = mkOption {

View file

@ -42,6 +42,7 @@ in
package = mkOption {
default = pkgs.cgminer;
description = "Which cgminer derivation to use.";
type = types.package;
};
user = mkOption {

View file

@ -43,10 +43,12 @@ with pkgs.lib;
group = "dictd";
description = "DICT.org dictd server";
home = "${dictdb}/share/dictd";
uid = config.ids.uids.dictd;
};
users.extraGroups = singleton
{ name = "dictd";
gid = config.ids.gids.dictd;
};
jobs.dictd =

View file

@ -58,7 +58,7 @@ in
nix = {
package = mkOption {
type = types.path;
type = types.package;
default = pkgs.nix;
description = ''
This option specifies the Nix package instance to use throughout the system.

View file

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

View file

@ -128,6 +128,17 @@ in
'';
};
networking.firewall.allowedTCPPortRanges = mkOption {
default = [];
example = [ { from = 8999; to = 9003; } ];
type = types.listOf (types.attrsOf types.int);
description =
''
A range of TCP ports on which incoming connections are
accepted.
'';
};
networking.firewall.allowedUDPPorts = mkOption {
default = [];
example = [ 53 ];
@ -138,6 +149,16 @@ in
'';
};
networking.firewall.allowedUDPPortRanges = mkOption {
default = [];
example = [ { from = 60000; to = 61000; } ];
type = types.listOf (types.attrsOf types.int);
description =
''
Range of open UDP ports.
'';
};
networking.firewall.allowPing = mkOption {
default = false;
type = types.bool;
@ -322,6 +343,15 @@ in
) cfg.allowedTCPPorts
}
# Accept connections to the allowed TCP port ranges.
${concatMapStrings (rangeAttr:
let range = toString rangeAttr.from + ":" + toString rangeAttr.to; in
''
ip46tables -A nixos-fw -p tcp --dport ${range} -j nixos-fw-accept
''
) cfg.allowedTCPPortRanges
}
# Accept packets on the allowed UDP ports.
${concatMapStrings (port:
''
@ -330,6 +360,15 @@ in
) cfg.allowedUDPPorts
}
# Accept packets on the allowed UDP port ranges.
${concatMapStrings (rangeAttr:
let range = toString rangeAttr.from + ":" + toString rangeAttr.to; in
''
ip46tables -A nixos-fw -p udp --dport ${range} -j nixos-fw-accept
''
) cfg.allowedUDPPortRanges
}
# Accept IPv4 multicast. Not a big security risk since
# probably nobody is listening anyway.
#iptables -A nixos-fw -d 224.0.0.0/4 -j nixos-fw-accept

View file

@ -17,6 +17,8 @@ let
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
${toString (map (server: "server " + server + " iburst\n") config.services.ntp.servers)}
'';

View file

@ -63,6 +63,7 @@ let
enablePHP = false;
phpOptions = "";
options = {};
documentRoot = null;
};
res = defaults // svcFunction { inherit config pkgs serverInfo php; };
in res;
@ -188,7 +189,11 @@ let
subservices = callSubservices serverInfo cfg.extraSubservices;
documentRoot = if cfg.documentRoot != null then cfg.documentRoot else
maybeDocumentRoot = fold (svc: acc:
if acc == null then svc.documentRoot else assert svc.documentRoot == null; acc
) null ([ cfg ] ++ subservices);
documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else
pkgs.runCommand "empty" {} "ensureDir $out";
documentRootConf = ''
@ -240,7 +245,7 @@ let
${robotsConf}
${if isMainServer || cfg.documentRoot != null then documentRootConf else ""}
${if isMainServer || maybeDocumentRoot != null then documentRootConf else ""}
${if cfg.enableUserDir then ''
@ -414,7 +419,7 @@ in
};
package = mkOption {
type = types.path;
type = types.package;
default = pkgs.apacheHttpd.override { mpm = mainCfg.multiProcessingModule; };
example = "pkgs.apacheHttpd_2_4";
description = ''

View file

@ -126,7 +126,18 @@ in
</Directory>
''}
Alias ${config.urlPrefix} ${mediawikiRoot}
${if config.urlPrefix != "" then "Alias ${config.urlPrefix} ${mediawikiRoot}" else ''
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ${if config.enableUploads
then "!^/images"
else "^.*\$"
} %{DOCUMENT_ROOT}/${if config.articleUrlPrefix == ""
then ""
else "${config.articleUrlPrefix}/"
}index.php [L]
''}
<Directory ${mediawikiRoot}>
Order allow,deny
@ -139,6 +150,8 @@ in
''}
'';
documentRoot = if config.urlPrefix == "" then mediawikiRoot else null;
enablePHP = true;
options = {

View file

@ -25,6 +25,7 @@ in
package = mkOption {
default = pkgs.nginx;
type = types.package;
description = "
Nginx package to use.
";

View file

@ -7,9 +7,9 @@ let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager;
# Whether desktop manager `d' is capable of setting a background.
# If it isn't, the `feh' program is used as a fallback.
needBGCond = d: ! (d ? bgSupport && d.bgSupport);
# If desktop manager `d' isn't capable of setting a background and
# the xserver is enabled, the `feh' program is used as a fallback.
needBGCond = d: ! (d ? bgSupport && d.bgSupport) && xcfg.enable;
in

View file

@ -2,9 +2,23 @@
with pkgs.lib;
let cfg = config.services.xserver.synaptics; in
{
let cfg = config.services.xserver.synaptics;
tapConfig = if cfg.tapButtons then enabledTapConfig else disabledTapConfig;
enabledTapConfig = ''
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "TapButton1" "${builtins.elemAt cfg.buttonsMap 0}"
Option "TapButton2" "${builtins.elemAt cfg.buttonsMap 1}"
Option "TapButton3" "${builtins.elemAt cfg.buttonsMap 2}"
'';
disabledTapConfig = ''
Option "MaxTapTime" "0"
Option "MaxTapMove" "0"
Option "TapButton1" "0"
Option "TapButton2" "0"
Option "TapButton3" "0"
'';
in {
options = {
@ -106,15 +120,10 @@ let cfg = config.services.xserver.synaptics; in
MatchIsTouchpad "on"
${optionalString (cfg.dev != null) ''MatchDevicePath "${cfg.dev}"''}
Driver "synaptics"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "MinSpeed" "${cfg.minSpeed}"
Option "MaxSpeed" "${cfg.maxSpeed}"
Option "AccelFactor" "${cfg.accelFactor}"
${if cfg.tapButtons then "" else ''Option "MaxTapTime" "0"''}
Option "TapButton1" "${builtins.elemAt cfg.buttonsMap 0}"
Option "TapButton2" "${builtins.elemAt cfg.buttonsMap 1}"
Option "TapButton3" "${builtins.elemAt cfg.buttonsMap 2}"
${optionalString cfg.tapButtons tapConfig}
Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}"
Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}"
Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}"

View file

@ -159,7 +159,7 @@ in
boot.kernel.sysctl."kernel.printk" = config.boot.consoleLogLevel;
boot.kernelModules = [ "loop" ];
boot.kernelModules = [ "loop" "configs" ];
boot.initrd.availableKernelModules =
[ # Note: most of these (especially the SATA/PATA modules)

View file

@ -14,7 +14,7 @@ fail() {
# in an interactive shell.
cat <<EOF
An error occured in stage 1 of the boot process, which must mount the
An error occurred in stage 1 of the boot process, which must mount the
root filesystem on \`$targetRoot' and then start stage 2. Press one
of the following keys:

View file

@ -649,6 +649,7 @@ in
systemd.targets.keys =
{ description = "Security Keys";
unitConfig.X-StopOnReconfiguration = true;
};
systemd.units =

View file

@ -164,5 +164,5 @@ with pkgs.lib;
# Prevent logging in as root without a password. This doesn't really matter,
# since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on EC2 machines.
security.initialRootPassword = "!";
security.initialRootPassword = mkDefault "!";
}

View file

@ -55,7 +55,7 @@ with pkgs.lib;
modules =
let extraConfig =
{ boot.isContainer = true;
security.initialRootPassword = "!";
security.initialRootPassword = mkDefault "!";
networking.hostName = mkDefault name;
};
in [ extraConfig config.config ];
@ -134,4 +134,4 @@ with pkgs.lib;
}) config.systemd.containers;
};
}
}

View file

@ -114,7 +114,7 @@ with pkgs.lib;
# Prevent logging in as root without a password. This doesn't really matter,
# since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on Google Compute machines.
security.initialRootPassword = "!";
security.initialRootPassword = mkDefault "!";
# Configure default metadata hostnames
networking.extraHosts = ''

View file

@ -44,7 +44,7 @@ in rec {
(all nixos.iso_graphical)
(all nixos.ova)
(all nixos.tests.efi-installer.simple)
# (all nixos.tests.efi-installer.simple)
(all nixos.tests.firefox)
(all nixos.tests.firewall)
(all nixos.tests.installer.grub1)

View file

@ -213,7 +213,8 @@ in rec {
with lib;
let
testsFor = system:
mapAttrsRecursiveCond (x: !x ? test) (n: v: listToAttrs [(nameValuePair system v.test)])
mapAttrsRecursiveCond (x: !x ? test)
(n: v: listToAttrs [(nameValuePair system (if v.makeCoverageReport or false then v.report else v.test))])
(import ./tests { inherit nixpkgs system; });
in fold recursiveUpdate {} (map testsFor systems);
}

View file

@ -11,11 +11,12 @@ in
{
services.mysql.enable = true;
services.mysql.replication.role = "master";
services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
services.mysql.initialScript = pkgs.writeText "initmysql"
services.mysql.package = pkgs.mysql;
services.mysql.replication.role = "master";
services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
services.mysql.initialScript = pkgs.writeText "initmysql"
''
create user '${replicateUser}'@'%' identified by '${replicatePassword}';
create user '${replicateUser}'@'%' identified by '${replicatePassword}';
grant replication slave on *.* to '${replicateUser}'@'%';
'';
};
@ -25,11 +26,12 @@ in
{
services.mysql.enable = true;
services.mysql.replication.role = "slave";
services.mysql.replication.serverId = 2;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
services.mysql.replication.masterUser = replicateUser;
services.mysql.replication.masterPassword = replicatePassword;
services.mysql.package = pkgs.mysql;
services.mysql.replication.role = "slave";
services.mysql.replication.serverId = 2;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
services.mysql.replication.masterUser = replicateUser;
services.mysql.replication.masterPassword = replicatePassword;
};
slave2 =
@ -37,11 +39,12 @@ in
{
services.mysql.enable = true;
services.mysql.replication.role = "slave";
services.mysql.replication.serverId = 3;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
services.mysql.replication.masterUser = replicateUser;
services.mysql.replication.masterPassword = replicatePassword;
services.mysql.package = pkgs.mysql;
services.mysql.replication.role = "slave";
services.mysql.replication.serverId = 3;
services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
services.mysql.replication.masterUser = replicateUser;
services.mysql.replication.masterPassword = replicatePassword;
};
};

View file

@ -7,8 +7,9 @@
{
services.mysql.enable = true;
services.mysql.replication.role = "master";
services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
services.mysql.replication.role = "master";
services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
services.mysql.package = pkgs.mysql;
};
};

View file

@ -14,11 +14,13 @@ in
rec {
makeCoverageReport = true;
client =
{ config, pkgs, ... }:
{ imports = [ ./common/x11.nix ];
services.xserver.driSupport = true;
hardware.opengl.driSupport = true;
services.xserver.defaultDepth = pkgs.lib.mkOverride 0 16;
environment.systemPackages = [ pkgs.quake3demo ];
nixpkgs.config.packageOverrides = overrides;

View file

@ -20,7 +20,7 @@ let
# To build the kernel with coverage instrumentation, we need a
# special patch to make coverage data available under /proc.
linux = pkgs.linux.override (orig: {
stdenv = cleanupBuildTree (keepBuildTree orig.stdenv);
stdenv = overrideInStdenv pkgs.stdenv [ pkgs.keepBuildTree ];
extraConfig =
''
GCOV_KERNEL y

View file

@ -6,18 +6,16 @@
, perl, pkgconfig, python, serd, sord, sratom, suil }:
let
# Ardour 3.5.308 tag
rev = "40d8c5ae";
tag = "3.5.357";
in
stdenv.mkDerivation rec {
name = "ardour-${version}";
version = "3.5.308";
name = "ardour-${tag}";
src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git;
inherit rev;
sha256 = "7473c19c2aeb68bd93d512c2d4e976b23dd36d2453c877c859ad37a76f50dc8a";
rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
};
buildInputs =
@ -29,10 +27,10 @@ stdenv.mkDerivation rec {
];
patchPhase = ''
# The funny revision number is from `git describe ${rev}
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${version}-g40d8c5a\"; }\n' > libs/ardour/revision.cc
# The funny revision number is from `git describe rev`
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-gce4d125\"; }\n' > libs/ardour/revision.cc
# Note the different version number
sed -i '33i rev = \"3.5-308-g40d8c5a\"' wscript
sed -i '33i rev = \"3.5-357-gce4d125\"' wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl

View file

@ -44,5 +44,6 @@ stdenv.mkDerivation {
description = "A multiplatform music player";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.ttuegel ];
};
}

View file

@ -1,19 +1,20 @@
{ stdenv, fetchurl, python, gettext, intltool, pkgconfig, jackaudio, libsndfile
, glib, gtk, glibmm, gtkmm, fftw, librdf, ladspaH, boost }:
{ stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk
, gtkmm, intltool, jackaudio, ladspaH, librdf, libsndfile, lv2
, pkgconfig, python }:
stdenv.mkDerivation rec {
name = "guitarix-${version}";
version = "0.25.2";
version = "0.28.3";
src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
sha256 = "1wcg3yc2iy72hj6z9l88393f00by0iwhhn8xrc3q55p4rj0mnrga";
sha256 = "0ks5avylyicqfj9l1wf4gj62i8m6is2jmp0h11h5l2wbg3xiwxjd";
};
buildInputs =
[ python gettext intltool pkgconfig jackaudio libsndfile glib gtk glibmm
gtkmm fftw librdf ladspaH boost
];
buildInputs = [
avahi boost fftw gettext glib glibmm gtk gtkmm intltool jackaudio
ladspaH librdf libsndfile lv2 pkgconfig python
];
configurePhase = "python waf configure --prefix=$out";
@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
installPhase = "python waf install";
meta = {
meta = with stdenv.lib; {
description = "A virtual guitar amplifier for Linux running with JACK";
longDescription = ''
guitarix is a virtual guitar amplifier for Linux running with
@ -46,8 +47,8 @@ stdenv.mkDerivation rec {
crazy sounds never heard before.
'';
homepage = http://guitarix.sourceforge.net/;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.astsmtl ];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ astsmtl goibhniu ];
platforms = platforms.linux;
};
}

View file

@ -19,8 +19,6 @@ pythonPackages.buildPythonPackage rec {
propagatedBuildInputs = pythonPath;
installCommand = "python setup.py install --prefix=$out";
meta = {
homepage = "https://github.com/aszlig/LastWatch";
description = "An inotify-based last.fm audio scrobbler";

View file

@ -13,7 +13,7 @@ pythonPackages.buildPythonPackage rec {
};
propagatedBuildInputs = with pythonPackages; [
gst_python pygobject pykka pyspotify pylast cherrypy ws4py
gst_python pygobject pykka pyspotify pylast cherrypy ws4py gst_plugins_base gst_plugins_good
];
# python zip complains about old timestamps
@ -27,8 +27,7 @@ pythonPackages.buildPythonPackage rec {
postInstall = ''
for p in $out/bin/mopidy $out/bin/mopidy-scan; do
wrapProgram $p \
--prefix GST_PLUGIN_PATH : ${gst_plugins_good}/lib/gstreamer-0.10 \
--prefix GST_PLUGIN_PATH : ${gst_plugins_base}/lib/gstreamer-0.10
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
done
'';

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl, alsaLib }:
stdenv.mkDerivation {
name = "mpg123-1.16.0";
name = "mpg123-1.18.1";
src = fetchurl {
url = mirror://sourceforge/mpg123/mpg123-1.16.0.tar.bz2;
sha256 = "1lznnfdvg69a9qbbhvhfc9i86hxdmdqx67lvbkqbh8mmhpip43zh";
url = mirror://sourceforge/mpg123/mpg123-1.18.1.tar.bz2;
sha256 = "0bb5hv0qw3ln09xisi7d19gb4p2y69sx3905rdc293q3gr7khvdw";
};
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;

View file

@ -1,14 +1,15 @@
{stdenv, fetchurl, alsaLib, gtk, pkgconfig }:
{ stdenv, fetchurl, alsaLib, gtk, pkgconfig }:
stdenv.mkDerivation {
name = "praat-5323";
name = "praat-5365";
src = fetchurl {
url = http://www.fon.hum.uva.nl/praat/praat5323_sources.tar.gz;
sha256 = "1m0m5165h74mw5xhmnnyzh5ans3cn78w5rs9572sa1512cams203";
url = http://www.fon.hum.uva.nl/praat/praat5365_sources.tar.gz;
sha256 = "1w3mcq0mipx88i7ckhvzhmdj0p67nhppnn7kbkp21d01yyyz5rgq";
};
configurePhase = ''
cp makefiles/makefile.defs.linux makefile.defs
cp makefiles/makefile.defs.linux.alsa makefile.defs
'';
installPhase = ''
@ -22,5 +23,6 @@ stdenv.mkDerivation {
description = "Doing phonetics by computer";
homepage = http://www.fon.hum.uva.nl/praat/;
license = "GPLv2+"; # Has some 3rd-party code in it though
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject, intltool
, pythonDBus, gst_python, withGstPlugins ? false, gst_plugins_base ? null
, gst_plugins_good ? null, gst_plugins_ugly ? null, gst_plugins_bad ? null }:
@ -29,6 +29,11 @@ buildPythonPackage {
})
];
preConfigure = ''
# TODO: for now don't a apply gdist overrides, will be needed for shipping icons, gtk, etc
sed -i /distclass/d setup.py
'';
sourceRoot = "quodlibet-${version}";
postUnpack = ''
# the patch searches for plugins in directory ../plugins
@ -42,18 +47,13 @@ buildPythonPackage {
];
propagatedBuildInputs = [
mutagen pygtk pygobject pythonDBus gst_python
mutagen pygtk pygobject pythonDBus gst_python intltool
];
postInstall = stdenv.lib.optionalString withGstPlugins ''
# Wrap quodlibet so it finds the GStreamer plug-ins
wrapProgram "$out/bin/quodlibet" --prefix \
GST_PLUGIN_PATH ":" \
${ stdenv.lib.concatStringsSep ":"
(map (s: s+"/lib/gstreamer-0.10")
(stdenv.lib.filter (s: s != null) [
gst_plugins_base gst_plugins_good gst_plugins_ugly gst_plugins_bad
])) }
wrapProgram "$out/bin/quodlibet" --prefix \
GST_PLUGIN_SYSTEM_PATH ":" "$GST_PLUGIN_SYSTEM_PATH" \
'';
meta = {

View file

@ -1,12 +1,12 @@
{ stdenv, fetchgit, emacs }:
stdenv.mkDerivation rec {
name = "idris-mode-20140106";
name = "idris-mode-20140223";
src = fetchgit {
url = https://github.com/idris-hackers/idris-mode.git;
rev = "47df65dd5b554c1d7cf70a07c3bd06d80867f870";
sha256 = "55df66d1bace134bea83f0547e01daf068fc96dc080cf88ea8945ddcb2d08ea4";
rev = "486470533e74c55192e92a1afa050475915ee1e7";
sha256 = "ff2e6bd8fbf421e8f2db0789d2ff56c5103775b911b99bab64e4652d332bad43";
};
buildInputs = [ emacs ];

View file

@ -0,0 +1,23 @@
{ cabal, emacs, haskellSrcExts }:
cabal.mkDerivation (self: {
pname = "structured-haskell-mode";
version = "1.0.2";
sha256 = "1lwdhlr38y5hdr78nplplr3q0hrjhryw378f1857qh0lvp03gwl2";
isLibrary = false;
isExecutable = true;
buildDepends = [ haskellSrcExts ];
buildTools = [ emacs ];
postInstall = ''
emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
install -d $out/share/emacs/site-lisp
install "elisp/"*.elc $out/share/emacs/site-lisp
'';
meta = {
homepage = "https://github.com/chrisdone/structured-haskell-mode";
description = "Structured editing Emacs mode for Haskell";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.pSub ];
};
})

View file

@ -1,8 +1,10 @@
{ stdenv, fetchhg, ncurses, gettext, pkgconfig }:
stdenv.mkDerivation rec {
name = "vim-7.4.131";
name = "vim-${version}";
version = "7.4.131";
src = fetchhg {
url = "https://vim.googlecode.com/hg/";
tag = "v7-4-131";
@ -10,7 +12,7 @@ stdenv.mkDerivation rec {
};
enableParallelBuilding = true;
buildInputs = [ ncurses pkgconfig ];
nativeBuildInputs = [ gettext ];

View file

@ -0,0 +1,30 @@
{ stdenv, makeWrapper, writeText, vim, vimrc }:
let
vimrcfile = writeText "vimrc" (if vimrc == null then "" else vimrc);
in stdenv.mkDerivation rec {
name = "vimwrapper-${vim.version}";
buildInputs = [ makeWrapper vim vimrcfile ];
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out
cp -r ${vim}/* $out/
chmod u+w $out/bin
chmod u+w $out/share/vim
ln -s ${vimrcfile} $out/share/vim/vimrc
wrapProgram $out/bin/vim --set VIM "$out/share/vim"
'';
meta = with stdenv.lib; {
description = "The most popular clone of the VI editor";
homepage = http://www.vim.org;
platforms = platforms.unix;
};
}

View file

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

View file

@ -1,25 +1,24 @@
{ cabal, alex, binary, Cabal, cautiousFile, concreteTyperep
, dataAccessor, dataAccessorMtl, dataAccessorTemplate, derive, Diff
, dlist, dyre, filepath, fingertree, ghcPaths, glib, gtk, hashable
, hint, HUnit, mtl, pango, parsec, pointedlist, pureMD5, QuickCheck
, random, regexBase, regexTdfa, split, testFramework
, testFrameworkHunit, time, uniplate, unixCompat
, unorderedContainers, utf8String, vty, xdgBasedir
, dlist, dyre, filepath, fingertree, glib, gtk, hashable, hint
, HUnit, mtl, pango, parsec, pointedlist, QuickCheck, random
, regexBase, regexTdfa, split, testFramework, testFrameworkHunit
, time, uniplate, unixCompat, unorderedContainers, utf8String, vty
, xdgBasedir
}:
cabal.mkDerivation (self: {
pname = "yi";
version = "0.7.0";
sha256 = "0mzcjgp12k5mxb37r6chxsk726b1qxds49ch656bpgrg7n22w2j1";
version = "0.7.1";
sha256 = "111xg7qpjhsqf6pfr136wh8km3lrgpzghd9h5rlypafr61w59vly";
isLibrary = true;
isExecutable = true;
buildDepends = [
binary Cabal cautiousFile concreteTyperep dataAccessor
dataAccessorMtl dataAccessorTemplate derive Diff dlist dyre
filepath fingertree ghcPaths glib gtk hashable hint mtl pango
parsec pointedlist pureMD5 QuickCheck random regexBase regexTdfa
split time uniplate unixCompat unorderedContainers utf8String vty
xdgBasedir
filepath fingertree glib gtk hashable hint mtl pango parsec
pointedlist QuickCheck random regexBase regexTdfa split time
uniplate unixCompat unorderedContainers utf8String vty xdgBasedir
];
testDepends = [
filepath HUnit QuickCheck testFramework testFrameworkHunit

View file

@ -18,14 +18,14 @@
}:
let
version = "6.8.7-6";
version = "6.8.8-7";
in
stdenv.mkDerivation rec {
name = "ImageMagick-${version}";
src = fetchurl {
url = "mirror://imagemagick/${name}.tar.xz";
sha256 = "0cbfhk184kxdxz5czyyqxac29mbfiahygjji6k97z6hp8ngnqlvh";
sha256 = "1x5jkbrlc10rx7vm344j7xrs74c80xk3n1akqx8w5c194fj56mza";
};
enableParallelBuilding = true;

View file

@ -2,11 +2,11 @@
, libXinerama, curl }:
stdenv.mkDerivation rec {
name = "feh-2.9.3";
name = "feh-2.10";
src = fetchurl {
url = "http://feh.finalrewind.org/${name}.tar.bz2";
sha256 = "1wlhfbglzc1jzsh80s4s1fawclgzyjy2105ffzx2mw9s0c1xds5l";
sha256 = "10ya8j0mxlni08qli3gdkyjhy54g4d2q2kc0hhragmzd9s42ly5w";
};
buildInputs = [makeWrapper x11 imlib2 giblib libjpeg libpng libXinerama curl ];

View file

@ -9,10 +9,6 @@ buildPythonPackage rec {
sha256 = "d214a1b6d99d1d1e83da5848a2cef181f6781e0990e93f7ebff5880b0c43f43c";
};
postInstall = ''
mv $out/lib/${python.libPrefix}/site-packages/*.egg/share $out
'';
doCheck = false;
buildInputs = [ stdenv libX11 gettext ];

View file

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-1.23.0";
name = "calibre-1.25.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "1sm6v53c12nkqnpv7n4g1mzkwmzbn74a8v83bzvvjiz0i9c7cl59";
sha256 = "1y221r5vgq426ldqjrx3qvgf3j3v2wncwzra747psvhwf95zd5fd";
};
inherit python;

View file

@ -23,11 +23,11 @@
stdenv.mkDerivation rec {
name = "gnuradio-${version}";
version = "3.7.1";
version = "3.7.2.1";
src = fetchurl {
url = "http://gnuradio.org/releases/gnuradio/${name}.tar.gz";
sha256 = "1kfni8vpgr6v9rdiz3zsmwc07qj6zka9x22z2y0y4rak2xnzdxz9";
sha256 = "101wr19nxfc5x7i4s10vgrypaa0vj2pkg8b2vn5j5s9iv8gpwswc";
};
buildInputs = [
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
postInstall = ''
printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc"
for file in "$out"/bin/*; do
for file in "$out"/bin/* "$out"/share/gnuradio/examples/*/*.py; do
wrapProgram "$file" \
--set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") \
--set MATPLOTLIBRC "$out/share/gnuradio"

View file

@ -0,0 +1,17 @@
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk }:
stdenv.mkDerivation rec {
name = "lxappearance-0.5.5";
src = fetchurl{
url = "http://downloads.sourceforge.net/project/lxde/LXAppearance/${name}.tar.xz";
sha256 = "8cae82e6425ba8a0267774e4d10096df2d91b0597520058331684a5ece068b4c";
};
buildInputs = [ intltool libX11 pkgconfig gtk ];
meta = {
description = "A lightweight program for configuring the theme and fonts of gtk applications";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.gpl2;
homepage = "http://lxappearance.sourceforce.net/";
};
}

View file

@ -8,6 +8,13 @@ stdenv.mkDerivation rec {
sha256 = "0y247nka5gkr1ajn47jrlp5rcnf6h4ff7dfsprma3h4wxqdv7a5b";
};
patches = [(fetchurl {
name = "CVE-2014-2013.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=commitdiff_plain;"
+ "h=60dabde18d7fe12b19da8b509bdfee9cc886aafc";
sha256 = "1walj3wir9x50i6lph33bx14c8593r9xrn08gkd3v7r6d15lmjps";
})];
buildInputs = [ pkgconfig zlib freetype libjpeg jbig2dec openjpeg libX11 libXext ];
enableParallelBuilding = true;

View file

@ -0,0 +1,19 @@
{ stdenv, fetchurl, glib, gtk, intltool, libfm, libX11, pango, pkgconfig }:
stdenv.mkDerivation {
name = "pcmanfm-1.2.0";
src = fetchurl {
url = "mirror://sourceforge/pcmanfm/pcmanfm-1.2.0.tar.xz";
sha256 = "1cmskj7dpjgrrn89z7cc1h1nsmd6qq3bakf207ldrhrxxv3fxl2j";
};
buildInputs = [ glib gtk intltool libfm libX11 pango pkgconfig ];
meta = with stdenv.lib; {
homepage = "http://blog.lxde.org/?cat=28/";
license = licenses.gpl2Plus;
description = "File manager with GTK+ interface";
maintainers = [ maintainers.ttuegel ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,29 @@
{ fetchurl, stdenv, fetchgit, qt4, pkgconfig, boost, dbus }:
stdenv.mkDerivation rec {
rev = "9f52882688ba03d7aaab2e3fd83cb05cfbf1a374";
name = "twmn-${rev}";
src = fetchgit {
inherit rev;
url = "https://github.com/sboli/twmn.git";
sha256 = "1jd2y0ydcpjdmjbx77lw35710sqfwbgyrnpv66mi3gwvrbyiwpf3";
};
buildInputs = [ qt4 pkgconfig boost ];
propagatedBuildInputs = [ dbus ];
configurePhase = "qmake";
installPhase = ''
mkdir -p "$out/bin"
cp bin/* "$out/bin"
'';
meta = {
description = "A notification system for tiling window managers";
homepage = "https://github.com/sboli/twmn";
platforms = with stdenv.lib.platforms; linux;
maintainers = [ stdenv.lib.maintainers.matejc ];
};
}

View file

@ -1,58 +0,0 @@
diff --git a/readme.md b/readme.md
index f4f07e8..de679c7 100644
--- a/readme.md
+++ b/readme.md
@@ -645,7 +645,7 @@ something like:
- Args: default monitor arguments
- Variables that can be used with the `-t`/`--template` argument:
`total`, `free`, `buffer`, `cache`, `rest`, `used`,
- `usedratio`, `usedbar`, `freebar`
+ `usedratio`, `usedbar`, `freeratio`, `freebar`
- Default template: `Mem: <usedratio>% (<cache>M)`
### `Swap Args RefreshRate`
diff --git a/src/Plugins/Monitors/Mem.hs b/src/Plugins/Monitors/Mem.hs
index 5c55ee2..3cf46c7 100644
--- a/src/Plugins/Monitors/Mem.hs
+++ b/src/Plugins/Monitors/Mem.hs
@@ -19,8 +19,8 @@ import Plugins.Monitors.Common
memConfig :: IO MConfig
memConfig = mkMConfig
"Mem: <usedratio>% (<cache>M)" -- template
- ["usedbar", "freebar", "usedratio", "total",
- "free", "buffer", "cache", "rest", "used"] -- available replacements
+ ["usedbar", "freebar", "usedratio", "freeratio", "total",
+ "free", "buffer", "cache", "rest", "used"] -- available replacements
fileMEM :: IO String
fileMEM = readFile "/proc/meminfo"
@@ -33,7 +33,8 @@ parseMEM =
rest = free + buffer + cache
used = total - rest
usedratio = used / total
- return [usedratio, total, free, buffer, cache, rest, used]
+ freeratio = free / total
+ return [usedratio, freeratio, total, free, buffer, cache, rest, used, freeratio]
totalMem :: IO Float
totalMem = fmap ((*1024) . (!!1)) parseMEM
@@ -42,15 +43,16 @@ usedMem :: IO Float
usedMem = fmap ((*1024) . (!!6)) parseMEM
formatMem :: [Float] -> Monitor [String]
-formatMem (r:xs) =
+formatMem (r:fr:xs) =
do let f = showDigits 0
rr = 100 * r
ub <- showPercentBar rr r
fb <- showPercentBar (100 - rr) (1 - r)
rs <- showPercentWithColors r
+ fs <- showPercentWithColors fr
s <- mapM (showWithColors f) xs
- return (ub:fb:rs:s)
-formatMem _ = return $ replicate 9 "N/A"
+ return (ub:fb:rs:fs:s)
+formatMem _ = return $ replicate 10 "N/A"
runMem :: [String] -> Monitor String
runMem _ =

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, xorg, ncurses, freetype, fontconfig, pkgconfig }:
stdenv.mkDerivation rec {
name = "xterm-300";
name = "xterm-301";
src = fetchurl {
url = "ftp://invisible-island.net/xterm/${name}.tgz";
sha256 = "1k8p7q4d1gpk6zikb8hys8b30yq2v001nlp3r9g40my31ij9al31";
sha256 = "040rarvv18zg0lk7qy0m3n7gv10mh40jic708wvng01z4rlbpfhz";
};
buildInputs =

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper }:
{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper, zathura_icon }:
stdenv.mkDerivation rec {
version = "0.2.7";
@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" "RSTTOMAN=${docutils}/bin/rst2man.py" "VERBOSE=1" ];
postInstall = ''
wrapProgram "$out/bin/zathura" --prefix PATH ":" "${file}/bin"
wrapProgram "$out/bin/zathura" \
--prefix PATH ":" "${file}/bin" \
--prefix XDG_CONFIG_DIRS ":" "$out/etc"
mkdir -pv $out/etc
echo "set window-icon ${zathura_icon}" > $out/etc/zathurarc
'';
meta = {

View file

@ -3,8 +3,11 @@
rec {
inherit (pkgs) stdenv;
icon = ./icon.xpm;
zathura_core = callPackage ./core {
gtk = pkgs.gtk3;
zathura_icon = icon;
};
zathura_pdf_poppler = callPackage ./pdf-poppler { };
@ -19,7 +22,7 @@ rec {
zathuraWrapper = stdenv.mkDerivation {
inherit zathura_core;
inherit zathura_core icon;
name = "zathura-${zathura_core.version}";
@ -29,8 +32,6 @@ rec {
zathura_ps
];
icon = ./icon.xpm;
builder = ./builder.sh;
preferLocalBuild = true;

View file

@ -14,9 +14,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
version = "1.2.82";
sha256 = if stdenv.system == "x86_64-linux" then "0cqrscav57xwz7rag6wy06xw6z7ca97xailprgg6jdjv4pnc91ra"
else if stdenv.system == "i686-linux" then "1b9rnfk0wkhj1zybvfqwgd9dcqnxwdnp7m0vf6lhrgi75cydj7is"
version = "1.2.91";
sha256 = if stdenv.system == "x86_64-linux" then "1rx5mmk3ffkh6dbm0m33nyx6spsxqjw9djclcf9x9bs3zfyzgmnd"
else if stdenv.system == "i686-linux" then "1566mp01149gsb57dv87420w1vq2f3adp6g1c90xdxjxzd67yqpw"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
in stdenv.mkDerivation {

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "34.0.1847.3";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.3.tar.xz";
sha256 = "1jm9cr1qqfqd82fy3f1q4d0qg94vsrzyq8dbn4hrxyzqbjc4sclg";
version = "35.0.1862.2";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-35.0.1862.2.tar.xz";
sha256 = "19426x4x3bnx21qjhqc4sk27k7dnhm1pw84079h6gk0hyjzcwn0f";
};
beta = {
version = "33.0.1750.115";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.115.tar.xz";
sha256 = "1whr5vz8w8h9la219ah1bcsa5r84jby306w12gfzlsbk9czxchrp";
version = "34.0.1847.14";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.14.tar.xz";
sha256 = "038bz2d40rgjppkalal9ycjhfvkhph926k35v8pc3618z2fy10cn";
};
stable = {
version = "33.0.1750.115";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.115.tar.xz";
sha256 = "1whr5vz8w8h9la219ah1bcsa5r84jby306w12gfzlsbk9czxchrp";
version = "33.0.1750.146";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.146.tar.xz";
sha256 = "0x2a5kyaj38661c5s33pywhrwkm8kj2fbr1z940c5al6y2hfgc6m";
};
}

View file

@ -2,12 +2,12 @@
m4, glib_networking, gsettings_desktop_schemas }:
stdenv.mkDerivation {
name = "dwb-2014-01-29";
name = "dwb-2014-03-01";
src = fetchgit {
url = "https://bitbucket.org/portix/dwb.git";
rev = "eaf090af9ad63341a846377cb9ce473feee8f032";
sha256 = "1wqa5dry9p3x3y07zpq3km8ycr8wvz8c11754vf99pv1kzk8gq0n";
rev = "e8d4b8d7937b70279d006da4938dfe52fb85f9e8";
sha256 = "0m4730zqmnvb9k6xyydi221sh0wbanzbhg07xvwil3kn1d29340w";
};
buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4 ];

View file

@ -17,9 +17,9 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec {
firefoxVersion = "27.0";
firefoxVersion = "27.0.1";
xulVersion = "27.0"; # this attribute is used by other packages
xulVersion = "27.0.1"; # this attribute is used by other packages
src = fetchurl {
@ -29,7 +29,7 @@ rec {
# Fall back to this url for versions not available at releases.mozilla.org.
"http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
];
sha1 = "ec2031385237e30be829817ac79caa8e80cc2a14";
sha256 = "13qd53yf8dn9m03p4x5ml9h3mys60nba5nz82lcvaq7ycp1pl1bn";
};
commonConfigureFlags =

View file

@ -8,12 +8,12 @@
}:
stdenv.mkDerivation rec {
version = "2.5";
version = "2.8";
name = "links2-${version}";
src = fetchurl {
url = "${meta.homepage}/download/links-${version}.tar.bz2";
sha256 = "1wlmj8s6bxgznh0pnawihyvhffzryciz3lkagcxhf7fp64zz5izm";
sha256 = "15h07498z52jfdahzgvkphg1f7qvxnpbyfn2xmsls0d2dwwdll3r";
};
buildInputs =

View file

@ -36,7 +36,7 @@
let
# -> http://get.adobe.com/flashplayer/
version = "11.2.202.336";
version = "11.2.202.341";
src =
if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec {
inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "1wri6y5vllgs452dfklv23k7bp5daajnaqblkn5cb2gl28l5xcni";
sha256 = "0d1ic70awdig0v699svmq8mmnil8xmmwsap30sgi0r94saxmq49j";
}
else if stdenv.system == "i686-linux" then
if debug then {
@ -58,7 +58,7 @@ let
} else rec {
inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "0mjxjbj75r74gqpmqzqa6vlrk2wv7r358wcqbmg132bhv8kaph85";
sha256 = "0bfz1id4035jnkwy4xm0dj8l9lygrrzqdbf8dgc9pcy8c63d1hac";
}
else throw "Flash Player is not supported on this platform";

View file

@ -45,20 +45,22 @@ in
stdenv.mkDerivation rec {
name = "google-talk-plugin-${version}";
# Use the following to determine the current upstream version:
# curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | sed -nr 's/^Version: *([^ ]+)-1$/\1/p'
version = "4.2.1.0";
# You can get the upstream version and SHA-1 hash from the following URLs:
# http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages
# http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
version = "5.1.5.0";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
sha256 = "1g7kpz2lzzz1gri5rd3isp7cfyls6gzwcw2kc8jgrgrixq9iixfd";
sha1 = "fc830f4c7f5816f4578ec73e6d4aef059ad4a0b1";
}
else if stdenv.system == "i686-linux" then
fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
sha256 = "1z0zbblzlky9nyifxmnl49v4zafpqp3l08b9v1486sinm35rf58r";
sha1 = "9b7043c3585b3479ba11aabb7b8af755a61df963";
}
else throw "Google Talk does not support your platform.";

View file

@ -0,0 +1,127 @@
{ stdenv, fetchurl, jre, bash, simpleBuildTool, python27Packages }:
stdenv.mkDerivation rec {
name = "spark-${version}";
version = "0.9.0";
src = fetchurl {
url = "http://d3kbcqa49mib13.cloudfront.net/${name}-incubating-bin-cdh4.tgz";
sha256 = "0dgirq2ws25accijijanqij6d1mwxkrcqkmq1xsslfpz26svs1w1";
};
unpackPhase = ''tar zxf $src'';
untarDir = "spark-${version}-incubating-bin-cdh4";
installPhase = ''
set -x
mkdir -p $out/lib $out/bin
mv ${untarDir} $out/lib
cat > $out/bin/spark-class <<EOF
#!${bash}/bin/bash
export JAVA_HOME=${jre}
export SPARK_HOME=$out/lib/${untarDir}
if [ -z "\$1" ]; then
echo "Usage: spark-class <class> [<args>]" >&2
exit 1
fi
export SPARK_MEM=\''${SPARK_MEM:-1024m}
JAVA_OPTS=""
JAVA_OPTS="\$JAVA_OPTS -Djava.library.path=\"\$SPARK_LIBRARY_PATH\""
JAVA_OPTS="\$JAVA_OPTS -Xms\$SPARK_MEM -Xmx\$SPARK_MEM"
export JAVA_OPTS
CLASSPATH=\`$out/lib/${untarDir}/bin/compute-classpath.sh\`
export CLASSPATH
exec ${jre}/bin/java -cp "\$CLASSPATH" \$JAVA_OPTS "\$@"
EOF
chmod +x $out/bin/spark-class
cat > $out/bin/spark-shell <<EOF
#!${bash}/bin/bash
set -o posix
export JAVA_HOME=${jre}
export SPARK_HOME=$out/lib/${untarDir}
for o in "\$@"; do
if [ "\$1" = "-c" -o "\$1" = "--cores" ]; then
shift
if [ -n "\$1" ]; then
OPTIONS="-Dspark.cores.max=\$1"
shift
fi
fi
done
exit_status=127
saved_stty=""
function restoreSttySettings() {
stty \$saved_stty
saved_stty=""
}
function onExit() {
if [[ "\$saved_stty" != "" ]]; then
restoreSttySettings
fi
exit \$exit_status
}
trap onExit INT
saved_stty=\$(stty -g 2>/dev/null)
if [[ ! \$? ]]; then
saved_stty=""
fi
$out/bin/spark-class \$OPTIONS org.apache.spark.repl.Main "\$@"
exit_status=\$?
onExit
EOF
chmod +x $out/bin/spark-shell
cat > $out/bin/pyspark <<EOF
#!${bash}/bin/bash
export JAVA_HOME=${jre}
export SPARK_HOME=$out/lib/${untarDir}
export PYTHONPATH=$out/lib/${untarDir}/python:\$PYTHONPATH
export OLD_PYTHONSTARTUP=\$PYTHONSTARTUP
export PYTHONSTARTUP=$out/lib/${untarDir}/python/pyspark/shell.py
export SPARK_MEM=\''${SPARK_MEM:-1024m}
exec ${python27Packages.ipythonLight}/bin/ipython \$@
EOF
chmod +x $out/bin/pyspark
cat > $out/bin/spark-upload-scala <<EOF
#!${bash}/bin/bash
export JAVA_HOME=${jre}
export SPARK_HOME=$out/lib/${untarDir}
export SPARK_MEM=\''${SPARK_MEM:-1024m}
CLASS=\$1; shift
exec ${simpleBuildTool}/bin/sbt package "run-main \$CLASS \$@"
EOF
chmod +x $out/bin/spark-upload-scala
cat > $out/bin/spark-upload-python <<EOF
#!${bash}/bin/bash
exec $out/bin/pyspark \$@
EOF
chmod +x $out/bin/spark-upload-python
'';
phases = "unpackPhase installPhase";
meta = {
description = "Spark cluster computing";
homepage = "http://spark.incubator.apache.org";
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
};
}

View file

@ -0,0 +1,25 @@
{ fetchurl, stdenv, jre, glib, libXtst, gtk, makeWrapper }:
stdenv.mkDerivation rec {
name = "davmail-4.4.1";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/davmail/davmail/4.4.1/davmail-linux-x86_64-4.4.1-2225.tgz";
sha256 = "66c7ae23c0242860cca1576e5fc29343431789a821f7623e420b91ba91e480a9";
};
buildInputs = [ makeWrapper ];
meta = {
description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
homepage = "http://davmail.sourceforce.net/";
license = stdenv.lib.licenses.gpl2;
};
installPhase = ''
mkdir -p $out/bin
cp ./* $out/bin/ -R
wrapProgram $out/bin/davmail.sh --prefix PATH : ${jre}/bin --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
'';
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, dbus, gnutls2, wxGTK28, libidn, tinyxml, gettext
{ stdenv, fetchurl, dbus, gnutls, wxGTK28, libidn, tinyxml, gettext
, pkgconfig, xdg_utils, gtk2, sqlite }:
let version = "3.7.3"; in
@ -15,7 +15,7 @@ stdenv.mkDerivation {
];
buildInputs = [
dbus gnutls2 wxGTK28 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite
dbus gnutls wxGTK28 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite
];
meta = with stdenv.lib; {

View file

@ -0,0 +1,46 @@
{ stdenv, fetchurl, makeDesktopItem, unzip, ant, jdk }:
stdenv.mkDerivation rec {
name = "jitsi-${version}";
version = "2.4.4997";
src = fetchurl {
url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip";
sha256 = "f1c2688d7d6bf1916fed3b8b105a785662980c5b297dcab3c9e7d272647ef825";
};
patches = [ ./jitsi.patch ];
jitsiItem = makeDesktopItem {
name = "Jitsi";
exec = "jitsi";
comment = "VoIP and Instant Messaging client";
desktopName = "Jitsi";
genericName = "Instant Messaging";
categories = "Application;Internet;";
};
buildInputs = [unzip ant jdk];
buildPhase = ''ant make'';
installPhase = ''
mkdir -p $out
cp -a lib $out/
cp -a sc-bundles $out/
mkdir $out/bin
cp resources/install/generic/run.sh $out/bin/jitsi
chmod +x $out/bin/jitsi
sed -i 's| java | ${jdk}/bin/java |' $out/bin/jitsi
patchShebangs $out
'';
meta = {
homepage = https://jitsi.org/;
description = "Open Source Video Calls and Chat";
license = stdenv.lib.licenses.lgpl21Plus.shortName;
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -0,0 +1,27 @@
--- /home/dario/Downloads/jitsi/resources/install/generic/run.sh 2013-11-01 15:37:21.000000000 +0000
+++ jitsi/resources/install/generic/run.sh 2014-03-04 11:52:30.796397567 +0000
@@ -1,4 +1,9 @@
-mkdir -p $HOME/.sip-communicator/log
+#! /bin/bash
+# A modified version of the generic run.sh
+
+#mkdir -p $HOME/.sip-communicator/log
+
+cd "$( dirname "$( dirname "${BASH_SOURCE[0]}" )" )"
# Get architecture
ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
@@ -6,10 +11,12 @@
# Additionnal JVM arguments
CLIENTARGS=""
+NATIVELIBS="lib/native/linux-64"
if [ $ARCH -eq 32 ]
then
CLIENTARGS="-client -Xmx256m"
+ NATIVELIBS="lib/native/linux"
fi
export PATH=$PATH:native
-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
+exec java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator

View file

@ -5,11 +5,11 @@
assert stdenv.system == "i686-linux";
stdenv.mkDerivation rec {
name = "skype-4.2.0.11";
name = "skype-4.2.0.13";
src = fetchurl {
url = "http://download.skype.com/linux/${name}.tar.bz2";
sha256 = "0kh66p50m3x4ql6j8ciz73c30npcizd00ya9qrhid711rar0mlw7";
sha256 = "137kp6c0v4z7n7pp4hwrx4gjgk4knwj815dc6swh44lb5cj1c5m5";
};
buildInputs =

View file

@ -0,0 +1,32 @@
{ stdenv, fetchgit, libconfig, lua5_2, openssl, readline, zlib
}:
stdenv.mkDerivation rec {
name = "telegram-cli";
src = fetchgit {
url = "https://github.com/vysheng/tg.git";
rev = "ac6079a00ac66bb37a3179a82af130b41ec39bc9";
sha256 = "1rpwnyzmqk7p97n5pd00m5c6rypc39mb3hs94qxxrdcpwpgcb73q";
};
buildInputs = [ libconfig lua5_2 openssl readline zlib ];
installPhase = ''
mkdir -p $out/bin
cp ./telegram $out/bin/telegram-wo-key
cp ./tg.pub $out/
cat > $out/bin/telegram <<EOF
#!/usr/bin/env bash
$out/bin/telegram-wo-key -k $out/tg.pub
EOF
chmod +x $out/bin/telegram
'';
meta = {
description = "Command-line interface for Telegram messenger";
homepage = https://telegram.org/;
license = "GPLv2";
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
configureFlags = "--enable-call";
installFlags = "gsettingsschemadir=\${out}/share/telepathy/logger/glib-2.0/schemas/";
meta = {
description = "Logger service for Telepathy framework";
homepage = http://telepathy.freedesktop.org/wiki/Logger ;

View file

@ -2,8 +2,8 @@
, libtoxcore, pkgconfig }:
let
version = "da99d776df";
date = "20140203";
version = "b308e19e6b";
date = "20140224";
in
stdenv.mkDerivation rec {
name = "toxic-${date}-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/Tox/toxic/tarball/${version}";
name = "${name}.tar.gz";
sha256 = "0d97crkslyk7sgcsawnnwyzp31azp80yprpd6xqjcraxd442dfyj";
sha256 = "0fgkvnpy3dl2h378h796z9md0zg05b3174fgx17b919av6j9x4ma";
};
preConfigure = ''

View file

@ -0,0 +1,32 @@
{ stdenv, fetchurl, pkgconfig, gtk, perl, python, gettext
, libtool, pciutils, dbus_glib, libcanberra, libproxy
, libsexy, enchant, libnotify, openssl
, desktop_file_utils, hicolor_icon_theme
}:
stdenv.mkDerivation rec {
version = "2.9.6.1";
name = "hexchat-${version}";
src = fetchurl {
url = "http://dl.hexchat.net/hexchat/${name}.tar.xz";
sha256 = "0w34jr1pqril6r011fwxv40m17bnb88q9cv5hf08mv0a9lygyrv2";
};
buildInputs = [
pkgconfig gtk perl python gettext
libtool pciutils dbus_glib libcanberra libproxy
libsexy libnotify openssl
desktop_file_utils hicolor_icon_theme
];
configureFlags = [ "--enable-shm" "--enable-textfe" ];
meta = {
description = "A popular and easy to use graphical IRC (chat) client";
homepage = http://hexchat.github.io/;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.romildo ];
};
}

View file

@ -0,0 +1,39 @@
{stdenv, fetchurl, writeScript, pkgconfig, cmake, qt4, seafile-shared, ccnet, makeWrapper}:
stdenv.mkDerivation rec
{
version = "2.1.1";
name = "seafile-client-${version}";
src = fetchurl
{
url = "https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz";
sha256 = "d98515ea229df702cbe973d85ec0bd5cf3f5282ef1022ba0157d5301b521c8e0";
};
buildInputs = [ pkgconfig cmake qt4 seafile-shared makeWrapper ];
builder = writeScript "${name}-builder.sh" ''
source $stdenv/setup
tar xvfz $src
cd seafile-client-*
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DCMAKE_INSTALL_PREFIX="$out" .
make -j1
make install
wrapProgram $out/bin/seafile-applet \
--suffix PATH : ${ccnet}/bin:${seafile-shared}/bin
'';
meta =
{
homepage = "https://github.com/haiwen/seafile-clients";
description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.calrama ];
};
}

View file

@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
, libgsf, libart_lgpl, perlPackages
, libgsf, libart_lgpl, perlPackages, aqbanking, gwenhywfar
}:
/* If you experience GConf errors when running GnuCash on NixOS, see
@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
libgnomeprint goffice enchant gettext intltool perl guile slibGuile
swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
perlPackages.DateManip perlPackages.FinanceQuote
perlPackages.DateManip perlPackages.FinanceQuote aqbanking gwenhywfar
];
configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx";
configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx --enable-aqbanking";
postInstall = ''
# Auto-updaters don't make sense in Nix.

View file

@ -2,7 +2,7 @@
let
download_root = "http://homebank.free.fr/public/";
name = "homebank-4.5.4";
name = "homebank-4.5.5";
lastrelease = download_root + name + ".tar.gz";
oldrelease = download_root + "old/" + name + ".tar.gz";
in
@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl {
urls = [ lastrelease oldrelease ];
sha256 = "10xh76mxwbl56xp118gg3b4isv16yvhsvqxwqc28pqqxkpr7vpdk";
sha256 = "05k4497qsb6fzr662h9yxz1amsavd287wh0sabrpr9jdbh3jcfkg";
};
buildInputs = [ pkgconfig gtk libofx intltool ];

View file

@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "R-3.0.2";
name = "R-3.0.3";
src = fetchurl {
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
sha256 = "0jq2vk6bgksbvgmdjvv7vfj6llp091d0nhl5j825aya4c2nhavlm";
sha256 = "1mp6zp25nycn8bxnnq97gq6n21c6vprm6qc4drwap57j82azsz5r";
};
buildInputs = [ blas bzip2 gfortran liblapack libX11 libXmu libXt

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "root-${version}";
version = "5.34.14";
version = "5.34.15";
src = fetchurl {
url = "ftp://root.cern.ch/root/root_v${version}.source.tar.gz";
sha256 = "d5347ba1b614eb083cf08050b784d66a93c125ed89938708da1adb33323dee2b";
sha256 = "1bkiggcyya39a794d3d2rzzmmkbdymf86hbqhh0l1pl4f38xvp6i";
};
buildInputs = [ cmake gfortran mesa libX11 libXpm libXft libXext zlib ];

View file

@ -1,17 +0,0 @@
source $stdenv/setup
buildPhase() {
for i in bin/*; do
patchelf \
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath $libX11/lib:$libXext/lib \
$i
done
}
installPhase() {
mkdir -p $out
cp -prvd * $out/
}
genericBuild

View file

@ -1,13 +0,0 @@
{stdenv, fetchurl, libX11, libXext}:
stdenv.mkDerivation {
name = "aangifte2005-1";
builder = ./builder.sh;
src = fetchurl {
url = http://download.belastingdienst.nl/belastingdienst/apps/linux/ib2005_linux.tar.gz;
md5 = "9cc709b8ad041f4b20154ff1491d0436";
};
inherit libX11 libXext;
}

View file

@ -14,5 +14,8 @@ stdenv.mkDerivation {
meta = {
description = "Elektronische aangifte IB 2006";
url = "http://www.belastingdienst.nl/download/1341.html";
license = stdenv.lib.licenses.unfree;
platforms = stdenv.lib.platforms.linux;
hydraPlatforms = [];
};
}

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