Merge branch 'master.upstream' into staging.upstream

This commit is contained in:
William A. Kennington III 2015-10-15 10:22:28 -07:00
commit 8a44a36ca4
433 changed files with 31372 additions and 6980 deletions

View file

@ -14,12 +14,12 @@ build daemon as so-called channels. To get channel information via git, add
```
For stability and maximum binary package support, it is recommended to maintain
custom changes on top of one of the channels, e.g. `nixos-14.12` for the latest
custom changes on top of one of the channels, e.g. `nixos-15.09` for the latest
release and `nixos-unstable` for the latest successful build of master:
```
% git remote update channels
% git rebase channels/nixos-14.12
% git rebase channels/nixos-15.09
```
For pull-requests, please rebase onto nixpkgs `master`.

View file

@ -1,6 +1,8 @@
if ! builtins ? nixVersion || builtins.compareVersions "1.8" builtins.nixVersion == 1 then
let requiredVersion = "1.10"; in
abort "This version of Nixpkgs requires Nix >= 1.8, please upgrade! See https://nixos.org/wiki/How_to_update_when_nix_is_too_old_to_evaluate_nixpkgs"
if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then
abort "This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade! See https://nixos.org/wiki/How_to_update_when_Nix_is_too_old_to_evaluate_Nixpkgs"
else

View file

@ -236,6 +236,20 @@ c = lib.makeOverridable f { a = 1; b = 2; }</programlisting>
<literal>runScript</literal> parameter, which is a command that would be
executed inside the sandbox and passed all the command line arguments. It
default to <literal>bash</literal>.
</para>
<para>
It also uses <literal>CHROOTENV_EXTRA_BINDS</literal> environment variable
for binding extra directories in the sandbox to outside places. The format of
the variable is <literal>/mnt=test-mnt:/data</literal>, where
<literal>/mnt</literal> would be mounted as <literal>/test-mnt</literal>
and <literal>/data</literal> would be mounted as <literal>/data</literal>.
<literal>extraBindMounts</literal> array argument to
<function>buildFHSUserEnv</function> function is prepended to this variable.
Latter entries take priority if defined several times -- i.e. in case of
<literal>/data=data1:/data=data2</literal> the actual bind path would be
<literal>/data2</literal>.
</para>
<para>
One can create a simple environment using a <literal>shell.nix</literal>
like that:
</para>

View file

@ -81,6 +81,7 @@
dezgeg = "Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>";
dfoxfranke = "Daniel Fox Franke <dfoxfranke@gmail.com>";
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
dochang = "Desmond O. Chang <dochang@gmail.com>";
doublec = "Chris Double <chris.double@double.co.nz>";
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
@ -90,6 +91,7 @@
eikek = "Eike Kettner <eike.kettner@posteo.de>";
ellis = "Ellis Whitehead <nixos@ellisw.net>";
emery = "Emery Hemingway <emery@vfemail.net>";
enolan = "Echo Nolan <echo@echonolan.net>";
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
@ -100,6 +102,7 @@
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
forkk = "Andrew Okin <forkk@forkk.net>";
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
fps = "Florian Paul Schmidt <mista.tapas@gmx.net>";
fridh = "Frederik Rietdijk <fridh@fridh.nl>";
fro_ozen = "fro_ozen <fro_ozen@gmx.de>";
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
@ -129,6 +132,7 @@
iyzsong = "Song Wenwu <iyzsong@gmail.com>";
j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
javaguirre = "Javier Aguirre <contacto@javaguirre.net>";
jb55 = "William Casarin <bill@casarin.me>";
jcumming = "Jack Cummings <jack@mudshark.org>";
jefdaj = "Jeffrey David Johnson <jefdaj@gmail.com>";
@ -164,6 +168,7 @@
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
lsix = "Lancelot SIX <lsix@lancelotsix.com>";
ludo = "Ludovic Courtès <ludo@gnu.org>";
lukego = "Luke Gorrie <luke@snabb.co>";
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
mahe = "Matthias Herrmann <matthias.mh.herrmann@gmail.com>";
@ -190,6 +195,7 @@
muflax = "Stefan Dorn <mail@muflax.com>";
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";

View file

@ -469,6 +469,7 @@ rec {
mkBefore = mkOrder 500;
mkAfter = mkOrder 1500;
# Convenient property used to transfer all definitions and their
# properties from one option to another. This property is useful for
# renaming options, and also for including properties from another module
@ -498,4 +499,68 @@ rec {
/* Compatibility. */
fixMergeModules = modules: args: evalModules { inherit modules args; check = false; };
/* Return a module that causes a warning to be shown if the
specified option is defined. For example,
mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ]
causes a warning if the user defines boot.loader.grub.bootDevice.
*/
mkRemovedOptionModule = optionName:
{ options, ... }:
{ options = setAttrByPath optionName (mkOption {
visible = false;
});
config.warnings =
let opt = getAttrFromPath optionName options; in
optional opt.isDefined
"The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it.";
};
/* Return a module that causes a warning to be shown if the
specified "from" option is defined; the defined value is however
forwarded to the "to" option. This can be used to rename options
while providing backward compatibility. For example,
mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]
forwards any definitions of boot.copyKernels to
boot.loader.grub.copyKernels while printing a warning.
*/
mkRenamedOptionModule = from: to: doRename {
inherit from to;
visible = false;
warn = true;
use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
};
/* Like mkRenamedOptionModule, but doesn't show a warning. */
mkAliasOptionModule = from: to: doRename {
inherit from to;
visible = true;
warn = false;
use = id;
};
doRename = { from, to, visible, warn, use }:
let
toOf = attrByPath to
(abort "Renaming error: option `${showOption to}' does not exists.");
in
{ config, options, ... }:
{ options = setAttrByPath from (mkOption {
description = "Alias of <option>${showOption to}</option>.";
apply = x: use (toOf config);
});
config = {
/*
warnings =
let opt = getAttrFromPath from options; in
optional (warn && opt.isDefined)
"The option `${showOption from}' defined in ${showFiles opt.files} has been renamed to `${showOption to}'.";
*/
} // setAttrByPath to (mkAliasDefinitions (getAttrFromPath from options));
};
}

View file

@ -18,8 +18,8 @@
<listitem><para>The NixOS manual is available on virtual console 8
(press Alt+F8 to access).</para></listitem>
<listitem><para>Login as <literal>root</literal> and the empty
password.</para></listitem>
<listitem><para>You get logged in as <literal>root</literal>
(with empty password).</para></listitem>
<listitem><para>If you downloaded the graphical ISO image, you can
run <command>start display-manager</command> to start KDE.</para></listitem>

View file

@ -39,6 +39,7 @@ pkgs.vmTools.runInLinuxVM (
exportReferencesGraph =
[ "closure" config.system.build.toplevel ];
inherit postVM;
memSize = 1024;
}
''
${if partitioned then ''

View file

@ -98,6 +98,7 @@ in
after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" ];
script =
''
${config.systemd.package}/bin/systemctl try-restart post-resume.target
${cfg.resumeCommands}
${cfg.powerUpCommands}
'';

View file

@ -550,4 +550,8 @@ in {
};
imports =
[ (mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ])
(mkAliasOptionModule [ "users" "extraGroups" ] [ "users" "groups" ])
];
}

View file

@ -70,7 +70,7 @@ let cfg = config.system.autoUpgrade; in
path = [ pkgs.gnutar pkgs.xz config.nix.package ];
script = ''
${config.system.build.nixos-rebuild}/bin/nixos-rebuild test ${toString cfg.flags}
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
'';
startAt = mkIf cfg.enable "04:40";

View file

@ -152,6 +152,22 @@ sub pciCheck {
push @kernelModules, "wl";
}
# broadcom FullMac driver
# list taken from
# https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211#brcmfmac
if ($vendor eq "0x14e4" &&
($device eq "0x43a3" || $device eq "0x43df" || $device eq "0x43ec" ||
$device eq "0x43d3" || $device eq "0x43d9" || $device eq "0x43e9" ||
$device eq "0x43ba" || $device eq "0x43bb" || $device eq "0x43bc" ||
$device eq "0xaa52" || $device eq "0x43ca" || $device eq "0x43cb" ||
$device eq "0x43cc" || $device eq "0x43c3" || $device eq "0x43c4" ||
$device eq "0x43c5"
) )
{
# we need e.g. brcmfmac43602-pcie.bin
push @imports, "<nixos/modules/hardware/network/broadcom-43xx.nix>";
}
# Can't rely on $module here, since the module may not be loaded
# due to missing firmware. Ideally we would check modules.pcimap
# here.

View file

@ -340,6 +340,7 @@
./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix
./services/networking/strongswan.nix
./services/networking/supplicant.nix
./services/networking/supybot.nix
./services/networking/syncthing.nix
./services/networking/tcpcrypt.nix

View file

@ -1,170 +1,88 @@
{ config, lib, options, ... }:
{ lib, ... }:
with lib;
let
{
imports = [
(mkRenamedOptionModule [ "environment" "x11Packages" ] [ "environment" "systemPackages" ])
(mkRenamedOptionModule [ "environment" "enableBashCompletion" ] [ "programs" "bash" "enableCompletion" ])
(mkRenamedOptionModule [ "environment" "nix" ] [ "nix" "package" ])
(mkRenamedOptionModule [ "fonts" "enableFontConfig" ] [ "fonts" "fontconfig" "enable" ])
(mkRenamedOptionModule [ "fonts" "extraFonts" ] [ "fonts" "fonts" ])
alias = from: to: rename {
inherit from to;
name = "Alias";
use = id;
define = id;
visible = true;
};
(mkRenamedOptionModule [ "security" "extraSetuidPrograms" ] [ "security" "setuidPrograms" ])
(mkRenamedOptionModule [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ])
(mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ])
# warn option was renamed
obsolete = from: to: rename {
inherit from to;
name = "Obsolete name";
use = x: builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'." x;
define = x: builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'." x;
};
# Old Grub-related options.
(mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ])
(mkRenamedOptionModule [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ])
# abort if deprecated option is used
deprecated = from: to: rename {
inherit from to;
name = "Deprecated name";
use = x: abort "Deprecated option `${showOption from}' is used. It was renamed to `${showOption to}'.";
define = x: abort "Deprecated option `${showOption from}' is used. It was renamed to `${showOption to}'.";
};
# smartd
(mkRenamedOptionModule [ "services" "smartd" "deviceOpts" ] [ "services" "smartd" "defaults" "monitored" ])
showOption = concatStringsSep ".";
# OpenSSH
(mkRenamedOptionModule [ "services" "sshd" "ports" ] [ "services" "openssh" "ports" ])
(mkAliasOptionModule [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ])
(mkRenamedOptionModule [ "services" "sshd" "allowSFTP" ] [ "services" "openssh" "allowSFTP" ])
(mkRenamedOptionModule [ "services" "sshd" "forwardX11" ] [ "services" "openssh" "forwardX11" ])
(mkRenamedOptionModule [ "services" "sshd" "gatewayPorts" ] [ "services" "openssh" "gatewayPorts" ])
(mkRenamedOptionModule [ "services" "sshd" "permitRootLogin" ] [ "services" "openssh" "permitRootLogin" ])
(mkRenamedOptionModule [ "services" "xserver" "startSSHAgent" ] [ "services" "xserver" "startOpenSSHAgent" ])
(mkRenamedOptionModule [ "services" "xserver" "startOpenSSHAgent" ] [ "programs" "ssh" "startAgent" ])
(mkAliasOptionModule [ "services" "openssh" "knownHosts" ] [ "programs" "ssh" "knownHosts" ])
zipModules = list:
zipAttrsWith (n: v:
if tail v != [] then
if all (o: isAttrs o && o ? _type) v then mkMerge v
else if n == "_type" then head 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;
# VirtualBox
(mkRenamedOptionModule [ "services" "virtualbox" "enable" ] [ "virtualisation" "virtualbox" "guest" "enable" ])
(mkRenamedOptionModule [ "services" "virtualboxGuest" "enable" ] [ "virtualisation" "virtualbox" "guest" "enable" ])
(mkRenamedOptionModule [ "programs" "virtualbox" "enable" ] [ "virtualisation" "virtualbox" "host" "enable" ])
(mkRenamedOptionModule [ "programs" "virtualbox" "addNetworkInterface" ] [ "virtualisation" "virtualbox" "host" "addNetworkInterface" ])
(mkRenamedOptionModule [ "programs" "virtualbox" "enableHardening" ] [ "virtualisation" "virtualbox" "host" "enableHardening" ])
(mkRenamedOptionModule [ "services" "virtualboxHost" "enable" ] [ "virtualisation" "virtualbox" "host" "enable" ])
(mkRenamedOptionModule [ "services" "virtualboxHost" "addNetworkInterface" ] [ "virtualisation" "virtualbox" "host" "addNetworkInterface" ])
(mkRenamedOptionModule [ "services" "virtualboxHost" "enableHardening" ] [ "virtualisation" "virtualbox" "host" "enableHardening" ])
rename = { from, to, name, use, define, visible ? false }:
let
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 = "${name} of <option>${showOption to}</option>.";
apply = x: use (toOf config);
inherit visible;
});
# Tarsnap
(mkRenamedOptionModule [ "services" "tarsnap" "config" ] [ "services" "tarsnap" "archives" ])
config = setTo (mkAliasAndWrapDefinitions define (fromOf options));
}
];
# proxy
(mkRenamedOptionModule [ "nix" "proxy" ] [ "networking" "proxy" "default" ])
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.";
};
# KDE
(mkRenamedOptionModule [ "kde" "extraPackages" ] [ "environment" "systemPackages" ])
(mkRenamedOptionModule [ "environment" "kdePackages" ] [ "environment" "systemPackages" ])
in zipModules ([]
# Multiple efi bootloaders now
(mkRenamedOptionModule [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ])
++ obsolete [ "environment" "x11Packages" ] [ "environment" "systemPackages" ]
++ obsolete [ "environment" "enableBashCompletion" ] [ "programs" "bash" "enableCompletion" ]
++ obsolete [ "environment" "nix" ] [ "nix" "package" ]
++ obsolete [ "fonts" "enableFontConfig" ] [ "fonts" "fontconfig" "enable" ]
++ obsolete [ "fonts" "extraFonts" ] [ "fonts" "fonts" ]
++ alias [ "users" "extraUsers" ] [ "users" "users" ]
++ alias [ "users" "extraGroups" ] [ "users" "groups" ]
# NixOS environment changes
# !!! this hardcodes bash, could we detect from config which shell is actually used?
(mkRenamedOptionModule [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ])
++ obsolete [ "security" "extraSetuidPrograms" ] [ "security" "setuidPrograms" ]
++ obsolete [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ]
++ obsolete [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ]
(mkRenamedOptionModule [ "services" "xserver" "driSupport" ] [ "hardware" "opengl" "driSupport" ])
(mkRenamedOptionModule [ "services" "xserver" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ])
(mkRenamedOptionModule [ "services" "xserver" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ])
(mkRenamedOptionModule [ "hardware" "opengl" "videoDrivers" ] [ "services" "xserver" "videoDrivers" ])
# FIXME: Remove these eventually.
++ obsolete [ "boot" "systemd" "sockets" ] [ "systemd" "sockets" ]
++ obsolete [ "boot" "systemd" "targets" ] [ "systemd" "targets" ]
++ obsolete [ "boot" "systemd" "services" ] [ "systemd" "services" ]
(mkRenamedOptionModule [ "services" "mysql55" ] [ "services" "mysql" ])
# Old Grub-related options.
++ 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" ]
(mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ])
++ obsolete [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]
++ obsolete [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ]
# XBMC
(mkRenamedOptionModule [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ])
(mkRenamedOptionModule [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ])
# smartd
++ obsolete [ "services" "smartd" "deviceOpts" ] [ "services" "smartd" "defaults" "monitored" ]
# DNSCrypt-proxy
(mkRenamedOptionModule [ "services" "dnscrypt-proxy" "port" ] [ "services" "dnscrypt-proxy" "localPort" ])
# OpenSSH
++ 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" ]
++ obsolete [ "services" "xserver" "startOpenSSHAgent" ] [ "programs" "ssh" "startAgent" ]
++ alias [ "services" "openssh" "knownHosts" ] [ "programs" "ssh" "knownHosts" ]
# Options that are obsolete and have no replacement.
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ])
(mkRemovedOptionModule [ "programs" "bash" "enable" ])
(mkRemovedOptionModule [ "services" "samba" "defaultShare" ])
(mkRemovedOptionModule [ "services" "syslog-ng" "serviceName" ])
(mkRemovedOptionModule [ "services" "syslog-ng" "listenToJournal" ])
(mkRemovedOptionModule [ "ec2" "metadata" ])
(mkRemovedOptionModule [ "services" "openvpn" "enable" ])
# VirtualBox
++ obsolete [ "services" "virtualbox" "enable" ] [ "virtualisation" "virtualbox" "guest" "enable" ]
++ obsolete [ "services" "virtualboxGuest" "enable" ] [ "virtualisation" "virtualbox" "guest" "enable" ]
++ obsolete [ "programs" "virtualbox" "enable" ] [ "virtualisation" "virtualbox" "host" "enable" ]
++ obsolete [ "programs" "virtualbox" "addNetworkInterface" ] [ "virtualisation" "virtualbox" "host" "addNetworkInterface" ]
++ obsolete [ "programs" "virtualbox" "enableHardening" ] [ "virtualisation" "virtualbox" "host" "enableHardening" ]
++ obsolete [ "services" "virtualboxHost" "enable" ] [ "virtualisation" "virtualbox" "host" "enable" ]
++ obsolete [ "services" "virtualboxHost" "addNetworkInterface" ] [ "virtualisation" "virtualbox" "host" "addNetworkInterface" ]
++ obsolete [ "services" "virtualboxHost" "enableHardening" ] [ "virtualisation" "virtualbox" "host" "enableHardening" ]
# Tarsnap
++ obsolete [ "services" "tarsnap" "config" ] [ "services" "tarsnap" "archives" ]
# proxy
++ obsolete [ "nix" "proxy" ] [ "networking" "proxy" "default" ]
# KDE
++ deprecated [ "kde" "extraPackages" ] [ "environment" "systemPackages" ]
++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ]
# Multiple efi bootloaders now
++ 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?
++ obsolete [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ]
++ obsolete [ "services" "xserver" "driSupport" ] [ "hardware" "opengl" "driSupport" ]
++ obsolete [ "services" "xserver" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ]
++ obsolete [ "services" "xserver" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ]
++ obsolete [ "hardware" "opengl" "videoDrivers" ] [ "services" "xserver" "videoDrivers" ]
++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ]
++ alias [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ]
# XBMC
++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
++ obsolete [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
# DNSCrypt-proxy
++ obsolete [ "services" "dnscrypt-proxy" "port" ] [ "services" "dnscrypt-proxy" "localPort" ]
# Options that are obsolete and have no replacement.
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
++ obsolete' [ "boot" "initrd" "luks" "enable" ]
++ obsolete' [ "programs" "bash" "enable" ]
++ obsolete' [ "services" "samba" "defaultShare" ]
++ obsolete' [ "services" "syslog-ng" "serviceName" ]
++ obsolete' [ "services" "syslog-ng" "listenToJournal" ]
++ obsolete' [ "ec2" "metadata" ]
++ obsolete' [ "services" "openvpn" "enable" ]
)
];
}

View file

@ -65,11 +65,15 @@ in {
};
environment = mkOption {
default = { NIX_REMOTE = "daemon"; };
default = { };
type = with types; attrsOf str;
description = ''
Additional environment variables to be passed to the jenkins process.
The environment will always include JENKINS_HOME.
As a base environment, jenkins receives NIX_PATH, SSL_CERT_FILE and
GIT_SSL_CAINFO from <option>environment.sessionVariables</option>,
NIX_REMOTE is set to "daemon" and JENKINS_HOME is set to
the value of <option>services.jenkins.home</option>. This option has
precedence and can be used to override those mentioned variables.
'';
};
@ -106,9 +110,21 @@ in {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
JENKINS_HOME = cfg.home;
} // cfg.environment;
environment =
let
selectedSessionVars =
lib.filterAttrs (n: v: builtins.elem n
[ "NIX_PATH"
"SSL_CERT_FILE"
"GIT_SSL_CAINFO"
])
config.environment.sessionVariables;
in
selectedSessionVars //
{ JENKINS_HOME = cfg.home;
NIX_REMOTE = "daemon";
} //
cfg.environment;
path = cfg.packages;

View file

@ -89,6 +89,7 @@ in
wantedBy = optional cfgC.autoStart "multi-user.target";
path = [ pkgs.synergy ];
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergyc -f ${optionalString (cfgC.screenName != "") "-n ${cfgC.screenName}"} ${cfgC.serverAddress}'';
serviceConfig.Restart = "on-failure";
};
})
(mkIf cfgS.enable {
@ -98,6 +99,7 @@ in
wantedBy = optional cfgS.autoStart "multi-user.target";
path = [ pkgs.synergy ];
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
serviceConfig.Restart = "on-failure";
};
})
];

View file

@ -318,7 +318,7 @@ in {
wantedBy = ["multi-user.target"];
after = ["networking.target"];
serviceConfig = {
ExecStart = "${cfg.package-backend}/bin/grafana --config ${cfgFile} web";
ExecStart = "${cfg.package}/bin/grafana --config ${cfgFile} web";
WorkingDirectory = cfg.dataDir;
User = "grafana";
};

View file

@ -39,7 +39,8 @@ in
systemd.services."copy-com-${cfg.user}" = {
description = "Copy.com client";
after = [ "network.target" "local-fs.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" "local-fs.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.copy-com}/bin/CopyConsole ${if cfg.debug then "-consoleOutput -debugToConsole=dirwatch,path-watch,csm_path,csm -debug -console" else ""}";

View file

@ -0,0 +1,249 @@
{ config, lib, utils, pkgs, ... }:
with lib;
let
cfg = config.networking.supplicant;
# We must escape interfaces due to the systemd interpretation
subsystemDevice = interface:
"sys-subsystem-net-devices-${utils.escapeSystemdPath interface}.device";
serviceName = iface: "supplicant-${if (iface=="WLAN") then "wlan@" else (
if (iface=="LAN") then "lan@" else (
if (iface=="DBUS") then "dbus"
else (replaceChars [" "] ["-"] iface)))}";
# TODO: Use proper privilege separation for wpa_supplicant
supplicantService = iface: suppl:
let
deps = (if (iface=="WLAN"||iface=="LAN") then ["sys-subsystem-net-devices-%i.device"] else (
if (iface=="DBUS") then ["dbus.service"]
else (map subsystemDevice (splitString " " iface))))
++ optional (suppl.bridge!="") (subsystemDevice suppl.bridge);
ifaceArg = concatStringsSep " -N " (map (i: "-i${i}") (splitString " " iface));
driverArg = optionalString (suppl.driver != null) "-D${suppl.driver}";
bridgeArg = optionalString (suppl.bridge!="") "-b${suppl.bridge}";
confFileArg = optionalString (suppl.configFile.path!=null) "-c${suppl.configFile.path}";
extraConfFile = pkgs.writeText "supplicant-extra-conf-${replaceChars [" "] ["-"] iface}" ''
${optionalString suppl.userControlled.enable "ctrl_interface=DIR=${suppl.userControlled.socketDir} GROUP=${suppl.userControlled.group}"}
${optionalString suppl.configFile.writable "update_config=1"}
${suppl.extraConf}
'';
in
{ description = "Supplicant ${iface}${optionalString (iface=="WLAN"||iface=="LAN") " %I"}";
wantedBy = [ "network.target" ];
bindsTo = deps;
after = deps;
before = [ "network.target" ];
# Receive restart event after resume
partOf = [ "post-resume.target" ];
path = [ pkgs.coreutils ];
preStart = ''
${optionalString (suppl.configFile.path!=null) ''
touch -a ${suppl.configFile.path}
chmod 600 ${suppl.configFile.path}
''}
${optionalString suppl.userControlled.enable ''
if ! test -e ${suppl.userControlled.socketDir}; then
mkdir -m 0770 -p ${suppl.userControlled.socketDir}
chgrp ${suppl.userControlled.group} ${suppl.userControlled.socketDir}
fi
if test "$(stat --printf '%G' ${suppl.userControlled.socketDir})" != "${suppl.userControlled.group}"; then
echo "ERROR: bad ownership on ${suppl.userControlled.socketDir}" >&2
exit 1
fi
''}
'';
serviceConfig.ExecStart = "${pkgs.wpa_supplicant}/bin/wpa_supplicant -s ${driverArg} ${confFileArg} -I${extraConfFile} ${bridgeArg} ${suppl.extraCmdArgs} ${if (iface=="WLAN"||iface=="LAN") then "-i%I" else (if (iface=="DBUS") then "-u" else ifaceArg)}";
};
in
{
###### interface
options = {
networking.supplicant = mkOption {
type = types.attrsOf types.optionSet;
default = { };
example = {
"wlan0 wlan1" = {
configFile = "/etc/wpa_supplicant";
userControlled.group = "network";
extraConf = ''
ap_scan=1
p2p_disabled=1
'';
extraCmdArgs = "-u -W";
bridge = "br0";
};
};
description = ''
Interfaces for which to start <command>wpa_supplicant</command>.
The supplicant is used to scan for and associate with wireless networks,
or to authenticate with 802.1x capable network switches.
The value of this option is an attribute set. Each attribute configures a
<command>wpa_supplicant</command> service, where the attribute name specifies
the name of the interface that <command>wpa_supplicant</command> operates on.
The attribute name can be a space separated list of interfaces.
The attribute names <literal>WLAN</literal>, <literal>LAN</literal> and <literal>DBUS</literal>
have a special meaning. <literal>WLAN</literal> and <literal>LAN</literal> are
configurations for universal <command>wpa_supplicant</command> service that is
started for each WLAN interface or for each LAN interface, respectively.
<literal>DBUS</literal> defines a device-unrelated <command>wpa_supplicant</command>
service that can be accessed through <literal>D-Bus</literal>.
'';
options = {
configFile = {
path = mkOption {
type = types.path;
example = "/etc/wpa_supplicant.conf";
description = ''
External <literal>wpa_supplicant.conf</literal> configuration file.
The configuration options defined declaratively within <literal>networking.supplicant</literal> have
precedence over options defined in <literal>configFile</literal>.
'';
};
writable = mkOption {
type = types.bool;
default = false;
description = ''
Whether the configuration file at <literal>configFile.path</literal> should be written to by
<literal>wpa_supplicant</literal>.
'';
};
};
extraConf = mkOption {
type = types.lines;
default = "";
example = ''
ap_scan=1
device_name=My-NixOS-Device
device_type=1-0050F204-1
driver_param=use_p2p_group_interface=1
disable_scan_offload=1
p2p_listen_reg_class=81
p2p_listen_channel=1
p2p_oper_reg_class=81
p2p_oper_channel=1
manufacturer=NixOS
model_name=NixOS_Unstable
model_number=2015
'';
description = ''
Configuration options for <literal>wpa_supplicant.conf</literal>.
Options defined here have precedence over options in <literal>configFile</literal>.
NOTE: Do not write sensitive data into <literal>extraConf</literal> as it will
be world-readable in the <literal>nix-store</literal>. For sensitive information
use the <literal>configFile</literal> instead.
'';
};
extraCmdArgs = mkOption {
type = types.str;
default = "";
example = "-e/var/run/wpa_supplicant/entropy.bin";
description =
"Command line arguments to add when executing <literal>wpa_supplicant</literal>.";
};
driver = mkOption {
type = types.nullOr types.str;
default = "nl80211,wext";
description = "Force a specific wpa_supplicant driver.";
};
bridge = mkOption {
type = types.str;
default = "";
description = "Name of the bridge interface that wpa_supplicant should listen at.";
};
userControlled = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Allow normal users to control wpa_supplicant through wpa_gui or wpa_cli.
This is useful for laptop users that switch networks a lot and don't want
to depend on a large package such as NetworkManager just to pick nearby
access points.
'';
};
socketDir = mkOption {
type = types.str;
default = "/var/run/wpa_supplicant";
description = "Directory of sockets for controlling wpa_supplicant.";
};
group = mkOption {
type = types.str;
default = "wheel";
example = "network";
description = "Members of this group can control wpa_supplicant.";
};
};
};
};
};
###### implementation
config = mkIf (cfg != {}) {
environment.systemPackages = [ pkgs.wpa_supplicant ];
services.dbus.packages = [ pkgs.wpa_supplicant ];
systemd.services = mapAttrs' (n: v: nameValuePair (serviceName n) (supplicantService n v)) cfg;
services.udev.packages = [
(pkgs.writeTextFile {
name = "99-zzz-60-supplicant.rules";
destination = "/etc/udev/rules.d/99-zzz-60-supplicant.rules";
text = ''
${flip (concatMapStringsSep "\n") (filter (n: n!="WLAN" && n!="LAN" && n!="DBUS") (attrNames cfg)) (iface:
flip (concatMapStringsSep "\n") (splitString " " iface) (i: ''
ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="${i}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="supplicant-${replaceChars [" "] ["-"] iface}.service", TAG+="SUPPLICANT_ASSIGNED"''))}
${optionalString (hasAttr "WLAN" cfg) ''
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", TAG!="SUPPLICANT_ASSIGNED", TAG+="systemd", PROGRAM="${pkgs.systemd}/bin/systemd-escape -p %E{INTERFACE}", ENV{SYSTEMD_WANTS}+="supplicant-wlan@$result.service"
''}
${optionalString (hasAttr "LAN" cfg) ''
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="lan", TAG!="SUPPLICANT_ASSIGNED", TAG+="systemd", PROGRAM="${pkgs.systemd}/bin/systemd-escape -p %E{INTERFACE}", ENV{SYSTEMD_WANTS}+="supplicant-lan@$result.service"
''}
'';
})];
};
}

View file

@ -100,7 +100,7 @@ in
environment.systemPackages = [ cronNixosPkg ];
environment.etc.crontab =
{ source = pkgs.runCommand "crontabs" { inherit allFiles; }
{ source = pkgs.runCommand "crontabs" { inherit allFiles; preferLocalBuild = true; }
''
touch $out
for i in $allFiles; do

View file

@ -104,6 +104,7 @@ in {
services.xserver.desktopManager.session = singleton
{ name = "gnome3";
bgSupport = true;
start = ''
# Set GTK_DATA_PREFIX so that GTK+ can find the themes
export GTK_DATA_PREFIX=${config.system.path}

View file

@ -378,6 +378,17 @@ in
'';
};
systemHasTPM = mkOption {
default = "";
example = "YES_TPM_is_activated";
type = types.string;
description = ''
Assertion that the target system has an activated TPM. It is a safety
check before allowing the activation of 'enableTrustedBoot'. TrustedBoot
WILL FAIL TO BOOT YOUR SYSTEM if no TPM is available.
'';
};
};
};
@ -453,8 +464,8 @@ in
message = "Trusted GRUB does not have ZFS support";
}
{
assertion = !cfg.enableTrustedBoot;
message = "Trusted GRUB can break your system. Remove assertion if you want to test trustedGRUB nevertheless.";
assertion = !cfg.enableTrustedBoot || cfg.systemHasTPM == "YES_TPM_is_activated";
message = "Trusted GRUB can break the system! Confirm that the system has an activated TPM by setting 'systemHasTPM'.";
}
] ++ flip concatMap cfg.mirroredBoots (args: [
{
@ -477,4 +488,15 @@ in
];
imports =
[ (mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ])
(mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ])
(mkRenamedOptionModule [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ])
(mkRenamedOptionModule [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ])
(mkRenamedOptionModule [ "boot" "grubDevice" ] [ "boot" "loader" "grub" "device" ])
(mkRenamedOptionModule [ "boot" "bootMount" ] [ "boot" "loader" "grub" "bootDevice" ])
(mkRenamedOptionModule [ "boot" "grubSplashImage" ] [ "boot" "loader" "grub" "splashImage" ])
];
}

View file

@ -772,4 +772,11 @@ in
};
# FIXME: Remove these eventually.
imports =
[ (mkRenamedOptionModule [ "boot" "systemd" "sockets" ] [ "systemd" "sockets" ])
(mkRenamedOptionModule [ "boot" "systemd" "targets" ] [ "systemd" "targets" ])
(mkRenamedOptionModule [ "boot" "systemd" "services" ] [ "systemd" "services" ])
];
}

View file

@ -90,7 +90,7 @@ in
serviceConfig.Type = "forking";
serviceConfig.ExecStart = ''
@${pkgs.nfs-utils}/sbin/rpc.statd rpc.statd --no-notify \
${if cfg.statdPort != null then "-p ${toString statdPort}" else ""}
${if cfg.statdPort != null then "-p ${toString cfg.statdPort}" else ""}
'';
serviceConfig.Restart = "always";
};

View file

@ -222,21 +222,15 @@ in
createVswitchDevice = n: v: nameValuePair "${n}-netdev"
(let
managedInterfaces = filter (x: hasAttr x cfg.interfaces) v.interfaces;
managedInterfaceServices = concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) managedInterfaces;
virtualInterfaces = filter (x: (hasAttr x cfg.interfaces) && cfg.interfaces.${x}.virtual) v.interfaces;
virtualInterfaceServices = concatMap (i: [ "${i}-netdev.service" ]) virtualInterfaces;
deps = map subsystemDevice v.interfaces;
ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
in
{ description = "Open vSwitch Interface ${n}";
wantedBy = [ "network.target" "vswitchd.service" (subsystemDevice n) ];
requires = optionals v.bindInterfaces (deps ++ managedInterfaceServices ++ virtualInterfaceServices);
requiredBy = optionals v.bindInterfaces (managedInterfaceServices ++ virtualInterfaceServices);
bindsTo = deps ++ [ "vswitchd.service" ];
wantedBy = [ "network.target" "vswitchd.service" ] ++ deps;
bindsTo = [ "vswitchd.service" (subsystemDevice n) ] ++ deps;
partOf = [ "vswitchd.service" ];
after = [ "network-pre.target" "vswitchd.service" ] ++ deps ++ managedInterfaceServices ++ virtualInterfaceServices;
before = [ "network-interfaces.target" (subsystemDevice n) ];
after = [ "network-pre.target" "vswitchd.service" ] ++ deps;
before = [ "network-interfaces.target" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute config.virtualisation.vswitch.package ];

View file

@ -426,8 +426,8 @@ in
description =
''
This option allows you to define Open vSwitches that connect
physical networks together. The value of this option is an
attribute set. Each attribute specifies a vswitch, with the
physical networks together. The value of this option is an
attribute set. Each attribute specifies a vswitch, with the
attribute name specifying the name of the vswitch's network
interface.
'';
@ -443,16 +443,6 @@ in
"The physical network interfaces connected by the vSwitch.";
};
bindInterfaces = mkOption {
type = types.bool;
default = false;
description = ''
If true, then the interfaces of the vSwitch are brought 'up' and especially
also 'down' together with the vSwitch. That requires that every interfaces
is configured as a systemd network services.
'';
};
controllers = mkOption {
type = types.listOf types.str;
default = [];
@ -995,21 +985,78 @@ in
services.udev.packages = mkIf (cfg.wlanInterfaces != {}) [
(pkgs.writeTextFile {
name = "99-zzz-wlanInterfaces-last.rules";
destination = "/etc/udev/rules.d/99-zzz-wlanInterfaces-last.rules";
text = ''
# If persistent udev device name is not used for an interface, then do not
# call systemd for that udev device name and only execute the script that
# modifies or prepares the WLAN interfaces. All other commands that would
# otherwise be executed when the udev device is added, like, e.g., the calling
# of systemd-sysctl or the activation of wpa_supplicant is disabled when the
# persistend udev device name is not usef for an interface.
${flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (device:
let script = wlanDeviceUdevScript device (wlanListDeviceFirst device wlanDeviceInterfaces."${device}"); in
if hasAttr device cfg.wlanInterfaces
then ''ACTION=="add", SUBSYSTEM=="net", NAME=="${device}", ENV{DEVTYPE}=="wlan", RUN+="${script}"''
else ''ACTION=="add", SUBSYSTEM=="net", NAME=="${device}", ENV{DEVTYPE}=="wlan", NAME="", TAG-="systemd", RUN:="${script}"'')}
'';
name = "99-zzz-40-wlanInterfaces.rules";
destination = "/etc/udev/rules.d/99-zzz-40-wlanInterfaces.rules";
text =
let
# Collect all interfaces that are defined for a device
# as device:interface key:value pairs.
wlanDeviceInterfaces =
let
allDevices = unique (mapAttrsToList (_: v: v.device) cfg.wlanInterfaces);
interfacesOfDevice = d: filterAttrs (_: v: v.device == d) cfg.wlanInterfaces;
in
genAttrs allDevices (d: interfacesOfDevice d);
# Convert device:interface key:value pairs into a list, and if it exists,
# place the interface which is named after the device at the beginning.
wlanListDeviceFirst = device: interfaces:
if hasAttr device interfaces
then mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n==device) interfaces) ++ mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n!=device) interfaces)
else mapAttrsToList (n: v: v // {_iName = n;}) interfaces;
# Udev script to execute for the default WLAN interface with the persistend udev name.
# The script creates the required, new WLAN interfaces interfaces and configures the
# existing, default interface.
curInterfaceScript = device: current: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${device}.sh" ''
#!${pkgs.stdenv.shell}
# Change the wireless phy device to a predictable name.
${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/$INTERFACE/phy80211/name` set name ${device}
# Add new WLAN interfaces
${flip concatMapStrings new (i: ''
${pkgs.iw}/bin/iw phy ${device} interface add ${i._iName} type managed
'')}
# Configure the current interface
${pkgs.iw}/bin/iw dev ${device} set type ${current.type}
${optionalString (current.type == "mesh" && current.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
${optionalString (current.type == "monitor" && current.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
${optionalString (current.type == "managed" && current.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
${optionalString (current.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${current.mac}"}
'';
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
newInterfaceScript = new: pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" ''
#!${pkgs.stdenv.shell}
# Configure the new interface
${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type}
${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
${optionalString (new.type == "monitor" && new.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${new.flags}"}
${optionalString (new.type == "managed" && new.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if new.fourAddr then "on" else "off"}"}
${optionalString (new.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${new.mac}"}
'';
# Udev attributes for systemd to name the device and to create a .device target.
systemdAttrs = n: ''NAME:="${n}", ENV{INTERFACE}:="${n}", ENV{SYSTEMD_ALIAS}:="/sys/subsystem/net/devices/${n}", TAG+="systemd"'';
in
flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (device:
let
interfaces = wlanListDeviceFirst device wlanDeviceInterfaces."${device}";
curInterface = elemAt interfaces 0;
newInterfaces = drop 1 interfaces;
in ''
# It is important to have that rule first as overwriting the NAME attribute also prevents the
# next rules from matching.
${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces."${device}") (interface:
''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript interface}"'')}
# Add the required, new WLAN interfaces to the default WLAN interface with the
# persistent, default name as assigned by udev.
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}, RUN+="${curInterfaceScript device curInterface newInterfaces}"
# Generate the same systemd events for both 'add' and 'move' udev events.
ACTION=="move", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}
'');
}) ];
};

View file

@ -46,12 +46,10 @@ in
storageDriver =
mkOption {
type = types.enum ["aufs" "btrfs" "devicemapper" "overlay" "zfs"];
default = "devicemapper";
description =
''
This option determines which Docker storage driver to use.
It is required but lacks a default value as its most
suitable value will depend the filesystems available on the
host.
'';
};
extraOptions =
@ -129,7 +127,7 @@ in
LimitNPROC = 1048576;
} // proxy_env;
path = [ pkgs.kmod ];
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs);
environment.MODULE_DIR = "/run/current-system/kernel-modules/lib/modules";
postStart = cfg.postStart;

View file

@ -51,7 +51,7 @@ in rec {
(all nixos.tests.chromium)
(all nixos.tests.firefox)
(all nixos.tests.firewall)
(all nixos.tests.gnome3)
nixos.tests.gnome3.x86_64-linux # FIXME: i686-linux
(all nixos.tests.installer.lvm)
(all nixos.tests.installer.luksroot)
(all nixos.tests.installer.separateBoot)

View file

@ -11,6 +11,8 @@ import ./make-test.nix ({ pkgs, ...} : {
{ config, pkgs, ... }:
{
virtualisation.docker.enable = true;
# FIXME: The default "devicemapper" storageDriver fails in NixOS VM
# tests.
virtualisation.docker.storageDriver = "overlay";
};
};

View file

@ -28,7 +28,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
$machine->waitForWindow(qr/Terminal/);
$machine->mustSucceed("timeout 60 bash -c 'journalctl -f|grep -m 1 \"GNOME Shell started\"'");
$machine->mustSucceed("timeout 900 bash -c 'journalctl -f|grep -m 1 \"GNOME Shell started\"'");
$machine->sleep(10);
$machine->screenshot("screen");
'';

View file

@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "Ardour";
repo = "ardour";
rev = "fe672c827cb2c08c94b1fa7e527d884c522a1af7";
sha256 = "12yfy9l5mnl96ix4s2qicp3m2zscli1a4bd50nk9v035pgf77s3f";
rev = "05e3a00b7e3a52a838bc5ec9ee7b3b9e6a271feb";
sha256 = "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00";
};
buildInputs =

View file

@ -0,0 +1,12 @@
--- ../tmp-orig/meterbridge-0.9.2/src/main.h 2003-06-05 11:42:41.000000000 +0200
+++ ./src/main.h 2004-12-29 10:27:24.160912488 +0100
@@ -8,7 +8,7 @@
extern SDL_Surface *screen;
extern SDL_Surface *image, *meter, *meter_buf;
-extern SDL_Rect win, buf_rect[MAX_METERS], dest[MAX_METERS];
+extern SDL_Rect win, dest[MAX_METERS];
extern jack_port_t *input_ports[MAX_METERS];
extern jack_port_t *output_ports[MAX_METERS];

View file

@ -0,0 +1,26 @@
{ stdenv, fetchurl, pkgconfig, SDL, SDL_image, libjack2
}:
stdenv.mkDerivation rec {
version = "0.9.2";
name = "meterbridge-${version}";
src = fetchurl {
url = "http://plugin.org.uk/meterbridge/${name}.tar.gz";
sha256 = "0jb6g3kbfyr5yf8mvblnciva2bmc01ijpr51m21r27rqmgi8gj5k";
};
patches = [ ./buf_rect.patch ];
buildInputs =
[ pkgconfig SDL SDL_image libjack2
];
meta = with stdenv.lib; {
description = "Various meters (VU, PPM, DPM, JF, SCO) for Jack Audio Connection Kit";
homepage = http://plugin.org.uk/meterbridge/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.nico202 ];
};
}

View file

@ -0,0 +1,29 @@
{ stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2, libsndfile,
ladspaH, liblrdf, liblo, libsigcxx
}:
stdenv.mkDerivation rec {
name = "non-${version}";
version = "2015-10-6";
src = fetchFromGitHub {
owner = "original-male";
repo = "non";
rev = "88fe7e7b97c97b8733506685f043cbc71b196646";
sha256 = "15cffp6c14rlssc8g3mrw8zvb88wffb8k8g1vhd299qlcgv7di2h";
};
buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
ladspaH liblrdf liblo libsigcxx
];
configurePhase = ''python waf configure --prefix=$out'';
buildPhase = ''python waf build'';
installPhase = ''python waf install'';
meta = {
description = "Lightweight and lightning fast modular Digital Audio Workstation";
homepage = http://non.tuxfamily.org;
license = stdenv.lib.licenses.lgpl21;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.nico202 ];
};
}

View file

@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec {
name = "yoshimi-${version}";
version = "1.3.5.2";
version = "1.3.6";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "001xvwknsm1sv5lvwz7f6dgf57b8djbpwbyk2gfxjy9rzl5q53qr";
sha256 = "0c2y59m945rrspnwdxmixk92z9nfiayxdxh582gf15nj8bvkh1l6";
};
buildInputs = [

View file

@ -16,6 +16,7 @@ in stdenv.mkDerivation rec {
description = "An online/offline backup solution";
homepage = "http://www.crashplan.org";
license = licenses.unfree;
broken = true; # outdated and new client has trouble starting (nullpointer exception)
maintainers = with maintainers; [ sztupi iElectric ];
};

View file

@ -6,14 +6,14 @@
let
ver_branch = "1.16";
version = "1.16.2";
version = "1.16.3";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "062jj21bjrl29mk66lpihwhrff038h2wny3p6b5asacf2mklf0hq";
sha256 = "0jsvpg86nzwzacnr1bfzw81432j6m6lg2daqgy04ywj976k0x2y8";
};
patches = [ ./fix-paths.patch ];

View file

@ -1,55 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d6e0a9..df4ad28 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,7 +77,9 @@ find_package(Qt5LinguistTools REQUIRED)
# find qt5 imports dir
get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
-exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" RETURN_VALUE return_code OUTPUT_VARIABLE QT_IMPORTS_DIR)
+if(NOT QT_IMPORTS_DIR)
+ exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" RETURN_VALUE return_code OUTPUT_VARIABLE QT_IMPORTS_DIR)
+endif()
# Set components version
set(COMPONENTS_VERSION 2.0)
diff --git a/data/man/sddm.conf.rst.in b/data/man/sddm.conf.rst.in
index 6a28224..798bc5c 100644
--- a/data/man/sddm.conf.rst.in
+++ b/data/man/sddm.conf.rst.in
@@ -65,6 +65,10 @@ OPTIONS
Path of the X server.
Default value is "/usr/bin/X".
+`XephyrPath=`
+ Path of the Xephyr.
+ Default value is "/usr/bin/Xephyr".
+
`XauthPath=`
Path of the Xauth.
Default value is "/usr/bin/xauth".
diff --git a/src/common/Configuration.h b/src/common/Configuration.h
index 72aa6f4..854cc22 100644
--- a/src/common/Configuration.h
+++ b/src/common/Configuration.h
@@ -54,6 +54,7 @@ namespace SDDM {
// TODO: Not absolutely sure if everything belongs here. Xsessions, VT and probably some more seem universal
Section(XDisplay,
Entry(ServerPath, QString, _S("/usr/bin/X"), _S("X server path"));
+ Entry(XephyrPath, QString, _S("/usr/bin/Xephyr"), _S("Xephyr path"));
Entry(XauthPath, QString, _S("/usr/bin/xauth"), _S("Xauth path"));
Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Session description directory"));
Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Xsession script path\n"
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
index f10ad82..cb9de3f 100644
--- a/src/daemon/XorgDisplayServer.cpp
+++ b/src/daemon/XorgDisplayServer.cpp
@@ -136,7 +136,7 @@ namespace SDDM {
if (daemonApp->testing()) {
QStringList args;
args << m_display << "-ac" << "-br" << "-noreset" << "-screen" << "800x600";
- process->start("/usr/bin/Xephyr", args);
+ process->start(mainConfig.XDisplay.XephyrPath.get(), args);
} else {
// set process environment
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();

View file

@ -1,10 +1,8 @@
{ stdenv, fetchpatch, fetchFromGitHub, cmake, pkgconfig, libxcb
, libpthreadstubs, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam
, systemd
}:
{ stdenv, fetchpatch, makeWrapper, fetchFromGitHub, cmake, pkgconfig, libxcb, libpthreadstubs
, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd }:
let
version = "0.11.0";
version = "0.12.0";
in
stdenv.mkDerivation rec {
name = "sddm-${version}";
@ -13,21 +11,25 @@ stdenv.mkDerivation rec {
owner = "sddm";
repo = "sddm";
rev = "v${version}";
sha256 = "1s1gm0xvgwzrpxgni3ngdj8phzg21gkk1jyiv2l2i5ayl0jdm7ig";
sha256 = "09amr61srvl52nvxlqqgs9fzn33pc2gjv5hc83gxx43x6q2j19gg";
};
patches = [ ./sddm-ignore-config-mtime.patch ];
nativeBuildInputs = [ cmake pkgconfig qttools ];
buildInputs = [ libxcb libpthreadstubs libXdmcp libXau qtbase qtdeclarative pam systemd ];
patches = [ (fetchpatch {
url = "https://github.com/sddm/sddm/commit/9bc21ee7da5de6b2531d47d1af4d7b0a169990b9.patch";
sha256 = "1pda0wf4xljdadja7iyh5c48h0347imadg9ya1dw5slgb7w1d94l";
})
./cmake_paths.patch
];
cmakeFlags = [ "-DCONFIG_FILE=/etc/sddm.conf" ];
cmakeFlags = [
"-DCONFIG_FILE=/etc/sddm.conf"
# Set UID_MIN and UID_MAX so that the build script won't try
# to read them from /etc/login.defs (fails in chroot).
# The values come from NixOS; they may not be appropriate
# for running SDDM outside NixOS, but that configuration is
# not supported anyway.
"-DUID_MIN=1000"
"-DUID_MAX=29999"
];
preConfigure = ''
export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/lib/qt5/qml -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"

View file

@ -0,0 +1,16 @@
diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
index 6618455..5356e76 100644
--- a/src/common/ConfigReader.cpp
+++ b/src/common/ConfigReader.cpp
@@ -136,11 +136,6 @@ namespace SDDM {
QString currentSection = QStringLiteral(IMPLICIT_SECTION);
QFile in(m_path);
- QDateTime modificationTime = QFileInfo(in).lastModified();
- if (modificationTime <= m_fileModificationTime) {
- return;
- }
- m_fileModificationTime = modificationTime;
in.open(QIODevice::ReadOnly);
while (!in.atEnd()) {

View file

@ -171,12 +171,12 @@ rec {
checkstyle = buildEclipseUpdateSite rec {
name = "checkstyle-${version}";
version = "6.9.0.201508291549";
version = "6.11.0.201510052139";
src = fetchzip {
stripRoot = false;
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.9.0/net.sf.eclipsecs-updatesite_${version}-bin.zip";
sha256 = "0r6lfbyhqcwa628i6wjp9d6mfp4jnc46bmwp9j7v02m79f8wx74g";
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.11.0/net.sf.eclipsecs-updatesite_${version}-bin.zip";
sha256 = "166nasgv3zsys7rlafvfnldfb6hiwiq3vil3papd59prwvky75fz";
};
meta = with stdenv.lib; {
@ -335,16 +335,16 @@ rec {
testng = buildEclipsePlugin rec {
name = "testng-${version}";
version = "6.9.5.201508210528";
version = "6.9.7.201510070420";
srcFeature = fetchurl {
url = "http://beust.com/eclipse/features/org.testng.eclipse_${version}.jar";
sha256 = "0xalm7pvj0vx61isgkjkgj073b4hlqlzx6xnkrnnnyi0r212a26j";
sha256 = "185m6zcz1havhl94qgwms9szcs7vhrrq8rckbrb1vz02208yyhpn";
};
srcPlugin = fetchurl {
url = "http://beust.com/eclipse/plugins/org.testng.eclipse_${version}.jar";
sha256 = "07wmivfvfsq6cjw5zwciajdxkfa7drk108jsr44gf4i1bv9fj055";
sha256 = "1rw678cd9nm623dvaddncadaclif62zcb15jl7ryzcmck2y380l5";
};
meta = with stdenv.lib; {

View file

@ -47,10 +47,8 @@ stdenv.mkDerivation rec {
imagemagick gconf ]
++ stdenv.lib.optional (withX && withGTK2) gtk2
++ stdenv.lib.optional (withX && withGTK3) gtk3
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo;
propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit Foundation libobjc
];
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo
++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Foundation libobjc ];
NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin
"/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation";

View file

@ -4,7 +4,7 @@ libobjc, Cocoa, WebKit, Quartz, ImageCaptureCore, OSAKit
stdenv.mkDerivation rec {
emacsName = "emacs-24.5";
name = "${emacsName}-mac-5.10";
name = "${emacsName}-mac-5.11";
#builder = ./builder.sh;
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
macportSrc = fetchurl {
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
sha256 = "0d4r4mgqxcdba715lbr7rk4bxz7yjxi6wv63kyh6gaqbfgql41vf";
sha256 = "0p4jh6s1qi6jm6zr82grk65x33ix1hb0fbpih4vh3vnx6310iwsb";
};
NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";

View file

@ -0,0 +1,28 @@
{ stdenv, fetchFromGitHub, emacs }:
let
version = "2.0-82-gfe30ef7";
in
stdenv.mkDerivation {
name = "markdown-mode-${version}";
src = fetchFromGitHub {
owner = "defunkt";
repo = "markdown-mode";
rev = "v${version}";
sha256 = "14a6r05j0g2ppq2q4kd14qyxwr6yv5jwndavbwzkmp6qhmm9k8nz";
};
buildInputs = [ emacs ];
buildPhase = ''
emacs -L . --batch -f batch-byte-compile *.el
'';
installPhase = ''
install -d $out/share/emacs/site-lisp
install *.el *.elc $out/share/emacs/site-lisp
'';
meta.license = stdenv.lib.licenses.gpl3Plus;
}

View file

@ -2,11 +2,11 @@
, texLiveAggregationFun }:
stdenv.mkDerivation rec {
name = "org-8.3.1";
name = "org-8.3.2";
src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz";
sha256 = "0cn3k02b2dhp489rrlaz4g91h0ph99a7721gm8x7axicqhpv04rx";
sha256 = "1f3mi1g4s8psfzq8mfbq3sccj7hsxvcfww0gf4337xs6jp8i3s4a";
};
buildInputs = [ emacs ];

View file

@ -1,7 +1,7 @@
{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
let
version = "1.24.1";
version = "1.25";
in
stdenv.mkDerivation rec {
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.geany.org/${name}.tar.bz2";
sha256 = "0cwci8876dpgcn60dfvjlciqr8x68iv86psjj148grhzn3chbdbz";
sha256 = "8ee41da28cead8c94d433e616d7ababa81727c63e9196ca6758ade3af14a49ef";
};
buildInputs = [ gtk2 which pkgconfig intltool file ];

View file

@ -0,0 +1,6 @@
{ runCommand, makeWrapper, geany, gnome }:
let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name;
in
runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; } "
makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome.vte}/lib
"

View file

@ -212,14 +212,14 @@ in
android-studio = buildAndroidStudio rec {
name = "android-studio-${version}";
version = "1.2.2.0";
build = "141.1980579";
version = "1.4.0.10";
build = "141.2288178";
description = "Android development environment based on IntelliJ IDEA";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
"/android-studio-ide-${build}-linux.zip";
sha256 = "08bayp2kxxg0zdmd1rcfg89g80wmwxf56fzmk5xkz1qg6s9b98a6";
sha256 = "04zzzk6xlvzip6klxvs4zz2wyfyn3w9b5jwilzbqjidiz2d3va57";
};
};

View file

@ -14,7 +14,7 @@ with stdenv.lib;
let
version = "2015-06-09";
version = "2015-10-12";
# Note: this is NOT the libvterm already in nixpkgs, but some NIH silliness:
neovimLibvterm = let version = "2015-02-23"; in stdenv.mkDerivation {
@ -58,8 +58,8 @@ let
name = "neovim-${version}";
src = fetchFromGitHub {
sha256 = "1lycql0lwi7ynrsaln4kxybwvxb9fvganiq3ba4pnpcfgl155k1j";
rev = "6270d431aaeed71e7a8782411f36409ab8e0ee35";
sha256 = "1rlybdldz708pz7k0qs2rpm0cjk8ywwyj5s38hyq4mzsswqszdsc";
rev = "a3f048ee06dea15490d7b874d295c3fc850cdc51";
repo = "neovim";
owner = "neovim";
};
@ -103,7 +103,7 @@ let
'' + optionalString withPython ''
ln -s ${pythonEnv}/bin/python $out/bin/nvim-python
'' + optionalString withPython3 ''
ln -s ${python3Env}/bin/python $out/bin/nvim-python3
ln -s ${python3Env}/bin/python3 $out/bin/nvim-python3
'' + optionalString (withPython || withPython3) ''
wrapProgram $out/bin/nvim --add-flags "${
(optionalString withPython

View file

@ -20,14 +20,14 @@ let
'';
in
stdenv.mkDerivation rec{
version = "8.0";
scintillua_version = "3.5.5-1";
version = "8.2";
scintillua_version = "3.6.0-1";
name = "textadept-${version}";
inherit buildInputs;
src = fetchhg {
url = http://foicica.com/hg/textadept;
rev = "textadept_${version}";
sha256 = "18kcphqkn0l77dbcyvywy3wh13ib280bb0qsffaqy439gk5zr7ql";
sha256 = "1vb6a15fyk7ixcv5fy0g400lxbj6dp5ndbmyx53d28idbdkz9ap1";
};
preConfigure = ''
cd src
@ -35,16 +35,17 @@ stdenv.mkDerivation rec{
echo '#! ${stdenv.shell}' > wget/wget
chmod a+x wget/wget
export PATH="$PATH:$PWD/wget"
${get_url http://prdownloads.sourceforge.net/scintilla/scintilla355.tgz "11n49h58xh35vj1j85cxasl93rjiv699c5cs5lpv19skfsgs3sb4"}
${get_url http://prdownloads.sourceforge.net/scintilla/scintilla360.tgz "07ib4w3n9kqfaia2yngj2q7ab5r55zn0hccfzph6vas9hl8vk9zf"}
${get_url http://foicica.com/scinterm/download/scinterm_1.6.zip "0ixwj9il6ri1xl4nvb6f108z4qhrahysza6frbbaqmbdz21hnmcl"}
${get_url http://foicica.com/scintillua/download/scintillua_3.5.5-1.zip "0bpz5rmgaisbimhm6rpn961mbv30cwqid7kh9lad94v3y9ppvf35"}
${get_url http://www.lua.org/ftp/lua-5.3.0.tar.gz "00fv1p6dv4701pyjrlvkrr6ykzxqy9hy1qxzj6qmwlb0ssr5wjmf"}
${get_url http://foicica.com/scintillua/download/scintillua_3.6.0-1.zip "0zk1ciyyi0d3dz4dzzq5fa74505pvqf0w5yszl7l29c1l4hkk561"}
${get_url http://www.lua.org/ftp/lua-5.3.1.tar.gz "05xczy5ws6d7ic3f9h9djwg983bpa4pmds3698264bncssm6f9q7"}
${get_url http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-0.12.2.tar.gz "01002avq90yc8rgxa5z9a1768jm054iid3pnfpywdcfij45jgbba"}
${get_url_zip http://github.com/keplerproject/luafilesystem/archive/v_1_6_3.zip "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri"}
${get_url http://foicica.com/lspawn/download/lspawn_1.2.zip "1fhfi274bxlsdvva5q5j0wv8hx68cmf3vnv9spllzad4jdvz82xv"}
${get_url http://luajit.org/download/LuaJIT-2.0.3.tar.gz "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm"}
${get_url http://foicica.com/gtdialog/download/gtdialog_1.2.zip "0nvcldyhj8abr8jny9pbyfjwg8qfp9f2h508vjmrvr5c5fqdbbm0"}
${get_url http://invisible-island.net/datafiles/release/cdk.tar.gz "00s87kq5x10x22azr6q17b663syk169y3dk3kaj8z6dlk2b8vknp"}
${get_url ftp://invisible-island.net/cdk/cdk-5.0-20150928.tgz "028da75d5f777a1c4184f88e34918bd273bd83bbe3c959bc11710c4f0ea2e448"}
mv cdk-*.tgz cdk.tar.gz
${get_url_zip http://foicica.com/hg/bombay/archive/d704272c3629.zip "19dg3ky87rfy0a3319vmv18hgn9spplpznvlqnk3djh239ddpplw"}
mv d704*.zip bombay.zip
${get_url http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.17.tar.gz "12gkrv1ldwk945qbpprnyawh0jz7rmqh18fyndbxiajyxmj97538"}

View file

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, ncurses, gettext, pkgconfig
# apple frameworks
, CoreServices, CoreData, Cocoa, Foundation, libobjc }:
, CoreServices, CoreData, Cocoa, Foundation, libobjc, cf-private }:
stdenv.mkDerivation rec {
name = "vim-${version}";
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
buildInputs = [ ncurses pkgconfig ]
++ stdenv.lib.optionals stdenv.isDarwin [ CoreData CoreServices Cocoa Foundation libobjc ];
++ stdenv.lib.optionals stdenv.isDarwin [ cf-private CoreData CoreServices Cocoa Foundation libobjc ];
nativeBuildInputs = [ gettext ];
configureFlags = [

View file

@ -2,15 +2,15 @@
libharu, opencv, vigra, postgresql }:
stdenv.mkDerivation rec {
name = "saga-2.2.0";
name = "saga-2.2.1";
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
enableParallelBuilding = true;
src = fetchurl {
url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.2/SAGA%202.2.0/saga_2.2.0.tar.gz";
sha256 = "50b2e642331c817606bc954302e53757c4ffa6f6d6f468e12caeaaa7a182edaf";
url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.2/SAGA%202.2.1/saga_2.2.1.tar.gz";
sha256 = "325e0890c28dc19c4ec727f58672be67480b2a4dd6604252c0cc4cc08aad34d0";
};
meta = {

View file

@ -2,14 +2,15 @@
, libXinerama, curl, libexif }:
stdenv.mkDerivation rec {
name = "feh-2.13.1";
name = "feh-2.14";
src = fetchurl {
url = "http://feh.finalrewind.org/${name}.tar.bz2";
sha256 = "1059mflgw8hl398lwy55fj50a98xryvdf23wkpbn4s0z9388hl46";
sha256 = "0j5wxpqccnd0hl74z2vwv25n7qnik1n2mcm2jn0c0z7cjn4wsa9q";
};
buildInputs = [ makeWrapper xlibsWrapper imlib2 libjpeg libpng libXinerama curl libexif ];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ xlibsWrapper imlib2 libjpeg libpng libXinerama curl libexif ];
preBuild = ''
makeFlags="PREFIX=$out exif=1"

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb
, libxml2, makeWrapper, packagekit, pkgconfig, saneBackends, systemd, vala }:
let version = "3.18.0"; in
let version = "3.18.1"; in
stdenv.mkDerivation rec {
name = "simple-scan-${version}";
src = fetchurl {
sha256 = "09qki4h1px65fxwpr7jppzqsi5cfcb8168p13blp3wcfizjgb9gl";
sha256 = "1i37j36kbn1h8yfzcvbis6f38xz2nj5512ls3gb0j5na0bvja2cw";
url = "https://launchpad.net/simple-scan/3.18/${version}/+download/${name}.tar.xz";
};

View file

@ -1,14 +1,18 @@
{ stdenv, fetchurl, pkgconfig, gtk2, libpng, exiv2, lcms
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk2, libpng, exiv2, lcms
, intltool, gettext, shared_mime_info, glib, gdk_pixbuf, perl}:
stdenv.mkDerivation rec {
name = "viewnior-1.4";
name = "viewnior-${version}";
version = "1.5";
src = fetchurl {
url = "https://www.dropbox.com/s/zytq0suabesv933/${name}.tar.gz";
sha256 = "0vv1133phgfzm92md6bbccmcvfiqb4kz28z1572c0qj971yz457a";
src = fetchFromGitHub {
owner = "xsisqox";
repo = "Viewnior";
rev = name;
sha256 = "0y352hkkwmzb13a87vqgj1dpdn81qk94acby1a93xkqr1qs626lw";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs =
[ pkgconfig gtk2 libpng exiv2 lcms intltool gettext
shared_mime_info glib gdk_pixbuf perl
@ -30,7 +34,7 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.gpl3;
homepage = http://xsisqox.github.com/Viewnior;
homepage = http://siyanpanayotov.com/project/viewnior/;
maintainers = [ stdenv.lib.maintainers.smironov ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, requireFile, makeWrapper, unzip, jre }:
stdenv.mkDerivation rec {
name = "yEd-3.14.3";
name = "yEd-3.14.4";
src = requireFile {
name = "${name}.zip";
url = "https://www.yworks.com/en/products/yfiles/yed/";
sha256 = "0xgazknbz82sgk65hxmvbycl1vd25z80a7jgwjgw7syicrgmplcl";
sha256 = "0pm271ss6cq2s6cv9ww92haaq2abkjxd9dvc8d72h6af5awv8xy6";
};
nativeBuildInputs = [ unzip makeWrapper ];

View file

@ -63,6 +63,6 @@ let
print-manager = callPackage ./print-manager.nix {};
};
newScope = scope: pkgs.kf513.newScope ({ inherit kdeApp; } // scope);
newScope = scope: pkgs.kf514.newScope ({ inherit kdeApp; } // scope);
in lib.makeScope newScope packages

View file

@ -9,29 +9,38 @@ EXTRA_WGET_ARGS='-A *.tar.xz'
mkdir tmp; cd tmp
rm -f ../srcs.csv
wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS
find . | while read src; do
if [[ -f "${src}" ]]; then
# Sanitize file name
filename=$(basename "$src" | tr '@' '_')
nameVersion="${filename%.tar.*}"
name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
echo "$name,$version,$src,$filename" >>../srcs.csv
fi
done
cat >../srcs.nix <<EOF
# DO NOT EDIT! This file is generated automatically by manifest.sh
# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
{ fetchurl, mirror }:
{
EOF
workdir=$(pwd)
find . | while read src; do
if [[ -f "${src}" ]]; then
url="${src:2}"
# Sanitize file name
filename=$(basename "$src" | tr '@' '_')
nameversion="${filename%.tar.*}"
name=$(echo "$nameversion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
version=$(echo "$nameversion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
cat >>../srcs.nix <<EOF
gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do
versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv)
latestVersion=$(echo "$versions" | sort -rV | head -n 1)
src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv)
filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv)
url="${src:2}"
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
cat >>../srcs.nix <<EOF
$name = {
version = "$version";
version = "$latestVersion";
src = fetchurl {
url = "\${mirror}/$url";
sha256 = "$sha256";
@ -39,9 +48,10 @@ find . | while read src; do
};
};
EOF
fi
done
echo "}" >>../srcs.nix
rm -f ../srcs.csv
cd ..

View file

@ -0,0 +1,47 @@
diff --git a/kdecore/kernel/kstandarddirs.cpp b/kdecore/kernel/kstandarddirs.cpp
index ab8f76d..2ae5089 100644
--- a/kdecore/kernel/kstandarddirs.cpp
+++ b/kdecore/kernel/kstandarddirs.cpp
@@ -1768,12 +1768,6 @@ void KStandardDirs::addKDEDefaults()
else
{
xdgdirList.clear();
- xdgdirList.append(QString::fromLatin1("/etc/xdg"));
-#ifdef Q_WS_WIN
- xdgdirList.append(installPath("kdedir") + QString::fromLatin1("etc/xdg"));
-#else
- xdgdirList.append(QFile::decodeName(KDESYSCONFDIR "/xdg"));
-#endif
}
QString localXdgDir = readEnvPath("XDG_CONFIG_HOME");
@@ -1821,10 +1815,6 @@ void KStandardDirs::addKDEDefaults()
}
} else {
xdgdirList = kdedirDataDirs;
-#ifndef Q_WS_WIN
- xdgdirList.append(QString::fromLatin1("/usr/local/share/"));
- xdgdirList.append(QString::fromLatin1("/usr/share/"));
-#endif
}
localXdgDir = readEnvPath("XDG_DATA_HOME");
diff --git a/solid/solid/xdgbasedirs.cpp b/solid/solid/xdgbasedirs.cpp
index 4c9cad9..6849d45 100644
--- a/solid/solid/xdgbasedirs.cpp
+++ b/solid/solid/xdgbasedirs.cpp
@@ -70,12 +70,12 @@ QStringList Solid::XdgBaseDirs::systemPathList( const char *resource )
{
if ( qstrncmp( "data", resource, 4 ) == 0 ) {
if ( instance()->mDataDirs.isEmpty() ) {
- instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "/usr/local/share:/usr/share" );
+ instance()->mDataDirs = instance()->systemPathList( "XDG_DATA_DIRS", "" );
}
return instance()->mDataDirs;
} else if ( qstrncmp( "config", resource, 6 ) == 0 ) {
if ( instance()->mConfigDirs.isEmpty() ) {
- instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "/etc/xdg" );
+ instance()->mConfigDirs = instance()->systemPathList( "XDG_CONFIG_DIRS", "" );
}
return instance()->mConfigDirs;
}

View file

@ -21,6 +21,7 @@ kdeApp {
patches = [
./0001-old-kde4-cmake-policies.patch
./0002-polkit-install-path.patch
./0003-remove_xdg_impurities.patch
];
# cmake does not detect path to `ilmbase`

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
{ stdenv, lib, fetchurl, fetchpatch, SDL, boost, cmake, ffmpeg, gettext, glew
{ stdenv, lib, fetchurl, SDL, boost, cmake, ffmpeg, gettext, glew
, ilmbase, libXi, libjpeg, libpng, libsamplerate, libsndfile
, libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg, python
, zlib, fftw
, zlib, fftw, opensubdiv
, jackaudioSupport ? false, libjack2
, cudaSupport ? false, cudatoolkit
, colladaSupport ? true, opencollada
@ -10,17 +10,18 @@
with lib;
stdenv.mkDerivation rec {
name = "blender-2.75a";
name = "blender-2.76";
src = fetchurl {
url = "http://download.blender.org/source/${name}.tar.gz";
sha256 = "09lxb2li70p6fg7hbakin9ffy3b3101c1gdjqi3pykks5q3h9sq4";
sha256 = "0daqirvlr0bwgrgrr7igyl8rcgjvpvrgns76z2z57kdxi6d696av";
};
buildInputs =
[ SDL boost cmake ffmpeg gettext glew ilmbase libXi
libjpeg libpng libsamplerate libsndfile libtiff mesa openal
opencolorio openexr openimageio /* openjpeg */ python zlib fftw
(opensubdiv.override { inherit cudaSupport; })
]
++ optional jackaudioSupport libjack2
++ optional cudaSupport cudatoolkit
@ -41,6 +42,7 @@ stdenv.mkDerivation rec {
"-DWITH_GAMEENGINE=ON"
"-DWITH_OPENCOLORIO=ON"
"-DWITH_PLAYER=ON"
"-DWITH_OPENSUBDIV=ON"
"-DPYTHON_LIBRARY=python${python.majorVersion}m"
"-DPYTHON_LIBPATH=${python}/lib"
"-DPYTHON_INCLUDE_DIR=${python}/include/python${python.majorVersion}m"

View file

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "calibre-${version}";
version = "2.38.0";
version = "2.40.0";
src = fetchurl {
url = "https://github.com/kovidgoyal/calibre/releases/download/v${version}/${name}.tar.xz";
sha256 = "075axil53djss99fj9drfh5cvxdbjw6z5z5qk53vm13k5pw6bmhn";
sha256 = "1xzf910w3c15vajnlra32xzi0gwb4z7a9m9w5nfj0by2wss3fv7n";
};
inherit python;

View file

@ -1,5 +1,6 @@
{ stdenv, fetchzip, buildPythonPackage, docbook2x, libxslt, gnome_doc_utils
, intltool, dbus_glib, pygobject, pygtk, pyxdg, gnome_python, dbus, sqlite3
, hicolor_icon_theme
}:
# TODO: Add optional dependency 'wnck', for "workspace tracking" support. Fixes
@ -17,7 +18,9 @@ buildPythonPackage rec {
sha256 = "1a85rcg561792kdyv744cgzw7mmpmgv6d6li1sijfdpqa1ninf8g";
};
buildInputs = [ docbook2x libxslt gnome_doc_utils intltool dbus_glib ];
buildInputs = [
docbook2x libxslt gnome_doc_utils intltool dbus_glib hicolor_icon_theme
];
propagatedBuildInputs = [ pygobject pygtk pyxdg gnome_python dbus sqlite3 ];

View file

@ -1,12 +1,14 @@
{ stdenv, fetchgit }:
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
name = "urxvt-perls-2015-03-28";
stdenv.mkDerivation rec {
name = "urxvt-perls-${version}";
version = "2.2";
src = fetchgit {
url = "git://github.com/muennich/urxvt-perls";
rev = "e4dbde31edd19e2f4c2b6c91117ee91e2f83ddd7";
sha256 = "1f8a27c3d54377fdd4ab0be2f4efb8329d4900bb1c792b306dc23b5ee59260b1";
src = fetchFromGitHub {
owner = "muennich";
repo = "urxvt-perls";
rev = version;
sha256 = "1cb0jbjmwfy2dlq2ny8wpc04k79jp3pz9qhbmgagsxs3sp1jg2hz";
};
installPhase = ''

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl,
{ stdenv, fetchurl, fetchpatch, perlSupport, libX11, libXt, libXft, ncurses, perl,
fontconfig, freetype, pkgconfig, libXrender, gdkPixbufSupport, gdk_pixbuf,
unicode3Support }:
@ -28,6 +28,10 @@ stdenv.mkDerivation (rec {
patches = [
./rxvt-unicode-9.06-font-width.patch
./rxvt-unicode-256-color-resources.patch
(fetchpatch {
url = "https://raw.githubusercontent.com/mina86/urxvt-tabbedex/ad4f54c8b8d3a01fc17975fd3fd14aa674c07d2b/rxvt-unicode-scroll-bug-fix.patch";
sha256 = "1ild0r6y7jb800yiss5pgd4k60s7l9njv3nn3x280yvg1lx6ihpg";
})
]
++ stdenv.lib.optional stdenv.isDarwin ./rxvt-unicode-makefile-phony.patch;

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, intltool, pkgconfig, glib, libnotify, gtk3, libgee
, keybinder3, json_glib, zeitgeist, vala
, keybinder3, json_glib, zeitgeist, vala, hicolor_icon_theme
}:
with stdenv.lib;
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
buildInputs = [
intltool pkgconfig glib libnotify gtk3 libgee keybinder3 json_glib zeitgeist
vala
vala hicolor_icon_theme
];
meta = {

View file

@ -0,0 +1,20 @@
{ stdenv, fetchurl, mpfr, readline }:
stdenv.mkDerivation rec {
name = "wcalc-${version}";
version = "2.5";
src = fetchurl {
url = "mirror://sourceforge/w-calc/${name}.tar.bz2";
sha256 = "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f";
};
buildInputs = [ mpfr readline ];
meta = with stdenv.lib; {
description = "A command line calculator";
homepage = http://w-calc.sourceforge.net;
license = licenses.gpl2;
platforms = platforms.all;
};
}

View file

@ -7,10 +7,10 @@
sha256bin64 = "1ycdp37ikdc9w4hp9qgpzjp47zh37g01ax8x4ack202vrv0dxhsh";
};
beta = {
version = "46.0.2490.42";
sha256 = "0nw6sc6vc5vm5j133hrjq06bibaljq5calqlmzha8ckx21zrr5yy";
sha256bin32 = "1a1xi4w7f16chb9w1c102ya7890lj31c0fyyrwgvmpymlw9msnh0";
sha256bin64 = "11758h6674d7g6c5bb820x1pg5z9q78j582kd0sa0p73g5888wd0";
version = "46.0.2490.52";
sha256 = "00sgb1pnp3fcijwdwpngnnddmn5nrbljsqz7f6dlnd63qfc91xjw";
sha256bin32 = "10jgcxc2zwffg8lxi55zl9apql6pyxh1g1n3z46gcb6j6am4y5m5";
sha256bin64 = "0i839ir4qcjl9llpqnwy793hvbdfh898x1izc5k93h7nm6i34ry9";
};
stable = {
version = "45.0.2454.101";

View file

@ -36,7 +36,7 @@
let
# -> http://get.adobe.com/flashplayer/
version = "11.2.202.508";
version = "11.2.202.535";
src =
if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec {
inherit version;
url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "1i0301vnz94pxcwm9wk1jjyv7gwywy6p7z26ikd5cg259myxbg75";
sha256 = "13fy842plbnv4w081sbhga0jrpbwz8yydg49c2v96l2marmzw9zp";
}
else if stdenv.system == "i686-linux" then
if debug then
@ -60,7 +60,7 @@ let
else rec {
inherit version;
url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "1483bi34ymchv1cqg57whxhlrhhvwhcw33zjgwzmy7bacxbkj9ia";
sha256 = "0z99nz1k0cf86dgs367ddxfnf05m32psidpmdzi5qiqaj10h6j6s";
}
else throw "Flash Player is not supported on this platform";
@ -91,5 +91,6 @@ stdenv.mkDerivation {
description = "Adobe Flash Player browser plugin";
homepage = http://www.adobe.com/products/flashplayer/;
license = stdenv.lib.licenses.unfree;
maintainers = [ stdenv.lib.maintainers.enolan ];
};
}

View file

@ -50,8 +50,9 @@ stdenv.mkDerivation rec {
preFixup =
''
rm $out/bin/uninstall-opera
find $out/lib/opera -type f | while read f; do
type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
type=$(readelf -h "$f" 2>/dev/null | sed -n 's/ *Type: *\([A-Z]*\).*/\1/p' || true)
if [ -z "$type" ]; then
:
elif [ $type == "EXEC" ]; then

View file

@ -1,7 +1,7 @@
{ stdenv, fetchgit, python, buildPythonPackage, qt5, pyqt5, jinja2, pygments, pyyaml, pypeg2,
gst_plugins_base, gst_plugins_good, gst_ffmpeg }:
let version = "0.4.0"; in
let version = "0.4.1"; in
buildPythonPackage {
name = "qutebrowser-${version}";
@ -9,8 +9,8 @@ buildPythonPackage {
src = fetchgit {
url = "https://github.com/The-Compiler/qutebrowser.git";
rev = "e11fcda240eaad1b83b26c7d6424c427d2ad3b96";
sha256 = "0hpd6fibzcl0s6jrsj60rs12dyliwr05r8h9wvngh19a3pmg8q74";
rev = "8d9e9851f1dcff5deb6363586ad0f1edec040b72";
sha256 = "1qsdad10swnk14qw4pfyvb94y6valhkscyvl46zbxxs7ck6llsm2";
};
# Needs tox

View file

@ -1,12 +1,12 @@
{ stdenv, fetchFromGitHub, cppcheck, libmrss }:
let version = "2015-09-06"; in
let version = "2.1"; in
stdenv.mkDerivation rec {
name = "rsstail-${version}";
src = fetchFromGitHub {
sha256 = "1rfzib5fzm0i8wf3njld1lvxgbci0hxxnvp2qx1k4bwpv744xkpx";
rev = "16636539e4cc75dafbfa7f05539769be7dad4b66";
sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6";
rev = "6f2436185372b3f945a4989406c4b6a934fe8a95";
repo = "rsstail";
owner = "flok99";
};
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional doCheck cppcheck;
postPatch = ''
substituteInPlace Makefile --replace -liconv ""
substituteInPlace Makefile --replace -liconv_hook ""
'';
makeFlags = "prefix=$(out)";

View file

@ -1,18 +1,27 @@
{ stdenv, fetchurl, ocamlPackages, zlib }:
{ stdenv, fetchFromGitHub, ocamlPackages, zlib }:
stdenv.mkDerivation rec {
name = "google-drive-ocamlfuse-0.5.12";
src = fetchurl {
url = "https://forge.ocamlcore.org/frs/download.php/1489/${name}.tar.gz";
sha256 = "0yfzzrv4h7vplw6qjm9viymy51jaqqari012agar96zwa86fsrdr";
name = "google-drive-ocamlfuse-${version}";
version = "0.5.18";
src = fetchFromGitHub {
owner = "astrada";
repo = "google-drive-ocamlfuse";
rev = "v${version}";
sha256 = "0a545zalsqw3jndrvkc0bsn4aab74cf8lwnsw09b5gjm8pm79b9r";
};
buildInputs = [ zlib ] ++ (with ocamlPackages; [ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl]);
configurePhase = "ocaml setup.ml -configure --prefix \"$out\"";
buildPhase = "ocaml setup.ml -build";
installPhase = "ocaml setup.ml -install";
meta = {
homepage = http://gdfuse.forge.ocamlcore.org/;
description = "A FUSE-based file system backed by Google Drive, written in OCaml";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ obadz ];
};
}

View file

@ -10,7 +10,15 @@ stdenv.mkDerivation rec {
sha256 = "1gmlrh9ygpd5h6nnrr4090wk5n2yq2yrvwi7q6xbm6lxj4rcamyv";
};
buildInputs = [ libpcap pcre libdnet daq zlib flex bison ];
buildInputs = [ makeWrapper libpcap pcre libdnet daq zlib flex bison ];
enableParallelBuilding = true;
configureFlags = "--disable-static-daq --enable-control-socket --with-daq-includes=${daq}/includes --with-daq-libraries=${daq}/lib";
postInstall = ''
wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine"
'';
meta = {
description = "Network intrusion prevention and detection system (IDS/IPS)";

View file

@ -4,11 +4,11 @@
, gsm, speex, portaudio, spandsp, libuuid
}:
stdenv.mkDerivation rec {
version = "0.4.14";
version = "0.4.15";
name = "baresip-${version}";
src=fetchurl {
url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
sha256 = "19vn63j6dpybjy14mgnwf0yk2jbcbfdjs50whzwyrrkcv6ipj6hc";
sha256 = "13712li6y3ikwzl17j46w25xyv3z98yqj7zpr3jifyvbna9ls5r3";
};
buildInputs = [zlib openssl libre librem pkgconfig
cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good

View file

@ -7,7 +7,6 @@
, enableRST ? true
, enableSpelling ? true, gtkspell ? null
, enableNotifications ? false
, enableLaTeX ? false, texLive ? null
}:
assert enableJingle -> farstream != null && gst_plugins_bad != null
@ -16,17 +15,16 @@ assert enableE2E -> pythonPackages.pycrypto != null;
assert enableRST -> pythonPackages.docutils != null;
assert enableSpelling -> gtkspell != null;
assert enableNotifications -> pythonPackages.notify != null;
assert enableLaTeX -> texLive != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "gajim-${version}";
version = "0.16.3";
version = "0.16.4";
src = fetchurl {
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
sha256 = "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51";
sha256 = "0zyfs7q1qg8iqszr8l1gb18gqla6zrrfsgpmbxblpi9maqxas5i1";
};
patches = [
@ -51,11 +49,6 @@ stdenv.mkDerivation rec {
'' + optionalString enableSpelling ''
sed -i -e 's|=.*find_lib.*|= "${gtkspell}/lib/libgtkspell.so"|' \
src/gtkspell.py
'' + optionalString enableLaTeX ''
sed -i -e "s|try_run(.'dvipng'|try_run(['${texLive}/bin/dvipng'|" \
-e "s|try_run(.'latex'|try_run(['${texLive}/bin/latex'|" \
-e 's/tmpfd.close()/os.close(tmpfd)/' \
src/common/latex.py
'';
buildInputs = [
@ -68,8 +61,7 @@ stdenv.mkDerivation rec {
] ++ optionals enableJingle [ farstream gst_plugins_bad libnice ]
++ optional enableE2E pythonPackages.pycrypto
++ optional enableRST pythonPackages.docutils
++ optional enableNotifications pythonPackages.notify
++ optional enableLaTeX texLive;
++ optional enableNotifications pythonPackages.notify;
postInstall = ''
install -m 644 -t "$out/share/gajim/icons/hicolor" \

View file

@ -0,0 +1,36 @@
{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json_glib }:
let
rev = "b92a05c67e";
date = "2015-10-02";
in
stdenv.mkDerivation rec {
name = "pidgin-skypeweb-${date}-${rev}";
src = fetchFromGitHub {
owner = "EionRobb";
repo = "skype4pidgin";
rev = "${rev}";
sha256 = "00r57w9iwx2yp68ld6f3zkhf53vsk679b42w3xxla6bqblpcxzxl";
};
sourceRoot = "skype4pidgin-${rev}-src/skypeweb";
buildInputs = [ pkgconfig pidgin json_glib ];
makeFlags = [
"PLUGIN_DIR_PURPLE=/lib/pidgin/"
"DATA_ROOT_DIR_PURPLE=/share"
"DESTDIR=$(out)"
];
postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-skypeweb";
meta = with stdenv.lib; {
homepage = https://github.com/EionRobb/skype4pidgin;
description = "SkypeWeb Plugin for Pidgin";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ jgeerds ];
};
}

View file

@ -1,18 +1,18 @@
{ stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype
, xorg, fontconfig, qt5, xkeyboard_config, alsaLib, libpulseaudio ? null
, xorg, fontconfig, qt55, xkeyboard_config, alsaLib, libpulseaudio ? null
, libredirect, quazip, less, which, unzip
}:
let
arch = if stdenv.is64bit then "amd64" else "x86";
libDir = if stdenv.is64bit then "lib64" else "lib";
deps =
[ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender
xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qt5.base libpulseaudio
xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qt55.qtbase libpulseaudio
];
desktopItem = makeDesktopItem {
@ -30,7 +30,7 @@ in
stdenv.mkDerivation rec {
name = "teamspeak-client-${version}";
version = "3.0.16";
version = "3.0.18.1";
src = fetchurl {
urls = [
@ -38,9 +38,9 @@ stdenv.mkDerivation rec {
"http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
"http://files.teamspeak-services.com/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
];
sha256 = if stdenv.is64bit
then "0gvphrmrkyy1g2nprvdk7cvawznzlv4smw0mlvzd4b9mvynln0v2"
else "1b3nbvfpd8lx3dig8z5yk6zjkbmsy6y938dhj1f562wc8adixciz";
sha256 = if stdenv.is64bit
then "1bc9m2niagqmijmzlki8jmp48vhns041xdjlji9fyqay6l5mx5fw"
else "156dirxjys7pbximw19qs7j52my36p4kp98df3kgrsiiv8mz6v68";
};
# grab the plugin sdk for the desktop icon
@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
installPhase =
''
# Delete unecessary libraries - these are provided by nixos.
rm *.so.*
rm *.so.* *.so
rm qt.conf
# Install files.
@ -89,15 +89,16 @@ stdenv.mkDerivation rec {
ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client
wrapProgram $out/bin/ts3client \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so:${quazip}/lib/libquazip.so" \
--set LD_LIBRARY_PATH "${quazip}/lib" \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--set QT_PLUGIN_PATH "$out/lib/teamspeak/platforms" \
--set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
'';
dontStrip = true;
dontPatchELF = true;
meta = {
meta = {
description = "The TeamSpeak voice communication tool";
homepage = http://teamspeak.com/;
license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest";

View file

@ -29,7 +29,7 @@
with stdenv.lib;
let version = "3.11.1"; in
let version = "3.12.0"; in
stdenv.mkDerivation {
name = "claws-mail-${version}";
@ -40,16 +40,20 @@ stdenv.mkDerivation {
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.khumba ];
priority = 10; # Resolve the conflict with the share/mime link we create.
};
src = fetchurl {
url = "http://downloads.sourceforge.net/project/claws-mail/Claws%20Mail/${version}/claws-mail-${version}.tar.bz2";
sha256 = "0w13xzri9d3165qsxf1dig1f0gxn3ib4lysfc9pgi4zpyzd0zgrw";
url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
sha256 = "1jnnwivpcplv8x4w0ibb1qcnasl37fr53lbfybhgb936l2mdcai7";
};
patches = [ ./mime.patch ];
postPatch = ''
substituteInPlace src/procmime.c \
--subst-var-by MIMEROOTDIR ${shared_mime_info}/share
'';
buildInputs =
[ curl dbus dbus_glib gtk gnutls hicolor_icon_theme
libetpan perl pkgconfig python
@ -90,7 +94,5 @@ stdenv.mkDerivation {
postInstall = ''
mkdir -p $out/share/applications
cp claws-mail.desktop $out/share/applications
ln -sT ${shared_mime_info}/share/mime $out/share/mime
'';
}

View file

@ -1,14 +1,15 @@
--- a/src/procmime.c 2015-09-18 04:03:11.767654094 -0700
+++ b/src/procmime.c 2015-09-18 04:08:38.834503034 -0700
--- a/src/procmime.c 2015-10-01 23:02:16.629908590 -0700
+++ b/src/procmime.c 2015-10-01 23:02:46.932001337 -0700
@@ -1196,11 +1196,7 @@
if (mime_type_list)
return mime_type_list;
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
if ((fp = procmime_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL)
- if ((fp = procmime_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL)
-#else
- if ((fp = procmime_fopen("/usr/share/mime/globs", "rb")) == NULL)
-#endif
+ if ((fp = procmime_fopen("@MIMEROOTDIR@/mime/globs", "rb")) == NULL)
{
fp_is_glob_file = FALSE;
if ((fp = procmime_fopen("/etc/mime.types", "rb")) == NULL) {

View file

@ -1,71 +1,153 @@
{ stdenv, fetchurl, pkgconfig
, avahi, boost, libopus, celt, libsndfile, protobuf, qt4, speex
{ stdenv, fetchurl, fetchgit, pkgconfig
, qt4, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
, alsaLib
, jackSupport ? false, libjack2 ? null
, speechdSupport ? false, speechd ? null
, pulseSupport ? false, libpulseaudio ? null
, iceSupport ? false, zeroc_ice ? null
}:
assert jackSupport -> libjack2 != null;
assert speechdSupport -> speechd != null;
assert pulseSupport -> libpulseaudio != null;
assert iceSupport -> zeroc_ice != null;
with stdenv.lib;
let
optional = stdenv.lib.optional;
optionalString = stdenv.lib.optionalString;
in
stdenv.mkDerivation rec {
name = "mumble-${version}";
version = "1.2.10";
generic = overrides: source: stdenv.mkDerivation (source // overrides // {
name = "${overrides.type}-${source.version}";
src = fetchurl {
url = "https://github.com/mumble-voip/mumble/releases/download/${version}/${name}.tar.gz";
sha256 = "012vm0xf84x13414jlsx964c5a1nwnbn41jnspkciajlxxipldn6";
patches = optional jackSupport ./mumble-jack-support.patch;
nativeBuildInputs = [ pkgconfig ]
++ { qt4 = [ qt4 ]; qt5 = [ qt5.base ]; }."qt${toString source.qtVersion}"
++ (overrides.nativeBuildInputs or [ ]);
buildInputs = [ boost protobuf avahi ]
++ { qt4 = [ qt4 ]; qt5 = [ qt5.base ]; }."qt${toString source.qtVersion}"
++ (overrides.buildInputs or [ ]);
configureFlags = [
"CONFIG+=shared"
"CONFIG+=no-g15"
"CONFIG+=packaged"
"CONFIG+=no-update"
"CONFIG+=no-embed-qt-translations"
"CONFIG+=bundled-celt"
"CONFIG+=no-bundled-opus"
"CONFIG+=no-bundled-speex"
] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
++ (overrides.configureFlags or [ ]);
configurePhase = ''
qmake $configureFlags DEFINES+="PLUGIN_PATH=$out/lib"
'';
makeFlags = [ "release" ];
installPhase = ''
mkdir -p $out/{lib,bin}
find release -type f -not -name \*.\* -exec cp {} $out/bin \;
find release -type f -name \*.\* -exec cp {} $out/lib \;
mkdir -p $out/share/man/man1
cp man/mum* $out/share/man/man1
'' + (overrides.installPhase or "");
meta = {
description = "Low-latency, high quality voice chat software";
homepage = "http://mumble.sourceforge.net/";
license = licenses.bsd3;
maintainers = with maintainers; [ viric jgeerds wkennington ];
platforms = platforms.linux;
};
});
client = source: generic {
type = "mumble";
nativeBuildInputs = optional (source.qtVersion == 5) qt5.tools;
buildInputs = [ libopus libsndfile speex ]
++ optional (source.qtVersion == 5) qt5.svg
++ optional stdenv.isLinux alsaLib
++ optional jackSupport libjack2
++ optional speechdSupport speechd
++ optional pulseSupport libpulseaudio;
configureFlags = [
"CONFIG+=no-server"
];
installPhase = ''
cp scripts/mumble-overlay $out/bin
sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
mkdir -p $out/share/applications
cp scripts/mumble.desktop $out/share/applications
mkdir -p $out/share/icons{,/hicolor/scalable/apps}
cp icons/mumble.svg $out/share/icons
ln -s $out/share/icon/mumble.svg $out/share/icons/hicolor/scalable/apps
'';
} source;
server = generic {
type = "murmur";
postPatch = optional iceSupport ''
sed -i 's,/usr/share/Ice/,${zeroc_ice}/,g' src/murmur/murmur.pro
'';
configureFlags = [
"CONFIG+=no-client"
];
buildInputs = [ libcap ] ++ optional iceSupport [ zeroc_ice ];
};
patches = optional jackSupport ./mumble-jack-support.patch;
stableSource = rec {
version = "1.2.10";
qtVersion = 4;
configureFlags = [
"CONFIG+=shared"
"CONFIG+=no-g15"
"CONFIG+=packaged"
"CONFIG+=no-update"
"CONFIG+=no-server"
"CONFIG+=no-embed-qt-translations"
"CONFIG+=no-bundled-celt"
"CONFIG+=no-bundled-opus"
"CONFIG+=no-bundled-speex"
] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio";
configurePhase = ''
qmake $configureFlags
'';
nativeBuildInputs = [ pkgconfig ];
NIX_CFLAGS_COMPILE = [ "-I${celt}/include/celt" ];
buildInputs = [ avahi boost libopus celt libsndfile protobuf qt4 speex ]
++ optional jackSupport libjack2
++ optional speechdSupport speechd
++ optional pulseSupport libpulseaudio;
installPhase = ''
mkdir -p $out
cp -r ./release $out/bin
mkdir -p $out/share/applications
cp scripts/mumble.desktop $out/share/applications
mkdir -p $out/share/icons
cp icons/mumble.svg $out/share/icons
'';
meta = with stdenv.lib; {
description = "Low-latency, high quality voice chat software";
homepage = "http://mumble.sourceforge.net/";
license = licenses.bsd3;
maintainers = with maintainers; [ viric jgeerds ];
platforms = platforms.linux;
src = fetchurl {
url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
sha256 = "012vm0xf84x13414jlsx964c5a1nwnbn41jnspkciajlxxipldn6";
};
};
gitSource = rec {
version = "1.3.0-git-2015-09-27";
qtVersion = 5;
src = fetchgit {
url = "https://github.com/mumble-voip/mumble";
rev = "13e494c60beb20748eeb8be126b27e1226d168c8";
sha256 = "1vihassis5i7hyljbb8qjihjj4y80n5l380x5dl0nwb55j2mylhg";
};
# TODO: Remove fetchgit as it requires git
/*src = fetchFromGitHub {
owner = "mumble-voip";
repo = "mumble";
rev = "13e494c60beb20748eeb8be126b27e1226d168c8";
sha256 = "024my6wzahq16w7fjwrbksgnq98z4jjbdyy615kfyd9yk2qnpl80";
};
theme = fetchFromGitHub {
owner = "mumble-voip";
repo = "mumble-theme";
rev = "16b61d958f131ca85ab0f601d7331601b63d8f30";
sha256 = "0rbh825mwlh38j6nv2sran2clkiwvzj430mhvkdvzli9ysjxgsl3";
};
prePatch = ''
rmdir themes/Mumble
ln -s ${theme} themes/Mumble
'';*/
};
in {
mumble = client stableSource;
mumble_git = client gitSource;
murmur = server stableSource;
murmur_git = server gitSource;
}

View file

@ -1,42 +0,0 @@
{ stdenv, qt4, boost, protobuf, mumble
, avahi, libcap, pkgconfig
, iceSupport ? false
, zeroc_ice ? null
}:
assert iceSupport -> zeroc_ice != null;
let
optional = stdenv.lib.optional;
optionalString = stdenv.lib.optionalString;
in
stdenv.mkDerivation rec {
name = "murmur-${version}";
inherit (mumble) version src;
patchPhase = optional iceSupport ''
sed -i 's,/usr/share/Ice/,${zeroc_ice}/,g' src/murmur/murmur.pro
'';
configurePhase = ''
qmake CONFIG+=no-client CONFIG+=no-embed-qt \
${optionalString (!iceSupport) "CONFIG+=no-ice"}
'';
buildInputs = [ qt4 boost protobuf avahi libcap pkgconfig ]
++ optional iceSupport [ zeroc_ice ];
installPhase = ''
mkdir -p $out
cp -r ./release $out/bin
'';
meta = with stdenv.lib; {
homepage = "http://mumble.sourceforge.net/";
description = "Low-latency, high quality voice chat software";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ viric ];
};
}

View file

@ -0,0 +1,27 @@
{ stdenv, fetchurl, ncurses }:
stdenv.mkDerivation rec {
version = "0.7.4";
name = "nload-${version}";
src = fetchurl {
url = "http://www.roland-riegel.de/nload/${name}.tar.gz";
sha256 = "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61";
};
buildInputs = [ ncurses ];
meta = {
description = "Monitors network traffic and bandwidth usage with ncurses graphs";
longDescription = ''
nload is a console application which monitors network traffic and
bandwidth usage in real time. It visualizes the in- and outgoing traffic
using two graphs and provides additional info like total amount of
transfered data and min/max network usage.
'';
homepage = http://www.roland-riegel.de/nload/index.html;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.devhell ];
};
}

View file

@ -8,19 +8,19 @@ let
name = "twister-html";
src = fetchgit {
url = "git://github.com/miguelfreitas/twister-html.git";
rev = "891f7bf24e1c3df7ec5e1db23c765df2d7c2d5a9";
sha256 = "0d96rfkpwxyiz32k2pd6a64r2kr3600qgp9v73ddcpq593wf11qb";
rev = "01e7f7ca9b7e42ed90f91bc42da2c909ca5c0b9b";
sha256 = "0scjbin6s1kmi0bqq0dx0qyjw4n5xgmj567n0156i39f9h0dabqy";
};
};
in stdenv.mkDerivation rec {
name = "twister-${version}";
version = "0.9.22";
version = "0.9.30";
src = fetchurl {
url = "https://github.com/miguelfreitas/twister-core/"
+ "archive/v${version}.tar.gz";
sha256 = "1haq0d7ypnazs599g4kcq1x914fslc04wazqj54rlvjdp7yx4j3f";
sha256 = "1i39iqq6z25rh869vi5k76g84rmyh30p05xid7z9sqjrqdfpyyzk";
};
configureFlags = [
@ -29,6 +29,7 @@ in stdenv.mkDerivation rec {
"--disable-deprecated-functions"
"--enable-tests"
"--enable-python-binding"
"--with-boost-libdir=${boost.lib}/lib"
];
buildInputs = [

View file

@ -12,19 +12,19 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Spideroak client for: ${stdenv.system} not supported!";
sha256 = if stdenv.system == "x86_64-linux" then "0ax5ij3fwq3q9agf7qkw2zg53fcd82llg734pq3swzpn3z1ajs38"
else if stdenv.system == "i686-linux" then "18hvgx8bvd2khnqfn434gd4mflv0w5y8kvim72rvya2kwxsyf3i1"
sha256 = if stdenv.system == "x86_64-linux" then "88fd785647def79ee36621fa2a8a5bea73c513de03103f068dd10bc25f3cf356"
else if stdenv.system == "i686-linux" then "8c23271291f40aa144bbf38ceb3cc2a05bed00759c87a65bd798cf8bb289d07a"
else throw "Spideroak client for: ${stdenv.system} not supported!";
ldpath = stdenv.lib.makeSearchPath "lib" [
glib fontconfig libXext libX11 freetype libXrender
glib fontconfig libXext libX11 freetype libXrender
];
version = "5.1.6";
version = "6.0.1";
in stdenv.mkDerivation {
name = "spideroak-${version}";
src = fetchurl {
name = "spideroak-${version}-${arch}";
url = "https://spideroak.com/getbuild?platform=slackware&arch=${arch}&version=${version}";
@ -36,17 +36,17 @@ in stdenv.mkDerivation {
unpackCmd = "tar -xzf $curSrc";
installPhase = ''
ensureDir "$out"
mkdir "$out"
cp -r "./"* "$out"
ensureDir "$out/bin"
rm "$out/usr/bin/SpiderOak"
mkdir "$out/bin"
rm "$out/usr/bin/SpiderOakONE"
patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
"$out/opt/SpiderOak/lib/SpiderOak"
"$out/opt/SpiderOakONE/lib/SpiderOakONE"
RPATH=$out/opt/SpiderOak/lib:${ldpath}
makeWrapper $out/opt/SpiderOak/lib/SpiderOak $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
--set QT_PLUGIN_PATH $out/opt/SpiderOak/lib/plugins/ \
RPATH=$out/opt/SpiderOakONE/lib:${ldpath}
makeWrapper $out/opt/SpiderOakONE/lib/SpiderOakONE $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
--set QT_PLUGIN_PATH $out/opt/SpiderOakONE/lib/plugins/ \
--set SpiderOak_EXEC_SCRIPT $out/bin/spideroak
'';

View file

@ -20,7 +20,7 @@ let
langsSpaces = stdenv.lib.concatStringsSep " " langs;
major = "5";
minor = "0";
patch = "1";
patch = "2";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
@ -47,14 +47,14 @@ let
translations = fetchSrc {
name = "translations";
sha256 = "0z8qf4ri8wmzgc5601fxcwxwym1h9rwk0kaqpxhqbkj04h9z0xq7";
sha256 = "06w1gz78136bs6fbwslxz5zsg538yqfarkq1am7zn8rzczz2qplh";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "0iz9jz0ppghzh33kzw7v0xqchim9brys6mnmlk74nzrhci2vj7f7";
sha256 = "157hypz093vhqbysygx5q4fbb81785m2b7slccfkp8x87dcsahj3";
};
};
@ -63,7 +63,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "06nj1wnx09a6v3kx9k48810mkb19dbkaln1af33f4m7bxg5bjl87";
sha256 = "0xn1pg72vfdajmhak6chajvd51h74jqvq2565xv3j823143niw01";
};
# Openoffice will open libcups dynamically, so we link it directly

View file

@ -6,11 +6,11 @@
}:
stdenv.mkDerivation rec {
name = "R-3.2.1";
name = "R-3.2.2";
src = fetchurl {
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
sha256 = "d59dbc3f04f4604a5cf0fb210b8ea703ef2438b3ee65fd5ab536ec5234f4c982";
sha256 = "07a6s865bjnh7w0fqsrkv1pva76w99v86w0w787qpdil87km54cw";
};
buildInputs = [ bzip2 gfortran libX11 libXmu libXt
@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
which jdk openblas
];
patches = [ ./no-usr-local-search-paths.patch ];
patches = [ ./no-usr-local-search-paths.patch
./fix-tests-without-recommended-packages.patch ];
preConfigure = ''
configureFlagsArray=(

View file

@ -0,0 +1,24 @@
diff -Naur R-3.2.2-upstream/tests/reg-packages.R R-3.2.2/tests/reg-packages.R
--- R-3.2.2-upstream/tests/reg-packages.R 2015-08-05 17:45:05.000000000 -0430
+++ R-3.2.2/tests/reg-packages.R 2015-10-01 02:11:05.484992903 -0430
@@ -82,7 +82,8 @@
## pkgB tests an empty R directory
dir.create(file.path(pkgPath, "pkgB", "R"), recursive = TRUE,
showWarnings = FALSE)
-p.lis <- if("Matrix" %in% row.names(installed.packages(.Library)))
+matrixIsInstalled <- "Matrix" %in% row.names(installed.packages(.Library))
+p.lis <- if(matrixIsInstalled)
c("pkgA", "pkgB", "exNSS4") else "exNSS4"
for(p. in p.lis) {
cat("building package", p., "...\n")
@@ -111,8 +112,8 @@
tools::assertError(is.null(pkgA:::nilData))
}
-if(dir.exists(file.path("myLib", "exNSS4"))) {
- for(ns in c("pkgB", "pkgA", "Matrix", "exNSS4")) unloadNamespace(ns)
+if(matrixIsInstalled && dir.exists(file.path("myLib", "exNSS4"))) {
+ for(ns in c(rev(p.lis), "Matrix")) unloadNamespace(ns)
## Both exNSS4 and Matrix define "atomicVector" *the same*,
## but 'exNSS4' has it extended - and hence *both* are registered in cache -> "conflicts"
requireNamespace("exNSS4", lib= "myLib")

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl
, qt4, xapian, file, python
, djvulibre, groff, libxslt, unzip, xpdf, antiword, catdoc, lyx
, qt4, xapian, file, python, perl
, djvulibre, groff, libxslt, unzip, poppler_utils, antiword, catdoc, lyx
, libwpd, unrtf, untex
, ghostscript, gawk, gnugrep, gnused, gnutar, gzip, libiconv }:
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
substituteInPlace $f --replace gunzip ${gzip}/bin/gunzip
substituteInPlace $f --replace iconv ${libiconv}/bin/iconv
substituteInPlace $f --replace lyx ${lyx}/bin/lyx
substituteInPlace $f --replace pdftotext ${xpdf}/bin/pdftotext
substituteInPlace $f --replace pdftotext ${poppler_utils}/bin/pdftotext
substituteInPlace $f --replace pstotext ${ghostscript}/bin/ps2ascii
substituteInPlace $f --replace sed ${gnused}/bin/sed
substituteInPlace $f --replace tar ${gnutar}/bin/tar
@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
substituteInPlace $f --replace unrtf ${unrtf}/bin/unrtf
substituteInPlace $f --replace untex ${untex}/bin/untex
substituteInPlace $f --replace wpd2html ${libwpd}/bin/wpd2html
substituteInPlace $f --replace /usr/bin/perl ${perl}/bin/perl
done
'';

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
make install PREFIX=$out
'';
meta = {
meta = with stdenv.lib; {
homepage = "https://www.agwa.name/projects/git-crypt";
description = "transparent file encryption in git";
longDescription = ''
@ -33,9 +33,9 @@ stdenv.mkDerivation rec {
entire repository.
'';
downloadPage = "https://github.com/AGWA/git-crypt/releases";
license = stdenv.lib.licenses.gpl3;
license = licenses.gpl3;
version = "0.5.0";
maintainers = [ "Desmond O. Chang <dochang@gmail.com>" ];
maintainers = [ maintainers.dochang ];
};
}

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, python, makeWrapper, docutils, unzip, hg-git, dulwich
, guiSupport ? false, tk ? null, hg-crecord ? null, curses
, ApplicationServices }:
, ApplicationServices, cf-private }:
let
version = "3.5.1";
@ -20,7 +20,8 @@ stdenv.mkDerivation {
buildInputs = [ python makeWrapper docutils unzip ];
propagatedBuildInputs = stdenv.lib.optional stdenv.isDarwin ApplicationServices;
propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin
[ ApplicationServices cf-private ];
makeFlags = "PREFIX=$(out)";

View file

@ -110,6 +110,7 @@ in stdenv.mkDerivation rec {
--prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libcec}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libcec_platform}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libass}/lib" \
--prefix LD_LIBRARY_PATH ":" "${rtmpdump}/lib"
done
'';

View file

@ -4,17 +4,17 @@
stdenv.mkDerivation rec {
name = "makemkv-${ver}";
ver = "1.9.5";
ver = "1.9.7";
builder = ./builder.sh;
src_bin = fetchurl {
url = "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz";
sha256 = "1qzkdrij89s748rvmibx083g1irfm8dqx257skr45i2gsg2qqijp";
sha256 = "1b1kdfs89ms2vyi4406ydw01py0mvvij01rx9anblgy10bc0yvfy";
};
src_oss = fetchurl {
url = "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz";
sha256 = "1immnlx1rld8iw89fxgq2sk2l050sa8h046ka8mdwg8682d75lfg";
sha256 = "169fl1v3i133ihldyfq3akj3x30qsxndw7q52vv90gmn5r52bzb9";
};
buildInputs = [openssl qt4 mesa zlib pkgconfig libav];

View file

@ -11,7 +11,7 @@
with stdenv.lib;
let
version = "2.4.0";
version = "2.4.0.1";
audio = optionalString (hasSuffix "linux" stdenv.system) "alsa,"
+ optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,";
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
sha256 = "0836gqv5zcl0xswwjcns3mlkn18lyz2fiq8rl1ihcm6cpf8vkc3j";
sha256 = "1nqv5p94zpnhcaqkifnn83ap7dd0qrb0qiicswbyhhby0f48pzpc";
};
buildInputs =

View file

@ -37,6 +37,7 @@ buildPythonPackage rec {
gsettings_desktop_schemas
gnome3.defaultIconTheme
wrapGAppsHook
dconf
];
configurePhase = ''

View file

@ -18,7 +18,7 @@ let
# revision/hash as well. See
# http://download.virtualbox.org/virtualbox/${version}/SHA256SUMS
# for hashes.
version = "5.0.4";
version = "5.0.6";
forEachModule = action: ''
for mod in \
@ -39,12 +39,12 @@ let
'';
# See https://github.com/NixOS/nixpkgs/issues/672 for details
extpackRevision = "102546";
extpackRevision = "103037";
extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
# VBoxExtPackHelperApp!
sha256 = "e4618e7847eff7c31426f4639bcd83c37bd817147081d3218f21c8e7b6bc7cfa";
sha256 = "4eed4f3d253bffe4ce61ee9431d79cbe1f897b3583efc2ff3746f453450787b5";
message = ''
In order to use the extension pack, you need to comply with the VirtualBox Personal Use
and Evaluation License (PUEL) by downloading the related binaries from:
@ -63,7 +63,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "b19e23fc8e71f38aef7c059f44e59fcbff3bb2ce85baa8de81f1629b85f68fcf";
sha256 = "0hsqd9bvbbzs3ihlfp2m15z6vx3nydjirv6drhfs6r9iqhl3zmi2";
};
buildInputs =

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "de4abc28832d4e96b826efef3e7e69e69d6b941babfdc6317185f1fd6e22ffcf";
sha256 = "59ed9911c2bb22357345448c3df6104938b45fa780311d20c330e39c6e309991";
};
KERN_DIR = "${kernel.dev}/lib/modules/*/build";

View file

@ -95,6 +95,7 @@ let
# symlink other core stuff
ln -s /host-etc/localtime localtime
ln -s /host-etc/machine-id machine-id
ln -s /host-etc/os-release os-release
# symlink PAM stuff
ln -s /host-etc/pam.d pam.d

View file

@ -1,18 +1,18 @@
#!/usr/bin/env ruby
# Bind mounts hierarchy: [from, to (relative)]
# Bind mounts hierarchy: from => to (relative)
# If 'to' is nil, path will be the same
mounts = [ ['/nix/store', nil],
['/dev', nil],
['/proc', nil],
['/sys', nil],
['/etc', 'host-etc'],
['/tmp', 'host-tmp'],
['/home', nil],
['/var', nil],
['/run', nil],
['/root', nil],
]
mounts = { '/nix/store' => nil,
'/dev' => nil,
'/proc' => nil,
'/sys' => nil,
'/etc' => 'host-etc',
'/tmp' => 'host-tmp',
'/home' => nil,
'/var' => nil,
'/run' => nil,
'/root' => nil,
}
# Propagate environment variables
envvars = [ 'TERM',
@ -65,8 +65,22 @@ abort "Usage: chrootenv swdir program args..." unless ARGV.length >= 2
swdir = Pathname.new ARGV[0]
execp = ARGV.drop 1
# Populate extra mounts
if not ENV["CHROOTENV_EXTRA_BINDS"].nil?
for extra in ENV["CHROOTENV_EXTRA_BINDS"].split(':')
paths = extra.split('=')
if not paths.empty?
if paths.size <= 2
mounts[paths[0]] = paths[1]
else
$stderr.puts "Ignoring invalid entry in CHROOTENV_EXTRA_BINDS: #{extra}"
end
end
end
end
# Set destination paths for mounts
mounts.map! { |x| [x[0], x[1].nil? ? x[0].sub(/^\/*/, '') : x[1]] }
mounts = mounts.map { |k, v| [k, v.nil? ? k.sub(/^\/*/, '') : v] }.to_h
# Create temporary directory for root and chdir
root = Dir.mktmpdir 'chrootenv'
@ -97,10 +111,10 @@ if $cpid == 0
write_file '/proc/self/gid_map', "#{gid} #{gid} 1"
# Do rbind mounts.
mounts.each do |x|
to = "#{root}/#{x[1]}"
mounts.each do |from, rto|
to = "#{root}/#{rto}"
FileUtils.mkdir_p to
$mount.call x[0], to, nil, MS_BIND | MS_REC, nil
$mount.call from, to, nil, MS_BIND | MS_REC, nil
end
# Chroot!
@ -108,7 +122,7 @@ if $cpid == 0
Dir.chdir '/'
# Symlink swdir hierarchy
mount_dirs = Set.new mounts.map { |x| Pathname.new x[1] }
mount_dirs = Set.new mounts.map { |_, v| Pathname.new v }
link_swdir = lambda do |swdir, prefix|
swdir.find do |path|
rel = prefix.join path.relative_path_from(swdir)

View file

@ -1,4 +1,4 @@
{ runCommand, writeText, writeScriptBin, stdenv, ruby } : { env, runScript ? "bash" } :
{ runCommand, lib, writeText, writeScriptBin, stdenv, ruby } : { env, runScript ? "bash", extraBindMounts ? [] } :
let
name = env.pname;
@ -27,6 +27,7 @@ in runCommand name {
passthru.env =
runCommand "${name}-shell-env" {
shellHook = ''
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:$CHROOTENV_EXTRA_BINDS"
exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init "bash"} "$(pwd)"
'';
} ''
@ -39,6 +40,7 @@ in runCommand name {
mkdir -p $out/bin
cat <<EOF >$out/bin/${name}
#! ${stdenv.shell}
export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:\$CHROOTENV_EXTRA_BINDS"
exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init runScript} "\$(pwd)" "\$@"
EOF
chmod +x $out/bin/${name}

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