Merge remote-tracking branch 'upstream/master' into HEAD

This commit is contained in:
Frederik Rietdijk 2017-05-03 09:59:49 +02:00
commit c520e79842
49 changed files with 600 additions and 251 deletions

View File

@ -17,7 +17,29 @@ has the following highlights: </para>
A consequence is that UIDs and GIDs are no longer reused. A consequence is that UIDs and GIDs are no longer reused.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The module option <option>services.xserver.xrandrHeads</option> now
causes the first head specified in this list to be set as the primary
head. Apart from that, it's now possible to also set additional options
by using an attribute set, for example:
<programlisting>
{ services.xserver.xrandrHeads = [
"HDMI-0"
{
output = &quot;DVI-0&quot;;
primary = true;
monitorConfig = ''
Option &quot;Rotate&quot; &quot;right&quot;
'';
}
];
}
</programlisting>
This will set the <literal>DVI-0</literal> output to be the primary head,
even though <literal>HDMI-0</literal> is the first head in the list.
</para>
</listitem>
</itemizedlist> </itemizedlist>
<para>The following new services were added since the last release:</para> <para>The following new services were added since the last release:</para>

View File

@ -534,6 +534,7 @@
./services/security/munge.nix ./services/security/munge.nix
./services/security/oauth2_proxy.nix ./services/security/oauth2_proxy.nix
./services/security/physlock.nix ./services/security/physlock.nix
./services/security/shibboleth-sp.nix
./services/security/sshguard.nix ./services/security/sshguard.nix
./services/security/tor.nix ./services/security/tor.nix
./services/security/torify.nix ./services/security/torify.nix

View File

@ -12,7 +12,7 @@ let
factory = util.BuildFactory() factory = util.BuildFactory()
c = BuildmasterConfig = dict( c = BuildmasterConfig = dict(
workers = [${concatStringsSep "," cfg.workers}], workers = [${concatStringsSep "," cfg.workers}],
protocols = { 'pb': {'port': ${cfg.bpPort} } }, protocols = { 'pb': {'port': ${toString cfg.bpPort} } },
title = '${escapeStr cfg.title}', title = '${escapeStr cfg.title}',
titleURL = '${escapeStr cfg.titleUrl}', titleURL = '${escapeStr cfg.titleUrl}',
buildbotURL = '${escapeStr cfg.buildbotUrl}', buildbotURL = '${escapeStr cfg.buildbotUrl}',
@ -62,7 +62,7 @@ in {
extraConfig = mkOption { extraConfig = mkOption {
type = types.str; type = types.str;
description = "Extra configuration to append to master.cfg"; description = "Extra configuration to append to master.cfg";
default = ""; default = "c['buildbotNetUsageData'] = None";
}; };
masterCfg = mkOption { masterCfg = mkOption {
@ -92,10 +92,7 @@ in {
workers = mkOption { workers = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
description = "List of Workers."; description = "List of Workers.";
default = [ default = [ "worker.Worker('example-worker', 'pass')" ];
"worker.Worker('example-worker', 'pass')"
];
example = [ "worker.LocalWorker('example-worker')" ];
}; };
status = mkOption { status = mkOption {
@ -135,9 +132,8 @@ in {
}; };
bpPort = mkOption { bpPort = mkOption {
default = "9989"; default = 9989;
type = types.string; type = types.int;
example = "tcp:10000:interface=127.0.0.1";
description = "Port where the master will listen to Buildbot Worker."; description = "Port where the master will listen to Buildbot Worker.";
}; };
@ -179,14 +175,14 @@ in {
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.buildbot-ui; default = pkgs.buildbot-full;
defaultText = "pkgs.buildbot-ui"; defaultText = "pkgs.buildbot-full";
description = "Package to use for buildbot."; description = "Package to use for buildbot.";
example = literalExample "pkgs.buildbot-full"; example = literalExample "pkgs.buildbot-full";
}; };
packages = mkOption { packages = mkOption {
default = [ ]; default = with pkgs; [ python27Packages.twisted git ];
example = literalExample "[ pkgs.git ]"; example = literalExample "[ pkgs.git ]";
type = types.listOf types.package; type = types.listOf types.package;
description = "Packages to add to PATH for the buildbot process."; description = "Packages to add to PATH for the buildbot process.";
@ -212,29 +208,30 @@ in {
systemd.services.buildbot-master = { systemd.services.buildbot-master = {
description = "Buildbot Continuous Integration Server."; description = "Buildbot Continuous Integration Server.";
after = [ "network.target" ]; after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = cfg.packages; path = cfg.packages;
preStart = ''
env > envvars
mkdir -vp ${cfg.buildbotDir}
ln -sfv ${masterCfg} ${cfg.buildbotDir}/master.cfg
rm -fv $cfg.buildbotDir}/buildbot.tac
${cfg.package}/bin/buildbot create-master ${cfg.buildbotDir}
'';
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
WorkingDirectory = cfg.home; WorkingDirectory = cfg.home;
ExecStart = "${cfg.package}/bin/buildbot start --nodaemon ${cfg.buildbotDir}"; Environment = "PYTHONPATH=${cfg.package}/lib/python2.7/site-packages:${pkgs.buildbot-plugins.www}/lib/python2.7/site-packages:${pkgs.buildbot-plugins.waterfall-view}/lib/python2.7/site-packages:${pkgs.buildbot-plugins.console-view}/lib/python2.7/site-packages:${pkgs.python27Packages.future}/lib/python2.7/site-packages:${pkgs.python27Packages.dateutil}/lib/python2.7/site-packages:${pkgs.python27Packages.six}/lib/python2.7/site-packages:${pkgs.python27Packages.sqlalchemy}/lib/python2.7/site-packages:${pkgs.python27Packages.jinja2}/lib/python2.7/site-packages:${pkgs.python27Packages.markupsafe}/lib/python2.7/site-packages:${pkgs.python27Packages.sqlalchemy_migrate}/lib/python2.7/site-packages:${pkgs.python27Packages.tempita}/lib/python2.7/site-packages:${pkgs.python27Packages.decorator}/lib/python2.7/site-packages:${pkgs.python27Packages.sqlparse}/lib/python2.7/site-packages:${pkgs.python27Packages.txaio}/lib/python2.7/site-packages:${pkgs.python27Packages.autobahn}/lib/python2.7/site-packages:${pkgs.python27Packages.pyjwt}/lib/python2.7/site-packages:${pkgs.python27Packages.distro}/lib/python2.7/site-packages:${pkgs.python27Packages.pbr}/lib/python2.7/site-packages:${pkgs.python27Packages.urllib3}/lib/python2.7/site-packages";
# NOTE: call twistd directly with stdout logging for systemd
#ExecStart = "${cfg.package}/bin/buildbot start --nodaemon ${cfg.buildbotDir}";
ExecStart = "${pkgs.python27Packages.twisted}/bin/twistd -n -l - -y ${cfg.buildbotDir}/buildbot.tac";
}; };
preStart = ''
${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}
'';
postStart = ''
until [[ $(${pkgs.curl}/bin/curl -s --head -w '\n%{http_code}' http://localhost:${toString cfg.port} | tail -n1) =~ ^(200|403)$ ]]; do
sleep 1
done
'';
}; };
}; };

View File

@ -74,7 +74,7 @@ in {
}; };
packages = mkOption { packages = mkOption {
default = [ ]; default = with pkgs; [ python27Packages.twisted git ];
example = literalExample "[ pkgs.git ]"; example = literalExample "[ pkgs.git ]";
type = types.listOf types.package; type = types.listOf types.package;
description = "Packages to add to PATH for the buildbot process."; description = "Packages to add to PATH for the buildbot process.";
@ -106,7 +106,8 @@ in {
path = cfg.packages; path = cfg.packages;
preStart = '' preStart = ''
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir} mkdir -vp ${cfg.buildbotDir}
rm -fv $cfg.buildbotDir}/buildbot.tac
${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass} ${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass}
''; '';
@ -115,7 +116,11 @@ in {
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
WorkingDirectory = cfg.home; WorkingDirectory = cfg.home;
ExecStart = "${cfg.package}/bin/buildbot-worker start --nodaemon ${cfg.buildbotDir}"; Environment = "PYTHONPATH=${cfg.package}/lib/python2.7/site-packages:${pkgs.python27Packages.future}/lib/python2.7/site-packages";
# NOTE: call twistd directly with stdout logging for systemd
#ExecStart = "${cfg.package}/bin/buildbot-worker start --nodaemon ${cfg.buildbotDir}";
ExecStart = "${pkgs.python27Packages.twisted}/bin/twistd -n -l - -y ${cfg.buildbotDir}/buildbot.tac";
}; };
}; };

View File

@ -0,0 +1,73 @@
{pkgs, config, lib, ...}:
with lib;
let
cfg = config.services.shibboleth-sp;
in {
options = {
services.shibboleth-sp = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the shibboleth service";
};
configFile = mkOption {
type = types.path;
example = "${pkgs.shibboleth-sp}/etc/shibboleth/shibboleth2.xml";
description = "Path to shibboleth config file";
};
fastcgi.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to include the shibauthorizer and shibresponder FastCGI processes";
};
fastcgi.shibAuthorizerPort = mkOption {
type = types.int;
default = 9100;
description = "Port for shibauthorizer FastCGI proccess to bind to";
};
fastcgi.shibResponderPort = mkOption {
type = types.int;
default = 9101;
description = "Port for shibauthorizer FastCGI proccess to bind to";
};
};
};
config = mkIf cfg.enable {
systemd.services.shibboleth-sp = {
description = "Provides SSO and federation for web applications";
after = lib.optionals cfg.fastcgi.enable [ "shibresponder.service" "shibauthorizer.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.shibboleth-sp}/bin/shibd -F -d ${pkgs.shibboleth-sp} -c ${cfg.configFile}";
};
};
systemd.services.shibresponder = mkIf cfg.fastcgi.enable {
description = "Provides SSO through Shibboleth via FastCGI";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = [ "${pkgs.spawn_fcgi}" ];
environment.SHIBSP_CONFIG = "${cfg.configFile}";
serviceConfig = {
ExecStart = "${pkgs.spawn_fcgi}/bin/spawn-fcgi -n -p ${toString cfg.fastcgi.shibResponderPort} ${pkgs.shibboleth-sp}/lib/shibboleth/shibresponder";
};
};
systemd.services.shibauthorizer = mkIf cfg.fastcgi.enable {
description = "Provides SSO through Shibboleth via FastCGI";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = [ "${pkgs.spawn_fcgi}" ];
environment.SHIBSP_CONFIG = "${cfg.configFile}";
serviceConfig = {
ExecStart = "${pkgs.spawn_fcgi}/bin/spawn-fcgi -n -p ${toString cfg.fastcgi.shibAuthorizerPort} ${pkgs.shibboleth-sp}/lib/shibboleth/shibauthorizer";
};
};
};
}

View File

@ -31,18 +31,51 @@ let
pkgs.xorg.fontadobe75dpi pkgs.xorg.fontadobe75dpi
]; ];
xrandrOptions = {
output = mkOption {
type = types.str;
example = "DVI-0";
description = ''
The output name of the monitor, as shown by <citerefentry>
<refentrytitle>xrandr</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry> invoked without arguments.
'';
};
primary = mkOption {
type = types.bool;
default = false;
description = ''
Whether this head is treated as the primary monitor,
'';
};
monitorConfig = mkOption {
type = types.lines;
default = "";
example = ''
DisplaySize 408 306
Option "DPMS" "false"
'';
description = ''
Extra lines to append to the <literal>Monitor</literal> section
verbatim.
'';
};
};
# Just enumerate all heads without discarding XRandR output information. # Just enumerate all heads without discarding XRandR output information.
xrandrHeads = let xrandrHeads = let
mkHead = num: output: { mkHead = num: config: {
name = "multihead${toString num}"; name = "multihead${toString num}";
inherit output; inherit config;
}; };
in imap mkHead cfg.xrandrHeads; in imap mkHead cfg.xrandrHeads;
xrandrDeviceSection = let xrandrDeviceSection = let
monitors = flip map xrandrHeads (h: '' monitors = flip map xrandrHeads (h: ''
Option "monitor-${h.output}" "${h.name}" Option "monitor-${h.config.output}" "${h.name}"
''); '');
# First option is indented through the space in the config but any # First option is indented through the space in the config but any
# subsequent options aren't so we need to apply indentation to # subsequent options aren't so we need to apply indentation to
@ -62,9 +95,13 @@ let
value = '' value = ''
Section "Monitor" Section "Monitor"
Identifier "${current.name}" Identifier "${current.name}"
${optionalString (current.config.primary) ''
Option "Primary" "true"
''}
${optionalString (previous != []) '' ${optionalString (previous != []) ''
Option "RightOf" "${(head previous).name}" Option "RightOf" "${(head previous).name}"
''} ''}
${current.config.monitorConfig}
EndSection EndSection
''; '';
} ++ previous; } ++ previous;
@ -329,13 +366,39 @@ in
xrandrHeads = mkOption { xrandrHeads = mkOption {
default = []; default = [];
example = [ "HDMI-0" "DVI-0" ]; example = [
type = with types; listOf string; "HDMI-0"
{ output = "DVI-0"; primary = true; }
{ output = "DVI-1"; monitorConfig = "Option \"Rotate\" \"left\""; }
];
type = with types; listOf (coercedTo str (output: {
inherit output;
}) (submodule { options = xrandrOptions; }));
# Set primary to true for the first head if no other has been set
# primary already.
apply = heads: let
hasPrimary = any (x: x.primary) heads;
firstPrimary = head heads // { primary = true; };
newHeads = singleton firstPrimary ++ tail heads;
in if heads != [] && !hasPrimary then newHeads else heads;
description = '' description = ''
Simple multiple monitor configuration, just specify a list of XRandR Multiple monitor configuration, just specify a list of XRandR
outputs which will be mapped from left to right in the order of the outputs. The individual elements should be either simple strings or
an attribute set of output options.
If the element is a string, it is denoting the physical output for a
monitor, if it's an attribute set, you must at least provide the
<option>output</option> option.
The monitors will be mapped from left to right in the order of the
list. list.
By default, the first monitor will be set as the primary monitor if
none of the elements contain an option that has set
<option>primary</option> to <literal>true</literal>.
<note><para>Only one monitor is allowed to be primary.</para></note>
Be careful using this option with multiple graphic adapters or with Be careful using this option with multiple graphic adapters or with
drivers that have poor support for XRandR, unexpected things might drivers that have poor support for XRandR, unexpected things might
happen with those. happen with those.
@ -469,11 +532,18 @@ in
nixpkgs.config.xorg = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { abiCompat = "1.18"; }; nixpkgs.config.xorg = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { abiCompat = "1.18"; };
assertions = assertions = [
[ { assertion = config.security.polkit.enable; { assertion = config.security.polkit.enable;
message = "X11 requires Polkit to be enabled (security.polkit.enable = true)."; message = "X11 requires Polkit to be enabled (security.polkit.enable = true).";
} }
]; (let primaryHeads = filter (x: x.primary) cfg.xrandrHeads; in {
assertion = length primaryHeads < 2;
message = "Only one head is allowed to be primary in "
+ "services.xserver.xrandrHeads, but there are "
+ "${toString (length primaryHeads)} heads set to primary: "
+ concatMapStringsSep ", " (x: x.output) primaryHeads;
})
];
environment.etc = environment.etc =
(optionals cfg.exportConfiguration (optionals cfg.exportConfiguration

View File

@ -4,18 +4,22 @@ import ./make-test.nix ({ pkgs, ... } : {
name = "buildbot"; name = "buildbot";
nodes = { nodes = {
bbmaster = { config, pkgs, nodes, ... }: { bbmaster = { config, pkgs, ... }: {
services.buildbot-master = { services.buildbot-master = {
enable = true; enable = true;
package = pkgs.buildbot-full;
# NOTE: use fake repo due to no internet in hydra ci
factorySteps = [ factorySteps = [
"steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')" "steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')"
"steps.ShellCommand(command=['trial', 'pyflakes'])" "steps.ShellCommand(command=['bash', 'fakerepo.sh'])"
]; ];
changeSource = [ changeSource = [
"changes.GitPoller('git://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)" "changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)"
]; ];
}; };
networking.firewall.allowedTCPPorts = [ 8010 9989 ]; networking.firewall.allowedTCPPorts = [ 8010 8011 9989 ];
environment.systemPackages = with pkgs; [ git buildbot-full ];
}; };
bbworker = { config, pkgs, ... }: { bbworker = { config, pkgs, ... }: {
@ -23,24 +27,85 @@ import ./make-test.nix ({ pkgs, ... } : {
enable = true; enable = true;
masterUrl = "bbmaster:9989"; masterUrl = "bbmaster:9989";
}; };
environment.systemPackages = with pkgs; [ git buildbot-worker ];
};
gitrepo = { config, pkgs, ... }: {
services.openssh.enable = true;
networking.firewall.allowedTCPPorts = [ 22 9418 ];
environment.systemPackages = with pkgs; [ git ];
}; };
}; };
testScript = '' testScript = ''
#Start up and populate fake repo
$gitrepo->waitForUnit("multi-user.target");
print($gitrepo->execute(" \
git config --global user.name 'Nobody Fakeuser' && \
git config --global user.email 'nobody\@fakerepo.com' && \
rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo && \
mkdir -pv /srv/repos/fakerepo ~/.ssh && \
ssh-keyscan -H gitrepo > ~/.ssh/known_hosts && \
cat ~/.ssh/known_hosts && \
cd /srv/repos/fakerepo && \
git init && \
echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh && \
cat fakerepo.sh && \
touch .git/git-daemon-export-ok && \
git add fakerepo.sh .git/git-daemon-export-ok && \
git commit -m fakerepo && \
git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr & \
"));
$bbmaster->waitForUnit("network.target"); # Test gitrepo
$bbworker->waitForUnit("network.target"); $bbmaster->waitForUnit("network-online.target");
#$bbmaster->execute("nc -z gitrepo 9418");
print($bbmaster->execute(" \
rm -rfv /tmp/fakerepo && \
git clone git://gitrepo/fakerepo /tmp/fakerepo && \
pwd && \
ls -la && \
ls -la /tmp/fakerepo \
"));
# Additional tests to be added # Test start master and connect worker
#$bbmaster->waitForUnit("buildbot-master.service"); $bbmaster->waitForUnit("buildbot-master.service");
#$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die; $bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/;
#$bbworker->waitForUnit("buildbot-worker.service"); $bbworker->waitForUnit("network-online.target");
#$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die; $bbworker->execute("nc -z bbmaster 8010");
$bbworker->execute("nc -z bbmaster 9989");
$bbworker->waitForUnit("buildbot-worker.service");
print($bbworker->execute("ls -la /home/bbworker/worker"));
# Test stop buildbot master and worker
print($bbmaster->execute(" \
systemctl -l --no-pager status buildbot-master && \
systemctl stop buildbot-master \
"));
$bbworker->fail("nc -z bbmaster 8010");
$bbworker->fail("nc -z bbmaster 9989");
print($bbworker->execute(" \
systemctl -l --no-pager status buildbot-worker && \
systemctl stop buildbot-worker && \
ls -la /home/bbworker/worker \
"));
# Test buildbot daemon mode
# NOTE: daemon mode tests disabled due to broken PYTHONPATH child inheritence
#
#$bbmaster->execute("buildbot create-master /tmp");
#$bbmaster->execute("mv -fv /tmp/master.cfg.sample /tmp/master.cfg");
#$bbmaster->execute("sed -i 's/8010/8011/' /tmp/master.cfg");
#$bbmaster->execute("buildbot start /tmp");
#$bbworker->execute("nc -z bbmaster 8011");
#$bbworker->waitUntilSucceeds("curl -s --head http://bbmaster:8011") =~ /200 OK/;
#$bbmaster->execute("buildbot stop /tmp");
#$bbworker->fail("nc -z bbmaster 8011");
''; '';
meta = with pkgs.stdenv.lib.maintainers; { meta.maintainers = with pkgs.stdenv.lib.maintainers; [ nand0p ];
maintainers = [ nand0p ];
};
}) })

View File

@ -24,8 +24,8 @@ let
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neovim"; owner = "neovim";
repo = "libvterm"; repo = "libvterm";
rev = "11682793d84668057c5aedc3d7f8071bb54eaf2c"; rev = "5a748f97fbf27003e141002b58933a99f3addf8d";
sha256 = "0pd90yx6xsagrqjipi26sxri1l4wdnx23ziad1zbxnqx9njxa7g3"; sha256 = "1fnd57f5n9h7z50a4vj7g96k6ndsdknjqsibgnxi9ndhyz244qbx";
}; };
buildInputs = [ perl ]; buildInputs = [ perl ];
@ -81,13 +81,13 @@ let
neovim = stdenv.mkDerivation rec { neovim = stdenv.mkDerivation rec {
name = "neovim-${version}"; name = "neovim-${version}";
version = "0.1.7"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neovim"; owner = "neovim";
repo = "neovim"; repo = "neovim";
rev = "v${version}"; rev = "v${version}";
sha256 = "0bk0raxlb1xsqyw9pmqmxvcq5szqhimidrasnvzrci84gld8cwz4"; sha256 = "0fhjkgjwqqmzbfn9wk10l2vq9v74zkriz5j12b1rx0gdwzlfybn8";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -4,17 +4,17 @@ with stdenv.lib;
pythonPackages.buildPythonPackage rec { pythonPackages.buildPythonPackage rec {
name = "neovim-remote-${version}"; name = "neovim-remote-${version}";
version = "v1.4.0"; version = "v1.6.0";
disabled = !pythonPackages.isPy3k; disabled = !pythonPackages.isPy3k;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mhinz"; owner = "mhinz";
repo = "neovim-remote"; repo = "neovim-remote";
rev = version; rev = version;
sha256 = "0msvfh27f56xj5ki59ikzavxz863nal5scm57n43618m49qzg8iz"; sha256 = "0x01zpmxi37jr7j2az2bd8902h7zhkpg6kpvc8xmll9f7703zz2l";
}; };
propagatedBuildInputs = [ pythonPackages.neovim ]; propagatedBuildInputs = with pythonPackages; [ neovim psutil ];
meta = { meta = {
description = "A tool that helps controlling nvim processes from a terminal"; description = "A tool that helps controlling nvim processes from a terminal";

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "neovim-qt-${version}"; name = "neovim-qt-${version}";
version = "0.2.6"; version = "0.2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "equalsraf"; owner = "equalsraf";
repo = "neovim-qt"; repo = "neovim-qt";
rev = "v${version}"; rev = "v${version}";
sha256 = "1wsxhy8fdayy4dsr2dxgh5k4jysybjlyzj134vk325v6cqz9bsgm"; sha256 = "1bfni38l7cs0wbd9c6hgz2jfc8h3ixmg94izdvydm8j7amdz0cb6";
}; };
cmakeFlags = [ cmakeFlags = [
@ -17,7 +17,13 @@ stdenv.mkDerivation rec {
"-DMSGPACK_LIBRARIES=${libmsgpack}/lib/libmsgpackc.so" "-DMSGPACK_LIBRARIES=${libmsgpack}/lib/libmsgpackc.so"
]; ];
doCheck = true; # The following tests FAILED:
# 2 - tst_neovimconnector (Failed)
# 3 - tst_callallmethods (Failed)
# 4 - tst_encoding (Failed)
#
# Tests failed when upgraded to neovim 0.2.0
doCheck = false;
buildInputs = with pythonPackages; [ buildInputs = with pythonPackages; [
neovim qtbase libmsgpack neovim qtbase libmsgpack

View File

@ -1,13 +1,5 @@
{ stdenv, fetchurl, makeDesktopItem, cmake, boost163, zlib, openssl, { stdenv, fetchurl, makeDesktopItem, cmake, boost163, zlib, openssl,
R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc, R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
# If you have set up an R wrapper with other packages by following
# something like https://nixos.org/nixpkgs/manual/#r-packages, RStudio
# by default not be able to access any of those R packages. In order
# to do this, override the argument "R" here with your respective R
# wrapper, and set "useRPackages" to true. This will add the
# environment variable R_PROFILE_USER to the RStudio wrapper, pointing
# to an R script which will allow R to use these packages.
useRPackages ? false
}: }:
let let
@ -111,14 +103,8 @@ stdenv.mkDerivation rec {
mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;"; mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
}; };
postInstall = let rProfile = postInstall = ''
# RStudio seems to bypass the environment variables that the R wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
# wrapper already applies, and so this sets R_PROFILE_USER to
# again make those R packages accessible:
if useRPackages
then "--set R_PROFILE_USER ${R}/${R.passthru.fixLibsR}" else "";
in ''
wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin ${rProfile}
mkdir $out/share mkdir $out/share
cp -r ${desktopItem}/share/applications $out/share cp -r ${desktopItem}/share/applications $out/share
mkdir $out/share/icons mkdir $out/share/icons

View File

@ -1,7 +1,7 @@
{ {
kdeApp, lib, kdeApp, lib, makeQtWrapper,
extra-cmake-modules, kdoctools, ki18n, extra-cmake-modules, kdoctools, ki18n,
akonadi-contacts, gpgme, karchive, kcodecs, kcontacts, kcoreaddons, kcrash, akonadi-contacts, gnupg1, gpgme, karchive, kcodecs, kcontacts, kcoreaddons, kcrash,
kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice, kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice,
ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem
}: }:
@ -10,10 +10,13 @@ kdeApp {
name = "kgpg"; name = "kgpg";
nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ];
buildInputs = [ buildInputs = [
akonadi-contacts gpgme karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons akonadi-contacts gnupg1 gpgme karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons
kiconthemes kjobwidgets kio knotifications kservice ktextwidgets kxmlgui kiconthemes kjobwidgets kio knotifications kservice ktextwidgets kxmlgui
kwidgetsaddons kwindowsystem kwidgetsaddons kwindowsystem makeQtWrapper
]; ];
postInstall = ''
wrapQtProgram $out/bin/kgpg --suffix PATH : ${lib.makeBinPath [ gnupg1 ]}
'';
meta = { meta = {
license = [ lib.licenses.gpl2 ]; license = [ lib.licenses.gpl2 ];
maintainers = [ lib.maintainers.ttuegel ]; maintainers = [ lib.maintainers.ttuegel ];

View File

@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
inherit (src.meta) homepage; inherit (src.meta) homepage;
description = "Universal Radio Hacker: investigate wireless protocols like a boss"; description = "Universal Radio Hacker: investigate wireless protocols like a boss";
license = licenses.asl20; license = licenses.asl20;
platform = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ fpletz ]; maintainers = with maintainers; [ fpletz ];
}; };
} }

View File

@ -4,7 +4,7 @@
, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
, alsaLib, libXdamage, libXtst, libXrandr, expat, cups , alsaLib, libXdamage, libXtst, libXrandr, expat, cups
, dbus_libs, gtk2, gtk3, gdk_pixbuf, gcc , dbus_libs, gtk2, gtk3, gdk_pixbuf, gcc-unwrapped
# command line arguments which are always set e.g "--disable-gpu" # command line arguments which are always set e.g "--disable-gpu"
, commandLineArgs ? "" , commandLineArgs ? ""
@ -43,11 +43,10 @@ let
}; };
deps = [ deps = [
stdenv.cc.cc
glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb
alsaLib libXdamage libXtst libXrandr expat cups alsaLib libXdamage libXtst libXrandr expat cups
dbus_libs gdk_pixbuf gcc dbus_libs gdk_pixbuf gcc-unwrapped.lib
systemd systemd
libexif libexif
liberation_ttf curl utillinux xdg_utils wget liberation_ttf curl utillinux xdg_utils wget

View File

@ -23,11 +23,11 @@
let let
# NOTE: When updating, please also update in current stable, # NOTE: When updating, please also update in current stable,
# as older versions stop working # as older versions stop working
version = "24.4.17"; version = "25.4.28";
sha256 = sha256 =
{ {
"x86_64-linux" = "1wjr92vrbxyjbwyqf134h8fp1zi4d5wyyirii545wqadbgg9grh9"; "x86_64-linux" = "0r0bdl37rkar3nijxslp493mic5qd20l125p1kghqbradvh57rl3";
"i686-linux" = "1qsdidpy251irzkv0hx0ch0xnrwq6wq6b22g0n8b9d0a7xi08k7h"; "i686-linux" = "1difq6ky1klvminbzjivvq6ap3l296gij0ghgyy1n4lca3jqq648";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
arch = arch =

View File

@ -12,12 +12,12 @@ python2Packages.buildPythonApplication rec {
propagatedBuildInputs = with python2Packages; [ feedparser ]; propagatedBuildInputs = with python2Packages; [ feedparser ];
namePrefix = ""; namePrefix = "";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://offog.org/code/rawdog/"; homepage = "http://offog.org/code/rawdog/";
description = "RSS Aggregator Without Delusions Of Grandeur"; description = "RSS Aggregator Without Delusions Of Grandeur";
license = licenses.gpl2; license = licenses.gpl2;
platform = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ nckx ]; maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -26,6 +26,6 @@ python27Packages.buildPythonApplication rec {
description = "Qt remote GUI for WeeChat"; description = "Qt remote GUI for WeeChat";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ramkromberg ]; maintainers = with maintainers; [ ramkromberg ];
platform = with platforms; linux; platforms = with platforms; linux;
}; };
} }

View File

@ -21,7 +21,7 @@ set which contains `emacsWithPackages`. For example, to override
`emacsPackagesNg.emacsWithPackages`, `emacsPackagesNg.emacsWithPackages`,
``` ```
let customEmacsPackages = let customEmacsPackages =
emacsPackagesNg.override (super: self: { emacsPackagesNg.overrideScope (super: self: {
# use a custom version of emacs # use a custom version of emacs
emacs = ...; emacs = ...;
# use the unstable MELPA version of magit # use the unstable MELPA version of magit

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, composableDerivation, unzip, libjpeg, libtiff, zlib { stdenv, fetchurl, composableDerivation, unzip, libjpeg, libtiff, zlib
, postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl
, libpng, sqlite, libspatialite , libpng, sqlite, libspatialite
, netcdf, hdf5 , curl , libiconv
, netcdfSupport ? true , netcdfSupport ? true, netcdf, hdf5 , curl
}: }:
with stdenv.lib; with stdenv.lib;
composableDerivation.composableDerivation {} (fixed: rec { composableDerivation.composableDerivation {} (fixed: rec {
version = "2.1.3"; version = "2.1.3";
name = "gdal-${version}"; name = "gdal-${version}";
@ -18,7 +18,8 @@ composableDerivation.composableDerivation {} (fixed: rec {
buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite libspatialite ] buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite libspatialite ]
++ (with pythonPackages; [ python numpy wrapPython ]) ++ (with pythonPackages; [ python numpy wrapPython ])
++ (stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ]); ++ stdenv.lib.optional stdenv.isDarwin libiconv
++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

View File

@ -10,17 +10,6 @@ index 6abbc72..804f0f2 100644
#include "gettext.h" #include "gettext.h"
#define _(String) dgettext (PACKAGE, String) #define _(String) dgettext (PACKAGE, String)
#include "progname.h" #include "progname.h"
@@ -161,9 +160,7 @@ process_input (char *readbuf, int flags)
free (output);
}
else
- error (EXIT_FAILURE, 0, "%s: %s",
- args_info.register_given ? "register" : "lookup",
- idn2_strerror (rc));
+ perror (idn2_strerror (rc));
}
int
@@ -222,7 +219,7 @@ main (int argc, char *argv[]) @@ -222,7 +219,7 @@ main (int argc, char *argv[])
} }

View File

@ -2,7 +2,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qtinstaller"; name = "qtinstaller";
buildInputs = [ qtdeclarative qttools qtbase qmakeHook ];
propagatedBuildInputs = [qtdeclarative qttools];
nativeBuildInputs = [ qmakeHook ];
version = "2.0.3"; version = "2.0.3";
src = fetchurl { src = fetchurl {
url = "http://download.qt.io/official_releases/qt-installer-framework/${version}/qt-installer-framework-opensource-${version}-src.tar.gz"; url = "http://download.qt.io/official_releases/qt-installer-framework/${version}/qt-installer-framework-opensource-${version}-src.tar.gz";
@ -12,6 +15,10 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" "doc" ]; outputs = [ "out" "dev" "doc" ];
setOutputFlags = false;
enableParallelBuilding = true;
NIX_QT_SUBMODULE = true;
installPhase = '' installPhase = ''
mkdir -p $out/{bin,lib,share/qt-installer-framework} mkdir -p $out/{bin,lib,share/qt-installer-framework}
cp -a bin/{archivegen,binarycreator,devtool,installerbase,repogen} $out/bin cp -a bin/{archivegen,binarycreator,devtool,installerbase,repogen} $out/bin

View File

@ -0,0 +1,22 @@
{ lib
, fetchPypi
, buildPythonPackage
}:
buildPythonPackage rec {
pname = "certifi";
version = "2017.1.23";
name = "${pname}-${version}";
src = fetchPypi {
inherit pname version;
sha256 = "1klrzl3hgvcf2mjk00g0k3kk1p2z27vzwnxivwar4vhjmjvpz1w1";
};
meta = {
homepage = http://certifi.io/;
description = "Python package for providing Mozilla's CA Bundle";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ koral ];
};
}

View File

@ -3,6 +3,8 @@
, fetchPypi , fetchPypi
, cython , cython
, isPyPy , isPyPy
, ipython
, python
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -17,8 +19,14 @@ buildPythonPackage rec {
buildInputs = [ cython ]; buildInputs = [ cython ];
propagatedBuildInputs = [ ipython ];
disabled = isPyPy; disabled = isPyPy;
checkPhase = ''
${python.interpreter} -m unittest discover -s tests
'';
meta = { meta = {
description = "Line-by-line profiler"; description = "Line-by-line profiler";
homepage = https://github.com/rkern/line_profiler; homepage = https://github.com/rkern/line_profiler;

View File

@ -1,18 +1,34 @@
{ stdenv, fetchurl, nettools, glibcLocales, pythonPackages }: { lib
, buildPythonPackage
, fetchPypi
, nettools
, glibcLocales
, autobahn
, cffi
, click
, hkdf
, pynacl
, spake2
, tqdm
, python
, mock
}:
pythonPackages.buildPythonApplication rec { buildPythonPackage rec {
name = "magic-wormhole-${version}"; pname = "magic-wormhole";
version = "0.8.1"; version = "0.8.1";
name = "${pname}-${version}";
src = fetchurl { src = fetchPypi {
url = "mirror://pypi/m/magic-wormhole/${name}.tar.gz"; inherit pname version;
sha256 = "1yh5nbhh9z1am2pqnb5qqyq1zjl1m7z6jnkmvry2q14qwspw9had"; sha256 = "1yh5nbhh9z1am2pqnb5qqyq1zjl1m7z6jnkmvry2q14qwspw9had";
}; };
checkInputs = [ mock ];
buildInputs = [ nettools glibcLocales ]; buildInputs = [ nettools glibcLocales ];
propagatedBuildInputs = with pythonPackages; [ autobahn cffi click hkdf pynacl spake2 tqdm ]; propagatedBuildInputs = [ autobahn cffi click hkdf pynacl spake2 tqdm ];
patchPhase = '' postPatch = ''
sed -i -e "s|'ifconfig'|'${nettools}/bin/ifconfig'|" src/wormhole/ipaddrs.py sed -i -e "s|'ifconfig'|'${nettools}/bin/ifconfig'|" src/wormhole/ipaddrs.py
sed -i -e "s|if (os.path.dirname(os.path.abspath(wormhole))|if not os.path.abspath(wormhole).startswith('/nix/store') and (os.path.dirname(os.path.abspath(wormhole))|" src/wormhole/test/test_scripts.py sed -i -e "s|if (os.path.dirname(os.path.abspath(wormhole))|if not os.path.abspath(wormhole).startswith('/nix/store') and (os.path.dirname(os.path.abspath(wormhole))|" src/wormhole/test/test_scripts.py
# XXX: disable one test due to warning: # XXX: disable one test due to warning:
@ -24,10 +40,10 @@ pythonPackages.buildPythonApplication rec {
export PATH="$PATH:$out/bin" export PATH="$PATH:$out/bin"
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8" export LC_ALL="en_US.UTF-8"
${pythonPackages.python.interpreter} -m wormhole.test.run_trial wormhole ${python.interpreter} -m wormhole.test.run_trial wormhole
''; '';
meta = with stdenv.lib; { meta = with lib; {
description = "Securely transfer data between computers"; description = "Securely transfer data between computers";
homepage = "https://github.com/warner/magic-wormhole"; homepage = "https://github.com/warner/magic-wormhole";
license = licenses.mit; license = licenses.mit;

View File

@ -0,0 +1,27 @@
{ lib
, buildPythonPackage
, fetchPypi
, chardet
, pyparsing
, graphviz
}:
buildPythonPackage rec {
pname = "pydot";
version = "1.2.3";
name = "${pname}-${version}";
src = fetchPypi {
inherit pname version;
sha256 = "edb5d3f249f97fbd9c4bb16959e61bc32ecf40eee1a9f6d27abe8d01c0a73502";
};
checkInputs = [ chardet ];
# No tests in archive
doCheck = false;
propagatedBuildInputs = [pyparsing graphviz];
meta = {
homepage = https://github.com/erocarrera/pydot;
description = "Allows to easily create both directed and non directed graphs from Python";
licenses = with lib.licenses; [ mit ];
};
}

View File

@ -16,6 +16,6 @@ buildPythonPackage rec {
homepage = https://github.com/svinota/pyroute2; homepage = https://github.com/svinota/pyroute2;
license = licenses.asl20; license = licenses.asl20;
maintainers = [maintainers.mic92]; maintainers = [maintainers.mic92];
platform = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -0,0 +1,23 @@
{ stdenv, buildPythonPackage, fetchPypi, oslosphinx, pbr, six, argparse }:
buildPythonPackage rec {
pname = "stevedore";
version = "1.21.0";
name = "${pname}-${version}";
src = fetchPypi {
inherit pname version;
sha256 = "12sg88ax0lv2sxr685rqdaxm9gryjrpj4fvax459zvwy1r4n83ma";
};
doCheck = false;
buildInputs = [ oslosphinx ];
propagatedBuildInputs = [ pbr six argparse ];
meta = with stdenv.lib; {
description = "Manage dynamic plugins for Python applications";
homepage = "https://pypi.python.org/pypi/stevedore";
license = licenses.asl20;
};
}

View File

@ -55,28 +55,23 @@ available.
## RStudio ## RStudio
RStudio by default will not use the libraries installed like above. RStudio uses a standard set of packages and ignores any custom R
You must override its R version with your custom R environment, and environments or installed packages you may have. To create a custom
set `useRPackages` to `true`, like below: environment, see `rstudioWrapper`, which functions similarly to
`rWrapper`:
```nix ```nix
{ {
packageOverrides = super: let self = super.pkgs; in packageOverrides = super: let self = super.pkgs; in
{ {
rEnv = super.rWrapper.override { rstudioEnv = super.rstudioWrapper.override {
packages = with self.rPackages; [ packages = with self.rPackages; [
devtools dplyr
ggplot2 ggplot2
reshape2 reshape2
yaml
optparse
]; ];
}; };
rstudioEnv = super.rstudio.override {
R = rEnv;
useRPackages = true;
};
}; };
} }
``` ```

View File

@ -0,0 +1,33 @@
{ stdenv, R, rstudio, makeWrapper, recommendedPackages, packages }:
stdenv.mkDerivation rec {
name = rstudio.name + "-wrapper";
buildInputs = [makeWrapper R rstudio] ++ recommendedPackages ++ packages;
unpackPhase = ":";
# rWrapper points R to a specific set of packages by using a wrapper
# (as in https://nixos.org/nixpkgs/manual/#r-packages) which sets
# R_LIBS_SITE. Ordinarily, it would be possible to make RStudio use
# this same set of packages by simply overriding its version of R
# with the wrapped one, however, RStudio internally overrides
# R_LIBS_SITE. The below works around this by turning R_LIBS_SITE
# into an R file (fixLibsR) which achieves the same effect, then
# uses R_PROFILE_USER to load this code at startup in RStudio.
fixLibsR = "fix_libs.R";
installPhase = ''
mkdir $out
echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/${fixLibsR}
echo -n ".libPaths(c(.libPaths(), \"" >> $out/${fixLibsR}
echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/${fixLibsR}
echo -n "\"))" >> $out/${fixLibsR}
echo >> $out/${fixLibsR}
makeWrapper ${rstudio}/bin/rstudio $out/bin/rstudio --set R_PROFILE_USER $out/${fixLibsR}
'';
meta = {
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,19 +1,12 @@
{ stdenv, R, makeWrapper, recommendedPackages, packages }: { stdenv, R, makeWrapper, recommendedPackages, packages }:
stdenv.mkDerivation rec { stdenv.mkDerivation {
name = R.name + "-wrapper"; name = R.name + "-wrapper";
buildInputs = [makeWrapper R] ++ recommendedPackages ++ packages; buildInputs = [makeWrapper R] ++ recommendedPackages ++ packages;
unpackPhase = ":"; unpackPhase = ":";
# This filename is used in 'installPhase', but needs to be
# referenced elsewhere. This will be relative to this package's
# path.
passthru = {
fixLibsR = "fix_libs.R";
};
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cd ${R}/bin cd ${R}/bin
@ -21,17 +14,6 @@ stdenv.mkDerivation rec {
makeWrapper ${R}/bin/$exe $out/bin/$exe \ makeWrapper ${R}/bin/$exe $out/bin/$exe \
--prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE"
done done
# RStudio (and perhaps other packages) overrides the R_LIBS_SITE
# which the wrapper above applies, and as a result packages
# installed in the wrapper (as in the method described in
# https://nixos.org/nixpkgs/manual/#r-packages) aren't visible.
# The below turns R_LIBS_SITE into some R startup code which can
# correct this.
echo "# Autogenerated by wrapper.nix from R_LIBS_SITE" > $out/${passthru.fixLibsR}
echo -n ".libPaths(c(.libPaths(), \"" >> $out/${passthru.fixLibsR}
echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/${passthru.fixLibsR}
echo -n "\"))" >> $out/${passthru.fixLibsR}
echo >> $out/${passthru.fixLibsR}
''; '';
meta = { meta = {

View File

@ -1,12 +1,13 @@
{ stdenv, lib, fetchurl, makeWrapper, jre }: { stdenv, lib, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ammonite-repl-${version}"; name = "ammonite-${version}";
version = "0.8.3"; version = "0.8.4";
scalaVersion = "2.12";
src = fetchurl { src = fetchurl {
url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/2.12-${version}"; url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
sha256 = "0y4524y2w7aq300djcazb7ckkr3gqpim2grcgb237mxq3fdvb0r8"; sha256 = "04kni08yd53w8dhkkgbydzkka4cnp31l2d8g23iinkn10ckmz5jm";
}; };
propagatedBuildInputs = [ jre ] ; propagatedBuildInputs = [ jre ] ;

View File

@ -5,17 +5,19 @@ let
buildInputs = [ makeWrapper ] ++ plugins; buildInputs = [ makeWrapper ] ++ plugins;
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins); passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
} '' } ''
makeWrapper ${package}/bin/buildbot $out/bin/buildbot --prefix PYTHONPATH : $PYTHONPATH makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
--prefix PYTHONPATH : "${package}/lib/python2.7/site-packages:$PYTHONPATH"
ln -sfv ${package}/lib $out/lib
''; '';
package = pythonPackages.buildPythonApplication (rec { package = pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot"; pname = "buildbot";
version = "0.9.4"; version = "0.9.5";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; sha256 = "11r553nmh87a9pm58wycimapk2pw9hnlc7hffn97xwbqprd8qh66";
}; };
buildInputs = with pythonPackages; [ buildInputs = with pythonPackages; [
@ -49,6 +51,7 @@ let
txaio txaio
autobahn autobahn
pyjwt pyjwt
distro
# tls # tls
pyopenssl pyopenssl
@ -68,6 +71,14 @@ let
postPatch = '' postPatch = ''
substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)" substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
# NOTE: secrets management tests currently broken
rm -fv buildbot/test/integration/test_integration_secrets.py
rm -fv buildbot/test/integration/test_integration_secrets_with_vault.py
rm -fv buildbot/test/unit/test_fake_secrets_manager.py
rm -fv buildbot/test/unit/test_interpolate_secrets.py
rm -fv buildbot/test/unit/test_secret_in_file.py
rm -fv buildbot/test/unit/test_secret_in_vault.py
''; '';
passthru = { inherit withPlugins; }; passthru = { inherit withPlugins; };

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, pythonPackages }: { stdenv, pythonPackages }:
let let
buildbot-pkg = pythonPackages.buildPythonPackage rec { buildbot-pkg = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot-pkg"; pname = "buildbot-pkg";
version = "0.9.4"; version = "0.9.5";
src = fetchurl { src = pythonPackages.fetchPypi {
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; inherit pname version;
sha256 = "09a3yvs5hhf8syrkyydznmymgg86dpvgrwy9rb3bryq00wpjb3wn"; sha256 = "1xpi4w0lc6z97pmmms85dvdspacbzlvs8zi3kv1r4rypk3znwmi1";
}; };
propagatedBuildInputs = with pythonPackages; [ setuptools ]; propagatedBuildInputs = with pythonPackages; [ setuptools ];
@ -25,15 +25,14 @@ in {
www = pythonPackages.buildPythonPackage rec { www = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot_www"; pname = "buildbot_www";
version = "0.9.4"; version = "0.9.5";
# NOTE: wheel is used due to buildbot circular dependency # NOTE: wheel is used due to buildbot circular dependency
format = "wheel"; format = "wheel";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version format; inherit pname version format;
python = "py2"; sha256 = "1d7yjxka6slflm3wbdpq4sr1kagmgbqdv2zgx9bq77jvjh7ga0py";
sha256 = "08m4h2pf6hgi8igh2j0qzfq49izc2z0qqj6ddxk0di5l306jx4im";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -47,11 +46,11 @@ in {
console-view = pythonPackages.buildPythonPackage rec { console-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot-console-view"; pname = "buildbot-console-view";
version = "0.9.4"; version = "0.9.5";
src = fetchurl { src = pythonPackages.fetchPypi {
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; inherit pname version;
sha256 = "1w2vv8iyzl7ak4161avp9n6mhh08adav2fl82bbm17a3064apl8n"; sha256 = "1s6mvw955dsgk7hvb1xa32bbd7w2yma62py5s0vmi5shv8nwq3hb";
}; };
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ]; propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@ -67,11 +66,11 @@ in {
waterfall-view = pythonPackages.buildPythonPackage rec { waterfall-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot-waterfall-view"; pname = "buildbot-waterfall-view";
version = "0.9.4"; version = "0.9.5";
src = fetchurl { src = pythonPackages.fetchPypi {
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; inherit pname version;
sha256 = "17xn6vrr0k2xabw6hr9sdyy0ry3llyjfmc79qrpgp5bsly2qv3jf"; sha256 = "116846d987wp1bz78f0h4lypqcns5073vzhb4vsqbf08sppgr67k";
}; };
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ]; propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];

View File

@ -3,11 +3,11 @@
pythonPackages.buildPythonApplication (rec { pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot-worker"; pname = "buildbot-worker";
version = "0.9.4"; version = "0.9.5";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj"; sha256 = "1al7jam351sf781axj4kfhj70cc0g21zv81ynk410kdccjyxp2dy";
}; };
buildInputs = with pythonPackages; [ setuptoolsTrial mock ]; buildInputs = with pythonPackages; [ setuptoolsTrial mock ];

View File

@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
sha256 = "0i1y50mf559flhxgaxy2gdpa7dvpp12ix9xfzgxa61rc135x0im4"; sha256 = "0i1y50mf559flhxgaxy2gdpa7dvpp12ix9xfzgxa61rc135x0im4";
}; };
patches = [ ./linux_4_11_include_fix.patch ];
preConfigure = preConfigure =
'' ''
cd ./src cd ./src

View File

@ -0,0 +1,30 @@
diff -Naur ProCaptureForLinux_3269/src/sources/avstream/capture.c ProCaptureForLinux_3269_new/src/sources/avstream/capture.c
--- ProCaptureForLinux_3269/src/sources/avstream/capture.c 2016-12-12 17:17:18.000000000 -0800
+++ ProCaptureForLinux_3269_new/src/sources/avstream/capture.c 2017-05-02 23:58:28.270827491 -0700
@@ -154,7 +154,9 @@
if (IS_ERR_OR_NULL(fp))
return IS_ERR(fp) ? PTR_ERR(fp) : -1;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)
+ ret = vfs_getattr(&fp->f_path, &stat, STATX_BASIC_STATS, AT_STATX_SYNC_AS_STAT);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)
ret = vfs_getattr(&fp->f_path, &stat);
#else
ret = vfs_getattr(fp->f_path.mnt, fp->f_path.dentry, &stat);
diff -Naur ProCaptureForLinux_3269/src/sources/ospi/ospi-linux.c ProCaptureForLinux_3269_new/src/sources/ospi/ospi-linux.c
--- ProCaptureForLinux_3269/src/sources/ospi/ospi-linux.c 2016-12-12 17:17:18.000000000 -0800
+++ ProCaptureForLinux_3269_new/src/sources/ospi/ospi-linux.c 2017-05-02 23:51:02.197633628 -0700
@@ -21,6 +21,12 @@
#include <linux/freezer.h>
#include <linux/pci.h>
+// some functions were moved from linux/sched.h out to their own headers in 4.11.x
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)
+#include <linux/sched/signal.h>
+#include <linux/sched/debug.h>
+#endif
+
unsigned int debug_level = 0;
struct kmem_cache *g_spin_cache = NULL;

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, zsh, pinentry, cryptsetup, gnupg1orig, makeWrapper }: { stdenv, fetchurl, zsh, pinentry, cryptsetup, gnupg1orig, makeWrapper }:
let let
version = "2.2"; version = "2.4";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tomb-${version}"; name = "tomb-${version}";
src = fetchurl { src = fetchurl {
url = "https://files.dyne.org/tomb/tomb-${version}.tar.gz"; url = "https://files.dyne.org/tomb/Tomb-${version}.tar.gz";
sha256 = "11msj38fdmymiqcmwq1883kjqi5zr01ybdjj58rfjjrw4zw2w5y0"; sha256 = "1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -139,7 +139,7 @@ in
}; };
zfsUnstable = common { zfsUnstable = common {
# comment/uncomment if breaking kernel versions are known # comment/uncomment if breaking kernel versions are known
incompatibleKernelVersion = null; incompatibleKernelVersion = "4.11";
version = "0.7.0-rc3"; version = "0.7.0-rc3";

View File

@ -28,7 +28,7 @@ pythonPackages.buildPythonApplication rec {
on mobile phones or computers. on mobile phones or computers.
''; '';
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platform = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ edwtjo pSub aneeshusa ]; maintainers = with maintainers; [ edwtjo pSub aneeshusa ];
}; };
} }

View File

@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
''; '';
homepage = https://moxie.org/software/fakeroute/; homepage = https://moxie.org/software/fakeroute/;
license = licenses.bsd3; license = licenses.bsd3;
platform = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -2,11 +2,11 @@
, makeWrapper, perl, openssl, autoreconfHook, openssh }: , makeWrapper, perl, openssl, autoreconfHook, openssh }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mosh-1.2.6"; name = "mosh-1.3.0";
src = fetchurl { src = fetchurl {
url = "https://mosh.org/${name}.tar.gz"; url = "https://mosh.org/${name}.tar.gz";
sha256 = "118fhpm754wpklf1blnlq5xbvrxqml6rdfs3b07wg666zkxvg0ky"; sha256 = "0xikz40q873g9ihvz3x6bwkcb9hb8kcnp5wpcmb72pg5c7s143ij";
}; };
buildInputs = [ autoreconfHook protobuf ncurses zlib pkgconfig IOTty makeWrapper perl openssl ]; buildInputs = [ autoreconfHook protobuf ncurses zlib pkgconfig IOTty makeWrapper perl openssl ];

View File

@ -52,6 +52,6 @@ in stdenv.mkDerivation rec {
description = "Free, private and secure password management tool and e-wallet"; description = "Free, private and secure password management tool and e-wallet";
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ guillaumekoenig ]; maintainers = with maintainers; [ guillaumekoenig ];
platform = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "efivar-${version}"; name = "efivar-${version}";
version = "31"; version = "30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rhinstaller"; owner = "rhinstaller";
repo = "efivar"; repo = "efivar";
rev = version; rev = version;
sha256 = "0dhycikylm87jmds4ii5ygwq59g4sa5sv9mzryjzgqlgppw5arli"; sha256 = "1pghj019qr7qpqd9rxfhsr1hm3s0w1hd5cdndpl07vhys8hy4a8a";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -15,7 +15,7 @@ python2Packages.buildPythonApplication rec {
meta = { meta = {
homepage = https://pypi.python.org/pypi/grin; homepage = https://pypi.python.org/pypi/grin;
description = "A grep program configured the way I like it"; description = "A grep program configured the way I like it";
platform = stdenv.lib.platforms.all; platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.sjagoe ]; maintainers = [ stdenv.lib.maintainers.sjagoe ];
}; };
} }

View File

@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
# The homepage is www.thaiopensource.com, but it links to googlecode.com # The homepage is www.thaiopensource.com, but it links to googlecode.com
# for downloads and call it the "project site". # for downloads and call it the "project site".
homepage = http://www.thaiopensource.com/relaxng/jing.html; homepage = http://www.thaiopensource.com/relaxng/jing.html;
platforms = platforms.linux; platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ]; maintainers = [ maintainers.bjornfor ];
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper }: { stdenv, fetchFromGitHub, rustPlatform }:
with rustPlatform; with rustPlatform;

View File

@ -20,6 +20,7 @@ doNotDisplayTwice rec {
accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19 accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19
adobeReader = adobe-reader; adobeReader = adobe-reader;
aircrackng = aircrack-ng; # added 2016-01-14 aircrackng = aircrack-ng; # added 2016-01-14
ammonite-repl = ammonite; # added 2017-05-02
arduino_core = arduino-core; # added 2015-02-04 arduino_core = arduino-core; # added 2015-02-04
asciidocFull = asciidoc-full; # added 2014-06-22 asciidocFull = asciidoc-full; # added 2014-06-22
bar = lemonbar; # added 2015-01-16 bar = lemonbar; # added 2015-01-16

View File

@ -402,7 +402,7 @@ with pkgs;
amazon-glacier-cmd-interface = callPackage ../tools/backup/amazon-glacier-cmd-interface { }; amazon-glacier-cmd-interface = callPackage ../tools/backup/amazon-glacier-cmd-interface { };
ammonite-repl = callPackage ../development/tools/ammonite {}; ammonite = callPackage ../development/tools/ammonite {};
amtterm = callPackage ../tools/system/amtterm {}; amtterm = callPackage ../tools/system/amtterm {};
@ -1117,6 +1117,8 @@ with pkgs;
pythonPackages = python2Packages; pythonPackages = python2Packages;
}; };
bfg-repo-cleaner = gitAndTools.bfg-repo-cleaner;
bgs = callPackage ../tools/X11/bgs { }; bgs = callPackage ../tools/X11/bgs { };
biber = callPackage ../tools/typesetting/biber { biber = callPackage ../tools/typesetting/biber {
@ -4736,7 +4738,7 @@ with pkgs;
xsel = callPackage ../tools/misc/xsel { }; xsel = callPackage ../tools/misc/xsel { };
xsv = callPackages ../tools/text/xsv { }; xsv = callPackage ../tools/text/xsv { };
xtreemfs = callPackage ../tools/filesystems/xtreemfs {}; xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
@ -10610,6 +10612,15 @@ with pkgs;
packages = []; packages = [];
}; };
rstudioWrapper = callPackage ../development/r-modules/wrapper-rstudio.nix {
recommendedPackages = with rPackages; [
boot class cluster codetools foreign KernSmooth lattice MASS
Matrix mgcv nlme nnet rpart spatial survival
];
# Override this attribute to register additional libraries.
packages = [];
};
rPackages = callPackage ../development/r-modules { rPackages = callPackage ../development/r-modules {
overrides = (config.rPackageOverrides or (p: {})) pkgs; overrides = (config.rPackageOverrides or (p: {})) pkgs;
}; };

View File

@ -3695,22 +3695,7 @@ in {
}; };
}; };
certifi = buildPythonPackage rec { certifi = callPackage ../development/python-modules/certifi { };
name = "certifi-${version}";
version = "2017.1.23";
src = pkgs.fetchurl {
url = "mirror://pypi/c/certifi/${name}.tar.gz";
sha256 = "1klrzl3hgvcf2mjk00g0k3kk1p2z27vzwnxivwar4vhjmjvpz1w1";
};
meta = {
homepage = http://certifi.io/;
description = "Python package for providing Mozilla's CA Bundle";
license = licenses.isc;
maintainers = with maintainers; [ koral ];
};
};
characteristic = buildPythonPackage rec { characteristic = buildPythonPackage rec {
name = "characteristic-14.1.0"; name = "characteristic-14.1.0";
@ -5439,8 +5424,8 @@ in {
sha256 = "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k"; sha256 = "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k";
}; };
buildInputs = with self; [ pytest_xdist virtualenv process-tests ]; propagatedBuildInputs = with self; [ coverage ];
propagatedBuildInputs = with self; [ pytest coverage ]; buildInputs = with self; [ pytest covCore virtualenv process-tests helper ];
# xdist related tests fail with the following error # xdist related tests fail with the following error
# OSError: [Errno 13] Permission denied: 'py/_code' # OSError: [Errno 13] Permission denied: 'py/_code'
@ -16688,6 +16673,11 @@ in {
propagatedBuildInputs = with self; [ pbr Babel testrepository subunit testtools ]; propagatedBuildInputs = with self; [ pbr Babel testrepository subunit testtools ];
buildInputs = with self; [ coverage oslosphinx oslotest testscenarios six ddt ]; buildInputs = with self; [ coverage oslosphinx oslotest testscenarios six ddt ];
# Requires pbr < 2
# Or update to latest version but that requires updating the whole of openstack / oslo
meta.broken = true;
}; };
bandit = buildPythonPackage rec { bandit = buildPythonPackage rec {
@ -19858,20 +19848,7 @@ in {
}; };
}); });
pydot = buildPythonPackage rec { pydot = callPackage ../development/python-modules/pydot { };
name = "pydot-1.2.3";
disabled = isPy3k;
src = pkgs.fetchurl {
url = "mirror://pypi/p/pydot/${name}.tar.gz";
sha256 = "edb5d3f249f97fbd9c4bb16959e61bc32ecf40eee1a9f6d27abe8d01c0a73502";
};
propagatedBuildInputs = with self; [pyparsing pkgs.graphviz];
meta = {
homepage = https://github.com/erocarrera/pydot;
description = "Allows to easily create both directed and non directed graphs from Python";
};
};
pydot_ng = buildPythonPackage rec { pydot_ng = buildPythonPackage rec {
name = "pydot_ng-1.0.0"; name = "pydot_ng-1.0.0";
@ -21741,6 +21718,8 @@ in {
homepage = "http://github.com/diyan/pywinrm/"; homepage = "http://github.com/diyan/pywinrm/";
description = "Python library for Windows Remote Management"; description = "Python library for Windows Remote Management";
license = licenses.mit; license = licenses.mit;
# error: libgssapi_krb5.so: cannot open shared object file: No such file or directory
broken = true; #
}; };
}; };
@ -23319,11 +23298,15 @@ in {
url = "mirror://pypi/s/${pname}/${name}.tar.gz"; url = "mirror://pypi/s/${pname}/${name}.tar.gz";
sha256 = "14220f8f761c48ba1e2526f087195077cf54fad7098b382ce220422f0ff59b12"; sha256 = "14220f8f761c48ba1e2526f087195077cf54fad7098b382ce220422f0ff59b12";
}; };
buildInputs = with self; [ pytest_29 virtualenv pytestrunner pytest-virtualenv ]; buildInputs = with self; [ pytest virtualenv pytestrunner pytest-virtualenv ];
propagatedBuildInputs = with self; [ twisted pathlib2 ]; propagatedBuildInputs = with self; [ twisted pathlib2 ];
postPatch = '' postPatch = ''
sed -i '12,$d' tests/test_main.py sed -i '12,$d' tests/test_main.py
''; '';
# Couldn't get tests working
doCheck = false;
meta = { meta = {
description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit."; description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit.";
homepage = "https://github.com/rutsky/setuptools-trial"; homepage = "https://github.com/rutsky/setuptools-trial";
@ -23768,25 +23751,7 @@ in {
}; };
}; };
stevedore = buildPythonPackage rec { stevedore = callPackage ../development/python-modules/stevedore {};
name = "stevedore-1.7.0";
src = pkgs.fetchurl {
url = "mirror://pypi/s/stevedore/${name}.tar.gz";
sha256 = "149pjc0c3z6khjisn4yil3f94qjnzwafz093wc8rrzbw828qdkv8";
};
doCheck = false;
buildInputs = with self; [ oslosphinx ];
propagatedBuildInputs = with self; [ pbr six argparse ];
meta = {
description = "Manage dynamic plugins for Python applications";
homepage = "https://pypi.python.org/pypi/stevedore";
license = licenses.asl20;
};
};
Theano = self.TheanoWithoutCuda; Theano = self.TheanoWithoutCuda;
@ -26845,9 +26810,7 @@ EOF
}; };
}); });
magic-wormhole = callPackage ../development/python-modules/magic-wormhole { magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
pythonPackages = self;
};
wsgiproxy2 = buildPythonPackage rec { wsgiproxy2 = buildPythonPackage rec {
name = "WSGIProxy2-0.4.2"; name = "WSGIProxy2-0.4.2";
@ -31348,6 +31311,7 @@ EOF
rev = "8eab90908f2a3adcc414347566f4434636202344"; rev = "8eab90908f2a3adcc414347566f4434636202344";
sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf"; sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf";
}; };
disabled = isPy3k; # Judging from SyntaxError
buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ]; buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ];
}; };