Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-07-01 00:03:25 +00:00 committed by GitHub
commit ed3d23eef3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 321 additions and 100 deletions

View file

@ -7076,6 +7076,11 @@
githubId = 1817528;
name = "Igor Polyakov";
};
iquerejeta = {
github = "iquerejeta";
githubId = 31273774;
name = "Inigo Querejeta-Azurmendi";
};
irenes = {
name = "Irene Knapp";
email = "ireneista@gmail.com";
@ -17999,6 +18004,16 @@
fingerprint = "9F19 3AE8 AA25 647F FC31 46B5 416F 303B 43C2 0AC3";
}];
};
yvan-sraka = {
email = "yvan@sraka.xyz";
github = "yvan-sraka";
githubId = 705213;
keys = [{
fingerprint = "FE9A 953C 97E4 54FE 6598 BFDD A4FB 3EAA 6F45 2379";
}];
matrix = "@/yvan:matrix.org";
name = "Yvan Sraka";
};
yvesf = {
email = "yvesf+nix@xapek.org";
github = "yvesf";

View file

@ -72,6 +72,8 @@
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.05, `pkgs.nextcloud26` will be installed by default.
- Please note that an upgrade from v25 (or older) to v27 directly is not possible. Please upgrade to `nextcloud26` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud26;`](options.html#opt-services.nextcloud.package).
- New options were added to `services.searx` for better SearXNG support, including options for the built-in rate limiter and bot protection and automatically configuring a local redis server.
- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
- DocBook option documentation is no longer supported, all module documentation now uses markdown.

View file

@ -10,6 +10,8 @@ let
settingsFile = pkgs.writeText "settings.yml"
(builtins.toJSON cfg.settings);
limiterSettingsFile = (pkgs.formats.toml { }).generate "limiter.toml" cfg.limiterSettings;
generateConfig = ''
cd ${runDir}
@ -65,6 +67,15 @@ in
'';
};
redisCreateLocally = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Configure a local Redis server for SearXNG. This is required if you
want to enable the rate limiter and bot protection of SearXNG.
'';
};
settings = mkOption {
type = types.attrsOf settingType;
default = { };
@ -111,6 +122,31 @@ in
'';
};
limiterSettings = mkOption {
type = types.attrsOf settingType;
default = { };
example = literalExpression ''
{
real_ip = {
x_for = 1;
ipv4_prefix = 32;
ipv6_prefix = 56;
}
botdetection.ip_lists.block_ip = [
# "93.184.216.34" # example.org
];
}
'';
description = lib.mdDoc ''
Limiter settings for SearXNG.
::: {.note}
For available settings, see the SearXNG
[schema file](https://github.com/searxng/searxng/blob/master/searx/botdetection/limiter.toml).
:::
'';
};
package = mkOption {
type = types.package;
default = pkgs.searx;
@ -158,6 +194,17 @@ in
###### implementation
config = mkIf cfg.enable {
assertions = [
{
assertion = (cfg.limiterSettings != { }) -> cfg.package.pname == "searxng";
message = "services.searx.limiterSettings requires services.searx.package to be searxng.";
}
{
assertion = cfg.redisCreateLocally -> cfg.package.pname == "searxng";
message = "services.searx.redisCreateLocally requires services.searx.package to be searxng.";
}
];
environment.systemPackages = [ cfg.package ];
users.users.searx =
@ -206,6 +253,7 @@ in
services.searx.settings = {
# merge NixOS settings with defaults settings.yml
use_default_settings = mkDefault true;
redis.url = lib.mkIf cfg.redisCreateLocally "unix://${config.services.redis.servers.searx.unixSocket}";
};
services.uwsgi = mkIf (cfg.runInUwsgi) {
@ -231,7 +279,16 @@ in
} // cfg.uwsgiConfig;
};
services.redis.servers.searx = lib.mkIf cfg.redisCreateLocally {
enable = true;
user = "searx";
port = 0;
};
environment.etc."searxng/limiter.toml" = lib.mkIf (cfg.limiterSettings != { }) {
source = limiterSettingsFile;
};
};
meta.maintainers = with maintainers; [ rnhmjoj ];
meta.maintainers = with maintainers; [ rnhmjoj _999eagle ];
}

View file

@ -279,10 +279,12 @@ in
settings = mkOption {
description = lib.mdDoc "Configuration for `sshd_config(5)`.";
default = { };
example = literalExpression ''{
UseDns = true;
PasswordAuthentication = false;
}'';
example = literalExpression ''
{
UseDns = true;
PasswordAuthentication = false;
}
'';
type = types.submodule ({name, ...}: {
freeformType = settingsFormat.type;
options = {

View file

@ -48,14 +48,16 @@ in
extraConfig = mkOption {
default = { };
type = types.attrs;
example = literalExpression ''{
reverseProxy = true;
defaults = {
name = "Your Network";
host = "localhost";
port = 6697;
};
}'';
example = literalExpression ''
{
reverseProxy = true;
defaults = {
name = "Your Network";
host = "localhost";
port = 6697;
};
}
'';
description = lib.mdDoc ''
The Lounge's {file}`config.js` contents as attribute set (will be
converted to JSON to generate the configuration file).

View file

@ -78,11 +78,12 @@ in
clientOptions = mkOption {
type = types.attrsOf types.str;
default = {};
example = literalExpression ''{
fontSize = "16";
fontFamily = "Fira Code";
}'';
example = literalExpression ''
{
fontSize = "16";
fontFamily = "Fira Code";
}
'';
description = lib.mdDoc ''
Attribute set of client options for xtermjs.
<https://xtermjs.org/docs/api/terminal/interfaces/iterminaloptions/>

View file

@ -1897,7 +1897,7 @@ let
bridgeVLANOptions = {
options = {
bridgeMDBConfig = mkOption {
bridgeVLANConfig = mkOption {
default = {};
example = { VLAN = 20; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeVLAN;
@ -2388,17 +2388,6 @@ let
'';
};
bridgeVLANConfig = mkOption {
default = {};
example = { VLAN = "10-20"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeVLAN;
description = lib.mdDoc ''
Each attribute in this set specifies an option in the
`[BridgeVLAN]` section of the unit. See
{manpage}`systemd.network(5)` for details.
'';
};
bridgeVLANs = mkOption {
default = [];
example = [ { bridgeVLANConfig = { VLAN = "10-20"; }; } ];

View file

@ -98,10 +98,12 @@ with lib;
qemuExtraConf = mkOption {
type = with types; attrsOf (oneOf [ str int ]);
default = {};
example = literalExpression ''{
cpu = "host";
onboot = 1;
}'';
example = literalExpression ''
{
cpu = "host";
onboot = 1;
}
'';
description = lib.mdDoc ''
Additional options appended to qemu-server.conf
'';

View file

@ -1,6 +1,12 @@
# This test predominantly tests systemd-networkd DHCP server, by
# setting up a DHCP server and client, and ensuring they are mutually
# reachable via the DHCP allocated address.
# Two DHCP servers are set up on bridge VLANs, testing to make sure that
# bridge VLAN settings are correctly applied.
#
# br0 ----untagged---v
# +---PVID 1+VLAN 2---[bridge]---PVID 2---eth1
# vlan2 ---VLAN 2----^
import ./make-test-python.nix ({pkgs, ...}: {
name = "systemd-networkd-dhcpserver";
meta = with pkgs.lib.maintainers; {
@ -16,6 +22,28 @@ import ./make-test-python.nix ({pkgs, ...}: {
firewall.enable = false;
};
systemd.network = {
netdevs = {
br0 = {
enable = true;
netdevConfig = {
Name = "br0";
Kind = "bridge";
};
extraConfig = ''
[Bridge]
VLANFiltering=yes
DefaultPVID=none
'';
};
vlan2 = {
enable = true;
netdevConfig = {
Name = "vlan2";
Kind = "vlan";
};
vlanConfig.Id = 2;
};
};
networks = {
# systemd-networkd will load the first network unit file
# that matches, ordered lexiographically by filename.
@ -24,9 +52,32 @@ import ./make-test-python.nix ({pkgs, ...}: {
# however, hence why this network is named such.
"01-eth1" = {
name = "eth1";
networkConfig.Bridge = "br0";
bridgeVLANs = [
{ bridgeVLANConfig = { PVID = 2; EgressUntagged = 2; }; }
];
};
"02-br0" = {
name = "br0";
networkConfig = {
DHCPServer = true;
Address = "10.0.0.1/24";
VLAN = ["vlan2"];
};
dhcpServerConfig = {
PoolOffset = 100;
PoolSize = 1;
};
bridgeVLANs = [
{ bridgeVLANConfig = { PVID = 1; EgressUntagged = 1; }; }
{ bridgeVLANConfig = { VLAN = 2; }; }
];
};
"02-vlan2" = {
name = "vlan2";
networkConfig = {
DHCPServer = true;
Address = "10.0.2.1/24";
};
dhcpServerConfig = {
PoolOffset = 100;
@ -52,7 +103,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
start_all()
router.wait_for_unit("systemd-networkd-wait-online.service")
client.wait_for_unit("systemd-networkd-wait-online.service")
client.wait_until_succeeds("ping -c 5 10.0.0.1")
router.wait_until_succeeds("ping -c 5 10.0.0.100")
client.wait_until_succeeds("ping -c 5 10.0.2.1")
router.wait_until_succeeds("ping -c 5 10.0.2.100")
'';
})

View file

@ -128,6 +128,12 @@
}:
self: super: {
alpha-nvim = super.alpha-nvim.overrideAttrs(oa: {
dependencies = [
self.nvim-web-devicons # required by the startify theme
];
nvimRequireCheck = "alpha";
});
autosave-nvim = super.autosave-nvim.overrideAttrs(old: {
dependencies = with super; [ plenary-nvim ];

View file

@ -0,0 +1,44 @@
{ lib, python3, fetchPypi }:
let
localPython = python3.override {
self = localPython;
packageOverrides = self: super: {
# Can be removed once this is merged
# https://gitlab.com/pdftools/pdfposter/-/merge_requests/7
pypdf2 = super.pypdf2.overridePythonAttrs (oldAttrs: rec {
version = "2.11.1";
format = "setuptools";
src = fetchPypi {
pname = "PyPDF2";
inherit version;
hash = "sha256-PHut1RLCFxHrF4nC6tv5YnkonA+URS7lSoZHO/vv1zI=";
};
});
};
};
in
with localPython.pkgs; buildPythonApplication rec {
pname = "pdfposter";
version = "0.8.1";
format = "setuptools";
propagatedBuildInputs = [ pypdf2 ];
src = fetchPypi {
pname = "pdftools.pdfposter";
inherit version;
hash = "sha256-yWFtHgVKAWs4dRlSk8t8cB2KBJeBOa0Frh3BLR9txS0=";
};
pythonImportsCheck = [
"pdftools.pdfposter"
"pdftools.pdfposter.cmd"
];
meta = with lib; {
description = "Split large pages of a PDF into smaller ones for poster printing";
homepage = "https://pdfposter.readthedocs.io";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ wamserma ];
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kluctl";
version = "2.20.6";
version = "2.20.7";
src = fetchFromGitHub {
owner = "kluctl";
repo = "kluctl";
rev = "v${version}";
hash = "sha256-B8+HKqIuJaH+6ViBxWfiAAmXieQKcwAW565SwUpIJKI=";
hash = "sha256-NcvPo+6f2EYhitzOl2VPz8MtFIsYBuOA7EJnD4TJdmI=";
};
vendorHash = "sha256-x5Zy8H7DzxU+uBCUL6edv8x2LwiIjXl5UrRUMDtUEk8=";

View file

@ -36,14 +36,14 @@ let
in
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
stdenv.mkDerivation rec {
version = "4.0.0";
version = "4.0.1";
pname = "weechat";
hardeningEnable = [ "pie" ];
src = fetchurl {
url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
hash = "sha256-W9de4V8zkqCtF07nxUUY2uzjh4R3ZwwH8Q1uv5iCQPk=";
hash = "sha256-G5UzEjr0J5IrPX+r7elY3IU5LVCIHZfQt5htj1FFVuk=";
};
outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;

View file

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "cairo";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "starkware-libs";
repo = "cairo";
rev = "v${version}";
hash = "sha256-8dzDe4Kw9OASD0i3bMooqEclStxS/Ta/tOVCcFhvwSI=";
hash = "sha256-hlFPYYZsifH6ZTEDC+f1dLbHEn/wg4T7RoiYoibskjs=";
};
cargoHash = "sha256-IY3RE+EeNRhUSZX+bqojhPl6y8qm+i9C0zQmNApmat8=";
cargoHash = "sha256-WLNt8IZkdCcHFQwnTZlcEmYlyhOoIEk1/s+obXhj+Qo=";
nativeCheckInputs = [
rustfmt

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "ayatana-ido";
version = "0.9.2";
version = "0.10.0";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = pname;
rev = version;
sha256 = "sha256-0LswdcV4VSg5o5uJ6vfw713eDnMbodZPQ9d2djxHc6k=";
sha256 = "sha256-jpNsH8c5ObnO+/AqsribvyFZhm7mmCFGNx9p4QHZKQE=";
};
nativeBuildInputs = [ pkg-config cmake ];

View file

@ -0,0 +1,39 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook }:
stdenv.mkDerivation ( finalAttrs: {
pname = "blst";
version = "0.3.10";
src = fetchFromGitHub {
owner = "supranational";
repo = "blst";
rev = "v${finalAttrs.version}";
hash = "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=";
};
buildPhase = ''
runHook preBuild
./build.sh
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp ./libblst.a $out/lib/
runHook postInstall
'';
doCheck = true;
meta = with lib; {
description = "Multilingual BLS12-381 signature library";
homepage = "https://github.com/supranational/blst";
license = licenses.isc;
maintainers = with maintainers; [ iquerejeta yvan-sraka ];
platforms = platforms.all;
};
})

View file

@ -73,10 +73,12 @@ stdenv.mkDerivation (finalAttrs: {
cd $out${finalAttrs.passthru.libdir}
for f in librdimon.a libc.a libg.a; do
cp "$f" "''${f%%\.a}_nano.a"
# Some libraries are only available for specific architectures.
# For example, librdimon.a is only available on ARM.
[ -f "$f" ] && cp "$f" "''${f%%\.a}_nano.a"
done
)
'';
'' + ''[ "$(find $out -type f | wc -l)" -gt 0 ] || (echo '$out is empty' 1>&2 && exit 1)'';
passthru = {
incdir = "/${stdenv.targetPlatform.config}/include";

View file

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "awkward";
version = "2.2.3";
version = "2.2.4";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-yx/z8lTqVWnMTp7TlH+rtAHb3cskm1iViZedhfs0EUI=";
hash = "sha256-v06mYdoP/WfIfz6x6+MJvS4YOsTsyWqhCyAykZ1d5v4=";
};
nativeBuildInputs = [
@ -55,6 +55,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Manipulate JSON-like data with NumPy-like idioms";
homepage = "https://github.com/scikit-hep/awkward";
changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
license = licenses.bsd3;
maintainers = with maintainers; [ veprbl ];
};

View file

@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "hcloud";
version = "1.22.0";
version = "1.23.1";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-9F7bgkVL1hE9YeL8JxOAHNJ2iw6ey7UBOQU95DPDIis=";
hash = "sha256-rIaGcAMZZRd4BeLYmHAtfCCY6b5a+HDu5GO87/wNLkU=";
};
propagatedBuildInputs = [

View file

@ -9,11 +9,11 @@
buildPythonPackage rec {
pname = "jenkins-job-builder";
version = "4.3.0";
version = "5.0.2";
src = fetchPypi {
inherit pname version;
hash = "sha256-pvka8TLMEclzJ2Iw4iLSiR1ioV3frzQStLu21+kSSHI=";
hash = "sha256-XHsV3Mf2I7gwhgJKDPv3Ce+u9dcllLvMGeeeRg/q3NE=";
};
postPatch = ''

View file

@ -10,13 +10,13 @@
buildPythonPackage rec {
pname = "mediapy";
version = "1.1.6";
version = "1.1.8";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-n0S3YEAJZNi+pRIaIT+U3JoiXQJtaoGZASg6aV5YVjQ=";
hash = "sha256-mVhBM+NQEkLYByp/kCPFJCAY26La5CWjcPl6PgclA9A=";
};
propagatedBuildInputs = [ ipython matplotlib numpy pillow ];

View file

@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "mypy-boto3-s3";
version = "1.26.155";
version = "1.26.163";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-Kjmau6jEW3uz82I7r4aFhiXXsOWpAu3+fZ+hj8vrL3s=";
hash = "sha256-R9NjnNCXqhQtyspDtDH6en7vtW4Vluv/Yl9XHxa9diM=";
};
propagatedBuildInputs = [

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "neo4j";
version = "5.9.0";
version = "5.10.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "neo4j";
repo = "neo4j-python-driver";
rev = "refs/tags/${version}";
hash = "sha256-HyoIr2ZIOAzFlMrkIDV71JJAFwrxCqExMFXF3U2p9Po=";
hash = "sha256-UD7y/OVoYyEL+68CW+kc8m8poATqRRSwoP6XQyUbGC0=";
};
propagatedBuildInputs = [

View file

@ -12,13 +12,13 @@
buildPythonPackage rec {
pname = "netapp-ontap";
version = "9.12.1.0";
version = "9.13.1.0";
format = "setuptools";
src = fetchPypi {
pname = "netapp_ontap";
inherit version;
sha256 = "sha256-eqFj2xYl4X1TB4Rxajpor5zgJdoISJk89KpARAHI/W0=";
sha256 = "sha256-jPKfPJXtzARRlSuwkfJeZueQouwaaa0D6rZ+BcpILq0=";
};
propagatedBuildInputs = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "odp-amsterdam";
version = "5.1.0";
version = "5.1.1";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "klaasnicolaas";
repo = "python-odp-amsterdam";
rev = "refs/tags/v${version}";
hash = "sha256-ECRm9I/wHb82F8UBqPQWd60wLybIloCJiTxXDb3GnGs=";
hash = "sha256-DaL2CTrhWqBwl3kktF1wndxzrreA24C3zXmp4ghf/4s=";
};
postPatch = ''

View file

@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "pamela";
version = "1.0.0";
version = "1.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c";
sha256 = "sha256-1LE5/mAOGS4Xaio2gFkgemv/oOeHmHmxP0/LoBY0gb4=";
};
postUnpack = ''

View file

@ -1,26 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, pypdf2 }:
buildPythonPackage rec {
pname = "pdftools.pdfposter";
version = "0.8.1";
format = "setuptools";
propagatedBuildInputs = [ pypdf2 ];
src = fetchPypi {
inherit pname version;
hash = "sha256-yWFtHgVKAWs4dRlSk8t8cB2KBJeBOa0Frh3BLR9txS0=";
};
pythonImportsCheck = [
"pdftools.pdfposter"
"pdftools.pdfposter.cmd"
];
meta = with lib; {
description = "Split large pages of a PDF into smaller ones for poster printing";
homepage = "https://pdfposter.readthedocs.io";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ wamserma ];
};
}

View file

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "pontos";
version = "23.6.1";
version = "23.6.2";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "greenbone";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-HBDijU5R1furmlP1ykmjbbBWXh/LSVE2zuuJ80D9Yng=";
hash = "sha256-kLBkTOV4vllAGtnFWo44KxC0UPrYqWEOpC5oai+dIC8=";
};
nativeBuildInputs = [

View file

@ -20,14 +20,14 @@
buildPythonPackage rec {
pname = "pytorch-lightning";
version = "2.0.2";
version = "2.0.4";
format = "pyproject";
src = fetchFromGitHub {
owner = "Lightning-AI";
repo = "pytorch-lightning";
rev = "refs/tags/${version}";
hash = "sha256-MSztKWjg/7J+4+sv4sqFlucaYuQlGoehtcUTiqNUlPA=";
hash = "sha256-gF0Tx/G06SwwrtIM7RPz/P+Qhmc3zgFQPsAT7qf8RtI=";
};
preConfigure = ''

View file

@ -14,6 +14,10 @@ toPythonModule (buildPythonApplication rec {
sha256 = "sha256-+Wsg1k/h41luk5aVfSn11/lGv8hZYVvpHLbbYHfsExw=";
};
patches = [
./fix-flask-babel-3.0.patch
];
postPatch = ''
sed -i 's/==.*$//' requirements.txt
'';

View file

@ -0,0 +1,27 @@
commit 38b3a4f70e3226a091c53300659752c595b120f9
Author: rnhmjoj <rnhmjoj@inventati.org>
Date: Fri Jun 30 21:48:35 2023 +0200
Fix for flask-babel 3.0
diff --git a/searx/webapp.py b/searx/webapp.py
index 2027e72d..f3174a45 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -167,7 +167,7 @@ _flask_babel_get_translations = flask_babel.get_translations
def _get_translations():
if has_request_context() and request.form.get('use-translation') == 'oc':
babel_ext = flask_babel.current_app.extensions['babel']
- return Translations.load(next(babel_ext.translation_directories), 'oc')
+ return Translations.load(babel_ext.translation_directories[0], 'oc')
return _flask_babel_get_translations()
@@ -188,7 +188,6 @@ def _get_browser_or_settings_language(request, lang_list):
return settings['search']['default_lang'] or 'en'
-@babel.localeselector
def get_locale():
if 'locale' in request.form\
and request.form['locale'] in settings['locales']:

View file

@ -2,18 +2,18 @@
buildGoModule rec {
pname = "chamber";
version = "2.13.0";
version = "2.13.1";
src = fetchFromGitHub {
owner = "segmentio";
repo = pname;
rev = "v${version}";
sha256 = "sha256-1alRyAwT+vlzj7L6KG62R7PRKbMkevowUdD6he4ZQ/I=";
sha256 = "sha256-F4JVAW6aKbEofTshF6vny5hnTFnfUKuRyc9zaUxSjG4=";
};
CGO_ENABLED = 0;
vendorHash = "sha256-pyC2iMGx1seSBR3f316oNM0YiN3y1489uybpgHyN8NM=";
vendorHash = "sha256-xFZmTsX5OrLu1AkKDHaa5N277J5dLGf5F9ATWirtnXY=";
ldflags = [ "-s" "-w" "-X main.Version=v${version}" ];

View file

@ -348,6 +348,8 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) CoreServices;
};
blst = callPackage ../development/libraries/blst { };
bodyclose = callPackage ../development/tools/bodyclose { };
bootstrap-studio = callPackage ../development/web/bootstrap-studio { };
@ -11387,6 +11389,8 @@ with pkgs;
pdfcrack = callPackage ../tools/security/pdfcrack { };
pdfposter = callPackage ../applications/misc/pdfposter { };
pdfsandwich = callPackage ../tools/typesetting/pdfsandwich { };
pdftag = callPackage ../tools/graphics/pdftag { };

View file

@ -194,6 +194,7 @@ mapAliases ({
pam = python-pam; # added 2020-09-07.
PasteDeploy = pastedeploy; # added 2021-10-07
pathpy = path; # added 2022-04-12
pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29
pdfminer = pdfminer-six; # added 2022-05-25
pep257 = pydocstyle; # added 2022-04-12
poetry = throw "poetry was promoted to a top-level attribute, use poetry-core to build Python packages"; # added 2023-01-09

View file

@ -7524,8 +7524,6 @@ self: super: with self; {
pdfminer-six = callPackage ../development/python-modules/pdfminer-six { };
pdfposter = callPackage ../development/python-modules/pdfposter { };
pdfrw = callPackage ../development/python-modules/pdfrw { };
pdftotext = callPackage ../development/python-modules/pdftotext { };