Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-02-11 11:22:29 +01:00
commit 8f5b3ae07a
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
138 changed files with 2965 additions and 1688 deletions

View File

@ -140,6 +140,7 @@
dtzWill = "Will Dietz <nix@wdtz.org>";
e-user = "Alexander Kahl <nixos@sodosopa.io>";
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
edanaher = "Evan Danaher <nixos@edanaher.net>";
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
@ -361,6 +362,7 @@
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
palo = "Ingolf Wanger <palipalo9@googlemail.com>";
paperdigits = "Mica Semrick <mica@silentumbrella.com>";
pashev = "Igor Pashev <pashev.igor@gmail.com>";
pawelpacana = "Paweł Pacana <pawel.pacana@gmail.com>";
periklis = "theopompos@gmail.com";
@ -461,6 +463,7 @@
SShrike = "Severen Redwood <severen@shrike.me>";
stephenmw = "Stephen Weinberg <stephen@q5comm.com>";
sternenseemann = "Lukas Epple <post@lukasepple.de>";
stesie = "Stefan Siegl <stesie@brokenpipe.de>";
steveej = "Stefan Junker <mail@stefanjunker.de>";
swarren83 = "Shawn Warren <shawn.w.warren@gmail.com>";
swistak35 = "Rafał Łasocha <me@swistak35.com>";

View File

@ -21,6 +21,7 @@ effect after you run <command>nixos-rebuild</command>.</para>
<xi:include href="user-mgmt.xml" />
<xi:include href="file-systems.xml" />
<xi:include href="x-windows.xml" />
<xi:include href="xfce.xml" />
<xi:include href="networking.xml" />
<xi:include href="linux-kernel.xml" />

View File

@ -36,9 +36,8 @@ latter might look like this:
{ config, pkgs, ... }:
{ services.xserver.enable = true;
services.xserver.displayManager.kdm.enable = true;
services.xserver.desktopManager.kde4.enable = true;
environment.systemPackages = [ pkgs.kde4.kscreensaver ];
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.kde5.enable = true;
}
</programlisting>

View File

@ -25,7 +25,7 @@ Otherwise, you can only log into a plain undecorated
<command>xterm</command> window. Thus you should pick one or more of
the following lines:
<programlisting>
services.xserver.desktopManager.kde4.enable = true;
services.xserver.desktopManager.kde5.enable = true;
services.xserver.desktopManager.xfce.enable = true;
services.xserver.windowManager.xmonad.enable = true;
services.xserver.windowManager.twm.enable = true;
@ -35,9 +35,9 @@ services.xserver.windowManager.icewm.enable = true;
<para>NixOSs default <emphasis>display manager</emphasis> (the
program that provides a graphical login prompt and manages the X
server) is SLiM. You can select KDEs <command>kdm</command> instead:
server) is SLiM. You can select KDEs <command>sddm</command> instead:
<programlisting>
services.xserver.displayManager.kdm.enable = true;
services.xserver.displayManager.sddm.enable = true;
</programlisting>
</para>

View File

@ -0,0 +1,105 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-xfce">
<title>Xfce Desktop Environment</title>
<para>
To enable the Xfce Desktop Environment, set
<programlisting>
services.xserver.desktopManager = {
xfce.enable = true;
default = "xfce";
};
</programlisting>
</para>
<para>
Optionally, <emphasis>compton</emphasis>
can be enabled for nice graphical effects, some example settings:
<programlisting>
services.compton = {
enable = true;
fade = true;
inactiveOpacity = "0.9";
shadow = true;
fadeDelta = 4;
};
</programlisting>
</para>
<para>
Some Xfce programs are not installed automatically.
To install them manually (system wide), put them into your
<literal>environment.systemPackages</literal>.
</para>
<para>
NixOSs default <emphasis>display manager</emphasis>is SLiM.
(DM is the program that provides a graphical login prompt
and manages the X server.)
You can, for example, select KDEs
<command>sddm</command> instead:
<programlisting>
services.xserver.displayManager.sddm.enable = true;
</programlisting>
</para>
<simplesect>
<title>Thunar Volume Support</title>
<para>
To enable
<emphasis>Thunar</emphasis>
volume support, put
<programlisting>
services.xserver.desktopManager.xfce.enable = true;
</programlisting>
into your <emphasis>configuration.nix</emphasis>.
</para>
</simplesect>
<simplesect>
<title>Polkit Authentication Agent</title>
<para>
There is no authentication agent automatically installed alongside
Xfce. To allow mounting of local (non-removable) filesystems, you
will need to install one.
Installing <emphasis>polkit_gnome</emphasis>, a rebuild, logout and
login did the trick.
</para>
</simplesect>
<simplesect>
<title>Troubleshooting</title>
<para>
Even after enabling udisks2, volume management might not work.
Thunar and/or the desktop takes time to show up.
Thunar will spit out this kind of message on start
(look at journalctl --user -b).
<programlisting>
Thunar:2410): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.UDisks2VolumeMonitor is not supported
</programlisting>
This is caused by some needed GNOME services not running.
This is all fixed by enabling "Launch GNOME services on startup" in
the Advanced tab of the Session and Startup settings panel.
Alternatively, you can run this command to do the same thing.
<programlisting>
$ xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s true
</programlisting>
A log-out and re-log will be needed for this to take effect.
</para>
</simplesect>
</chapter>

View File

@ -65,22 +65,22 @@ options = {
</para>
<section xml:id="sec-option-declarations-eot"><title>Extensible Option
<section xml:id="sec-option-declarations-eot"><title>Extensible Option
Types</title>
<para>Extensible option types is a feature that allow to extend certain types
<para>Extensible option types is a feature that allow to extend certain types
declaration through multiple module files.
This feature only work with a restricted set of types, namely
This feature only work with a restricted set of types, namely
<literal>enum</literal> and <literal>submodules</literal> and any composed
forms of them.</para>
<para>Extensible option types can be used for <literal>enum</literal> options
that affects multiple modules, or as an alternative to related
<para>Extensible option types can be used for <literal>enum</literal> options
that affects multiple modules, or as an alternative to related
<literal>enable</literal> options.</para>
<para>As an example, we will take the case of display managers. There is a
central display manager module for generic display manager options and a
module file per display manager backend (slim, kdm, gdm ...).
module file per display manager backend (slim, sddm, gdm ...).
</para>
<para>There are two approach to this module structure:
@ -96,7 +96,7 @@ options = {
</para>
<para>Both approachs have problems.</para>
<para>Making backends independent can quickly become hard to manage. For
display managers, there can be only one enabled at a time, but the type
system can not enforce this restriction as there is no relation between
@ -108,18 +108,18 @@ options = {
central module will require to change the central module option every time
a new backend is added or removed.</para>
<para>By using extensible option types, it is possible to create a placeholder
option in the central module (<xref linkend='ex-option-declaration-eot-service'
/>), and to extend it in each backend module (<xref
linkend='ex-option-declaration-eot-backend-slim' />, <xref
linkend='ex-option-declaration-eot-backend-kdm' />).</para>
<para>By using extensible option types, it is possible to create a placeholder
option in the central module (<xref linkend='ex-option-declaration-eot-service'
/>), and to extend it in each backend module (<xref
linkend='ex-option-declaration-eot-backend-slim' />, <xref
linkend='ex-option-declaration-eot-backend-sddm' />).</para>
<para>As a result, <literal>displayManager.enable</literal> option values can
be added without changing the main service module file and the type system
automatically enforce that there can only be a single display manager
enabled.</para>
<example xml:id='ex-option-declaration-eot-service'><title>Extensible type
<example xml:id='ex-option-declaration-eot-service'><title>Extensible type
placeholder in the service module</title>
<screen>
services.xserver.displayManager.enable = mkOption {
@ -127,29 +127,29 @@ services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ ]);
};</screen></example>
<example xml:id='ex-option-declaration-eot-backend-slim'><title>Extending
<literal>services.xserver.displayManager.enable</literal> in the
<example xml:id='ex-option-declaration-eot-backend-slim'><title>Extending
<literal>services.xserver.displayManager.enable</literal> in the
<literal>slim</literal> module</title>
<screen>
services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ "slim" ]);
};</screen></example>
<example xml:id='ex-option-declaration-eot-backend-kdm'><title>Extending
<literal>services.foo.backend</literal> in the <literal>kdm</literal>
<example xml:id='ex-option-declaration-eot-backend-sddm'><title>Extending
<literal>services.foo.backend</literal> in the <literal>sddm</literal>
module</title>
<screen>
services.xserver.displayManager.enable = mkOption {
type = with types; nullOr (enum [ "kdm" ]);
type = with types; nullOr (enum [ "sddm" ]);
};</screen></example>
<para>The placeholder declaration is a standard <literal>mkOption</literal>
declaration, but it is important that extensible option declarations only use
<para>The placeholder declaration is a standard <literal>mkOption</literal>
declaration, but it is important that extensible option declarations only use
the <literal>type</literal> argument.</para>
<para>Extensible option types work with any of the composed variants of
<literal>enum</literal> such as
<literal>with types; nullOr (enum [ "foo" "bar" ])</literal>
<para>Extensible option types work with any of the composed variants of
<literal>enum</literal> such as
<literal>with types; nullOr (enum [ "foo" "bar" ])</literal>
or <literal>with types; listOf (enum [ "foo" "bar" ])</literal>.</para>
</section>

View File

@ -97,6 +97,15 @@ following incompatible changes:</para>
</para>
</listitem>
<listitem>
<para>
Two lone top-level dict dbs moved into <literal>dictdDBs</literal>. This
affects: <literal>dictdWordnet</literal> which is now at
<literal>dictdDBs.wordnet</literal> and <literal>dictdWiktionary</literal>
which is now at <literal>dictdDBs.wiktionary</literal>
</para>
</listitem>
<listitem>
<para>
Parsoid service now uses YAML configuration format.
@ -117,6 +126,36 @@ following incompatible changes:</para>
</para>
</listitem>
<listitem>
<para>
<literal>service.nylon</literal> is now declared using named instances.
As an example:
<programlisting>
services.nylon = {
enable = true;
acceptInterface = "br0";
bindInterface = "tun1";
port = 5912;
};
</programlisting>
should be replaced with:
<programlisting>
services.nylon.myvpn = {
enable = true;
acceptInterface = "br0";
bindInterface = "tun1";
port = 5912;
};
</programlisting>
this enables you to declare a SOCKS proxy for each uplink.
</para>
</listitem>
<listitem>
<para><literal>overridePackages</literal> function no longer exists.
It is replaced by <link

View File

@ -77,7 +77,7 @@ in
config = mkIf cfg.enable {
boot.blacklistedKernelModules = [ "nvidia-drm" "nvidia" "nouveau" ];
boot.kernelModules = optional useBbswitch "bbswitch";
boot.extraModulePackages = optional useBbswitch kernel.bbswitch ++ optional useNvidia kernel.nvidia_x11;
boot.extraModulePackages = optional useBbswitch kernel.bbswitch ++ optional useNvidia kernel.nvidia_x11.bin;
environment.systemPackages = [ bumblebee primus ];

View File

@ -27,6 +27,13 @@ let
nvidia_x11 = nvidiaForKernel config.boot.kernelPackages;
nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; };
nvidiaPackage = nvidia: pkgs:
if !nvidia.useGLVND then nvidia
else pkgs.buildEnv {
name = "nvidia-libs";
paths = [ pkgs.libglvnd nvidia.out ];
};
enabled = nvidia_x11 != null;
in
@ -35,19 +42,19 @@ in
config = mkIf enabled {
services.xserver.drivers = singleton
{ name = "nvidia"; modules = [ nvidia_x11 ]; libPath = [ nvidia_x11 ]; };
{ name = "nvidia"; modules = [ nvidia_x11.bin ]; libPath = [ nvidia_x11 ]; };
services.xserver.screenSection =
''
Option "RandRRotation" "on"
'';
hardware.opengl.package = nvidia_x11;
hardware.opengl.package32 = nvidia_libs32;
hardware.opengl.package = nvidiaPackage nvidia_x11 pkgs;
hardware.opengl.package32 = nvidiaPackage nvidia_libs32 pkgs_i686;
environment.systemPackages = [ nvidia_x11 ];
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings nvidia_x11.persistenced ];
boot.extraModulePackages = [ nvidia_x11 ];
boot.extraModulePackages = [ nvidia_x11.bin ];
# nvidia-uvm is required by CUDA applications.
boot.kernelModules = [ "nvidia-uvm" ];

View File

@ -607,8 +607,8 @@ $bootLoaderConfig
# services.xserver.xkbOptions = "eurosign:e";
# Enable the KDE Desktop Environment.
# services.xserver.displayManager.kdm.enable = true;
# services.xserver.desktopManager.kde4.enable = true;
# services.xserver.displayManager.sddm.enable = true;
# services.xserver.desktopManager.kde5.enable = true;
# Define a user account. Don't forget to set a password with passwd.
# users.extraUsers.guest = {

View File

@ -141,6 +141,7 @@
./services/computing/torque/mom.nix
./services/computing/slurm/slurm.nix
./services/continuous-integration/buildbot/master.nix
./services/continuous-integration/buildbot/worker.nix
./services/continuous-integration/buildkite-agent.nix
./services/continuous-integration/hydra/default.nix
./services/continuous-integration/gitlab-runner.nix
@ -445,6 +446,7 @@
./services/networking/radicale.nix
./services/networking/radvd.nix
./services/networking/rdnssd.nix
./services/networking/redsocks.nix
./services/networking/rpcbind.nix
./services/networking/sabnzbd.nix
./services/networking/searx.nix
@ -643,6 +645,7 @@
./virtualisation/container-config.nix
./virtualisation/containers.nix
./virtualisation/docker.nix
./virtualisation/ecs-agent.nix
./virtualisation/libvirtd.nix
./virtualisation/lxc.nix
./virtualisation/lxcfs.nix

View File

@ -6,8 +6,8 @@
{
services.xserver = {
enable = true;
displayManager.kdm.enable = true;
desktopManager.kde4.enable = true;
displayManager.sddm.enable = true;
desktopManager.kde5.enable = true;
synaptics.enable = true; # for touchpad support on many laptops
};

View File

@ -7,7 +7,7 @@ with lib;
let
cfg = config.services.buildbot-master;
escapeStr = s: escape ["'"] s;
masterCfg = pkgs.writeText "master.cfg" ''
masterCfg = if cfg.masterCfg == null then pkgs.writeText "master.cfg" ''
from buildbot.plugins import *
factory = util.BuildFactory()
c = BuildmasterConfig = dict(
@ -27,9 +27,8 @@ let
factory.addStep(step)
${cfg.extraConfig}
'';
configFile = if cfg.masterCfg == null then masterCfg else cfg.masterCfg;
''
else pkgs.writeText "master.cfg" cfg.masterCfg;
in {
options = {
@ -67,15 +66,13 @@ in {
};
masterCfg = mkOption {
type = with types; nullOr path;
type = types.str;
description = ''
Optionally pass path to raw master.cfg file.
Optionally pass raw master.cfg file as string.
Other options in this configuration will be ignored.
'';
default = null;
example = literalExample ''
pkgs.writeText "master.cfg" "BuildmasterConfig = c = {}"
'';
example = "BuildmasterConfig = c = {}";
};
schedulers = mkOption {
@ -99,9 +96,9 @@ in {
type = types.listOf types.str;
description = "List of Workers.";
default = [
"worker.Worker('default-worker', 'password')"
"worker.Worker('example-worker', 'pass')"
];
example = [ "worker.LocalWorker('default-worker')" ];
example = [ "worker.LocalWorker('example-worker')" ];
};
status = mkOption {
@ -209,7 +206,7 @@ in {
users.extraUsers = optional (cfg.user == "buildbot") {
name = "buildbot";
description = "buildbot user";
description = "Buildbot User.";
isNormalUser = true;
createHome = true;
home = cfg.home;
@ -219,7 +216,7 @@ in {
};
systemd.services.buildbot-master = {
description = "Buildbot Continuous Integration Server";
description = "Buildbot Continuous Integration Server.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = cfg.packages;
@ -233,9 +230,8 @@ in {
};
preStart = ''
mkdir -vp ${cfg.buildbotDir}
chown -c ${cfg.user}:${cfg.group} ${cfg.buildbotDir}
ln -sf ${configFile} ${cfg.buildbotDir}/master.cfg
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir}
${pkgs.coreutils}/bin/ln -sfv ${masterCfg} ${cfg.buildbotDir}/master.cfg
${cfg.package}/bin/buildbot create-master ${cfg.buildbotDir}
'';
@ -247,4 +243,6 @@ in {
};
};
meta.maintainers = with lib.maintainers; [ nand0p Mic92 ];
}

View File

@ -0,0 +1,128 @@
# NixOS module for Buildbot Worker.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.buildbot-worker;
in {
options = {
services.buildbot-worker = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the Buildbot Worker.";
};
user = mkOption {
default = "bbworker";
type = types.str;
description = "User the buildbot Worker should execute under.";
};
group = mkOption {
default = "bbworker";
type = types.str;
description = "Primary group of buildbot Worker user.";
};
extraGroups = mkOption {
type = types.listOf types.str;
default = [ "nixbld" ];
description = "List of extra groups that the Buildbot Worker user should be a part of.";
};
home = mkOption {
default = "/home/bbworker";
type = types.path;
description = "Buildbot home directory.";
};
buildbotDir = mkOption {
default = "${cfg.home}/worker";
type = types.path;
description = "Specifies the Buildbot directory.";
};
workerUser = mkOption {
default = "example-worker";
type = types.str;
description = "Specifies the Buildbot Worker user.";
};
workerPass = mkOption {
default = "pass";
type = types.str;
description = "Specifies the Buildbot Worker password.";
};
masterUrl = mkOption {
default = "localhost:9989";
type = types.str;
description = "Specifies the Buildbot Worker connection string.";
};
package = mkOption {
type = types.package;
default = pkgs.buildbot-worker;
description = "Package to use for buildbot worker.";
example = pkgs.buildbot-worker;
};
packages = mkOption {
default = [ ];
example = [ pkgs.git ];
type = types.listOf types.package;
description = "Packages to add to PATH for the buildbot process.";
};
};
};
config = mkIf cfg.enable {
users.extraGroups = optional (cfg.group == "bbworker") {
name = "bbworker";
};
users.extraUsers = optional (cfg.user == "bbworker") {
name = "bbworker";
description = "Buildbot Worker User.";
isNormalUser = true;
createHome = true;
home = cfg.home;
group = cfg.group;
extraGroups = cfg.extraGroups;
useDefaultShell = true;
};
systemd.services.buildbot-worker = {
description = "Buildbot Worker.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
wants = [ "buildbot-master.service" ];
path = cfg.packages;
preStart = ''
# NOTE: ensure master has time to start in case running on localhost
${pkgs.coreutils}/bin/sleep 4
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir}
${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass}
'';
serviceConfig = {
Type = "forking";
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.home;
ExecStart = "${cfg.package}/bin/buildbot-worker start ${cfg.buildbotDir}";
};
};
};
meta.maintainers = with lib.maintainers; [ nand0p ];
}

View File

@ -22,7 +22,7 @@ in
};
###### implementation
config = mkIf config.hardware.bluetooth.enable {
environment.systemPackages = [ bluez-bluetooth pkgs.openobex pkgs.obexftp ];

View File

@ -102,7 +102,7 @@ in
serviceConfig = {
Type = "simple";
Restart = "always";
EnvironmentFile = "${pkgs.libreswan}/etc/sysconfig/pluto";
EnvironmentFile = "-${pkgs.libreswan}/etc/sysconfig/pluto";
ExecStartPre = [
"${libexec}/addconn --config ${configFile} --checkconfig"
"${libexec}/_stackmanager start"

View File

@ -0,0 +1,270 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.redsocks;
in
{
##### interface
options = {
services.redsocks = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable redsocks.";
};
log_debug = mkOption {
type = types.bool;
default = false;
description = "Log connection progress.";
};
log_info = mkOption {
type = types.bool;
default = false;
description = "Log start and end of client sessions.";
};
log = mkOption {
type = types.str;
default = "stderr";
description =
''
Where to send logs.
Possible values are:
- stderr
- file:/path/to/file
- syslog:FACILITY where FACILITY is any of "daemon", "local0",
etc.
'';
};
chroot = mkOption {
type = with types; nullOr str;
default = null;
description =
''
Chroot under which to run redsocks. Log file is opened before
chroot, but if logging to syslog /etc/localtime may be required.
'';
};
redsocks = mkOption {
description =
''
Local port to proxy associations to be performed.
The example shows how to configure a proxy to handle port 80 as HTTP
relay, and all other ports as HTTP connect.
'';
example = [
{ port = 23456; proxy = "1.2.3.4:8080"; type = "http-relay";
redirectCondition = "--dport 80";
doNotRedirect = [ "-d 1.2.0.0/16" ];
}
{ port = 23457; proxy = "1.2.3.4:8080"; type = "http-connect";
redirectCondition = true;
doNotRedirect = [ "-d 1.2.0.0/16" ];
}
];
type = types.listOf (types.submodule { options = {
ip = mkOption {
type = types.str;
default = "127.0.0.1";
description =
''
IP on which redsocks should listen. Defaults to 127.0.0.1 for
security reasons.
'';
};
port = mkOption {
type = types.int;
default = 12345;
description = "Port on which redsocks should listen.";
};
proxy = mkOption {
type = types.str;
description =
''
Proxy through which redsocks should forward incoming traffic.
Example: "example.org:8080"
'';
};
type = mkOption {
type = types.enum [ "socks4" "socks5" "http-connect" "http-relay" ];
description = "Type of proxy.";
};
login = mkOption {
type = with types; nullOr str;
default = null;
description = "Login to send to proxy.";
};
password = mkOption {
type = with types; nullOr str;
default = null;
description =
''
Password to send to proxy. WARNING, this will end up
world-readable in the store! Awaiting
https://github.com/NixOS/nix/issues/8 to be able to fix.
'';
};
disclose_src = mkOption {
type = types.enum [ "false" "X-Forwarded-For" "Forwarded_ip"
"Forwarded_ipport" ];
default = "false";
description =
''
Way to disclose client IP to the proxy.
- "false": do not disclose
http-connect supports the following ways:
- "X-Forwarded-For": add header "X-Forwarded-For: IP"
- "Forwarded_ip": add header "Forwarded: for=IP" (see RFC7239)
- "Forwarded_ipport": add header 'Forwarded: for="IP:port"'
'';
};
redirectInternetOnly = mkOption {
type = types.bool;
default = true;
description = "Exclude all non-globally-routable IPs from redsocks";
};
doNotRedirect = mkOption {
type = with types; listOf str;
default = [];
description =
''
Iptables filters that if matched will get the packet off of
redsocks.
'';
example = [ "-d 1.2.3.4" ];
};
redirectCondition = mkOption {
type = with types; either bool str;
default = false;
description =
''
Conditions to make outbound packets go through this redsocks
instance.
If set to false, no packet will be forwarded. If set to true,
all packets will be forwarded (except packets excluded by
redirectInternetOnly).
If set to a string, this is an iptables filter that will be
matched against packets before getting them into redsocks. For
example, setting it to "--dport 80" will only send
packets to port 80 to redsocks. Note "-p tcp" is always
implicitly added, as udp can only be proxied through redudp or
the like.
'';
};
};});
};
# TODO: Add support for redudp and dnstc
};
};
##### implementation
config = let
redsocks_blocks = concatMapStrings (block:
let proxy = splitString ":" block.proxy; in
''
redsocks {
local_ip = ${block.ip};
local_port = ${toString block.port};
ip = ${elemAt proxy 0};
port = ${elemAt proxy 1};
type = ${block.type};
${optionalString (block.login != null) "login = \"${block.login}\";"}
${optionalString (block.password != null) "password = \"${block.password}\";"}
disclose_src = ${block.disclose_src};
}
'') cfg.redsocks;
configfile = pkgs.writeText "redsocks.conf"
''
base {
log_debug = ${if cfg.log_debug then "on" else "off" };
log_info = ${if cfg.log_info then "on" else "off" };
log = ${cfg.log};
daemon = off;
redirector = iptables;
user = redsocks;
group = redsocks;
${optionalString (cfg.chroot != null) "chroot = ${cfg.chroot};"}
}
${redsocks_blocks}
'';
internetOnly = [ # TODO: add ipv6-equivalent
"-d 0.0.0.0/8"
"-d 10.0.0.0/8"
"-d 127.0.0.0/8"
"-d 169.254.0.0/16"
"-d 172.16.0.0/12"
"-d 192.168.0.0/16"
"-d 224.168.0.0/4"
"-d 240.168.0.0/4"
];
redCond = block:
optionalString (isString block.redirectCondition) block.redirectCondition;
iptables = concatImapStrings (idx: block:
let chain = "REDSOCKS${toString idx}"; doNotRedirect =
concatMapStringsSep "\n"
(f: "ip46tables -t nat -A ${chain} ${f} -j RETURN 2>/dev/null || true")
(block.doNotRedirect ++ (optionals block.redirectInternetOnly internetOnly));
in
optionalString (block.redirectCondition != false)
''
ip46tables -t nat -F ${chain} 2>/dev/null || true
ip46tables -t nat -N ${chain} 2>/dev/null || true
${doNotRedirect}
ip46tables -t nat -A ${chain} -p tcp -j REDIRECT --to-ports ${toString block.port}
# TODO: show errors, when it will be easily possible by a switch to
# iptables-restore
ip46tables -t nat -A OUTPUT -p tcp ${redCond block} -j ${chain} 2>/dev/null || true
''
) cfg.redsocks;
in
mkIf cfg.enable {
users.groups.redsocks = {};
users.users.redsocks = {
description = "Redsocks daemon";
group = "redsocks";
isSystemUser = true;
};
systemd.services.redsocks = {
description = "Redsocks";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
script = "${pkgs.redsocks}/bin/redsocks -c ${configfile}";
};
networking.firewall.extraCommands = iptables;
networking.firewall.extraStopCommands =
concatImapStringsSep "\n" (idx: block:
let chain = "REDSOCKS${toString idx}"; in
optionalString (block.redirectCondition != false)
"ip46tables -t nat -D OUTPUT -p tcp ${redCond block} -j ${chain} 2>/dev/null || true"
) cfg.redsocks;
};
}

View File

@ -34,6 +34,11 @@ in
";
};
package = mkOption {
default = pkgs.pythonPackages.searx;
description = "searx package to use.";
};
};
};
@ -61,14 +66,13 @@ in
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "searx";
ExecStart = "${pkgs.pythonPackages.searx}/bin/searx-run";
ExecStart = "${cfg.package}/bin/searx-run";
};
} // (optionalAttrs (configFile != "") {
environment.SEARX_SETTINGS_PATH = configFile;
});
environment.systemPackages = [ pkgs.pythonPackages.searx ];
environment.systemPackages = [ cfg.package ];
};

View File

@ -61,6 +61,7 @@ in
User = "caddy";
Group = "caddy";
AmbientCapabilities = "cap_net_bind_service";
LimitNOFILE = 8192;
};
};

View File

@ -1,5 +1,5 @@
# This module declares the options to define a *display manager*, the
# program responsible for handling X logins (such as xdm, kdm, gdb, or
# program responsible for handling X logins (such as xdm, gdb, or
# SLiM). The display manager allows the user to select a *session
# type*. When the user logs in, the display manager starts the
# *session script* ("xsession" below) to launch the selected session

View File

@ -16,18 +16,8 @@ with lib;
services.xserver.enable = true;
services.xserver.videoDrivers = [];
# Enable KDM. Any display manager will do as long as it supports XDMCP.
services.xserver.displayManager.kdm.enable = true;
services.xserver.displayManager.kdm.enableXDMCP = true;
services.xserver.displayManager.kdm.extraConfig =
''
[General]
# We're headless, so don't bother starting an X server.
StaticServers=
[Xdmcp]
Xaccess=${pkgs.writeText "Xaccess" "localhost"}
'';
# Enable GDM. Any display manager will do as long as it supports XDMCP.
services.xserver.displayManager.gdm.enable = true;
systemd.sockets.terminal-server =
{ description = "Terminal Server Socket";

View File

@ -104,15 +104,19 @@ in
# Set the default gateway.
${optionalString (cfg.defaultGateway != null && cfg.defaultGateway.address != "") ''
# FIXME: get rid of "|| true" (necessary to make it idempotent).
ip route add default via "${cfg.defaultGateway.address}" ${
ip route add default ${optionalString (cfg.defaultGateway.metric != null)
"metric ${toString cfg.defaultGateway.metric}"
} via "${cfg.defaultGateway.address}" ${
optionalString (cfg.defaultGatewayWindowSize != null)
"window ${toString cfg.defaultGatewayWindowSize}"} ${
optionalString (cfg.defaultGateway.interface != null)
"dev ${cfg.defaultGateway.interface}"}|| true
"dev ${cfg.defaultGateway.interface}"} || true
''}
${optionalString (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "") ''
# FIXME: get rid of "|| true" (necessary to make it idempotent).
ip -6 route add ::/0 via "${cfg.defaultGateway6.address}" ${
ip -6 route add ::/0 ${optionalString (cfg.defaultGateway6.metric != null)
"metric ${toString cfg.defaultGateway6.metric}"
} via "${cfg.defaultGateway6.address}" ${
optionalString (cfg.defaultGatewayWindowSize != null)
"window ${toString cfg.defaultGatewayWindowSize}"} ${
optionalString (cfg.defaultGateway6.interface != null)

View File

@ -134,6 +134,13 @@ let
description = "The default gateway interface.";
};
metric = mkOption {
type = types.nullOr types.int;
default = null;
example = 42;
description = "The default gateway metric/preference.";
};
};
};

View File

@ -0,0 +1,41 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.ecs-agent;
in {
options.services.ecs-agent = {
enable = mkEnableOption "Amazon ECS agent";
package = mkOption {
type = types.path;
description = "The ECS agent package to use";
default = pkgs.ecs-agent;
};
extra-environment = mkOption {
type = types.attrsOf types.str;
description = "The environment the ECS agent should run with. See the ECS agent documentation for keys that work here.";
default = {};
};
};
config = lib.mkIf cfg.enable {
systemd.services.ecs-agent = {
inherit (cfg.package.meta) description;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = cfg.extra-environment;
script = ''
if [ ! -z "$ECS_DATADIR" ]; then
mkdir -p "$ECS_DATADIR"
fi
${cfg.package.bin}/bin/agent
'';
};
};
}

View File

@ -4,12 +4,19 @@ with lib;
let
cfg = config.services.vmwareGuest;
open-vm-tools = pkgs.open-vm-tools;
open-vm-tools = if cfg.headless then pkgs.open-vm-tools-headless else pkgs.open-vm-tools;
xf86inputvmmouse = pkgs.xorg.xf86inputvmmouse;
in
{
options = {
services.vmwareGuest.enable = mkEnableOption "VMWare Guest Support";
services.vmwareGuest = {
enable = mkEnableOption "VMWare Guest Support";
headless = mkOption {
type = types.bool;
default = false;
description = "Whether to disable X11-related features.";
};
};
};
config = mkIf cfg.enable {
@ -28,7 +35,7 @@ in
environment.etc."vmware-tools".source = "${pkgs.open-vm-tools}/etc/vmware-tools/*";
services.xserver = {
services.xserver = mkIf (!cfg.headless) {
videoDrivers = mkOverride 50 [ "vmware" ];
modules = [ xf86inputvmmouse ];

View File

@ -325,8 +325,8 @@ in rec {
kde = makeClosure ({ pkgs, ... }:
{ services.xserver.enable = true;
services.xserver.displayManager.kdm.enable = true;
services.xserver.desktopManager.kde4.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.kde5.enable = true;
});
xfce = makeClosure ({ pkgs, ... }:

View File

@ -36,7 +36,7 @@ import ./make-test.nix ({ pkgs, ...} : {
# paxmark actually works (otherwise, the process should be terminated)
subtest "tcc", sub {
$machine->execute("echo -e '#include <stdio.h>\nint main(void) { puts(\"hello\"); return 0; }' >main.c");
$machine->succeed("${pkgs.tinycc.bin}/bin/tcc -run main.c");
$machine->succeed("${pkgs.tinycc}/bin/tcc -run main.c");
};
subtest "RBAC", sub {

View File

@ -54,7 +54,7 @@ import ./make-test.nix ({ pkgs, ... }: {
client =
{ config, pkgs, ... }:
{ imports = [ ./common/x11.nix ];
services.xserver.desktopManager.kde4.enable = true;
services.xserver.desktopManager.kde5.enable = true;
};
};

View File

@ -45,7 +45,7 @@ import ./make-test.nix ({ pkgs, ... }: {
client =
{ config, pkgs, ... }:
{ imports = [ ./common/x11.nix ];
services.xserver.desktopManager.kde4.enable = true;
services.xserver.desktopManager.kde5.enable = true;
};
};

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "atom-${version}";
version = "1.13.1";
version = "1.14.1";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0nkd0nrnnmln5fjs1c97dligzqp744j4y6lqanfbs9vrxms6mnq3";
sha256 = "0dmzqz1j2nfcm459zgfzqym26kmbspdn9lipf77aawbbn2y36xqp";
name = "${name}.deb";
};

View File

@ -822,10 +822,10 @@
gnugo = callPackage ({ ascii-art-to-unicode, cl-lib ? null, elpaBuild, fetchurl, lib, xpm }:
elpaBuild {
pname = "gnugo";
version = "3.0.1";
version = "3.0.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gnugo-3.0.1.tar";
sha256 = "08z2hg9mvsxdznq027cmwhkb5i7n7s9r2kvd4jha9xskrcnzj3pp";
url = "https://elpa.gnu.org/packages/gnugo-3.0.2.tar";
sha256 = "12xm960awsn2k8ph1yibhrxdg8iz1icifdqimysg3qxljmhmnb3k";
};
packageRequires = [ ascii-art-to-unicode cl-lib xpm ];
meta = {

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ To update the list of packages from MELPA,
*/
{ lib }:
{ lib, external }:
self:
@ -174,6 +174,17 @@ self:
# upstream issue: missing file header
zeitgeist = markBroken super.zeitgeist;
w3m = super.w3m.override (args: {
melpaBuild = drv: args.melpaBuild (drv // {
prePatch =
let w3m = "${lib.getBin external.w3m}/bin/w3m"; in ''
substituteInPlace w3m.el \
--replace 'defcustom w3m-command nil' \
'defcustom w3m-command "${w3m}"'
'';
});
});
};
melpaPackages = super // overrides;

View File

@ -2470,6 +2470,27 @@
license = lib.licenses.free;
};
}) {};
better-shell = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "better-shell";
version = "1.1";
src = fetchFromGitHub {
owner = "killdash9";
repo = "better-shell";
rev = "6ae157da700a4473734dca75925f6bf60e6b3ba7";
sha256 = "14ym7gp57yflf86hxpsjnagxnc0z1jrdc4mbq7wcbh5z8kjkbfpd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fc553c9fb6de69dafe9fbe44a955b307f4d9507f/recipes/better-shell";
sha256 = "1mr39xz8chnc28zw1rrw5yqf44v44pby7ki22yyz6rp1j5ishp4v";
name = "better-shell";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/better-shell";
license = lib.licenses.free;
};
}) {};
biblio = callPackage ({ biblio-core, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "biblio";
@ -3565,12 +3586,12 @@
chinese-pyim = callPackage ({ async, chinese-pyim-basedict, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip }:
melpaBuild {
pname = "chinese-pyim";
version = "1.5.1";
version = "1.5.2";
src = fetchFromGitHub {
owner = "tumashu";
repo = "chinese-pyim";
rev = "b210c0d5275e1e8c0b78bed186cc18fc27061dd4";
sha256 = "1jixkb7jw07lykbfv022ccnys4xypcbv03f9bxl2r16wizzymvvd";
rev = "577a3438d14e1a1f08baf0399ec8138c9d1dcba4";
sha256 = "0i9nqhqbj12ilr5fsa4cwai9kf2ydv84m606zqca2xyvvdzw22as";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/157a264533124ba05c161aa93a32c7209f002fba/recipes/chinese-pyim";
@ -3838,12 +3859,12 @@
cliphist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }:
melpaBuild {
pname = "cliphist";
version = "0.5.2";
version = "0.5.3";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "cliphist";
rev = "8aaee153e0561625c35a8c178e57385c2ec92731";
sha256 = "0swsvzz20szfcgfaarga9apla1kl0ph0lrpk0ccl6mcf93zbnvby";
rev = "acbd9782d82d7ae6bfb22fb0955597b9c5fcbb6c";
sha256 = "1gj5fqjyr4m4qim9qjsvzzk42rm3vw3yycvq3nj0wpj90zb1yh14";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/82d86dae4ad8efc8ef342883c164c56e43079171/recipes/cliphist";
@ -4143,12 +4164,12 @@
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cmake-mode";
version = "3.7.2";
version = "3.8.0pre1";
src = fetchFromGitHub {
owner = "Kitware";
repo = "CMake";
rev = "35413bf2c1b33980afd418030af27f184872af6b";
sha256 = "1kk0xri88h4lla8r8y5gksiwpyxb468h8qn0f61sfa1kni73z09s";
rev = "84df4a49500e51ac6e2a19a77e385e66234386f7";
sha256 = "1kkycphqbz8j3jp70n9vh3lgpb2fxy2461q6x365h8mg5ab4w7x3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
@ -5094,12 +5115,12 @@
copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "copy-as-format";
version = "0.0.2";
version = "0.0.3";
src = fetchFromGitHub {
owner = "sshaw";
repo = "copy-as-format";
rev = "6c47295597c69b3b08dd8f137f6a5973a5588674";
sha256 = "1d4x8rvmzqi3cby01ahgr3fqcsq4kpd6sglr9slxcw7hp7rlih0i";
rev = "edc6d2313b321988fdf780fac229d395e4752702";
sha256 = "1gnm9r42nkp349d5ry2bv9in83ikmh5pnrfcw96yigxrzkbajb2s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format";
@ -9066,12 +9087,12 @@
erlang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erlang";
version = "19.2.2";
version = "19.2.3";
src = fetchFromGitHub {
owner = "erlang";
repo = "otp";
rev = "51faafa9a20c4afa7944b8089b26f22c774bed19";
sha256 = "0shy3ckxw9scsg3j8brzk5r3p0rdpfbr9ys7akmdp2pq88d867i9";
rev = "aa315e1cf1b79ab782e5b4c944595495ebf4e2f4";
sha256 = "1lsmjpz2g4hj44fz95w7sswzj40iv7jq5jk64x0095lhvxmlf57c";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang";
@ -9170,12 +9191,12 @@
es-mode = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, spark }:
melpaBuild {
pname = "es-mode";
version = "4.2.0";
version = "4.3.0";
src = fetchFromGitHub {
owner = "dakrone";
repo = "es-mode";
rev = "f5e6054a1d25d5eb8e21ddb931b7f65b0735c5f8";
sha256 = "04lll5sscbpqcq3sv5gsfky5qcj6asqql7fw1bp6g12qqf9r02nd";
rev = "996730ebce57d810d2c275c7fadb11c2b1134dea";
sha256 = "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/85445b59329bfd81a3fd913d7d6fe7784c31744c/recipes/es-mode";
@ -9566,6 +9587,27 @@
license = lib.licenses.free;
};
}) {};
evil = callPackage ({ fetchFromGitHub, fetchurl, goto-chg, lib, melpaBuild, undo-tree }:
melpaBuild {
pname = "evil";
version = "1.2.12";
src = fetchFromGitHub {
owner = "emacs-evil";
repo = "evil";
rev = "0ad4c2dae1249558f7b59a78a685e4f8092009c9";
sha256 = "1z7ysn0h62i674pw47k905713m4ch7hrisk4834rf53zq3c9sabn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/514964d788f250e1e7893142bc094c63131bc6a5/recipes/evil";
sha256 = "044k9p32y4cys3zwdfanr1zddgkxz16ahqspfz7vfszyw8yml1jb";
name = "evil";
};
packageRequires = [ goto-chg undo-tree ];
meta = {
homepage = "https://melpa.org/#/evil";
license = lib.licenses.free;
};
}) {};
evil-anzu = callPackage ({ anzu, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-anzu";
@ -9842,12 +9884,12 @@
evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-nerd-commenter";
version = "2.3.1";
version = "2.3.3";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "evil-nerd-commenter";
rev = "54c618aada776bfda0742819ff9e91845a91e095";
sha256 = "04iyr6ys453pyfvif91qnhn6xyhl4z4cz2apj6vga61pa8lc70da";
rev = "01a98a20c536a575ee5bc897f38116155154d5fe";
sha256 = "160h4qasqr04fnv9w5dar327i074dsyac2md5y7p3hnz1c05skhl";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
@ -10574,22 +10616,22 @@
license = lib.licenses.free;
};
}) {};
find-by-pinyin-dired = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
find-by-pinyin-dired = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pinyinlib }:
melpaBuild {
pname = "find-by-pinyin-dired";
version = "0.0.2";
version = "0.0.3";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "find-by-pinyin-dired";
rev = "3137c367d58958858daa6d3dee1993b2eb9dd9b4";
sha256 = "1xjb66pydm3yf0jxnm2mri98pxq3b26xvwjkaj1488qgj27i05jr";
rev = "2c48434637bd63840fca4d2c6cf9ebd5dd44658f";
sha256 = "0ial0lbvg0xbrwn8cm68xc5wxj3xgp110y2zgypkdpak8gkv8b5h";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0aa68b4603bf4071d7d12b40de0138ecab1989d7/recipes/find-by-pinyin-dired";
sha256 = "150hvih3mdd1dqffgdcv3nn4qhy86s4lhjkfq0cfzgngfwif8qqq";
name = "find-by-pinyin-dired";
};
packageRequires = [];
packageRequires = [ pinyinlib ];
meta = {
homepage = "https://melpa.org/#/find-by-pinyin-dired";
license = lib.licenses.free;
@ -14105,6 +14147,27 @@
license = lib.licenses.free;
};
}) {};
green-screen-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "green-screen-theme";
version = "1.0.0.1";
src = fetchFromGitHub {
owner = "rbanffy";
repo = "green-screen-emacs";
rev = "e47e3eb903b4d9dbcc66342d91915947b35e5e1e";
sha256 = "0gv434aab9ar624l4r7ky4ksvkchzlgj8pyvkc73kfqcxg084pdn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/821744ca106f1b74941524782e4581fc93800fed/recipes/green-screen-theme";
sha256 = "0a45xcl74kp3v39bl169sq46mqxiwvvis6jzwcy6yrl2vqqi4mab";
name = "green-screen-theme";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/green-screen-theme";
license = lib.licenses.free;
};
}) {};
grin = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild {
pname = "grin";
version = "1.0";
@ -14376,22 +14439,22 @@
license = lib.licenses.free;
};
}) {};
hacker-typer = callPackage ({ async, fetchFromGitHub, fetchurl, lib, melpaBuild }:
hacker-typer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "hacker-typer";
version = "1.0.1";
version = "1.0.6";
src = fetchFromGitHub {
owner = "therockmandolinist";
repo = "emacs-hacker-typer";
rev = "de208bb6d69f6f45eca8522d41012c7f729b8c9f";
sha256 = "0lhsj9j17sd43w96zk84ssfvk5q518znbp1zkb5znl2q7ky8cwrg";
rev = "d5a23714a4ccc5071580622f278597d5973f40bd";
sha256 = "13wp7cg9d9ij44inxxyk1knczglxrbfaq50wyhc4x5zfhz5yw7wx";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/561661965a7a500f24671454b3b680816457e180/recipes/hacker-typer";
sha256 = "0i9kkxcz0fz4yviksl3f0ggh9kpwr9sidg7945r46bmblni3f0j9";
url = "https://raw.githubusercontent.com/milkypostman/melpa/8e04a3a1606ea23865c04d93e3dc77cb55b9931f/recipes/hacker-typer";
sha256 = "128y562cxi8rblnqjdzhqc6b58bxi67f6hz569gqw4jywz0xcd0g";
name = "hacker-typer";
};
packageRequires = [ async ];
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/hacker-typer";
license = lib.licenses.free;
@ -14735,12 +14798,12 @@
helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }:
melpaBuild {
pname = "helm";
version = "2.5.1";
version = "2.5.2";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
rev = "b54d937634986dbebe97c0283137bcde07ed2275";
sha256 = "0cq4pcx0rn9kzf55pbad1lcn1xq58vcdng9sx50485wdxqr0bxzc";
rev = "7d7c16f10103aeee591daf46b143d23efdf3a825";
sha256 = "0mn36dxd70nsk1dwn0mzz94sy28hk41af8chdpl2cd09bkpw113l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm";
@ -14777,12 +14840,12 @@
helm-ag = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
melpaBuild {
pname = "helm-ag";
version = "0.57";
version = "0.58";
src = fetchFromGitHub {
owner = "syohex";
repo = "emacs-helm-ag";
rev = "49e1f66fa80674513ca898e32d62d6dad875cb90";
sha256 = "0vzgiix2c8jwpk2hhxvz9gqb78glmd4dk1myrgvxs9fhsj54dkk3";
rev = "39ed137823665fca2fa5b215f7c3e8701173f7b7";
sha256 = "0a6yls52pkqsaj6s5nsi70kzpvssdvb87bfnp8gp26q2y3syx4ni";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/81f0f525680fea98e804f39dbde1dada887e8821/recipes/helm-ag";
@ -15029,12 +15092,12 @@
helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "helm-core";
version = "2.5.1";
version = "2.5.2";
src = fetchFromGitHub {
owner = "emacs-helm";
repo = "helm";
rev = "b54d937634986dbebe97c0283137bcde07ed2275";
sha256 = "0cq4pcx0rn9kzf55pbad1lcn1xq58vcdng9sx50485wdxqr0bxzc";
rev = "7d7c16f10103aeee591daf46b143d23efdf3a825";
sha256 = "0mn36dxd70nsk1dwn0mzz94sy28hk41af8chdpl2cd09bkpw113l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core";
@ -23129,12 +23192,12 @@
org-jira = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild {
pname = "org-jira";
version = "2.5.2";
version = "2.6.0";
src = fetchFromGitHub {
owner = "ahungry";
repo = "org-jira";
rev = "af4115f4e8b4e77de5642fb28ce6d5e0d7cb0b70";
sha256 = "1g775f9gpl0nqq3vn6h9cnjazimn9bjwk31dc7fdylz3nf7f3h03";
rev = "0ff62665231df2be5d5bc84c4748c272664eeff3";
sha256 = "0qn203bw0v7g8kmpkqp9vwh7m8cjjhklvwbhgmr8szaz1i1m9d0i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/730a585e5c9216a2428a134c09abcc20bc7c631d/recipes/org-jira";
@ -23230,22 +23293,22 @@
license = lib.licenses.free;
};
}) {};
org-mime = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
org-mime = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-mime";
version = "0.0.4";
version = "0.0.5";
src = fetchFromGitHub {
owner = "org-mime";
repo = "org-mime";
rev = "3c4f24c8d43c24332c4f2f4bf763459b11ead956";
sha256 = "04xs06sgdigi9hpciqb0d12rsgzg5b5vyf08rlvkjiddkqclp5pw";
rev = "a0b82a6c1a0dbcf5b7bebfe2e5817d54a1cd3cc8";
sha256 = "11wldx6c53ncw3pmdwxn31q82vkcffqvr2cfphl5bhb4q8r5lrjn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/521678fa13884dae69c2b4b7a2af718b2eea4b28/recipes/org-mime";
sha256 = "14154pajl2bbawdd8iqfwgc67pcjp2lxl6f92c62nwq12wkcnny6";
name = "org-mime";
};
packageRequires = [];
packageRequires = [ cl-lib ];
meta = {
homepage = "https://melpa.org/#/org-mime";
license = lib.licenses.free;
@ -24734,6 +24797,27 @@
license = lib.licenses.free;
};
}) {};
pastery = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild {
pname = "pastery";
version = "0.1.14";
src = fetchFromGitHub {
owner = "diasbruno";
repo = "pastery.el";
rev = "3f60a2660613c09be5a0b6e299828b44ee3c8732";
sha256 = "1dzbkiy2qjdq4isrpiwj25qj069nhydzngg6avyh2c2qmxkibjsr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6058218450071db0af9a5b8ce8ec09a735c4ab66/recipes/pastery";
sha256 = "006qawjc86spbbs2pxvhg9w94rcsxap577cndqwaiw1k0cc8vkhp";
name = "pastery";
};
packageRequires = [ emacs request ];
meta = {
homepage = "https://melpa.org/#/pastery";
license = lib.licenses.free;
};
}) {};
pathify = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pathify";
@ -25069,6 +25153,27 @@
license = lib.licenses.free;
};
}) {};
phan = callPackage ({ composer, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "phan";
version = "0.0.2";
src = fetchFromGitHub {
owner = "zonuexe";
repo = "phan.el";
rev = "4e3528f490e77d3aa6d81729b30b569434ef679f";
sha256 = "1aif1hshwpzi353k2gcpwk9s76jlmz3s5dyf357qfv14b5ddhw6l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d591d9ba70b1e32f25204ad9409aad78fd68a93c/recipes/phan";
sha256 = "16r1d2bgbb2y7l141sw7nzhx0s50gzwq5ang00y7f4sfldqvshzf";
name = "phan";
};
packageRequires = [ composer emacs f ];
meta = {
homepage = "https://melpa.org/#/phan";
license = lib.licenses.free;
};
}) {};
phi-search = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "phi-search";
@ -26032,22 +26137,22 @@
license = lib.licenses.free;
};
}) {};
projectile-variable = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }:
projectile-variable = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "projectile-variable";
version = "0.0.1";
version = "0.0.2";
src = fetchFromGitHub {
owner = "zonuexe";
repo = "projectile-variable";
rev = "810394eabf330325a86ec6f60c69e160eb837ac3";
sha256 = "183azck3bi4qwpprcc07kvwm3piwqgql7ryy1czvmw3kbdmk1rpj";
rev = "8d348ac70bdd6dc320c13a12941b32b38140e264";
sha256 = "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ff603b43235f546cd47f72e675aee88d5f41e855/recipes/projectile-variable";
sha256 = "1cj8nwxf1jp5q5zzxp92fxla6jhwzd21gw649ar6mygi4hgymsji";
name = "projectile-variable";
};
packageRequires = [ cl-lib emacs projectile ];
packageRequires = [ cl-lib emacs ];
meta = {
homepage = "https://melpa.org/#/projectile-variable";
license = lib.licenses.free;
@ -27505,12 +27610,12 @@
rg = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "rg";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "dajva";
repo = "rg.el";
rev = "f1af862ba50b344d2f039f18fe83e32b6f0829a9";
sha256 = "18i5rspwx48xik8yaw0znsfqarwab7nra6wiiznjkpzm0cgh4av1";
rev = "ec9eb5240191612debf0392ee7a7f491c7dae27e";
sha256 = "0773d0n5jq42yr5p1xbbfji027j0kw4msv1p8b7zk82ij1yc7hyr";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
@ -28322,12 +28427,12 @@
selectric-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "selectric-mode";
version = "1.1";
version = "1.2";
src = fetchFromGitHub {
owner = "rbanffy";
repo = "selectric-mode";
rev = "0dd7ef28a9d9d6fbb95fdeeab6b576ad8762ad16";
sha256 = "18xdkisxvdizsk51pnyimp9mwc6k9cpcxqr5hgndkz9q97p5dp79";
rev = "a8e8c8899c749bd36bdd161e161cdc51301defc6";
sha256 = "1dj8vccdk1s0ynl5znpg02xp182srn3s8cqcxqrxjllp7wbgab31";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/08922071b9854142eab726302e75f1db2d326ec5/recipes/selectric-mode";
@ -28994,12 +29099,12 @@
slime = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, macrostep, melpaBuild }:
melpaBuild {
pname = "slime";
version = "2.18";
version = "2.19";
src = fetchFromGitHub {
owner = "slime";
repo = "slime";
rev = "2da9fef009f2380daf9404022ca69cb87573f509";
sha256 = "0d1fcjv11my4sa11zim99ylzfsc5q989x4izrrxs3y9ii0nq8kax";
rev = "6e20d01e446334848ea31ace0ce041cec25647ab";
sha256 = "1ywlbdk9ywfkv8z6pb69r29nh03krfdg676d086i8qjaas7ly2yp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/14c60acbfde13d5e9256cea83d4d0d33e037d4b9/recipes/slime";
@ -29915,6 +30020,27 @@
license = lib.licenses.free;
};
}) {};
ssh-agency = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ssh-agency";
version = "0.3";
src = fetchFromGitHub {
owner = "magit";
repo = "ssh-agency";
rev = "94abffa716aff963175196066526c7ee8b4efae7";
sha256 = "1r41hgh0kaf9x56jllqjz7f9ypzgyf9pqqpm3r49xyi8fr1drbxc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b9a9e4bd0205908bfb99762c7daaf3be276bb03a/recipes/ssh-agency";
sha256 = "0lci3fhl2p9mwilvq1njzy13dkq5cp5ighymf3zs4gzm3w0ih3h8";
name = "ssh-agency";
};
packageRequires = [ dash emacs ];
meta = {
homepage = "https://melpa.org/#/ssh-agency";
license = lib.licenses.free;
};
}) {};
ssh-deploy = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ssh-deploy";
@ -30419,12 +30545,12 @@
swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "swift-mode";
version = "2.2.2";
version = "2.2.3";
src = fetchFromGitHub {
owner = "chrisbarrett";
repo = "swift-mode";
rev = "42669da0b68bba2d12f9d5fc38f30def118bb999";
sha256 = "0l7f7mm4a7qrw0i6fnakgy7payghjgmamln9ldbdx593hg1jjzr8";
rev = "75cbae223fbf84d19e14a7f7734ded4f46078654";
sha256 = "1ilawg15l6j3w2mlybz01h1dk9mym37wq4illz1llc3q3v9n7nny";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode";
@ -32838,12 +32964,12 @@
which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "which-key";
version = "1.2.1";
version = "2.0";
src = fetchFromGitHub {
owner = "justbur";
repo = "emacs-which-key";
rev = "17f4b0069273f9c9877dc079e5cf49ed9cb4d278";
sha256 = "1h673yjl0hp6p244pkk6hmazgfrj2sbz9cvd1r6rnrp1lpn8z1dl";
rev = "ea6f1dc5aacff2f3d909e410db05af01966555aa";
sha256 = "0pckvxk2vpwqfypz5vyk0ig6g5697ibnlk8vspvqpanahvgaj0nh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key";
@ -33114,8 +33240,8 @@
version = "0.9.1";
src = fetchhg {
url = "https://bitbucket.com/ArneBab/wisp";
rev = "280ab84bf8ad";
sha256 = "088khr4ha37nvxzg620a6gyq7pc40rb13bbi9vgqhgjgggpq61d9";
rev = "3a654cfe6632";
sha256 = "1ahmpk0302g375w9ikkzagjvx8qblkzx40w960ka0cqf7nzyk75d";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";

View File

@ -3,8 +3,8 @@
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
, alsaLib, cairo, acl, gpm, AppKit, CoreWLAN, Kerberos, GSS, ImageIO
, withX ? !stdenv.isDarwin
, withGTK2 ? true, gtk2 ? null
, withGTK3 ? false, gtk3 ? null
, withGTK2 ? false, gtk2 ? null
, withGTK3 ? true, gtk3 ? null
, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
, withCsrc ? true
, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null

View File

@ -0,0 +1,55 @@
From e84645d1694bdad7f179cd41babce723fe07aa63 Mon Sep 17 00:00:00 2001
From: Kevin Funk <kfunk@kde.org>
Date: Mon, 5 Dec 2016 15:20:53 +0100
Subject: Hotfix for restoring build with newer KConfig
https://phabricator.kde.org/D3386 is a SIC change, handle that
---
project/projectconfigskeleton.cpp | 4 ++++
project/projectconfigskeleton.h | 14 +++++---------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/project/projectconfigskeleton.cpp b/project/projectconfigskeleton.cpp
index 0e06149..c4c9767 100644
--- a/project/projectconfigskeleton.cpp
+++ b/project/projectconfigskeleton.cpp
@@ -46,6 +46,10 @@ ProjectConfigSkeleton::ProjectConfigSkeleton( const QString & configname )
ProjectConfigSkeleton::ProjectConfigSkeleton( KSharedConfigPtr config )
: KConfigSkeleton( config ), d( new ProjectConfigSkeletonPrivate )
{
+ // FIXME: Check if that does the right thing.
+ // https://phabricator.kde.org/D3386 broke source compat in kconfig, thus requiring us to make this ctor public
+ Q_ASSERT(config);
+ d->m_developerTempFile = config->name();
}
void ProjectConfigSkeleton::setDeveloperTempFile( const QString& cfg )
diff --git a/project/projectconfigskeleton.h b/project/projectconfigskeleton.h
index ed17ed0..c8314df 100644
--- a/project/projectconfigskeleton.h
+++ b/project/projectconfigskeleton.h
@@ -55,16 +55,12 @@ public:
Path projectFile() const;
Path developerFile() const;
+
+protected:
+ explicit ProjectConfigSkeleton( KSharedConfigPtr config );
+
private:
- /**
- * There's no way in KDE4 API to find out the file that the config object
- * was created from, so we can't apply defaults when using this
- * constructors. Thus I'm making this private, so we can find out when
- * this constructor is used and see if we need to add appropriate API to
- * kdelibs
- */
- explicit ProjectConfigSkeleton( KSharedConfigPtr config );
- struct ProjectConfigSkeletonPrivate * const d;
+ struct ProjectConfigSkeletonPrivate * const d;
};
}
--
cgit v0.11.2

View File

@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
sha256 = "643d1145e1948af221f9ae148d0a10809f3d89af4b97ff0d6c4d571004f46bd4";
};
patches = [ ./kdevplatform-projectconfigskeleton.patch ];
nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules makeQtWrapper ];
propagatedBuildInputs = [ ];

View File

@ -0,0 +1,26 @@
{ stdenv, fetchFromGitHub, pythonPackages }:
with stdenv.lib;
pythonPackages.buildPythonPackage rec {
name = "neovim-remote-${version}";
version = "v1.4.0";
disabled = !pythonPackages.isPy3k;
src = fetchFromGitHub {
owner = "mhinz";
repo = "neovim-remote";
rev = version;
sha256 = "0msvfh27f56xj5ki59ikzavxz863nal5scm57n43618m49qzg8iz";
};
propagatedBuildInputs = [ pythonPackages.neovim ];
meta = {
description = "A tool that helps controlling nvim processes from a terminal";
homepage = https://github.com/mhinz/neovim-remote/;
license = licenses.mit;
maintainers = with maintainers; [ edanaher ];
platforms = platforms.unix;
};
}

View File

@ -1,46 +1,46 @@
{ stdenv, fetchFromGitHub, cmake, qt5, pythonPackages, libmsgpack
, makeWrapper, neovim
}:
{ stdenv, fetchFromGitHub, cmake, doxygen
, libmsgpack, makeWrapper, neovim, pythonPackages, qtbase }:
let # not very usable ATM
version = "0.2.4";
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "neovim-qt-${version}";
version = "0.2.4";
src = fetchFromGitHub {
owner = "equalsraf";
repo = "neovim-qt";
rev = "v${version}";
owner = "equalsraf";
repo = "neovim-qt";
rev = "v${version}";
sha256 = "0yf9wwkl0lbbj3vyf8hxnlsk7jhk5ggivszyqxply69dbar9ww59";
};
# It tries to download libmsgpack; let's use ours.
postPatch = let use-msgpack = ''
cmake_minimum_required(VERSION 2.8.11)
project(neovim-qt-deps)
# Similar enough to FindMsgpack
set(MSGPACK_INCLUDE_DIRS ${libmsgpack}/include PARENT_SCOPE)
set(MSGPACK_LIBRARIES msgpackc PARENT_SCOPE)
'';
in "echo '${use-msgpack}' > third-party/CMakeLists.txt";
buildInputs = with pythonPackages; [
cmake qt5.qtbase
python msgpack jinja2 libmsgpack
makeWrapper
cmakeFlags = [
"-DMSGPACK_INCLUDE_DIRS=${libmsgpack}/include"
"-DMSGPACK_LIBRARIES=${libmsgpack}/lib/libmsgpackc.so"
];
doCheck = false; # 5 out of 7 fail
buildInputs = with pythonPackages; [
qtbase libmsgpack
] ++ (with pythonPackages; [
jinja2 msgpack python
]);
nativeBuildInputs = [ cmake doxygen makeWrapper ];
enableParallelBuilding = true;
# avoid cmake trying to download libmsgpack
preConfigure = "echo \"\" > third-party/CMakeLists.txt";
postInstall = ''
wrapProgram "$out/bin/nvim-qt" --prefix PATH : "${neovim}/bin"
'';
meta = with stdenv.lib; {
description = "A prototype Qt5 GUI for neovim";
description = "Neovim client library and GUI, in Qt5";
license = licenses.isc;
maintainers = with maintainers; [ peterhoeg ];
inherit (neovim.meta) platforms;
inherit version;
};
}

View File

@ -2,24 +2,24 @@
makeWrapper, libXScrnSaver }:
let
version = "1.9.0";
rev = "27240e71ef390bf2d66307e677c2a333cebf75af";
version = "1.9.1";
rev = "f9d0c687ff2ea7aabd85fb9a43129117c0ecf519";
channel = "stable";
# The revision can be obtained with the following command (see https://github.com/NixOS/nixpkgs/issues/22465):
# curl -w "%{url_effective}\n" -I -L -s -S https://vscode-update.azurewebsites.net/latest/linux-x64/stable -o /dev/null
sha256 = if stdenv.system == "i686-linux" then "05f1sk2lq2skp8fxq6q229kf89vi2sq3zz6lywq7nk81pwvp8jap"
else if stdenv.system == "x86_64-linux" then "0wj17lwq8f88xvfa6wfbqm580kp0470ib2yxn15j9mv0iw7nzqry"
else if stdenv.system == "x86_64-darwin" then "1k067h099j6fv820nn6h4i8ax35yvd1h8f4h5216dm66cpikv7nd"
sha256 = if stdenv.system == "i686-linux" then "03lv792rkb1hgn1knd8kpic7q07cd194cr4fw1bimnjblrvyy586"
else if stdenv.system == "x86_64-linux" then "1vrcb4y2y83bhxx9121afwbzm8yddfin4zy3nyxfi805pjmszwjm"
else if stdenv.system == "x86_64-darwin" then "0s92ing4m2qyqdkpmkhl2zj40hcdsr5x764sb6zprwwhfv4npymr"
else throw "Unsupported system: ${stdenv.system}";
urlBase = "https://az764295.vo.msecnd.net/${channel}/${rev}/";
urlStr = if stdenv.system == "i686-linux" then
urlBase + "code-${channel}-code_${version}-1486024310_i386.tar.gz"
urlBase + "code-${channel}-code_${version}-1486596246_i386.tar.gz"
else if stdenv.system == "x86_64-linux" then
urlBase + "code-${channel}-code_${version}-1486023356_amd64.tar.gz"
urlBase + "code-${channel}-code_${version}-1486597190_amd64.tar.gz"
else if stdenv.system == "x86_64-darwin" then
urlBase + "VSCode-darwin-${channel}.zip"
else throw "Unsupported system: ${stdenv.system}";

View File

@ -8,7 +8,7 @@ let
inherit (python2Packages) pygtk wrapPython python;
in stdenv.mkDerivation rec {
name = "gimp-${version}";
version = "2.8.18";
version = "2.8.20";
# This declarations for `gimp-with-plugins` wrapper,
# (used for determining $out/lib/gimp/${majorVersion}/ paths)
@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
sha256 = "0halh6sl3d2j9gahyabj6h6r3yyldcy7sfb4qrfazpkqqr3j5p9r";
sha256 = "939ca1df70be865c672ffd654f4e20f188121d01601c5c90237214101533c805";
};
buildInputs =

View File

@ -125,7 +125,7 @@ rec {
Filters/Enhance/Smart remove selection
*/
name = "resynthesizer-2.0.1";
buildInputs = [ gimp pkgs.fftw pkgs.autoreconfHook ]
buildInputs = [ gimp pkgs.fftw pkgs.autoreconfHook ]
++ gimp.nativeBuildInputs;
makeFlags = "GIMP_LIBDIR=$out/lib/gimp/2.0/";
src = fetchFromGitHub {
@ -178,31 +178,16 @@ rec {
gmic =
pluginDerivation rec {
name = "gmic-1.6.5.0";
inherit (pkgs.gmic) name src meta;
buildInputs = [pkgconfig pkgs.fftw pkgs.opencv gimp] ++ gimp.nativeBuildInputs;
src = fetchurl {
url = http://gmic.eu/files/source/gmic_1.6.5.0.tar.gz;
sha256 = "1vb6zm5zpqfnzxjvb9yfvczaqacm55rf010ib0yk9f28b17qrjgb";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ pkgs.fftw pkgs.opencv gimp ] ++ gimp.nativeBuildInputs;
sourceRoot = "${name}/src";
buildFlags = "gimp";
installPhase = "installPlugins gmic_gimp";
meta = {
description = "Script language for image processing which comes with its open-source interpreter";
homepage = http://gmic.eu/gimp.shtml;
license = stdenv.lib.licenses.cecill20;
/*
The purpose of this Free Software license agreement is to grant users
the right to modify and redistribute the software governed by this
license within the framework of an open source distribution model.
[ ... ] */
};
};
# this is more than a gimp plugin !

View File

@ -38,6 +38,10 @@ stdenv.mkDerivation {
url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-8684.patch";
sha256 = "1p36gpz904wnmbz1n64x4pdpg8lp9zs3gx0awklxqdvgl8m82vvy";
})
(fetchpatch {
url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-7/debian/patches/CVE-2016-9830.patch";
sha256 = "0qh15sd7nx7vf9sld4453iml951bwsx2fx84hxc7plhds2k3gjpa";
})
];
configureFlags = [

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "gpsprune-${version}";
version = "18.5";
version = "18.6";
src = fetchurl {
url = "http://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
sha256 = "0xd97b7rs5i41hyih6zdbvls090903yfr1r9lflq93dyqhmzpdhn";
sha256 = "1ii9pkj24jcwzs225nyi17ks07dfc5x3940hpqrsb5xzxy2vkw7q";
};
phases = [ "installPhase" ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "josm-${version}";
version = "11223";
version = "11526";
src = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
sha256 = "0fv1hlp98f178jy7lxnvq2rk6rq1zj62q6dv0vn02fvm00ia53s8";
sha256 = "1164vfqbbys0032amk85219y0paihvi8jkx0kwc5lramwsk57pld";
};
phases = [ "installPhase" ];

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
name = "mlterm-${version}";
version = "3.7.2";
version = "3.8.0";
src = fetchurl {
url = "mirror://sourceforge/project/mlterm/01release/${name}/${name}.tar.gz";
sha256 = "1b24w8hfck1ylfkdz9z55vlmsb36q9iyfr0i9q9y98dfk0f0rrw8";
sha256 = "00dzx5rqsp73shgvn2jvgk85v3lirby06wxkqjcm1i1xwigidq3b";
};
nativeBuildInputs = [ pkgconfig autoconf ];
@ -20,17 +20,15 @@ stdenv.mkDerivation rec {
harfbuzz fribidi m17n_lib openssl libssh2
];
patches = [ ./x_shortcut.c.patch ]; #fixes numlock in 3.7.2. should be safe to remove by 3.7.3 since it's already in the trunk: https://bitbucket.org/arakiken/mlterm/commits/4820d42c7abfe1760a5ea35492c83be469c642b3
#bad configure.ac and Makefile.in everywhere
preConfigure = ''
sed -ie 's;-L/usr/local/lib -R/usr/local/lib;;g' \
xwindow/libtype/Makefile.in \
main/Makefile.in \
tool/mlfc/Makefile.in \
tool/mlimgloader/Makefile.in \
tool/mlconfig/Makefile.in \
xwindow/libotl/Makefile.in
uitoolkit/libtype/Makefile.in \
uitoolkit/libotl/Makefile.in
sed -ie 's;cd ..srcdir. && rm -f ...lang..gmo.*;;g' \
tool/mlconfig/po/Makefile.in.in
#utmp and mlterm-fb
@ -68,14 +66,9 @@ stdenv.mkDerivation rec {
];
postInstall = ''
mkdir -p "$out/share/icons/hicolor/scalable/apps"
cp contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
mkdir -p "$out/share/icons/hicolor/48x48/apps"
cp contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
mkdir -p "$out/share/applications"
cp $desktopItem/share/applications/* $out/share/applications
install -D contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
install -D contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
install -D -t $out/share/applications $desktopItem/share/applications/*
'';
desktopItem = makeDesktopItem rec {

View File

@ -1,26 +0,0 @@
--- mlterm-3.7.2/xwindow/x_shortcut.c
+++ mlterm-3.7.2/xwindow/x_shortcut.c
@@ -292,6 +292,11 @@
/* ingoring except these masks */
state &= (ModMask|ControlMask|ShiftMask|CommandMask|button_mask) ;
+ if( state & button_mask)
+ {
+ state &= ~Mod2Mask ; /* XXX NumLock */
+ }
+
if( shortcut->map[func].ksym == ksym &&
shortcut->map[func].state ==
( state |
@@ -318,6 +323,11 @@
/* ingoring except these masks */
state &= (ModMask|ControlMask|ShiftMask|CommandMask|button_mask) ;
+ if( state & button_mask)
+ {
+ state &= ~Mod2Mask ; /* XXX NumLock */
+ }
+
for( count = 0 ; count < shortcut->str_map_size ; count ++)
{
if( shortcut->str_map[count].ksym == ksym &&

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, itstool, intltool, pkgconfig
, libxml2, gnome2, atk, gtk2, glib
, mono, mono-addins, dbus-sharp-2_0, dbus-sharp-glib-2_0, gnome-sharp, gtk-sharp-2_0
, makeWrapper, lib}:
let
version = "1.15.7";
in
stdenv.mkDerivation {
name = "tomboy-${version}";
src = fetchurl {
url = "https://github.com/tomboy-notes/tomboy/releases/download/${version}/tomboy-${version}.tar.xz";
sha256 = "1i6sv6w2ms2x0nkgxq11agljiyg0yl4x2rzmcyvs2hxyf574hd1y";
};
buildInputs = [ itstool intltool pkgconfig
libxml2 gnome2.GConf atk gtk2
mono mono-addins dbus-sharp-2_0 dbus-sharp-glib-2_0 gnome-sharp gtk-sharp-2_0
makeWrapper ];
postInstall = ''
makeWrapper "${mono}/bin/mono" "$out/bin/tomboy" \
--add-flags "$out/lib/tomboy/Tomboy.exe" \
--prefix MONO_GAC_PREFIX : ${dbus-sharp-2_0} \
--prefix MONO_GAC_PREFIX : ${dbus-sharp-glib-2_0} \
--prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
--prefix MONO_GAC_PREFIX : ${gnome-sharp} \
--prefix MONO_GAC_PREFIX : ${mono-addins} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk-sharp-2_0 gtk-sharp-2_0.gtk gnome2.GConf ]}
'';
meta = with stdenv.lib; {
homepage = "https://wiki.gnome.org/Apps/Tomboy";
description = "A simple note-taking application with synchronization";
platforms = platforms.linux;
license = stdenv.lib.licenses.lgpl2;
maintainers = with maintainers; [ stesie ];
};
}

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "terraform-${version}";
version = "0.8.5";
version = "0.8.6";
rev = "v${version}";
goPackagePath = "github.com/hashicorp/terraform";
@ -11,7 +11,7 @@ buildGoPackage rec {
inherit rev;
owner = "hashicorp";
repo = "terraform";
sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09";
sha256 = "1yrsb940xx4iqjz4s6c4dbmxzmqzffrxn6if7ywixg4dgpi279mx";
};
postInstall = ''

View File

@ -23,11 +23,11 @@
let
# NOTE: When updating, please also update in current stable,
# as older versions stop working
version = "18.4.32";
version = "19.4.13";
sha256 =
{
"x86_64-linux" = "0rm91gic6qwlvkclhwpw9mhsb1l9qdxqi7kyvn5ij6a978c70k5r";
"i686-linux" = "0xzk4hxykacvrym8ls8q4zv2277adg6b5m7zmncmfwb6igx4ipap";
"x86_64-linux" = "06lgmjj204xpid35cqrp2msasg4s4w6lf1zpz1lnk3f9x6q10254";
"i686-linux" = "1kdj3c5s8s4smd52p2mqbzjsk68a9cd5f8x92xgsx9zzdzjqmagl";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
arch =

View File

@ -1,31 +1,28 @@
{ stdenv, fetchFromGitHub, scons, pkgconfig, gnome3, gmime, webkitgtk24x
, libsass, notmuch, boost, makeWrapper }:
, libsass, notmuch, boost, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "astroid-${version}";
version = "0.6";
version = "0.7";
src = fetchFromGitHub {
owner = "astroidmail";
repo = "astroid";
rev = "v${version}";
sha256 = "0zashjmqv8ips9q8ckyhgm9hfyf01wpgs6g21cwl05q5iklc5x7r";
sha256 = "0r3hqwwr68bjhqaa1r3l9brbmvdp11pf8vhsjlvm5zv520z5y1rf";
};
patches = [ ./propagate-environment.patch ];
buildInputs = [ scons pkgconfig gnome3.gtkmm gmime webkitgtk24x libsass
gnome3.libpeas notmuch boost gnome3.gsettings_desktop_schemas
makeWrapper ];
nativeBuildInputs = [ scons pkgconfig wrapGAppsHook ];
buildInputs = [ gnome3.gtkmm gmime webkitgtk24x libsass gnome3.libpeas
notmuch boost gnome3.gsettings_desktop_schemas
gnome3.adwaita-icon-theme ];
buildPhase = "scons --prefix=$out build";
installPhase = "scons --prefix=$out install";
preFixup = ''
wrapProgram "$out/bin/astroid" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
meta = {
homepage = "https://astroidmail.github.io/";
description = "GTK+ frontend to the notmuch mail system";

View File

@ -6,14 +6,14 @@ let
'';
in stdenv.mkDerivation rec {
version = "0.14.21";
version = "0.14.23";
name = "syncthing-${version}";
src = fetchFromGitHub {
owner = "syncthing";
repo = "syncthing";
rev = "v${version}";
sha256 = "0gxv4r7zg2rxjj0q8iiq3p5s75kwshcy6drjv65k8p2778bbvcjl";
sha256 = "1himf8yhfpjsv5m068y2f6f696d7ip0jq7jmg69kn7035zlxicis";
};
buildInputs = [ go ];

View File

@ -13,7 +13,7 @@
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
, gdb, commonsLogging, librdf_rasqal, makeWrapper, gsettings_desktop_schemas
, defaultIconTheme, glib, ncurses
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" ]
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" "hu" ]
, withHelp ? true
, kdeIntegration ? false
}:

View File

@ -13,7 +13,7 @@
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
, gdb, commonsLogging, librdf_rasqal, makeWrapper, gsettings_desktop_schemas
, defaultIconTheme, glib, ncurses
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" ]
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" "hu" ]
, withHelp ? true
, kdeIntegration ? false
}:

View File

@ -111,11 +111,11 @@ in
plugin = "exodus";
namespace = "plugin.video.exodus";
version = "2.0.12";
version = "3.0.5";
src = fetchurl {
url = "https://offshoregit.com/${plugin}/${namespace}/${namespace}-${version}.zip";
sha256 = "02cdyvyxay6jiw9xj8hqnkp5w6drqj67pkh243znrsc06f26qkql";
sha256 = "0di34sp6y3v72l6gfhj7cvs1vljs9vf0d0x2giix3jk433cj01j0";
};
meta = with stdenv.lib; {

View File

@ -0,0 +1,26 @@
{ cmake, fetchFromGitHub, libvncserver, qemu, qtbase, stdenv
}:
stdenv.mkDerivation rec {
name = "aqemu-${version}";
version = "0.9.2";
src = fetchFromGitHub {
owner = "tobimensch";
repo = "aqemu";
rev = "v${version}";
sha256 = "1h1mcw8x0jir5p39bs8ka0lcisiyi4jq61fsccgb9hsvl1i8fvk5";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libvncserver qtbase qemu ];
meta = with stdenv.lib; {
description = "A virtual machine manager GUI for qemu";
homepage = https://github.com/tobimensch/aqemu;
license = licenses.gpl2;
maintainers = with maintainers; [ hrdinka ];
platforms = with platforms; linux;
};
}

View File

@ -0,0 +1,26 @@
{ stdenv, fetchFromGitHub, buildGoPackage }:
buildGoPackage rec {
name = "${pname}-${version}";
pname = "amazon-ecs-agent";
version = "1.14.0";
goPackagePath = "github.com/aws/${pname}";
subPackages = [ "agent" ];
src = fetchFromGitHub {
rev = "v${version}";
owner = "aws";
repo = pname;
sha256 = "12c8l0x8pm883rlbdr1m07r0kjkzggkfz35cjqz8pzyr5ymjdrc3";
};
meta = with stdenv.lib; {
description = "The agent that runs on AWS EC2 container instances and starts containers on behalf of Amazon ECS";
homepage = "https://github.com/aws/amazon-ecs-agent";
license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ copumpkin ];
};
}

View File

@ -1,42 +1,48 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
libmspack, openssl, pam, xercesc, icu, libdnet, procps,
xlibsWrapper, libXinerama, libXi, libXrender, libXrandr, libXtst,
pkgconfig, glib, gtk, gtkmm, iproute, dbus, systemd }:
fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps,
libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
pkgconfig, glib, gtk, gtkmm, iproute, dbus, systemd, which,
withX ? true }:
let
majorVersion = "10.0";
minorVersion = "7";
version = "${majorVersion}.${minorVersion}";
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "open-vm-tools-${version}";
version = "10.1.0";
src = fetchFromGitHub {
owner = "vmware";
repo = "open-vm-tools";
rev = "stable-${version}";
sha256 = "0xxgppxjisg3jly21r7mjk06rc4n7ssyvapasxhbi2d1bw0xkvrj";
sha256 = "1qzk4mvw618ca4j9agsfpqch9jgwghvdc4rpkvlyz8kirvh9iniz";
};
sourceRoot = "${src.name}/open-vm-tools";
buildInputs =
[ autoreconfHook makeWrapper libmspack openssl pam xercesc icu libdnet procps
pkgconfig glib gtk gtkmm xlibsWrapper libXinerama libXi libXrender libXrandr libXtst ];
outputs = [ "out" "dev" ];
postPatch = ''
sed -i s,-Werror,,g configure.ac
sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
'';
nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
++ lib.optionals withX [ gtk gtkmm libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
patches = [ ./recognize_nixos.patch ];
postPatch = ''
# Build bugfix for 10.1.0, stolen from Arch PKGBUILD
mkdir -p common-agent/etc/config
sed -i 's|.*common-agent/etc/config/Makefile.*|\\|' configure.ac
configureFlags = "--without-kernel-modules --without-xmlsecurity";
sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
sed -i 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' services/vmtoolsd/Makefile.am
sed -i 's,$(UDEVRULESDIR),''${prefix}/$(UDEVRULESDIR),' udev/Makefile.am
'';
configureFlags = [ "--without-kernel-modules" "--without-xmlsecurity" ]
++ lib.optional (!withX) "--without-x";
enableParallelBuilding = true;
postInstall = ''
sed -i 's,which ,command -v ,' "$out/etc/vmware-tools/scripts/vmware/network"
wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
--prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd ]}"
wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
--prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
'';
meta = with stdenv.lib; {

View File

@ -1,30 +1,20 @@
diff -ruN open-vm-tools.orig/lib/include/guest_os.h open-vm-tools/lib/include/guest_os.h
--- open-vm-tools.orig/lib/include/guest_os.h 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/include/guest_os.h 2016-04-18 20:07:41.677251511 +0000
@@ -222,6 +222,7 @@
diff --git a/lib/include/guest_os.h b/open-vm-tools/lib/include/guest_os.h
index ef202e3..c7a105d 100644
--- a/lib/include/guest_os.h
+++ b/lib/include/guest_os.h
@@ -238,6 +238,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
#define STR_OS_MANDRAKE_FULL "Mandrake Linux"
#define STR_OS_MANDRIVA "mandriva"
#define STR_OS_MKLINUX "MkLinux"
+#define STR_OS_NIXOS "NixOS"
#define STR_OS_NOVELL "nld9"
#define STR_OS_NOVELL_FULL "Novell Linux Desktop 9"
#define STR_OS_ORACLE "oraclelinux"
diff -ruN open-vm-tools.orig/lib/include/vmblock.h open-vm-tools/lib/include/vmblock.h
--- open-vm-tools.orig/lib/include/vmblock.h 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/include/vmblock.h 2016-04-18 21:51:15.651235848 +0000
@@ -145,7 +145,7 @@
# define VMBLOCK_DEVICE_MODE VMBLOCK_FUSE_DEVICE_MODE
# define VMBLOCK_MOUNT_POINT VMBLOCK_FUSE_MOUNT_POINT
-#elif defined(linux)
+#elif defined(__linux__)
# define VMBLOCK_ADD_FILEBLOCK 98
# define VMBLOCK_DEL_FILEBLOCK 99
# ifdef VMX86_DEVEL
diff -ruN open-vm-tools.orig/lib/misc/hostinfoPosix.c open-vm-tools/lib/misc/hostinfoPosix.c
--- open-vm-tools.orig/lib/misc/hostinfoPosix.c 2016-02-12 00:50:33.000000000 +0000
+++ open-vm-tools/lib/misc/hostinfoPosix.c 2016-04-18 20:09:45.841668252 +0000
@@ -195,6 +195,7 @@
#define STR_OS_ORACLE6 "oraclelinux6"
diff --git a/lib/misc/hostinfoPosix.c b/open-vm-tools/lib/misc/hostinfoPosix.c
index 0f55070..2d8467c 100644
--- a/lib/misc/hostinfoPosix.c
+++ b/lib/misc/hostinfoPosix.c
@@ -195,6 +195,7 @@ static const DistroInfo distroArray[] = {
{"Mandrake", "/etc/mandrake-release"},
{"Mandriva", "/etc/mandriva-release"},
{"MkLinux", "/etc/mklinux-release"},
@ -32,12 +22,12 @@ diff -ruN open-vm-tools.orig/lib/misc/hostinfoPosix.c open-vm-tools/lib/misc/hos
{"Novell", "/etc/nld-release"},
{"OracleLinux", "/etc/oracle-release"},
{"Photon", "/etc/lsb-release"},
@@ -619,6 +620,8 @@
Str_Strcpy(distroShort, STR_OS_MANDRIVA, distroShortSize);
} else if (strstr(distroLower, "mklinux")) {
Str_Strcpy(distroShort, STR_OS_MKLINUX, distroShortSize);
@@ -554,6 +555,8 @@ HostinfoGetOSShortName(char *distro, // IN: full distro name
}
} else if (strstr(distroLower, "mandrake")) {
Str_Strcpy(distroShort, STR_OS_MANDRAKE, distroShortSize);
+ } else if (strstr(distroLower, "nixos")) {
+ Str_Strcpy(distroShort, STR_OS_NIXOS, distroShortSize);
} else if (strstr(distroLower, "pld")) {
Str_Strcpy(distroShort, STR_OS_PLD, distroShortSize);
} else if (strstr(distroLower, "slackware")) {
} else if (strstr(distroLower, "turbolinux")) {
Str_Strcpy(distroShort, STR_OS_TURBO, distroShortSize);
} else if (strstr(distroLower, "sun")) {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, runCommand, python, perl, cdrkit, pathsFromGraph
{ stdenv, fetchurl, runCommand, python, perl, xorriso, pathsFromGraph
, arch ? "x86_64"
}:
@ -10,10 +10,10 @@
let
cygPkgList = if arch == "x86_64" then fetchurl {
url = "${mirror}/x86_64/setup.ini";
sha256 = "0ljsxdkx9s916wp28kcvql3bjx80zzzidan6jicby7i9s3sm96n9";
sha256 = "0arrxvxbl85l82iy648snx5cl952w791p45p0dfg1xpiaf96cbkj";
} else fetchurl {
url = "${mirror}/x86/setup.ini";
sha256 = "1slyj4qha7x649ggwdski9spmyrbs04z2d46vgk8krllg0kppnjv";
sha256 = "1fayx34868vd5h2nah7chiw65sl3i9qzrwvs7lrlv2h8k412vb69";
};
cygwinCross = (import ../../../../.. {
@ -25,23 +25,24 @@ let
inherit arch;
config = "${arch}-w64-mingw32";
};
}).windows.cygwinSetup.crossDrv;
}).windows.cygwinSetup;
makeCygwinClosure = { packages, packageList }: let
expr = import (runCommand "cygwin.nix" { buildInputs = [ python ]; } ''
python ${./mkclosure.py} "${packages}" ${toString packageList} > "$out"
'');
gen = { url, md5 }: {
gen = { url, hash }: {
source = fetchurl {
url = "${mirror}/${url}";
inherit md5;
sha512 = hash;
};
target = url;
};
in map gen expr;
in import ../../../../../nixos/lib/make-iso9660-image.nix {
inherit stdenv perl cdrkit pathsFromGraph;
inherit stdenv perl xorriso pathsFromGraph;
syslinux = null;
contents = [
{ source = "${cygwinCross}/bin/setup.exe";
target = "setup.exe";

View File

@ -63,12 +63,12 @@ def main():
if install_line is None:
continue
url, size, md5 = install_line.split(' ', 2)
url, size, hash = install_line.split(' ', 2)
pack = [
' {',
' url = "{0}";'.format(url),
' md5 = "{0}";'.format(md5),
' hash = "{0}";'.format(hash),
' }',
];
sys.stdout.write('\n'.join(pack) + '\n')

View File

@ -1,10 +1,10 @@
# Autogenerated by maintainers/scripts/gnome.sh update
fetchurl: {
name = "epiphany-3.22.5";
name = "epiphany-3.22.6";
src = fetchurl {
url = mirror://gnome/sources/epiphany/3.22/epiphany-3.22.5.tar.xz;
sha256 = "e9c307b3f53a77c16ca698fb62fbb8d9b16773702d8163d83699bd623afa6745";
sha256 = "0ib7z8x65gcr6vc6709df1rngcfrp3xn5ywqlrnc2xrsynrhghz9";
};
}

View File

@ -7,14 +7,14 @@ let
inherit (stdenv.lib) optional;
p_name = "xfce4-panel";
ver_maj = "4.12";
ver_min = "0";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih";
sha256 = "1s52k80911pkp65zkxw9mrnczxsd81svr0djmmcfpjd9rj08pmck";
};
patches = [ ./xfce4-panel-datadir.patch ];

View File

@ -2,14 +2,14 @@
let
p_name = "xfconf";
ver_maj = "4.12";
ver_min = "0";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0mmi0g30aln3x98y5p507g17pipq0dj0bwypshan8cq5hkmfl44r";
sha256 = "0dns190bwb615wy9ma2654sw4vz1d0rcv061zmaalkv9wmj8bx1m";
};
outputs = [ "out" "dev" "devdoc" ];

View File

@ -1,14 +1,11 @@
{ stdenv, fetchFromRepoOrCz, perl, texinfo }:
assert (stdenv.isGlibc);
with stdenv.lib;
let
date = "20160525";
date = "20170108";
version = "0.9.27pre-${date}";
rev = "1ca685f887310b5cbdc415cdfc3a578dbc8d82d8";
sha256 = "149s847jkg2zdmk09h0cp0q69m8kxxci441zyw8b08fy9b87ayd8";
rev = "5420bb8a67f5f782ac49c90afb7da178a60c448a";
sha256 = "0gf1ys4vv5qfkh6462fkdv44mz5chhrchlvgcl0m44f8mm8cjwa3";
in
stdenv.mkDerivation rec {
@ -20,8 +17,6 @@ stdenv.mkDerivation rec {
inherit sha256;
};
outputs = [ "bin" "dev" "out" ];
nativeBuildInputs = [ perl texinfo ];
hardeningDisable = [ "fortify" ];
@ -32,17 +27,20 @@ stdenv.mkDerivation rec {
'';
preConfigure = ''
configureFlagsArray+=("--elfinterp=$(cat $NIX_CC/nix-support/dynamic-linker)")
configureFlagsArray+=("--crtprefix=${stdenv.glibc.out}/lib")
configureFlagsArray+=("--sysincludepaths=${stdenv.glibc.dev}/include:{B}/include")
configureFlagsArray+=("--libpaths=${stdenv.glibc.out}/lib")
echo ${version} > VERSION
configureFlagsArray+=("--cc=cc")
configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
configureFlagsArray+=("--crtprefix=${getLib stdenv.cc.libc}/lib")
configureFlagsArray+=("--sysincludepaths=${getDev stdenv.cc.libc}/include:{B}/include")
configureFlagsArray+=("--libpaths=${getLib stdenv.cc.libc}/lib")
'';
doCheck = true;
checkTarget = "test";
postFixup = ''
paxmark m $bin/bin/tcc
paxmark m $out/bin/tcc
'';
meta = {

View File

@ -20,7 +20,8 @@
# TODO enable shared libs for cross-compiling
, enableSharedExecutables ? !isCross && (((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version))
, enableSharedLibraries ? !isCross && (((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version))
, enableSplitObjs ? !stdenv.isDarwin # http://hackage.haskell.org/trac/ghc/ticket/4013
, enableSplitObjs ? null # OBSOLETE, use enableDeadCodeElimination
, enableDeadCodeElimination ? (!stdenv.isDarwin) # TODO: use -dead_strip for darwin
, enableStaticLibraries ? true
, extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
, homepage ? "http://hackage.haskell.org/package/${pname}"
@ -53,6 +54,8 @@
} @ args:
assert editedCabalFile != null -> revision != null;
# OBSOLETE, use enableDeadCodeElimination
assert enableSplitObjs == null;
let
@ -108,13 +111,15 @@ let
(optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
(optionalString enableParallelBuilding "--ghc-option=-j$NIX_BUILD_CORES")
(optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp")
(enableFeature enableSplitObjs "split-objs")
(enableFeature (enableDeadCodeElimination && (stdenv.lib.versionAtLeast "8.0.1" ghc.version)) "split-objs")
(enableFeature enableLibraryProfiling "library-profiling")
(enableFeature enableExecutableProfiling (if versionOlder ghc.version "8" then "executable-profiling" else "profiling"))
(enableFeature enableSharedLibraries "shared")
(optionalString (isGhcjs || versionOlder "7" ghc.version) (enableFeature enableStaticLibraries "library-vanilla"))
(optionalString (isGhcjs || versionOlder "7.4" ghc.version) (enableFeature enableSharedExecutables "executable-dynamic"))
(optionalString (isGhcjs || versionOlder "7" ghc.version) (enableFeature doCheck "tests"))
] ++ optionals (enableDeadCodeElimination && (stdenv.lib.versionOlder "8.0.1" ghc.version)) [
"--ghc-option=-split-sections"
] ++ optionals isGhcjs [
"--with-hsc2hs=${nativeGhc}/bin/hsc2hs"
"--ghcjs"

View File

@ -50,8 +50,8 @@ rec {
enableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = true; });
disableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = false; });
enableSplitObjs = drv: overrideCabal drv (drv: { enableSplitObjs = true; });
disableSplitObjs = drv: overrideCabal drv (drv: { enableSplitObjs = false; });
enableDeadCodeElimination = drv: overrideCabal drv (drv: { enableDeadCodeElimination = true; });
disableDeadCodeElimination = drv: overrideCabal drv (drv: { enableDeadCodeElimination = false; });
enableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = true; });
disableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = false; });

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5-cpp }:
{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
stdenv.mkDerivation rec {
version = "7.200.2";
version = "7.700.0";
name = "armadillo-${version}";
src = fetchurl {
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
sha256 = "1yvx75caks477jqwx5gspi6946jialddk00wdvg6dnh5wdi2xasm";
sha256 = "152x274hd3f59xgd27k9d3ikwb3w62v1v5hpw4lp1yzdyy8980pr";
};
buildInputs = [ cmake openblasCompat superlu hdf5-cpp ];
buildInputs = [ cmake openblasCompat superlu hdf5 ];
cmakeFlags = [ "-DDETECT_HDF5=ON" ];
@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
homepage = http://arma.sourceforge.net;
license = licenses.mpl20;
platforms = platforms.unix;
maintainers = [ maintainers.juliendehos ];
maintainers = with maintainers; [ juliendehos knedlsepp ];
};
}

View File

@ -27,4 +27,6 @@ rec {
};
gst-validate = callPackage ./validate { inherit gst-plugins-base; };
# note: gst-python is in ./python/default.nix - called under pythonPackages
}

View File

@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
"${meta.homepage}/src/gst-python/${name}.tar.xz"
"mirror://gentoo/distfiles/${name}.tar.xz"
];
sha256 = "1sljnqkxf2ix7yzghrapw5irl0rbp8aa8w2hggk7i6d9js10ls71";
sha256 = "bdfa2d06dfe0ce68f638b04fed6890db506416c1dcf1279e83458269d719a4e8";
};
patches = [ ./different-path-with-pygobject.patch ];

View File

@ -1,30 +1,51 @@
{ stdenv, fetchurl, libelf }:
stdenv.mkDerivation rec {
name = "libdwarf-20161124";
let
version = "20161124";
src = fetchurl {
url = "http://www.prevanders.net/${name}.tar.gz";
url = "http://www.prevanders.net/libdwarf-${version}.tar.gz";
sha512 = "38e480bce5ae8273fd585ec1d8ba94dc3e865a0ef3fcfcf38b5d92fa1ce41f8b"
+ "8c95a7cf8a6e69e7c6f638a3cc56ebbfb37b6317047309725fa17e7929096799";
};
configureFlags = [ "--enable-shared" "--disable-nonshared" ];
preConfigure = ''
cd libdwarf
'';
buildInputs = [ libelf ];
installPhase = ''
mkdir -p $out/lib $out/include
cp libdwarf.so.1 $out/lib
ln -s libdwarf.so.1 $out/lib/libdwarf.so
cp libdwarf.h dwarf.h $out/include
'';
meta = {
homepage = https://www.prevanders.net/dwarf.html;
platforms = stdenv.lib.platforms.linux;
};
in rec {
libdwarf = stdenv.mkDerivation rec {
name = "libdwarf-${version}";
configureFlags = [ "--enable-shared" "--disable-nonshared" ];
preConfigure = ''
cd libdwarf
'';
buildInputs = [ libelf ];
installPhase = ''
mkdir -p $out/lib $out/include
cp libdwarf.so.1 $out/lib
ln -s libdwarf.so.1 $out/lib/libdwarf.so
cp libdwarf.h dwarf.h $out/include
'';
inherit meta src;
};
dwarfdump = stdenv.mkDerivation rec {
name = "dwarfdump-${version}";
preConfigure = ''
cd dwarfdump
'';
buildInputs = [ libelf libdwarf ];
installPhase = ''
install -m755 -D dwarfdump $out/bin/dwarfdump
'';
inherit meta src;
};
}

View File

@ -0,0 +1,31 @@
{stdenv, fetchFromGitHub, autoreconfHook, python2, pkgconfig, mesa_noglu, libX11, libXext, glproto }:
# Git version is needed for EGL and GLES handling.
stdenv.mkDerivation rec {
name = "libglvnd-2016-12-22";
src = fetchFromGitHub {
owner = "NVIDIA";
repo = "libglvnd";
rev = "dc16f8c337703ad141f83583a4004fcf42e07766";
sha256 = "1dbwf1216np77xf1kx3ci3y7hfa1p4vgrrzg71gw36hqxf36vg5f";
};
nativeBuildInputs = [ autoreconfHook pkgconfig python2 ];
buildInputs = [ libX11 libXext glproto ];
NIX_CFLAGS_COMPILE = [
"-UDEFAULT_EGL_VENDOR_CONFIG_DIRS"
"-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"${mesa_noglu.driverLink}/share/glvnd/egl_vendor.d\""
];
outputs = [ "out" "dev" ];
meta = with stdenv.lib; {
description = "The GL Vendor-Neutral Dispatch library";
homepage = "https://github.com/NVIDIA/libglvnd";
license = licenses.bsd2;
platforms = platforms.linux;
};
}

View File

@ -57,13 +57,13 @@ assert isCygwin -> unitTestsSupport && webmIOSupport && libyuvSupport;
stdenv.mkDerivation rec {
name = "libvpx-${version}";
version = "1.5.0";
version = "1.6.1";
src = fetchFromGitHub {
owner = "webmproject";
repo = "libvpx";
rev = "v${version}";
sha256 = "19ill4c7dak5f8m4pdbas87zknw3a34sca8a4i952q0l0jnif0np";
sha256 = "10fs7xilf2bsj5bqw206lb5r5dgl84p5m6nibiirk28lmjx1i3l0";
};
patchPhase = ''patchShebangs .'';
@ -89,7 +89,6 @@ stdenv.mkDerivation rec {
(enableFeature gcovSupport "gcov")
# Required to build shared libraries
(enableFeature (!isCygwin) "pic")
(enableFeature (isi686 || isx86_64) "use-x86inc")
(enableFeature optimizationsSupport "optimizations")
(enableFeature runtimeCpuDetectSupport "runtime-cpu-detect")
(enableFeature thumbSupport "thumb")

View File

@ -9,10 +9,10 @@ let
mpiSupport = hdf5.mpiSupport;
mpi = hdf5.mpi;
in stdenv.mkDerivation rec {
name = "netcdf-4.3.3.1";
name = "netcdf-4.4.1.1";
src = fetchurl {
url = "http://www.unidata.ucar.edu/downloads/netcdf/ftp/${name}.tar.gz";
sha256 = "06ds8zm4qvjlqvv4qb637cqr0xgvbhnghrddisad5vj81s5kvpmx";
sha256 = "1blc7ik5yin7i0ls2kag0a9xjk12m0dzx6v1x88az3ras3scci2d";
};
buildInputs = [ hdf5 m4 curl mpi];

View File

@ -0,0 +1,22 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "olm-${version}";
version = "2.2.1";
meta = {
description = "Implements double cryptographic ratchet and Megolm ratchet";
license = stdenv.lib.licenses.asl20;
homepage = "https://matrix.org/git/olm/about";
};
src = fetchurl {
url = "https://matrix.org/git/olm/snapshot/${name}.tar.gz";
sha256 = "1spgsjmsw8afm2hg1mrq9c7cli3p17wl0ns7qbzn0h6ksh193709";
};
doCheck = true;
checkTarget = "test";
installFlags = "PREFIX=$(out)";
}

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz";
sha256 = "a87cb2df2e5e7cc0a05e266734e679ee1a2fadad6f06af82a76ed81a23b102c8";
sha256 = "1kj50smlkm347wfbfqvy09ylvad1zapqjc9yqvfykmiddyrij1y1";
};
installPhase = ''

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, ocaml, lablgtk, findlib, mesa, freeglut, camlp5 } :
{stdenv, fetchurl, ocaml, lablgtk, findlib, mesa, freeglut, camlp4 } :
let
pname = "lablgl";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
sha256 = "0qabydd219i4ak7hxgc67496qnnscpnydya2m4ijn3cpbgih7zyq";
};
buildInputs = [ ocaml findlib lablgtk freeglut camlp5 ];
buildInputs = [ocaml findlib lablgtk freeglut camlp4];
propagatedBuildInputs = [ mesa ];
patches = [ ./Makefile.config.patch ./META.patch ];

View File

@ -0,0 +1,19 @@
{ stdenv, buildPythonPackage, fetchurl }:
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "incremental";
version = "16.10.1";
src = fetchurl {
url = "mirror://pypi/i/${pname}/${name}.tar.gz";
sha256 = "0hh382gsj5lfl3fsabblk2djngl4n5yy90xakinasyn41rr6pb8l";
};
meta = with stdenv.lib; {
homepage = http://github.com/twisted/treq;
description = "Incremental is a small library that versions your Python projects";
license = licenses.mit;
maintainers = with maintainers; [ nand0p ];
};
}

View File

@ -0,0 +1,36 @@
{ stdenv, buildPythonPackage, fetchurl, isPyPy
, numpy, zlib, netcdf, hdf5, curl, libjpeg
}:
buildPythonPackage rec {
name = "netCDF4-${version}";
version = "1.2.7";
disabled = isPyPy;
src = fetchurl {
url = "mirror://pypi/n/netCDF4/${name}.tar.gz";
sha256 = "1fllizmnpw0zkzzm4j9pgamarlzfn3kmv9zrm0w65q1y31h9ni0c";
};
propagatedBuildInputs = [
numpy
zlib
netcdf
hdf5
curl
libjpeg
];
# Variables used to configure the build process
USE_NCCONFIG="0";
HDF5_DIR="${hdf5}";
NETCDF4_DIR="${netcdf}";
CURL_DIR="${curl.dev}";
JPEG_DIR="${libjpeg.dev}";
meta = with stdenv.lib; {
description = "Interface to netCDF library (versions 3 and 4)";
homepage = https://pypi.python.org/pypi/netCDF4;
license = licenses.free; # Mix of license (all MIT* like)
};
}

View File

@ -0,0 +1,51 @@
{ stdenv, fetchurl, buildPythonPackage, service-identity, requests2,
six, mock, twisted, incremental, coreutils, gnumake, pep8, sphinx,
openssl, pyopenssl }:
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "treq";
version = "16.12.0";
src = fetchurl {
url = "mirror://pypi/t/${pname}/${name}.tar.gz";
sha256 = "1aci3f3rmb5mdf4s6s4k4kghmnyy784cxgi3pz99m5jp274fs25h";
};
buildInputs = [
pep8
mock
];
propagatedBuildInputs = [
service-identity
requests2
twisted
incremental
sphinx
six
openssl
pyopenssl
];
checkPhase = ''
${pep8}/bin/pep8 --ignore=E902 treq
trial treq
'';
doCheck = false;
# Failure: twisted.web._newclient.RequestTransmissionFailed: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]>]
postBuild = ''
${coreutils}/bin/mkdir -pv treq
${coreutils}/bin/echo "${version}" | ${coreutils}/bin/tee treq/_version
cd docs && ${gnumake}/bin/make html && cd ..
'';
meta = with stdenv.lib; {
homepage = http://github.com/twisted/treq;
description = "A requests-like API built on top of twisted.web's Agent";
license = licenses.mit;
maintainers = with maintainers; [ nand0p ];
};
}

View File

@ -1,21 +1,13 @@
{ stdenv,
lib,
pythonPackages,
fetchurl,
coreutils,
openssh,
buildbot-worker,
plugins ? [],
enableLocalWorker ? false
}:
{ stdenv, lib, fetchurl, coreutils, openssh, buildbot-worker, makeWrapper,
pythonPackages, gnused, plugins ? [] }:
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "0.9.0.post1";
version = "0.9.3";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "18rnsp691cnmbymlch6czx3mrcmifmf6dk97h9nslgfkkyf25n5g";
sha256 = "1yw7knk5dcvwms14vqwlp89flhjf8567l17s9cq7vydh760nmg62";
};
buildInputs = with pythonPackages; [
@ -31,7 +23,11 @@ pythonPackages.buildPythonApplication (rec {
pylint
astroid
pyflakes
] ++ lib.optionals (enableLocalWorker) [openssh];
openssh
buildbot-worker
makeWrapper
treq
];
propagatedBuildInputs = with pythonPackages; [
@ -39,7 +35,6 @@ pythonPackages.buildPythonApplication (rec {
twisted
jinja2
zope_interface
future
sqlalchemy
sqlalchemy_migrate
future
@ -61,32 +56,21 @@ pythonPackages.buildPythonApplication (rec {
ramlfications
sphinx-jinja
] ++ plugins ++
lib.optionals (enableLocalWorker) [buildbot-worker];
preInstall = ''
# writes out a file that can't be read properly
sed -i.bak -e '69,84d' buildbot/test/unit/test_www_config.py
'';
] ++ plugins;
postPatch = ''
# re-hardcode path to tail
sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py
'';
postFixup = ''
mv -v $out/bin/buildbot $out/bin/.wrapped-buildbot
echo "#!/bin/sh" > $out/bin/buildbot
echo "export PYTHONPATH=$PYTHONPATH" >> $out/bin/buildbot
echo "exec $out/bin/.wrapped-buildbot \"\$@\"" >> $out/bin/buildbot
chmod -c 555 $out/bin/buildbot
makeWrapper $out/bin/.buildbot-wrapped $out/bin/buildbot --set PYTHONPATH "$PYTHONPATH"
'';
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Continuous integration system that automates the build/test cycle";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
platforms = platforms.linux;
license = licenses.gpl2;
};
})

View File

@ -4,11 +4,11 @@ let
buildbot-pkg = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-pkg";
version = "0.9.0.post1";
version = "0.9.3";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "0frmnc73dsyc9mjnrnpm4vdrwb7c63gc6maq6xvlp486v7sdhjbi";
sha256 = "02949cvmghyh313i1hmplwxp3nzq789kk85xjx2ir82cpr1d6h6j";
};
propagatedBuildInputs = with pythonPackages; [ setuptools ];
@ -26,14 +26,15 @@ in {
www = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot_www";
version = "0.9.0.post1";
version = "0.9.3";
# NOTE: wheel is used due to buildbot circular dependency
format = "wheel";
src = fetchurl {
url = "https://pypi.python.org/packages/02/d0/fc56ee27a09498638a47dcc5637ee5412ab7a67bfb4b3ff47e041f3d7b66/${name}-py2-none-any.whl";
sha256 = "14ghch67k6090736n89l401swz7r9hnk2zlmdb59niq8lg7dyg9q";
src = pythonPackages.fetchPypi {
inherit pname version format;
python = "py2";
sha256 = "0yggg6mcykcnv41srl2sp2zwx2r38vb6a8jgxh1a4825mspm2jf7";
};
meta = with stdenv.lib; {
@ -48,14 +49,14 @@ in {
console-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-console-view";
version = "0.9.0.post1";
version = "0.9.3";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "0dc7rb7mrpva5gj7l57i96a78d6yj28pkkj9hfim1955z9dgn58l";
sha256 = "1rkzakm05x72nvdivc5bc3gab3nyasdfvlwnwril90jj9q1b92dk";
};
propagatedBuildInputs = [ buildbot-pkg ];
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
@ -69,14 +70,14 @@ in {
waterfall-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-waterfall-view";
version = "0.9.0.post1";
version = "0.9.3";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "0x9vvw15zzgj4w3qcxh8r10rb36ni0qh1215y7wbawh5lggnjm0g";
sha256 = "033x2cs0znhk1j0lw067nmjw2m7yy1fdq5qch0sx50jnpjiq6g6g";
};
propagatedBuildInputs = [ buildbot-pkg ];
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;

View File

@ -1,18 +1,22 @@
{ stdenv, fetchurl, pythonPackages }:
{ stdenv, fetchurl, gnused, coreutils, pythonPackages }:
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot-worker";
version = "0.9.0.post1";
version = "0.9.3";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "1f8ij3y62r9z7qv92x21rg9h9whhakkwv59rgniq09j64ggjz8lx";
sha256 = "176kp04g4c7gj15f73wppraqrirbfclyx214gcz966019niikcsp";
};
buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
propagatedBuildInputs = with pythonPackages; [ twisted future ];
postPatch = ''
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot_worker/scripts/logwatcher.py
'';
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Worker Daemon";

View File

@ -0,0 +1,40 @@
diff --git a/cpp/ycm/CMakeLists.txt b/cpp/ycm/CMakeLists.txt
index 2074c58e..9ecd6e57 100644
--- a/cpp/ycm/CMakeLists.txt
+++ b/cpp/ycm/CMakeLists.txt
@@ -366,35 +366,6 @@ if( LIBCLANG_TARGET )
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${LIBCLANG_TARGET}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
)
-
- if( APPLE )
- # In OS X El Capitan, Apple introduced System Integrity Protection.
- # Amongst other things, this introduces features to the dynamic loader
- # (dyld) which cause it to "sanitise" (and complain about) embedded
- # LC_RPATH entries which contain @executable_path when then are loaded
- # into "restricted" binaries. For our purposes, "restricted" here means
- # "supplied by Apple" and includes the system versions of python. For
- # unknown reasons, the libclang.dylib that comes from llvm.org includes an
- # LC_RPATH entry '@executable_path/../lib' which causes the OS X dynamic
- # loader to print a cryptic warning to stderr of the form:
- #
- # dyld: warning, LC_RPATH @executable_path/../lib in
- # /path/to/ycmd/libclang.dylib being ignored in restricted program
- # because of @executable_path
- #
- # In order to prevent this harmless and annoying message appearing, we
- # simply strip the rpath entry from the dylib. There's no way any
- # @executable_path that python might have could be in any way useful to
- # libclang.dylib, so this seems perfectly safe.
- get_filename_component( LIBCLANG_TAIL ${LIBCLANG_TARGET} NAME )
- add_custom_command( TARGET ${PROJECT_NAME}
- POST_BUILD
- COMMAND install_name_tool
- "-delete_rpath"
- "@executable_path/../lib"
- "$<TARGET_FILE_DIR:${PROJECT_NAME}>/${LIBCLANG_TAIL}"
- )
- endif()
endif()
endif()

View File

@ -1,40 +1,84 @@
{ stdenv, fetchgit, cmake, llvmPackages, boost, python2Packages
{ stdenv, lib, fetchgit, cmake, llvmPackages, boost, python
, gocode ? null
, godef ? null
, rustracerd ? null
, Cocoa ? null
}:
let
inherit (python2Packages) python mkPythonDerivation waitress frozendict bottle;
in mkPythonDerivation rec {
name = "ycmd-2016-01-12";
namePrefix = "";
stdenv.mkDerivation rec {
name = "ycmd-${version}";
version = "2017-02-03";
src = fetchgit {
url = "git://github.com/Valloric/ycmd.git";
rev = "f982f6251c5ff85e3abe6e862aad8bcd19e85ece";
sha256 = "1g0hivv3wla7z5dgnkcn3ny38p089pjfj36nx6k29zmprgmjinyr";
rev = "ec7a154f8fe50c071ecd0ac6841de8a50ce92f5d";
sha256 = "0rzxgqqqmmrv9r4k2ji074iprhw6sb0jkvh84wvi45yfyphsh0xi";
};
buildInputs = [ cmake boost ];
propagatedBuildInputs = [ waitress frozendict bottle ];
buildInputs = [ cmake boost ] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
buildPhase = ''
export EXTRA_CMAKE_ARGS=-DPATH_TO_LLVM_ROOT=${llvmPackages.clang-unwrapped}
${python.interpreter} build.py --clang-completer --system-boost
'';
patches = [ ./2-ycm-cmake.patch ];
configurePhase = ":";
# remove the tests
#
# make __main__.py executable and add shebang
#
# copy over third-party libs
# note: if we switch to using our packaged libs, we'll need to symlink them
# into the same spots, as YouCompleteMe (the vim plugin) expects those paths
# to be available
#
# symlink completion backends where ycmd expects them
installPhase = ''
mkdir -p $out/lib/ycmd/third_party $out/bin
cp -r ycmd/ CORE_VERSION libclang.so.* ycm_client_support.so ycm_core.so $out/lib/ycmd/
rm -rf ycmd/tests
chmod +x ycmd/__main__.py
sed -i "1i #!${python.interpreter}\
" ycmd/__main__.py
mkdir -p $out/lib/ycmd
cp -r ycmd/ CORE_VERSION libclang.so.* ycm_core.so $out/lib/ycmd/
mkdir -p $out/bin
ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd
mkdir -p $out/lib/ycmd/third_party/{gocode,godef,racerd/target/release}
cp -r third_party/JediHTTP $out/lib/ycmd/third_party
for p in waitress frozendict bottle python-future argparse requests; do
cp -r third_party/$p $out/lib/ycmd/third_party
done
'' + lib.optionalString (gocode != null) ''
ln -s ${gocode}/bin/gocode $out/lib/ycmd/third_party/gocode
'' + lib.optionalString (godef != null) ''
ln -s ${godef}/bin/godef $out/lib/ycmd/third_party/godef
'' + lib.optionalString (rustracerd != null) ''
ln -s ${rustracerd}/bin/racerd $out/lib/ycmd/third_party/racerd/target/release
'';
# fixup the argv[0] and replace __file__ with the corresponding path so
# python won't be thrown off by argv[0]
postFixup = ''
substituteInPlace $out/lib/ycmd/ycmd/__main__.py \
--replace $out/lib/ycmd/ycmd/__main__.py \
$out/bin/ycmd \
--replace __file__ \
"'$out/lib/ycmd/ycmd/__main__.py'"
'';
meta = with stdenv.lib; {
description = "A code-completion and comprehension server";
homepage = https://github.com/Valloric/ycmd;
license = licenses.gpl3;
maintainers = with maintainers; [ rasendubi ];
maintainers = with maintainers; [ rasendubi cstrahan ];
platforms = platforms.all;
};
}

View File

@ -2,12 +2,14 @@
stdenv.mkDerivation rec {
name = "yodl-${version}";
version = "3.08.01";
version = "3.08.02";
buildInputs = [ perl icmake ];
nativeBuildInputs = [ icmake ];
buildInputs = [ perl ];
src = fetchFromGitHub {
sha256 = "0sks4phdy8qf6lmbjardrk0gl4v7crr4vjdgwpkkc8d5lzvcx7j5";
sha256 = "0z4pjrl4bq03fxc50c9h0bnc90vqn5c2dy830mjyzjrn1ms3i003";
rev = version;
repo = "yodl";
owner = "fbb-git";

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, cmake, unzip, zlib }:
stdenv.mkDerivation rec {
name = "zdbsp-${version}";
version = "1.19";
src = fetchurl {
url = "https://zdoom.org/files/utils/zdbsp/zdbsp-${version}-src.zip";
sha256 = "0j82q7g7hgvnahk6gdyhmn9880mqii3b4agqc98f5xaj3kxmd2dr";
};
nativeBuildInputs = [cmake unzip];
buildInputs = [zlib];
sourceRoot = ".";
enableParallelBuilding = true;
installPhase = ''
install -Dm755 zdbsp $out/bin/zdbsp
'';
meta = with stdenv.lib; {
description = "ZDoom's internal node builder for DOOM maps";
homepage = "https://zdoom.org/wiki/ZDBSP";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ertes];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,33 @@
{ expat, fetchFromGitHub, ffmpeg, fontconfig, freetype, libarchive, libjpeg
, mesa, openal, pkgconfig, sfml, stdenv, zlib
}:
stdenv.mkDerivation rec {
name = "attract-mode-${version}";
version = "2.2.0";
src = fetchFromGitHub {
owner = "mickelson";
repo = "attract";
rev = "v${version}";
sha256 = "1arkfj0q3n1qbq5jwmal0kixxph8lnmv3g9bli36inab4r8zzmp8";
};
nativeBuildInputs = [ pkgconfig ];
patchPhase = ''
sed -i "s|prefix=/usr/local|prefix=$out|" Makefile
'';
buildInputs = [
expat ffmpeg fontconfig freetype libarchive libjpeg mesa openal sfml zlib
];
meta = with stdenv.lib; {
description = "A frontend for arcade cabinets and media PCs";
homepage = http://attractmode.org;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hrdinka ];
platforms = with platforms; linux;
};
}

View File

@ -6,34 +6,11 @@ let fetchurl = args@{url, sha256, ...}:
in rec {
stable = fetchurl rec {
version = "1.8.6";
url = "https://dl.winehq.org/wine/source/1.8/wine-${version}.tar.bz2";
sha256 = "1lq6770pkv3342ss2ih18s2hw6i1srbcfg3mljwalqrvxfb7hydi";
version = "2.0";
url = "https://dl.winehq.org/wine/source/2.0/wine-${version}.tar.bz2";
sha256 = "1ik6q0h3ph3jizmp7bxhf6kcm1pzrdrn2m0yf2x86slv2aigamlp";
## see http://wiki.winehq.org/Gecko
gecko32 = fetchurl rec {
version = "2.40";
url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86.msi";
sha256 = "00nkaxhb9dwvf53ij0q75fb9fh7pf43hmwx6rripcax56msd2a8s";
};
gecko64 = fetchurl rec {
version = "2.40";
url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86_64.msi";
sha256 = "0c4jikfzb4g7fyzp0jcz9fk2rpdl1v8nkif4dxcj28nrwy48kqn3";
};
## see http://wiki.winehq.org/Mono
mono = fetchurl rec {
version = "4.6.3";
url = "http://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
sha256 = "1f98xwgv665zb9cwc5zphcdbffyh3sm26h62hzca6zlcwy5fi0zq";
};
};
unstable = fetchurl rec {
version = "2.0-rc3";
url = "https://dl.winehq.org/wine/source/2.0/wine-${version}.tar.bz2";
sha256 = "0sq8li7p30h2a5bbpv27vxpzihr8h890qm78nq21fnh0zflg8x8y";
inherit (stable) mono;
gecko32 = fetchurl rec {
version = "2.47";
url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86.msi";
@ -44,11 +21,25 @@ in rec {
url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86_64.msi";
sha256 = "0zaagqsji6zaag92fqwlasjs8v9hwjci5c2agn9m7a8fwljylrf5";
};
## see http://wiki.winehq.org/Mono
mono = fetchurl rec {
version = "4.6.4";
url = "http://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
sha256 = "0lj1rhp9s8aaxd6764mfvnyswwalafaanz80vxg3badrfy0xbdwi";
};
};
unstable = fetchurl rec {
version = "2.0";
url = "https://dl.winehq.org/wine/source/2.0/wine-${version}.tar.bz2";
sha256 = "1ik6q0h3ph3jizmp7bxhf6kcm1pzrdrn2m0yf2x86slv2aigamlp";
inherit (stable) mono gecko32 gecko64;
};
staging = fetchFromGitHub rec {
inherit (unstable) version;
sha256 = "1nk8s54nrlws0d8wpyj1vv2z0l2jansn990xw73v15wzwc3j9p6l";
sha256 = "02jrdm49zlc0f357m0z65pilmg4lxh16va32ll3p4y8vr13nwawk";
owner = "wine-compholio";
repo = "wine-staging";
rev = "v${version}";

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
name = "android-udev-rules-${version}";
version = "20170202";
version = "20170208";
src = fetchFromGitHub {
owner = "M0Rf30";
repo = "android-udev-rules";
rev = version;
sha256 = "0apl22i27kgwld670wrlf5lv6iknx57grjbw0x0h4q0il2k4nmn7";
sha256 = "0bqwb2xwwihyj8sw084qpyi8d4xx9sn7jlza6hfc57qnj4dha76w";
};
installPhase = ''

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
import ./generic.nix (args // rec {
version = "4.4.47";
version = "4.4.48";
extraMeta.branch = "4.4";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "1rsdz7bqqc3vzh24ii74rwphgi317f9nadxdr2dkxfipdw0w02nf";
sha256 = "09c0rfm9ycyjyz0nsz34fa1cvfzx8pyzcmxhyz0dqiw6x4fqal3w";
};
kernelPatches = args.kernelPatches;

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
import ./generic.nix (args // rec {
version = "4.9.8";
version = "4.9.9";
extraMeta.branch = "4.9";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "0i8f1gn7jsl0gcpa54yb3yg24j2a542qvkcc3g9baja8vprbf2qm";
sha256 = "1vnr6688gg8njmivdzlx21v1f3w02ahca194bjvm15apajcccd96";
};
kernelPatches = args.kernelPatches;

View File

@ -1,68 +0,0 @@
{ stdenv, fetchurl, kernel ? null, xorg, zlib, perl
, gtk, atk, pango, glib, gdk_pixbuf, cairo, nukeReferences
, # Whether to build the libraries only (i.e. not the kernel module or
# nvidia-settings). Used to support 32-bit binaries on 64-bit
# Linux.
libsOnly ? false
}:
with stdenv.lib;
assert (!libsOnly) -> kernel != null;
let
versionNumber = "349.12";
# Policy: use the highest stable version as the default (on our master).
inherit (stdenv.lib) makeLibraryPath;
in
stdenv.mkDerivation {
name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
builder = ./builder.sh;
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
sha256 = "0x9zfw66nxv98zpkdkymlyqzspksk850bhfmza7g7pba4yba085h";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
sha256 = "19mfkigzffxsik3h4bsjsl481q410h804fz3rdc7chs86q4bg9h3";
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
inherit versionNumber libsOnly;
kernel = if libsOnly then null else kernel.dev;
hardeningDisable = [ "pic" "format" ];
dontStrip = true;
glPath = makeLibraryPath [xorg.libXext xorg.libX11 xorg.libXrandr];
cudaPath = makeLibraryPath [zlib stdenv.cc.cc];
openclPath = makeLibraryPath [zlib];
allLibPath = makeLibraryPath [xorg.libXext xorg.libX11 xorg.libXrandr zlib stdenv.cc.cc];
gtkPath = optionalString (!libsOnly) (makeLibraryPath
[ gtk atk pango glib gdk_pixbuf cairo ] );
programPath = makeLibraryPath [ xorg.libXv ];
buildInputs = [ perl nukeReferences ];
disallowedReferences = if libsOnly then [] else [ kernel.dev ];
meta = with stdenv.lib.meta; {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for NVIDIA graphics cards";
license = licenses.unfreeRedistributable;
platforms = platforms.linux;
maintainers = [ maintainers.vcunat ];
};
}

View File

@ -1,104 +0,0 @@
source $stdenv/setup
dontPatchELF=1 # must keep libXv, $out in RPATH
unpackFile() {
sh $src -x
}
buildPhase() {
if test -z "$libsOnly"; then
# Create the module.
echo "Building linux driver against kernel: $kernel";
cd kernel
kernelVersion=$(cd $kernel/lib/modules && ls)
sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
unset src # used by the nv makefile
make SYSSRC=$sysSrc SYSOUT=$sysOut module
cd ..
fi
}
installPhase() {
# Install libGL and friends.
mkdir -p $out/lib/vendors
for f in \
libcuda libGL libnvcuvid libnvidia-cfg libnvidia-compiler \
libnvidia-glcore libnvidia-ml libnvidia-opencl \
libnvidia-tls libOpenCL libnvidia-tls libvdpau_nvidia
do
cp -prd $f.* $out/lib/
ln -snf $f.so.$versionNumber $out/lib/$f.so
ln -snf $f.so.$versionNumber $out/lib/$f.so.1
done
cp -p nvidia.icd $out/lib/vendors/
cp -prd tls $out/lib/
cp -prd libOpenCL.so.1.0.0 $out/lib/
ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so
ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so.1
patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*
patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.*
patchelf --set-rpath $cudaPath $out/lib/libcuda.so.*.*
if test -z "$libsOnly"; then
# Install the kernel module.
mkdir -p $out/lib/modules/$kernelVersion/misc
cp kernel/nvidia.ko $out/lib/modules/$kernelVersion/misc
# Install the X driver.
mkdir -p $out/lib/xorg/modules
cp -p libnvidia-wfb.* $out/lib/xorg/modules/
mkdir -p $out/lib/xorg/modules/drivers
cp -p nvidia_drv.so $out/lib/xorg/modules/drivers
mkdir -p $out/lib/xorg/modules/extensions
cp -p libglx.so.* $out/lib/xorg/modules/extensions
ln -snf libnvidia-wfb.so.$versionNumber $out/lib/xorg/modules/libnvidia-wfb.so.1
ln -snf libglx.so.$versionNumber $out/lib/xorg/modules/extensions/libglx.so
patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.*
# Install the programs.
mkdir -p $out/bin
for i in nvidia-settings nvidia-xconfig; do
cp $i $out/bin/$i
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath $out/lib:$programPath:$glPath $out/bin/$i
done
# Header files etc.
mkdir -p $out/include/nvidia
cp -p *.h $out/include/nvidia
mkdir -p $out/share/man/man1
cp -p *.1.gz $out/share/man/man1
mkdir -p $out/share/applications
cp -p *.desktop $out/share/applications
mkdir -p $out/share/pixmaps
cp -p nvidia-settings.png $out/share/pixmaps
# Patch the `nvidia-settings.desktop' file.
substituteInPlace $out/share/applications/nvidia-settings.desktop \
--replace '__UTILS_PATH__' $out/bin \
--replace '__PIXMAP_PATH__' $out/share/pixmaps
# Move VDPAU libraries to their place
mkdir "$out"/lib/vdpau
mv "$out"/lib/libvdpau* "$out"/lib/vdpau
fi
}
genericBuild

View File

@ -1,120 +0,0 @@
source $stdenv/setup
dontPatchELF=1 # must keep libXv, $out in RPATH
unpackFile() {
skip=$(sed 's/^skip=//; t; d' $src)
tail -n +$skip $src | xz -d | tar xvf -
sourceRoot=.
}
buildPhase() {
if test -z "$libsOnly"; then
# Create the module.
echo "Building linux driver against kernel: $kernel";
cd kernel
kernelVersion=$(cd $kernel/lib/modules && ls)
sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
unset src # used by the nv makefile
make SYSSRC=$sysSrc SYSOUT=$sysOut module
cd uvm
make SYSSRC=$sysSrc SYSOUT=$sysOut module
cd ..
cd ..
fi
}
installPhase() {
if test -z "$libsOnly"; then
# Install the kernel module.
mkdir -p $out/lib/modules/$kernelVersion/misc
cp kernel/nvidia.ko $out/lib/modules/$kernelVersion/misc
cp kernel/uvm/nvidia-uvm.ko $out/lib/modules/$kernelVersion/misc
# Install the X driver.
mkdir -p $out/lib/xorg/modules
cp -p libnvidia-wfb.* $out/lib/xorg/modules/
mkdir -p $out/lib/xorg/modules/drivers
cp -p nvidia_drv.so $out/lib/xorg/modules/drivers
mkdir -p $out/lib/xorg/modules/extensions
cp -p libglx.so.* $out/lib/xorg/modules/extensions
#patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.*
# Install the programs.
mkdir -p $out/bin
for i in nvidia-settings nvidia-smi; do
cp $i $out/bin/$i
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath $out/lib:$programPath:$glPath $out/bin/$i
done
# Header files etc.
mkdir -p $out/include/nvidia
cp -p *.h $out/include/nvidia
mkdir -p $out/share/man/man1
cp -p *.1.gz $out/share/man/man1
rm $out/share/man/man1/nvidia-xconfig.1.gz
mkdir -p $out/share/applications
cp -p *.desktop $out/share/applications
mkdir -p $out/share/pixmaps
cp -p nvidia-settings.png $out/share/pixmaps
# Patch the `nvidia-settings.desktop' file.
substituteInPlace $out/share/applications/nvidia-settings.desktop \
--replace '__UTILS_PATH__' $out/bin \
--replace '__PIXMAP_PATH__' $out/share/pixmaps
# Test a bit.
$out/bin/nvidia-settings --version
fi
# Install libGL and friends.
mkdir -p "$out/lib/vendors"
cp -p nvidia.icd $out/lib/vendors/
cp -prd *.so.* tls "$out/lib/"
rm "$out"/lib/lib{glx,nvidia-wfb}.so.* # handled separately
for libname in `find "$out/lib/" -name '*.so.*'`
do
# I'm lazy to differentiate needed libs per-library, as the closure is the same.
# Unfortunately --shrink-rpath would strip too much.
patchelf --set-rpath "$out/lib:$allLibPath" "$libname"
libname_short=`echo -n "$libname" | sed 's/so\..*/so/'`
# nvidia's EGL stack seems to expect libGLESv2.so.2 to be available
if [ $(basename "$libname_short") == "libGLESv2.so" ]; then
ln -srnf "$libname" "$libname_short.2"
fi
ln -srnf "$libname" "$libname_short"
ln -srnf "$libname" "$libname_short.1"
done
#patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*
#patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.*
#patchelf --set-rpath $cudaPath $out/lib/libcuda.so.*.*
#patchelf --set-rpath $openclPath $out/lib/libnvidia-opencl.so.*.*
# We distribute these separately in `libvdpau`
rm "$out"/lib/libvdpau{.*,_trace.*}
# Move VDPAU libraries to their place
mkdir "$out"/lib/vdpau
mv "$out"/lib/libvdpau* "$out"/lib/vdpau
}
genericBuild

View File

@ -1,17 +1,19 @@
source $stdenv/setup
dontPatchELF=1 # must keep libXv, $out in RPATH
unpackFile() {
unpackManually() {
skip=$(sed 's/^skip=//; t; d' $src)
tail -n +$skip $src | xz -d | tar xvf -
sourceRoot=.
}
unpackFile() {
sh $src -x || unpackManually
}
buildPhase() {
if test -z "$libsOnly"; then
if [ -n "$bin" ]; then
# Create the module.
echo "Building linux driver against kernel: $kernel";
cd kernel
@ -25,45 +27,55 @@ buildPhase() {
fi
}
installPhase() {
# Install libGL and friends.
mkdir -p "$out/etc/OpenCL/vendors"
cp -p nvidia.icd $out/etc/OpenCL/vendors/
mkdir -p "$out/share/vulkan/icd.d"
cp -p nvidia_icd.json "$out/share/vulkan/icd.d/"
mkdir -p "$out/lib"
cp -prd *.so.* tls "$out/lib/"
rm "$out"/lib/lib{glx,nvidia-wfb}.so.* # handled separately
rm $out/lib/lib{glx,nvidia-wfb}.so.* # handled separately
rm -f $out/lib/libnvidia-gtk* # built from source
if [ "$useGLVND" = "1" ]; then
# Pre-built libglvnd
rm $out/lib/lib{GL,GLX,EGL,GLESv1_CM,GLESv2,OpenGL,GLdispatch}.so.*
fi
# Use ocl-icd instead
rm $out/lib/libOpenCL.so*
# Move VDPAU libraries to their place
mkdir $out/lib/vdpau
mv $out/lib/libvdpau* $out/lib/vdpau
rm $out/lib/libGL.so.1.* # GLVND
rm $out/lib/libOpenCL.so* # ocl-icd is used instead
# Install ICDs.
install -Dm644 nvidia.icd $out/etc/OpenCL/vendors/nvidia.icd
if [ -e nvidia_icd.json ]; then
install -Dm644 nvidia_icd.json $out/share/vulkan/icd.d/nvidia.json
fi
if [ "$useGLVND" = "1" ]; then
install -Dm644 10_nvidia.json $out/share/glvnd/egl_vendor.d/nvidia.json
fi
if test -z "$libsOnly"; then
if [ -n "$bin" ]; then
# Install the X drivers.
mkdir -p $out/lib/xorg/modules
cp -p libnvidia-wfb.* $out/lib/xorg/modules/
mkdir -p $out/lib/xorg/modules/drivers
cp -p nvidia_drv.so $out/lib/xorg/modules/drivers
mkdir -p $out/lib/xorg/modules/extensions
cp -p libglx.so.* $out/lib/xorg/modules/extensions
mkdir -p $bin/lib/xorg/modules
cp -p libnvidia-wfb.* $bin/lib/xorg/modules/
mkdir -p $bin/lib/xorg/modules/drivers
cp -p nvidia_drv.so $bin/lib/xorg/modules/drivers
mkdir -p $bin/lib/xorg/modules/extensions
cp -p libglx.so.* $bin/lib/xorg/modules/extensions
# Install the kernel module.
mkdir -p $out/lib/modules/$kernelVersion/misc
mkdir -p $bin/lib/modules/$kernelVersion/misc
for i in $(find ./kernel -name '*.ko'); do
nuke-refs $i
cp $i $out/lib/modules/$kernelVersion/misc/
cp $i $bin/lib/modules/$kernelVersion/misc/
done
fi
# All libs except GUI-only are in $out now, so fixup them.
for libname in `find "$out/lib/" -name '*.so.*'`
# All libs except GUI-only are installed now, so fixup them.
for libname in `find "$out/lib/" -name '*.so.*'` `find "$bin/lib/" -name '*.so.*'`
do
# I'm lazy to differentiate needed libs per-library, as the closure is the same.
# Unfortunately --shrink-rpath would strip too much.
patchelf --set-rpath "$out/lib:$allLibPath" "$libname"
patchelf --set-rpath "$out/lib:$libPath" "$libname"
libname_short=`echo -n "$libname" | sed 's/so\..*/so/'`
@ -82,55 +94,23 @@ installPhase() {
fi
done
#patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*
#patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.*
#patchelf --set-rpath $cudaPath $out/lib/libcuda.so.*.*
#patchelf --set-rpath $openclPath $out/lib/libnvidia-opencl.so.*.*
if test -z "$libsOnly"; then
# Install headers and /share files etc.
mkdir -p $out/include/nvidia
cp -p *.h $out/include/nvidia
mkdir -p $out/share/man/man1
cp -p *.1.gz $out/share/man/man1
rm $out/share/man/man1/nvidia-xconfig.1.gz
mkdir -p $out/share/applications
cp -p *.desktop $out/share/applications
mkdir -p $out/share/pixmaps
cp -p nvidia-settings.png $out/share/pixmaps
# Patch the `nvidia-settings.desktop' file.
substituteInPlace $out/share/applications/nvidia-settings.desktop \
--replace '__UTILS_PATH__' $out/bin \
--replace '__PIXMAP_PATH__' $out/share/pixmaps
if [ -n "$bin" ]; then
# Install /share files.
mkdir -p $bin/share/man/man1
cp -p *.1.gz $bin/share/man/man1
rm -f $bin/share/man/man1/{nvidia-xconfig,nvidia-settings,nvidia-persistenced}.1.gz
# Install the programs.
mkdir -p $out/bin
for i in nvidia-settings nvidia-smi; do
cp $i $out/bin/$i
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath $out/lib:$programPath:$glPath $out/bin/$i
for i in nvidia-cuda-mps-control nvidia-cuda-mps-server nvidia-smi nvidia-debugdump; do
if [ -e "$i" ]; then
install -Dm755 $i $bin/bin/$i
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath $out/lib:$libPath $bin/bin/$i
fi
done
patchelf --set-rpath $glPath:$gtkPath $out/lib/libnvidia-gtk2.so.*.*
# Test a bit.
$out/bin/nvidia-settings --version
else
rm $out/lib/libnvidia-gtk2.*
# FIXME: needs PATH and other fixes
# install -Dm755 nvidia-bug-report.sh $bin/bin/nvidia-bug-report.sh
fi
# For simplicity and dependency reduction, don't support the gtk3 interface.
rm $out/lib/libnvidia-gtk3.*
# Move VDPAU libraries to their place
mkdir "$out"/lib/vdpau
mv "$out"/lib/libvdpau* "$out"/lib/vdpau
}

View File

@ -1,74 +1,43 @@
{ stdenv, fetchurl, kernel ? null, xorg, zlib, perl
, gtk2, atk, pango, glib, gdk_pixbuf, cairo, nukeReferences
, # Whether to build the libraries only (i.e. not the kernel module or
# nvidia-settings). Used to support 32-bit binaries on 64-bit
# Linux.
libsOnly ? false
}:
with stdenv.lib;
assert (!libsOnly) -> kernel != null;
{ callPackage }:
let
versionNumber = "375.26";
# Policy: use the highest stable version as the default (on our master).
inherit (stdenv.lib) makeLibraryPath;
nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
generic = args: callPackage (import ./generic.nix args) { };
in
stdenv.mkDerivation {
name = "nvidia-x11-${versionNumber}${nameSuffix}";
builder = ./builder.sh;
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
sha256 = "0yv19rkz2wzzj0fygfjb1mh21iy769kff3yg2kzk8bsiwnmcyybw";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}.run";
sha256 = "1kqy9ayja3g5znj2hzx8pklz8qi0b0l9da7c3ldg3hlxf31v4hjg";
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
inherit versionNumber libsOnly;
inherit (stdenv) system;
kernel = if libsOnly then null else kernel.dev;
hardeningDisable = [ "pic" "format" ];
dontStrip = true;
glPath = makeLibraryPath [xorg.libXext xorg.libX11 xorg.libXrandr];
cudaPath = makeLibraryPath [zlib stdenv.cc.cc];
openclPath = makeLibraryPath [zlib];
allLibPath = makeLibraryPath [xorg.libXext xorg.libX11 xorg.libXrandr zlib stdenv.cc.cc];
gtkPath = optionalString (!libsOnly) (makeLibraryPath
[ gtk2 atk pango glib gdk_pixbuf cairo ] );
programPath = makeLibraryPath [ xorg.libXv ];
buildInputs = [ perl nukeReferences ];
disallowedReferences = if libsOnly then [] else [ kernel.dev ];
meta = with stdenv.lib.meta; {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for NVIDIA graphics cards";
license = licenses.unfreeRedistributable;
platforms = platforms.linux;
maintainers = [ maintainers.vcunat ];
priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so"
{
# Policy: use the highest stable version as the default (on our master).
stable = generic {
version = "375.26";
sha256_32bit = "0yv19rkz2wzzj0fygfjb1mh21iy769kff3yg2kzk8bsiwnmcyybw";
sha256_64bit = "1kqy9ayja3g5znj2hzx8pklz8qi0b0l9da7c3ldg3hlxf31v4hjg";
settingsSha256 = "1s8zf5cfhx8m05fvws0gh1q0wy5zyyg2j510zlwp4hk35y7dic5y";
persistencedSha256 = "15r6rbzyk4yaqkpkqs8j00zc7jbhgp8naskv93dwjyw0lnj0wgky";
};
beta = generic {
version = "378.09";
sha256_32bit = "0a1vwvsqi89pn29c9aii53xq8292dxf68sr8lxzx4bpqjqmsbapy";
sha256_64bit = "018qqg9zlpwd2cad99vbn18rnrrkrqybs7q65h8dmxirkx4pcvh8";
settingsSha256 = "1fjkpqmzdzk46p1chzxqvbj3cpqcwwx4qmv33yjq7z2a5zab9z8v";
persistencedSha256 = "1svaa5a0zz0r8qy6pg9lnhy5zmffvw0h120h46qqd01pkb4yv5lc";
};
legacy_340 = generic {
version = "340.101";
sha256_32bit = "0qmhkvxj6h63sayys9gldpafw5skpv8nsm2gxxb3pxcv7nfdlpjz";
sha256_64bit = "02k8j0xzxp2y4vay0kf982q382ny1i4g1kai93f2h5sak6sq3kyj";
settingsSha256 = "1mavbhff24n0jn154af152fp04njd505scdlxdm850h1ycb2i3g9";
persistencedSha256 = "1396bmmg9b1z805dzljgi2f219ji84wfnnifdbk32dpd5mrywjk0";
useGLVND = false;
};
legacy_304 = generic {
version = "304.134";
sha256_32bit = "178wx0a2pmdnaypa9pq6jh0ii0i8ykz1sh1liad9zfriy4d8kxw4";
sha256_64bit = "0pydw7nr4d2dply38kwvjbghsbilbp2q0mas4nfq5ad050d2c550";
settingsSha256 = "0q92xw4fr9p5nbhj1plynm50d32881861daxfwrisywszqijhmlf";
persistencedSha256 = null;
useGLVND = false;
};
legacy_173 = callPackage ./legacy173.nix { };
}

View File

@ -0,0 +1,81 @@
{ version
, sha256_32bit
, sha256_64bit
, settingsSha256
, persistencedSha256
, useGLVND ? true
, preferGtk2 ? false
}:
{ stdenv, callPackage, callPackage_i686, buildEnv, fetchurl
, kernel ? null, xorg, zlib, perl, nukeReferences
, # Whether to build the libraries only (i.e. not the kernel module or
# nvidia-settings). Used to support 32-bit binaries on 64-bit
# Linux.
libsOnly ? false
}:
with stdenv.lib;
assert (!libsOnly) -> kernel != null;
let
nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
pkgSuffix = optionalString (versionOlder version "304") "-pkg0";
self = stdenv.mkDerivation {
name = "nvidia-x11-${version}${nameSuffix}";
builder = ./builder.sh;
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86/${version}/NVIDIA-Linux-x86-${version}${pkgSuffix}.run";
sha256 = sha256_32bit;
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run";
sha256 = sha256_64bit;
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
inherit version useGLVND;
inherit (stdenv) system;
outputs = [ "out" ] ++ optional (!libsOnly) "bin";
outputDev = if libsOnly then null else "bin";
kernel = if libsOnly then null else kernel.dev;
hardeningDisable = [ "pic" "format" ];
dontStrip = true;
dontPatchELF = true;
libPath = makeLibraryPath [ xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib stdenv.cc.cc ];
nativeBuildInputs = [ perl nukeReferences ];
disallowedReferences = optional (!libsOnly) [ kernel.dev ];
passthru = {
settings = callPackage (import ./settings.nix self settingsSha256) {
withGtk2 = preferGtk2;
withGtk3 = !preferGtk2;
};
persistenced = if persistencedSha256 == null then null else callPackage (import ./persistenced.nix self persistencedSha256) { };
};
meta = with stdenv.lib; {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for NVIDIA graphics cards";
license = licenses.unfreeRedistributable;
platforms = platforms.linux;
maintainers = [ maintainers.vcunat ];
priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so"
};
};
in self

View File

@ -38,6 +38,12 @@ stdenv.mkDerivation {
programPath = stdenv.lib.makeLibraryPath [ gtk2 atk pango glib gdk_pixbuf xorg.libXv ];
passthru = {
settings = null;
persistenced = null;
useGLVND = false;
};
meta = {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for Legacy NVIDIA graphics cards";

View File

@ -1,53 +0,0 @@
{ stdenv, fetchurl, kernel ? null, xorg, zlib, perl
, gtk2, atk, pango, glib, gdk_pixbuf
, # Whether to build the libraries only (i.e. not the kernel module or
# nvidia-settings). Used to support 32-bit binaries on 64-bit
# Linux.
libsOnly ? false
}:
with stdenv.lib;
let versionNumber = "304.134"; in
stdenv.mkDerivation {
name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
builder = ./builder-legacy304.sh;
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
sha256 = "178wx0a2pmdnaypa9pq6jh0ii0i8ykz1sh1liad9zfriy4d8kxw4";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
sha256 = "0hy4q1v4y7q2jq2j963mwpjhjksqhaiing3xcla861r8rmjkf8a2";
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
inherit versionNumber libsOnly;
kernel = if libsOnly then null else kernel.dev;
hardeningDisable = [ "pic" "format" ];
dontStrip = true;
glPath = stdenv.lib.makeLibraryPath [xorg.libXext xorg.libX11 xorg.libXrandr];
cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.cc.cc];
programPath = optionalString (!libsOnly) (stdenv.lib.makeLibraryPath
[ gtk2 atk pango glib gdk_pixbuf xorg.libXv ] );
buildInputs = [ perl ];
meta = {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for NVIDIA graphics cards";
license = stdenv.lib.licenses.unfree;
};
}

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