mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-14 15:36:47 +03:00
Merge branch 'master.upstream' into staging.upstream
This commit is contained in:
commit
8a44a36ca4
@ -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`.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>";
|
||||
|
@ -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));
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -39,6 +39,7 @@ pkgs.vmTools.runInLinuxVM (
|
||||
exportReferencesGraph =
|
||||
[ "closure" config.system.build.toplevel ];
|
||||
inherit postVM;
|
||||
memSize = 1024;
|
||||
}
|
||||
''
|
||||
${if partitioned then ''
|
||||
|
@ -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}
|
||||
'';
|
||||
|
@ -550,4 +550,8 @@ in {
|
||||
|
||||
};
|
||||
|
||||
imports =
|
||||
[ (mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ])
|
||||
(mkAliasOptionModule [ "users" "extraGroups" ] [ "users" "groups" ])
|
||||
];
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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" ]
|
||||
|
||||
)
|
||||
];
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
})
|
||||
];
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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 ""}";
|
||||
|
249
nixos/modules/services/networking/supplicant.nix
Normal file
249
nixos/modules/services/networking/supplicant.nix
Normal 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"
|
||||
''}
|
||||
'';
|
||||
})];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
@ -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" ])
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -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" ])
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
@ -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}
|
||||
'');
|
||||
}) ];
|
||||
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
@ -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");
|
||||
'';
|
||||
|
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ardour";
|
||||
repo = "ardour";
|
||||
rev = "fe672c827cb2c08c94b1fa7e527d884c522a1af7";
|
||||
sha256 = "12yfy9l5mnl96ix4s2qicp3m2zscli1a4bd50nk9v035pgf77s3f";
|
||||
rev = "05e3a00b7e3a52a838bc5ec9ee7b3b9e6a271feb";
|
||||
sha256 = "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
12
pkgs/applications/audio/meterbridge/buf_rect.patch
Normal file
12
pkgs/applications/audio/meterbridge/buf_rect.patch
Normal 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];
|
||||
|
26
pkgs/applications/audio/meterbridge/default.nix
Normal file
26
pkgs/applications/audio/meterbridge/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
29
pkgs/applications/audio/non/default.nix
Normal file
29
pkgs/applications/audio/non/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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();
|
@ -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"
|
||||
|
@ -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()) {
|
@ -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; {
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
}
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
6
pkgs/applications/editors/geany/with-vte.nix
Normal file
6
pkgs/applications/editors/geany/with-vte.nix
Normal 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
|
||||
"
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"}
|
||||
|
@ -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 = [
|
||||
|
@ -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 = {
|
||||
|
@ -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"
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
@ -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 ..
|
||||
|
@ -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;
|
||||
}
|
@ -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
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 = {
|
||||
|
20
pkgs/applications/misc/wcalc/default.nix
Normal file
20
pkgs/applications/misc/wcalc/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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";
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)";
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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)";
|
||||
|
@ -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
|
||||
|
@ -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" \
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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";
|
||||
|
@ -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
|
||||
'';
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
27
pkgs/applications/networking/nload/default.nix
Normal file
27
pkgs/applications/networking/nload/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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 = [
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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
|
||||
|
@ -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=(
|
||||
|
@ -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")
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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)";
|
||||
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -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];
|
||||
|
@ -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 =
|
||||
|
@ -37,6 +37,7 @@ buildPythonPackage rec {
|
||||
gsettings_desktop_schemas
|
||||
gnome3.defaultIconTheme
|
||||
wrapGAppsHook
|
||||
dconf
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
|
@ -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 =
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user