Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-07-16 12:01:03 +00:00 committed by GitHub
commit 9fe75f18c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 844 additions and 521 deletions

View file

@ -560,6 +560,22 @@
<literal>claws-mail-gtk2</literal> package.
</para>
</listitem>
<listitem>
<para>
The wordpress module provides a new interface which allows to
use different webservers with the new option
<link xlink:href="options.html#opt-services.wordpress.webserver"><literal>services.wordpress.webserver</literal></link>.
Currently <literal>httpd</literal> and
<literal>nginx</literal> are supported. The definitions of
wordpress sites should now be set in
<link xlink:href="options.html#opt-services.wordpress.sites"><literal>services.wordpress.sites</literal></link>.
</para>
<para>
Sites definitions that use the old interface are automatically
migrated in the new option. This backward compatibility will
be removed in 22.05.
</para>
</listitem>
</itemizedlist>
</section>
</section>

View file

@ -139,3 +139,7 @@ In addition to numerous new and upgraded packages, this release has the followin
- `python3` now defaults to Python 3.9. Python 3.9 introduces many deprecation warnings, please look at the [What's New In Python 3.9 post](https://docs.python.org/3/whatsnew/3.9.html) for more information.
- The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package.
- The wordpress module provides a new interface which allows to use different webservers with the new option [`services.wordpress.webserver`](options.html#opt-services.wordpress.webserver). Currently `httpd` and `nginx` are supported. The definitions of wordpress sites should now be set in [`services.wordpress.sites`](options.html#opt-services.wordpress.sites).
Sites definitions that use the old interface are automatically migrated in the new option. This backward compatibility will be removed in 22.05.

View file

@ -3,13 +3,18 @@
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
inherit (lib) any attrValues concatMapStringsSep flatten literalExample;
inherit (lib) mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
eachSite = config.services.wordpress;
cfg = migrateOldAttrs config.services.wordpress;
eachSite = cfg.sites;
user = "wordpress";
group = config.services.httpd.group;
webserver = config.services.${cfg.webserver};
stateDir = hostName: "/var/lib/wordpress/${hostName}";
# Migrate config.services.wordpress.<hostName> to config.services.wordpress.sites.<hostName>
oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
pname = "wordpress-${hostName}";
version = src.version;
@ -261,21 +266,48 @@ in
# interface
options = {
services.wordpress = mkOption {
type = types.attrsOf (types.submodule siteOpts);
type = types.submodule {
# Used to support old interface
freeformType = types.attrsOf (types.submodule siteOpts);
# New interface
options.sites = mkOption {
type = types.attrsOf (types.submodule siteOpts);
default = {};
description = "Specification of one or more WordPress sites to serve";
};
options.webserver = mkOption {
type = types.enum [ "httpd" "nginx" ];
default = "httpd";
description = ''
Whether to use apache2 or nginx for virtual host management.
Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.&lt;name&gt;</literal>.
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
'';
};
};
default = {};
description = "Specification of one or more WordPress sites to serve via Apache.";
description = "Wordpress configuration";
};
};
# implementation
config = mkIf (eachSite != {}) {
config = mkIf (eachSite != {}) (mkMerge [{
assertions = mapAttrsToList (hostName: cfg:
{ assertion = cfg.database.createLocally -> cfg.database.user == user;
message = "services.wordpress.${hostName}.database.user must be ${user} if the database is to be automatically provisioned";
message = ''services.wordpress.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned'';
}
) eachSite;
warnings = mapAttrsToList (hostName: _: ''services.wordpress."${hostName}" is deprecated use services.wordpress.sites."${hostName}"'') (oldSites cfg);
services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) {
enable = true;
package = mkDefault pkgs.mariadb;
@ -289,14 +321,18 @@ in
services.phpfpm.pools = mapAttrs' (hostName: cfg: (
nameValuePair "wordpress-${hostName}" {
inherit user group;
inherit user;
group = webserver.group;
settings = {
"listen.owner" = config.services.httpd.user;
"listen.group" = config.services.httpd.group;
"listen.owner" = webserver.user;
"listen.group" = webserver.group;
} // cfg.poolConfig;
}
)) eachSite;
}
(mkIf (cfg.webserver == "httpd") {
services.httpd = {
enable = true;
extraModules = [ "proxy_fcgi" ];
@ -332,11 +368,13 @@ in
'';
} ]) eachSite;
};
})
{
systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
"d '${stateDir hostName}' 0750 ${user} ${group} - -"
"d '${cfg.uploadsDir}' 0750 ${user} ${group} - -"
"Z '${cfg.uploadsDir}' 0750 ${user} ${group} - -"
"d '${stateDir hostName}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
"Z '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
]) eachSite);
systemd.services = mkMerge [
@ -350,7 +388,7 @@ in
serviceConfig = {
Type = "oneshot";
User = user;
Group = group;
Group = webserver.group;
};
})) eachSite)
@ -360,9 +398,65 @@ in
];
users.users.${user} = {
group = group;
group = webserver.group;
isSystemUser = true;
};
}
};
(mkIf (cfg.webserver == "nginx") {
services.nginx = {
enable = true;
virtualHosts = mapAttrs (hostName: cfg: {
serverName = mkDefault hostName;
root = "${pkg hostName cfg}/share/wordpress";
extraConfig = ''
index index.php;
'';
locations = {
"/" = {
priority = 200;
extraConfig = ''
try_files $uri $uri/ /index.php$is_args$args;
'';
};
"~ \\.php$" = {
priority = 500;
extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools."wordpress-${hostName}".socket};
fastcgi_index index.php;
include "${config.services.nginx.package}/conf/fastcgi.conf";
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
'';
};
"~ /\\." = {
priority = 800;
extraConfig = "deny all;";
};
"~* /(?:uploads|files)/.*\\.php$" = {
priority = 900;
extraConfig = "deny all;";
};
"~* \\.(js|css|png|jpg|jpeg|gif|ico)$" = {
priority = 1000;
extraConfig = ''
expires max;
log_not_found off;
'';
};
};
}) eachSite;
};
})
]);
}

View file

@ -10,48 +10,68 @@ import ./make-test-python.nix ({ pkgs, ... }:
];
};
machine =
{ ... }:
{ services.httpd.adminAddr = "webmaster@site.local";
nodes = {
wp_httpd = { ... }: {
services.httpd.adminAddr = "webmaster@site.local";
services.httpd.logPerVirtualHost = true;
services.wordpress."site1.local" = {
database.tablePrefix = "site1_";
};
services.wordpress."site2.local" = {
database.tablePrefix = "site2_";
services.wordpress = {
# Test support for old interface
"site1.local" = {
database.tablePrefix = "site1_";
};
sites = {
"site2.local" = {
database.tablePrefix = "site2_";
};
};
};
networking.firewall.allowedTCPPorts = [ 80 ];
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
};
wp_nginx = { ... }: {
services.wordpress.webserver = "nginx";
services.wordpress.sites = {
"site1.local" = {
database.tablePrefix = "site1_";
};
"site2.local" = {
database.tablePrefix = "site2_";
};
};
networking.firewall.allowedTCPPorts = [ 80 ];
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
};
};
testScript = ''
import re
start_all()
machine.wait_for_unit("httpd")
machine.wait_for_unit("phpfpm-wordpress-site1.local")
machine.wait_for_unit("phpfpm-wordpress-site2.local")
wp_httpd.wait_for_unit("httpd")
wp_nginx.wait_for_unit("nginx")
site_names = ["site1.local", "site2.local"]
with subtest("website returns welcome screen"):
for machine in (wp_httpd, wp_nginx):
for site_name in site_names:
assert "Welcome to the famous" in machine.succeed(f"curl -fL {site_name}")
machine.wait_for_unit(f"phpfpm-wordpress-{site_name}")
with subtest("wordpress-init went through"):
for site_name in site_names:
info = machine.get_unit_info(f"wordpress-init-{site_name}")
assert info["Result"] == "success"
with subtest("website returns welcome screen"):
assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
with subtest("secret keys are set"):
pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
for site_name in site_names:
assert pattern.search(
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
)
with subtest("wordpress-init went through"):
info = machine.get_unit_info(f"wordpress-init-{site_name}")
assert info["Result"] == "success"
with subtest("secret keys are set"):
pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
assert pattern.search(
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
)
'';
})

View file

@ -1,8 +1,8 @@
{
"stable": {
"version": "91.0.4472.114",
"sha256": "0wbyiwbdazgjjgj9vs56x26q3g9r80a57gfl0f2rfl1j7xwgxiy1",
"sha256bin64": "00ac1dyqxpxy1j11jvc5j35bgc629n2f2pll3912gzih4ir0vrys",
"version": "91.0.4472.164",
"sha256": "1g96hk72ds2b0aymgw7yjr0akgx7mkp17i99nk511ncnmni6zrc4",
"sha256bin64": "1j6p2gqlikaibcwa40k46dsm9jlrpbj21lv1snnjw8apjnjfd2wr",
"deps": {
"gn": {
"version": "2021-04-06",

View file

@ -32,10 +32,10 @@ rec {
firefox-esr-78 = common rec {
pname = "firefox-esr";
ffversion = "78.11.0esr";
ffversion = "78.12.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4";
sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a";
};
meta = {

View file

@ -36,9 +36,9 @@ appimageTools.wrapType2 {
git
glib
glibc
gnome.gdk_pixbuf
gnome.gtk
gnome.gtk.dev
gdk-pixbuf
gtk3
gtk3.dev
gnome.zenity
gnome2.GConf
gnumake
@ -48,7 +48,7 @@ appimageTools.wrapType2 {
gtk3.dev
gtk3-x11
gtk3-x11.dev
kdialog
plasma5Packages.kdialog
libappindicator-gtk2.out
libexif
(libjpeg.override { enableJpeg8 = true; }).out
@ -70,12 +70,12 @@ appimageTools.wrapType2 {
sqlite.dev
udev
unzip
utillinux
util-linux
watch
wget
which
wrapGAppsHook
xdg_utils
xdg-utils
xorg.libX11
xorg.libXau
xorg.libXaw

View file

@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
version = "1.14.4";
version = "1.14.5";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-sl/Vml8QmwZEAd2PIYWQcP7s6NYeomGJQGKhRiddtoo=";
sha256 = "sha256-8nwLVpe/5IjXJqO179lN80B/3WGUL3LKM8OWdh/bYOE=";
};
unpackPhase = ''

View file

@ -312,7 +312,7 @@ lib.makeScope pkgs.newScope (self: with self; {
# added 2019-02-08
inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4
libgtop libgudev libhttpseverywhere librsvg libsecret gdk-pixbuf gtksourceview gtksourceviewmm gtksourceview4
easytag meld orca rhythmbox shotwell gnome-usage
clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
doCheck = true;
configureFlags = lib.optional stdenv.targetPlatform.isWindows "--disable-examples";
configureFlags = lib.optional (stdenv.targetPlatform.isWindows || stdenv.hostPlatform.isStatic) "--disable-examples";
meta = with lib; {
homepage = "http://www.hyperrealm.com/libconfig";

View file

@ -0,0 +1,48 @@
{ lib
, fetchFromGitLab
, buildDunePackage
, gmp
, dune-configurator
, cstruct
, bigstring
, alcotest
, hex
}:
buildDunePackage rec {
pname = "secp256k1-internal";
version = "0.2";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "ocaml-secp256k1-internal";
rev = "v${version}";
sha256 = "1g9fyi78nmmm19l2cggwj14m4n80rz7gmnh1gq376zids71s6qxv";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
gmp
cstruct
bigstring
];
buildInputs = [
dune-configurator
];
checkInputs = [
alcotest
hex
];
doCheck = true;
meta = {
description = "Bindings to secp256k1 internal functions (generic operations on the curve)";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -6,12 +6,12 @@
buildPythonPackage rec {
pname = "adafruit-platformdetect";
version = "3.14.2";
version = "3.15.1";
src = fetchPypi {
pname = "Adafruit-PlatformDetect";
inherit version;
sha256 = "sha256-SFqSTNKZMETRf9RxSD6skzAVpxepmW+JG/gqZgFX06A=";
sha256 = "sha256-aUYerhg5iqKsZ5SW3dI6EpFnaB7dRGjXpIDVsjwS7vY=";
};
nativeBuildInputs = [ setuptools-scm ];

View file

@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, autopep8
, nose
, pycodestyle
, twine
}:
buildPythonPackage rec {
pname = "opensimplex";
version = "0.3";
src = fetchFromGitHub {
owner = "lmas";
repo = pname;
rev = "v${version}";
sha256 = "idF5JQGnAye6z3c3YU9rsHaebB3rlHJfA8vSpjDnFeM=";
};
checkInputs = [ autopep8 nose pycodestyle twine ];
checkPhase = ''
nosetests tests/
'';
meta = with lib; {
description = "OpenSimplex Noise functions for 2D, 3D and 4D";
longDescription = ''
OpenSimplex noise is an n-dimensional gradient noise function that was
developed in order to overcome the patent-related issues surrounding
Simplex noise, while continuing to also avoid the visually-significant
directional artifacts characteristic of Perlin noise.
'';
homepage = "https://github.com/lmas/opensimplex";
license = with licenses; [ mit ];
maintainers = with maintainers; [ angustrau ];
};
}

View file

@ -1,4 +1,5 @@
{ lib
, appdirs
, buildPythonPackage
, defusedxml
, fetchFromGitHub
@ -17,13 +18,13 @@
buildPythonPackage rec {
pname = "pytenable";
version = "1.3.1";
version = "1.3.2";
src = fetchFromGitHub {
owner = "tenable";
repo = "pyTenable";
rev = version;
sha256 = "sha256-9qkNQ3+yDplPHIXDwlghpJP1f+UoDYObWpPhl6UVtHU=";
sha256 = "sha256-S39rl8bJsxYAmTcaZk9+s9G45lOvREjlGVBk1m30tJo=";
};
propagatedBuildInputs = [
@ -31,6 +32,7 @@ buildPythonPackage rec {
];
buildInputs = [
appdirs
defusedxml
marshmallow
python-box

View file

@ -19,6 +19,7 @@
, python-lsp-jsonrpc
, pythonOlder
, rope
, setuptools
, ujson
, yapf
}:
@ -47,6 +48,7 @@ buildPythonPackage rec {
pylint
python-lsp-jsonrpc
rope
setuptools
ujson
yapf
];

View file

@ -11,9 +11,7 @@
, isPy3k
, psutil
, pytest-asyncio
, pytest-cov
, pytestCheckHook
, pytestrunner
, sqlalchemy
, websocket-client
, websockets
@ -21,14 +19,14 @@
buildPythonPackage rec {
pname = "slack-sdk";
version = "3.7.0";
version = "3.8.0";
disabled = !isPy3k;
src = fetchFromGitHub {
owner = "slackapi";
repo = "python-slack-sdk";
rev = "v${version}";
sha256 = "0bc52v5n8r3b2fy1c90w253r1abl752kaqdk6bgzkwsvbhgcxf2s";
sha256 = "sha256-r3GgcU4K2jj+4aIytpY2HiVqHzChynn2BCn1VNTL2t0=";
};
propagatedBuildInputs = [
@ -47,20 +45,23 @@ buildPythonPackage rec {
flask-sockets
psutil
pytest-asyncio
pytest-cov
pytestCheckHook
pytestrunner
];
preCheck = ''
export HOME=$(mktemp -d)
'';
# Exclude tests that requires network features
pytestFlagsArray = [ "--ignore=integration_tests" ];
disabledTestPaths = [
# Exclude tests that requires network features
"integration_tests"
];
disabledTests = [
# Requires network features
"test_start_raises_an_error_if_rtm_ws_url_is_not_returned"
"test_org_installation"
"test_interactions"
];
pythonImportsCheck = [ "slack_sdk" ];

View file

@ -5,7 +5,7 @@ let
in appimageTools.wrapType2 rec {
name = "unityhub";
extraPkgs = (pkgs: with pkgs; with xorg; [ gtk2 gdk_pixbuf glib libGL libGLU nss nspr
extraPkgs = (pkgs: with pkgs; with xorg; [ gtk2 gdk-pixbuf glib libGL libGLU nss nspr
alsa-lib cups gnome2.GConf libcap fontconfig freetype pango
cairo dbus dbus-glib libdbusmenu libdbusmenu-gtk2 expat zlib libpng12 udev tbb
libpqxx gtk3 libsecret lsb-release openssl nodejs ncurses5

View file

@ -1,4 +1,4 @@
{ stdenv, lib, python, kernel, makeWrapper, writeText
{ stdenv, lib, python2, python3, kernel, makeWrapper, writeText
, gawk, iproute2 }:
let
@ -9,6 +9,7 @@ let
inherit (kernel) src version;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ (if lib.versionOlder version "4.19" then python2 else python3) ];
# as of 4.9 compilation will fail due to -Werror=format-security
hardeningDisable = [ "format" ];
@ -33,10 +34,6 @@ let
install -Dm755 hv_get_dhcp_info.sh $out/${libexec}/hv_get_dhcp_info
install -Dm755 hv_get_dns_info.sh $out/${libexec}/hv_get_dns_info
# I don't know why this isn't being handled automatically by fixupPhase
substituteInPlace $out/bin/lsvmbus \
--replace '/usr/bin/env python' ${python.interpreter}
runHook postInstall
'';
@ -86,7 +83,7 @@ in stdenv.mkDerivation {
Wants=hv-fcopy.service hv-kvp.service hv-vss.service
EOF
for f in $lib/lib/systemd/system/* ; do
for f in $lib/lib/systemd/system/*.service ; do
substituteInPlace $f --replace @out@ ${daemons}/bin
done

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "tailscale";
version = "1.10.1";
version = "1.10.2";
src = fetchFromGitHub {
owner = "tailscale";
repo = "tailscale";
rev = "v${version}";
sha256 = "1s4qpz4jwar3lcqyzkgyvgm4bghzass974lq1pw4fziqlsblh0vm";
sha256 = "sha256-bAWQTdpqDF7ERQzNY1k0NtxdA9M9bIyfHtvX0nKfIQY=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -1,25 +1,16 @@
{ lib, rustPlatform, fetchFromGitHub }:
{ lib, rustPlatform, fetchCrate }:
rustPlatform.buildRustPackage rec {
pname = "svgbob";
version = "0.4.2";
version = "0.5.3";
src = fetchFromGitHub {
owner = "ivanceras";
repo = pname;
rev = "0febc4377134a2ea3b3cd43ebdf5ea688a0e7432";
sha256 = "1n0w5b3fjgbczy1iw52172x1p3y1bvw1qpz77fkaxkhrkgfd7vwr";
src = fetchCrate {
inherit version;
crateName = "svgbob_cli";
sha256 = "1gi8h4wzpi477y1gwi4708pn2kr65934a4dmphbhwppxbw447qiw";
};
sourceRoot = "source/svgbob_cli";
postPatch = ''
substituteInPlace ../svgbob/src/lib.rs \
--replace '#![deny(warnings)]' ""
'';
cargoSha256 = "1jyycr95gjginx6bzmay9b5dbpnbwdqbv13w1qy58znicsmh3v8a";
# Test tries to build outdated examples
doCheck = false;
cargoSha256 = "1x8phpllwm12igaachghwq6wgxl7nl8bhh7xybfrmn447viwxhq2";
meta = with lib; {
description = "Convert your ascii diagram scribbles into happy little SVG";

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchurl }:
let
pname = "ookla-speedtest";
version = "1.0.0";
srcs = {
x86_64-linux = fetchurl {
url = "https://install.speedtest.net/app/cli/${pname}-${version}-x86_64-linux.tgz";
sha256 = "sha256-X+ICjw1EJ+T0Ix2fnPcOZpG7iQpwY211Iy/k2XBjMWg=";
};
aarch64-linux = fetchurl {
url = "https://install.speedtest.net/app/cli/${pname}-${version}-aarch64-linux.tgz";
sha256 = "sha256-BzaE3DSQUIygGwTFhV4Ez9eX/tM/bqam7cJt+8b2qp4=";
};
};
in
stdenv.mkDerivation rec {
inherit pname version;
src = srcs.${stdenv.hostPlatform.system};
setSourceRoot = ''
sourceRoot=$PWD
'';
dontBuild = true;
dontConfigure = true;
installPhase = ''
install -D speedtest $out/bin/speedtest
install -D speedtest.5 $out/share/man/man5/speedtest.5
'';
meta = with lib; {
description = "Command line internet speedtest tool by Ookla";
homepage = "https://www.speedtest.net/apps/cli";
license = licenses.unfree;
maintainers = with maintainers; [ kranzes ];
platforms = lib.attrNames srcs;
};
}

View file

@ -1,4 +1,4 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.52"
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.53"

View file

@ -1,9 +1,9 @@
GIT
remote: https://github.com/rapid7/metasploit-framework
revision: f376002331f03483d56ade1c19134dbf02ef2cff
ref: refs/tags/6.0.52
revision: b7cef30d11f0509b7e27334030dae6b8cb34e7f2
ref: refs/tags/6.0.53
specs:
metasploit-framework (6.0.52)
metasploit-framework (6.0.53)
actionpack (~> 5.2.2)
activerecord (~> 5.2.2)
activesupport (~> 5.2.2)
@ -85,6 +85,7 @@ GIT
thin
tzinfo
tzinfo-data
unix-crypt
warden
windows_error
xdr
@ -126,13 +127,13 @@ GEM
arel-helpers (2.12.0)
activerecord (>= 3.1.0, < 7)
aws-eventstream (1.1.1)
aws-partitions (1.475.0)
aws-sdk-core (3.116.0)
aws-partitions (1.478.0)
aws-sdk-core (3.117.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-ec2 (1.248.0)
aws-sdk-ec2 (1.249.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.56.0)
@ -173,7 +174,7 @@ GEM
eventmachine (1.2.7)
faker (2.18.0)
i18n (>= 1.6, < 2)
faraday (1.5.0)
faraday (1.5.1)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@ -188,7 +189,7 @@ GEM
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.1.0)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faye-websocket (0.11.1)
eventmachine (>= 0.12.0)
@ -312,7 +313,7 @@ GEM
rex-core
rex-struct2
rex-text
rex-core (0.1.16)
rex-core (0.1.17)
rex-encoder (0.1.5)
metasm
rex-arch
@ -331,7 +332,7 @@ GEM
rex-arch
rex-ole (0.1.7)
rex-text
rex-powershell (0.1.90)
rex-powershell (0.1.91)
rex-random_identifier
rex-text
ruby-rc4
@ -356,7 +357,7 @@ GEM
rkelly-remix (0.0.7)
ruby-macho (2.5.1)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.4)
ruby2_keywords (0.0.5)
ruby_smb (2.0.10)
bindata
openssl-ccm
@ -393,6 +394,7 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unix-crypt (1.3.0)
warden (1.2.9)
rack (>= 2.0.9)
webrick (1.7.0)

View file

@ -8,13 +8,13 @@ let
};
in stdenv.mkDerivation rec {
pname = "metasploit-framework";
version = "6.0.52";
version = "6.0.53";
src = fetchFromGitHub {
owner = "rapid7";
repo = "metasploit-framework";
rev = version;
sha256 = "sha256-JN+ulGd47xZFSR7AdxfvviR5mwCHdfBmFkaAJPdaLJ8=";
sha256 = "sha256-0tg2FSRtwo1LRxA5jNQ1Pxx54TPs3ZwErXim8uj24VI=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -114,30 +114,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x9d0awfm8s9y025iwn7d5an476f6xq9v99lnynj2vvj1kgya79s";
sha256 = "0vsxqayzh04gxxan5i8vvfxh0n238dc9305bc89xs2mx2x1pw167";
type = "gem";
};
version = "1.475.0";
version = "1.478.0";
};
aws-sdk-core = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vjr1lzddm1pcs5vkpxns1gmrv0l0wb53kcxhh1xdznb7hm8h5km";
sha256 = "1mcagbyzy7l39lxm9g85frvjwlv3yfd9x8jddd1pfc0xsy9y0rax";
type = "gem";
};
version = "3.116.0";
version = "3.117.0";
};
aws-sdk-ec2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1s0r1vk39sjxkc5km2ldvcm1l5ac2c4w5z9bvz18jgqis98j6zd5";
sha256 = "1n6yl7qbzmjlxp3rzm3a62vinzdg9a8rqspq7xdaa9sxrf4zsamf";
type = "gem";
};
version = "1.248.0";
version = "1.249.0";
};
aws-sdk-iam = {
groups = ["default"];
@ -354,10 +354,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gwbii45plm9bljk22bwzhzxrc5xid8qx24f54vrm74q3zaz00ah";
sha256 = "1xpq9w46alagszx2mx82mqxxmsmyni2bpxd08gygzpl03zwbpr63";
type = "gem";
};
version = "1.5.0";
version = "1.5.1";
};
faraday-em_http = {
groups = ["default"];
@ -414,10 +414,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
type = "gem";
};
version = "1.1.0";
version = "1.2.0";
};
faraday-patron = {
groups = ["default"];
@ -594,12 +594,12 @@
platforms = [];
source = {
fetchSubmodules = false;
rev = "f376002331f03483d56ade1c19134dbf02ef2cff";
sha256 = "17rcbbvj90262rkg0xc702dpj95yxwbpgh0y952idvvqcyaaxpr4";
rev = "b7cef30d11f0509b7e27334030dae6b8cb34e7f2";
sha256 = "0lp1yvlg59kqml29rpgc6ghpj71z6pa8qf8h8x5qvhkd4hakdn6j";
type = "git";
url = "https://github.com/rapid7/metasploit-framework";
};
version = "6.0.52";
version = "6.0.53";
};
metasploit-model = {
groups = ["default"];
@ -1036,10 +1036,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08krnf05mbq6x2d92fv34bl8xdz1d3yq2m0mp8bfbq5kd6a13l2w";
sha256 = "0b0f9s18d2ax2k1xmwrvr97gxh8gfm79kfibv55fqmv846vgkkvk";
type = "gem";
};
version = "0.1.16";
version = "0.1.17";
};
rex-encoder = {
groups = ["default"];
@ -1106,10 +1106,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08a9s82y4bv2bis0szasrrqvz6imwx94ckg259f7w39ng1fbc7b1";
sha256 = "0zrc0pr1pla0amw6hagllj82hyq8pyy6wb38xry2cxg7q70ghfq7";
type = "gem";
};
version = "0.1.90";
version = "0.1.91";
};
rex-random_identifier = {
groups = ["default"];
@ -1236,10 +1236,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
type = "gem";
};
version = "0.0.4";
version = "0.0.5";
};
ruby_smb = {
groups = ["default"];
@ -1421,6 +1421,16 @@
};
version = "0.0.7.7";
};
unix-crypt = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wflipsmmicmgvqilp9pml4x19b337kh6p6jgrzqrzpkq2z52gdq";
type = "gem";
};
version = "1.3.0";
};
warden = {
groups = ["default"];
platforms = [];

View file

@ -12,20 +12,20 @@
rustPlatform.buildRustPackage rec {
pname = "mdcat";
version = "0.23.0";
version = "0.23.1";
src = fetchFromGitHub {
owner = "lunaryorn";
repo = pname;
rev = "mdcat-${version}";
hash = "sha256-bGXuYGQyrXa9gUEQfB7BF9K04z88r1UoM8R5gpL2nRM=";
sha256 = "sha256-aJ7rL+EKa5zWmCmekVuRmdeOwTmVo0IQ+GJ8Ga4iTI0=";
};
nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin Security;
cargoSha256 = "sha256-hmv4LNk7NEYjT/5XXUpMd+xGS19KHOW+HIgsiFEWeig=";
cargoSha256 = "sha256-r0dJ/lDOfRzEdwySR/eEvsrO8qn4g7ZIfpekiirUp3Q=";
checkInputs = [ ansi2html ];
# Skip tests that use the network and that include files.

View file

@ -11,17 +11,17 @@
}:
let
specVersion = "4.96.0"; # Version taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
specVersion = "4.98.0"; # Version taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
spec = fetchurl {
url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml";
sha256 = "sha256-4+j5BBTOFLLiA+n0YEUH/ICK4Iuxr6nNB7ZRrYACW2I=";
sha256 = "sha256-3SweDMfgq2+QQIdeb6EjL7A2Grd/7KQzsbMNZKPtXts=";
};
in
buildPythonApplication rec {
pname = "linode-cli";
version = "5.4.3";
version = "5.5.1";
src = fetchFromGitHub {
owner = "linode";

View file

@ -0,0 +1,30 @@
{ lib, fetchFromSourcehut, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "swayr";
version = "0.6.1";
src = fetchFromSourcehut {
owner = "~tsdh";
repo = "swayr";
rev = "v${version}";
sha256 = "1865064q8jb75nfb0hbx4swbbijpibm0n7m4cid8qgylzp4bxvs2";
};
cargoSha256 = "0w6zjnywifdlaw01xz2824lwm4b6r1b7r99wi3p12vgbrmks4jcr";
patches = [
./icon-paths.patch
];
preCheck = ''
export HOME=$TMPDIR
'';
meta = with lib; {
description = "A window switcher (and more) for sway";
homepage = "https://git.sr.ht/~tsdh/swayr";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ artturin ];
};
}

View file

@ -0,0 +1,17 @@
diff --git a/src/config.rs b/src/config.rs
index de7d04b..291114b 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -197,6 +197,12 @@ impl Default for Format {
),
urgency_end: Some("</span>".to_string()),
icon_dirs: Some(vec![
+ "/run/current-system/sw/share/icons/hicolor/scalable/apps".to_string(),
+ "/run/current-system/sw/share/icons/hicolor/48x48/apps".to_string(),
+ "/run/current-system/sw/share/pixmaps".to_string(),
+ "~/.nix-profile/share/icons/hicolor/scalable/apps".to_string(),
+ "~/.nix-profile/share/icons/hicolor/48x48/apps".to_string(),
+ "~/.nix-profile/share/pixmaps".to_string(),
"/usr/share/icons/hicolor/scalable/apps".to_string(),
"/usr/share/icons/hicolor/48x48/apps".to_string(),
"/usr/share/pixmaps".to_string(),

View file

@ -2313,6 +2313,8 @@ in
swaycwd = callPackage ../tools/wayland/swaycwd { };
swayr = callPackage ../tools/wayland/swayr { };
wayland-utils = callPackage ../tools/wayland/wayland-utils { };
wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl { };
@ -17674,6 +17676,8 @@ in
oobicpl = callPackage ../development/libraries/science/biology/oobicpl { };
ookla-speedtest = callPackage ../tools/networking/ookla-speedtest { };
openalSoft = callPackage ../development/libraries/openal-soft {
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit AudioToolbox;
};

View file

@ -1031,6 +1031,8 @@ let
inherit (pkgs) secp256k1;
};
secp256k1-internal = callPackage ../development/ocaml-modules/secp256k1-internal { };
seq = callPackage ../development/ocaml-modules/seq { };
sosa = callPackage ../development/ocaml-modules/sosa { };

View file

@ -4989,6 +4989,8 @@ in {
openshift = callPackage ../development/python-modules/openshift { };
opensimplex = callPackage ../development/python-modules/opensimplex { };
opentimestamps = callPackage ../development/python-modules/opentimestamps { };
opentracing = callPackage ../development/python-modules/opentracing { };