diff options
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 {}; |