diff --git a/lib/default.nix b/lib/default.nix
index dea82ee077eb..033269e6b609 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -22,6 +22,8 @@ let
in
{ inherit trivial lists strings stringsWithDeps attrsets sources options
properties modules types meta debug maintainers licenses platforms systems;
+ # Pull in some builtins not included elsewhere.
+ inherit (builtins) pathExists readFile;
}
# !!! don't include everything at top-level; perhaps only the most
# commonly used functions.
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 55517c5e1e5e..b13a72f3f644 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -186,6 +186,12 @@
url = http://www.mozilla.org/MPL/MPL-1.1.html;
};
+ mpl20 = {
+ shortName = "MPL2.0";
+ fullName = "Mozilla Public License version 2.0";
+ url = https://www.mozilla.org/MPL/2.0;
+ };
+
openssl = {
shortName = "openssl";
fullName = "OpenSSL license";
diff --git a/lib/lists.nix b/lib/lists.nix
index 578686ae3668..262a529b2b6e 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -1,14 +1,14 @@
# General list operations.
let
+
inherit (import ./trivial.nix) deepSeq;
inc = builtins.add 1;
dec = n: builtins.sub n 1;
- inherit (builtins) elemAt;
in rec {
- inherit (builtins) head tail length isList add sub lessThan;
+ inherit (builtins) head tail length isList add sub lessThan elemAt;
# Create a list consisting of a single element. `singleton x' is
diff --git a/lib/misc.nix b/lib/misc.nix
index 19e5081009de..c128b9af9d8c 100644
--- a/lib/misc.nix
+++ b/lib/misc.nix
@@ -206,9 +206,7 @@ rec {
in
work startSet [] [];
- genericClosure =
- if builtins ? genericClosure then builtins.genericClosure
- else lazyGenericClosure;
+ genericClosure = builtins.genericClosure or lazyGenericClosure;
innerModifySumArgs = f: x: a: b: if b == null then (f a b) // x else
innerModifySumArgs f x (a // b);
diff --git a/lib/modules.nix b/lib/modules.nix
index acd10e7bf576..f914947e7849 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -185,8 +185,7 @@ rec {
) funs;
- moduleMerge = path: modules:
- let modules_ = modules; in
+ moduleMerge = path: modules_:
let
addName = name:
if path == "" then name else path + "." + name;
diff --git a/lib/options.nix b/lib/options.nix
index a91115287e45..b6a88008bb7a 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -11,10 +11,7 @@ with import ./properties.nix;
rec {
- inherit (lib) isType;
-
-
- isOption = isType "option";
+ isOption = lib.isType "option";
mkOption = attrs: attrs // {
_type = "option";
# name (this is the name of the attributem it is automatically generated by the traversal)
@@ -66,7 +63,7 @@ rec {
if all opt.check list then
opt.merge list
else
- throw "One of option ${name} values has a bad type.";
+ throw "A value of the option `${name}' has a bad type.";
}
else opt;
@@ -77,7 +74,7 @@ rec {
if opt.check opt.default then
opt.default
else
- throw "The default value of option ${name} has a bad type.";
+ throw "The default value of the option `${name}' has a bad type.";
}
else opt;
@@ -275,6 +272,8 @@ rec {
description = opt.description or (throw "Option ${opt.name}: No description.");
declarations = map (x: toString x.source) opt.declarations;
#definitions = map (x: toString x.source) opt.definitions;
+ internal = opt.internal or false;
+ visible = opt.visible or true;
}
// optionalAttrs (opt ? example) { example = scrubOptionValue opt.example; }
// optionalAttrs (opt ? default) { default = scrubOptionValue opt.default; }
diff --git a/nixos/.topmsg b/nixos/.topmsg
new file mode 100644
index 000000000000..9632e5926312
--- /dev/null
+++ b/nixos/.topmsg
@@ -0,0 +1 @@
+improvements to vsftpd module
diff --git a/nixos/doc/manual/configuration.xml b/nixos/doc/manual/configuration.xml
index e93c49d1ccec..b0b1da71184a 100644
--- a/nixos/doc/manual/configuration.xml
+++ b/nixos/doc/manual/configuration.xml
@@ -11,6 +11,15 @@ NixOS machine through the configuration file
effect after you run nixos-rebuild.
+
+
+Configuration syntax
+
+TODO
+
+
+
+
Package management
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 56ad652c60ed..db3245fcc07d 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -1,22 +1,37 @@
{ pkgs, options
-# revision can have multiple values: local, HEAD or any revision number.
-, revision ? "HEAD"
+, revision ? "master"
}:
with pkgs.lib;
let
- # To prevent infinite recursion, remove system.path from the
- # options. Not sure why this happens.
- options_ =
- options //
- { system = removeAttrs options.system ["path"]; };
+ # Remove invisible and internal options.
+ options' = filter (opt: opt.visible && !opt.internal) (optionAttrSetToDocList options);
- optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext
- (builtins.toXML (optionAttrSetToDocList options_)));
+ # Clean up declaration sites to not refer to the NixOS source tree.
+ options'' = flip map options' (opt: opt // {
+ declarations = map (fn: stripPrefix fn) opt.declarations;
+ });
+
+ prefix = toString pkgs.path;
+
+ stripPrefix = fn:
+ if substring 0 (stringLength prefix) fn == prefix then
+ substring (add (stringLength prefix) 1) 1000 fn
+ else
+ fn;
+
+ optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext (builtins.toXML options''));
optionsDocBook = pkgs.runCommand "options-db.xml" {} ''
+ 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"
+ echo "caused by an option default that refers to a relative path (see above"
+ echo "for hints about the offending path)."
+ exit 1
+ fi
${pkgs.libxslt}/bin/xsltproc \
--stringparam revision '${revision}' \
-o $out ${./options-to-docbook.xsl} ${optionsXML}
@@ -64,9 +79,12 @@ in rec {
cp ${./style.css} $dst/style.css
- ensureDir $out/nix-support
+ mkdir -p $out/nix-support
+ echo "nix-build out $out" >> $out/nix-support/hydra-build-products
echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
''; # */
+
+ meta.description = "The NixOS manual in HTML format";
};
# Generate the NixOS manpages.
@@ -87,7 +105,7 @@ in rec {
./man-pages.xml
# Generate manpages.
- ensureDir $out/share/man
+ mkdir -p $out/share/man
xsltproc --nonet --xinclude \
--param man.output.in.separate.dir 1 \
--param man.output.base.dir "'$out/share/man/'" \
diff --git a/nixos/doc/manual/installation.xml b/nixos/doc/manual/installation.xml
index 3068fa5cb944..d274cfc6908d 100644
--- a/nixos/doc/manual/installation.xml
+++ b/nixos/doc/manual/installation.xml
@@ -44,7 +44,7 @@ Wiki.
The NixOS manual is available on virtual console 8
(press Alt+F8 to access).
- Login as root, empty
+ Login as root and the empty
password.
If you downloaded the graphical ISO image, you can
@@ -89,7 +89,13 @@ $ lvcreate --size 1G --name smalldisk MyVolGroup
Mount the target file system on which NixOS should
- be installed on /mnt.
+ be installed on /mnt, e.g.
+
+
+$ mount /dev/disk/by-label/nixos /mnt
+
+
+
@@ -97,40 +103,56 @@ $ lvcreate --size 1G --name smalldisk MyVolGroup
/mnt/etc/nixos/configuration.nix that
specifies the intended configuration of the system. This is
because NixOS has a declarative configuration
- model: you create or edit a description of the configuration that
- you want to be built and activated, and then NixOS takes care of
- realising that configuration. The command
- nixos-option can generate an initial
- configuration file for you:
+ model: you create or edit a description of the desired
+ configuration of your system, and then NixOS takes care of making
+ it happen. The syntax of the NixOS configuration file is
+ described in , while a
+ list of available configuration options appears in . A minimal example is shown in .
+
+ The command nixos-generate-config can
+ generate an initial configuration file for you:
-$ nixos-option --install
+$ nixos-generate-config --root /mnt
- It tries to figure out the kernel modules necessary for mounting
- the root device, as well as various other hardware
- characteristics. However, it doesn’t try to figure out the
- option yet.
-
- You should edit
+ You should then edit
/mnt/etc/nixos/configuration.nix to suit your
- needs. The text editors nano and
- vim are available.
+ needs:
- You need to specify a root file system in
- and the target device for the Grub boot
- loader in . See
- for a list of the available configuration
- options.
+
+$ nano /mnt/etc/nixos/configuration.nix
+
- It is very important that you specify in the option
- all kernel modules that
- are necessary for mounting the root file system, otherwise the
- installed system will not be able to boot. (If this happens, boot
- from the CD again, mount the target file system on
+ The vim text editor is also available.
+
+ You must set the option
+ to specify on which disk
+ the GRUB boot loader is to be installed. Without it, NixOS cannot
+ boot.
+
+ Another critical option is ,
+ specifying the file systems that need to be mounted by NixOS.
+ However, you typically don’t need to set it yourself, because
+ nixos-generate-config sets it automatically in
+ /mnt/etc/nixos/hardware-configuration.nix
+ from your currently mounted file systems. (The configuration file
+ hardware-configuration.nix is included from
+ configuration.nix and will be overwritten by
+ future invocations of nixos-generate-config;
+ thus, you generally should not modify it.)
+
+ Depending on your hardware configuration or type of
+ file system, you may need to set the option
+ to include the kernel
+ modules that are necessary for mounting the root file system,
+ otherwise the installed system will not be able to boot. (If this
+ happens, boot from the CD again, mount the target file system on
/mnt, fix
/mnt/etc/nixos/configuration.nix and rerun
nixos-install.) In most cases,
- nixos-option --install will figure out the
+ nixos-generate-config will figure out the
required modules.
Examples of real-world NixOS configuration files can be
@@ -218,7 +240,7 @@ $ fdisk /dev/sda (or whatever device you want to install on)(idem)
$ mkswap -L swap /dev/sda2 (idem)
$ mount LABEL=nixos /mnt
-$ nixos-option --install
+$ nixos-generate-config
$ nano /mnt/etc/nixos/configuration.nix
(in particular, set the fileSystems and swapDevices options)
$ nixos-install
@@ -228,8 +250,16 @@ $ reboot
NixOS configuration
{
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
boot.loader.grub.device = "/dev/sda";
+ # Note: setting fileSystems and swapDevices is generally not
+ # necessary, since nixos-generate-config has set them automatically
+ # in hardware-configuration.nix.
fileSystems."/".device = "/dev/disk/by-label/nixos";
swapDevices =
diff --git a/nixos/doc/manual/man-nixos-generate-config.xml b/nixos/doc/manual/man-nixos-generate-config.xml
index ff69d8d91701..e4fba4a40a97 100644
--- a/nixos/doc/manual/man-nixos-generate-config.xml
+++ b/nixos/doc/manual/man-nixos-generate-config.xml
@@ -110,6 +110,23 @@
+
+
+
+ Omit everything concerning file system information
+ (which includes swap devices) from the hardware configuration.
+
+
+
+
+
+
+ Don't generate configuration.nix or
+ hardware-configuration.nix and print the
+ hardware configuration to stdout only.
+
+
+
diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml
index 7d6634bf0931..dfbd865b505b 100644
--- a/nixos/doc/manual/manual.xml
+++ b/nixos/doc/manual/manual.xml
@@ -42,7 +42,7 @@
xlink:href="irc://irc.freenode.net/#nixos">
#nixos channel on Freenode. Bugs should
be reported in NixOS’ GitHub
+ xlink:href="https://github.com/NixOS/nixpkgs/issues">NixOS’ GitHub
issue tracker.
@@ -55,7 +55,7 @@
- List of Options
+ List of options
diff --git a/nixos/doc/manual/options-to-docbook.xsl b/nixos/doc/manual/options-to-docbook.xsl
index adc6c93c7223..73c905fbca16 100644
--- a/nixos/doc/manual/options-to-docbook.xsl
+++ b/nixos/doc/manual/options-to-docbook.xsl
@@ -125,6 +125,11 @@
+
+
+
+
+
{
@@ -155,8 +160,15 @@
repository (if it’s a module and we have a revision number),
or to the local filesystem. -->
-
- https://github.com/NixOS/nixos/blob//modules/
+
+
+
+ https://github.com/NixOS/nixpkgs/blob/master/
+
+
+ https://github.com/NixOS/nixpkgs/blob//
+
+
https://github.com/NixOS/nixops/blob//nix/
@@ -169,8 +181,8 @@
/nix/store/ prefix by the default location of nixos
sources. -->
-
- <nixos/modules/>
+
+ <nixpkgs/>
<nixops/>
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 72ba66cdbac4..cd543c958ff6 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -66,7 +66,6 @@ rec {
# Optionally check wether all config values have corresponding
# option declarations.
config =
- let doCheck = optionDefinitions.environment.checkConfigurationOptions; in
- assert doCheck -> pkgs.lib.checkModule "" systemModule;
+ assert optionDefinitions.environment.checkConfigurationOptions -> pkgs.lib.checkModule "" systemModule;
systemModule.config;
}
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index e65be03afaca..0610ad54da34 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -7,8 +7,6 @@ with pkgs.lib;
let
- cfg = config.environment;
-
extraManpages = pkgs.runCommand "extra-manpages" { buildInputs = [ pkgs.help2man ]; }
''
mkdir -p $out/share/man/man1
@@ -87,33 +85,10 @@ in
system = {
path = mkOption {
- default = cfg.systemPackages;
+ internal = true;
description = ''
The packages you want in the boot environment.
'';
-
- apply = list: pkgs.buildEnv {
- name = "system-path";
- paths = list;
- inherit (cfg) pathsToLink;
- ignoreCollisions = true;
- # !!! Hacky, should modularise.
- postBuild =
- ''
- if [ -x $out/bin/update-mime-database -a -w $out/share/mime/packages ]; then
- $out/bin/update-mime-database -V $out/share/mime
- fi
-
- if [ -x $out/bin/gtk-update-icon-cache -a -f $out/share/icons/hicolor/index.theme ]; then
- $out/bin/gtk-update-icon-cache $out/share/icons/hicolor
- fi
-
- if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
- $out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
- fi
- '';
- };
-
};
};
@@ -138,5 +113,27 @@ in
"/share/man"
];
+ system.path = pkgs.buildEnv {
+ name = "system-path";
+ paths = config.environment.systemPackages;
+ inherit (config.environment) pathsToLink;
+ ignoreCollisions = true;
+ # !!! Hacky, should modularise.
+ postBuild =
+ ''
+ if [ -x $out/bin/update-mime-database -a -w $out/share/mime/packages ]; then
+ $out/bin/update-mime-database -V $out/share/mime
+ fi
+
+ if [ -x $out/bin/gtk-update-icon-cache -a -f $out/share/icons/hicolor/index.theme ]; then
+ $out/bin/gtk-update-icon-cache $out/share/icons/hicolor
+ fi
+
+ if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
+ $out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
+ fi
+ '';
+ };
+
};
}
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 3418b0122de1..0f9142990ec1 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -23,6 +23,8 @@ sub uniq {
my $outDir = "/etc/nixos";
my $rootDir = ""; # = /
my $force = 0;
+my $noFilesystems = 0;
+my $showHardwareConfig = 0;
for (my $n = 0; $n < scalar @ARGV; $n++) {
my $arg = $ARGV[$n];
@@ -43,6 +45,12 @@ for (my $n = 0; $n < scalar @ARGV; $n++) {
elsif ($arg eq "--force") {
$force = 1;
}
+ elsif ($arg eq "--no-filesystems") {
+ $noFilesystems = 1;
+ }
+ elsif ($arg eq "--show-hardware-config") {
+ $showHardwareConfig = 1;
+ }
else {
die "$0: unrecognized argument ‘$arg’\n";
}
@@ -332,40 +340,48 @@ my $initrdAvailableKernelModules = toNixExpr(uniq @initrdAvailableKernelModules)
my $kernelModules = toNixExpr(uniq @kernelModules);
my $modulePackages = toNixExpr(uniq @modulePackages);
-$outDir = "$rootDir$outDir";
+my $fsAndSwap = "";
+if (!$noFilesystems) {
+ $fsAndSwap = "\n${fileSystems} ";
+ $fsAndSwap .= "swapDevices =" . multiLineList(" ", @swapDevices) . ";\n";
+}
-my $fn = "$outDir/hardware-configuration.nix";
-print STDERR "writing $fn...\n";
-mkpath($outDir, 0, 0755);
-
-write_file($fn, <= 3.10
boot.kernelPackages = pkgs.linuxPackages_3_10;
EOF
- } else {
- $bootLoaderConfig = <&2
- if ! nix-build '' -A config.environment.nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
- if ! nix-build '' -A nixFallback -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
+ if ! nix-build '' -A config.environment.nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
+ if ! nix-build '' -A nixFallback -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
nix-build '' -A nixUnstable -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null
fi
fi
@@ -139,16 +139,16 @@ fi
if [ -z "$rollback" ]; then
echo "building the system configuration..." >&2
if [ "$action" = switch -o "$action" = boot ]; then
- nix-env "${extraBuildFlags[@]}" -p "$profile" -f '' --set -A system
+ nix-env "${extraBuildFlags[@]}" -p "$profile" -f '' --set -A system
pathToConfig="$profile"
elif [ "$action" = test -o "$action" = build -o "$action" = dry-run ]; then
- nix-build '' -A system -K -k "${extraBuildFlags[@]}" > /dev/null
+ nix-build '' -A system -K -k "${extraBuildFlags[@]}" > /dev/null
pathToConfig=./result
elif [ "$action" = build-vm ]; then
- nix-build '' -A vm -K -k "${extraBuildFlags[@]}" > /dev/null
+ nix-build '' -A vm -K -k "${extraBuildFlags[@]}" > /dev/null
pathToConfig=./result
elif [ "$action" = build-vm-with-bootloader ]; then
- nix-build '' -A vmWithBootLoader -K -k "${extraBuildFlags[@]}" > /dev/null
+ nix-build '' -A vmWithBootLoader -K -k "${extraBuildFlags[@]}" > /dev/null
pathToConfig=./result
else
showSyntax
diff --git a/nixos/modules/misc/assertions.nix b/nixos/modules/misc/assertions.nix
index 9cd58550adc9..229f8f278608 100644
--- a/nixos/modules/misc/assertions.nix
+++ b/nixos/modules/misc/assertions.nix
@@ -6,6 +6,8 @@ let
failed = map (x: x.message) (filter (x: !x.assertion) config.assertions);
+ showWarnings = res: fold (w: x: builtins.trace "[1;31mwarning: ${w}[0m" x) res config.warnings;
+
in
{
@@ -13,6 +15,7 @@ in
options = {
assertions = mkOption {
+ internal = true;
default = [];
example = [ { assertion = false; message = "you can't enable this for that reason"; } ];
merge = pkgs.lib.mergeListOption;
@@ -23,14 +26,26 @@ in
'';
};
+ warnings = mkOption {
+ internal = true;
+ default = [];
+ type = types.listOf types.string;
+ example = [ "The `foo' service is deprecated and will go away soon!" ];
+ description = ''
+ This option allows modules to show warnings to users during
+ the evaluation of the system configuration.
+ '';
+ };
+
};
config = {
- # This option is evaluated always. Thus the assertions are checked as well. hacky!
- environment.systemPackages =
+ # This option is evaluated always. Thus the assertions are checked
+ # as well. Hacky!
+ environment.systemPackages = showWarnings (
if [] == failed then []
- else throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failed)}";
+ else throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failed)}");
};
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 1b519d3e6eef..5ab24686152e 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -7,30 +7,50 @@ with pkgs.lib;
options = {
system.nixosVersion = mkOption {
+ internal = true;
type = types.uniq types.string;
description = "NixOS version.";
};
system.nixosVersionSuffix = mkOption {
+ internal = true;
type = types.uniq types.string;
description = "NixOS version suffix.";
};
+ system.nixosRevision = mkOption {
+ internal = true;
+ type = types.uniq types.string;
+ description = "NixOS Git revision hash.";
+ };
+
system.nixosCodeName = mkOption {
+ internal = true;
type = types.uniq types.string;
description = "NixOS release code name.";
};
+ system.defaultChannel = mkOption {
+ internal = true;
+ type = types.uniq types.string;
+ default = https://nixos.org/channels/nixos-unstable;
+ description = "Default NixOS channel to which the root user is subscribed.";
+ };
+
};
config = {
system.nixosVersion =
- mkDefault (builtins.readFile "${toString pkgs.path}/.version" + config.system.nixosVersionSuffix);
+ mkDefault (readFile "${toString pkgs.path}/.version" + config.system.nixosVersionSuffix);
system.nixosVersionSuffix =
let suffixFile = "${toString pkgs.path}/.version-suffix"; in
- mkDefault (if builtins.pathExists suffixFile then builtins.readFile suffixFile else "pre-git");
+ mkDefault (if pathExists suffixFile then readFile suffixFile else "pre-git");
+
+ system.nixosRevision =
+ let fn = "${toString pkgs.path}/.git-revision"; in
+ mkDefault (if pathExists fn then readFile fn else "master");
# Note: code names must only increase in alphabetical order.
system.nixosCodeName = "Aardvark";
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index a2e1abf036bf..62e5b8e49c2c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -130,6 +130,7 @@
./services/monitoring/dd-agent.nix
./services/monitoring/graphite.nix
./services/monitoring/monit.nix
+ ./services/monitoring/munin.nix
./services/monitoring/nagios/default.nix
./services/monitoring/smartd.nix
./services/monitoring/statsd.nix
@@ -237,6 +238,7 @@
./services/x11/window-managers/twm.nix
./services/x11/window-managers/wmii.nix
./services/x11/window-managers/xmonad.nix
+ ./services/x11/redshift.nix
./services/x11/xfs.nix
./services/x11/xserver.nix
./system/activation/activation-script.nix
diff --git a/nixos/modules/programs/shell.nix b/nixos/modules/programs/shell.nix
index 679c4979dfa9..8052502c21ea 100644
--- a/nixos/modules/programs/shell.nix
+++ b/nixos/modules/programs/shell.nix
@@ -39,7 +39,7 @@ in
# Subscribe the root user to the NixOS channel by default.
if [ "$USER" = root -a ! -e $HOME/.nix-channels ]; then
- echo "http://nixos.org/channels/nixos-unstable nixos" > $HOME/.nix-channels
+ echo "${config.system.defaultChannel} nixos" > $HOME/.nix-channels
fi
# Create the per-user garbage collector roots directory.
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 5ec32376b60e..64bf25083163 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -1,6 +1,6 @@
# Global configuration for the SSH client.
-{config, pkgs, ...}:
+{ config, pkgs, ... }:
with pkgs.lib;
@@ -31,7 +31,7 @@ in
setXAuthLocation = mkOption {
default = true;
description = ''
- Whether to set the path to xauth for X11-forwarded connections.
+ Whether to set the path to xauth for X11-forwarded connections.
Pulls in X11 dependency.
'';
};
@@ -46,10 +46,13 @@ in
};
};
- assertions = [{ assertion = if cfg.forwardX11 then cfg.setXAuthLocation else true;
- message = "cannot enable X11 forwarding without setting xauth location";}];
-
config = {
+
+ assertions = singleton
+ { assertion = cfg.forwardX11 -> cfg.setXAuthLocation;
+ message = "cannot enable X11 forwarding without setting XAuth location";
+ };
+
environment.etc =
[ { # SSH configuration. Slight duplication of the sshd_config
# generation in the sshd service.
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 27b6f01c71fb..1d19fe6da76d 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -1,110 +1,126 @@
-{pkgs, options, config, ...}:
+{ config, pkgs, options, ... }:
+
+with pkgs.lib;
let
- alias = from: to: {
+ alias = from: to: rename {
+ inherit from to;
name = "Alias";
- msg.use = x: x;
- msg.define = x: x;
+ use = id;
+ define = id;
+ visible = true;
};
- obsolete = from: to: {
+ obsolete = from: to: rename {
+ inherit from to;
name = "Obsolete name";
- msg.use = x:
- builtins.trace "Obsolete option `${from}' is used instead of `${to}'." x;
- msg.define = x:
- builtins.trace "Obsolete option `${from}' is defined instead of `${to}'." x;
+ use = x: builtins.trace "Obsolete option `${showOption from}' is used instead of `${showOption to}'." x;
+ define = x: builtins.trace "Obsolete option `${showOption from}' is defined instead of `${showOption to}'." x;
};
- deprecated = from: to: {
+ deprecated = from: to: rename {
+ inherit from to;
name = "Deprecated name";
- msg.use = x:
- abort "Deprecated option `${from}' is used instead of `${to}'.";
- msg.define = x:
- abort "Deprecated option `${from}' is defined instead of `${to}'.";
+ use = x: abort "Deprecated option `${showOption from}' is used instead of `${showOption to}'.";
+ define = x: abort "Deprecated option `${showOption from}' is defined instead of `${showOption to}'.";
};
+ showOption = concatStringsSep ".";
- zipModules = list: with pkgs.lib;
+ zipModules = list:
zipAttrsWith (n: v:
if tail v != [] then
if n == "_type" then (head v)
- else if n == "extraConfigs" then (concatLists v)
+ else if n == "extraConfigs" then concatLists v
+ else if n == "warnings" then concatLists v
else if n == "description" || n == "apply" then
abort "Cannot rename an option to multiple options."
else zipModules v
else head v
) list;
- rename = statusTemplate: from: to: with pkgs.lib;
+ rename = { from, to, name, use, define, visible ? false }:
let
- status = statusTemplate from to;
- setTo = setAttrByPath (splitString "." to);
- setFrom = setAttrByPath (splitString "." from);
- toOf = attrByPath (splitString "." to)
- (abort "Renaming error: option `${to}' does not exists.");
- fromOf = attrByPath (splitString "." from)
- (abort "Internal error: option `${from}' should be declared.");
+ setTo = setAttrByPath to;
+ setFrom = setAttrByPath from;
+ toOf = attrByPath to
+ (abort "Renaming error: option `${showOption to}' does not exists.");
+ fromOf = attrByPath from
+ (abort "Internal error: option `${showOption from}' should be declared.");
in
- [{
- options = setFrom (mkOption {
- description = "${status.name} of .";
- apply = x: status.msg.use (toOf config);
- });
- }] ++
- [{
- options = setTo (mkOption {
- extraConfigs =
- let externalDefs = (fromOf options).definitions; in
- if externalDefs == [] then []
- else map (def: def.value) (status.msg.define externalDefs);
- });
- }];
+ [ { options = setFrom (mkOption {
+ description = "${name} of .";
+ apply = x: use (toOf config);
+ inherit visible;
+ });
+ }
+ { options = setTo (mkOption {
+ extraConfigs =
+ let externalDefs = (fromOf options).definitions; in
+ if externalDefs == [] then []
+ else map (def: def.value) (define externalDefs);
+ });
+ }
+ ];
+
+ obsolete' = option: singleton
+ { options = setAttrByPath option (mkOption {
+ default = null;
+ visible = false;
+ });
+ config.warnings = optional (getAttrFromPath option config != null)
+ "The option `${showOption option}' defined in your configuration no longer has any effect; please remove it.";
+ };
in zipModules ([]
# usage example:
-# ++ rename alias "services.xserver.slim.theme" "services.xserver.displayManager.slim.theme"
-++ rename obsolete "environment.extraPackages" "environment.systemPackages"
-++ rename obsolete "environment.enableBashCompletion" "programs.bash.enableCompletion"
+# ++ alias [ "services" "xserver" "slim" "theme" ] [ "services" "xserver" "displayManager" "slim" "theme" ]
+++ obsolete [ "environment" "extraPackages" ] [ "environment" "systemPackages" ]
+++ obsolete [ "environment" "enableBashCompletion" ] [ "programs" "bash" "enableCompletion" ]
-++ rename obsolete "security.extraSetuidPrograms" "security.setuidPrograms"
-++ rename obsolete "networking.enableWLAN" "networking.wireless.enable"
-++ rename obsolete "networking.enableRT73Firmware" "networking.enableRalinkFirmware"
+++ obsolete [ "security" "extraSetuidPrograms" ] [ "security" "setuidPrograms" ]
+++ obsolete [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ]
+++ obsolete [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ]
# FIXME: Remove these eventually.
-++ rename obsolete "boot.systemd.sockets" "systemd.sockets"
-++ rename obsolete "boot.systemd.targets" "systemd.targets"
-++ rename obsolete "boot.systemd.services" "systemd.services"
+++ obsolete [ "boot" "systemd" "sockets" ] [ "systemd" "sockets" ]
+++ obsolete [ "boot" "systemd" "targets" ] [ "systemd" "targets" ]
+++ obsolete [ "boot" "systemd" "services" ] [ "systemd" "services" ]
# Old Grub-related options.
-++ rename obsolete "boot.copyKernels" "boot.loader.grub.copyKernels"
-++ rename obsolete "boot.extraGrubEntries" "boot.loader.grub.extraEntries"
-++ rename obsolete "boot.extraGrubEntriesBeforeNixos" "boot.loader.grub.extraEntriesBeforeNixOS"
-++ rename obsolete "boot.grubDevice" "boot.loader.grub.device"
-++ rename obsolete "boot.bootMount" "boot.loader.grub.bootDevice"
-++ rename obsolete "boot.grubSplashImage" "boot.loader.grub.splashImage"
+++ obsolete [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]
+++ obsolete [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ]
+++ obsolete [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ]
+++ obsolete [ "boot" "grubDevice" ] [ "boot" "loader" "grub" "device" ]
+++ obsolete [ "boot" "bootMount" ] [ "boot" "loader" "grub" "bootDevice" ]
+++ obsolete [ "boot" "grubSplashImage" ] [ "boot" "loader" "grub" "splashImage" ]
-++ rename obsolete "boot.initrd.extraKernelModules" "boot.initrd.kernelModules"
+++ obsolete [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]
# OpenSSH
-++ rename obsolete "services.sshd.ports" "services.openssh.ports"
-++ rename alias "services.sshd.enable" "services.openssh.enable"
-++ rename obsolete "services.sshd.allowSFTP" "services.openssh.allowSFTP"
-++ rename obsolete "services.sshd.forwardX11" "services.openssh.forwardX11"
-++ rename obsolete "services.sshd.gatewayPorts" "services.openssh.gatewayPorts"
-++ rename obsolete "services.sshd.permitRootLogin" "services.openssh.permitRootLogin"
-++ rename obsolete "services.xserver.startSSHAgent" "services.xserver.startOpenSSHAgent"
+++ obsolete [ "services" "sshd" "ports" ] [ "services" "openssh" "ports" ]
+++ alias [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ]
+++ obsolete [ "services" "sshd" "allowSFTP" ] [ "services" "openssh" "allowSFTP" ]
+++ obsolete [ "services" "sshd" "forwardX11" ] [ "services" "openssh" "forwardX11" ]
+++ obsolete [ "services" "sshd" "gatewayPorts" ] [ "services" "openssh" "gatewayPorts" ]
+++ obsolete [ "services" "sshd" "permitRootLogin" ] [ "services" "openssh" "permitRootLogin" ]
+++ obsolete [ "services" "xserver" "startSSHAgent" ] [ "services" "xserver" "startOpenSSHAgent" ]
# KDE
-++ rename deprecated "kde.extraPackages" "environment.kdePackages"
-# ++ rename obsolete "environment.kdePackages" "environment.systemPackages" # !!! doesn't work!
+++ deprecated [ "kde" "extraPackages" ] [ "environment" "kdePackages" ]
+# ++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ] # !!! doesn't work!
# Multiple efi bootloaders now
-++ rename obsolete "boot.loader.efi.efibootmgr.enable" "boot.loader.efi.canTouchEfiVariables"
+++ obsolete [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ]
# NixOS environment changes
# !!! this hardcodes bash, could we detect from config which shell is actually used?
-++ rename obsolete "environment.promptInit" "programs.bash.promptInit"
+++ obsolete [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ]
-) # do not add renaming after this.
+# Options that are obsolete and have no replacement.
+++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
+++ obsolete' [ "boot" "initrd" "luks" "enable" ]
+
+)
diff --git a/nixos/modules/services/audio/fuppes.nix b/nixos/modules/services/audio/fuppes.nix
index df73e62fc942..9c8849e525b3 100644
--- a/nixos/modules/services/audio/fuppes.nix
+++ b/nixos/modules/services/audio/fuppes.nix
@@ -60,8 +60,7 @@ with pkgs.lib;
};
vfolder = mkOption {
- default = ./fuppes/vfolder.cfg;
- example = /etc/fuppes/vfolder.cfg;
+ example = literalExample "/etc/fuppes/vfolder.cfg";
description = ''
XML file describing the layout of virtual folder visible by the
client.
@@ -109,6 +108,8 @@ with pkgs.lib;
services.fuppesd.name = mkDefault config.networking.hostName;
+ services.fuppesd.vfolder = mkDefault ./fuppes/vfolder.cfg;
+
security.sudo.enable = true;
};
}
diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix
index aca0d58900b1..75c225bdb67b 100644
--- a/nixos/modules/services/databases/firebird.nix
+++ b/nixos/modules/services/databases/firebird.nix
@@ -1,9 +1,18 @@
{ config, pkgs, ... }:
-# TODO: this file needs some additional work - at least you can connect to
-# firebird ..
-# Example how to connect:
-# isql /var/db/firebird/data/your-db.fdb -u sysdba -p
+# TODO: This may file may need additional review, eg which configuartions to
+# expose to the user.
+#
+# I only used it to access some simple databases.
+
+# test:
+# isql, then type the following commands:
+# CREATE DATABASE '/var/db/firebird/data/test.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
+# CONNECT '/var/db/firebird/data/test.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
+# CREATE TABLE test ( text varchar(100) );
+# DROP DATABASE;
+#
+# Be careful, virtuoso-opensource also provides a different isql command !
# There are at least two ways to run firebird. superserver has been choosen
# however there are no strong reasons to prefer this or the other one AFAIK
@@ -18,7 +27,8 @@ let
firebird = cfg.package;
- pidFile = "${cfg.pidDir}/firebirdd.pid";
+ dataDir = "${cfg.baseDir}/data";
+ systemDir = "${cfg.baseDir}/system";
in
@@ -32,9 +42,9 @@ in
enable = mkOption {
default = false;
- description = "
- Whether to enable the firebird super server.
- ";
+ description = ''
+ Whether to enable the Firebird super server.
+ '';
};
package = mkOption {
@@ -45,29 +55,31 @@ in
reasons. See comments at the firebirdSuper derivation
*/
- description = "
+ description = ''
Which firebird derivation to use.
- ";
+ '';
};
port = mkOption {
default = "3050";
- description = "Port of Firebird.";
+ description = ''
+ Port Firebird uses.
+ '';
};
user = mkOption {
default = "firebird";
- description = "User account under which firebird runs.";
+ description = ''
+ User account under which firebird runs.
+ '';
};
- dataDir = mkOption {
- default = "/var/db/firebird/data"; # ubuntu is using /var/lib/firebird/2.1/data/.. ?
- description = "Location where firebird databases are stored.";
- };
-
- pidDir = mkOption {
- default = "/run/firebird";
- description = "Location of the file which stores the PID of the firebird server.";
+ baseDir = mkOption {
+ default = "/var/db/firebird"; # ubuntu is using /var/lib/firebird/2.1/data/.. ?
+ description = ''
+ Location containing data/ and system/ directories.
+ data/ stores the databases, system/ stores the password database security2.fdb.
+ '';
};
};
@@ -79,12 +91,10 @@ in
config = mkIf config.services.firebird.enable {
- users.extraUsers.firebird.description = "Firebird server user";
-
- environment.systemPackages = [firebird];
+ environment.systemPackages = [cfg.package];
systemd.services.firebird =
- { description = "firebird super server";
+ { description = "Firebird Super-Server";
wantedBy = [ "multi-user.target" ];
@@ -92,20 +102,17 @@ in
# is a better way
preStart =
''
- secureDir="${cfg.dataDir}/../system"
-
mkdir -m 0700 -p \
- "${cfg.dataDir}" \
- "${cfg.pidDir}" \
- /var/log/firebird \
- "$secureDir"
+ "${dataDir}" \
+ "${systemDir}" \
+ /var/log/firebird
- if ! test -e "$secureDir/security2.fdb"; then
- cp ${firebird}/security2.fdb "$secureDir"
+ if ! test -e "${systemDir}/security2.fdb"; then
+ cp ${firebird}/security2.fdb "${systemDir}"
fi
- chown -R ${cfg.user} "${cfg.pidDir}" "${cfg.dataDir}" "$secureDir" /var/log/firebird
- chmod -R 700 "${cfg.pidDir}" "${cfg.dataDir}" "$secureDir" /var/log/firebird
+ chown -R ${cfg.user} "${dataDir}" "${systemDir}" /var/log/firebird
+ chmod -R 700 "${dataDir}" "${systemDir}" /var/log/firebird
'';
serviceConfig.PermissionsStartOnly = true; # preStart must be run as root
@@ -119,9 +126,9 @@ in
# think about this again - and eventually make it an option
environment.etc."firebird/firebird.conf".text = ''
- # RootDirectory = Restrict ${cfg.dataDir}
- DatabaseAccess = Restrict ${cfg.dataDir}
- ExternalFileAccess = Restrict ${cfg.dataDir}
+ # RootDirectory = Restrict ${dataDir}
+ DatabaseAccess = Restrict ${dataDir}
+ ExternalFileAccess = Restrict ${dataDir}
# what is this? is None allowed?
UdfAccess = None
# "Native" = traditional interbase/firebird, "mixed" is windows only
@@ -142,8 +149,14 @@ in
#RemoteAuxPort = 0
# rsetrict connections to a network card:
#RemoteBindAddress =
- # there are some more settings ..
+ # there are some additional settings which should be reviewed
'';
+
+ users.extraUsers.firebird = {
+ description = "Firebird server user";
+ group = "firebird";
+ uid = config.ids.uids.firebird;
};
+ };
}
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 663c2cc4505a..8be05a27cdcb 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -93,8 +93,8 @@ in
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 = ./foodatabase.sql; }
- { name = "bardatabase"; schema = ./bardatabase.sql; }
+ { name = "foodatabase"; schema = literalExample "./foodatabase.sql"; }
+ { name = "bardatabase"; schema = literalExample "./bardatabase.sql"; }
];
};
diff --git a/nixos/modules/services/databases/mysql55.nix b/nixos/modules/services/databases/mysql55.nix
index 46148d68f4c6..fe8b29e3c6b7 100644
--- a/nixos/modules/services/databases/mysql55.nix
+++ b/nixos/modules/services/databases/mysql55.nix
@@ -86,8 +86,8 @@ in
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 = ./foodatabase.sql; }
- { name = "bardatabase"; schema = ./bardatabase.sql; }
+ { name = "foodatabase"; schema = literalExample "./foodatabase.sql"; }
+ { name = "bardatabase"; schema = literalExample "./bardatabase.sql"; }
];
};
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index fc6b5b167b88..1c43dad1d508 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -95,14 +95,6 @@ in
'';
};
- authMethod = mkOption {
- default = " ident sameuser ";
- description = ''
- How to authorize users.
- Note: ident needs absolute trust to all allowed client hosts.
- '';
- };
-
enableTCPIP = mkOption {
default = false;
description = ''
diff --git a/nixos/modules/services/misc/nix-gc.nix b/nixos/modules/services/misc/nix-gc.nix
index dfdc4db65d54..ad6889ce1428 100644
--- a/nixos/modules/services/misc/nix-gc.nix
+++ b/nixos/modules/services/misc/nix-gc.nix
@@ -52,7 +52,7 @@ in
systemd.services.nix-gc =
{ description = "Nix Garbage Collector";
- serviceConfig.ExecStart = "${config.environment.nix}/bin/nix-collect-garbage ${cfg.options}";
+ script = "exec ${config.environment.nix}/bin/nix-collect-garbage ${cfg.options}";
startAt = optionalString cfg.automatic cfg.dates;
};
diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix
index 1260272b68e9..a593d05ee628 100644
--- a/nixos/modules/services/misc/nixos-manual.nix
+++ b/nixos/modules/services/misc/nixos-manual.nix
@@ -11,10 +11,15 @@ let
cfg = config.services.nixosManual;
+ versionModule =
+ { system.nixosVersionSuffix = config.system.nixosVersionSuffix;
+ system.nixosRevision = config.system.nixosRevision;
+ };
+
manual = import ../../../doc/manual {
- inherit (cfg) revision;
inherit pkgs;
- options = (fixMergeModules baseModules
+ revision = config.system.nixosRevision;
+ options = (fixMergeModules ([ versionModule ] ++ baseModules)
(removeAttrs extraArgs ["config" "options"]) // {
modules = [ ];
}).options;
@@ -75,16 +80,6 @@ in
'';
};
- services.nixosManual.revision = mkOption {
- default = "local";
- type = types.uniq types.string;
- description = ''
- Revision of the targeted source file. This value can either be
- "local", "HEAD" or any
- revision number embedded in a string.
- '';
- };
-
};
diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix
new file mode 100644
index 000000000000..42d5f61af308
--- /dev/null
+++ b/nixos/modules/services/monitoring/munin.nix
@@ -0,0 +1,215 @@
+{ config, pkgs, ... }:
+
+# TODO: support munin-async
+# TODO: LWP/Pg perl libs aren't recognized
+
+# TODO: support fastcgi
+# http://munin-monitoring.org/wiki/CgiHowto2
+# spawn-fcgi -s /var/run/munin/fastcgi-graph.sock -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph
+# spawn-fcgi -s /var/run/munin/fastcgi-html.sock -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-html
+# https://paste.sh/vofcctHP#-KbDSXVeWoifYncZmLfZzgum
+# nginx http://munin.readthedocs.org/en/latest/example/webserver/nginx.html
+
+
+with pkgs.lib;
+
+let
+ nodeCfg = config.services.munin-node;
+ cronCfg = config.services.munin-cron;
+
+ muninPlugins = pkgs.stdenv.mkDerivation {
+ name = "munin-available-plugins";
+ buildCommand = ''
+ mkdir -p $out
+
+ cp --preserve=mode ${pkgs.munin}/lib/plugins/* $out/
+
+ for file in $out/*; do
+ case "$file" in
+ plugin.sh) continue;;
+ esac
+
+ # read magic makers from the file
+ family=$(sed -nr 's/.*#%#\s+family\s*=\s*(\S+)\s*/\1/p' $file)
+ cap=$(sed -nr 's/.*#%#\s+capabilities\s*=\s*(.+)/\1/p' $file)
+
+ wrapProgram $file \
+ --set PATH "/run/current-system/sw/bin:/run/current-system/sw/sbin" \
+ --set MUNIN_LIBDIR "${pkgs.munin}/lib" \
+ --set MUNIN_PLUGSTATE "/var/run/munin"
+
+ # munin uses markers to tell munin-node-configure what a plugin can do
+ echo "#%# family=$family" >> $file
+ echo "#%# capabilities=$cap" >> $file
+ done
+
+ # NOTE: we disable disktstats because plugin seems to fail and it hangs html generation (100% CPU + memory leak)
+ rm -f $out/diskstats
+ '';
+ buildInputs = [ pkgs.makeWrapper ];
+ };
+
+ muninConf = pkgs.writeText "munin.conf"
+ ''
+ dbdir /var/lib/munin
+ htmldir /var/www/munin
+ logdir /var/log/munin
+ rundir /var/run/munin
+
+ ${cronCfg.extraGlobalConfig}
+
+ ${cronCfg.hosts}
+ '';
+
+ nodeConf = pkgs.writeText "munin-node.conf"
+ ''
+ log_level 3
+ log_file Sys::Syslog
+ port 4949
+ host *
+ background 0
+ user root
+ group root
+ host_name ${config.networking.hostName}
+ setsid 0
+
+ # wrapped plugins by makeWrapper being with dots
+ ignore_file ^\.
+
+ allow ^127\.0\.0\.1$
+
+ ${nodeCfg.extraConfig}
+ '';
+in
+
+{
+
+ options = {
+
+ services.munin-node = {
+
+ enable = mkOption {
+ default = false;
+ description = ''
+ Enable Munin Node agent. Munin node listens on 0.0.0.0 and
+ by default accepts connections only from 127.0.0.1 for security reasons.
+
+ See .
+ '';
+ };
+
+ extraConfig = mkOption {
+ default = "";
+ description = ''
+ munin-node.conf extra configuration. See
+
+ '';
+ };
+
+ # TODO: add option to add additional plugins
+
+ };
+
+ services.munin-cron = {
+
+ enable = mkOption {
+ default = false;
+ description = ''
+ Enable munin-cron. Takes care of all heavy lifting to collect data from
+ nodes and draws graphs to html. Runs munin-update, munin-limits,
+ munin-graphs and munin-html in that order.
+
+ HTML output is in /var/www/munin/, configure your
+ favourite webserver to serve static files.
+ '';
+ example = literalExample ''
+ services = {
+ munin-node.enable = true;
+ munin-cron = {
+ enable = true;
+ hosts = '''
+ [''${config.networking.hostName}]
+ address localhost
+ ''';
+ extraGlobalConfig = '''
+ contact.email.command mail -s "Munin notification for ''${var:host}" someone@example.com
+ ''';
+ };
+ };
+ '';
+ };
+
+ extraGlobalConfig = mkOption {
+ default = "";
+ description = ''
+ munin.conf extra global configuration.
+ See .
+ Useful to setup notifications, see
+
+ '';
+ };
+
+ hosts = mkOption {
+ example = ''
+ [''${config.networking.hostName}]
+ address localhost
+ '';
+ description = ''
+ Definitions of hosts of nodes to collect data from. Needs at least one
+ hosts for cron to succeed. See
+
+ '';
+ };
+
+ };
+
+ };
+
+ config = mkMerge [ (mkIf (nodeCfg.enable || cronCfg.enable) {
+
+ environment.systemPackages = [ pkgs.munin ];
+
+ users.extraUsers = [{
+ name = "munin";
+ description = "Munin monitoring user";
+ group = "munin";
+ }];
+
+ users.extraGroups = [{
+ name = "munin";
+ }];
+
+ }) (mkIf nodeCfg.enable {
+
+ systemd.services.munin-node = {
+ description = "Munin node, the agent process";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ path = [ pkgs.munin ];
+ environment.MUNIN_PLUGSTATE = "/var/run/munin";
+ serviceConfig = {
+ ExecStart = "${pkgs.munin}/sbin/munin-node --config ${nodeConf} --servicedir /etc/munin/plugins/";
+ };
+ };
+
+ system.activationScripts.munin-node = ''
+ echo "updating munin plugins..."
+
+ mkdir -p /etc/munin/plugins
+ rm -rf /etc/munin/plugins/*
+ PATH="/run/current-system/sw/bin:/run/current-system/sw/sbin" ${pkgs.munin}/sbin/munin-node-configure --shell --families contrib,auto,manual --config ${nodeConf} --libdir=${muninPlugins} --servicedir=/etc/munin/plugins 2>/dev/null | ${pkgs.bash}/bin/bash
+ '';
+
+ }) (mkIf cronCfg.enable {
+
+ services.cron.systemCronJobs = [
+ "*/5 * * * * munin ${pkgs.munin}/bin/munin-cron --config ${muninConf}"
+ ];
+
+ system.activationScripts.munin-cron = stringAfter [ "users" "groups" ] ''
+ mkdir -p /var/{run,log,www,lib}/munin
+ chown -R munin:munin /var/{run,log,www,lib}/munin
+ '';
+
+ })];
+}
diff --git a/nixos/modules/services/networking/ejabberd.nix b/nixos/modules/services/networking/ejabberd.nix
index 05e0aba7d70e..75950f55a279 100644
--- a/nixos/modules/services/networking/ejabberd.nix
+++ b/nixos/modules/services/networking/ejabberd.nix
@@ -44,7 +44,7 @@ in
loadDumps = mkOption {
default = [];
description = "Configuration dump that should be loaded on the first startup";
- example = [ ./myejabberd.dump ];
+ example = literalExample "[ ./myejabberd.dump ]";
};
};
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index c85c9307e3e4..f5670ccdcbfa 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -181,11 +181,11 @@ in
example = [
{
hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ];
- publicKeyFile = ./pubkeys/myhost_ssh_host_dsa_key.pub;
+ publicKeyFile = literalExample "./pubkeys/myhost_ssh_host_dsa_key.pub";
}
{
hostNames = [ "myhost2" ];
- publicKeyFile = ./pubkeys/myhost2_ssh_host_dsa_key.pub;
+ publicKeyFile = literalExample "./pubkeys/myhost2_ssh_host_dsa_key.pub";
}
];
options = {
diff --git a/nixos/modules/services/networking/vsftpd.nix b/nixos/modules/services/networking/vsftpd.nix
index 1b2432401def..d9f1e96b1d23 100644
--- a/nixos/modules/services/networking/vsftpd.nix
+++ b/nixos/modules/services/networking/vsftpd.nix
@@ -4,12 +4,92 @@ with pkgs.lib;
let
+ /* minimal secure setup:
+
+ enable = true;
+ forceLocalLoginsSSL = true;
+ forceLocalDataSSL = true;
+ userlistDeny = false;
+ localUsers = true;
+ userlist = ["non-root-user" "other-non-root-user"];
+ rsaCertFile = "/var/vsftpd/vsftpd.pem";
+
+ */
+
cfg = config.services.vsftpd;
inherit (pkgs) vsftpd;
- yesNoOption = p : name :
- "${name}=${if p then "YES" else "NO"}";
+ yesNoOption = nixosName: vsftpdName: default: description: {
+ cfgText = "${vsftpdName}=${if getAttr nixosName cfg then "YES" else "NO"}";
+
+ nixosOption = {
+ name = nixosName;
+ value = mkOption {
+ inherit description default;
+ type = types.bool;
+ };
+ };
+ };
+
+ optionDescription = [
+
+ (yesNoOption "anonymousUser" "anonymous_enable" false ''
+ Whether to enable the anonymous FTP user.
+ '')
+ (yesNoOption "localUsers" "local_enable" false ''
+ Whether to enable FTP for local users.
+ '')
+ (yesNoOption "writeEnable" "write_enable" false ''
+ Whether any write activity is permitted to users.
+ '')
+ (yesNoOption "anonymousUploadEnable" "anon_upload_enable" false ''
+ Whether any uploads are permitted to anonymous users.
+ '')
+ (yesNoOption "anonymousMkdirEnable" "anon_mkdir_write_enable" false ''
+ Whether any uploads are permitted to anonymous users.
+ '')
+ (yesNoOption "chrootlocalUser" "chroot_local_user" false ''
+ Whether local users are confined to their home directory.
+ '')
+ (yesNoOption "userlistEnable" "userlist_enable" false ''
+ Whether users are included.
+ '')
+ (yesNoOption "userlistDeny" "userlist_deny" false ''
+ Specifies whether is a list of user
+ names to allow or deny access.
+ The default false means whitelist/allow.
+ '')
+ (yesNoOption "forceLocalLoginsSSL" "force_local_logins_ssl" false ''
+ Only applies if is true. Non anonymous (local) users
+ must use a secure SSL connection to send a password.
+ '')
+ (yesNoOption "forceLocalDataSSL" "force_local_data_ssl" false ''
+ Only applies if is true. Non anonymous (local) users
+ must use a secure SSL connection for sending/receiving data on data connection.
+ '')
+ (yesNoOption "ssl_tlsv1" "ssl_tlsv1" true '' '')
+ (yesNoOption "ssl_sslv2" "ssl_sslv2" false '' '')
+ (yesNoOption "ssl_sslv3" "ssl_sslv3" false '' '')
+
+ {
+ cfgText = if cfg.rsaCertFile == null then ""
+ else ''
+ sslEnable=YES
+ rsa_cert_file=${cfg.rsaCertFile}
+ '';
+
+ nixosOption = {
+ name = "rsaCertFile";
+ value = mkOption {
+ default = null;
+ description = ''
+ rsa certificate file.
+ '';
+ };
+ };
+ }
+ ];
in
@@ -26,52 +106,34 @@ in
description = "Whether to enable the vsftpd FTP server.";
};
- anonymousUser = mkOption {
- default = false;
- description = "Whether to enable the anonymous FTP user.";
+ userlist = mkOption {
+ default = [];
+
+ description = ''
+ See .
+ '';
+ };
+
+ userlistFile = mkOption {
+ default = pkgs.writeText "userlist" (concatMapStrings (x: "${x}\n") cfg.userlist);
+ description = ''
+ Newline separated list of names to be allowed/denied if
+ is true. Meaning see .
+
+ The default is a file containing the users from .
+
+ If explicitely set to null userlist_file will not be set in vsftpd's config file.
+ '';
};
anonymousUserHome = mkOption {
- default = "/home/ftp";
- description = "Path to anonymous user data.";
+ default = "/home/ftp/";
+ description = ''
+ Directory to consider the HOME of the anonymous user.
+ '';
};
- localUsers = mkOption {
- default = false;
- description = "Whether to enable FTP for local users.";
- };
-
- writeEnable = mkOption {
- default = false;
- description = "Whether any write activity is permitted to users.";
- };
-
- anonymousUploadEnable = mkOption {
- default = false;
- description = "Whether any uploads are permitted to anonymous users.";
- };
-
- anonymousMkdirEnable = mkOption {
- default = false;
- description = "Whether mkdir is permitted to anonymous users.";
- };
-
- chrootlocalUser = mkOption {
- default = false;
- description = "Whether local users are confined to their home directory.";
- };
-
- userlistEnable = mkOption {
- default = false;
- description = "Whether users are included.";
- };
-
- userlistDeny = mkOption {
- default = false;
- description = "Whether users are excluded.";
- };
-
- };
+ } // (listToAttrs (catAttrs "nixosOption" optionDescription)) ;
};
@@ -80,6 +142,15 @@ in
config = mkIf cfg.enable {
+ assertions = [
+ {
+ assertion =
+ (cfg.forceLocalLoginsSSL -> cfg.rsaCertFile != null)
+ && (cfg.forceLocalDataSSL -> cfg.rsaCertFile != null);
+ message = "vsftpd: If forceLocalLoginsSSL or forceLocalDataSSL is true then a rsaCertFile must be provided!";
+ }
+ ];
+
users.extraUsers =
[ { name = "vsftpd";
uid = config.ids.uids.vsftpd;
@@ -99,6 +170,21 @@ in
gid = config.ids.gids.ftp;
};
+ # If you really have to access root via FTP use mkOverride or userlistDeny
+ # = false and whitelist root
+ services.vsftpd.userlist = if cfg.userlistDeny then ["root"] else [];
+
+ environment.etc."vsftpd.conf".text =
+ concatMapStrings (x: "${x.cfgText}\n") optionDescription
+ + ''
+ ${if cfg.userlistFile == null then ""
+ else "userlist_file=${cfg.userlistFile}"}
+ background=NO
+ listen=YES
+ nopriv_user=vsftpd
+ secure_chroot_dir=/var/empty
+ '';
+
jobs.vsftpd =
{ description = "vsftpd server";
@@ -107,22 +193,6 @@ in
preStart =
''
- # !!! Why isn't this generated in the normal way?
- cat > /etc/vsftpd.conf <
- mount-point /
- cache-size 30000
-
- blob-dir /var/lib/zope2/${name}/blobstorage
-
- path /var/lib/zope2/${name}/filestorage/Data.fs
-
-
+ mount-point /
+ cache-size 30000
+
+ blob-dir /var/lib/zope2/${name}/blobstorage
+
+ path /var/lib/zope2/${name}/filestorage/Data.fs
+
+
'';
type = types.string;
@@ -76,14 +76,14 @@ in
extra =
''
- mount-point /
- cache-size 30000
-
- blob-dir /var/lib/zope2/plone01/blobstorage
-
- path /var/lib/zope2/plone01/filestorage/Data.fs
-
-
+ mount-point /
+ cache-size 30000
+
+ blob-dir /var/lib/zope2/plone01/blobstorage
+
+ path /var/lib/zope2/plone01/filestorage/Data.fs
+
+
'';
@@ -107,32 +107,32 @@ in
let
interpreter = pkgs.writeScript "interpreter"
''
-import sys
+ import sys
-_interactive = True
-if len(sys.argv) > 1:
- _options, _args = __import__("getopt").getopt(sys.argv[1:], 'ic:m:')
- _interactive = False
- for (_opt, _val) in _options:
- if _opt == '-i':
- _interactive = True
- elif _opt == '-c':
- exec _val
- elif _opt == '-m':
- sys.argv[1:] = _args
- _args = []
- __import__("runpy").run_module(
- _val, {}, "__main__", alter_sys=True)
+ _interactive = True
+ if len(sys.argv) > 1:
+ _options, _args = __import__("getopt").getopt(sys.argv[1:], 'ic:m:')
+ _interactive = False
+ for (_opt, _val) in _options:
+ if _opt == '-i':
+ _interactive = True
+ elif _opt == '-c':
+ exec _val
+ elif _opt == '-m':
+ sys.argv[1:] = _args
+ _args = []
+ __import__("runpy").run_module(
+ _val, {}, "__main__", alter_sys=True)
- if _args:
- sys.argv[:] = _args
- __file__ = _args[0]
- del _options, _args
- execfile(__file__)
+ if _args:
+ sys.argv[:] = _args
+ __file__ = _args[0]
+ del _options, _args
+ execfile(__file__)
-if _interactive:
- del _interactive
- __import__("code").interact(banner="", local=globals())
+ if _interactive:
+ del _interactive
+ __import__("code").interact(banner="", local=globals())
'';
env = pkgs.buildEnv {
name = "zope2-${name}-env";
@@ -149,73 +149,76 @@ if _interactive:
'';
};
conf = pkgs.writeText "zope2-${name}-conf"
- ''%define INSTANCEHOME ${env}
-instancehome $INSTANCEHOME
-%define CLIENTHOME /var/lib/zope2/${name}
-clienthome $CLIENTHOME
+ ''
+ %define INSTANCEHOME ${env}
+ instancehome $INSTANCEHOME
+ %define CLIENTHOME /var/lib/zope2/${name}
+ clienthome $CLIENTHOME
-debug-mode off
-security-policy-implementation C
-verbose-security off
-default-zpublisher-encoding utf-8
-zserver-threads ${toString opts.threads}
-effective-user ${opts.user}
+ debug-mode off
+ security-policy-implementation C
+ verbose-security off
+ default-zpublisher-encoding utf-8
+ zserver-threads ${toString opts.threads}
+ effective-user ${opts.user}
-pid-filename /var/lib/zope2/${name}/pid
-lock-filename /var/lib/zope2/${name}/lock
-python-check-interval 1000
-enable-product-installation off
+ pid-filename /var/lib/zope2/${name}/pid
+ lock-filename /var/lib/zope2/${name}/lock
+ python-check-interval 1000
+ enable-product-installation off
-
- zope_i18n_compile_mo_files false
-
+
+ zope_i18n_compile_mo_files false
+
-
-level INFO
-
- path /var/log/zope2/${name}.log
- level INFO
-
-
+
+ level INFO
+
+ path /var/log/zope2/${name}.log
+ level INFO
+
+
-
-level WARN
-
- path /var/log/zope2/${name}-Z2.log
- format %(message)s
-
-
+
+ level WARN
+
+ path /var/log/zope2/${name}-Z2.log
+ format %(message)s
+
+
-
-address ${opts.http_address}
-
+
+ address ${opts.http_address}
+
-
-
- name temporary storage for sessioning
-
-mount-point /temp_folder
-container-class Products.TemporaryFolder.TemporaryContainer
-
+
+
+ name temporary storage for sessioning
+
+ mount-point /temp_folder
+ container-class Products.TemporaryFolder.TemporaryContainer
+
-${opts.extra}
+ ${opts.extra}
'';
ctlScript = pkgs.writeScript "zope2-${name}-ctl-script"
- ''#!${env}/bin/python
+ ''
+ #!${env}/bin/python
-import sys
-import plone.recipe.zope2instance.ctl
+ import sys
+ import plone.recipe.zope2instance.ctl
-if __name__ == '__main__':
- sys.exit(plone.recipe.zope2instance.ctl.main(
- ["-C", "${conf}"]
- + sys.argv[1:]))
+ if __name__ == '__main__':
+ sys.exit(plone.recipe.zope2instance.ctl.main(
+ ["-C", "${conf}"]
+ + sys.argv[1:]))
'';
ctl = pkgs.writeScript "zope2-${name}-ctl"
- ''#!${pkgs.bash}/bin/bash -e
-export PYTHONHOME=${env}
-exec ${ctlScript} "$@"
+ ''
+ #!${pkgs.bash}/bin/bash -e
+ export PYTHONHOME=${env}
+ exec ${ctlScript} "$@"
'';
in {
description = "zope2 ${name} instance";
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
new file mode 100644
index 000000000000..bf7f974edc7b
--- /dev/null
+++ b/nixos/modules/services/x11/redshift.nix
@@ -0,0 +1,51 @@
+{ config, pkgs, ... }:
+with pkgs.lib;
+let
+ cfg = config.services.redshift;
+
+in {
+ options = {
+ services.redshift.enable = mkOption {
+ type = types.bool;
+ default = false;
+ example = true;
+ description = "Enable Redshift to change your screen's colour temperature depending on the time of day";
+ };
+
+ services.redshift.latitude = mkOption {
+ description = "Your current latitude";
+ type = types.string;
+ };
+
+ services.redshift.longitude = mkOption {
+ description = "Your current longitude";
+ type = types.string;
+ };
+
+ services.redshift.temperature = {
+ day = mkOption {
+ description = "Colour temperature to use during day time";
+ default = 5500;
+ type = types.int;
+ };
+ night = mkOption {
+ description = "Colour temperature to use during night time";
+ default = 3700;
+ type = types.int;
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.redshift = {
+ description = "Redshift colour temperature adjuster";
+ requires = [ "display-manager.service" ];
+ script = ''
+ ${pkgs.redshift}/bin/redshift \
+ -l ${cfg.latitude}:${cfg.longitude} \
+ -t ${toString cfg.temperature.day}:${toString cfg.temperature.night}
+ '';
+ environment = { DISPLAY = ":0"; };
+ };
+ };
+}
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 02ba680255bf..e391da5c5721 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -232,8 +232,11 @@ in
s3tcSupport = mkOption {
default = false;
description = ''
- Make S2TC via libtxc_dxtn available to OpenGL drivers. Using
- this library may require a patent license depending on your location.
+ Make S3TC(S3 Texture Compression) via libtxc_dxtn available
+ to OpenGL drivers. It is essential for many games to work
+ with FOSS GPU drivers.
+
+ Using this library may require a patent license depending on your location.
'';
};
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index dc0175632174..ff3c844030b6 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -44,8 +44,12 @@ in
};
description = ''
- Activate the new configuration (i.e., update /etc, make accounts,
- and so on).
+ A set of shell script fragments that are executed when a NixOS
+ system configuration is activated. Examples are updating
+ /etc, creating accounts, and so on. Since these are executed
+ every time you boot the system or run
+ nixos-rebuild, it's important that they are
+ idempotent and fast.
'';
merge = mergeTypedOption "script" builtins.isAttrs (fold mergeAttrs {});
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index 32157e419856..a04914bedaf7 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -122,6 +122,7 @@ in
options = {
system.build = mkOption {
+ internal = true;
default = {};
description = ''
Attribute set of derivations used to setup the system.
@@ -144,6 +145,7 @@ in
};
system.boot.loader.id = mkOption {
+ internal = true;
default = "";
description = ''
Id string of the used bootloader.
@@ -151,6 +153,7 @@ in
};
system.boot.loader.kernelFile = mkOption {
+ internal = true;
default = pkgs.stdenv.platform.kernelTarget;
type = types.uniq types.string;
description = ''
@@ -169,8 +172,8 @@ in
};
system.extraSystemBuilderCmds = mkOption {
- default = "";
internal = true;
+ default = "";
merge = concatStringsSep "\n";
description = ''
This code will be added to the builder creating the system store path.
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index c7c1f675c778..955235da70fe 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -86,12 +86,6 @@ in
'';
};
- # !!! How can we mark options as obsolete?
- bootDevice = mkOption {
- default = "";
- description = "Obsolete.";
- };
-
configurationName = mkOption {
default = "";
example = "Stable 2.6.21";
@@ -173,15 +167,7 @@ in
};
splashImage = mkOption {
- default =
- if cfg.version == 1
- then pkgs.fetchurl {
- url = http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz;
- sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
- }
- # GRUB 1.97 doesn't support gzipped XPMs.
- else ./winkler-gnu-blue-640x480.png;
- example = null;
+ example = literalExample "./my-background.png";
description = ''
Background image used for GRUB. It must be a 640x480,
14-colour image in XPM format, optionally compressed with
@@ -233,30 +219,43 @@ in
###### implementation
- config = mkIf cfg.enable {
+ config = mkMerge [
- boot.loader.grub.devices = optional (cfg.device != "") cfg.device;
+ { boot.loader.grub.splashImage = mkDefault (
+ if cfg.version == 1 then pkgs.fetchurl {
+ url = http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz;
+ sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
+ }
+ # GRUB 1.97 doesn't support gzipped XPMs.
+ else ./winkler-gnu-blue-640x480.png);
+ }
- system.build.installBootLoader =
- if cfg.devices == [] then
- throw "You must set the ‘boot.loader.grub.device’ option to make the system bootable."
- else
- "PERL5LIB=${makePerlPath [ pkgs.perlPackages.XMLLibXML pkgs.perlPackages.XMLSAX ]} " +
- "${pkgs.perl}/bin/perl ${./install-grub.pl} ${grubConfig}";
+ (mkIf cfg.enable {
- system.build.grub = grub;
+ boot.loader.grub.devices = optional (cfg.device != "") cfg.device;
- # Common attribute for boot loaders so only one of them can be
- # set at once.
- system.boot.loader.id = "grub";
+ system.build.installBootLoader =
+ if cfg.devices == [] then
+ throw "You must set the ‘boot.loader.grub.device’ option to make the system bootable."
+ else
+ "PERL5LIB=${makePerlPath [ pkgs.perlPackages.XMLLibXML pkgs.perlPackages.XMLSAX ]} " +
+ "${pkgs.perl}/bin/perl ${./install-grub.pl} ${grubConfig}";
- environment.systemPackages = [ grub ];
+ system.build.grub = grub;
- boot.loader.grub.extraPrepareConfig =
- concatStrings (mapAttrsToList (n: v: ''
- ${pkgs.coreutils}/bin/cp -pf "${v}" "/boot/${n}"
- '') config.boot.loader.grub.extraFiles);
+ # Common attribute for boot loaders so only one of them can be
+ # set at once.
+ system.boot.loader.id = "grub";
- };
+ environment.systemPackages = [ grub ];
+
+ boot.loader.grub.extraPrepareConfig =
+ concatStrings (mapAttrsToList (n: v: ''
+ ${pkgs.coreutils}/bin/cp -pf "${v}" "/boot/${n}"
+ '') config.boot.loader.grub.extraFiles);
+
+ })
+
+ ];
}
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 29f5eb4fd771..ba357f5d2de3 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -44,12 +44,9 @@ in
{
options = {
- boot.initrd.luks.enable = mkOption {
- default = false;
- description = "Obsolete.";
- };
boot.initrd.luks.mitigateDMAAttacks = mkOption {
+ type = types.bool;
default = true;
description = ''
Unless enabled, encryption keys can be easily recovered by an attacker with physical
@@ -62,6 +59,7 @@ in
};
boot.initrd.luks.cryptoModules = mkOption {
+ type = types.listOf types.string;
default =
[ "aes" "aes_generic" "blowfish" "twofish"
"serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"
@@ -142,7 +140,9 @@ in
};
};
+
};
+
};
config = mkIf (luks.devices != []) {
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 52dab153094d..280143d4e3f2 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -61,7 +61,7 @@ in
config = mkIf cfg.enable {
environment.systemPackages =
- [ pkgs.libvirt ]
+ [ pkgs.libvirt pkgs.netcat-openbsd ]
++ optional cfg.enableKVM pkgs.qemu_kvm;
boot.kernelModules = [ "tun" ];
diff --git a/nixos/release.nix b/nixos/release.nix
index e19403eccb66..866a992f79a1 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -16,7 +16,9 @@ let
versionModule =
- { system.nixosVersionSuffix = versionSuffix; };
+ { system.nixosVersionSuffix = versionSuffix;
+ system.nixosRevision = nixpkgs.rev or nixpkgs.shortRev;
+ };
makeIso =
@@ -73,7 +75,7 @@ let
};
-in {
+in rec {
channel =
pkgs.releaseTools.makeSourceTarball {
@@ -91,6 +93,7 @@ in {
distPhase = ''
rm -rf .git
echo -n $VERSION_SUFFIX > .version-suffix
+ echo -n ${nixpkgs.rev or nixpkgs.shortRev} > .git-revision
releaseName=nixos-$VERSION$VERSION_SUFFIX
mkdir -p $out/tarballs
mkdir ../$releaseName
@@ -106,18 +109,8 @@ in {
};
- manual =
- (import ./doc/manual {
- inherit pkgs;
- options =
- (import lib/eval-config.nix {
- modules = [
- { fileSystems = [];
- boot.loader.grub.device = "/dev/sda";
- } ];
- }).options;
- revision = toString (nixpkgs.rev or nixpkgs.shortRev);
- }).manual;
+ manual = iso_minimal.x86_64-linux.config.system.build.manual.manual;
+ manpages = iso_minimal.x86_64-linux.config.system.build.manual.manpages;
iso_minimal = pkgs.lib.genAttrs systems (system: makeIso {
diff --git a/nixos/tests/default.nix b/nixos/tests/default.nix
index 16d45126de13..ce5776c8e465 100644
--- a/nixos/tests/default.nix
+++ b/nixos/tests/default.nix
@@ -21,11 +21,12 @@ with import ../lib/testing.nix { inherit system minimal; };
#mpich = makeTest (import ./mpich.nix);
mysql = makeTest (import ./mysql.nix);
mysql_replication = makeTest (import ./mysql-replication.nix);
+ munin = makeTest (import ./munin.nix);
nat = makeTest (import ./nat.nix);
nfs3 = makeTest (import ./nfs.nix { version = 3; });
#nfs4 = makeTest (import ./nfs.nix { version = 4; });
openssh = makeTest (import ./openssh.nix);
- partition = makeTest (import ./partition.nix);
+ #partition = makeTest (import ./partition.nix);
printing = makeTest (import ./printing.nix);
proxy = makeTest (import ./proxy.nix);
quake3 = makeTest (import ./quake3.nix);
diff --git a/nixos/tests/munin.nix b/nixos/tests/munin.nix
new file mode 100644
index 000000000000..66ae1c0d87f7
--- /dev/null
+++ b/nixos/tests/munin.nix
@@ -0,0 +1,31 @@
+{ pkgs, ... }:
+
+# This test runs basic munin setup with node and cron job running on the same
+# machine.
+
+{
+ nodes = {
+ one =
+ { config, pkgs, ... }:
+ {
+ services = {
+ munin-node.enable = true;
+ munin-cron = {
+ enable = true;
+ hosts = ''
+ [${config.networking.hostName}]
+ address localhost
+ '';
+ };
+ };
+ };
+ };
+
+ testScript = ''
+ startAll;
+
+ $one->waitForUnit("munin-node.service");
+ $one->waitForFile("/var/lib/munin/one/one-uptime-uptime-g.rrd");
+ $one->waitForFile("/var/www/munin/one/index.html");
+ '';
+}
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 6846607d61db..f9a8d0752415 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -1,28 +1,28 @@
{ stdenv, fetchurl, pkgconfig, glib, gtk3, libmowgli, libmcs
, gettext, dbus_glib, libxml2, libmad, xlibs, alsaLib, libogg
-, libvorbis, libcdio, libcddb, flac, ffmpeg
+, libvorbis, libcdio, libcddb, flac, ffmpeg, makeWrapper
}:
let
- version = "3.3.4";
+ version = "3.4.1";
in
stdenv.mkDerivation {
name = "audacious-${version}";
src = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
- sha256 = "19zw4yj8g4fvxkv0ql8v8vgxzldxl1fzig239zzv88mpnvwxn737";
+ sha256 = "0wf99b0nrk90fyak4gpwi076qnsrmv1j8958cvi57rxig21lvvap";
};
pluginsSrc = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
- sha256 = "1l5g0zq73qp1hlrf4xsaj0n3hg0asrp7169531jgpncjn15dhvdn";
+ sha256 = "02ivrxs6109nmmz9pkbf9dkm36s2lyp9vfv59sm0acxxd4db71md";
};
buildInputs =
[ gettext pkgconfig glib gtk3 libmowgli libmcs libxml2 dbus_glib
libmad xlibs.libXcomposite libogg libvorbis flac alsaLib libcdio
- libcddb ffmpeg
+ libcddb ffmpeg makeWrapper
];
# Here we build bouth audacious and audacious-plugins in one
@@ -44,7 +44,16 @@ stdenv.mkDerivation {
src=$pluginsSrc
genericBuild
)
+
+ (
+ source $stdenv/setup
+ # gsettings schemas for file dialogues
+ for file in "$out"/bin/*; do
+ wrapProgram "$file" --prefix XDG_DATA_DIRS : "$XDG_ADD"
+ done
+ )
'';
+ XDG_ADD = gtk3 + "/share";
enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index f4d264c0d8f8..615ee6a93cc9 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -1,9 +1,11 @@
-{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
+{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype
+, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
+, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer, udev }:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
let
- version = "0.9.1.55";
+ version = "0.9.4.183";
qt4webkit =
if stdenv.system == "i686-linux" then
fetchurl {
@@ -25,13 +27,13 @@ stdenv.mkDerivation {
src =
if stdenv.system == "i686-linux" then
fetchurl {
- url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_i386.deb";
- sha256 = "1sls4gb85700126bbk4sz73ipa2rjcinmpnsi78q0bsdj365y2wc";
+ url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.g644e24e.428-1_i386.deb";
+ sha256 = "1wl6v5x8vm74h5lxp8fhvmih8l122aadsf1qxvpk0k3y6mbx0ifa";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
- url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_amd64.deb";
- sha256 = "10pzj3p8bjbxh9nnm4qc5s1hn9nh7hgh3vbwm0xblj9rn71wl03y";
+ url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.g644e24e.428-1_amd64.deb";
+ sha256 = "1yniln6iswrrrny01qr2w5zcvam0vnrvy9mwbnk9i14i2ch0f3fx";
}
else throw "Spotify not supported on this platform.";
@@ -57,12 +59,15 @@ stdenv.mkDerivation {
ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so.0d
ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.so.0d
+ # Work around Spotify trying to open libudev.so.0 (which we don't have)
+ ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
+
mkdir -p $out/bin
ln -s $out/spotify-client/spotify $out/bin/spotify
patchelf \
--interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
- --set-rpath $out/lib:$out/spotify-client:${stdenv.lib.makeLibraryPath [ xlibs.libXScrnSaver xlibs.libX11 qt4 alsaLib stdenv.gcc.gcc freetype glib pango cairo atk gdk_pixbuf gtk GConf cups sqlite]}:${stdenv.gcc.gcc}/lib64 \
+ --set-rpath $out/spotify-client/Data:$out/lib:$out/spotify-client:${stdenv.lib.makeLibraryPath [ xlibs.libXScrnSaver xlibs.libX11 qt4 alsaLib stdenv.gcc.gcc freetype glib pango cairo atk gdk_pixbuf gtk GConf cups sqlite]}:${stdenv.gcc.gcc}/lib64 \
$out/spotify-client/spotify
dpkg-deb -x ${qt4webkit} ./
@@ -74,23 +79,20 @@ stdenv.mkDerivation {
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
+
+ # Desktop file
+ mkdir -p "$out/share/applications/"
+ cp "$out/spotify-client/spotify.desktop" "$out/share/applications/"
+ sed -i "s|Icon=.*|Icon=$out/spotify-client/Icons/spotify-linux-512.png|" "$out/share/applications/spotify.desktop"
''; # */
dontStrip = true;
dontPatchELF = true;
meta = {
- homepage = https://www.spotify.com/download/previews/;
+ homepage = https://www.spotify.com/;
description = "Spotify for Linux allows you to play music from the Spotify music service";
license = "unfree";
maintainers = [ stdenv.lib.maintainers.eelco ];
-
- longDescription =
- ''
- Spotify is a digital music streaming service. This package
- provides the Spotify client for Linux. At present, it does not
- work with free Spotify accounts; it requires a Premium or
- Unlimited account.
- '';
};
}
diff --git a/pkgs/applications/editors/emacs-24/default.nix b/pkgs/applications/editors/emacs-24/default.nix
index 0dcb585e12e9..18e263dae67e 100644
--- a/pkgs/applications/editors/emacs-24/default.nix
+++ b/pkgs/applications/editors/emacs-24/default.nix
@@ -46,11 +46,12 @@ stdenv.mkDerivation rec {
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
(split-string (getenv "NIX_PROFILES"))))
load-path)))
+
+ ;; make tramp work for NixOS machines
+ (eval-after-load 'tramp '(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))
EOF
'';
-
-
doCheck = true;
meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/synergy/cryptopp.patch b/pkgs/applications/misc/synergy/cryptopp.patch
index f20ef9544a22..d0aebb872610 100644
--- a/pkgs/applications/misc/synergy/cryptopp.patch
+++ b/pkgs/applications/misc/synergy/cryptopp.patch
@@ -20,10 +20,10 @@ index 3b61fc0..2206646 100644
if (WIN32)
# add /analyze in order to unconver potential bugs in the source code
-diff --git a/src/lib/synergy/CCryptoMode.h b/src/lib/synergy/CCryptoMode.h
+diff --git a/src/lib/io/CCryptoMode.h b/src/lib/io/CCryptoMode.h
index 9b7e8ad..0d659ac 100644
---- a/src/lib/synergy/CCryptoMode.h
-+++ b/src/lib/synergy/CCryptoMode.h
+--- a/src/lib/io/CCryptoMode.h
++++ b/src/lib/io/CCryptoMode.h
@@ -17,9 +17,9 @@
#pragma once
@@ -37,10 +37,10 @@ index 9b7e8ad..0d659ac 100644
#include "ECryptoMode.h"
#include "CString.h"
-diff --git a/src/lib/synergy/CCryptoStream.h b/src/lib/synergy/CCryptoStream.h
+diff --git a/src/lib/io/CCryptoStream.h b/src/lib/io/CCryptoStream.h
index 104b1f6..09c4dc4 100644
---- a/src/lib/synergy/CCryptoStream.h
-+++ b/src/lib/synergy/CCryptoStream.h
+--- a/src/lib/io/CCryptoStream.h
++++ b/src/lib/io/CCryptoStream.h
@@ -20,8 +20,8 @@
#include "BasicTypes.h"
#include "CStreamFilter.h"
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index 0b3734ea147a..c01d67943e57 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -7,11 +7,11 @@ assert !stdenv.isLinux -> unzip != null;
with stdenv.lib;
stdenv.mkDerivation rec {
- name = "synergy-1.4.12";
+ name = "synergy-1.4.15";
src = fetchurl {
- url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
- sha256 = "0j884skwqy8r8ckj9a4rlwsbjwb1yrj9wqma1nwhr2inff6hrdim";
+ url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
+ sha256 = "0l1mxxky9hacyva0npzkgkwg4wkmihzq3abdrds0w5f6is44adv4";
};
patches = optional stdenv.isLinux ./cryptopp.patch;
diff --git a/pkgs/applications/misc/urlview/default.nix b/pkgs/applications/misc/urlview/default.nix
new file mode 100644
index 000000000000..02d26f660019
--- /dev/null
+++ b/pkgs/applications/misc/urlview/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, ncurses, automake111x, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "0.9";
+ patchLevel = "19";
+
+ name = "urlview-${version}-${patchLevel}";
+
+ urlBase = "mirror://debian/pool/main/u/urlview/";
+
+ src = fetchurl {
+ url = urlBase + "urlview_${version}.orig.tar.gz";
+ sha256 = "746ff540ccf601645f500ee7743f443caf987d6380e61e5249fc15f7a455ed42";
+ };
+
+ buildInputs = [ ncurses automake111x autoreconfHook ];
+
+ preAutoreconf = ''
+ touch NEWS
+ '';
+
+ preConfigure = ''
+ mkdir -p $out/share/man/man1
+ '';
+
+ debianPatches = fetchurl {
+ url = urlBase + "urlview_${version}-${patchLevel}.diff.gz";
+ sha256 = "056883c17756f849fb9235596d274fbc5bc0d944fcc072bdbb13d1e828301585";
+ };
+
+ patches = debianPatches;
+
+ meta = {
+ description = "Extract URLs from text";
+ homepage = http://packages.qa.debian.org/u/urlview.html;
+ licencse = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix
index 5218df775955..fdcdd4770d0e 100644
--- a/pkgs/applications/misc/xpdf/default.nix
+++ b/pkgs/applications/misc/xpdf/default.nix
@@ -18,26 +18,20 @@ stdenv.mkDerivation {
};
buildInputs =
- (if enableGUI then [x11 motif] else []) ++
- (if useT1Lib then [t1lib] else []);
+ stdenv.lib.optionals enableGUI [x11 motif] ++
+ stdenv.lib.optional useT1Lib t1lib ++
+ stdenv.lib.optional enablePDFtoPPM freetype;
# Debian uses '-fpermissive' to bypass some errors on char* constantness.
CXXFLAGS = "-O2 -fpermissive";
- configureFlags =
- "--infodir=$out/share/info --mandir=$out/share/man --enable-a4-paper"
- + (if enablePDFtoPPM then
- " --with-freetype2-library=${freetype}/lib"
- + " --with-freetype2-includes=${freetype}/include/freetype2"
- else "");
+ configureFlags = "--enable-a4-paper";
- postInstall = "
- if test -n \"${base14Fonts}\"; then
- substituteInPlace $out/etc/xpdfrc \\
- --replace /usr/local/share/ghostscript/fonts ${base14Fonts} \\
- --replace '#fontFile' fontFile
- fi
- ";
+ postInstall = stdenv.lib.optionalString (base14Fonts != null) ''
+ substituteInPlace $out/etc/xpdfrc \
+ --replace /usr/local/share/ghostscript/fonts ${base14Fonts} \
+ --replace '#fontFile' fontFile
+ '';
meta = {
homepage = "http://www.foolabs.com/xpdf/";
diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix
index 96c58ef8e9c9..ae49890caf34 100644
--- a/pkgs/applications/networking/browsers/chromium/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/sources.nix
@@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
- version = "31.0.1650.4";
- url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1650.4.tar.xz";
- sha256 = "1i61izfn06ldxkgdrisdibbn5hrghyjslf81yszpw69k0z87k3lm";
+ version = "32.0.1671.3";
+ url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1671.3.tar.xz";
+ sha256 = "0bv86ig3mrd95zh78880bcyh9b8w46s7slxq3mwwmrmqp0s8qaq0";
};
beta = {
- version = "30.0.1599.66";
- url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.66.tar.xz";
- sha256 = "092ps4y4s544lswrqqk8qij5n7ax4bsfl5vdj5cwfncvsqpjds4g";
+ version = "31.0.1650.26";
+ url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1650.26.tar.xz";
+ sha256 = "14jvbjn7nsc4psi7n6rjsb5d930k4jawbgqlx3hkhmkz5nhbrplx";
};
stable = {
- version = "30.0.1599.66";
- url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.66.tar.xz";
- sha256 = "092ps4y4s544lswrqqk8qij5n7ax4bsfl5vdj5cwfncvsqpjds4g";
+ version = "30.0.1599.101";
+ url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.101.tar.xz";
+ sha256 = "0bd49k9qpycpp4z230pqwsi22565lzhyq59js34baawjqql6ynfr";
};
}
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index b120ebcac54e..0421a8a6c6a8 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation {
src = fetchgit {
url = "https://bitbucket.org/portix/dwb.git";
- rev = "4a4c3adb8fbc680a0a2b8c9d3d3a4105c07c2514";
- sha256 = "93e8f2c82609447d54a3c139c153cc66d37d3c6aa8922cd09717caa95fd8b1d5";
+ rev = "84a8621787baded72e84afdd5cdda278cb81e007";
+ sha256 = "5a32f3c21ad59b43935a16108244f84d260fafaea9b93d41e8de9ba9089ee7b0";
};
buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4 ];
@@ -21,6 +21,8 @@ stdenv.mkDerivation {
wrapProgram "$out/bin/dwb" \
--prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/share"
+ wrapProgram "$out/bin/dwbem" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
'';
meta = {
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh
new file mode 100644
index 000000000000..fb36125b3a17
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh
@@ -0,0 +1,4 @@
+source $stdenv/setup
+export PREFIX=$out
+configureFlags="--plugin-path=$out/lib/mozilla/plugins"
+genericBuild
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
new file mode 100644
index 000000000000..7422654ec985
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk3, gettext, intltool }:
+
+let version = "1.0.2"; in
+stdenv.mkDerivation rec {
+ name = "fribid-${version}";
+ builder = ./builder.sh;
+
+ src = fetchurl {
+ url = "https://fribid.se/releases/source/${name}.tar.bz2";
+ sha256 = "d7cd9adf04fedf50b266a5c14ddb427cbb263d3bc160ee0ade03aca9d5356e5c";
+ };
+
+ buildInputs = [ pkgconfig openssl libX11 gtk3 glib gettext intltool ];
+ patches = [
+ ./translation-xgettext-to-intltool.patch
+ ./plugin-linkfix.patch
+ ./emulated-version.patch
+ ./ipc-lazytrace.patch
+ ];
+
+ passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+ meta = {
+ description = "A browser plugin to manage Swedish BankID:s";
+ homepage = http://fribid.se;
+ licenses = [ "GPLv2" "MPLv1" ];
+ maintainers = [ stdenv.lib.maintainers.edwtjo ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
+
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/emulated-version.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/emulated-version.patch
new file mode 100644
index 000000000000..f730ad017b1d
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/emulated-version.patch
@@ -0,0 +1,12 @@
+--- a/common/defines.h 2012-11-14 18:02:43.000000000 +0100
++++ b/common/defines.h 2013-09-20 19:17:45.669290630 +0200
+@@ -39,7 +39,7 @@
+ #define RELEASE_TIME 1352912534
+ #define IPCVERSION "10"
+
+-#define EMULATED_VERSION "4.15.0.14"
++#define EMULATED_VERSION "4.17.0.11" // Was 4.15.0.14
+ #define DNSVERSION "2"
+ #define STATUSDOMAIN ".status.fribid.se"
+
+
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch
new file mode 100644
index 000000000000..b7d05ddd0ef5
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch
@@ -0,0 +1,10 @@
+--- a/plugin/ipc.c 2012-11-14 18:02:43.000000000 +0100
++++ b/plugin/ipc.c 2013-09-21 08:55:39.960265058 +0200
+@@ -74,6 +74,7 @@
+ //close(pipeOut[PIPE_READ_END]);
+
+ execvp(mainBinary, (char *const *)argv);
++ fprintf(stderr, "Wanted signing executable\t<%s>\n", mainBinary);
+ perror(BINNAME ": Failed to execute main binary");
+ exit(1);
+ } else {
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch
new file mode 100644
index 000000000000..1128381238b4
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch
@@ -0,0 +1,11 @@
+--- a/plugin/Makefile 2013-09-18 13:55:11.091652553 +0200
++++ b/plugin/Makefile 2013-09-18 13:58:27.513618750 +0200
+@@ -60,7 +60,7 @@
+ for path in $(NPAPI_PLUGIN_PATHS); do \
+ (../configure --internal--remove-link $(DESTDIR)$$path/libfribidplugin.so $(NPAPI_PLUGIN_LIB) || exit 1) && \
+ install -d $(DESTDIR)$$path && \
+- ln -sf $(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \
++ ln -sf $(DESTDIR)$(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \
+ done
+
+ uninstall:
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch
new file mode 100644
index 000000000000..dcac4f17928b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch
@@ -0,0 +1,16 @@
+--- a/translations/Makefile 2013-09-18 07:25:16.503800613 +0200
++++ b/translations/Makefile 2013-09-18 07:25:29.495869405 +0200
+@@ -38,7 +38,7 @@
+ all: template.pot $(MOFILES)
+
+ template.pot: $(POTFILES) $(DEFINES)
+- xgettext -k_ -ktranslatable -d $(DOMAIN) --package-name=$(PACKAGENAME) --package-version=$(PACKAGEVERSION) --copyright-holder='YOUR NAME' -o $@ $(POTFILES)
++ intltool-update --gettext-package=$(PACKAGENAME) -o $@ sv
+
+ .po.mo:
+ msgfmt $< -o $@
+--- a/translations/POTFILES.in 2013-09-16 20:28:56.766106014 +0200
++++ b/translations/POTFILES.in 2013-09-18 13:15:05.252689648 +0200
+@@ -0,0 +1,2 @@
++client/gtk.c
++client/gtk/sign.glade
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 4e911bc33452..99589a3d71b5 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -2,7 +2,7 @@
, libSM, libX11, libXext, libXcomposite, libXcursor, libXdamage
, libXfixes, libXi, libXinerama, libXrandr, libXrender
, dbus, dbus_glib, fontconfig, gcc, patchelf
-, atk, glib, gdk_pixbuf, gtk, pango
+, atk, glib, gdk_pixbuf, gtk, pango, zlib
}:
# this package contains the daemon version of dropbox
@@ -20,14 +20,14 @@ let
arch = if stdenv.system == "x86_64-linux" then "x86_64"
else if stdenv.system == "i686-linux" then "x86"
else throw "Dropbox client for: ${stdenv.system} not supported!";
-
+
interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Dropbox client for: ${stdenv.system} not supported!";
- version = "1.4.21";
- sha256 = if stdenv.system == "x86_64-linux" then "94073842f4a81feee80bca590e1df73fc3cab47ba879407ceba2de48f30d84e2"
- else if stdenv.system == "i686-linux" then "121v92m20l73xjmzng3vmcp4zsp9mlbcfia73f5py5y74kndb2ap"
+ version = "2.4.3";
+ sha256 = if stdenv.system == "x86_64-linux" then "0g8iqgc18qbw8fvdjf0fhbal34rvwr5izrf5acfzqjg99dgih81r"
+ else if stdenv.system == "i686-linux" then "1nhmk319whj6cil6wg9hrfln9bxin3fnf6sxb0zg2ycfpnnqi0la"
else throw "Dropbox client for: ${stdenv.system} not supported!";
# relative location where the dropbox libraries are stored
@@ -40,7 +40,7 @@ let
libSM libX11 libXext libXcomposite libXcursor libXdamage
libXfixes libXi libXinerama libXrandr libXrender
atk dbus dbus_glib glib fontconfig gcc gdk_pixbuf
- gtk pango
+ gtk pango zlib
];
desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/science/logic/ekrhyper/default.nix b/pkgs/applications/science/logic/ekrhyper/default.nix
index 7ff1acb062be..c90099f495a2 100644
--- a/pkgs/applications/science/logic/ekrhyper/default.nix
+++ b/pkgs/applications/science/logic/ekrhyper/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="ekrhyper";
- version="1_4_08022013";
+ version="1_4_30072013";
name="${baseName}-${version}";
- hash="0vni5pq1p99428ii3g13chiqxcs8k1fm6jlvg1jqh4qdcs42w7yb";
- url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_08022013.tar.gz";
- sha256="0vni5pq1p99428ii3g13chiqxcs8k1fm6jlvg1jqh4qdcs42w7yb";
+ hash="0ashsblm477r7dmq9f33wajkbr29rbyyc919mifdgrrdy6zlc663";
+ url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_30072013.tar.gz";
+ sha256="0ashsblm477r7dmq9f33wajkbr29rbyyc919mifdgrrdy6zlc663";
};
buildInputs = [
ocaml perl
diff --git a/pkgs/applications/science/logic/eprover/default.nix b/pkgs/applications/science/logic/eprover/default.nix
index d36956d1375f..35e70a4b0d73 100644
--- a/pkgs/applications/science/logic/eprover/default.nix
+++ b/pkgs/applications/science/logic/eprover/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="eprover";
- version="1.7";
+ version="1.8";
name="${baseName}-${version}";
- hash="1prkgjpg8lajcylz9nj2hfjxl3l42cqbfvilg30z9b5br14l36rh";
- url="http://www4.in.tum.de/~schulz/WORK/E_DOWNLOAD/V_1.7/E.tgz";
- sha256="1prkgjpg8lajcylz9nj2hfjxl3l42cqbfvilg30z9b5br14l36rh";
+ hash="0bl4dr7k6simwdvdyxhnjkiz4nm5y0nr8bfhc34zk0360i9m6sk3";
+ url="http://www4.in.tum.de/~schulz/WORK/E_DOWNLOAD/V_1.8/E.tgz";
+ sha256="0bl4dr7k6simwdvdyxhnjkiz4nm5y0nr8bfhc34zk0360i9m6sk3";
};
in
stdenv.mkDerivation {
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index a1959eedba2f..2a669729a9c6 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl, zlib, openssl, tcl, readline, sqlite}:
+{stdenv, fetchurl, zlib, openssl, tcl, readline, sqlite, withJson ? true}:
stdenv.mkDerivation {
- name = "fossil-1.24";
+ name = "fossil-1.27";
src = fetchurl {
- url = http://www.fossil-scm.org/download/fossil-src-20121022124804.tar.gz;
- sha256 = "0gcvcrd368acxd79gh7p7caicgqd0f076n0i2if63mg3b8ivz9im";
+ url = http://www.fossil-scm.org/download/fossil-src-20130911114349.tar.gz;
+ sha256 = "0n40z8bx2311i11zjx2x15lw3q8vzjwvfqzikrjlqnpal4vzd72f";
};
buildInputs = [ zlib openssl readline sqlite ];
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
doCheck = true;
checkTarget = "test";
+ configureFlags = if withJson then "--json" else "";
preBuild=''
export USER=nonexistent-but-specified-user
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index d1e2a8b7883d..de3e5c98d36b 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl, python, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc}:
+{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl,
+ python, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte}:
with stdenv.lib;
@@ -18,7 +19,8 @@ stdenv.mkDerivation rec {
distutils_extra simplejson readline glance cheetah lockfile httplib2
# !!! should libvirt be a build-time dependency? Note that
# libxml2Python is a dependency of libvirt.py.
- libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python gtkvnc
+ libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python
+ gtkvnc vte
];
buildInputs =
diff --git a/pkgs/applications/window-managers/compiz/default.nix b/pkgs/applications/window-managers/compiz/default.nix
index 46aa6e4d77eb..02b7b9987bdb 100644
--- a/pkgs/applications/window-managers/compiz/default.nix
+++ b/pkgs/applications/window-managers/compiz/default.nix
@@ -15,10 +15,11 @@ let
s = # Generated upstream information
rec {
baseName="compiz";
- version="0.9.9.0";
- name="compiz-${version}";
- url="https://launchpad.net/compiz/0.9.9/${version}/+download/${name}.tar.bz2";
- sha256="0nxv9lv0zwzs82p2d5g38sbvzbqgfs837xdgwc26lh5wdv31d93s";
+ version="0.9.10.0";
+ name="${baseName}-${version}";
+ hash="0kvjib0ns02cikpsjq5hlf746yjx2gkfh373pvrb25lzv3rs1qax";
+ url="https://launchpad.net/compiz/0.9.10/0.9.10.0/+download/compiz-0.9.10.0.tar.bz2";
+ sha256="0kvjib0ns02cikpsjq5hlf746yjx2gkfh373pvrb25lzv3rs1qax";
};
buildInputs = [cmake pkgconfig
libXrender renderproto gtk libwnck pango cairo
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index c4841c50d94c..c6c294d55042 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -159,7 +159,7 @@ rec {
# Debian.
debian = [
- ftp://ftp.au.debian.org/debian/
+ #ftp://ftp.au.debian.org/debian/
ftp://ftp.de.debian.org/debian/
ftp://ftp.es.debian.org/debian/
ftp://ftp.fr.debian.org/debian/
diff --git a/pkgs/build-support/upstream-updater/urls-from-page.sh b/pkgs/build-support/upstream-updater/urls-from-page.sh
index d456794a563d..aecf645eb817 100755
--- a/pkgs/build-support/upstream-updater/urls-from-page.sh
+++ b/pkgs/build-support/upstream-updater/urls-from-page.sh
@@ -9,6 +9,6 @@ relpath="${path#$server}"
echo "URL: $url" >&2
-curl -L -k "$url" | sed -re 's/^/-/;s/[hH][rR][eE][fF]=("([^"]*)"|'\''([^'\'']*)'\''|([^"'\'' <>&]+)[ <>&])/\n+\2\3\4\n-/g' | \
+curl -A 'text/html; text/xhtml; text/xml; */*' -L -k "$url" | sed -re 's/^/-/;s/[hH][rR][eE][fF]=("([^"]*)"|'\''([^'\'']*)'\''|([^"'\'' <>&]+)[ <>&])/\n+\2\3\4\n-/g' | \
sed -e '/^-/d; s/^[+]//; /^#/d;'"s/^\\//$protocol:\\/\\/$server\\//g" | \
sed -re 's`^[^:]*$`'"$protocol://$basepath/&\`"
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 996770d2fcc2..0296c434d6f6 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -514,7 +514,8 @@ rec {
echo "%_topdir $rpmout" >> $HOME/.rpmmacros
- rpmbuild -vv -ta "$srcName"
+ if [ `uname -m` = i686 ]; then extra="--target i686-linux"; fi
+ rpmbuild -vv $extra -ta "$srcName"
eval "$postBuild"
'';
@@ -937,6 +938,32 @@ rec {
unifiedSystemDir = true;
};
+ fedora19i386 = {
+ name = "fedora-19-i386";
+ fullName = "Fedora 19 (i386)";
+ packagesList = fetchurl {
+ url = mirror://fedora/linux/releases/19/Everything/i386/os/repodata/b72220bcdefff8b38de1c9029a630db4813e073f88c4b080ca274d133e0460d1-primary.xml.gz;
+ sha256 = "b72220bcdefff8b38de1c9029a630db4813e073f88c4b080ca274d133e0460d1";
+ };
+ urlPrefix = mirror://fedora/linux/releases/19/Everything/i386/os;
+ archs = ["noarch" "i386" "i586" "i686"];
+ packages = commonFedoraPackages ++ [ "cronie" "util-linux" ];
+ unifiedSystemDir = true;
+ };
+
+ fedora19x86_64 = {
+ name = "fedora-19-x86_64";
+ fullName = "Fedora 19 (x86_64)";
+ packagesList = fetchurl {
+ url = mirror://fedora/linux/releases/19/Everything/x86_64/os/repodata/d3f67da6461748f57a06459e6877fd07858828e256f58f032704186a65430fd3-primary.xml.gz;
+ sha256 = "d3f67da6461748f57a06459e6877fd07858828e256f58f032704186a65430fd3";
+ };
+ urlPrefix = mirror://fedora/linux/releases/19/Everything/x86_64/os;
+ archs = ["noarch" "x86_64"];
+ packages = commonFedoraPackages ++ [ "cronie" "util-linux" ];
+ unifiedSystemDir = true;
+ };
+
opensuse103i386 = {
name = "opensuse-10.3-i586";
fullName = "openSUSE 10.3 (i586)";
@@ -1026,7 +1053,7 @@ rec {
/* The set of supported Dpkg-based distributions. */
- debDistros = {
+ debDistros = rec {
# Interestingly, the SHA-256 hashes provided by Ubuntu in
# http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are
@@ -1335,6 +1362,40 @@ rec {
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
};
+ ubuntu1310i386 = {
+ name = "ubuntu-13.10-saucy-i386";
+ fullName = "Ubuntu 13.10 Saucy (i386)";
+ packagesLists =
+ [ (fetchurl {
+ url = mirror://ubuntu/dists/saucy/main/binary-i386/Packages.bz2;
+ sha256 = "9b35d44a737e6aa7e1cb5e2b52ba0ed8717c8820b3950c2e7ade07024db9c138";
+ })
+ (fetchurl {
+ url = mirror://ubuntu/dists/saucy/universe/binary-i386/Packages.bz2;
+ sha256 = "84ff81ef23bcece68bfc3dd4b0b1fd38e5b81ac90ad48b4e4210396b425da500";
+ })
+ ];
+ urlPrefix = mirror://ubuntu;
+ packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
+ };
+
+ ubuntu1310x86_64 = {
+ name = "ubuntu-13.10-saucy-amd64";
+ fullName = "Ubuntu 13.10 Saucy (amd64)";
+ packagesList =
+ [ (fetchurl {
+ url = mirror://ubuntu/dists/saucy/main/binary-amd64/Packages.bz2;
+ sha256 = "d000968f9653d7c25928002b0850fe2da97607682f63a351eb2c89896a219a12";
+ })
+ (fetchurl {
+ url = mirror://ubuntu/dists/saucy/universe/binary-amd64/Packages.bz2;
+ sha256 = "06ec77f2f5d6ee70ffb805affe3a6b3e8d5b6463fbfe42ba6588295c7e1f65bc";
+ })
+ ];
+ urlPrefix = mirror://ubuntu;
+ packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
+ };
+
debian40i386 = {
name = "debian-4.0r9-etch-i386";
fullName = "Debian 4.0r9 Etch (i386)";
@@ -1380,44 +1441,48 @@ rec {
};
debian60i386 = {
- name = "debian-6.0.7-squeeze-i386";
- fullName = "Debian 6.0.7 Squeeze (i386)";
+ name = "debian-6.0.8-squeeze-i386";
+ fullName = "Debian 6.0.8 Squeeze (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/squeeze/main/binary-i386/Packages.bz2;
- sha256 = "a770f26b5fce1a16460b68f135dfe97f4f4a9894b538ece0104a508c83ec65d5";
+ sha256 = "c850339aaf46a4ed4abc7c1789c29ea58c3a152aa173ee004578fda86b28391f";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
debian60x86_64 = {
- name = "debian-6.0.7-squeeze-amd64";
- fullName = "Debian 6.0.7 Squeeze (amd64)";
+ name = "debian-6.0.8-squeeze-amd64";
+ fullName = "Debian 6.0.8 Squeeze (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/squeeze/main/binary-amd64/Packages.bz2;
- sha256 = "b2bb561bde59ac67e07c70aa7c86a33f237436e6891796a93c6ed6ffb032080e";
+ sha256 = "1506ab7de3ad5a2c706183536d2ee88589d7cb922d9e0de36ac062d464082dda";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
- debian70i386 = {
- name = "debian-7.1.0-wheezy-i386";
- fullName = "Debian 7.1.0 Wheezy (i386)";
+ # Backward compatibility.
+ debian70i386 = debian7i386;
+ debian70x86_64 = debian7x86_64;
+
+ debian7i386 = {
+ name = "debian-7.2-wheezy-i386";
+ fullName = "Debian 7.2 Wheezy (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
- sha256 = "c2751c48805b41c3eddd31cfe92ffa46df13a7d6ce7896b8dc5ce4b2f7f329c5";
+ sha256 = "2e80242e323f233c40b3020b0f1a57d12df8a120ee82af88ff7032ba4688f97d";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
- debian70x86_64 = {
- name = "debian-7.1.0-wheezy-amd64";
- fullName = "Debian 7.1.0 Wheezy (amd64)";
+ debian7x86_64 = {
+ name = "debian-7.2-wheezy-amd64";
+ fullName = "Debian 7.2 Wheezy (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
- sha256 = "9b15b4348cadbcf170c9e83d6fbcb64efac2b787ebdfef16ba21dd70dfca0001";
+ sha256 = "adfc4cd3d3b855c73c9e2e12163a33c193f98c9bad25765080fa6136378a6e3b";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
@@ -1515,6 +1580,7 @@ rec {
"curl"
"patch"
"locales"
+ "coreutils"
# Needed by checkinstall:
"util-linux"
"file"
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 15b49a2a99e2..1b3454c8ce5a 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
- name = "man-pages-3.53";
+ name = "man-pages-3.54";
src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
- sha256 = "0kzkjfrw65f7bv6laz3jism4yqajmfh3vdq2jb5d6gyp4n14sxnl";
+ sha256 = "0rb75dl9hh4v2s95bcssy12j8qrbd2dmlzry68gphyxk5c7yipbl";
};
preBuild =
diff --git a/pkgs/data/fonts/lmodern/lmmath.nix b/pkgs/data/fonts/lmodern/lmmath.nix
index 651a84726af6..90132272dd10 100644
--- a/pkgs/data/fonts/lmodern/lmmath.nix
+++ b/pkgs/data/fonts/lmodern/lmmath.nix
@@ -14,10 +14,10 @@ stdenv.mkDerivation {
sourceRoot = ".";
installPhase = ''
- mkdir -p $out/texmf/fonts/opentype
+ mkdir -p $out/texmf-dist/fonts/opentype
mkdir -p $out/share/fonts/opentype
- cp *.{OTF,otf} $out/texmf/fonts/opentype/lmmath-regular.otf
+ cp *.{OTF,otf} $out/texmf-dist/fonts/opentype/lmmath-regular.otf
cp *.{OTF,otf} $out/share/fonts/opentype/lmmath-regular.otf
ln -s $out/texmf* $out/share/
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
new file mode 100644
index 000000000000..074fc4f334f6
--- /dev/null
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, gmp }:
+
+let version = "0.0.3"; in stdenv.mkDerivation {
+ name = "ats2-postiats-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
+ sha256 = "0hq63zrmm92j5ffnsmylhhllm8kgjpjkaj4xvzz1zlshz39lijxp";
+ };
+
+ buildInputs = [ gmp ];
+
+ meta = {
+ description = "A statically typed programming language that unifies implementation with formal specification";
+ homepage = http://www.ats-lang.org/;
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ stdenv.lib.maintainers.shlevy ];
+ };
+}
diff --git a/pkgs/development/compilers/elm/elm.nix b/pkgs/development/compilers/elm/elm.nix
index 2c851ebbf3f6..17b173a33348 100644
--- a/pkgs/development/compilers/elm/elm.nix
+++ b/pkgs/development/compilers/elm/elm.nix
@@ -1,17 +1,20 @@
-{ cabal, binary, blazeHtml, blazeMarkup, cmdargs, filepath, hjsmin
-, indents, mtl, pandoc, parsec, transformers, unionFind, uniplate
+{ cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup
+, cmdargs, filepath, HTF, indents, languageEcmascript, mtl, pandoc
+, parsec, text, transformers, unionFind, uniplate
}:
cabal.mkDerivation (self: {
pname = "Elm";
- version = "0.9.0.2";
- sha256 = "0yr395wsj0spi6h9d6lm5hvdryybpf8i1qpv4gz9dk0bwlyc8iwh";
+ version = "0.10";
+ sha256 = "0wwda9w9r3qw7b23bj4qnfj4vgl7zwwnslxmgz3rv0cmxn9klqx2";
isLibrary = true;
isExecutable = true;
buildDepends = [
- binary blazeHtml blazeMarkup cmdargs filepath hjsmin indents mtl
- pandoc parsec transformers unionFind uniplate
+ aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath
+ indents languageEcmascript mtl pandoc parsec text transformers
+ unionFind uniplate
];
+ testDepends = [ HTF ];
doCheck = false;
meta = {
homepage = "http://elm-lang.org";
diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix
new file mode 100644
index 000000000000..c11bb7536be1
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/4.01.0.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, ncurses, x11 }:
+
+let
+ useX11 = !stdenv.isArm && !stdenv.isMips;
+ useNativeCompilers = !stdenv.isMips;
+ inherit (stdenv.lib) optionals optionalString;
+in
+
+stdenv.mkDerivation rec {
+
+ name = "ocaml-4.01.0";
+
+ src = fetchurl {
+ url = "http://caml.inria.fr/pub/distrib/ocaml-4.01/${name}.tar.bz2";
+ sha256 = "b1ca708994180236917ae79e17606da5bd334ca6acd6873a550027e1c0ec874a";
+ };
+
+ prefixKey = "-prefix ";
+ configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ];
+ buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
+ buildInputs = [ncurses] ++ optionals useX11 [ x11 ];
+ installTargets = "install" + optionalString useNativeCompilers " installopt";
+ preConfigure = ''
+ CAT=$(type -tp cat)
+ sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
+ '';
+ postBuild = ''
+ mkdir -p $out/include
+ ln -sv $out/lib/ocaml/caml $out/include/caml
+ '';
+
+ passthru = {
+ nativeCompilers = useNativeCompilers;
+ };
+
+ meta = {
+ homepage = http://caml.inria.fr/ocaml;
+ licenses = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
+ description = "OCaml, the most popular variant of the Caml language";
+
+ longDescription =
+ ''
+ OCaml is the most popular variant of the Caml language. From a
+ language standpoint, it extends the core Caml language with a
+ fully-fledged object-oriented layer, as well as a powerful module
+ system, all connected by a sound, polymorphic type system featuring
+ type inference.
+
+ The OCaml system is an industrial-strength implementation of this
+ language, featuring a high-performance native-code compiler (ocamlopt)
+ for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
+ Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
+ and an interactive read-eval-print loop (ocaml) for quick development
+ and portability. The OCaml distribution includes a comprehensive
+ standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
+ parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
+ and a documentation generator (ocamldoc).
+ '';
+
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+
+}
diff --git a/pkgs/development/compilers/smlnj/default.nix b/pkgs/development/compilers/smlnj/default.nix
new file mode 100644
index 000000000000..b3a29a1e1c72
--- /dev/null
+++ b/pkgs/development/compilers/smlnj/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl }:
+let
+ version = "110.76";
+ baseurl = "http://smlnj.cs.uchicago.edu/dist/working/${version}";
+
+ sources = map fetchurl [
+ { url = "${baseurl}/config.tgz"; sha256 = "0mx5gib1jq5hl3j6gvkkfh60x2hx146xiisclaz4jgy452ywikj1"; }
+ { url = "${baseurl}/cm.tgz"; sha256 = "14y1pqqw5p5va3rvpk2jddx2gcm37z5hwp5zdm43z02afscq37jk"; }
+ { url = "${baseurl}/compiler.tgz"; sha256 = "10gn7cwqzbnh4k3l6brb9hp59k9vz2m9fcaarv2fw1gilfw5a9rj"; }
+ { url = "${baseurl}/runtime.tgz"; sha256 = "0zqajizayzrlrxm47q492mqgfxya7rwqrq4faafai8qfwga6q27n"; }
+ { url = "${baseurl}/system.tgz"; sha256 = "0dys0f0cdgnivk1niam9g736c3mzrjf9r29051g0579an8yi8slg"; }
+ { url = "${baseurl}/MLRISC.tgz"; sha256 = "00n1zk65cwf2kf669mn09lp0ya6bfap1czhyq0nfza409vm4v54x"; }
+ { url = "${baseurl}/smlnj-lib.tgz"; sha256 = "1mx1vjxbpfgcq6fkmh2qirjfqzn3wcnjf4a9ijr7k2bwgnh99sc1"; }
+ { url = "${baseurl}/ckit.tgz"; sha256 = "1fqdxs2cgzffj0i9rmzv1aljwnhx98hyvj3c2kivw3ligxp4wly4"; }
+ { url = "${baseurl}/nlffi.tgz"; sha256 = "08dmvs95xmbas3hx7n0csxxl0d0bmhxg7gav1ay02gy9n8iw3g87"; }
+ { url = "${baseurl}/cml.tgz"; sha256 = "1qc1hs2k2xmn03ldyz2zf0pzbryd1n4bwix226ch8z9pnfimglyb"; }
+ { url = "${baseurl}/eXene.tgz"; sha256 = "01z69rgmshh694wkcwrzi72z5d5glpijj7mqxb17yz106xyzmgim"; }
+ { url = "${baseurl}/ml-lpt.tgz"; sha256 = "13gw4197ivzvd6qcbg5pzclhv1f2jy2c433halh021d60qjv4w4r"; }
+ { url = "${baseurl}/ml-lex.tgz"; sha256 = "0sqa533zca1l7p79qhkb7lspvhk4k2r3839745sci32fzwy1804x"; }
+ { url = "${baseurl}/ml-yacc.tgz"; sha256 = "1kzi0dpybd9hkklk460mgbwfkixjhav225kkmwnk3jxby3zgflci"; }
+ { url = "${baseurl}/ml-burg.tgz"; sha256 = "0kjrba8l0v6jn3g6gv9dvrklpvxx9x57b7czwnrrd33pi28sv7fm"; }
+ { url = "${baseurl}/pgraph.tgz"; sha256 = "174n22m7zibgk68033qql86kyk6mxjni4j0kcadafs0g2xmh6i6z"; }
+ { url = "${baseurl}/trace-debug-profile.tgz"; sha256 = "1pq4wwx5ad7zx1306ka06lqwnjv446zz6ndpq6s9ak6ha79f2s9p"; }
+ { url = "${baseurl}/heap2asm.tgz"; sha256 = "0p91fzwkfr7hng7c026gy5ggl5l9isxpm007iq6ivpjrfjy547wc"; }
+ { url = "${baseurl}/smlnj-c.tgz"; sha256 = "0vra4gi91w0cjsw3rm162hgz5xsqbr7yds44q7zhs27kccsirpqc"; }
+ { url = "${baseurl}/boot.x86-unix.tgz"; sha256 = "0qcvdhlvpr02c1ssk4jz6175lb9pkdg7zrfscqz6f7crnsgmc5nx"; }
+ ];
+in stdenv.mkDerivation {
+ name = "smlnj-${version}";
+
+ inherit sources;
+
+ patchPhase = ''
+ sed -i '/PATH=/d' config/_arch-n-opsys base/runtime/config/gen-posix-names.sh
+ echo SRCARCHIVEURL="file:/$TMP" > config/srcarchiveurl
+ '';
+
+ unpackPhase = ''
+ for s in $sources; do
+ b=$(basename $s)
+ cp $s ''${b#*-}
+ done
+ unpackFile config.tgz
+ mkdir base
+ ./config/unpack $TMP runtime
+ '';
+
+ buildPhase = ''
+ ./config/install.sh
+ '';
+
+ installPhase = ''
+ mkdir -pv $out
+ cp -rv bin lib $out
+
+ for i in $out/bin/*; do
+ sed -i "2iSMLNJ_HOME=$out/" $i
+ done
+ '';
+
+ meta = {
+ description = "Standard ML of New Jersey, a compiler";
+ homepage = http://smlnj.org;
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index b47e3c4a0e07..8ec47f86e343 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -77,7 +77,8 @@ let
});
-in rec {
+ attrs = rec {
+ # If you change much fix indentation
# This package has been split because most applications only need dbus.lib
# which serves as an interface to a *system-wide* daemon,
@@ -114,4 +115,5 @@ in rec {
docs = dbus_drv "docs" "doc" {
postInstall = ''rm -r "$out/lib"'';
};
-}
+};
+in attrs.libs // attrs
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 14b44801e76e..313eec0bc7de 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -8,6 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "11xpmsw7m5qn7y8fa2ihhqcislz1bdd83mp99didd5ac84756dlv";
};
+
buildInputs = [ x11 libXmu libXi ];
propagatedBuildInputs = [ mesa_glu ]; # GL/glew.h includes GL/glu.h
@@ -15,8 +16,9 @@ stdenv.mkDerivation rec {
sed -i 's|lib64|lib|' config/Makefile.linux
'';
+buildPhase = "make all";
installPhase = ''
- GLEW_DEST=$out make install
+ GLEW_DEST=$out make install.all
mkdir -pv $out/share/doc/glew
mkdir -p $out/lib/pkgconfig
cp glew*.pc $out/lib/pkgconfig
diff --git a/pkgs/development/libraries/haskell/HTF/default.nix b/pkgs/development/libraries/haskell/HTF/default.nix
new file mode 100644
index 000000000000..7abdc9b4730a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTF/default.nix
@@ -0,0 +1,26 @@
+{ cabal, aeson, cpphs, Diff, filepath, haskellSrcExts, HUnit
+, liftedBase, monadControl, mtl, QuickCheck, random, regexCompat
+, temporary, text, unorderedContainers, xmlgen
+}:
+
+cabal.mkDerivation (self: {
+ pname = "HTF";
+ version = "0.11.0.1";
+ sha256 = "0c4z76rsmdck60p7p2ypxx0d0r7k2vcb9viqp2yalyxzaaj7a9f5";
+ isLibrary = true;
+ isExecutable = true;
+ buildDepends = [
+ aeson cpphs Diff haskellSrcExts HUnit liftedBase monadControl mtl
+ QuickCheck random regexCompat text xmlgen
+ ];
+ testDepends = [
+ aeson filepath mtl random regexCompat temporary text
+ unorderedContainers
+ ];
+ meta = {
+ homepage = "https://github.com/skogsbaer/HTF/";
+ description = "The Haskell Test Framework";
+ license = "LGPL";
+ platforms = self.ghc.meta.platforms;
+ };
+})
diff --git a/pkgs/development/libraries/haskell/Hipmunk/default.nix b/pkgs/development/libraries/haskell/Hipmunk/default.nix
index 7ee64f4254eb..e2f78497a7a3 100644
--- a/pkgs/development/libraries/haskell/Hipmunk/default.nix
+++ b/pkgs/development/libraries/haskell/Hipmunk/default.nix
@@ -2,11 +2,11 @@
cabal.mkDerivation (self: {
pname = "Hipmunk";
- version = "5.2.0.11";
- sha256 = "0pcbwlq0njgj6dzh8h94gml63wv52f6l9hdas378lm7v8gbizxl7";
+ version = "5.2.0.12";
+ sha256 = "0gybmwwij6gs3gsklcvck0nc1niyh6pvirnxgrcwclrz94ivpj42";
buildDepends = [ StateVar transformers ];
meta = {
- homepage = "http://patch-tag.com/r/felipe/hipmunk/home";
+ homepage = "https://github.com/meteficha/Hipmunk";
description = "A Haskell binding for Chipmunk";
license = "unknown";
platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/case-insensitive/1.1.nix b/pkgs/development/libraries/haskell/case-insensitive/1.1.0.1.nix
similarity index 84%
rename from pkgs/development/libraries/haskell/case-insensitive/1.1.nix
rename to pkgs/development/libraries/haskell/case-insensitive/1.1.0.1.nix
index fb3a9d271011..4f63796850a0 100644
--- a/pkgs/development/libraries/haskell/case-insensitive/1.1.nix
+++ b/pkgs/development/libraries/haskell/case-insensitive/1.1.0.1.nix
@@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "case-insensitive";
- version = "1.1";
- sha256 = "1likcqdlhbbk78s887n5g9a4jjxxyh46hj4wc7l7snf6f9ygd5lj";
+ version = "1.1.0.1";
+ sha256 = "1hwkdkpr88r3s7c8w1msw1pawz8cfi0lwj1z9dcsp0xs788yzapp";
buildDepends = [ deepseq hashable text ];
testDepends = [ HUnit testFramework testFrameworkHunit text ];
meta = {
diff --git a/pkgs/development/libraries/haskell/data-pprint/default.nix b/pkgs/development/libraries/haskell/data-pprint/default.nix
index 351f1d834776..b78096a18357 100644
--- a/pkgs/development/libraries/haskell/data-pprint/default.nix
+++ b/pkgs/development/libraries/haskell/data-pprint/default.nix
@@ -1,15 +1,10 @@
-{ cabal, deepseq, mtl, parallel, time, fetchurl }:
+{ cabal, deepseq, mtl, parallel, time }:
cabal.mkDerivation (self: {
pname = "data-pprint";
- version = "0.2.2";
- sha256 = "0cr69qv2j8fmmlir8rzlafcxk1cg3lg1z0zrwkz0lb7idm25fy36";
+ version = "0.2.3";
+ sha256 = "1ygbhn399d4hlrdjmg7gxbr5akydb78p6qa80rv7m6j0fsqzbf6y";
buildDepends = [ deepseq mtl parallel time ];
- patches = [ (fetchurl { url = "https://github.com/divipp/ActiveHs-misc/pull/3.patch";
- sha256 = "0wxvc7cbv4qpjl5zxy41863qpzda2ma75pmnnqx29qyh3rxp7biw";
- })
- ];
- patchFlags = "-p2";
meta = {
description = "Prettyprint and compare Data values";
license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/hslua/default.nix b/pkgs/development/libraries/haskell/hslua/default.nix
index ebccbf963fed..117400952841 100644
--- a/pkgs/development/libraries/haskell/hslua/default.nix
+++ b/pkgs/development/libraries/haskell/hslua/default.nix
@@ -1,12 +1,10 @@
-{ cabal, lua, mtl }:
+{ cabal, mtl }:
cabal.mkDerivation (self: {
pname = "hslua";
version = "0.3.7";
sha256 = "1q5s2b7x9idvdvp31yl86mmy476gfq6rg8f0r8faqxrm45jwgv2q";
buildDepends = [ mtl ];
- pkgconfigDepends = [ lua ];
- configureFlags = "-fsystem-lua";
meta = {
description = "A Lua language interpreter embedding in Haskell";
license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/language-ecmascript/default.nix b/pkgs/development/libraries/haskell/language-ecmascript/default.nix
new file mode 100644
index 000000000000..8fc147191ada
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-ecmascript/default.nix
@@ -0,0 +1,23 @@
+{ cabal, dataDefaultClass, Diff, filepath, HUnit, mtl, parsec
+, QuickCheck, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, uniplate
+}:
+
+cabal.mkDerivation (self: {
+ pname = "language-ecmascript";
+ version = "0.15.2";
+ sha256 = "1iszs9f2jryddcz36a6anfyfxpwjhzn49xjqvnd5m6rjdq6y403w";
+ buildDepends = [
+ dataDefaultClass Diff mtl parsec QuickCheck uniplate
+ ];
+ testDepends = [
+ dataDefaultClass Diff filepath HUnit mtl parsec QuickCheck
+ testFramework testFrameworkHunit testFrameworkQuickcheck2
+ ];
+ meta = {
+ homepage = "http://github.com/jswebtools/language-ecmascript";
+ description = "JavaScript parser and pretty-printer library";
+ license = self.stdenv.lib.licenses.bsd3;
+ platforms = self.ghc.meta.platforms;
+ };
+})
diff --git a/pkgs/development/libraries/haskell/linear/default.nix b/pkgs/development/libraries/haskell/linear/default.nix
index b68558cf914e..feeeaed3be54 100644
--- a/pkgs/development/libraries/haskell/linear/default.nix
+++ b/pkgs/development/libraries/haskell/linear/default.nix
@@ -1,19 +1,19 @@
-{ cabal, distributive, doctest, filepath, hashable, HUnit, lens
-, reflection, semigroupoids, semigroups, simpleReflect, tagged
-, testFramework, testFrameworkHunit, transformers
+{ cabal, binary, distributive, doctest, filepath, hashable, HUnit
+, lens, reflection, semigroupoids, semigroups, simpleReflect
+, tagged, testFramework, testFrameworkHunit, transformers
, unorderedContainers, vector
}:
cabal.mkDerivation (self: {
pname = "linear";
- version = "1.3";
- sha256 = "0b5qjsbdkqv0h1236lv2nisjh9yz7gc5bd6xv6i8q5jryzs43pi9";
+ version = "1.3.1";
+ sha256 = "1s07qbdi12rc4djk4s0ds5sh79qcqfmgrbwfj1ygskq3ra88qqsa";
buildDepends = [
- distributive hashable reflection semigroupoids semigroups tagged
- transformers unorderedContainers vector
+ binary distributive hashable reflection semigroupoids semigroups
+ tagged transformers unorderedContainers vector
];
testDepends = [
- doctest filepath HUnit lens simpleReflect testFramework
+ binary doctest filepath HUnit lens simpleReflect testFramework
testFrameworkHunit
];
meta = {
@@ -21,5 +21,6 @@ cabal.mkDerivation (self: {
description = "Linear Algebra";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
+ maintainers = [ self.stdenv.lib.maintainers.ocharles ];
};
})
diff --git a/pkgs/development/libraries/haskell/monad-control/default.nix b/pkgs/development/libraries/haskell/monad-control/default.nix
index ac59d470145b..12657a63b4cc 100644
--- a/pkgs/development/libraries/haskell/monad-control/default.nix
+++ b/pkgs/development/libraries/haskell/monad-control/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "monad-control";
- version = "0.3.2.1";
- sha256 = "17wfdg3a2kkx1jwh7gfgbyx4351b420krsf8syb8l9xrl9gdz5a3";
+ version = "0.3.2.2";
+ sha256 = "1wwcx2k0nzmjqxf8d8wasnhvdx5q3nxkcyq7vbprkfy85sj7ivxc";
buildDepends = [
baseUnicodeSymbols transformers transformersBase
];
diff --git a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
index 4960e16202ec..dd400ef550d1 100644
--- a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "pandoc-citeproc";
- version = "0.1.2";
- sha256 = "055msvrcqjkijkhzws48scpc4z90g0qjjsdcd0fhy309da6vax57";
+ version = "0.1.2.1";
+ sha256 = "13i4shpbd9swbsrpmkpb7jx79m12z12m9f3x167fs78509dak3iv";
isLibrary = true;
isExecutable = true;
buildDepends = [
@@ -15,7 +15,9 @@ cabal.mkDerivation (self: {
pandoc pandocTypes parsec rfc5051 split syb tagsoup texmath text
time utf8String vector yaml
];
- testDepends = [ aeson aesonPretty Diff pandoc pandocTypes ];
+ testDepends = [
+ aeson aesonPretty Diff filepath pandoc pandocTypes yaml
+ ];
doCheck = false;
meta = {
description = "Supports using pandoc with citeproc";
diff --git a/pkgs/development/libraries/haskell/pandoc-types/default.nix b/pkgs/development/libraries/haskell/pandoc-types/default.nix
index e1e7ac54d4ca..41024c6b7d2a 100644
--- a/pkgs/development/libraries/haskell/pandoc-types/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "pandoc-types";
- version = "1.12.2.3";
- sha256 = "05xbpsx44sys0rkf2aqs4fcv4bg02ffhicp49jgnjyw9jiynhzzj";
+ version = "1.12.3";
+ sha256 = "1klfplpn2faw9da7xw5h5sx44annc2g7himyzyvb436wjnkjan0j";
buildDepends = [ aeson syb ];
meta = {
homepage = "http://johnmacfarlane.net/pandoc";
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index c3149c4a2e25..b5ccc95bd3fd 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -9,8 +9,8 @@
cabal.mkDerivation (self: {
pname = "pandoc";
- version = "1.12.0.2";
- sha256 = "125vl6l7nd3s3zwkms46y8l5zhg22iwz5387ll9rd2hf6asfpp56";
+ version = "1.12.1";
+ sha256 = "0csyrcfdqv2mc7ngn63lan3c1dd6zy0pb24k0z1lsraqlmmw76nf";
isLibrary = true;
isExecutable = true;
buildDepends = [
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
index 14b9f8d70813..cdfe320a0609 100644
--- a/pkgs/development/libraries/haskell/path-pieces/default.nix
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -1,11 +1,11 @@
-{ cabal, fileLocation, hspec, HUnit, QuickCheck, text, time }:
+{ cabal, hspec, HUnit, QuickCheck, text, time }:
cabal.mkDerivation (self: {
pname = "path-pieces";
- version = "0.1.2";
- sha256 = "1cxsa8lq1f2jf86iv6f17nraiav8k2vzjxln1y7z45qhcp1sbbaa";
+ version = "0.1.3";
+ sha256 = "03x9kfcaz1zsdpdzs05pcl0hv4hffgsl2js8xiy5slba6n841v4l";
buildDepends = [ text time ];
- testDepends = [ fileLocation hspec HUnit QuickCheck text ];
+ testDepends = [ hspec HUnit QuickCheck text ];
meta = {
description = "Components of paths";
license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
index 1b290bd310ba..ca177a80a101 100644
--- a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
@@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "tagstream-conduit";
- version = "0.5.4";
- sha256 = "1djf66kn3m4sdwmis82f9w2nkmjyrq12zda7ic9pcsvra579868i";
+ version = "0.5.4.1";
+ sha256 = "1gahdil5jasm6v7gp519ahr2yc7ppysdnmkl21cd4zzn6y1r0gw9";
buildDepends = [
attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
caseInsensitive conduit text transformers
diff --git a/pkgs/development/libraries/haskell/text-format/default.nix b/pkgs/development/libraries/haskell/text-format/default.nix
new file mode 100644
index 000000000000..b9507d7777ab
--- /dev/null
+++ b/pkgs/development/libraries/haskell/text-format/default.nix
@@ -0,0 +1,14 @@
+{ cabal, doubleConversion, text, time, transformers }:
+
+cabal.mkDerivation (self: {
+ pname = "text-format";
+ version = "0.3.1.0";
+ sha256 = "13k5a1kfmapd4yckm2vcrwz4vrrf32c2dpisdw0hyvzvmdib3n60";
+ buildDepends = [ doubleConversion text time transformers ];
+ meta = {
+ homepage = "https://github.com/bos/text-format";
+ description = "Text formatting";
+ license = self.stdenv.lib.licenses.bsd3;
+ platforms = self.ghc.meta.platforms;
+ };
+})
diff --git a/pkgs/development/libraries/haskell/uuid/default.nix b/pkgs/development/libraries/haskell/uuid/default.nix
index 37ef38da4e2e..2160d22607b8 100644
--- a/pkgs/development/libraries/haskell/uuid/default.nix
+++ b/pkgs/development/libraries/haskell/uuid/default.nix
@@ -1,16 +1,18 @@
-{ cabal, binary, criterion, cryptohash, deepseq, HUnit, maccatcher
-, mersenneRandomPure64, QuickCheck, random, testFramework
-, testFrameworkHunit, testFrameworkQuickcheck2, time
+{ cabal, binary, cryptohash, deepseq, hashable, HUnit, networkInfo
+, QuickCheck, random, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, time
}:
cabal.mkDerivation (self: {
pname = "uuid";
- version = "1.2.14";
- sha256 = "13r2yzhb9nj1h6wfy7w9k59d27z9iza5r4apmf72zby2fi9vdnwy";
- buildDepends = [ binary cryptohash maccatcher random time ];
+ version = "1.3.2";
+ sha256 = "0kwrb200i41l8ipgwviv934sa2ic2hqvlpj72pmkw4ba50viyc8m";
+ buildDepends = [
+ binary cryptohash deepseq hashable networkInfo random time
+ ];
testDepends = [
- criterion deepseq HUnit mersenneRandomPure64 QuickCheck random
- testFramework testFrameworkHunit testFrameworkQuickcheck2
+ HUnit QuickCheck random testFramework testFrameworkHunit
+ testFrameworkQuickcheck2
];
jailbreak = true;
doCheck = false;
diff --git a/pkgs/development/libraries/haskell/xdot/default.nix b/pkgs/development/libraries/haskell/xdot/default.nix
index 130402ec75bf..f7a2b731d037 100644
--- a/pkgs/development/libraries/haskell/xdot/default.nix
+++ b/pkgs/development/libraries/haskell/xdot/default.nix
@@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "xdot";
- version = "0.2.3.1";
- sha256 = "1gricrnssxgzaq1z7nnyppmz284nix0m89477x22mal125pkcf7n";
+ version = "0.2.4";
+ sha256 = "0723drp9zs3hrayld99j4fniyvm65fz19hkk4001vpvgjw27dfja";
buildDepends = [ cairo graphviz gtk mtl polyparse text ];
meta = {
description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
diff --git a/pkgs/development/libraries/haskell/xmlgen/default.nix b/pkgs/development/libraries/haskell/xmlgen/default.nix
new file mode 100644
index 000000000000..f45b7b4a6a0e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xmlgen/default.nix
@@ -0,0 +1,15 @@
+{ cabal, blazeBuilder, filepath, HUnit, hxt, mtl, QuickCheck, text
+}:
+
+cabal.mkDerivation (self: {
+ pname = "xmlgen";
+ version = "0.6.2.0";
+ sha256 = "0b6fyg6mlm068f2jjmil52az4hk144pryf1c0wr1gx6ddx9yzjy4";
+ buildDepends = [ blazeBuilder mtl text ];
+ testDepends = [ filepath HUnit hxt QuickCheck text ];
+ meta = {
+ description = "Fast XML generation library";
+ license = self.stdenv.lib.licenses.bsd3;
+ platforms = self.ghc.meta.platforms;
+ };
+})
diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix
new file mode 100644
index 000000000000..b1aa03991bd9
--- /dev/null
+++ b/pkgs/development/libraries/jsoncpp/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, scons}:
+
+let
+ basename = "jsoncpp";
+ version = "0.6.0-rc2";
+ pkgname = "${basename}-src-${version}.tar.gz";
+in
+stdenv.mkDerivation rec {
+ name = "${basename}-${version}";
+ src = fetchurl {
+ url = "mirror://sourceforge/${basename}/${pkgname}";
+ sha256 = "10xj15nziqpwc6r3yznpb49wm4jqc5wakjsmj65v087mcg8r7lfl";
+ };
+
+ buildInputs = [ scons ];
+
+ buildPhase = ''
+ mkdir -p $out
+ scons platform=linux-gcc check
+ '';
+
+ installPhase = ''
+ cp -r include $out
+ cp -r libs/* $out/lib
+ '';
+
+ meta = {
+ homepage = http://jsoncpp.sourceforge.net;
+ repositories.svn = svn://svn.code.sf.net/p/jsoncpp/code;
+ description = "A simple API to manipulate JSON data in C++";
+ };
+}
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index 7856183e5e9b..da9e1dc31482 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -1,29 +1,41 @@
-args :
-let
- lib = args.lib;
- fetchurl = args.fetchurl;
+{stdenv, fetchurl,
+ libtool, libjpeg, openssl, libX11, libXdamage, xproto, damageproto,
+ xextproto, libXext, fixesproto, libXfixes, xineramaproto, libXinerama,
+ libXrandr, randrproto, libXtst, zlib
+}:
- version = lib.attrByPath ["version"] "0.9.9" args;
- buildInputs = with args; [
+assert stdenv.isLinux;
+
+let
+ s = # Generated upstream information
+ rec {
+ baseName="libvncserver";
+ version="0.9.9";
+ name="${baseName}-${version}";
+ hash="1y83z31wbjivbxs60kj8a8mmjmdkgxlvr2x15yz95yy24lshs1ng";
+ url="mirror://sourceforge/project/libvncserver/libvncserver/0.9.9/LibVNCServer-0.9.9.tar.gz";
+ sha256="1y83z31wbjivbxs60kj8a8mmjmdkgxlvr2x15yz95yy24lshs1ng";
+ };
+ buildInputs = [
libtool libjpeg openssl libX11 libXdamage xproto damageproto
xextproto libXext fixesproto libXfixes xineramaproto libXinerama
libXrandr randrproto libXtst zlib
];
in
-rec {
- src = fetchurl {
- url = "mirror://sourceforge/libvncserver/LibVNCServer-${version}.tar.gz";
- sha256 = "1y83z31wbjivbxs60kj8a8mmjmdkgxlvr2x15yz95yy24lshs1ng";
- };
-
+stdenv.mkDerivation {
+ inherit (s) name version;
inherit buildInputs;
- configureFlags = [];
-
- /* doConfigure should be specified separately */
- phaseNames = ["doConfigure" "doMakeInstall"];
-
- name = "libvncserver-" + version;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ preConfigure = ''
+ sed -e 's@/usr/include/linux@${stdenv.gcc.libc}/include/linux@g' -i configure
+ '';
meta = {
- description = "VNC server library";
+ inherit (s) version;
+ description = "VNC server library";
+ license = stdenv.lib.licenses.gpl2Plus ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
};
}
diff --git a/pkgs/development/libraries/libvncserver/default.upstream b/pkgs/development/libraries/libvncserver/default.upstream
new file mode 100644
index 000000000000..eae481974398
--- /dev/null
+++ b/pkgs/development/libraries/libvncserver/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libvncserver/files/libvncserver/
+SF_version_dir
+version_link '[.]tar[.][bgx]z[0-9]*/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 6b8fb898d90d..9cd094855d24 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -54,7 +54,6 @@ let
};
} merge ]); # poppler_drv
-in rec {
/* We always use cairo in poppler, so we always depend on glib,
so we always build the glib wrapper (~350kB).
We also always build the cpp wrapper (<100kB).
@@ -69,4 +68,5 @@ in rec {
NIX_LDFLAGS = "-lpoppler";
postConfigure = "cd qt4";
};
-}
+
+in { inherit poppler_glib poppler_qt4; } // poppler_glib
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index de8e1d1df1da..cb534cfbf313 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -1,7 +1,7 @@
x@{builderDefsPackage
, plib, freeglut, xproto, libX11, libXext, xextproto, libXi , inputproto
, libICE, libSM, libXt, libXmu, mesa, boost, zlib, libjpeg , freealut
- , openscenegraph, openal, expat, cmake
+ , openscenegraph, openal, expat, cmake, apr
, ...}:
builderDefsPackage
(a :
@@ -13,11 +13,11 @@ let
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="simgear";
- version="2.10.0";
+ version="2.12.0";
name="${baseName}-${version}";
extension="tar.bz2";
url="http://mirrors.ibiblio.org/pub/mirrors/simgear/ftp/Source/${name}.${extension}";
- hash="0pb148hb35p1c5iz0kpiclmswjl9bax9xfm087ldpxsqg9a0sb2q";
+ hash="0spl6afk8rm96ss4lh7zy5561m5m2qgwsnqjyp35jr1gyyrc944f";
};
in
rec {
diff --git a/pkgs/development/libraries/sodium/default.nix b/pkgs/development/libraries/sodium/default.nix
index 0d40df405744..13248753105f 100644
--- a/pkgs/development/libraries/sodium/default.nix
+++ b/pkgs/development/libraries/sodium/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="sodium";
- version="0.3";
+ version="0.4.3";
name="${baseName}-${version}";
- hash="0l1p0d7ag186hhs65kifp8jfgf4mm9rngv41bhq35d7d9gw2d2lh";
- url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.3.tar.gz";
- sha256="0l1p0d7ag186hhs65kifp8jfgf4mm9rngv41bhq35d7d9gw2d2lh";
+ hash="0hk0zca1kpj6xlc2j2qx9qy7287pi0896frmxq5d7qmcwsdf372r";
+ url="http://download.dnscrypt.org/libsodium/releases/libsodium-0.4.3.tar.gz";
+ sha256="0hk0zca1kpj6xlc2j2qx9qy7287pi0896frmxq5d7qmcwsdf372r";
};
buildInputs = [
];
diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix
index c615573ae3ec..48b49ee3583b 100644
--- a/pkgs/development/lisp-modules/asdf/default.nix
+++ b/pkgs/development/lisp-modules/asdf/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="asdf";
- version="3.0.2.1";
+ version="3.0.2.4";
name="${baseName}-${version}";
- hash="1npd4dxsgk06ayhln56mwwky0vdpf7i77mkxfh105pld8w5xs4r4";
- url="http://common-lisp.net/project/asdf/archives/asdf-3.0.2.1.tar.gz";
- sha256="1npd4dxsgk06ayhln56mwwky0vdpf7i77mkxfh105pld8w5xs4r4";
+ hash="0b6rkpghw2vndvmgyacijdn3d76ykbjfwpxwv8m0jl7ynrf6l5ag";
+ url="http://common-lisp.net/project/asdf/archives/asdf-3.0.2.4.tar.gz";
+ sha256="0b6rkpghw2vndvmgyacijdn3d76ykbjfwpxwv8m0jl7ynrf6l5ag";
};
buildInputs = [
texinfo texLive
diff --git a/pkgs/development/tools/haskell/HaRe/default.nix b/pkgs/development/tools/haskell/HaRe/default.nix
index 1ef60e7950d0..f7d67f4be666 100644
--- a/pkgs/development/tools/haskell/HaRe/default.nix
+++ b/pkgs/development/tools/haskell/HaRe/default.nix
@@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "HaRe";
- version = "0.7.0.6";
- sha256 = "0i2zl08rg7777jarw2v3797v0va80h7bg166wfq9lzynz9vqsima";
+ version = "0.7.0.7";
+ sha256 = "0pgl5mav4sqc453by7nddf5fz7nj231072bklzj6crcph7qw4zy4";
isLibrary = true;
isExecutable = true;
buildDepends = [
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index 63c585b00a95..3978d96400cd 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="cl-launch";
- version="3.21.1";
+ version="3.22.1";
name="${baseName}-${version}";
- hash="1241lyn2a3ry06ii9zlns0cj462bi7rih41vlbbmra1chj4c21ij";
- url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-3.21.1.tar.gz";
- sha256="1241lyn2a3ry06ii9zlns0cj462bi7rih41vlbbmra1chj4c21ij";
+ hash="08lb8nm4dvkbgraqclw5xd7j6xskw9hgjpg9ql087gib5a90k09i";
+ url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-3.22.1.tar.gz";
+ sha256="08lb8nm4dvkbgraqclw5xd7j6xskw9hgjpg9ql087gib5a90k09i";
};
buildInputs = [
];
diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix
index 7681c8153dbb..d905d078d40b 100644
--- a/pkgs/development/tools/misc/luarocks/default.nix
+++ b/pkgs/development/tools/misc/luarocks/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="luarocks";
- version="2.0.13-rc1";
+ version="2.1.0";
name="${baseName}-${version}";
- hash="1cpdi61dwcc2i4bwrn7bb8fibkd1s75jrr0bjcbs8p76rn6hkb2y";
- url="http://luarocks.org/releases/luarocks-2.0.13-rc1.tar.gz";
- sha256="1cpdi61dwcc2i4bwrn7bb8fibkd1s75jrr0bjcbs8p76rn6hkb2y";
+ hash="12aqwchzn77yin2ahpxnc3lam5w0xhksrnhf31n3r7cxdsfh446c";
+ url="http://luarocks.org/releases/luarocks-2.1.0-rc3.tar.gz";
+ sha256="12aqwchzn77yin2ahpxnc3lam5w0xhksrnhf31n3r7cxdsfh446c";
};
buildInputs = [
lua curl
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index 31f81cbf3af0..1bb8fca0ecff 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses perl xz ];
preInstall = ''
- installFlags="TEXMF=$out/texmf";
+ installFlags="TEXMF=$out/texmf-dist";
installTargets="install install-tex";
'';
diff --git a/pkgs/development/tools/misc/xc3sprog/default.nix b/pkgs/development/tools/misc/xc3sprog/default.nix
new file mode 100644
index 000000000000..52471c30fd07
--- /dev/null
+++ b/pkgs/development/tools/misc/xc3sprog/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchsvn, cmake, libusb, libftdi }:
+
+# The xc3sprog project doesn't seem to make proper releases, they only put out
+# prebuilt binary subversion snapshots on sourceforge.
+
+stdenv.mkDerivation rec {
+ version = "748"; # latest @ 2013-10-26
+ name = "xc3sprog-${version}";
+
+ src = fetchsvn rec {
+ url = "https://svn.code.sf.net/p/xc3sprog/code/trunk";
+ sha256 = "0wkz6094kkqz91qpa24pzlbhndc47sjmqhwk3p7ccabv0041rzk0";
+ rev = "${version}";
+ };
+
+ buildInputs = [ cmake libusb libftdi ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line tools for programming FPGAs, microcontrollers and PROMs via JTAG";
+ homepage = http://xc3sprog.sourceforge.net/;
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix
new file mode 100644
index 000000000000..23aae157f093
--- /dev/null
+++ b/pkgs/development/tools/slimerjs/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, unzip, xulrunner, bash}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="slimerjs";
+ version="0.8.3";
+ name="${baseName}-${version}";
+ hash="07gwiay2pbzyscn8gnwb8i92xffjahhinlswc1z4h8dbjk837d8h";
+ url="http://download.slimerjs.org/v0.8/slimerjs-0.8.3.zip";
+ sha256="07gwiay2pbzyscn8gnwb8i92xffjahhinlswc1z4h8dbjk837d8h";
+ };
+ buildInputs = [
+ unzip
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/doc/slimerjs,lib/slimerjs}
+ cp LICENSE README* "$out/share/doc/slimerjs"
+ cp * "$out/lib/slimerjs"
+ echo '#!${bash}/bin/bash' >> "$out/bin/slimerjs"
+ echo 'export SLIMERJSLAUNCHER=${xulrunner}/bin/xulrunner' >> "$out/bin/slimerjs"
+ echo "'$out/lib/slimerjs/slimerjs' \"\$@\"" >> "$out/bin/slimerjs"
+ chmod a+x "$out/bin/slimerjs"
+ '';
+ meta = {
+ inherit (s) version;
+ description = ''Gecko-based programmatically-driven browser'';
+ license = stdenv.lib.licenses.mpl20 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/development/tools/slimerjs/default.upstream b/pkgs/development/tools/slimerjs/default.upstream
new file mode 100644
index 000000000000..f2d6b89e51b4
--- /dev/null
+++ b/pkgs/development/tools/slimerjs/default.upstream
@@ -0,0 +1,2 @@
+url http://slimerjs.org/download.html
+version_link '/slimerjs-[0-9.]+[.]zip$'
diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix
index 856d9afe0f92..d9852971adfc 100644
--- a/pkgs/games/alienarena/default.nix
+++ b/pkgs/games/alienarena/default.nix
@@ -2,11 +2,11 @@
, libvorbis, freetype, openal, mesa }:
stdenv.mkDerivation rec {
- name = "alienarena-7.52";
+ name = "alienarena-7.65";
src = fetchurl {
- url = "http://icculus.org/alienarena/Files/alienarena-7_52-linux20110929.tar.gz";
- sha256 = "1s1l3apxsxnd8lyi568y38a1fcdr0gwmc3lkgq2nkc676k4gki3m";
+ url = "http://icculus.org/alienarena/Files/alienarena-7.65-linux20130207.tar.gz";
+ sha256 = "03nnv4m2xmswr0020hssajncdb8sy95jp5yccsm53sgxga4r8igg";
};
buildInputs = [ pkgconfig libjpeg libX11 curl libogg libvorbis
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
patchPhase = ''
substituteInPlace ./configure \
- --replace libopenal.so.1 ${openal}/lib/libopenal.so.1
+ --replace libopenal.so.1 ${openal}/lib/libopenal.so.1 \
+ --replace libGL.so.1 ${mesa}/lib/libGL.so.1
'';
meta = {
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index 9b9e7ab96806..71183d0ea2ad 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -1,58 +1,63 @@
-x@{builderDefsPackage
- , freeglut, freealut, mesa, libICE, libjpeg, openal, openscenegraph, plib
- , libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
- , libXmu, libXt, simgear, zlib, boost, cmake, libpng
- , ...}:
-builderDefsPackage
-(a :
-let
- helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
- [];
+{ stdenv, fetchurl
+, freeglut, freealut, mesa, libICE, libjpeg, openal, openscenegraph, plib
+, libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
+, libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
+, makeDesktopItem
+}:
- buildInputs = map (n: builtins.getAttr n x)
- (builtins.attrNames (builtins.removeAttrs x helperArgNames));
- sourceInfo = rec {
- baseName="flightgear";
- version="2.10.0";
- name="${baseName}-${version}";
- extension="tar.bz2";
- url="http://ftp.linux.kiev.ua/pub/fgfs/Source/${name}.${extension}";
- hash="0pq5nwyxwp8ar5rr0jh8p04bv0i9i841m374jwd748csnsn28zh6";
- };
-in
-rec {
- src = a.fetchurl {
- url = sourceInfo.url;
- sha256 = sourceInfo.hash;
+stdenv.mkDerivation rec {
+ version = "2.12.0";
+ name = "flightgear-${version}";
+
+ src = fetchurl {
+ url = "http://ftp.linux.kiev.ua/pub/fgfs/Source/${name}.tar.bz2";
+ sha256 = "0h9ka4pa2njxbvy5jlmnsjy5ynzms504ygqn7hd80g3c58drsjc4";
};
- datasrc = a.fetchurl {
- url = "http://ftp.igh.cnrs.fr/pub/flightgear/ftp/Shared/FlightGear-data-2.0.0.tar.bz2";
- sha256 = "0kvmvh5qycbpdjx12l20cbhljwimmcgww2dg4lkc2sky0kg14ic1";
+ datasrc = fetchurl {
+ url = "http://ftp.igh.cnrs.fr/pub/flightgear/ftp/Shared/FlightGear-data-${version}.tar.bz";
+ sha256 = "0qjvcj2cz7ypa91v95lws44fg8c1p0pazv24ljkai2m2r0jgsv8k";
};
- inherit (sourceInfo) name version;
- inherit buildInputs;
+ # Of all the files in the source and data archives, there doesn't seem to be
+ # a decent icon :-)
+ iconsrc = fetchurl {
+ url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png";
+ sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
+ };
- /* doConfigure should be removed if not needed */
- phaseNames = ["doCmake" "doMakeInstall" "deployData"];
+ desktopItem = makeDesktopItem {
+ name = "flightgear";
+ exec = "fgfs";
+ icon = "${iconsrc}";
+ comment = "FlightGear Flight Simulator";
+ desktopName = "FlightGear";
+ genericName = "Flight simulator";
+ categories = "Game;Simulation";
+ };
- deployData = a.fullDepEntry ''
+ buildInputs = [
+ freeglut freealut mesa libICE libjpeg openal openscenegraph plib
+ libSM libunwind libX11 xproto libXext xextproto libXi inputproto
+ libXmu libXt simgear zlib boost cmake libpng udev fltk13 apr
+ ];
+
+ preConfigure = ''
+ export cmakeFlagsArray=(-DFG_DATA_DIR="$out/share/FlightGear/")
+ '';
+
+ postInstall = ''
mkdir -p "$out/share/FlightGear"
- cd "$out/share/FlightGear"
- tar xvf ${datasrc}
- '' ["minInit" "defEnsureDir"];
+ tar xvf "${datasrc}" -C "$out/share/FlightGear/" --strip-components=1
- meta = {
- description = "A flight simulator";
- maintainers = with a.lib.maintainers;
- [
- raskin
- ];
- #platforms = a.lib.platforms.linux;
- license = a.lib.licenses.gpl2;
- };
- passthru = {
- };
-}) x
+ mkdir -p "$out/share/applications/"
+ cp "${desktopItem}"/share/applications/* "$out/share/applications/"
+ '';
+ meta = with stdenv.lib; {
+ description = "Flight simulator";
+ maintainers = with maintainers; [ raskin ];
+ #platforms = platforms.linux; # disabled from hydra because it's so big
+ license = licenses.gpl2;
+ };
+}
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index de62b4a669a2..ac1fc7395ae2 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, bzip2, pkgconfig
+{ stdenv, fetchurl, zlib, bzip2, pkgconfig, curl, lzma, gettext
, sdlClient ? true, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype
, gtkClient ? false, gtk
, server ? true, readline }:
@@ -6,18 +6,23 @@
let
inherit (stdenv.lib) optional optionals;
client = sdlClient || gtkClient;
+
+ sdlName = if sdlClient then "-sdl" else "";
+ gtkName = if gtkClient then "-gtk" else "";
+
+ baseName = "freeciv-2.4.0";
in
-stdenv.mkDerivation rec {
- name = "freeciv-2.3.1";
+stdenv.mkDerivation {
+ name = baseName + sdlName + gtkName;
src = fetchurl {
- url = "mirror://sourceforge/freeciv/${name}.tar.bz2";
- sha256 = "1n3ak0y9hj9kha0r3cdbi8zb47vrgal1jsbblamqgwwwgzy8cri3";
+ url = "mirror://sourceforge/freeciv/${baseName}.tar.bz2";
+ sha256 = "1bc01pyihsrby6w95n49gi90ggp40dyxsy4kmlmwcakxfxprwakv";
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ zlib bzip2 ]
+ buildInputs = [ zlib bzip2 curl lzma gettext ]
++ optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype ]
++ optional gtkClient gtk
++ optional server readline;
diff --git a/pkgs/games/gsb/default.nix b/pkgs/games/gsb/default.nix
new file mode 100644
index 000000000000..52c3830c22a4
--- /dev/null
+++ b/pkgs/games/gsb/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, config, requireFile
+, curl3, SDL, SDL_image, libpng12, libjpeg62, libvorbis, libogg, openal, mesa
+, libX11, libXext, libXft, fontconfig, zlib }:
+
+assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
+
+stdenv.mkDerivation rec {
+ name = "gsb-1.56.0";
+
+ goBuyItNow = ''
+ We cannot download the full version automatically, as you require a license.
+ Once you bought a license, you need to add your downloaded version to the nix store.
+ You can do this by using "nix-prefetch-url file://gsb1324679796.tar.gz" in the
+ directory where you saved it.
+ '';
+
+ src = requireFile {
+ message = goBuyItNow;
+ name = "gsb1324679796.tar.gz";
+ sha256 = "12jsz9v55w9zxwiz4kbm6phkv60q3c2kyv5imsls13385pzwcs8i";
+ };
+
+ arch = if stdenv.system == "i686-linux" then "x86" else "x86_64";
+
+ phases = "unpackPhase installPhase";
+
+ # XXX: stdenv.lib.makeLibraryPath doesn't pick up /lib64
+ libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc stdenv.gcc.libc ]
+ + ":" + stdenv.lib.makeLibraryPath [ SDL SDL_image libjpeg62 libpng12 mesa ]
+ + ":" + stdenv.lib.makeLibraryPath [ curl3 openal libvorbis libogg ]
+ + ":" + stdenv.lib.makeLibraryPath [ libX11 libXext libXft fontconfig zlib ]
+ + ":" + stdenv.gcc.gcc + "/lib64";
+
+ installPhase = ''
+ ensureDir $out/libexec/positech/GSB/
+ ensureDir $out/bin
+
+ patchelf \
+ --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+ --set-rpath $libPath \
+ ./GSB.bin.$arch
+
+ cp -r * $out/libexec/positech/GSB/
+ rm -rf $out/libexec/positech/GSB/lib64/
+ rm -rf $out/libexec/positech/GSB/lib/
+
+ #makeWrapper doesn't do cd. :(
+
+ cat > $out/bin/GSB << EOF
+ #!/bin/sh
+ cd $out/libexec/positech/GSB
+ exec ./GSB.bin.$arch
+ EOF
+ chmod +x $out/bin/GSB
+ '';
+
+ meta = {
+ description = "Gratuitous Space Battles";
+ longDescription = ''
+ a strategy / management / simulation game that does away with all the
+ base building and delays and gets straight to the meat and potatoes of
+ science-fiction games : The big space battles fought by huge spaceships with
+ tons of laser beams and things going 'zap!', 'ka-boom!' and 'ka-pow!'. In GSB
+ you put your ships together from modular components, arrange them into fleets,
+ give your ships orders of engagement and then hope they emerge victorious from
+ battle (or at least blow to bits in aesthetically pleasing ways).
+ '';
+ homepage = http://www.positech.co.uk/gratuitousspacebattles/index.html;
+ license = [ "unfree" ];
+ maintainers = with stdenv.lib.maintainers; [ jcumming ];
+ platforms = [ "x86_64-linux" "i686-linux" ] ;
+ };
+
+}
diff --git a/pkgs/games/residualvm/default.nix b/pkgs/games/residualvm/default.nix
new file mode 100644
index 000000000000..36c40f9bec5e
--- /dev/null
+++ b/pkgs/games/residualvm/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsaLib
+, openglSupport ? false, mesa ? null
+}:
+
+assert openglSupport -> mesa != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "0.1.1";
+ name = "residualvm-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/residualvm/residualvm-${version}-sources.tar.bz2";
+ sha256 = "99c419b13885a49bdfc10a50a3a6000fd1ba9504f6aae04c74b840ec6f57a963";
+ };
+
+ buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsaLib ]
+ ++ optional openglSupport [ mesa ];
+
+ configureFlags="--enable-all-engines";
+
+ meta = {
+ description = "Interpreter for LucasArts' Lua-based 3D adventure games";
+ homepage = http://residualvm.org/;
+ repositories.git = https://github.com/residualvm/residualvm.git;
+ licencse = licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index ff99b428cef7..8bec0f7b1a95 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -14,7 +14,7 @@ let
baseName="sauerbraten";
version="3331";
name="${baseName}-r${version}";
- url="https://sauerbraten.svn.sourceforge.net/svnroot/sauerbraten";
+ url="https://svn.code.sf.net/p/sauerbraten/code";
hash="0904hk9rz2x941c9587bfxa4rca81260j3m2hjjrp984w67x2w7y";
};
in
diff --git a/pkgs/games/xboard/default.nix b/pkgs/games/xboard/default.nix
index 7e73bfad5403..454112638768 100644
--- a/pkgs/games/xboard/default.nix
+++ b/pkgs/games/xboard/default.nix
@@ -5,11 +5,11 @@ let
s = # Generated upstream information
rec {
baseName="xboard";
- version="4.7.1";
+ version="4.7.2";
name="${baseName}-${version}";
- hash="0hnav2swswaf0463c4wnmgwaif3g42f2a1mqyqc5fa1py32iy6ry";
- url="mirror://gnu/xboard/xboard-4.7.1.tar.gz";
- sha256="0hnav2swswaf0463c4wnmgwaif3g42f2a1mqyqc5fa1py32iy6ry";
+ hash="1vm95fjp3pkvvjvamfs7zqw4l4b4v7v52h2npvf9j5059fckcrwv";
+ url="http://ftp.gnu.org/gnu/xboard/xboard-4.7.2.tar.gz";
+ sha256="1vm95fjp3pkvvjvamfs7zqw4l4b4v7v52h2npvf9j5059fckcrwv";
};
buildInputs = [
libX11 xproto libXt libXaw libSM libICE libXmu
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/stable.nix
similarity index 89%
rename from pkgs/misc/emulators/wine/default.nix
rename to pkgs/misc/emulators/wine/stable.nix
index 4e6ef5af00db..9c1f7fd24ae0 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/stable.nix
@@ -6,7 +6,16 @@
assert stdenv.isLinux;
assert stdenv.gcc.gcc != null;
-let gecko = fetchurl {
+let
+ version = "1.6";
+ name = "wine-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/wine/${name}.tar.bz2";
+ sha256 = "1bj21d94i0mqvkmzxd4971232yniribk7q3fllf23ynbpppk1wg1";
+ };
+
+ gecko = fetchurl {
url = "mirror://sourceforge/wine/wine_gecko-2.21-x86.msi";
sha256 = "1n0zccnvchkg0m896sjx5psk4bxw9if32xyxib1rbfdasykay7zh";
};
@@ -22,13 +31,7 @@ let gecko = fetchurl {
};
in stdenv.mkDerivation rec {
- version = "1.6";
- name = "wine-${version}";
-
- src = fetchurl {
- url = "mirror://sourceforge/wine/${name}.tar.bz2";
- sha256 = "1bj21d94i0mqvkmzxd4971232yniribk7q3fllf23ynbpppk1wg1";
- };
+ inherit version name src;
buildInputs = [
xlibs.xlibs flex bison xlibs.libXi mesa
diff --git a/pkgs/misc/emulators/wine/stable.upstream b/pkgs/misc/emulators/wine/stable.upstream
new file mode 100644
index 000000000000..b5913798a886
--- /dev/null
+++ b/pkgs/misc/emulators/wine/stable.upstream
@@ -0,0 +1,8 @@
+url http://sourceforge.net/projects/wine/files/Source/
+version_link '[-][0-9]+[.][0-9]*[24680][.]([0-9]+[.])*tar[.][^./]+/download$'
+SF_redirect
+do_overwrite () {
+ ensure_hash
+ set_var_value version "$CURRENT_VERSION"
+ set_var_value sha256 "$CURRENT_HASH"
+}
diff --git a/pkgs/misc/emulators/wine/unstable.nix b/pkgs/misc/emulators/wine/unstable.nix
new file mode 100644
index 000000000000..02ce076ce0fd
--- /dev/null
+++ b/pkgs/misc/emulators/wine/unstable.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, xlibs, flex, bison, mesa, alsaLib
+, ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
+, libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper
+}:
+
+assert stdenv.isLinux;
+assert stdenv.gcc.gcc != null;
+
+let
+ version = "1.7.4";
+ name = "wine-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/wine/${name}.tar.bz2";
+ sha256 = "0sb9zfrvlrjx1icfb94clgac239i9yfhyv48zv9iddgmvdjk8ysi";
+ };
+
+ gecko = fetchurl {
+ url = "mirror://sourceforge/wine/wine_gecko-2.21-x86.msi";
+ sha256 = "1n0zccnvchkg0m896sjx5psk4bxw9if32xyxib1rbfdasykay7zh";
+ };
+
+ gecko64 = fetchurl {
+ url = "mirror://sourceforge/wine/wine_gecko-2.21-x86_64.msi";
+ sha256 = "0grc86dkq90i59zw43hakh62ra1ajnk11m64667xjrlzi7f0ndxw";
+ };
+
+ mono = fetchurl {
+ url = "mirror://sourceforge/wine/wine-mono-0.0.8.msi";
+ sha256 = "00jl24qp7vh3hlqv7wsw1s529lr5p0ybif6s73jy85chqaxj7z1x";
+ };
+
+in stdenv.mkDerivation rec {
+ inherit version name src;
+
+ buildInputs = [
+ xlibs.xlibs flex bison xlibs.libXi mesa
+ xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr
+ xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite
+ alsaLib ncurses libpng libjpeg lcms fontforge
+ libxml2 libxslt openssl gnutls cups makeWrapper
+ ];
+
+ # Wine locates a lot of libraries dynamically through dlopen(). Add
+ # them to the RPATH so that the user doesn't have to set them in
+ # LD_LIBRARY_PATH.
+ NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
+ freetype fontconfig stdenv.gcc.gcc mesa libdrm
+ xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
+ xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
+ openssl gnutls cups
+ ];
+
+ # Don't shrink the ELF RPATHs in order to keep the extra RPATH
+ # elements specified above.
+ dontPatchELF = true;
+
+ postInstall = ''
+ install -D ${gecko} $out/share/wine/gecko/${gecko.name}
+ '' + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") ''
+ install -D ${gecko} $out/share/wine/gecko/${gecko64.name}
+ '' + ''
+ install -D ${mono} $out/share/wine/mono/${mono.name}
+ wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "http://www.winehq.org/";
+ license = "LGPL";
+ inherit version;
+ description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
+ maintainers = [stdenv.lib.maintainers.raskin stdenv.lib.maintainers.simons];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/misc/emulators/wine/default.upstream b/pkgs/misc/emulators/wine/unstable.upstream
similarity index 88%
rename from pkgs/misc/emulators/wine/default.upstream
rename to pkgs/misc/emulators/wine/unstable.upstream
index e23f341c28a2..e3616df76802 100644
--- a/pkgs/misc/emulators/wine/default.upstream
+++ b/pkgs/misc/emulators/wine/unstable.upstream
@@ -1,4 +1,5 @@
url http://sourceforge.net/projects/wine/files/Source/
+attribute_name wine_unstable
version_link '[.]tar[.][^./]+/download$'
SF_redirect
do_overwrite () {
diff --git a/pkgs/misc/my-env/default.nix b/pkgs/misc/my-env/default.nix
index ac2dc7f8cda5..1c0dc0cbfe9b 100644
--- a/pkgs/misc/my-env/default.nix
+++ b/pkgs/misc/my-env/default.nix
@@ -59,7 +59,7 @@
{ mkDerivation, substituteAll, pkgs }:
{ stdenv ? pkgs.stdenv, name, buildInputs ? []
, propagatedBuildInputs ? [], gcc ? stdenv.gcc, cTags ? [], extraCmds ? ""
- , cleanupCmds ? "", shell ? "${pkgs.bashInteractive}/bin/bash"}:
+ , cleanupCmds ? "", shell ? "${pkgs.bashInteractive}/bin/bash --norc"}:
mkDerivation {
# The setup.sh script from stdenv will expect the native build inputs in
@@ -146,8 +146,8 @@ mkDerivation {
EOF
mkdir -p $out/bin
- sed -e s,@shell@,${shell}, -e s,@myenvpath@,$out/dev-envs/${name}, \
- -e s,@name@,${name}, ${./loadenv.sh} > $out/bin/load-env-${name}
+ sed -e 's,@shell@,${shell},' -e s,@myenvpath@,$out/dev-envs/${name}, \
+ -e 's,@name@,${name},' ${./loadenv.sh} > $out/bin/load-env-${name}
chmod +x $out/bin/load-env-${name}
'';
}
diff --git a/pkgs/misc/my-env/loadenv.sh b/pkgs/misc/my-env/loadenv.sh
index 5d126f0c29bb..6752d1c03b5f 100644
--- a/pkgs/misc/my-env/loadenv.sh
+++ b/pkgs/misc/my-env/loadenv.sh
@@ -10,5 +10,5 @@ export buildInputs
export NIX_STRIP_DEBUG=0
export TZ="$OLDTZ"
-@shell@ --norc
+@shell@
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index af4363f9217e..b17b8490a0b1 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, python, cmake, vim, perl, ruby, unzip }:
+{ fetchurl, stdenv, python, cmake, vim, perl, ruby, unzip, which }:
/*
About Vim and plugins
@@ -90,14 +90,13 @@ let vimHelpTags = ''
installPhase = ''
target=$out/vim-plugins/$path
ensureDir $out/vim-plugins
- ls -l
cp -r . $target
${vimHelpTags}
vimHelpTags $target
'';
});
-in
+in rec
{
@@ -251,4 +250,61 @@ in
path = "xdebug";
postInstall = false;
};
+
+ vimshell = simpleDerivation rec {
+ version = "9.2";
+ name = "vimshell-${version}";
+
+ meta = with stdenv.lib; {
+ description = "An extreme shell that doesn't depend on external shells and is written completely in Vim script";
+ homepage = https://github.com/Shougo/vimshell.vim;
+ repositories.git = https://github.com/Shougo/vimshell.vim.git;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ lovek323 ];
+ platforms = platforms.unix;
+ };
+
+ src = fetchurl {
+ url = "https://github.com/Shougo/vimshell.vim/archive/ver.${version}.tar.gz";
+ sha256 = "1pbwxdhpv6pr09b6hwkgy7grpmpwlqpsgsawl38r40q6yib8zb4a";
+ };
+
+ buildInputs = [ vimproc ];
+
+ preBuild = ''
+ sed -ie '1 i\
+ set runtimepath+=${vimproc}/vim-plugins/vimproc\
+ ' autoload/vimshell.vim
+ '';
+
+ path = "vimshell";
+ };
+
+ vimproc = simpleDerivation rec {
+ version = "5cf4c6bfe9bf0649159b5648d736d54c96e99b3e";
+ name = "vimproc-${version}";
+
+ meta = with stdenv.lib; {
+ description = "An asynchronous execution library for Vim";
+ homepage = https://github.com/Shougo/vimproc.vim;
+ repositories.git = https://github.com/Shougo/vimproc.vim.git;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ lovek323 ];
+ platforms = platforms.unix;
+ };
+
+ src = fetchurl {
+ url = "${meta.homepage}/archive/${version}.tar.gz";
+ sha256 = "0f76mc7v3656sf9syaq1rxzk3dqz6i5w190wgj15sjjnapzd956p";
+ };
+
+ buildInputs = [ which ];
+
+ buildPhase = ''
+ sed -i 's/vimproc_mac\.so/vimproc_unix\.so/' autoload/vimproc.vim
+ make -f make_unix.mak
+ '';
+
+ path = "vimproc";
+ };
}
diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix
new file mode 100644
index 000000000000..44689cd5d62d
--- /dev/null
+++ b/pkgs/os-specific/linux/conspy/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, autoconf, automake, ncurses}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="conspy";
+ version="1.8";
+ name="${baseName}-${version}";
+ hash=sha256;
+ url="http://ace-host.stuart.id.au/russell/files/conspy/conspy-1.8.tar.gz";
+ sha256="1jc2maqp4w4mzlr3s8yni03w1p9sir5hb7gha3ffxj4n32nx42dq";
+ };
+ buildInputs = [
+ autoconf automake ncurses
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ curlOpts = " -A application/octet-stream ";
+ };
+ preConfigure = ''
+ touch NEWS
+ echo "EPL 1.0" > COPYING
+ aclocal
+ automake --add-missing
+ autoconf
+ '';
+ meta = {
+ inherit (s) version;
+ description = "Linux text console viewer";
+ license = stdenv.lib.licenses.epl10 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/os-specific/linux/conspy/default.upstream b/pkgs/os-specific/linux/conspy/default.upstream
new file mode 100644
index 000000000000..db0c0fd96802
--- /dev/null
+++ b/pkgs/os-specific/linux/conspy/default.upstream
@@ -0,0 +1 @@
+url http://ace-host.stuart.id.au/russell/files/conspy/
diff --git a/pkgs/os-specific/linux/forktty/default.nix b/pkgs/os-specific/linux/forktty/default.nix
new file mode 100644
index 000000000000..6402b5c69d82
--- /dev/null
+++ b/pkgs/os-specific/linux/forktty/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="forktty";
+ version="1.3";
+ name="${baseName}-${version}";
+ hash="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
+ url="http://sunsite.unc.edu/pub/linux/utils/terminal/forktty-1.3.tgz";
+ sha256="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
+ };
+ buildInputs = [
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ preBuild = ''
+ sed -e s@/usr/bin/ginstall@install@g -i Makefile
+ '';
+ preInstall = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/share/man/man8"
+ '';
+ makeFlags='' prefix="''${out}" manprefix="''${out}/share/" '';
+ meta = {
+ inherit (s) version;
+ description = ''Tool to detach from controlling TTY and attach to another'';
+ license = stdenv.lib.licenses.gpl2 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/os-specific/linux/forktty/default.upstream b/pkgs/os-specific/linux/forktty/default.upstream
new file mode 100644
index 000000000000..45cb775a0ae3
--- /dev/null
+++ b/pkgs/os-specific/linux/forktty/default.upstream
@@ -0,0 +1,2 @@
+url http://sunsite.unc.edu/pub/linux/utils/terminal/
+version_link 'forktty.*tgz'
diff --git a/pkgs/os-specific/linux/gfxtablet/default.nix b/pkgs/os-specific/linux/gfxtablet/default.nix
new file mode 100644
index 000000000000..394defdb19ae
--- /dev/null
+++ b/pkgs/os-specific/linux/gfxtablet/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchgit, linuxHeaders}:
+let
+ s = # Generated upstream information
+ rec {
+ version="git-2013-10-21";
+ name = "gfxtablet-uinput-driver-${version}";
+ rev = "c4e337ae0b53a8ccdfe11b904ff129714bd25ec4";
+ sha256 = "19d96r2vw9xv82fnfwdyyyf0fja6n06mgg14va996knsn2x5l4la";
+ url = "https://github.com/rfc2822/GfxTablet.git";
+ };
+ buildInputs = [
+ linuxHeaders
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchgit {
+ inherit (s) url sha256 rev;
+ };
+ preBuild = ''cd driver-uinput'';
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp networktablet "$out/bin"
+ mkdir -p "$out/share/doc/gfxtablet/"
+ cp ../*.md "$out/share/doc/gfxtablet/"
+ '';
+ meta = {
+ inherit (s) version;
+ description = ''Uinput driver for Android GfxTablet tablet-as-input-device app'';
+ license = stdenv.lib.licenses.mit ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-3.11.nix b/pkgs/os-specific/linux/kernel/linux-3.11.nix
index 6a3320669a51..6531895d8a7b 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.11.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.11.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
- version = "3.11.4";
+ version = "3.11.6";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
- sha256 = "1kv6j7mc5r5qw43kirc0fv83khpnwy8m7158qf8ar08p3r01i3mi";
+ sha256 = "0klbyx6qy3ifwrwh5w7yzk6m6jd32flkk73z95bih3ihmbnbzlvs";
};
features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index d37ca172479d..47393b0ae744 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
- version = "3.4.66";
+ version = "3.4.67";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
- sha256 = "09jrj989mqk76klrg5zq1z8qrx3gif69bqi78ywq3jky8dmrwz3y";
+ sha256 = "1ndzlwhxvlm4lr86240h3ysxhmdkgdcp0n6qhid5nwrmxf5fpb1d";
};
features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 73533104ca9a..5bda5b1f263c 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -134,9 +134,11 @@ rec {
grsecurity_2_9_1_3_2_51 =
{ name = "grsecurity-2.9.1-3.2.51";
patch = fetchurl {
- url = http://grsecurity.net/stable/grsecurity-2.9.1-3.2.51-201309101928.patch;
- sha256 = "90f9ddc74d56f4525b8faa8505a95f45c23a2e763c7519ba5ae953069a51aca2";
+ url = http://grsecurity.net/stable/grsecurity-2.9.1-3.2.51-201309281102.patch;
+ sha256 = "0mwwdmccihzhl25c9q92x0k33c5kxbz6mikid9diramvki7sk0l8";
};
+ # The grsec kernel patch seems to include the apparmor patches as of 2.9.1-3.2.51
+ features.apparmor = true;
};
}
diff --git a/pkgs/os-specific/linux/ttysnoop/default.nix b/pkgs/os-specific/linux/ttysnoop/default.nix
new file mode 100644
index 000000000000..670c96083443
--- /dev/null
+++ b/pkgs/os-specific/linux/ttysnoop/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="ttysnoop";
+ version="0.12d.k26";
+ name="${baseName}-${version}";
+ hash="0jb2zchaiqmmickj0la7wjw3sf9vy65qfhhs11yrzx4mmwkp0395";
+ url="http://sysd.org/stas/files/active/0/ttysnoop-0.12d.k26.tar.gz";
+ sha256="0jb2zchaiqmmickj0la7wjw3sf9vy65qfhhs11yrzx4mmwkp0395";
+ };
+ buildInputs = [
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ preBuild = ''
+ sed -e "s@/sbin@$out/sbin@g" -i Makefile
+ sed -e "s@/usr/man@$out/share/man@g" -i Makefile
+ mkdir -p "$out/share/man/man8"
+ mkdir -p "$out/sbin"
+ '';
+ postInstall = ''
+ mkdir -p "$out/etc"
+ cp snooptab.dist "$out/etc/snooptab"
+ '';
+ meta = {
+ inherit (s) version;
+ description = "A tool to clone input and output of another tty/pty to the current one";
+ license = stdenv.lib.licenses.gpl2 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/os-specific/linux/ttysnoop/default.upstream b/pkgs/os-specific/linux/ttysnoop/default.upstream
new file mode 100644
index 000000000000..905a639c31e7
--- /dev/null
+++ b/pkgs/os-specific/linux/ttysnoop/default.upstream
@@ -0,0 +1,3 @@
+url http://sysd.org/stas/node/35
+ensure_choice
+version '.*-([0-9a-z.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix
index 8e77d07e5c59..28390aa38da0 100644
--- a/pkgs/servers/http/nginx/default.nix
+++ b/pkgs/servers/http/nginx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, expat, fullWebDAV ? false }:
+{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, expat, fullWebDAV ? false, syslog ? false }:
let
dav-ext = fetchgit {
@@ -6,6 +6,12 @@ let
rev = "54cebc1f21fc13391aae692c6cce672fa7986f9d";
sha256 = "1dvpq1fg5rslnl05z8jc39sgnvh3akam9qxfl033akpczq1bh8nq";
};
+
+ syslog-ext = fetchgit {
+ url = https://github.com/yaoweibin/nginx_syslog_patch.git;
+ rev = "165affd9741f0e30c4c8225da5e487d33832aca3";
+ sha256 = "14dkkafjnbapp6jnvrjg9ip46j00cr8pqc2g7374z9aj7hrvdvhs";
+ };
in
stdenv.mkDerivation rec {
@@ -18,6 +24,8 @@ stdenv.mkDerivation rec {
buildInputs = [ openssl zlib pcre libxml2 libxslt ] ++ stdenv.lib.optional fullWebDAV expat;
+ patches = if syslog then [ "${syslog-ext}/syslog_1.4.0.patch" ] else [];
+
configureFlags = [
"--with-http_ssl_module"
"--with-http_xslt_module"
@@ -27,7 +35,8 @@ stdenv.mkDerivation rec {
"--with-http_secure_link_module"
# Install destination problems
# "--with-http_perl_module"
- ] ++ stdenv.lib.optional fullWebDAV "--add-module=${dav-ext}";
+ ] ++ stdenv.lib.optional fullWebDAV "--add-module=${dav-ext}"
+ ++ stdenv.lib.optional syslog "--add-module=${syslog-ext}";
preConfigure = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2"
diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
new file mode 100644
index 000000000000..cda5dba32e0c
--- /dev/null
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, python }:
+
+stdenv.mkDerivation rec {
+ name = "mailman-2.1.16";
+
+ src = fetchurl {
+ url = "mirror://gnu/mailman/${name}.tgz";
+ sha256 = "0qsgnqjfi07kdiwzik0i78a5q3q5kcw1r61g48abix9qjc32n5ax";
+ };
+
+ buildInputs = [ python ];
+
+ patches = [ ./fix-var-prefix.patch ];
+
+ configureFlags = "--without-permcheck --with-cgi-ext=.cgi --with-var-prefix=/var/lib/mailman";
+
+ installTargets = "doinstall"; # Leave out the 'update' target that's implied by 'install'.
+
+ meta = {
+ homepage = "http://www.gnu.org/software/mailman/";
+ description = "Free software for managing electronic mail discussion and e-newsletter lists";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.simons ];
+ };
+}
diff --git a/pkgs/servers/mail/mailman/fix-var-prefix.patch b/pkgs/servers/mail/mailman/fix-var-prefix.patch
new file mode 100644
index 000000000000..9bb735ecbed7
--- /dev/null
+++ b/pkgs/servers/mail/mailman/fix-var-prefix.patch
@@ -0,0 +1,33 @@
+diff -ubr mailman-2.1.16-orig/contrib/redhat_fhs.patch mailman-2.1.16/contrib/redhat_fhs.patch
+--- mailman-2.1.16-orig/contrib/redhat_fhs.patch 2013-10-21 14:55:48.797631434 +0200
++++ mailman-2.1.16/contrib/redhat_fhs.patch 2013-10-21 14:56:42.534310378 +0200
+@@ -197,7 +197,7 @@
+ + else true; \
+ + fi; \
+ + done
+- chmod o-r $(DESTDIR)$(var_prefix)/archives/private
++ chmod o-r $(prefix)$(var_prefix)/archives/private
+ @for d in $(ARCH_INDEP_DIRS); \
+ do \
+ Only in mailman-2.1.5.FHS: Makefile.in~
+diff -ubr mailman-2.1.16-orig/Makefile.in mailman-2.1.16/Makefile.in
+--- mailman-2.1.16-orig/Makefile.in 2013-10-21 14:55:48.798631519 +0200
++++ mailman-2.1.16/Makefile.in 2013-10-21 14:56:42.562313220 +0200
+@@ -87,7 +87,7 @@
+ @echo "Creating architecture independent directories..."
+ @for d in $(VAR_DIRS); \
+ do \
+- dir=$(DESTDIR)$(var_prefix)/$$d; \
++ dir=$(prefix)$(var_prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+ $(srcdir)/mkinstalldirs $$dir; \
+@@ -96,7 +96,7 @@
+ else true; \
+ fi; \
+ done
+- chmod o-r $(DESTDIR)$(var_prefix)/archives/private
++ chmod o-r $(prefix)$(var_prefix)/archives/private
+ @for d in $(ARCH_INDEP_DIRS); \
+ do \
+ dir=$(DESTDIR)$(prefix)/$$d; \
diff --git a/pkgs/servers/monitoring/munin/adding_servicedir_munin-node.patch b/pkgs/servers/monitoring/munin/adding_servicedir_munin-node.patch
new file mode 100644
index 000000000000..856f3d73011e
--- /dev/null
+++ b/pkgs/servers/monitoring/munin/adding_servicedir_munin-node.patch
@@ -0,0 +1,84 @@
+From 75a3ec48814e7b9a9b22259a04009076363be3f1 Mon Sep 17 00:00:00 2001
+From: Igor Kolar
+Date: Thu, 17 Oct 2013 00:48:23 +0200
+Subject: [PATCH 1/2] node: added --servicedir switch to munin-node
+
+This code is copied over from munin-node-config, that already does the same
+---
+ node/sbin/munin-node | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/node/sbin/munin-node b/node/sbin/munin-node
+index 7b2e180..0a93450 100755
+--- a/node/sbin/munin-node
++++ b/node/sbin/munin-node
+@@ -35,7 +35,7 @@ use Munin::Node::OS;
+ use Munin::Node::Service;
+ use Munin::Node::Server;
+
+-my $servicedir;
++my $servicedir = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugins";
+ my $sconfdir = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugin-conf.d";
+ my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf";
+ my $DEBUG = 0;
+@@ -101,6 +101,7 @@ sub parse_args
+
+ print_usage_and_exit() unless GetOptions(
+ "config=s" => \$conffile,
++ "servicedir=s" => \$servicedir,
+ "debug!" => \$DEBUG,
+ "pidebug!" => \$PIDEBUG,
+ "paranoia!" => \$paranoia,
+@@ -166,6 +167,10 @@ and returning the output they produce.
+
+ Use EfileE as configuration file. [@@CONFDIR@@/munin-node.conf]
+
++=item B<< --servicedir >>
++
++Override plugin directory [@@CONFDIR@@/plugins/]
++
+ =item B< --[no]paranoia >
+
+ Only run plugins owned by root. Check permissions as well. [--noparanoia]
+--
+1.8.4
+
+
+From b8e17cbe73ae4c71b93ff5687ba86db1d0c1f5bd Mon Sep 17 00:00:00 2001
+From: Steve Schnepp
+Date: Thu, 17 Oct 2013 11:52:10 +0200
+Subject: [PATCH 2/2] node: untaint the service-dir args
+
+---
+ node/sbin/munin-node | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/node/sbin/munin-node b/node/sbin/munin-node
+index 0a93450..909c8c4 100755
+--- a/node/sbin/munin-node
++++ b/node/sbin/munin-node
+@@ -99,9 +99,10 @@ sub parse_args
+ {
+ my @ORIG_ARGV = @ARGV;
+
++ my $servicedir_cmdline;
+ print_usage_and_exit() unless GetOptions(
+ "config=s" => \$conffile,
+- "servicedir=s" => \$servicedir,
++ "servicedir=s" => \$servicedir_cmdline,
+ "debug!" => \$DEBUG,
+ "pidebug!" => \$PIDEBUG,
+ "paranoia!" => \$paranoia,
+@@ -109,6 +110,9 @@ sub parse_args
+ "help" => \&print_usage_and_exit,
+ );
+
++ # We untaint the args brutally, since the sysadm should know what he does
++ $servicedir = $1 if defined $servicedir_cmdline && $servicedir_cmdline =~ m/(.*)/;
++
+ # Reset ARGV (for HUPing)
+ @ARGV = @ORIG_ARGV;
+
+--
+1.8.4
+
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index d7da0f658e22..4f16ab35527b 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -1,9 +1,5 @@
{ stdenv, fetchurl, makeWrapper, which, coreutils, rrdtool, perl, perlPackages
-, python, ruby, openjdk }:
-
-# TODO: split into server/node derivations
-
-# FIXME: munin tries to write log files and web graphs to its installation path.
+, python, ruby, openjdk, nettools }:
stdenv.mkDerivation rec {
version = "2.0.17";
@@ -19,6 +15,7 @@ stdenv.mkDerivation rec {
which
coreutils
rrdtool
+ nettools
perl
perlPackages.ModuleBuild
perlPackages.HTMLTemplate
@@ -36,17 +33,49 @@ stdenv.mkDerivation rec {
perlPackages.NetServer
perlPackages.ListMoreUtils
perlPackages.TimeHiRes
+ perlPackages.LWPUserAgent
+ perlPackages.DBDPg
python
ruby
openjdk
+ # tests
+ perlPackages.TestLongString
+ perlPackages.TestDifferences
+ perlPackages.TestDeep
+ perlPackages.TestMockModule
+ perlPackages.TestMockObject
+ perlPackages.FileSlurp
+ perlPackages.IOStringy
+ ];
+
+ # TODO: tests are failing http://munin-monitoring.org/ticket/1390#comment:1
+ # NOTE: important, test command always exits with 0, think of a way to abort the build once tests pass
+ doCheck = false;
+
+ checkPhase = ''
+ export PERL5LIB="$PERL5LIB:${rrdtool}/lib/perl"
+ LC_ALL=C make -j1 test
+ '';
+
+ patches = [
+ # https://rt.cpan.org/Public/Bug/Display.html?id=75112
+ ./dont_preserve_source_dir_permissions.patch
+
+ # https://github.com/munin-monitoring/munin/pull/134
+ ./adding_servicedir_munin-node.patch
];
preBuild = ''
+ substituteInPlace "Makefile" \
+ --replace "/bin/pwd" "pwd"
+
+ # munin checks at build time if user/group exists, unpure
sed -i '/CHECKUSER/d' Makefile
sed -i '/CHOWN/d' Makefile
sed -i '/CHECKGROUP/d' Makefile
- substituteInPlace "Makefile" \
- --replace "/usr/pwd" "pwd"
+
+ # munin hardcodes PATH, we need it to obey $PATH
+ sed -i '/ENV{PATH}/d' node/lib/Munin/Node/Service.pm
'';
# DESTDIR shouldn't be needed (and shouldn't have worked), but munin
@@ -60,7 +89,7 @@ stdenv.mkDerivation rec {
PYTHON=${python}/bin/python
RUBY=${ruby}/bin/ruby
JAVARUN=${openjdk}/bin/java
- HOSTNAME=default
+ PLUGINUSER=munin
'';
postFixup = ''
@@ -78,7 +107,8 @@ stdenv.mkDerivation rec {
case "$file" in
*.jar) continue;;
esac
- wrapProgram "$file" --set PERL5LIB $out/lib/perl5/site_perl:${perlPackages.Log4Perl}/lib/perl5/site_perl:${perlPackages.IOSocketInet6}/lib/perl5/site_perl:${perlPackages.Socket6}/lib/perl5/site_perl:${perlPackages.URI}/lib/perl5/site_perl:${perlPackages.DBFile}/lib/perl5/site_perl:${perlPackages.DateManip}/lib/perl5/site_perl:${perlPackages.HTMLTemplate}/lib/perl5/site_perl:${perlPackages.FileCopyRecursive}/lib/perl5/site_perl:${perlPackages.FCGI}/lib/perl5/site_perl:${perlPackages.NetSNMP}/lib/perl5/site_perl:${perlPackages.NetServer}/lib/perl5/site_perl:${perlPackages.ListMoreUtils}/lib/perl5/site_perl:${perlPackages.TimeHiRes}/lib/perl5/site_perl:${rrdtool}/lib/perl
+ wrapProgram "$file" \
+ --set PERL5LIB "$out/lib/perl5/site_perl:${perlPackages.Log4Perl}/lib/perl5/site_perl:${perlPackages.IOSocketInet6}/lib/perl5/site_perl:${perlPackages.Socket6}/lib/perl5/site_perl:${perlPackages.URI}/lib/perl5/site_perl:${perlPackages.DBFile}/lib/perl5/site_perl:${perlPackages.DateManip}/lib/perl5/site_perl:${perlPackages.HTMLTemplate}/lib/perl5/site_perl:${perlPackages.FileCopyRecursive}/lib/perl5/site_perl:${perlPackages.FCGI}/lib/perl5/site_perl:${perlPackages.NetSNMP}/lib/perl5/site_perl:${perlPackages.NetServer}/lib/perl5/site_perl:${perlPackages.ListMoreUtils}/lib/perl5/site_perl:${perlPackages.TimeHiRes}/lib/perl5/site_perl:${rrdtool}/lib/perl:${perlPackages.DBDPg}/lib/perl5/site_perl:${perlPackages.LWPUserAgent}/lib/perl5/site_perl"
done
'';
diff --git a/pkgs/servers/monitoring/munin/dont_preserve_source_dir_permissions.patch b/pkgs/servers/monitoring/munin/dont_preserve_source_dir_permissions.patch
new file mode 100644
index 000000000000..78eac7283051
--- /dev/null
+++ b/pkgs/servers/monitoring/munin/dont_preserve_source_dir_permissions.patch
@@ -0,0 +1,18 @@
+# https://rt.cpan.org/Public/Bug/Display.html?id=75112
+diff --git a/master/lib/Munin/Master/HTMLOld.pm b/master/lib/Munin/Master/HTMLOld.pm
+index 2b6e71f..c0aa2c0 100644
+--- a/master/lib/Munin/Master/HTMLOld.pm
++++ b/master/lib/Munin/Master/HTMLOld.pm
+@@ -711,10 +711,12 @@ sub emit_main_index {
+
+ sub copy_web_resources {
+ my ($staticdir, $htmldir) = @_;
++ local $File::Copy::Recursive::KeepMode = 0;
+ unless(dircopy($staticdir, "$htmldir/static")){
+ ERROR "[ERROR] Could not copy contents from $staticdir to $htmldir";
+ die "[ERROR] Could not copy contents from $staticdir to $htmldir";
+ }
++ local $File::Copy::Recursive::KeepMode = 1;
+ }
+
+ sub instanciate_comparison_templates {
diff --git a/pkgs/servers/monitoring/zabbix/2.0.nix b/pkgs/servers/monitoring/zabbix/2.0.nix
index 8752f54647f0..1386e1609eb9 100644
--- a/pkgs/servers/monitoring/zabbix/2.0.nix
+++ b/pkgs/servers/monitoring/zabbix/2.0.nix
@@ -5,11 +5,11 @@ assert enableJabber -> minmay != null;
let
- version = "2.0.8";
+ version = "2.0.9";
src = fetchurl {
url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
- sha256 = "16jiwjw4041j3qn1cs4k812mih8mjwz5022ac0h0n78avrh4kff4";
+ sha256 = "057fjqww0qzs56nm8m3c36kbrhwriysvjvqzgwm9j2bg9ylixvym";
};
preConfigure =
@@ -31,14 +31,6 @@ in
inherit src preConfigure;
- patchFlags = "-p0";
- patches =
- [ (fetchurl {
- url = "https://support.zabbix.com/secure/attachment/24449/ZBX-7091-2.0.8.patch";
- sha256 = "1rlk3812dd12imk29i0fw6bzpgi44a8231kiq3bl5yryx18qh580";
- })
- ];
-
configureFlags = [
"--enable-agent"
"--enable-server"
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 3ae6f4bde4c0..638602920118 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -49,7 +49,7 @@ let
# Add a utility function to produce derivations that use this
# stdenv and its shell.
mkDerivation = attrs:
- if !allowUnfree && (let l = attrs.meta.license or ""; in l == "unfree" || l == "unfree-redistributable") then
+ if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) then
throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
else
lib.addPassthru (derivation (
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 6b04fe172687..3159bae1826f 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="zpaq";
- version="625";
+ version="642";
name="${baseName}-${version}";
- hash="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
- url="http://mattmahoney.net/dc/zpaq625.zip";
- sha256="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
+ hash="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
+ url="http://mattmahoney.net/dc/zpaq642.zip";
+ sha256="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
};
buildInputs = [
unzip
@@ -29,14 +29,13 @@ stdenv.mkDerivation {
};
sourceRoot = ".";
buildPhase = ''
- g++ -shared -O3 libzpaq.cpp divsufsort.c ${compileFlags} -o libzpaq.so
- g++ -O3 -L. -L"$out/lib" -lzpaq zpaq.cpp -o zpaq
- g++ -O3 -L. -L"$out/lib" -lzpaq zpaqd.cpp -o zpaqd
+ g++ -shared -O3 libzpaq.cpp ${compileFlags} -o libzpaq.so
+ g++ -O3 -L. -L"$out/lib" -lzpaq divsufsort.c zpaq.cpp -o zpaq
'';
installPhase = ''
mkdir -p "$out"/{bin,include,lib,share/doc/zpaq}
cp libzpaq.so "$out/lib"
- cp zpaq zpaqd "$out/bin"
+ cp zpaq "$out/bin"
cp libzpaq.h divsufsort.h "$out/include"
cp readme.txt "$out/share/doc/zpaq"
'';
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.nix b/pkgs/tools/archivers/zpaq/zpaqd.nix
new file mode 100644
index 000000000000..cfb76d2ff9bf
--- /dev/null
+++ b/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, unzip}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="zpaqd";
+ version="633";
+ name="${baseName}-${version}";
+ hash="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
+ url="http://mattmahoney.net/dc/zpaqd633.zip";
+ sha256="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
+ };
+ buildInputs = [
+ unzip
+ ];
+ isUnix = stdenv.isLinux || stdenv.isGNU || stdenv.isDarwin || stdenv.isBSD;
+ isx86 = stdenv.isi686 || stdenv.isx86_64;
+ compileFlags = ""
+ + (stdenv.lib.optionalString isUnix " -Dunix -pthread ")
+ + (stdenv.lib.optionalString (!isx86) " -DNOJIT ")
+ + " -DNDEBUG "
+ + " -fPIC "
+ ;
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ sourceRoot = ".";
+ buildPhase = ''
+ g++ -shared -O3 libzpaq.cpp ${compileFlags} -o libzpaq.so
+ g++ -O3 -L. -L"$out/lib" -lzpaq zpaqd.cpp -o zpaqd
+ '';
+ installPhase = ''
+ mkdir -p "$out"/{bin,include,lib,share/doc/zpaq}
+ cp libzpaq.so "$out/lib"
+ cp zpaqd "$out/bin"
+ cp libzpaq.h "$out/include"
+ cp readme_zpaqd.txt "$out/share/doc/zpaq"
+ '';
+ meta = {
+ inherit (s) version;
+ description = ''ZPAQ archiver decompressor and algorithm development tool'';
+ license = stdenv.lib.licenses.gpl3Plus ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.upstream b/pkgs/tools/archivers/zpaq/zpaqd.upstream
new file mode 100644
index 000000000000..ef83c58e4600
--- /dev/null
+++ b/pkgs/tools/archivers/zpaq/zpaqd.upstream
@@ -0,0 +1,5 @@
+url http://mattmahoney.net/dc/zpaqutil.html
+version_link 'zpaqd[0-9]+[.]zip'
+version "[^0-9]*([0-9]+)[^0-9]*" '\1'
+name zpaqd
+attribute_name zpaqd
diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix
index 23b516e32e4d..6fd1ae97d960 100644
--- a/pkgs/tools/compression/lrzip/default.nix
+++ b/pkgs/tools/compression/lrzip/default.nix
@@ -1,12 +1,12 @@
{stdenv, fetchurl, zlib, lzo, bzip2, nasm, perl}:
stdenv.mkDerivation rec {
- version = "0.614";
+ version = "0.616";
name = "lrzip-${version}";
src = fetchurl {
url = "http://ck.kolivas.org/apps/lrzip/${name}.tar.bz2";
- sha256 = "16i6mz2z6gx8xiva7zb0j78yvkwq1bjbdkl7w3i10195ll097ad8";
+ sha256 = "1bimlbsfzjvippbma08ifm1grcy9i7avryrkdvnvrfyqnj6mlbcq";
};
buildInputs = [ zlib lzo bzip2 nasm perl ];
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index b855fce17d0f..83d9c25a3e62 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, libuuid }:
stdenv.mkDerivation rec {
- name = "e2fsprogs-1.42.7";
+ name = "e2fsprogs-1.42.8";
src = fetchurl {
url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
- sha256 = "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw";
+ sha256 = "b984aaf1fe888d6a4cf8c2e8d397207879599b5368f1d33232c1ec9d68d00c97";
};
buildInputs = [ pkgconfig libuuid ];
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 7cae84a19c71..9d4168b2d7da 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="glusterfs";
- version="3.3.1";
- name="glusterfs-3.3.1";
- hash="06bmnyl3vh8s21kk98idm2fl7kq38na94k5l67l9l1grl3iyzahr";
- url="http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/glusterfs-3.3.1.tar.gz";
- sha256="06bmnyl3vh8s21kk98idm2fl7kq38na94k5l67l9l1grl3iyzahr";
+ version="3.4.1";
+ name="${baseName}-${version}";
+ hash="0fdp3bifd7n20xlmsmj374pbp11k7np71f7ibzycsvmqqviv9wdm";
+ url="http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.1/glusterfs-3.4.1.tar.gz";
+ sha256="0fdp3bifd7n20xlmsmj374pbp11k7np71f7ibzycsvmqqviv9wdm";
};
buildInputs = [
fuse bison flex openssl python ncurses readline
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 3c75af4bcf38..2638594903ab 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -36,6 +36,7 @@ rec {
name = "cuneiform-" + version;
meta = {
+ inherit version;
description = "Cuneiform OCR";
};
}
diff --git a/pkgs/tools/misc/rockbox-utility/default.nix b/pkgs/tools/misc/rockbox-utility/default.nix
index 4f271bcd6237..adb2a456b88f 100644
--- a/pkgs/tools/misc/rockbox-utility/default.nix
+++ b/pkgs/tools/misc/rockbox-utility/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, libusb, qt4 }:
+{ stdenv, fetchurl, libusb1, qt4 }:
stdenv.mkDerivation rec {
name = "rockbox-utility-${version}";
- version = "1.2.8";
+ version = "1.3.1";
src = fetchurl {
- url = "http://download.rockbox.org/rbutil/source/rbutil_${version}-src.tar.bz2";
- sha256 = "1gjwlyrwvzfdhqdwvq1chdnjkcn9lk21ixp92h5y74826j3ahdgs";
+ url = "http://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2";
+ sha256 = "6c04b5c7eaad1762577908dedb9e40f5b0cee675150ae5ba844ea2c9bea294ca";
};
- buildInputs = [ libusb qt4 ];
+ buildInputs = [ libusb1 qt4 ];
preBuild = ''
cd rbutil/rbutilqt
diff --git a/pkgs/tools/networking/curl/7.15.nix b/pkgs/tools/networking/curl/7.15.nix
new file mode 100644
index 000000000000..0a87eaa944cd
--- /dev/null
+++ b/pkgs/tools/networking/curl/7.15.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl
+, zlibSupport ? false, zlib ? null
+, sslSupport ? false, openssl ? null
+, scpSupport ? false, libssh2 ? null
+, gssSupport ? false, gss ? null
+, c-aresSupport ? false, c-ares ? null
+, linkStatic ? false
+}:
+
+assert zlibSupport -> zlib != null;
+assert sslSupport -> openssl != null;
+assert scpSupport -> libssh2 != null;
+assert c-aresSupport -> c-ares != null;
+
+stdenv.mkDerivation rec {
+ name = "curl-7.15.0";
+
+ src = fetchurl {
+ url = "http://curl.haxx.se/download/archeology/${name}.tar.gz";
+ sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
+ };
+
+ # Zlib and OpenSSL must be propagated because `libcurl.la' contains
+ # "-lz -lssl", which aren't necessary direct build inputs of
+ # applications that use Curl.
+ propagatedBuildInputs = with stdenv.lib;
+ optional zlibSupport zlib ++
+ optional gssSupport gss ++
+ optional c-aresSupport c-ares ++
+ optional sslSupport openssl;
+
+ preConfigure = ''
+ sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
+ '';
+ configureFlags = [
+ ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
+ ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
+ ]
+ ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
+ ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}"
+ ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ]
+ ;
+
+ dontDisableStatic = linkStatic;
+
+ CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else "";
+ LDFLAGS = if linkStatic then "-static" else "";
+ CXX = "g++";
+ CXXCPP = "g++ -E";
+
+ # libtool hack to get a static binary. Notice that to 'configure' I passed
+ # other LDFLAGS, because it doesn't use libtool for linking in the tests.
+ makeFlags = if linkStatic then "LDFLAGS=-all-static" else "";
+
+ crossAttrs = {
+ # We should refer to the cross built openssl
+ # For the 'urandom', maybe it should be a cross-system option
+ configureFlags = [
+ ( if sslSupport then "--with-ssl=${openssl.crossDrv}" else "--without-ssl" )
+ "--with-random /dev/urandom"
+ ]
+ ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ]
+ ;
+ };
+
+ passthru = {
+ inherit sslSupport openssl;
+ };
+
+ meta = {
+ homepage = "http://curl.haxx.se/";
+ description = "A command line tool for transferring files with URL syntax";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/tools/networking/netcat-openbsd/default.nix b/pkgs/tools/networking/netcat-openbsd/default.nix
new file mode 100644
index 000000000000..c7bbf3892d29
--- /dev/null
+++ b/pkgs/tools/networking/netcat-openbsd/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, pkgconfig, libbsd}:
+
+stdenv.mkDerivation rec {
+ name = "netcat-openbsd-1.105";
+ version = "1.105";
+
+ srcs = [
+ (fetchurl {
+ url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_1.105.orig.tar.gz";
+ md5 = "7e67b22f1ad41a1b7effbb59ff28fca1";
+ })
+ (fetchurl {
+ url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_1.105-7.debian.tar.gz";
+ md5 = "e914f8eb7eda5c75c679dd77787ac76b";
+ })
+ ];
+
+ buildInputs = [ pkgconfig libbsd ];
+ sourceRoot = name;
+ patches = [ "../debian/patches/*.patch" ];
+
+ installPhase = ''
+ install -Dm0755 nc $out/bin/nc
+ '';
+
+ meta = {
+ homepage = "http://packages.debian.org/netcat-openbsd";
+ description = "TCP/IP swiss army knife. OpenBSD variant.";
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+}
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index a548a9f13bdd..7bdc8d1aefb6 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
- name = "nix-1.7pre3252_792fd51";
+ name = "nix-1.7pre3267_2d9bb56";
src = fetchurl {
- url = "http://hydra.nixos.org/build/6500161/download/5/${name}.tar.xz";
- sha256 = "f99c1996292ea1a20068f0a6d58d3dc4775f30fdd22cdd756ac4d749acb2c20e";
+ url = "http://hydra.nixos.org/build/6611474/download/5/${name}.tar.xz";
+ sha256 = "f62b48910651c4651cd4473a0bb433d65cf60c93c0f80d589b26fec52b3b82b3";
};
nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/typesetting/tex/tex4ht/default.nix b/pkgs/tools/typesetting/tex/tex4ht/default.nix
index 24612de549e0..f903ef5792f4 100644
--- a/pkgs/tools/typesetting/tex/tex4ht/default.nix
+++ b/pkgs/tools/typesetting/tex/tex4ht/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
for f in src/tex4ht src/t4ht src/htcmd "bin/unix/"*; do
mv $f $out/bin/
done
- mv texmf $out/
+ mv texmf $out/texmf-dist
'';
meta = {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3450035e884a..5a3280b20123 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -661,6 +661,8 @@ let
connect = callPackage ../tools/networking/connect { };
+ conspy = callPackage ../os-specific/linux/conspy {};
+
convertlit = callPackage ../tools/text/convertlit { };
collectd = callPackage ../tools/system/collectd { };
@@ -712,6 +714,11 @@ let
scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
};
+ curl3 = callPackage ../tools/networking/curl/7.15.nix rec {
+ zlibSupport = true;
+ sslSupport = zlibSupport;
+ };
+
cunit = callPackage ../tools/misc/cunit { };
curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
@@ -891,6 +898,8 @@ let
withX11 = true;
};
+ forktty = callPackage ../os-specific/linux/forktty {};
+
fortune = callPackage ../tools/misc/fortune { };
fox = callPackage ../development/libraries/fox/default.nix {
@@ -1372,6 +1381,8 @@ let
netcat = callPackage ../tools/networking/netcat { };
+ netcat-openbsd = callPackage ../tools/networking/netcat-openbsd { };
+
netkittftp = callPackage ../tools/networking/netkit/tftp { };
netpbm = callPackage ../tools/graphics/netpbm { };
@@ -1880,6 +1891,8 @@ let
ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
+ ttysnoop = callPackage ../os-specific/linux/ttysnoop {};
+
twitterBootstrap = callPackage ../development/web/twitter-bootstrap {};
txt2man = callPackage ../tools/misc/txt2man { };
@@ -1900,6 +1913,8 @@ let
upx = callPackage ../tools/compression/upx { };
+ urlview = callPackage ../applications/misc/urlview {};
+
usbmuxd = callPackage ../tools/misc/usbmuxd {};
vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
@@ -2148,6 +2163,7 @@ let
zip = callPackage ../tools/archivers/zip { };
zpaq = callPackage ../tools/archivers/zpaq { };
+ zpaqd = callPackage ../tools/archivers/zpaq/zpaqd.nix { };
zsync = callPackage ../tools/compression/zsync { };
@@ -2191,6 +2207,8 @@ let
aspectj = callPackage ../development/compilers/aspectj { };
+ ats2 = callPackage ../development/compilers/ats2 { };
+
avra = callPackage ../development/compilers/avra { };
bigloo = callPackage ../development/compilers/bigloo { };
@@ -2897,6 +2915,8 @@ let
ocaml_4_00_1 = callPackage ../development/compilers/ocaml/4.00.1.nix { };
+ ocaml_4_01_0 = callPackage ../development/compilers/ocaml/4.01.0.nix { };
+
orc = callPackage ../development/compilers/orc { };
metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { };
@@ -3055,6 +3075,8 @@ let
boost = boost149; # sdcc 3.2.0 fails to build with boost 1.53
};
+ smlnj = callPackage_i686 ../development/compilers/smlnj { };
+
stalin = callPackage ../development/compilers/stalin { };
strategoPackages = recurseIntoAttrs strategoPackages018;
@@ -3758,6 +3780,8 @@ let
simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
+ slimerjs = callPackage ../development/tools/slimerjs {};
+
sloccount = callPackage ../development/tools/misc/sloccount { };
smatch = callPackage ../development/tools/analysis/smatch {
@@ -3820,6 +3844,8 @@ let
valkyrie = callPackage ../development/tools/analysis/valkyrie { };
+ xc3sprog = callPackage ../development/tools/misc/xc3sprog { };
+
xxdiff = callPackage ../development/tools/misc/xxdiff { };
yacc = bison;
@@ -4014,8 +4040,7 @@ let
db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
- dbus = let dbus_all = callPackage ../development/libraries/dbus { };
- in dbus_all.libs // dbus_all; # previously dbus.libs also contained the daemon
+ dbus = callPackage ../development/libraries/dbus { };
dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { };
dbus_glib = callPackage ../development/libraries/dbus-glib { };
dbus_java = callPackage ../development/libraries/java/dbus-java { };
@@ -4144,6 +4169,8 @@ let
gav = callPackage ../games/gav { };
+ gsb = callPackage ../games/gsb { };
+
gdome2 = callPackage ../development/libraries/gdome2 {
inherit (gnome) gtkdoc;
};
@@ -4569,6 +4596,8 @@ let
json_c = callPackage ../development/libraries/json-c { };
+ jsoncpp = callPackage ../development/libraries/jsoncpp { };
+
libjson = callPackage ../development/libraries/libjson { };
judy = callPackage ../development/libraries/judy { };
@@ -5081,12 +5110,7 @@ let
libvisual = callPackage ../development/libraries/libvisual { };
- libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
- inherit libtool libjpeg openssl zlib;
- inherit (xlibs) xproto libX11 damageproto libXdamage
- libXext xextproto fixesproto libXfixes xineramaproto
- libXinerama libXrandr randrproto libXtst;
- };
+ libvncserver = callPackage ../development/libraries/libvncserver {};
libviper = callPackage ../development/libraries/libviper { };
@@ -5403,8 +5427,7 @@ let
policykit = callPackage ../development/libraries/policykit { };
- poppler = let popplers = callPackage ../development/libraries/poppler { lcms = lcms2; };
- in popplers // popplers.poppler_glib;
+ poppler = callPackage ../development/libraries/poppler { lcms = lcms2; };
popplerQt4 = poppler.poppler_qt4;
poppler_0_18 = callPackage ../development/libraries/poppler/0.18.nix {
@@ -6179,6 +6202,8 @@ let
lighttpd = callPackage ../servers/http/lighttpd { };
+ mailman = callPackage ../servers/mail/mailman { };
+
mediatomb = callPackage ../servers/mediatomb {
ffmpeg = ffmpeg_0_6_90;
};
@@ -6509,6 +6534,8 @@ let
fxload = callPackage ../os-specific/linux/fxload { };
+ gfxtablet = callPackage ../os-specific/linux/gfxtablet {};
+
gpm = callPackage ../servers/gpm { };
hdparm = callPackage ../os-specific/linux/hdparm { };
@@ -6603,9 +6630,27 @@ let
];
};
+ # Note: grsec is not enabled automatically, you need to specify which kernel
+ # config options you need (e.g. by overriding extraConfig). See list of options here:
+ # https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options
linux_3_2_grsecurity = lowPrio (lib.overrideDerivation (linux_3_2.override (args: {
kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_2_9_1_3_2_51 ];
- })) (args: { makeFlags = "DISABLE_PAX_PLUGINS=y";}));
+ })) (args: {
+ # Install gcc plugins. These are needed for compiling dependant packages.
+ postInstall = ''
+ ${args.postInstall or ""}
+ cp tools/gcc/*.so $out/lib/modules/$version/build/tools/gcc/
+ '';
+ # Apparently as of gcc 4.6, gcc-plugin headers (which are needed by PaX plugins)
+ # include libgmp headers, so we need these extra tweaks
+ buildInputs = args.buildInputs ++ [ gmp ];
+ preConfigure = ''
+ ${args.preConfigure or ""}
+ sed -i 's|-I|-I${gmp}/include -I|' scripts/gcc-plugin.sh
+ sed -i 's|HOST_EXTRACFLAGS +=|HOST_EXTRACFLAGS += -I${gmp}/include|' tools/gcc/Makefile
+ sed -i 's|HOST_EXTRACXXFLAGS +=|HOST_EXTRACXXFLAGS += -I${gmp}/include|' tools/gcc/Makefile
+ '';
+ }));
linux_3_2_apparmor = lowPrio (linux_3_2.override {
kernelPatches = [ kernelPatches.apparmor_3_2 ];
@@ -6805,6 +6850,7 @@ let
linuxPackages_3_0 = recurseIntoAttrs (linuxPackagesFor linux_3_0 linuxPackages_3_0);
linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2);
linuxPackages_3_2_apparmor = linuxPackagesFor pkgs.linux_3_2_apparmor linuxPackages_3_2_apparmor;
+ linuxPackages_3_2_grsecurity = linuxPackagesFor pkgs.linux_3_2_grsecurity linuxPackages_3_2_grsecurity;
linuxPackages_3_2_xen = linuxPackagesFor pkgs.linux_3_2_xen linuxPackages_3_2_xen;
linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4);
linuxPackages_3_4_apparmor = linuxPackagesFor pkgs.linux_3_4_apparmor linuxPackages_3_4_apparmor;
@@ -7756,6 +7802,8 @@ let
fossil = callPackage ../applications/version-management/fossil { };
+ fribid = callPackage ../applications/networking/browsers/mozilla-plugins/fribid { };
+
fvwm = callPackage ../applications/window-managers/fvwm { };
geany = callPackage ../applications/editors/geany { };
@@ -8875,6 +8923,7 @@ let
virtviewer = callPackage ../applications/virtualization/virt-viewer {};
virtmanager = callPackage ../applications/virtualization/virt-manager {
inherit (gnome) gnome_python;
+ vte = gnome.vte.override { pythonSupport = true; };
};
virtinst = callPackage ../applications/virtualization/virtinst {};
@@ -8970,6 +9019,7 @@ let
++ lib.optional (cfg.enableGeckoMediaPlayer or false) gecko_mediaplayer
++ lib.optional (supportsJDK && cfg.jre or false && jrePlugin ? mozillaPlugin) jrePlugin
++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin
+ ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid
);
libs =
if cfg.enableQuakeLive or false
@@ -9188,6 +9238,11 @@ let
freeciv = callPackage ../games/freeciv { };
+ freeciv_gtk = callPackage ../games/freeciv {
+ gtkClient = true;
+ sdlClient = false;
+ };
+
freedink = callPackage ../games/freedink { };
fsg = callPackage ../games/fsg {
@@ -9271,6 +9326,10 @@ let
racer = callPackage ../games/racer { };
+ residualvm = callPackage ../games/residualvm {
+ openglSupport = mesaSupported;
+ };
+
rigsofrods = callPackage ../games/rigsofrods {
mygui = myguiSvn;
};
@@ -10157,9 +10216,13 @@ let
VisualBoyAdvance = callPackage ../misc/emulators/VisualBoyAdvance { };
# Wine cannot be built in 64-bit; use a 32-bit build instead.
- wine = callPackage_i686 ../misc/emulators/wine {
+ wineStable = callPackage_i686 ../misc/emulators/wine/stable.nix {
bison = bison2;
};
+ wineUnstable = lowPrio (callPackage_i686 ../misc/emulators/wine/unstable.nix {
+ bison = bison2;
+ });
+ wine = wineStable;
# winetricks is a shell script with no binary components. Safe to just use the current platforms
# build instead of the i686 specific build.
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d05769b10e70..c8d7b0dee858 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -141,7 +141,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
inherit (self) cabal ghc;
async = self.async_2_0_1_4;
attoparsec = self.attoparsec_0_10_4_0;
- caseInsensitive = self.caseInsensitive_1_1;
+ caseInsensitive = self.caseInsensitive_1_1_0_1;
cgi = self.cgi_3001_1_7_5;
fgl = self.fgl_5_4_2_4;
GLUT = self.GLUT_2_5_0_1;
@@ -677,8 +677,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
carray = callPackage ../development/libraries/haskell/carray {};
caseInsensitive_1_0_0_1 = callPackage ../development/libraries/haskell/case-insensitive/1.0.0.1.nix {};
- caseInsensitive_1_1 = callPackage ../development/libraries/haskell/case-insensitive/1.1.nix {};
- caseInsensitive = self.caseInsensitive_1_1;
+ caseInsensitive_1_1_0_1 = callPackage ../development/libraries/haskell/case-insensitive/1.1.0.1.nix {};
+ caseInsensitive = self.caseInsensitive_1_1_0_1;
cautiousFile = callPackage ../development/libraries/haskell/cautious-file {};
@@ -1170,6 +1170,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
hexpat = callPackage ../development/libraries/haskell/hexpat {};
+ HTF = callPackage ../development/libraries/haskell/HTF {};
+
HTTP_4000_0_6 = callPackage ../development/libraries/haskell/HTTP/4000.0.6.nix {};
HTTP_4000_0_9 = callPackage ../development/libraries/haskell/HTTP/4000.0.9.nix {};
HTTP_4000_1_1 = callPackage ../development/libraries/haskell/HTTP/4000.1.1.nix {};
@@ -1257,9 +1259,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
hsemail = callPackage ../development/libraries/haskell/hsemail {};
- hslua = callPackage ../development/libraries/haskell/hslua {
- lua = pkgs.lua5_1;
- };
+ hslua = callPackage ../development/libraries/haskell/hslua {};
HSH = callPackage ../development/libraries/haskell/HSH {};
@@ -1368,6 +1368,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
languageCQuote = callPackage ../development/libraries/haskell/language-c-quote {};
+ languageEcmascript = callPackage ../development/libraries/haskell/language-ecmascript {};
+
languageJava = callPackage ../development/libraries/haskell/language-java {};
languageJavascript = callPackage ../development/libraries/haskell/language-javascript {};
@@ -2077,6 +2079,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
text_0_11_3_1 = callPackage ../development/libraries/haskell/text/0.11.3.1.nix {};
text = self.text_0_11_3_1;
+ textFormat = callPackage ../development/libraries/haskell/text-format {};
+
textIcu = callPackage ../development/libraries/haskell/text-icu {};
thespian = callPackage ../development/libraries/haskell/thespian {};
@@ -2276,6 +2280,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
xmlConduit = callPackage ../development/libraries/haskell/xml-conduit {};
+ xmlgen = callPackage ../development/libraries/haskell/xmlgen {};
+
xmlHamlet = callPackage ../development/libraries/haskell/xml-hamlet {};
xmlhtml = callPackage ../development/libraries/haskell/xmlhtml {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 461dc0c1f6ea..6f1ddd226e1d 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -3633,6 +3633,19 @@ rec {
};
};
+ GnuPG = buildPerlPackage {
+ name = "GnuPG-0.19";
+ src = fetchurl {
+ url = mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz;
+ sha256 = "af53f2d3f63297e046676eae14a76296afdd2910e09723b6b113708622b7989b";
+ };
+ buildInputs = [ pkgs.gnupg1orig ];
+ meta = {
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with maintainers; [ ocharles ];
+ };
+ };
+
GoogleProtocolBuffers = buildPerlPackage rec {
name = "Google-ProtocolBuffers-0.08";
src = fetchurl {
@@ -4590,6 +4603,21 @@ rec {
};
};
+ LocalePO = buildPerlPackage {
+ name = "Locale-PO-0.23";
+ src = fetchurl {
+ url = mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.23.tar.gz;
+ sha256 = "52e5fdc88ec4eb00512418a938dc5089476ea66c9e744fee3c6bbfdf17a0d302";
+ };
+ propagatedBuildInputs = [ FileSlurp ];
+ meta = {
+ description = "Perl module for manipulating .po entries from GNU gettext";
+ license = "unknown";
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with maintainers; [ ocharles ];
+ };
+ };
+
LockFileSimple = buildPerlPackage rec {
name = "LockFile-Simple-0.207";
src = fetchurl {
@@ -6116,6 +6144,7 @@ rec {
url = "mirror://cpan/authors/id/D/DT/DTOWN/${name}.tar.gz";
sha256 = "0hdpn1cw52x8cw24m9ayzpf4rwarm0khygn1sv3wvwxkrg0pphql";
};
+ doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
};
NetSSLeay = buildPerlPackage rec {
@@ -7609,6 +7638,21 @@ rec {
doCheck = false; # no `hostname' in stdenv
};
+ TAPParserSourceHandlerpgTAP = buildPerlModule {
+ name = "TAP-Parser-SourceHandler-pgTAP-3.29";
+ src = fetchurl {
+ url = mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.29.tar.gz;
+ sha256 = "918aa9ada7a05334ace7304e7b9e002bbf0b569bfcf8fb06118777bdabd60e1b";
+ };
+ meta = {
+ homepage = http://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP/;
+ description = "Stream TAP from pgTAP test scripts";
+ license = "perl";
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with maintainers; [ ocharles ];
+ };
+ };
+
TaskCatalystTutorial = buildPerlPackage rec {
name = "Task-Catalyst-Tutorial-0.06";
src = fetchurl {
@@ -7679,6 +7723,19 @@ rec {
};
};
+ TemplatePluginJSONEscape = buildPerlPackage {
+ name = "Template-Plugin-JSON-Escape-0.02";
+ src = fetchurl {
+ url = mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz;
+ sha256 = "051a8b1d3bc601d58fc51e246067d36450cfe970278a0456e8ab61940f13cd86";
+ };
+ propagatedBuildInputs = [ JSON TemplateToolkit ];
+ meta = {
+ maintainers = with maintainers; [ ocharles ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+ };
+
TemplateTimer = buildPerlPackage {
name = "Template-Timer-1.00";
src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 8baaa25d3031..6f6c52a1b0d7 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2271,11 +2271,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
ecdsa = buildPythonPackage rec {
name = "ecdsa-${version}";
- version = "0.9";
+ version = "0.10";
src = fetchurl {
url = "http://pypi.python.org/packages/source/e/ecdsa/${name}.tar.gz";
- md5 = "2b9c35245ce391d6b7d8f991aad5c630";
+ md5 = "e95941b3bcbf1726472bb724d7478551";
};
# Only needed for tests