diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml index 7a92f2e8a63..25766439759 100644 --- a/nixos/doc/manual/release-notes/rl-1709.xml +++ b/nixos/doc/manual/release-notes/rl-1709.xml @@ -17,7 +17,29 @@ has the following highlights: A consequence is that UIDs and GIDs are no longer reused. - + + + The module 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: + +{ services.xserver.xrandrHeads = [ + "HDMI-0" + { + output = "DVI-0"; + primary = true; + monitorConfig = '' + Option "Rotate" "right" + ''; + } + ]; +} + + This will set the DVI-0 output to be the primary head, + even though HDMI-0 is the first head in the list. + + The following new services were added since the last release: diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 672521166e4..7e523ac483c 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -534,6 +534,7 @@ ./services/security/munge.nix ./services/security/oauth2_proxy.nix ./services/security/physlock.nix + ./services/security/shibboleth-sp.nix ./services/security/sshguard.nix ./services/security/tor.nix ./services/security/torify.nix diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix index 533751734fa..244aae44596 100644 --- a/nixos/modules/services/continuous-integration/buildbot/master.nix +++ b/nixos/modules/services/continuous-integration/buildbot/master.nix @@ -12,7 +12,7 @@ let factory = util.BuildFactory() c = BuildmasterConfig = dict( workers = [${concatStringsSep "," cfg.workers}], - protocols = { 'pb': {'port': ${cfg.bpPort} } }, + protocols = { 'pb': {'port': ${toString cfg.bpPort} } }, title = '${escapeStr cfg.title}', titleURL = '${escapeStr cfg.titleUrl}', buildbotURL = '${escapeStr cfg.buildbotUrl}', @@ -62,7 +62,7 @@ in { extraConfig = mkOption { type = types.str; description = "Extra configuration to append to master.cfg"; - default = ""; + default = "c['buildbotNetUsageData'] = None"; }; masterCfg = mkOption { @@ -92,10 +92,7 @@ in { workers = mkOption { type = types.listOf types.str; description = "List of Workers."; - default = [ - "worker.Worker('example-worker', 'pass')" - ]; - example = [ "worker.LocalWorker('example-worker')" ]; + default = [ "worker.Worker('example-worker', 'pass')" ]; }; status = mkOption { @@ -135,9 +132,8 @@ in { }; bpPort = mkOption { - default = "9989"; - type = types.string; - example = "tcp:10000:interface=127.0.0.1"; + default = 9989; + type = types.int; description = "Port where the master will listen to Buildbot Worker."; }; @@ -179,14 +175,14 @@ in { package = mkOption { type = types.package; - default = pkgs.buildbot-ui; - defaultText = "pkgs.buildbot-ui"; + default = pkgs.buildbot-full; + defaultText = "pkgs.buildbot-full"; description = "Package to use for buildbot."; example = literalExample "pkgs.buildbot-full"; }; packages = mkOption { - default = [ ]; + default = with pkgs; [ python27Packages.twisted git ]; example = literalExample "[ pkgs.git ]"; type = types.listOf types.package; description = "Packages to add to PATH for the buildbot process."; @@ -212,29 +208,30 @@ in { systemd.services.buildbot-master = { description = "Buildbot Continuous Integration Server."; - after = [ "network.target" ]; + after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; 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 = { Type = "simple"; User = cfg.user; Group = cfg.group; 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 - ''; }; }; diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix index e4ee4dd861e..a97f571e89d 100644 --- a/nixos/modules/services/continuous-integration/buildbot/worker.nix +++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix @@ -74,7 +74,7 @@ in { }; packages = mkOption { - default = [ ]; + default = with pkgs; [ python27Packages.twisted git ]; example = literalExample "[ pkgs.git ]"; type = types.listOf types.package; description = "Packages to add to PATH for the buildbot process."; @@ -106,7 +106,8 @@ in { path = cfg.packages; 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} ''; @@ -115,7 +116,11 @@ in { User = cfg.user; Group = cfg.group; 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"; }; }; diff --git a/nixos/modules/services/security/shibboleth-sp.nix b/nixos/modules/services/security/shibboleth-sp.nix new file mode 100644 index 00000000000..07acf27f0f6 --- /dev/null +++ b/nixos/modules/services/security/shibboleth-sp.nix @@ -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"; + }; + }; + }; +} diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 262115b39e7..09fcdd0b72b 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -31,18 +31,51 @@ let pkgs.xorg.fontadobe75dpi ]; + xrandrOptions = { + output = mkOption { + type = types.str; + example = "DVI-0"; + description = '' + The output name of the monitor, as shown by + xrandr + 1 + 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 Monitor section + verbatim. + ''; + }; + }; # Just enumerate all heads without discarding XRandR output information. xrandrHeads = let - mkHead = num: output: { + mkHead = num: config: { name = "multihead${toString num}"; - inherit output; + inherit config; }; in imap mkHead cfg.xrandrHeads; xrandrDeviceSection = let 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 # subsequent options aren't so we need to apply indentation to @@ -62,9 +95,13 @@ let value = '' Section "Monitor" Identifier "${current.name}" + ${optionalString (current.config.primary) '' + Option "Primary" "true" + ''} ${optionalString (previous != []) '' Option "RightOf" "${(head previous).name}" ''} + ${current.config.monitorConfig} EndSection ''; } ++ previous; @@ -329,13 +366,39 @@ in xrandrHeads = mkOption { default = []; - example = [ "HDMI-0" "DVI-0" ]; - type = with types; listOf string; + example = [ + "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 = '' - Simple multiple monitor configuration, just specify a list of XRandR - outputs which will be mapped from left to right in the order of the + Multiple monitor configuration, just specify a list of XRandR + 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. + + The monitors will be mapped from left to right in the order of the list. + By default, the first monitor will be set as the primary monitor if + none of the elements contain an option that has set + to true. + + Only one monitor is allowed to be primary. + Be careful using this option with multiple graphic adapters or with drivers that have poor support for XRandR, unexpected things might happen with those. @@ -469,11 +532,18 @@ in nixpkgs.config.xorg = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { abiCompat = "1.18"; }; - assertions = - [ { assertion = config.security.polkit.enable; - message = "X11 requires Polkit to be enabled (‘security.polkit.enable = true’)."; - } - ]; + assertions = [ + { assertion = config.security.polkit.enable; + 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 = (optionals cfg.exportConfiguration diff --git a/nixos/tests/buildbot.nix b/nixos/tests/buildbot.nix index 13a162e6c6e..828846f17c8 100644 --- a/nixos/tests/buildbot.nix +++ b/nixos/tests/buildbot.nix @@ -4,18 +4,22 @@ import ./make-test.nix ({ pkgs, ... } : { name = "buildbot"; nodes = { - bbmaster = { config, pkgs, nodes, ... }: { + bbmaster = { config, pkgs, ... }: { services.buildbot-master = { enable = true; + package = pkgs.buildbot-full; + + # NOTE: use fake repo due to no internet in hydra ci factorySteps = [ - "steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')" - "steps.ShellCommand(command=['trial', 'pyflakes'])" + "steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')" + "steps.ShellCommand(command=['bash', 'fakerepo.sh'])" ]; 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, ... }: { @@ -23,24 +27,85 @@ import ./make-test.nix ({ pkgs, ... } : { enable = true; 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 = '' + #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"); - $bbworker->waitForUnit("network.target"); + # Test gitrepo + $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 - #$bbmaster->waitForUnit("buildbot-master.service"); - #$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die; - #$bbworker->waitForUnit("buildbot-worker.service"); - #$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die; + # Test start master and connect worker + $bbmaster->waitForUnit("buildbot-master.service"); + $bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/; + $bbworker->waitForUnit("network-online.target"); + $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; { - maintainers = [ nand0p ]; - }; + meta.maintainers = with pkgs.stdenv.lib.maintainers; [ nand0p ]; }) diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 3f2058af133..ca915b3e6d1 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -24,8 +24,8 @@ let src = fetchFromGitHub { owner = "neovim"; repo = "libvterm"; - rev = "11682793d84668057c5aedc3d7f8071bb54eaf2c"; - sha256 = "0pd90yx6xsagrqjipi26sxri1l4wdnx23ziad1zbxnqx9njxa7g3"; + rev = "5a748f97fbf27003e141002b58933a99f3addf8d"; + sha256 = "1fnd57f5n9h7z50a4vj7g96k6ndsdknjqsibgnxi9ndhyz244qbx"; }; buildInputs = [ perl ]; @@ -81,13 +81,13 @@ let neovim = stdenv.mkDerivation rec { name = "neovim-${version}"; - version = "0.1.7"; + version = "0.2.0"; src = fetchFromGitHub { owner = "neovim"; repo = "neovim"; rev = "v${version}"; - sha256 = "0bk0raxlb1xsqyw9pmqmxvcq5szqhimidrasnvzrci84gld8cwz4"; + sha256 = "0fhjkgjwqqmzbfn9wk10l2vq9v74zkriz5j12b1rx0gdwzlfybn8"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index 487d9c842b8..cf4ea9df544 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -4,17 +4,17 @@ with stdenv.lib; pythonPackages.buildPythonPackage rec { name = "neovim-remote-${version}"; - version = "v1.4.0"; + version = "v1.6.0"; disabled = !pythonPackages.isPy3k; src = fetchFromGitHub { owner = "mhinz"; repo = "neovim-remote"; rev = version; - sha256 = "0msvfh27f56xj5ki59ikzavxz863nal5scm57n43618m49qzg8iz"; + sha256 = "0x01zpmxi37jr7j2az2bd8902h7zhkpg6kpvc8xmll9f7703zz2l"; }; - propagatedBuildInputs = [ pythonPackages.neovim ]; + propagatedBuildInputs = with pythonPackages; [ neovim psutil ]; meta = { description = "A tool that helps controlling nvim processes from a terminal"; diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 26f2a3b6941..57f52f0e5fc 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "neovim-qt-${version}"; - version = "0.2.6"; + version = "0.2.7"; src = fetchFromGitHub { owner = "equalsraf"; repo = "neovim-qt"; rev = "v${version}"; - sha256 = "1wsxhy8fdayy4dsr2dxgh5k4jysybjlyzj134vk325v6cqz9bsgm"; + sha256 = "1bfni38l7cs0wbd9c6hgz2jfc8h3ixmg94izdvydm8j7amdz0cb6"; }; cmakeFlags = [ @@ -17,7 +17,13 @@ stdenv.mkDerivation rec { "-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; [ neovim qtbase libmsgpack diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix index f7ede1a8ea5..eab1228da1a 100644 --- a/pkgs/applications/editors/rstudio/default.nix +++ b/pkgs/applications/editors/rstudio/default.nix @@ -1,13 +1,5 @@ { stdenv, fetchurl, makeDesktopItem, cmake, boost163, zlib, openssl, -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 +R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc }: 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;"; }; - postInstall = let rProfile = - # RStudio seems to bypass the environment variables that the R - # 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} + postInstall = '' + wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin mkdir $out/share cp -r ${desktopItem}/share/applications $out/share mkdir $out/share/icons diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix index c4428598229..58e9cb0d1e9 100644 --- a/pkgs/applications/kde/kgpg.nix +++ b/pkgs/applications/kde/kgpg.nix @@ -1,7 +1,7 @@ { - kdeApp, lib, + kdeApp, lib, makeQtWrapper, 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, ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem }: @@ -10,10 +10,13 @@ kdeApp { name = "kgpg"; nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ]; 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 - kwidgetsaddons kwindowsystem + kwidgetsaddons kwindowsystem makeQtWrapper ]; + postInstall = '' + wrapQtProgram $out/bin/kgpg --suffix PATH : ${lib.makeBinPath [ gnupg1 ]} + ''; meta = { license = [ lib.licenses.gpl2 ]; maintainers = [ lib.maintainers.ttuegel ]; diff --git a/pkgs/applications/misc/urh/default.nix b/pkgs/applications/misc/urh/default.nix index e12b95754ed..9015bb9956b 100644 --- a/pkgs/applications/misc/urh/default.nix +++ b/pkgs/applications/misc/urh/default.nix @@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec { inherit (src.meta) homepage; description = "Universal Radio Hacker: investigate wireless protocols like a boss"; license = licenses.asl20; - platform = platforms.all; + platforms = platforms.all; maintainers = with maintainers; [ fpletz ]; }; } diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index 32d3a8e1540..e7b74562bd5 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -4,7 +4,7 @@ , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb , 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" , commandLineArgs ? "" @@ -43,11 +43,10 @@ let }; deps = [ - stdenv.cc.cc glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb alsaLib libXdamage libXtst libXrandr expat cups - dbus_libs gdk_pixbuf gcc + dbus_libs gdk_pixbuf gcc-unwrapped.lib systemd libexif liberation_ttf curl utillinux xdg_utils wget diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix index a4bbe15544a..a97b29e3d3a 100644 --- a/pkgs/applications/networking/dropbox/default.nix +++ b/pkgs/applications/networking/dropbox/default.nix @@ -23,11 +23,11 @@ let # NOTE: When updating, please also update in current stable, # as older versions stop working - version = "24.4.17"; + version = "25.4.28"; sha256 = { - "x86_64-linux" = "1wjr92vrbxyjbwyqf134h8fp1zi4d5wyyirii545wqadbgg9grh9"; - "i686-linux" = "1qsdidpy251irzkv0hx0ch0xnrwq6wq6b22g0n8b9d0a7xi08k7h"; + "x86_64-linux" = "0r0bdl37rkar3nijxslp493mic5qd20l125p1kghqbradvh57rl3"; + "i686-linux" = "1difq6ky1klvminbzjivvq6ap3l296gij0ghgyy1n4lca3jqq648"; }."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); arch = diff --git a/pkgs/applications/networking/feedreaders/rawdog/default.nix b/pkgs/applications/networking/feedreaders/rawdog/default.nix index 39543f256fa..4e22a95d4d8 100644 --- a/pkgs/applications/networking/feedreaders/rawdog/default.nix +++ b/pkgs/applications/networking/feedreaders/rawdog/default.nix @@ -12,12 +12,12 @@ python2Packages.buildPythonApplication rec { propagatedBuildInputs = with python2Packages; [ feedparser ]; namePrefix = ""; - + meta = with stdenv.lib; { homepage = "http://offog.org/code/rawdog/"; description = "RSS Aggregator Without Delusions Of Grandeur"; license = licenses.gpl2; - platform = platforms.unix; + platforms = platforms.unix; maintainers = with maintainers; [ nckx ]; }; } diff --git a/pkgs/applications/networking/irc/qweechat/default.nix b/pkgs/applications/networking/irc/qweechat/default.nix index 83d459a97fe..acf030222a1 100644 --- a/pkgs/applications/networking/irc/qweechat/default.nix +++ b/pkgs/applications/networking/irc/qweechat/default.nix @@ -26,6 +26,6 @@ python27Packages.buildPythonApplication rec { description = "Qt remote GUI for WeeChat"; license = licenses.gpl3; maintainers = with maintainers; [ ramkromberg ]; - platform = with platforms; linux; + platforms = with platforms; linux; }; } diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix index b13def07bb8..4fb77ccfe21 100644 --- a/pkgs/build-support/emacs/wrapper.nix +++ b/pkgs/build-support/emacs/wrapper.nix @@ -21,7 +21,7 @@ set which contains `emacsWithPackages`. For example, to override `emacsPackagesNg.emacsWithPackages`, ``` let customEmacsPackages = - emacsPackagesNg.override (super: self: { + emacsPackagesNg.overrideScope (super: self: { # use a custom version of emacs emacs = ...; # use the unstable MELPA version of magit diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index e39d39ab81b..599a2c70f13 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, composableDerivation, unzip, libjpeg, libtiff, zlib , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl , libpng, sqlite, libspatialite -, netcdf, hdf5 , curl -, netcdfSupport ? true - }: +, libiconv +, netcdfSupport ? true, netcdf, hdf5 , curl +}: with stdenv.lib; - + composableDerivation.composableDerivation {} (fixed: rec { version = "2.1.3"; name = "gdal-${version}"; @@ -18,7 +18,8 @@ composableDerivation.composableDerivation {} (fixed: rec { buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite libspatialite ] ++ (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" ]; diff --git a/pkgs/development/libraries/libidn2/fix-error-darwin.patch b/pkgs/development/libraries/libidn2/fix-error-darwin.patch index db3edd6e4a0..e2202abd947 100644 --- a/pkgs/development/libraries/libidn2/fix-error-darwin.patch +++ b/pkgs/development/libraries/libidn2/fix-error-darwin.patch @@ -10,17 +10,6 @@ index 6abbc72..804f0f2 100644 #include "gettext.h" #define _(String) dgettext (PACKAGE, String) #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[]) } diff --git a/pkgs/development/libraries/qtinstaller/default.nix b/pkgs/development/libraries/qtinstaller/default.nix index 29db95e6919..3379cbc9acf 100644 --- a/pkgs/development/libraries/qtinstaller/default.nix +++ b/pkgs/development/libraries/qtinstaller/default.nix @@ -2,7 +2,10 @@ stdenv.mkDerivation rec { name = "qtinstaller"; - buildInputs = [ qtdeclarative qttools qtbase qmakeHook ]; + + propagatedBuildInputs = [qtdeclarative qttools]; + nativeBuildInputs = [ qmakeHook ]; + version = "2.0.3"; src = fetchurl { 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" ]; + setOutputFlags = false; + enableParallelBuilding = true; + NIX_QT_SUBMODULE = true; + installPhase = '' mkdir -p $out/{bin,lib,share/qt-installer-framework} cp -a bin/{archivegen,binarycreator,devtool,installerbase,repogen} $out/bin diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix new file mode 100644 index 00000000000..8658c76df79 --- /dev/null +++ b/pkgs/development/python-modules/certifi/default.nix @@ -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 ]; + }; +} \ No newline at end of file diff --git a/pkgs/development/python-modules/line_profiler/default.nix b/pkgs/development/python-modules/line_profiler/default.nix index e6d6f1e1d7e..570bba2a8c4 100644 --- a/pkgs/development/python-modules/line_profiler/default.nix +++ b/pkgs/development/python-modules/line_profiler/default.nix @@ -3,6 +3,8 @@ , fetchPypi , cython , isPyPy +, ipython +, python }: buildPythonPackage rec { @@ -17,8 +19,14 @@ buildPythonPackage rec { buildInputs = [ cython ]; + propagatedBuildInputs = [ ipython ]; + disabled = isPyPy; + checkPhase = '' + ${python.interpreter} -m unittest discover -s tests + ''; + meta = { description = "Line-by-line profiler"; homepage = https://github.com/rkern/line_profiler; diff --git a/pkgs/development/python-modules/magic-wormhole/default.nix b/pkgs/development/python-modules/magic-wormhole/default.nix index 483e9aa3a3b..99da5e83a87 100644 --- a/pkgs/development/python-modules/magic-wormhole/default.nix +++ b/pkgs/development/python-modules/magic-wormhole/default.nix @@ -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 { - name = "magic-wormhole-${version}"; +buildPythonPackage rec { + pname = "magic-wormhole"; version = "0.8.1"; + name = "${pname}-${version}"; - src = fetchurl { - url = "mirror://pypi/m/magic-wormhole/${name}.tar.gz"; + src = fetchPypi { + inherit pname version; sha256 = "1yh5nbhh9z1am2pqnb5qqyq1zjl1m7z6jnkmvry2q14qwspw9had"; }; + checkInputs = [ mock ]; 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|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: @@ -24,10 +40,10 @@ pythonPackages.buildPythonApplication rec { export PATH="$PATH:$out/bin" export LANG="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"; homepage = "https://github.com/warner/magic-wormhole"; license = licenses.mit; diff --git a/pkgs/development/python-modules/pydot/default.nix b/pkgs/development/python-modules/pydot/default.nix new file mode 100644 index 00000000000..38123acd32e --- /dev/null +++ b/pkgs/development/python-modules/pydot/default.nix @@ -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 ]; + }; +} \ No newline at end of file diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix index 91bfa97cb97..1b47b7f3f7d 100644 --- a/pkgs/development/python-modules/pyroute2/default.nix +++ b/pkgs/development/python-modules/pyroute2/default.nix @@ -16,6 +16,6 @@ buildPythonPackage rec { homepage = https://github.com/svinota/pyroute2; license = licenses.asl20; maintainers = [maintainers.mic92]; - platform = platforms.linux; + platforms = platforms.linux; }; } diff --git a/pkgs/development/python-modules/stevedore/default.nix b/pkgs/development/python-modules/stevedore/default.nix new file mode 100644 index 00000000000..c6ce6c0d922 --- /dev/null +++ b/pkgs/development/python-modules/stevedore/default.nix @@ -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; + }; +} diff --git a/pkgs/development/r-modules/README.md b/pkgs/development/r-modules/README.md index fc046ed0627..477059cbb2c 100644 --- a/pkgs/development/r-modules/README.md +++ b/pkgs/development/r-modules/README.md @@ -55,28 +55,23 @@ available. ## RStudio -RStudio by default will not use the libraries installed like above. -You must override its R version with your custom R environment, and -set `useRPackages` to `true`, like below: +RStudio uses a standard set of packages and ignores any custom R +environments or installed packages you may have. To create a custom +environment, see `rstudioWrapper`, which functions similarly to +`rWrapper`: ```nix { packageOverrides = super: let self = super.pkgs; in { - rEnv = super.rWrapper.override { + rstudioEnv = super.rstudioWrapper.override { packages = with self.rPackages; [ - devtools + dplyr ggplot2 reshape2 - yaml - optparse ]; }; - rstudioEnv = super.rstudio.override { - R = rEnv; - useRPackages = true; - }; }; } ``` diff --git a/pkgs/development/r-modules/wrapper-rstudio.nix b/pkgs/development/r-modules/wrapper-rstudio.nix new file mode 100644 index 00000000000..dd9b0e9c538 --- /dev/null +++ b/pkgs/development/r-modules/wrapper-rstudio.nix @@ -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; + }; +} diff --git a/pkgs/development/r-modules/wrapper.nix b/pkgs/development/r-modules/wrapper.nix index 25c76506027..3b9a9b18450 100644 --- a/pkgs/development/r-modules/wrapper.nix +++ b/pkgs/development/r-modules/wrapper.nix @@ -1,19 +1,12 @@ { stdenv, R, makeWrapper, recommendedPackages, packages }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { name = R.name + "-wrapper"; buildInputs = [makeWrapper R] ++ recommendedPackages ++ packages; 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 = '' mkdir -p $out/bin cd ${R}/bin @@ -21,17 +14,6 @@ stdenv.mkDerivation rec { makeWrapper ${R}/bin/$exe $out/bin/$exe \ --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" 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 = { diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix index 4c64141fd4d..04916b1ef75 100644 --- a/pkgs/development/tools/ammonite/default.nix +++ b/pkgs/development/tools/ammonite/default.nix @@ -1,12 +1,13 @@ { stdenv, lib, fetchurl, makeWrapper, jre }: stdenv.mkDerivation rec { - name = "ammonite-repl-${version}"; - version = "0.8.3"; + name = "ammonite-${version}"; + version = "0.8.4"; + scalaVersion = "2.12"; src = fetchurl { - url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/2.12-${version}"; - sha256 = "0y4524y2w7aq300djcazb7ckkr3gqpim2grcgb237mxq3fdvb0r8"; + url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}"; + sha256 = "04kni08yd53w8dhkkgbydzkka4cnp31l2d8g23iinkn10ckmz5jm"; }; propagatedBuildInputs = [ jre ] ; diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix index ed24e917a1c..8c8caf06303 100644 --- a/pkgs/development/tools/build-managers/buildbot/default.nix +++ b/pkgs/development/tools/build-managers/buildbot/default.nix @@ -5,17 +5,19 @@ let buildInputs = [ makeWrapper ] ++ 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 { name = "${pname}-${version}"; pname = "buildbot"; - version = "0.9.4"; + version = "0.9.5"; src = pythonPackages.fetchPypi { inherit pname version; - sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; + sha256 = "11r553nmh87a9pm58wycimapk2pw9hnlc7hffn97xwbqprd8qh66"; }; buildInputs = with pythonPackages; [ @@ -49,6 +51,7 @@ let txaio autobahn pyjwt + distro # tls pyopenssl @@ -68,6 +71,14 @@ let postPatch = '' 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; }; diff --git a/pkgs/development/tools/build-managers/buildbot/plugins.nix b/pkgs/development/tools/build-managers/buildbot/plugins.nix index b22759af8fe..77e97ed7ac3 100644 --- a/pkgs/development/tools/build-managers/buildbot/plugins.nix +++ b/pkgs/development/tools/build-managers/buildbot/plugins.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchurl, pythonPackages }: +{ stdenv, pythonPackages }: let buildbot-pkg = pythonPackages.buildPythonPackage rec { name = "${pname}-${version}"; pname = "buildbot-pkg"; - version = "0.9.4"; + version = "0.9.5"; - src = fetchurl { - url = "mirror://pypi/b/${pname}/${name}.tar.gz"; - sha256 = "09a3yvs5hhf8syrkyydznmymgg86dpvgrwy9rb3bryq00wpjb3wn"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "1xpi4w0lc6z97pmmms85dvdspacbzlvs8zi3kv1r4rypk3znwmi1"; }; propagatedBuildInputs = with pythonPackages; [ setuptools ]; @@ -25,15 +25,14 @@ in { www = pythonPackages.buildPythonPackage rec { name = "${pname}-${version}"; pname = "buildbot_www"; - version = "0.9.4"; + version = "0.9.5"; # NOTE: wheel is used due to buildbot circular dependency format = "wheel"; src = pythonPackages.fetchPypi { inherit pname version format; - python = "py2"; - sha256 = "08m4h2pf6hgi8igh2j0qzfq49izc2z0qqj6ddxk0di5l306jx4im"; + sha256 = "1d7yjxka6slflm3wbdpq4sr1kagmgbqdv2zgx9bq77jvjh7ga0py"; }; meta = with stdenv.lib; { @@ -47,11 +46,11 @@ in { console-view = pythonPackages.buildPythonPackage rec { name = "${pname}-${version}"; pname = "buildbot-console-view"; - version = "0.9.4"; + version = "0.9.5"; - src = fetchurl { - url = "mirror://pypi/b/${pname}/${name}.tar.gz"; - sha256 = "1w2vv8iyzl7ak4161avp9n6mhh08adav2fl82bbm17a3064apl8n"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "1s6mvw955dsgk7hvb1xa32bbd7w2yma62py5s0vmi5shv8nwq3hb"; }; propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ]; @@ -67,11 +66,11 @@ in { waterfall-view = pythonPackages.buildPythonPackage rec { name = "${pname}-${version}"; pname = "buildbot-waterfall-view"; - version = "0.9.4"; + version = "0.9.5"; - src = fetchurl { - url = "mirror://pypi/b/${pname}/${name}.tar.gz"; - sha256 = "17xn6vrr0k2xabw6hr9sdyy0ry3llyjfmc79qrpgp5bsly2qv3jf"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "116846d987wp1bz78f0h4lypqcns5073vzhb4vsqbf08sppgr67k"; }; propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ]; diff --git a/pkgs/development/tools/build-managers/buildbot/worker.nix b/pkgs/development/tools/build-managers/buildbot/worker.nix index b9b4b86aa44..145221c6353 100644 --- a/pkgs/development/tools/build-managers/buildbot/worker.nix +++ b/pkgs/development/tools/build-managers/buildbot/worker.nix @@ -3,11 +3,11 @@ pythonPackages.buildPythonApplication (rec { name = "${pname}-${version}"; pname = "buildbot-worker"; - version = "0.9.4"; + version = "0.9.5"; src = pythonPackages.fetchPypi { inherit pname version; - sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj"; + sha256 = "1al7jam351sf781axj4kfhj70cc0g21zv81ynk410kdccjyxp2dy"; }; buildInputs = with pythonPackages; [ setuptoolsTrial mock ]; diff --git a/pkgs/os-specific/linux/mwprocapture/default.nix b/pkgs/os-specific/linux/mwprocapture/default.nix index f09e9543c48..bed40fd02e4 100644 --- a/pkgs/os-specific/linux/mwprocapture/default.nix +++ b/pkgs/os-specific/linux/mwprocapture/default.nix @@ -23,6 +23,8 @@ stdenv.mkDerivation rec { sha256 = "0i1y50mf559flhxgaxy2gdpa7dvpp12ix9xfzgxa61rc135x0im4"; }; + patches = [ ./linux_4_11_include_fix.patch ]; + preConfigure = '' cd ./src diff --git a/pkgs/os-specific/linux/mwprocapture/linux_4_11_include_fix.patch b/pkgs/os-specific/linux/mwprocapture/linux_4_11_include_fix.patch new file mode 100644 index 00000000000..726efd9f537 --- /dev/null +++ b/pkgs/os-specific/linux/mwprocapture/linux_4_11_include_fix.patch @@ -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 + #include + ++// 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 ++#include ++#endif ++ + unsigned int debug_level = 0; + + struct kmem_cache *g_spin_cache = NULL; diff --git a/pkgs/os-specific/linux/tomb/default.nix b/pkgs/os-specific/linux/tomb/default.nix index 5ed7ad5b959..141af86a337 100644 --- a/pkgs/os-specific/linux/tomb/default.nix +++ b/pkgs/os-specific/linux/tomb/default.nix @@ -1,15 +1,15 @@ { stdenv, fetchurl, zsh, pinentry, cryptsetup, gnupg1orig, makeWrapper }: let - version = "2.2"; + version = "2.4"; in stdenv.mkDerivation rec { name = "tomb-${version}"; src = fetchurl { - url = "https://files.dyne.org/tomb/tomb-${version}.tar.gz"; - sha256 = "11msj38fdmymiqcmwq1883kjqi5zr01ybdjj58rfjjrw4zw2w5y0"; + url = "https://files.dyne.org/tomb/Tomb-${version}.tar.gz"; + sha256 = "1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr"; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index 5c178f47b50..c70e96aa9fd 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -139,7 +139,7 @@ in }; zfsUnstable = common { # comment/uncomment if breaking kernel versions are known - incompatibleKernelVersion = null; + incompatibleKernelVersion = "4.11"; version = "0.7.0-rc3"; diff --git a/pkgs/servers/radicale/default.nix b/pkgs/servers/radicale/default.nix index a701ad5d833..e49e399194d 100644 --- a/pkgs/servers/radicale/default.nix +++ b/pkgs/servers/radicale/default.nix @@ -28,7 +28,7 @@ pythonPackages.buildPythonApplication rec { on mobile phones or computers. ''; license = licenses.gpl3Plus; - platform = platforms.all; + platforms = platforms.all; maintainers = with maintainers; [ edwtjo pSub aneeshusa ]; }; } diff --git a/pkgs/tools/networking/fakeroute/default.nix b/pkgs/tools/networking/fakeroute/default.nix index 1cb614e88c0..9737108e6ac 100644 --- a/pkgs/tools/networking/fakeroute/default.nix +++ b/pkgs/tools/networking/fakeroute/default.nix @@ -16,6 +16,6 @@ stdenv.mkDerivation rec { ''; homepage = https://moxie.org/software/fakeroute/; license = licenses.bsd3; - platform = platforms.linux; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix index 7ef00197118..5f3975a1df8 100644 --- a/pkgs/tools/networking/mosh/default.nix +++ b/pkgs/tools/networking/mosh/default.nix @@ -2,11 +2,11 @@ , makeWrapper, perl, openssl, autoreconfHook, openssh }: stdenv.mkDerivation rec { - name = "mosh-1.2.6"; + name = "mosh-1.3.0"; src = fetchurl { url = "https://mosh.org/${name}.tar.gz"; - sha256 = "118fhpm754wpklf1blnlq5xbvrxqml6rdfs3b07wg666zkxvg0ky"; + sha256 = "0xikz40q873g9ihvz3x6bwkcb9hb8kcnp5wpcmb72pg5c7s143ij"; }; buildInputs = [ autoreconfHook protobuf ncurses zlib pkgconfig IOTty makeWrapper perl openssl ]; diff --git a/pkgs/tools/security/encryptr/default.nix b/pkgs/tools/security/encryptr/default.nix index 95d0299e873..2cf07c63a84 100644 --- a/pkgs/tools/security/encryptr/default.nix +++ b/pkgs/tools/security/encryptr/default.nix @@ -52,6 +52,6 @@ in stdenv.mkDerivation rec { description = "Free, private and secure password management tool and e-wallet"; license = licenses.unfree; maintainers = with maintainers; [ guillaumekoenig ]; - platform = platforms.linux; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/system/efivar/default.nix b/pkgs/tools/system/efivar/default.nix index 744e34a9c60..6b062513483 100644 --- a/pkgs/tools/system/efivar/default.nix +++ b/pkgs/tools/system/efivar/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "efivar-${version}"; - version = "31"; + version = "30"; src = fetchFromGitHub { owner = "rhinstaller"; repo = "efivar"; rev = version; - sha256 = "0dhycikylm87jmds4ii5ygwq59g4sa5sv9mzryjzgqlgppw5arli"; + sha256 = "1pghj019qr7qpqd9rxfhsr1hm3s0w1hd5cdndpl07vhys8hy4a8a"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/tools/text/grin/default.nix b/pkgs/tools/text/grin/default.nix index 7c1df7f8819..56ea13de40e 100644 --- a/pkgs/tools/text/grin/default.nix +++ b/pkgs/tools/text/grin/default.nix @@ -15,7 +15,7 @@ python2Packages.buildPythonApplication rec { meta = { homepage = https://pypi.python.org/pypi/grin; 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 ]; }; } diff --git a/pkgs/tools/text/xml/jing-trang/default.nix b/pkgs/tools/text/xml/jing-trang/default.nix index 36ff976a6c1..4c4f6ed7e19 100644 --- a/pkgs/tools/text/xml/jing-trang/default.nix +++ b/pkgs/tools/text/xml/jing-trang/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { # The homepage is www.thaiopensource.com, but it links to googlecode.com # for downloads and call it the "project site". homepage = http://www.thaiopensource.com/relaxng/jing.html; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ maintainers.bjornfor ]; }; } diff --git a/pkgs/tools/text/xsv/default.nix b/pkgs/tools/text/xsv/default.nix index 388917e6805..9e15649133f 100644 --- a/pkgs/tools/text/xsv/default.nix +++ b/pkgs/tools/text/xsv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper }: +{ stdenv, fetchFromGitHub, rustPlatform }: with rustPlatform; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 94fedabd562..7fb271682d0 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -20,6 +20,7 @@ doNotDisplayTwice rec { accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19 adobeReader = adobe-reader; aircrackng = aircrack-ng; # added 2016-01-14 + ammonite-repl = ammonite; # added 2017-05-02 arduino_core = arduino-core; # added 2015-02-04 asciidocFull = asciidoc-full; # added 2014-06-22 bar = lemonbar; # added 2015-01-16 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 82c75fecfec..4b1b331a227 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -402,7 +402,7 @@ with pkgs; 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 {}; @@ -1117,6 +1117,8 @@ with pkgs; pythonPackages = python2Packages; }; + bfg-repo-cleaner = gitAndTools.bfg-repo-cleaner; + bgs = callPackage ../tools/X11/bgs { }; biber = callPackage ../tools/typesetting/biber { @@ -4736,7 +4738,7 @@ with pkgs; xsel = callPackage ../tools/misc/xsel { }; - xsv = callPackages ../tools/text/xsv { }; + xsv = callPackage ../tools/text/xsv { }; xtreemfs = callPackage ../tools/filesystems/xtreemfs {}; @@ -10610,6 +10612,15 @@ with pkgs; 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 { overrides = (config.rPackageOverrides or (p: {})) pkgs; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 18d8fa92c20..c1b4def764c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3695,22 +3695,7 @@ in { }; }; - certifi = buildPythonPackage rec { - 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 ]; - }; - }; + certifi = callPackage ../development/python-modules/certifi { }; characteristic = buildPythonPackage rec { name = "characteristic-14.1.0"; @@ -5439,8 +5424,8 @@ in { sha256 = "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k"; }; - buildInputs = with self; [ pytest_xdist virtualenv process-tests ]; - propagatedBuildInputs = with self; [ pytest coverage ]; + propagatedBuildInputs = with self; [ coverage ]; + buildInputs = with self; [ pytest covCore virtualenv process-tests helper ]; # xdist related tests fail with the following error # OSError: [Errno 13] Permission denied: 'py/_code' @@ -16688,6 +16673,11 @@ in { propagatedBuildInputs = with self; [ pbr Babel testrepository subunit testtools ]; 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 { @@ -19858,20 +19848,7 @@ in { }; }); - pydot = buildPythonPackage rec { - 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 = callPackage ../development/python-modules/pydot { }; pydot_ng = buildPythonPackage rec { name = "pydot_ng-1.0.0"; @@ -21741,6 +21718,8 @@ in { homepage = "http://github.com/diyan/pywinrm/"; description = "Python library for Windows Remote Management"; 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"; sha256 = "14220f8f761c48ba1e2526f087195077cf54fad7098b382ce220422f0ff59b12"; }; - buildInputs = with self; [ pytest_29 virtualenv pytestrunner pytest-virtualenv ]; + buildInputs = with self; [ pytest virtualenv pytestrunner pytest-virtualenv ]; propagatedBuildInputs = with self; [ twisted pathlib2 ]; postPatch = '' sed -i '12,$d' tests/test_main.py ''; + + # Couldn't get tests working + doCheck = false; + meta = { description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit."; homepage = "https://github.com/rutsky/setuptools-trial"; @@ -23768,25 +23751,7 @@ in { }; }; - stevedore = buildPythonPackage rec { - 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; - }; - }; + stevedore = callPackage ../development/python-modules/stevedore {}; Theano = self.TheanoWithoutCuda; @@ -26845,9 +26810,7 @@ EOF }; }); - magic-wormhole = callPackage ../development/python-modules/magic-wormhole { - pythonPackages = self; - }; + magic-wormhole = callPackage ../development/python-modules/magic-wormhole { }; wsgiproxy2 = buildPythonPackage rec { name = "WSGIProxy2-0.4.2"; @@ -31348,6 +31311,7 @@ EOF rev = "8eab90908f2a3adcc414347566f4434636202344"; sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf"; }; + disabled = isPy3k; # Judging from SyntaxError buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ]; };