diff options
51 files changed, 920 insertions, 95 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3dd5fa6816bd..87c144f0d42d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1319,6 +1319,11 @@ github = "ellis"; name = "Ellis Whitehead"; }; + elseym = { + email = "elseym@me.com"; + github = "elseym"; + name = "Simon Waibl"; + }; elvishjerricco = { email = "elvishjerricco@gmail.com"; github = "ElvishJerricco"; @@ -4922,4 +4927,9 @@ github = "zzamboni"; name = "Diego Zamboni"; }; + mredaelli = { + email = "massimo@typish.io"; + github = "mredaelli"; + name = "Massimo Redaelli"; + }; } diff --git a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix index 2625f7661b78..c1028a0ad7e9 100644 --- a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix +++ b/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix @@ -7,7 +7,7 @@ let nodes = import networkExpr; in with import ../../../../lib/testing.nix { inherit system; - pkgs = import ../.. { inherit system config; }; + pkgs = import ../../../../.. { inherit system config; }; }; (makeTest { inherit nodes; testScript = ""; }).driver diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 082b2732cc58..8ac12079548d 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -336,6 +336,7 @@ solr = 309; alerta = 310; minetest = 311; + rss2email = 312; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -632,6 +633,7 @@ solr = 309; alerta = 310; minetest = 311; + rss2email = 312; # When adding a gid, make sure it doesn't match an existing # uid. Users and groups with the same name should have equal diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index ae5084ca2a2a..505cb0336db2 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -330,6 +330,7 @@ ./services/mail/postgrey.nix ./services/mail/spamassassin.nix ./services/mail/rspamd.nix + ./services/mail/rss2email.nix ./services/mail/rmilter.nix ./services/mail/nullmailer.nix ./services/misc/airsonic.nix diff --git a/nixos/modules/services/mail/rss2email.nix b/nixos/modules/services/mail/rss2email.nix new file mode 100644 index 000000000000..5f3b2877008f --- /dev/null +++ b/nixos/modules/services/mail/rss2email.nix @@ -0,0 +1,136 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.rss2email; +in { + + ###### interface + + options = { + + services.rss2email = { + + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable rss2email."; + }; + + to = mkOption { + type = types.str; + description = "Mail address to which to send emails"; + }; + + interval = mkOption { + type = types.str; + default = "12h"; + description = "How often to check the feeds, in systemd interval format"; + }; + + config = mkOption { + type = with types; attrsOf (either str (either int bool)); + default = {}; + description = '' + The configuration to give rss2email. + + Default will use system-wide <literal>sendmail</literal> to send the + email. This is rss2email's default when running + <literal>r2e new</literal>. + + This set contains key-value associations that will be set in the + <literal>[DEFAULT]</literal> block along with the + <literal>to</literal> parameter. + + See + <literal>https://github.com/rss2email/rss2email/blob/master/r2e.1</literal> + for more information on which parameters are accepted. + ''; + }; + + feeds = mkOption { + description = "The feeds to watch."; + type = types.attrsOf (types.submodule { + options = { + url = mkOption { + type = types.str; + description = "The URL at which to fetch the feed."; + }; + + to = mkOption { + type = with types; nullOr str; + default = null; + description = '' + Email address to which to send feed items. + + If <literal>null</literal>, this will not be set in the + configuration file, and rss2email will make it default to + <literal>rss2email.to</literal>. + ''; + }; + }; + }); + }; + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + users.groups = { + rss2email.gid = config.ids.gids.rss2email; + }; + + users.users = { + rss2email = { + description = "rss2email user"; + uid = config.ids.uids.rss2email; + group = "rss2email"; + }; + }; + + services.rss2email.config.to = cfg.to; + + systemd.services.rss2email = let + conf = pkgs.writeText "rss2email.cfg" (lib.generators.toINI {} ({ + DEFAULT = cfg.config; + } // lib.mapAttrs' (name: feed: nameValuePair "feed.${name}" ( + { inherit (feed) url; } // + lib.optionalAttrs (feed.to != null) { inherit (feed) to; } + )) cfg.feeds + )); + in + { + preStart = '' + mkdir -p /var/rss2email + chmod 700 /var/rss2email + + cp ${conf} /var/rss2email/conf.cfg + if [ ! -f /var/rss2email/db.json ]; then + echo '{"version":2,"feeds":[]}' > /var/rss2email/db.json + fi + + chown -R rss2email:rss2email /var/rss2email + ''; + path = [ pkgs.system-sendmail ]; + serviceConfig = { + ExecStart = + "${pkgs.rss2email}/bin/r2e -c /var/rss2email/conf.cfg -d /var/rss2email/db.json run"; + User = "rss2email"; + PermissionsStartOnly = "true"; + }; + }; + + systemd.timers.rss2email = { + partOf = [ "rss2email.service" ]; + wantedBy = [ "timers.target" ]; + timerConfig.OnBootSec = "0"; + timerConfig.OnUnitActiveSec = cfg.interval; + }; + }; + + meta.maintainers = with lib.maintainers; [ ekleog ]; +} diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix index 8a44cf7fd8f6..43b4a41eaf33 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix @@ -5,10 +5,18 @@ with lib; let cfg = config.services.prometheus.alertmanager; mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration); - alertmanagerYml = - if cfg.configText != null then - pkgs.writeText "alertmanager.yml" cfg.configText - else mkConfigFile; + + checkedConfig = file: pkgs.runCommand "checked-config" { buildInputs = [ cfg.package ]; } '' + ln -s ${file} $out + amtool check-config $out + ''; + + alertmanagerYml = let + yml = if cfg.configText != null then + pkgs.writeText "alertmanager.yml" cfg.configText + else mkConfigFile; + in checkedConfig yml; + cmdlineArgs = cfg.extraFlags ++ [ "--config.file ${alertmanagerYml}" "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}" @@ -23,6 +31,15 @@ in { services.prometheus.alertmanager = { enable = mkEnableOption "Prometheus Alertmanager"; + package = mkOption { + type = types.package; + default = pkgs.prometheus-alertmanager; + defaultText = "pkgs.alertmanager"; + description = '' + Package that should be used for alertmanager. + ''; + }; + user = mkOption { type = types.str; default = "nobody"; @@ -40,8 +57,8 @@ in { }; configuration = mkOption { - type = types.attrs; - default = {}; + type = types.nullOr types.attrs; + default = null; description = '' Alertmanager configuration as nix attribute set. ''; @@ -119,26 +136,34 @@ in { }; }; + config = mkMerge [ + (mkIf cfg.enable { + assertions = singleton { + assertion = cfg.configuration != null || cfg.configText != null; + message = "Can not enable alertmanager without a configuration. " + + "Set either the `configuration` or `configText` attribute."; + }; + }) + (mkIf cfg.enable { + networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port; + + systemd.services.alertmanager = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + script = '' + ${cfg.package}/bin/alertmanager \ + ${concatStringsSep " \\\n " cmdlineArgs} + ''; - config = mkIf cfg.enable { - networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port; - - systemd.services.alertmanager = { - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - script = '' - ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \ - ${concatStringsSep " \\\n " cmdlineArgs} - ''; - - serviceConfig = { - User = cfg.user; - Group = cfg.group; - Restart = "always"; - PrivateTmp = true; - WorkingDirectory = "/tmp"; - ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + Restart = "always"; + PrivateTmp = true; + WorkingDirectory = "/tmp"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; }; - }; - }; + }) + ]; } diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 0d5a747b5c56..7bf261b58d66 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -179,6 +179,7 @@ in radicale = handleTest ./radicale.nix {}; redmine = handleTest ./redmine.nix {}; rspamd = handleTest ./rspamd.nix {}; + rss2email = handleTest ./rss2email.nix {}; rsyslogd = handleTest ./rsyslogd.nix {}; runInMachine = handleTest ./run-in-machine.nix {}; rxe = handleTest ./rxe.nix {}; diff --git a/nixos/tests/common/webroot/news-rss.xml b/nixos/tests/common/webroot/news-rss.xml new file mode 100644 index 000000000000..28e6fa7da1f3 --- /dev/null +++ b/nixos/tests/common/webroot/news-rss.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" version="2.0"><channel><title>NixOS News</title><link>https://nixos.org</link><description>News for NixOS, the purely functional Linux distribution.</description><image><title>NixOS</title><url>https://nixos.org/logo/nixos-logo-only-hires.png</url><link>https://nixos.org/</link></image><item><title> + NixOS 18.09 released + </title><link>https://nixos.org/news.html</link><description> + <a href="https://github.com/NixOS/nixos-artwork/blob/master/releases/18.09-jellyfish/jellyfish.png"> + <img class="inline" src="logo/nixos-logo-18.09-jellyfish-lores.png" alt="18.09 Jellyfish logo" with="100" height="87"/> + </a> + NixOS 18.09 “Jellyfish” has been released, the tenth stable release branch. + See the <a href="/nixos/manual/release-notes.html#sec-release-18.09">release notes</a> + for details. You can get NixOS 18.09 ISOs and VirtualBox appliances + from the <a href="nixos/download.html">download page</a>. + For information on how to upgrade from older release branches + to 18.09, check out the + <a href="/nixos/manual/index.html#sec-upgrading">manual section on upgrading</a>. + </description><pubDate>Sat Oct 06 2018 00:00:00 GMT</pubDate></item></channel></rss> diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix index 87a6510f40fd..f1b20a33d71e 100644 --- a/nixos/tests/prometheus.nix +++ b/nixos/tests/prometheus.nix @@ -13,6 +13,25 @@ import ./make-test.nix { }]; }]; rules = [ ''testrule = count(up{job="prometheus"})'' ]; + + # a very simple version of the alertmanager configuration just to see if + # configuration checks & service startup are working + alertmanager = { + enable = true; + listenAddress = "[::1]"; + port = 9093; + configuration = { + route.receiver = "webhook"; + receivers = [ + { + name = "webhook"; + webhook_configs = [ + { url = "http://localhost"; } + ]; + } + ]; + }; + }; }; }; }; @@ -22,5 +41,8 @@ import ./make-test.nix { $one->waitForUnit("prometheus.service"); $one->waitForOpenPort(9090); $one->succeed("curl -s http://127.0.0.1:9090/metrics"); + $one->waitForUnit("alertmanager.service"); + $one->waitForOpenPort("9093"); + $one->succeed("curl -f -s http://localhost:9093/"); ''; } diff --git a/nixos/tests/rss2email.nix b/nixos/tests/rss2email.nix new file mode 100644 index 000000000000..492d47da9f56 --- /dev/null +++ b/nixos/tests/rss2email.nix @@ -0,0 +1,66 @@ +import ./make-test.nix { + name = "opensmtpd"; + + nodes = { + server = { pkgs, ... }: { + imports = [ common/user-account.nix ]; + services.nginx = { + enable = true; + virtualHosts."127.0.0.1".root = ./common/webroot; + }; + services.rss2email = { + enable = true; + to = "alice@localhost"; + interval = "1"; + config.from = "test@example.org"; + feeds = { + nixos = { url = "http://127.0.0.1/news-rss.xml"; }; + }; + }; + services.opensmtpd = { + enable = true; + extraServerArgs = [ "-v" ]; + serverConfiguration = '' + listen on 127.0.0.1 + action dovecot_deliver mda \ + "${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}" + match from any for local action dovecot_deliver + ''; + }; + services.dovecot2 = { + enable = true; + enableImap = true; + mailLocation = "maildir:~/mail"; + protocols = [ "imap" ]; + }; + environment.systemPackages = let + checkMailLanded = pkgs.writeScriptBin "check-mail-landed" '' + #!${pkgs.python3.interpreter} + import imaplib + + with imaplib.IMAP4('127.0.0.1', 143) as imap: + imap.login('alice', 'foobar') + imap.select() + status, refs = imap.search(None, 'ALL') + print("=====> Result of search for all:", status, refs) + assert status == 'OK' + assert len(refs) > 0 + status, msg = imap.fetch(refs[0], 'BODY[TEXT]') + assert status == 'OK' + ''; + in [ pkgs.opensmtpd checkMailLanded ]; + }; + }; + + testScript = '' + startAll; + + $server->waitForUnit("network-online.target"); + $server->waitForUnit("opensmtpd"); + $server->waitForUnit("dovecot2"); + $server->waitForUnit("nginx"); + $server->waitForUnit("rss2email"); + + $server->waitUntilSucceeds('check-mail-landed >&2'); + ''; +} diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix index 051e7139a23d..0e60c2bfa16e 100644 --- a/pkgs/applications/misc/nnn/default.nix +++ b/pkgs/applications/misc/nnn/default.nix @@ -4,13 +4,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "nnn-${version}"; - version = "2.0"; + version = "2.1"; src = fetchFromGitHub { owner = "jarun"; repo = "nnn"; rev = "v${version}"; - sha256 = "16c6fimr1ayb2x3mvli70x2va3nz106jdfyqn53bhss7zjqvszxl"; + sha256 = "1vkrhsdwgacln335rjywdf7nj7fg1x55szmm8xrvwda8y2qjqhc4"; }; configFile = optionalString (conf!=null) (builtins.toFile "nnn.h" conf); diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix index 4152c2772e10..4d17cc8bddd1 100644 --- a/pkgs/applications/networking/feedreaders/rss2email/default.nix +++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix @@ -1,11 +1,13 @@ -{ pythonPackages, fetchurl, lib }: +{ pythonPackages, fetchurl, lib, nixosTests }: with pythonPackages; buildPythonApplication rec { name = "${pname}-${version}"; pname = "rss2email"; - version = "3.9"; + version = "3.9"; # TODO: on next bump, the manpage will be updated. + # Update nixos/modules/services/mail/rss2email.nix to point to it instead of + # to the online r2e.1 propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ]; @@ -44,4 +46,7 @@ buildPythonApplication rec { license = licenses.gpl2; maintainers = with maintainers; [ jb55 Profpatsch ]; }; + passthru.tests = { + smoke-test = nixosTests.rss2email; + }; } diff --git a/pkgs/applications/video/pyca/default.nix b/pkgs/applications/video/pyca/default.nix new file mode 100644 index 000000000000..af9ef4c1cd50 --- /dev/null +++ b/pkgs/applications/video/pyca/default.nix @@ -0,0 +1,30 @@ +{ stdenv, buildPythonApplication, fetchFromGitHub, pycurl, dateutil, configobj, sqlalchemy, sdnotify, flask }: + +buildPythonApplication rec { + pname = "pyca"; + version = "2.1"; + + src = fetchFromGitHub { + owner = "opencast"; + repo = "pyCA"; + rev = "v${version}"; + sha256 = "0cvkmdlcax9da9iw4ls73vw0pxvm8wvchab5gwdy9w9ibqdpcmwh"; + }; + + propagatedBuildInputs = [ + pycurl + dateutil + configobj + sqlalchemy + sdnotify + flask + ]; + + meta = with stdenv.lib; { + description = "A fully functional Opencast capture agent written in Python"; + homepage = https://github.com/opencast/pyCA; + license = licenses.lgpl3; + maintainers = with maintainers; [ pmiddend ]; + }; +} + diff --git a/pkgs/data/fonts/inter-ui/default.nix b/pkgs/data/fonts/inter-ui/default.nix index 87eaa9383a7a..dcce90aaef5f 100644 --- a/pkgs/data/fonts/inter-ui/default.nix +++ b/pkgs/data/fonts/inter-ui/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchzip }: let - version = "2.5"; + version = "3.0"; in fetchzip { name = "inter-ui-${version}"; @@ -12,7 +12,7 @@ in fetchzip { unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype ''; - sha256 = "1d88y6c9vbjz5siazhavnpfpazfkvpbcbb4pdycbnj03mmx6y07v"; + sha256 = "16qmb8farkh41i56f0vvbxcg32rbg7my64amwz5y8gyy73i3320q"; meta = with stdenv.lib; { homepage = https://rsms.me/inter/; diff --git a/pkgs/development/libraries/webkitgtk/2.22.nix b/pkgs/development/libraries/webkitgtk/2.22.nix index 71b3dc24fe21..4411b4e84344 100644 --- a/pkgs/development/libraries/webkitgtk/2.22.nix +++ b/pkgs/development/libraries/webkitgtk/2.22.nix @@ -15,7 +15,7 @@ assert stdenv.isDarwin -> !enableGtk2Plugins; with stdenv.lib; stdenv.mkDerivation rec { name = "webkitgtk-${version}"; - version = "2.22.3"; + version = "2.22.4"; meta = { description = "Web content rendering engine, GTK+ port"; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://webkitgtk.org/releases/${name}.tar.xz"; - sha256 = "0wnddhm2bihmmkmi919lyxskvjk2wrzx6azkiypyjfwm08lm9zcx"; + sha256 = "1f2335hjzsvjxjf6hy5cyypsn65wykpx2pbk1sp548w0hclbxdgs"; }; patches = optionals stdenv.isDarwin [ diff --git a/pkgs/development/python-modules/nanoleaf/default.nix b/pkgs/development/python-modules/nanoleaf/default.nix new file mode 100644 index 000000000000..ccf0be4ae6d2 --- /dev/null +++ b/pkgs/development/python-modules/nanoleaf/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildPythonPackage, fetchPypi, requests }: + +buildPythonPackage rec { + pname = "nanoleaf"; + version = "0.4.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "17dmxibfjmwnrs6ng5cmvfis3cv6iw267xb8n1pijy15y9dz0s8s"; + }; + + prePatch = '' + sed -i '/^gitVersion =/d' setup.py + substituteInPlace setup.py --replace 'gitVersion' '"${version}"' + ''; + + propagatedBuildInputs = [ requests ]; + + meta = with stdenv.lib; { + description = "A python interface for Nanoleaf Aurora lighting"; + homepage = https://github.com/software-2/nanoleaf; + license = licenses.mit; + maintainers = with maintainers; [ elseym ]; + }; +} diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix index 2ab922171444..be0fb7e4023a 100644 --- a/pkgs/development/python-modules/prettytable/default.nix +++ b/pkgs/development/python-modules/prettytable/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "prettytable"; - version = "0.7.1"; + version = "0.7.2"; src = fetchPypi { inherit pname version; - sha256 = "599bc5b4b9602e28294cf795733c889c26dd934aa7e0ee9cff9b905d4fbad188"; + sha256 = "1ndckiniasacfqcdafzs04plskrcigk7vxprr2y34jmpkpf60m1d"; }; buildInputs = [ glibcLocales ]; @@ -22,7 +22,7 @@ buildPythonPackage rec { meta = with stdenv.lib; { description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format"; homepage = http://code.google.com/p/prettytable/; - license = licenses.bsd0; + license = licenses.bsd3; }; } diff --git a/pkgs/development/python-modules/pymssql/default.nix b/pkgs/development/python-modules/pymssql/default.nix new file mode 100644 index 000000000000..c162f065b799 --- /dev/null +++ b/pkgs/development/python-modules/pymssql/default.nix @@ -0,0 +1,26 @@ +{ lib, buildPythonPackage, fetchPypi, freetds, cython, setuptools-git }: + +buildPythonPackage rec { + pname = "pymssql"; + version = "2.1.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "1yvs3azd8dkf40lybr9wvswvf4hbxn5ys9ypansmbbb328dyn09j"; + }; + + buildInputs = [cython setuptools-git]; + propagatedBuildInputs = [freetds]; + + # The tests require a running instance of SQLServer, so we skip them + doCheck = false; + + meta = with lib; { + homepage = http://pymssql.org/en/stable/; + description = "A simple database interface for Python that builds on top + of FreeTDS to provide a Python DB-API (PEP-249) interface to Microsoft + SQL Server"; + license = licenses.lgpl21; + maintainers = with maintainers; [ mredaelli ]; + }; +} diff --git a/pkgs/development/python-modules/sdnotify/default.nix b/pkgs/development/python-modules/sdnotify/default.nix new file mode 100644 index 000000000000..478453821782 --- /dev/null +++ b/pkgs/development/python-modules/sdnotify/default.nix @@ -0,0 +1,21 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +}: + +buildPythonPackage rec { + pname = "sdnotify"; + version = "0.3.2"; + + src = fetchPypi { + sha256 = "1wdrdg2j16pmqhk0ify20s5pngijh7zc6hyxhh8w8v5k8v3pz5vk"; + inherit pname version; + }; + + meta = with stdenv.lib; { + description = "A pure Python implementation of systemd's service notification protocol"; + homepage = https://github.com/bb4242/sdnotify; + license = licenses.mit; + maintainers = with maintainers; [ pmiddend ]; + }; +} diff --git a/pkgs/development/tools/minizinc/default.nix b/pkgs/development/tools/minizinc/default.nix index 59f60d4046ad..e35a310b1002 100644 --- a/pkgs/development/tools/minizinc/default.nix +++ b/pkgs/development/tools/minizinc/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, cmake, flex, bison }: let - version = "2.2.1"; + version = "2.2.3"; in stdenv.mkDerivation { name = "minizinc-${version}"; @@ -8,13 +8,12 @@ stdenv.mkDerivation { buildInputs = [ cmake flex bison ]; src = fetchFromGitHub { - rev = "${version}"; owner = "MiniZinc"; repo = "libminizinc"; - sha256 = "1i11lan7fqs3lg0s6jfr8sflzwn5nk1ln5j6afjrkrdb08291dr7"; + rev = "3d66971a0cad6edbe796f4dd940229d38e5bfe3d"; # tags on the repo are disappearing: See https://github.com/MiniZinc/libminizinc/issues/257 + sha256 = "1q31y9131aj2lsm34srm8i1s0271qcaaknzvym3r8awynm14saq5"; }; - # meta is all the information about the package.. meta = with stdenv.lib; { homepage = http://www.minizinc.org/; description = "MiniZinc is a medium-level constraint modelling language."; diff --git a/pkgs/development/tools/misc/hound/default.nix b/pkgs/development/tools/misc/hound/default.nix index f438e72b64e1..f1875ee0903a 100644 --- a/pkgs/development/tools/misc/hound/default.nix +++ b/pkgs/development/tools/misc/hound/default.nix @@ -2,8 +2,8 @@ buildGoPackage rec { name = "hound-unstable-${version}"; - version = "20170324"; - rev = "effbe5873f329fcdf982e906b756b535e2804ebc"; + version = "2018-11-02"; + rev = "74ec7448a234d8d09e800b92e52c92e378c07742"; goPackagePath = "github.com/etsy/hound"; @@ -11,7 +11,7 @@ buildGoPackage rec { inherit rev; owner = "etsy"; repo = "hound"; - sha256 = "0zc769lygad5an63z5mivaggbmm07d9ynngi2jx3f7651wpji4aw"; + sha256 = "0g6nvgqjabprcl9z5ci5frhbam1dzq978h1d6aanf8vvzslfgdpq"; }; goDeps = ./deps.nix; diff --git a/pkgs/development/tools/phantomjs2/default.nix b/pkgs/development/tools/phantomjs2/default.nix index 949d798f7e88..51cecd81ecac 100644 --- a/pkgs/development/tools/phantomjs2/default.nix +++ b/pkgs/development/tools/phantomjs2/default.nix @@ -37,27 +37,27 @@ in stdenv.mkDerivation rec { patches = [ (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-hardening.patch?id=42c9154d8c87c9fe434908259b0eddde4d892ca3"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-hardening.patch; sha256 = "1qs1r76w90qgpw742i7lf0y3b7m9zh5wxcbrhrak6mq1kqaphqb5"; }) (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt-components.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt-components.patch; sha256 = "1fw2q59aqcks3abvwkqg9903yif6aivdsznc0h6frhhjvpp19vsb"; }) (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-evaluateJavaScript.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-evaluateJavaScript.patch; sha256 = "1avig9cfny8kv3s4mf3mdzvf3xlzgyh351yzwc4bkpnjvzv4fmq6"; }) (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-no-websecurity.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-no-websecurity.patch; sha256 = "1nykqpxa7lcf9iarz5lywgg3v3b1h19iwvjdg4kgq0ai6idhcab8"; }) (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-print.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-print.patch; sha256 = "1fydmdjxnplglpbd3ypaih5l237jkxjirpdhzz92mcpy29yla6jw"; }) (fetchpatch { - url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/unlock-qt.patch"; + url = https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/unlock-qt.patch; sha256 = "13bwz4iw17d6hq5pwkbpcckqyw7fhc6648lvs26m39pp31zwyp03"; }) ./system-qtbase.patch diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix index 56d290dd7248..9689ff33cd3c 100644 --- a/pkgs/development/tools/skaffold/default.nix +++ b/pkgs/development/tools/skaffold/default.nix @@ -2,9 +2,9 @@ buildGoPackage rec { name = "skaffold-${version}"; - version = "0.16.0"; - # rev is the 0.16.0 commit, mainly for skaffold version command output - rev = "78e443973ee7475ee66d227431596351cf5e2caf"; + version = "0.18.0"; + # rev is the 0.18.0 commit, mainly for skaffold version command output + rev = "34651689be78b2c6bcfbace5072b00b93661f895"; goPackagePath = "github.com/GoogleContainerTools/skaffold"; subPackages = ["cmd/skaffold"]; @@ -20,7 +20,7 @@ buildGoPackage rec { owner = "GoogleContainerTools"; repo = "skaffold"; rev = "v${version}"; - sha256 = "0vpjxyqppyj4zs02n8b0k0qd8zidrrcks60x6qd5a4bbqa0c1zld"; + sha256 = "0an3g4jqch7a6ckh8yhia7lykpvb5lvz4kd5kqfmw9479kygv9sa"; }; meta = { diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index 28616fe845fc..379794c1f863 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -4,13 +4,13 @@ }: let - version = "0.4.17"; + version = "0.4.17.1"; sources = { src = fetchFromGitHub { owner = "minetest"; repo = "minetest"; rev = "${version}"; - sha256 = "0ri9hyhvcnyyy2k83qvv543s10476g9fn3vcbjwvxjfqap9mkc5m"; + sha256 = "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg"; }; data = fetchFromGitHub { owner = "minetest"; diff --git a/pkgs/games/steam/runtime-wrapped.nix b/pkgs/games/steam/runtime-wrapped.nix index 1cde38058e7c..a851b5b8d978 100644 --- a/pkgs/games/steam/runtime-wrapped.nix +++ b/pkgs/games/steam/runtime-wrapped.nix @@ -11,7 +11,7 @@ let libva1 libvdpau vulkan-loader - gcc.cc + gcc.cc.lib nss nspr xorg.libxcb diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix index 762b46bb5526..a7a78be6a10b 100644 --- a/pkgs/os-specific/linux/iwd/default.nix +++ b/pkgs/os-specific/linux/iwd/default.nix @@ -32,7 +32,8 @@ in stdenv.mkDerivation rec { python3Packages.pygobject3 ]; - enableParallelBuilding = true; + # Enable when it works again + enableParallelBuilding = false; configureFlags = [ "--with-dbus-datadir=$(out)/etc/" diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index f9e693b9c7ae..69ce2fe71c6c 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.82"; + version = "4.14.83"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1b8x77kf3q7nf2h3s9vnn0hzi45srxxin7f9rvg70vd7yvka5457"; + sha256 = "081zxc7ikcn1hy22pw5af0dql9pq24h2anfgnykc83jfjbg2h5vh"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix index 7c78311f2064..13e4a56f4712 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.19.3"; + version = "4.19.4"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0834k2lsflp6mgxv1vs1gr4fykg5z0hd4sbbrw3z7zfhsh95fg0y"; + sha256 = "1aj7zwrjwrjb3m3nfccykmcvhrrjsk1zchc5g4f63xd1pc35d3x3"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 077ebbf27aa8..35fd90b61602 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.138"; + version = "4.9.140"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1dr1mf7i1mwy780048gkhvy283j8331xwgrs2x5qal0xc1114c4j"; + sha256 = "0hzrha3rh90jwxjmrh4npd0q56pf512nmb8i2p484k9cikssx27q"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix index 3b19b7bff544..733da0d8989e 100644 --- a/pkgs/os-specific/linux/wpa_supplicant/default.nix +++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix @@ -64,6 +64,9 @@ stdenv.mkDerivation rec { ''); preBuild = '' + for manpage in wpa_supplicant/doc/docbook/wpa_supplicant.conf* ; do + substituteInPlace "$manpage" --replace /usr/share/doc $out/share/doc + done cd wpa_supplicant cp -v defconfig .config echo "$extraConfig" >> .config @@ -132,6 +135,7 @@ stdenv.mkDerivation rec { cp -v dbus/dbus-wpa_supplicant.conf $out/etc/dbus-1/system.d cp -v "systemd/"*.service $out/etc/systemd/system rm $out/share/man/man8/wpa_priv.8 + install -Dm444 wpa_supplicant.conf $out/share/doc/wpa_supplicant/wpa_supplicant.conf.example ''; meta = with stdenv.lib; { diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 79b0dfc52aee..8c0ba2a49242 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -562,7 +562,7 @@ "light.mqtt_template" = ps: with ps; [ paho-mqtt ]; "light.mysensors" = ps: with ps; [ ]; "light.mystrom" = ps: with ps; [ ]; - "light.nanoleaf_aurora" = ps: with ps; [ ]; + "light.nanoleaf_aurora" = ps: with ps; [ nanoleaf ]; "light.opple" = ps: with ps; [ ]; "light.osramlightify" = ps: with ps; [ ]; "light.piglow" = ps: with ps; [ ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 69292e03d0b5..c09aeb0f33f1 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, fetchpatch, python3 +{ lib, fetchFromGitHub, fetchpatch, python # Look up dependencies of specified components in component-packages.nix , extraComponents ? [] @@ -52,7 +52,7 @@ let (mkOverride "colorlog" "3.1.4" "418db638c9577f37f0fae4914074f395847a728158a011be2a193ac491b9779d") - # hass-frontend does not exist in python3.pkgs + # hass-frontend does not exist in python.pkgs (self: super: { hass-frontend = self.callPackage ./frontend.nix { }; }) @@ -68,7 +68,7 @@ let }); }; - py = python3.override { + py = python.override { # Put packageOverrides at the start so they are applied after defaultOverrides packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([ packageOverrides ] ++ defaultOverrides); }; diff --git a/pkgs/servers/mail/system-sendmail/default.nix b/pkgs/servers/mail/system-sendmail/default.nix new file mode 100644 index 000000000000..0e290f135181 --- /dev/null +++ b/pkgs/servers/mail/system-sendmail/default.nix @@ -0,0 +1,36 @@ +{ stdenv, writeText }: + +let script = writeText "script" '' + #!/bin/sh + + if command -v sendmail > /dev/null 2>&1 && [ "$(command -v sendmail)" != "{{MYPATH}}" ]; then + exec sendmail "$@" + elif [ -x /run/wrappers/bin/sendmail ]; then + exec /run/wrappers/bin/sendmail "$@" + elif [ -x /run/current-system/sw/bin/sendmail ]; then + exec /run/current-system/sw/bin/sendmail "$@" + else + echo "Unable to find system sendmail." >&2 + exit 1 + fi +''; in +stdenv.mkDerivation { + name = "system-sendmail-1.0"; + + src = script; + + phases = [ "buildPhase" ]; + buildPhase = '' + mkdir -p $out/bin + < $src sed "s#{{MYPATH}}#$out/bin/sendmail#" > $out/bin/sendmail + chmod +x $out/bin/sendmail + ''; + + meta = with stdenv.lib; { + description = '' + A sendmail wrapper that calls the system sendmail. Do not install as system-wide sendmail! + ''; + platforms = platforms.unix; + maintainers = with maintainers; [ ekleog ]; + }; +} diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index ba89dc7bdb79..b0330b72ae42 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -37,11 +37,11 @@ let in buildPythonApplication rec { pname = "matrix-synapse"; - version = "0.33.8"; + version = "0.33.9"; src = fetchPypi { inherit pname version; - sha256 = "0j8knnqpkidkmpwr2i1k9cwlnwfqpzn3q6ysjvrwpa76hpfcg40l"; + sha256 = "1wdpywqi1xd6dy3hxnnjnh2amlmhljf8s0bff9v55jyh42bj1vpn"; }; patches = [ diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix index 2c89ea0f2c60..b846f88c0fa3 100644 --- a/pkgs/shells/powershell/default.nix +++ b/pkgs/shells/powershell/default.nix @@ -1,20 +1,21 @@ -{ stdenv, autoPatchelfHook, fetchzip, libunwind, libuuid, icu, curl, - makeWrapper, less, openssl, pam, lttng-ust }: +{ stdenv, autoPatchelfHook, fetchzip, libunwind, libuuid, icu, curl +, darwin, makeWrapper, less, openssl, pam, lttng-ust }: let platformString = if stdenv.isDarwin then "osx" else if stdenv.isLinux then "linux" else throw "unsupported platform"; - platformSha = if stdenv.isDarwin then "0jngmqxjiiz5dpgky027wl0s3nn321rxs6kxab27kmp031j65x8g" - else if stdenv.isLinux then "0nmqv32mck16b7zljfpb9ydg3h2jvcqrid9ga2i5wac26x3ix531" + platformSha = if stdenv.isDarwin then "1zm5q25ny2x6wvdqfrc380467zq0nbrzh2rzldwdkdpkb6wbvpj8" + else if stdenv.isLinux then "0wh5vvh8pk75fy37bm5av4xvp76slqyjhb6a0al55vw9rlg5q3xw" else throw "unsupported platform"; platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" else if stdenv.isLinux then "LD_LIBRARY_PATH" else throw "unsupported platform"; - libraries = [ libunwind libuuid icu curl openssl lttng-ust ] ++ (if stdenv.isLinux then [ pam ] else []); + libraries = [ libunwind libuuid icu curl openssl ] ++ + (if stdenv.isLinux then [ pam lttng-ust ] else [ darwin.Libsystem ]); in stdenv.mkDerivation rec { name = "powershell-${version}"; - version = "6.1.0"; + version = "6.1.1"; src = fetchzip { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-x64.tar.gz"; diff --git a/pkgs/tools/X11/imwheel/default.nix b/pkgs/tools/X11/imwheel/default.nix new file mode 100644 index 000000000000..f33e15e59cc6 --- /dev/null +++ b/pkgs/tools/X11/imwheel/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, libX11, libXext, libXi, libXmu, libXt, libXtst }: + +stdenv.mkDerivation rec { + name = "imwheel-1.0.0pre12"; + + src = fetchurl { + url = "mirror://sourceforge/imwheel/${name}.tar.gz"; + sha256 = "2320ed019c95ca4d922968e1e1cbf0c075a914e865e3965d2bd694ca3d57cfe3"; + }; + + buildInputs = [ libX11 libXext libXi libXmu libXt libXtst ]; + + postPatch = '' + substituteInPlace Makefile.in --replace "ETCDIR = " "ETCDIR = $out" + substituteInPlace util.c --replace "/etc/X11/imwheel" "$out/etc/X11/imwheel" + ''; + + meta = with stdenv.lib; { + homepage = "http://imwheel.sourceforge.net/"; + description = "Mouse wheel configuration tool for XFree86/Xorg"; + maintainers = with maintainers; [ jhillyerd ]; + platforms = platforms.linux; + license = licenses.gpl2; + }; +} diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix index 5bdab3104a31..54ab6a3c803d 100644 --- a/pkgs/tools/X11/xidlehook/default.nix +++ b/pkgs/tools/X11/xidlehook/default.nix @@ -1,9 +1,9 @@ { lib, stdenv, rustPlatform, fetchFromGitLab -, xlibsWrapper, xorg, libpulseaudio, pkgconfig, patchelf }: +, xlibsWrapper, xorg, libpulseaudio, pkgconfig, patchelf, Security }: rustPlatform.buildRustPackage rec { name = "xidlehook-${version}"; - version = "0.6.0"; + version = "0.6.1"; doCheck = false; @@ -12,13 +12,13 @@ rustPlatform.buildRustPackage rec { repo = "xidlehook"; rev = version; - sha256 = "0rmc0g5cizyzwpk4yyh7bda70x9ybaivc6iw441k6abxmzbh358g"; + sha256 = "04h6j66wif202x4kssagb66nnrz9m9ccs1d0dfh92955yix1ln23"; }; cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"]; cargoSha256 = "1pdhbqnkgwp2v5zyin8z8049aq8c3kfk04v9wsbz8qla34rgi99s"; - buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ]; + buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security; nativeBuildInputs = [ pkgconfig patchelf ]; postFixup = lib.optionalString stdenv.isLinux '' diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix new file mode 100644 index 000000000000..368de091777e --- /dev/null +++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table-chinese/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchgit, fetchFromGitHub, pkgconfig, ibus, ibus-table, python3, cmake }: + +let + src = fetchFromGitHub { + owner = "definite"; + repo = "ibus-table-chinese"; + rev = "f1f6a3384f021caa3b84c517e2495086f9c34507"; + sha256 = "14wpw3pvyrrqvg7al37jk2dxqfj9r4zf88j8k2n2lmdc50f3xs7k"; + }; + + cmakeFedoraSrc = fetchgit { + url = "https://pagure.io/cmake-fedora.git"; + rev = "7d5297759aef4cd086bdfa30cf6d4b2ad9446992"; + sha256 = "0mx9jvxpiva9v2ffaqlyny48iqr073h84yw8ln43z2avv11ipr7n"; + }; +in stdenv.mkDerivation rec { + name = "ibus-table-chinese-${version}"; + version = "1.8.2"; + + srcs = [ src cmakeFedoraSrc ]; + sourceRoot = src.name; + + postUnpack = '' + chmod u+w -R ${cmakeFedoraSrc.name} + mv ${cmakeFedoraSrc.name}/* source/cmake-fedora + ''; + + preConfigure = '' + # cmake script needs ./Modules folder to link to cmake-fedora + ln -s cmake-fedora/Modules ./ + ''; + + # Fails when writing to /prj_info.cmake in https://pagure.io/cmake-fedora/blob/master/f/Modules/ManageVersion.cmake + cmakeFlags = [ "-DPRJ_INFO_CMAKE_FILE=/dev/null" "-DPRJ_DOC_DIR=REPLACE" "-DDATA_DIR=share" ]; + # Must replace PRJ_DOC_DIR with actual share/ folder for ibus-table-chinese + # Otherwise it tries to write to /ibus-table-chinese if not defined (!) + postConfigure = '' + substituteInPlace cmake_install.cmake --replace '/build/source/REPLACE' $out/share/ibus-table-chinese + ''; + # Fails otherwise with "no such file or directory: <table>.txt" + dontUseCmakeBuildDir = true; + # Fails otherwise sometimes with + # FileExistsError: [Errno 17] File exists: '/build/tmp.BfVAUM4llr/ibus-table-chinese/.local/share/ibus-table' + enableParallelBuilding = false; + + preBuild = '' + export HOME=$(mktemp -d)/ibus-table-chinese + ''; + + postFixup = '' + rm -rf $HOME + ''; + + buildInputs = [ pkgconfig ibus ibus-table python3 cmake ]; + + meta = with stdenv.lib; { + isIbusEngine = true; + description = "Chinese tables for IBus-Table"; + homepage = https://github.com/definite/ibus-table-chinese; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ pneumaticat ]; + }; +} diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix index 0d467a6875b9..d09806402af7 100644 --- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix +++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix @@ -26,6 +26,7 @@ stdenv.mkDerivation rec { -e "/export IBUS_DATAROOTDIR=/ s/^.$//" \ -e "/export IBUS_LOCALEDIR=/ s/^.$//" \ -i "setup/ibus-setup-table.in" + substituteInPlace engine/tabcreatedb.py --replace '/usr/share/ibus-table' $out/share/ibus-table ''; buildInputs = [ diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix index 508fc77a9a03..e096024e5379 100644 --- a/pkgs/tools/misc/direnv/default.nix +++ b/pkgs/tools/misc/direnv/default.nix @@ -2,14 +2,14 @@ buildGoPackage rec { name = "direnv-${version}"; - version = "2.17.0"; + version = "2.18.2"; goPackagePath = "github.com/direnv/direnv"; src = fetchFromGitHub { owner = "direnv"; repo = "direnv"; rev = "v${version}"; - sha256 = "1dmanqpifx27cz41yc3ijpij0wrbgw9qny2d4n6jppfwf2qzyq4s"; + sha256 = "011isxsc3byg8jd4jhi4pdfqrxa1acnzirhcv7lvw3jl0v7xnma8"; }; postConfigure = '' diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix index 339c8dea4606..27399166568e 100644 --- a/pkgs/tools/misc/hyperfine/default.nix +++ b/pkgs/tools/misc/hyperfine/default.nix @@ -4,16 +4,16 @@ rustPlatform.buildRustPackage rec { name = "hyperfine-${version}"; - version = "1.3.0"; + version = "1.4.0"; src = fetchFromGitHub { owner = "sharkdp"; repo = "hyperfine"; rev = "refs/tags/v${version}"; - sha256 = "06kghk3gmi47c8g28n8srpb578yym104fa30s4m33ajb60fvwlld"; + sha256 = "1mn5nv3zljj2wz40imf62gknv84f7igslsf59gg1qvhgvgsd98sp"; }; - cargoSha256 = "1rwh8kyrkk5jza4lx7sf1pln68ljwsv4ccyfvzcvc140y7ya8ps0"; + cargoSha256 = "1kyx1fhz8l5m8dhwd7j3hic86xx71216775m9bslmm2z4csl7r1s"; buildInputs = stdenv.lib.optional stdenv.isDarwin Security; diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix index f30fdb1f1192..318ad6e3a9dc 100644 --- a/pkgs/tools/misc/timidity/default.nix +++ b/pkgs/tools/misc/timidity/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, alsaLib, libjack2, ncurses, pkgconfig }: stdenv.mkDerivation { - name = "timidity-2.14.0"; + name = "timidity-2.15.0"; src = fetchurl { - url = mirror://sourceforge/timidity/TiMidity++-2.14.0.tar.bz2; - sha256 = "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"; + url = mirror://sourceforge/timidity/TiMidity++-2.15.0.tar.bz2; + sha256 = "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/tools/networking/ssh-agents/default.nix b/pkgs/tools/networking/ssh-agents/default.nix new file mode 100644 index 000000000000..84e7558713c9 --- /dev/null +++ b/pkgs/tools/networking/ssh-agents/default.nix @@ -0,0 +1,43 @@ +{ fetchFromGitHub +, lib +, stdenvNoCC +}: + +stdenvNoCC.mkDerivation rec { + name = "ssh-agents-${version}"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "kalbasit"; + repo = "ssh-agents"; + rev = "v${version}"; + sha256 = "1l09zy87033v7hd17lhkxikwikqz5nj9x6c2w80rqpad4lp9ihwz"; + }; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "ssh-agents capable of spawning and maintaining multiple ssh-agents across terminals"; + longDescription = '' + The SSH agent is usually spawned by running eval $(ssh-agent), however this + spawns a new SSH agent at every invocation. This project provides an + ssh-agent wrapper called ssh-agents that is capable of spawning an SSH + agent and caching the environment variables for later invocation. + + Features + - One SSH agent across all terminals + - Add all un-encrypted SSH keys to the agent upon spawning. Please note + that encrypted SSH keys can only be added via ssh-add after having + started the agent. + - Ability to have different keys in different agents for security purposes. + - Multiple SSH agents + - To use multi-SSH agents, start ssh agent with the --name flag. The + given name is expected to be a folder under ~/.ssh/name containing the + keys to include in the agent. + ''; + homepage = https://github.com/kalbasit/ssh-agents; + license = licenses.mit; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix index c7ed511753d4..dd797fb9348f 100644 --- a/pkgs/tools/security/browserpass/default.nix +++ b/pkgs/tools/security/browserpass/default.nix @@ -3,7 +3,7 @@ buildGoPackage rec { name = "browserpass-${version}"; - version = "2.0.18"; + version = "2.0.22"; goPackagePath = "github.com/dannyvankooten/browserpass"; @@ -13,7 +13,7 @@ buildGoPackage rec { repo = "browserpass"; owner = "dannyvankooten"; rev = version; - sha256 = "0wszjpxfa0krr2zdx7a33vl1r86k74dpy5c940r6ww1zbgqzcibg"; + sha256 = "05cacrx08k99c5zra7ksdik9xxn3vih3x6in7536zs5gm55mkbfx"; }; postPatch = '' diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix index 80398d2d30cb..ae8a06e7b5c0 100644 --- a/pkgs/tools/security/nsjail/default.nix +++ b/pkgs/tools/security/nsjail/default.nix @@ -3,14 +3,14 @@ stdenv.mkDerivation rec { name = "nsjail-${version}"; - version = "2.7"; + version = "2.8"; src = fetchFromGitHub { owner = "google"; repo = "nsjail"; rev = version; fetchSubmodules = true; - sha256 = "13s1bi2b80rlwrgls1bx4bk140qhncwdamm9q51jd677s0i3xg3s"; + sha256 = "0cgycj0cz74plmz4asxryqprg6mkzpmnxzqbfsp1wwackinxq5fq"; }; nativeBuildInputs = [ autoconf bison flex libtool pkgconfig which ]; diff --git a/pkgs/tools/security/wpscan/Gemfile b/pkgs/tools/security/wpscan/Gemfile new file mode 100644 index 000000000000..f20afe0e6543 --- /dev/null +++ b/pkgs/tools/security/wpscan/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'wpscan', '= 3.4.0' diff --git a/pkgs/tools/security/wpscan/Gemfile.lock b/pkgs/tools/security/wpscan/Gemfile.lock new file mode 100644 index 000000000000..47283ab6de84 --- /dev/null +++ b/pkgs/tools/security/wpscan/Gemfile.lock @@ -0,0 +1,55 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (5.2.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + cms_scanner (0.0.41.0) + activesupport (~> 5.2) + addressable (~> 2.5) + nokogiri (~> 1.8.0) + opt_parse_validator (~> 0.0.16.4) + public_suffix (~> 3.0.0) + ruby-progressbar (~> 1.10.0) + typhoeus (~> 1.3.0) + xmlrpc (~> 0.3) + yajl-ruby (~> 1.4.1) + concurrent-ruby (1.1.3) + ethon (0.11.0) + ffi (>= 1.3.0) + ffi (1.9.25) + i18n (1.1.1) + concurrent-ruby (~> 1.0) + mini_portile2 (2.3.0) + minitest (5.11.3) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) + opt_parse_validator (0.0.16.4) + activesupport (~> 5.2.1) + addressable (~> 2.5.0) + public_suffix (3.0.3) + ruby-progressbar (1.10.0) + thread_safe (0.3.6) + typhoeus (1.3.1) + ethon (>= 0.9.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + wpscan (3.4.0) + activesupport (~> 5.2) + cms_scanner (~> 0.0.41.0) + yajl-ruby (~> 1.3) + xmlrpc (0.3.0) + yajl-ruby (1.4.1) + +PLATFORMS + ruby + +DEPENDENCIES + wpscan (= 3.4.0) + +BUNDLED WITH + 1.16.3 diff --git a/pkgs/tools/security/wpscan/default.nix b/pkgs/tools/security/wpscan/default.nix new file mode 100644 index 000000000000..9049318c249d --- /dev/null +++ b/pkgs/tools/security/wpscan/default.nix @@ -0,0 +1,21 @@ +{ bundlerApp, lib, makeWrapper, curl }: + +bundlerApp { + pname = "wpscan"; + gemdir = ./.; + exes = [ "wpscan" ]; + + buildInputs = [ makeWrapper ]; + postBuild = '' + wrapProgram "$out/bin/wpscan" \ + --prefix PATH : ${lib.makeBinPath [ curl ]} + ''; + + meta = with lib; { + description = "Black box WordPress vulnerability scanner"; + homepage = https://wpscan.org/; + license = licenses.unfreeRedistributable; + maintainers = [ maintainers.nyanloutre ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/security/wpscan/gemset.nix b/pkgs/tools/security/wpscan/gemset.nix new file mode 100644 index 000000000000..5c27c726be6f --- /dev/null +++ b/pkgs/tools/security/wpscan/gemset.nix @@ -0,0 +1,164 @@ +{ + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ziy6xk31k4fs115cdkba1ys4i8nzcyri7a2jig7nx7k5h7li6l2"; + type = "gem"; + }; + version = "5.2.1"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + cms_scanner = { + dependencies = ["activesupport" "addressable" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "typhoeus" "xmlrpc" "yajl-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1azsvgg070dng2jaz44zaqkvqyhf3pj131nqa7wdv3bsqp8y7kap"; + type = "gem"; + }; + version = "0.0.41.0"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb"; + type = "gem"; + }; + version = "1.1.3"; + }; + ethon = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y70szwm2p0b9qfvpqrzjrgm3jz0ig65vlbfr6ppc3z0m1h7kv48"; + type = "gem"; + }; + version = "0.11.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q"; + type = "gem"; + }; + version = "1.9.25"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7"; + type = "gem"; + }; + version = "1.1.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; + opt_parse_validator = { + dependencies = ["activesupport" "addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m3flpg1d7la1frip3vn0hgm6d91f0ys1jq2bhxr5va1vjbfvgbs"; + type = "gem"; + }; + version = "0.0.16.4"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + ruby-progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk"; + type = "gem"; + }; + version = "1.10.0"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + typhoeus = { + dependencies = ["ethon"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5"; + type = "gem"; + }; + version = "1.3.1"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + wpscan = { + dependencies = ["activesupport" "cms_scanner" "yajl-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17mqqaiawp3apdfw4l6r2wp0a4f0rp8wdqd2426xkna7vsxgh8gs"; + type = "gem"; + }; + version = "3.4.0"; + }; + xmlrpc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683"; + type = "gem"; + }; + version = "0.3.0"; + }; + yajl-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf"; + type = "gem"; + }; + version = "1.4.1"; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2e4b9911b6d9..cd4b4512d8a9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -786,6 +786,8 @@ with pkgs; xcodeenv = callPackage ../development/mobile/xcodeenv { }; + ssh-agents = callPackage ../tools/networking/ssh-agents { }; + titaniumenv = callPackage ../development/mobile/titaniumenv { }; abootimg = callPackage ../development/mobile/abootimg {}; @@ -1579,6 +1581,8 @@ with pkgs; parallel-rust = callPackage ../tools/misc/parallel-rust { }; + pyCA = python3Packages.callPackage ../applications/video/pyca {}; + scour = with python3Packages; toPythonApplication scour; s2png = callPackage ../tools/graphics/s2png { }; @@ -1999,6 +2003,10 @@ with pkgs; inherit (gnome3) dconf; }; + table-chinese = callPackage ../tools/inputmethods/ibus-engines/ibus-table-chinese { + ibus-table = ibus-engines.table; + }; + table-others = callPackage ../tools/inputmethods/ibus-engines/ibus-table-others { ibus-table = ibus-engines.table; }; @@ -6032,6 +6040,8 @@ with pkgs; woof = callPackage ../tools/misc/woof { }; + wpscan = callPackage ../tools/security/wpscan { }; + wsmancli = callPackage ../tools/system/wsmancli {}; wolfebin = callPackage ../tools/networking/wolfebin { @@ -6322,7 +6332,9 @@ with pkgs; xiccd = callPackage ../tools/misc/xiccd { }; - xidlehook = callPackage ../tools/X11/xidlehook {}; + xidlehook = callPackage ../tools/X11/xidlehook { + inherit (darwin.apple_sdk.frameworks) Security; + }; xorriso = callPackage ../tools/cd-dvd/xorriso { }; @@ -13356,7 +13368,9 @@ with pkgs; hiawatha = callPackage ../servers/http/hiawatha {}; - home-assistant = callPackage ../servers/home-assistant { }; + home-assistant = callPackage ../servers/home-assistant { + python = python36; + }; hydron = callPackage ../servers/hydron { }; @@ -13509,6 +13523,8 @@ with pkgs; pshs = callPackage ../servers/http/pshs { }; + system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { }); + # PulseAudio daemons pulseaudio = callPackage ../servers/pulseaudio { @@ -20970,6 +20986,8 @@ with pkgs; hsetroot = callPackage ../tools/X11/hsetroot { }; + imwheel = callPackage ../tools/X11/imwheel { }; + kakasi = callPackage ../tools/text/kakasi { }; lumina = libsForQt5.callPackage ../desktops/lumina { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2211ab6cd170..83353f6beacd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4731,6 +4731,8 @@ in { tvdb_api = callPackage ../development/python-modules/tvdb_api { }; + sdnotify = callPackage ../development/python-modules/sdnotify { }; + tvnamer = callPackage ../development/python-modules/tvnamer { }; threadpool = callPackage ../development/python-modules/threadpool { }; @@ -4994,6 +4996,10 @@ in { scour = callPackage ../development/python-modules/scour { }; + pymssql = callPackage ../development/python-modules/pymssql { }; + + nanoleaf = callPackage ../development/python-modules/nanoleaf { }; + }); in fix' (extends overrides packages) |