about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/mail/rmilter.nix4
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix14
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix6
-rw-r--r--pkgs/development/libraries/afflib/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-kernel/default.nix60
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix46
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix43
-rw-r--r--pkgs/development/python-modules/ansible/default.nix53
-rw-r--r--pkgs/development/python-modules/pvlib/default.nix26
-rw-r--r--pkgs/development/python-modules/pytest-ansible/default.nix5
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/ansible-lint/default.nix36
-rw-r--r--pkgs/stdenv/default.nix1
-rw-r--r--pkgs/stdenv/linux/default.nix1
-rw-r--r--pkgs/tools/admin/ansible/default.nix79
-rw-r--r--pkgs/tools/misc/kargo/default.nix4
-rw-r--r--pkgs/tools/networking/tinc/pre.nix10
-rw-r--r--pkgs/top-level/all-packages.nix10
-rw-r--r--pkgs/top-level/python-packages.nix8
19 files changed, 288 insertions, 126 deletions
diff --git a/nixos/modules/services/mail/rmilter.nix b/nixos/modules/services/mail/rmilter.nix
index 492c64583219..466365b6b305 100644
--- a/nixos/modules/services/mail/rmilter.nix
+++ b/nixos/modules/services/mail/rmilter.nix
@@ -8,7 +8,7 @@ let
   postfixCfg = config.services.postfix;
   cfg = config.services.rmilter;
 
-  inetSocket = addr: port: "inet:[${toString port}@${addr}]";
+  inetSocket = addr: port: "inet:${addr}:${toString port}";
   unixSocket = sock: "unix:${sock}";
 
   systemdSocket = if cfg.bindSocket.type == "unix" then cfg.bindSocket.path
@@ -97,7 +97,7 @@ in
 
       bindSocket.address = mkOption {
         type = types.str;
-        default = "::1";
+        default = "[::1]";
         example = "0.0.0.0";
         description = ''
           Inet address to listen on.
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 7c6b0ae81c88..498e3fdb23af 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -215,6 +215,19 @@ in {
           <literal>services.nextcloud.hostname</literal> here.
         '';
       };
+
+      overwriteProtocol = mkOption {
+        type = types.nullOr (types.enum [ "http" "https" ]);
+        default = null;
+        example = "https";
+
+        description = ''
+          Force Nextcloud to always use HTTPS i.e. for link generation. Nextcloud
+          uses the currently used protocol by default, but when behind a reverse-proxy,
+          it may use <literal>http</literal> for everything although Nextcloud
+          may be served via HTTPS.
+        '';
+      };
     };
 
     caching = {
@@ -279,6 +292,7 @@ in {
               ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
               'log_type' => 'syslog',
               'log_level' => '${builtins.toString cfg.logLevel}',
+              ${optionalString (cfg.config.overwriteProtocol != null) "'overwriteprotocol' => '${cfg.config.overwriteProtocol}',"}
             ];
           '';
           occInstallCmd = let
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 704cc78c1528..ace9dd5321be 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -163,6 +163,8 @@ in
 
           libsForQt56.phonon-backend-gstreamer
           libsForQt5.phonon-backend-gstreamer
+
+          xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
         ]
 
         ++ lib.optionals cfg.enableQt4Support [ pkgs.phonon-backend-gstreamer ]
@@ -175,9 +177,9 @@ in
         ++ lib.optional config.services.colord.enable colord-kde
         ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ];
 
-      environment.pathsToLink = [ 
+      environment.pathsToLink = [
         # FIXME: modules should link subdirs of `/share` rather than relying on this
-        "/share" 
+        "/share"
       ];
 
       environment.etc = singleton {
diff --git a/pkgs/development/libraries/afflib/default.nix b/pkgs/development/libraries/afflib/default.nix
index 5ccb7f95ee19..5170e384f77b 100644
--- a/pkgs/development/libraries/afflib/default.nix
+++ b/pkgs/development/libraries/afflib/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.7.17";
+  version = "3.7.18";
   name = "afflib-${version}";
 
   src = fetchFromGitHub {
     owner = "sshock";
     repo = "AFFLIBv3";
     rev = "v${version}";
-    sha256 = "11q20n6p5nvwmd9wwk0addlfxpxagf47ly89scn3jvc7k484ksan";
+    sha256 = "0963gw316p4nyxa9zxmgif29p8i99k898av2g78g28dxafqj3w8c";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/python-modules/ansible-kernel/default.nix b/pkgs/development/python-modules/ansible-kernel/default.nix
new file mode 100644
index 000000000000..34e360d2c1a4
--- /dev/null
+++ b/pkgs/development/python-modules/ansible-kernel/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, writeText
+, ipywidgets
+, six
+, docopt
+, tqdm
+, jupyter
+, psutil
+, pyyaml
+, ansible-runner
+, ansible
+, python
+}:
+
+let
+  kernelSpecFile = writeText "kernel.json" (builtins.toJSON {
+    argv = [ "${python.interpreter}" "-m" "ansible_kernel" "-f" "{connection_file}" ];
+    codemirror_mode = "yaml";
+    display_name = "Ansible";
+    language = "ansible";
+  });
+in
+buildPythonPackage rec {
+  pname = "ansible-kernel";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a59039a1724c0f4f4435316e2ad3383f2328ae61f190e74414a66cc8c4637636";
+  };
+
+  propagatedBuildInputs = [ ipywidgets six docopt tqdm jupyter psutil pyyaml ansible-runner ansible ];
+
+  postPatch = ''
+   # remove when merged
+   # https://github.com/ansible/ansible-jupyter-kernel/pull/82
+   touch LICENSE.md
+
+   # remove custom install
+   sed -i "s/cmdclass={'install': Installer},//" setup.py
+  '';
+
+  # tests hang with launched kernel
+  doCheck = false;
+
+  # install kernel manually
+  postInstall = ''
+    mkdir -p $out/share/jupyter/kernels/ansible/
+    ln -s ${kernelSpecFile} $out/share/jupyter/kernels/ansible/kernel.json
+  '';
+
+  meta = with lib; {
+    description = "An Ansible kernel for Jupyter";
+    homepage = https://github.com/ansible/ansible-jupyter-kernel;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
new file mode 100644
index 000000000000..ed5b35e8344d
--- /dev/null
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, ansible
+, pyyaml
+, six
+, nose
+, setuptools_scm
+, ruamel_yaml
+}:
+
+buildPythonPackage rec {
+  pname = "ansible-lint";
+  version = "4.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9430ea6e654ba4bf5b9c6921efc040f46cda9c4fd2896a99ff71d21037bcb123";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ pyyaml six ansible ruamel_yaml ];
+  checkInputs = [ nose ];
+
+  postPatch = ''
+    patchShebangs bin/ansible-lint
+    substituteInPlace setup.cfg \
+      --replace "setuptools_scm_git_archive>=1.0" ""
+  '';
+
+  # give a hint to setuptools_scm on package version
+  preBuild = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+  '';
+
+  checkPhase = ''
+    PATH=$out/bin:$PATH HOME=$(mktemp -d) nosetests test
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/willthames/ansible-lint";
+    description = "Best practices checker for Ansible";
+    license = licenses.mit;
+    maintainers = [ maintainers.sengaya ];
+  };
+}
diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
new file mode 100644
index 000000000000..fbe9589478c3
--- /dev/null
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, psutil
+, pexpect
+, python-daemon
+, pyyaml
+, six
+, ansible
+, pytest
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "ansible-runner";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9c2fc02bd22ac831138bfd2241e1664d7700bbb2c61f96b8b1f2d83ab4ea59a7";
+  };
+
+  checkInputs = [ pytest mock ];
+  propagatedBuildInputs = [
+    ansible
+    psutil
+    pexpect
+    python-daemon
+    pyyaml
+    six
+  ];
+
+  checkPhase = ''
+    HOME=$(mktemp -d) pytest --ignore test/unit/test_runner.py -k "not test_prepare"
+  '';
+
+  meta = with lib; {
+    description = "Helps when interfacing with Ansible";
+    homepage = https://github.com/ansible/ansible-runner;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
new file mode 100644
index 000000000000..1daff95d3a85
--- /dev/null
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchurl
+, buildPythonPackage
+, pycrypto
+, paramiko
+, jinja2
+, pyyaml
+, httplib2
+, boto
+, six
+, netaddr
+, dnspython
+, jmespath
+, dopy
+, windowsSupport ? false
+, pywinrm
+}:
+
+buildPythonPackage rec {
+  pname = "ansible";
+  version = "2.7.8";
+
+  src = fetchurl {
+    url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
+    sha256 = "11yx7vd0mp5gkq428af141dwnrwf8f9cp3f65243qbs9icjxnrrx";
+  };
+
+  prePatch = ''
+    sed -i "s,/usr/,$out," lib/ansible/constants.py
+  '';
+
+  postInstall = ''
+    for m in docs/man/man1/*; do
+      install -vD $m -t $out/share/man/man1
+    done
+  '';
+
+  propagatedBuildInputs = [
+    pycrypto paramiko jinja2 pyyaml httplib2 boto
+    six netaddr dnspython jmespath dopy
+  ] ++ lib.optional windowsSupport pywinrm;
+
+  # dificult to test
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = http://www.ansible.com;
+    description = "Radically simple IT automation";
+    license = [ licenses.gpl3 ] ;
+    maintainers = with maintainers; [ jgeerds joamaki costrouc ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/python-modules/pvlib/default.nix b/pkgs/development/python-modules/pvlib/default.nix
index 8142f0acc615..91af07b49be3 100644
--- a/pkgs/development/python-modules/pvlib/default.nix
+++ b/pkgs/development/python-modules/pvlib/default.nix
@@ -1,20 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, pandas, pytz, six, pytest }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, pandas, pytz, six
+, pytest, mock, pytest-mock }:
 
 buildPythonPackage rec {
   pname = "pvlib";
   version = "0.6.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "56e70747add2e50846dd8bbef9a4735e82c1224ce630d1db7590b96bd59dd3f7";
+  # Use GitHub because PyPI release tarball doesn't contain the tests. See:
+  # https://github.com/pvlib/pvlib-python/issues/473
+  src = fetchFromGitHub{
+    owner = "pvlib";
+    repo = "pvlib-python";
+    rev = "v${version}";
+    sha256 = "17h7vz9s829qxnl4byr8458gzgiismrbrn5gl0klhfhwvc5kkdfh";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest mock pytest-mock ];
   propagatedBuildInputs = [ numpy pandas pytz six ];
 
-  # Currently, the PyPI tarball doesn't contain the tests. When that has been
-  # fixed, enable testing. See: https://github.com/pvlib/pvlib-python/issues/473
-  doCheck = false;
+  # Skip a few tests that try to access some URLs
+  checkPhase = ''
+    runHook preCheck
+    pushd pvlib/test
+    pytest . -k "not test_read_srml_dt_index and not test_read_srml_month_from_solardata"
+    popd
+    runHook postCheck
+  '';
 
   meta = with stdenv.lib; {
     homepage = http://pvlib-python.readthedocs.io;
diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix
index acdd0e36cdbf..77ea742387e8 100644
--- a/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -8,9 +8,8 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.2";
   pname = "pytest-ansible";
-  disabled = isPy3k;
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
@@ -30,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   checkPhase = ''
-    pytest tests
+    pytest
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 53f46e372ef6..604e44cf7b14 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.17";
+  version = "8.18";
   name = "checkstyle-${version}";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "10i285kzbma9pny0vlm8wglxsbqliqrhig6n9rj2nv13x5i53ifj";
+    sha256 = "1l9dqihl73yi3k27j2a1k87gqzs64z0mpwxj6w68ipvxf4rg63x5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/ansible-lint/default.nix b/pkgs/development/tools/ansible-lint/default.nix
deleted file mode 100644
index 12eee5f80862..000000000000
--- a/pkgs/development/tools/ansible-lint/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchFromGitHub, pythonPackages, ansible }:
-
-pythonPackages.buildPythonPackage rec {
-  pname = "ansible-lint";
-  version = "3.5.1";
-
-  src = fetchFromGitHub {
-    owner = "willthames";
-    repo = "ansible-lint";
-    rev = "v${version}";
-    sha256 = "09qixiaqhm6dbl74s1rwxbsg31nr6jjsvr4fxfnxl9ccbxcrpzn2";
-  };
-
-  propagatedBuildInputs = with pythonPackages; [ pyyaml six ] ++ [ ansible ];
-
-  checkInputs = [ pythonPackages.nose ];
-
-  postPatch = ''
-    patchShebangs bin/ansible-lint
-  '';
-
-   preBuild = ''
-     export HOME="$TMP"
-   '';
-
-  checkPhase = ''
-    nosetests test
-  '';
-
-  meta = {
-    homepage = "https://github.com/willthames/ansible-lint";
-    description = "Best practices checker for Ansible";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.sengaya ];
-  };
-}
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index c0bbe24e5219..4313a617f784 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -43,6 +43,7 @@ in
     "x86_64-linux" = stagesLinux;
     "armv5tel-linux" = stagesLinux;
     "armv6l-linux" = stagesLinux;
+    "armv7a-linux" = stagesLinux;
     "armv7l-linux" = stagesLinux;
     "aarch64-linux" = stagesLinux;
     "mipsel-linux" = stagesLinux;
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 12bf781de709..457e1671e260 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -13,6 +13,7 @@
       "x86_64-linux" = import ./bootstrap-files/x86_64.nix;
       "armv5tel-linux" = import ./bootstrap-files/armv5tel.nix;
       "armv6l-linux" = import ./bootstrap-files/armv6l.nix;
+      "armv7a-linux" = import ./bootstrap-files/armv7l.nix;
       "armv7l-linux" = import ./bootstrap-files/armv7l.nix;
       "aarch64-linux" = import ./bootstrap-files/aarch64.nix;
       "mipsel-linux" = import ./bootstrap-files/loongson2f.nix;
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
index 58798a92b159..f9cc3fb4ebcb 100644
--- a/pkgs/tools/admin/ansible/default.nix
+++ b/pkgs/tools/admin/ansible/default.nix
@@ -1,72 +1,27 @@
-{ stdenv, fetchurl, python2
-, windowsSupport ? false
-}:
+{ python3Packages, fetchurl }:
 
-let
-  generic = { version, sha256, py ? python2 }: py.pkgs.buildPythonPackage rec {
-    pname = "ansible";
-    inherit version;
+{
+  ansible = with python3Packages; toPythonApplication ansible;
+
+  ansible_2_7 = with python3Packages; toPythonApplication ansible;
 
-    outputs = [ "out" "man" ];
+  ansible_2_6 = with python3Packages; toPythonApplication (ansible.overridePythonAttrs(old: rec {
+    pname = "ansible";
+    version = "2.6.9";
 
     src = fetchurl {
       url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      inherit sha256;
+      sha256 = "12mysvdavkypgmyms1wjq2974lk97w893k23i6khigxrjj6r85z1";
     };
+  }));
 
-    prePatch = ''
-      sed -i "s,/usr/,$out," lib/ansible/constants.py
-    '';
-
-    postInstall = ''
-      wrapPythonProgramsIn "$out/bin" "$out $PYTHONPATH"
-
-      for m in docs/man/man1/*; do
-        install -vD $m -t $man/share/man/man1
-      done
-    '';
-
-    doCheck = false;
-    dontStrip = true;
-    dontPatchELF = true;
-    dontPatchShebangs = false;
-
-    propagatedBuildInputs = with py.pkgs; [
-      pycrypto paramiko jinja2 pyyaml httplib2 boto six netaddr dnspython jmespath dopy
-    ] ++ stdenv.lib.optional windowsSupport pywinrm;
+  ansible_2_5 = with python3Packages; toPythonApplication (ansible.overridePythonAttrs(old: rec {
+    pname = "ansible";
+    version = "2.5.14";
 
-    meta = with stdenv.lib; {
-      homepage = http://www.ansible.com;
-      description = "A simple automation tool";
-      license = with licenses; [ gpl3 ] ;
-      maintainers = with maintainers; [ jgeerds joamaki ];
-      platforms = with platforms; linux ++ darwin;
+    src = fetchurl {
+      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
+      sha256 = "0sd04h2k5qv4m48dn76jkjlwlqfdk15hzyagj9i71r8brvmwhnk9";
     };
-  };
-
-in rec {
-  # We will carry all the supported versions
-
-  ansible_2_4 = generic {
-    version = "2.4.4.0";
-    sha256  = "0n1k6h0h6av74nw8vq98fmh6q4pq6brpwmx45282vh3bkdmpa0ib";
-  };
-
-  ansible_2_5 = generic {
-    version = "2.5.11";
-    sha256  = "07rhgkl3a2ba59rqh9pyz1p661gc389shlwa2sw1m6wwifg4lm24";
-  };
-
-  ansible_2_6 = generic {
-    version = "2.6.7";
-    sha256  = "10pakw9k9wd3cy1qk3ah2253ph7c7h3qzpal4k0s5lschzgy2fh0";
-  };
-
-  ansible_2_7 = generic {
-    version = "2.7.6";
-    sha256  = "0f7b2ghm34ql8yv90wr0ngd6w7wyvnlcxpc3snkj86kcjsnmx1bd";
-  };
-
-  ansible2 = ansible_2_7;
-  ansible  = ansible2;
+  }));
 }
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index cb2109e195ea..65008cc95767 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python2Packages, ansible2 }:
+{ stdenv, fetchurl, python2Packages }:
 
 python2Packages.buildPythonApplication rec {
   version = "0.4.6";
@@ -12,7 +12,7 @@ python2Packages.buildPythonApplication rec {
   doCheck = false;
 
   propagatedBuildInputs = with python2Packages; [
-    ansible2
+    ansible
     boto
     cffi
     cryptography
diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix
index 4c3c428d3f01..df9eb9bdad25 100644
--- a/pkgs/tools/networking/tinc/pre.nix
+++ b/pkgs/tools/networking/tinc/pre.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }:
+{ stdenv, fetchgit, fetchpatch, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }:
 
 stdenv.mkDerivation rec {
   name = "tinc-${version}";
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" "info" ];
 
+  patches = [
+    (fetchpatch {
+      name = "tinc-openssl-1.0.2r.patch";
+      url = "http://git.tinc-vpn.org/git/browse?p=tinc;a=patch;h=2b0aeec02d64bb4724da9ff1dbc19b7d35d7c904";
+      sha256 = "0kidzlmgl0cin4g54ygcxa0jbq9vwlk3dyq5f65nkjd8yvayfzi8";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook texinfo ];
   buildInputs = [ ncurses readline zlib lzo openssl ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 04b85b2e12a4..c666e9c8180f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8308,15 +8308,13 @@ in
 
   augeas = callPackage ../tools/system/augeas { };
 
-  inherit (callPackages ../tools/admin/ansible {})
-    ansible_2_4
+  inherit (callPackage ../tools/admin/ansible { })
+    ansible
     ansible_2_5
     ansible_2_6
-    ansible_2_7
-    ansible2
-    ansible;
+    ansible_2_7;
 
-  ansible-lint = callPackage ../development/tools/ansible-lint {};
+  ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 0dba71dc1271..0fbe97886ae4 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -922,6 +922,14 @@ in {
 
   allpairspy = callPackage ../development/python-modules/allpairspy { };
 
+  ansible = callPackage ../development/python-modules/ansible { };
+
+  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+
+  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+
+  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+
   ansicolors = callPackage ../development/python-modules/ansicolors {};
 
   aniso8601 = callPackage ../development/python-modules/aniso8601 {};