Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-02-23 12:01:11 +00:00 committed by GitHub
commit 10c4b97b44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 605 additions and 140 deletions

View file

@ -9253,6 +9253,12 @@
githubId = 15930073;
name = "Moritz Scheuren";
};
ozkutuk = {
email = "ozkutuk@protonmail.com";
github = "ozkutuk";
githubId = 5948762;
name = "Berk Özkütük";
};
pablovsky = {
email = "dealberapablo07@gmail.com";
github = "pablo1107";

View file

@ -0,0 +1,202 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p "python3.withPackages(ps: with ps; [ ])" nix
"""
A program to remove old aliases or convert old aliases to throws
Example usage:
./maintainers/scripts/remove-old-aliases.py --year 2018 --file ./pkgs/top-level/aliases.nix
Check this file with mypy after every change!
$ mypy --strict maintainers/scripts/remove-old-aliases.py
"""
import argparse
import shutil
import subprocess
from datetime import date as datetimedate
from datetime import datetime
from pathlib import Path
def process_args() -> argparse.Namespace:
"""process args"""
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument(
"--year", required=True, type=int, help="operate on aliases older than $year"
)
arg_parser.add_argument(
"--month",
type=int,
default=1,
help="operate on aliases older than $year-$month",
)
arg_parser.add_argument("--file", required=True, type=Path, help="alias file")
arg_parser.add_argument(
"--dry-run", action="store_true", help="don't modify files, only print results"
)
return arg_parser.parse_args()
def get_date_lists(
txt: list[str], cutoffdate: datetimedate
) -> tuple[list[str], list[str], list[str]]:
"""get a list of lines in which the date is older than $cutoffdate"""
date_older_list: list[str] = []
date_older_throw_list: list[str] = []
date_sep_line_list: list[str] = []
for lineno, line in enumerate(txt, start=1):
line = line.rstrip()
my_date = None
for string in line.split():
string = string.strip(":")
try:
# strip ':' incase there is a string like 2019-11-01:
my_date = datetime.strptime(string, "%Y-%m-%d").date()
except ValueError:
try:
my_date = datetime.strptime(string, "%Y-%m").date()
except ValueError:
continue
if my_date is None or my_date > cutoffdate:
continue
if "=" not in line:
date_sep_line_list.append(f"{lineno} {line}")
# 'if' lines could be complicated
elif "if " in line and "if =" not in line:
print(f"RESOLVE MANUALLY {line}")
elif "throw" in line:
date_older_throw_list.append(line)
else:
date_older_list.append(line)
return (
date_older_list,
date_sep_line_list,
date_older_throw_list,
)
def convert_to_throw(date_older_list: list[str]) -> list[tuple[str, str]]:
"""convert a list of lines to throws"""
converted_list = []
for line in date_older_list.copy():
indent: str = " " * (len(line) - len(line.lstrip()))
before_equal = ""
after_equal = ""
try:
before_equal, after_equal = (x.strip() for x in line.split("=", maxsplit=2))
except ValueError as err:
print(err, line, "\n")
date_older_list.remove(line)
continue
alias = before_equal.strip()
after_equal_list = [x.strip(";:") for x in after_equal.split()]
converted = (
f"{indent}{alias} = throw \"'{alias}' has been renamed to/replaced by"
f" '{after_equal_list.pop(0)}'\";"
f' # Converted to throw {datetime.today().strftime("%Y-%m-%d")}'
)
converted_list.append((line, converted))
return converted_list
def generate_text_to_write(
txt: list[str],
date_older_list: list[str],
converted_to_throw: list[tuple[str, str]],
date_older_throw_list: list[str],
) -> list[str]:
"""generate a list of text to be written to the aliasfile"""
text_to_write: list[str] = []
for line in txt:
text_to_append: str = ""
if converted_to_throw:
for tupl in converted_to_throw:
if line == tupl[0]:
text_to_append = f"{tupl[1]}\n"
if line not in date_older_list and line not in date_older_throw_list:
text_to_append = f"{line}\n"
if text_to_append:
text_to_write.append(text_to_append)
return text_to_write
def write_file(
aliasfile: Path,
text_to_write: list[str],
) -> None:
"""write file"""
temp_aliasfile = Path(f"{aliasfile}.raliases")
with open(temp_aliasfile, "w", encoding="utf-8") as far:
for line in text_to_write:
far.write(line)
print("\nChecking the syntax of the new aliasfile")
try:
subprocess.run(
["nix-instantiate", "--eval", temp_aliasfile],
check=True,
stdout=subprocess.DEVNULL,
)
except subprocess.CalledProcessError:
print(
"\nSyntax check failed,",
"there may have been a line which only has\n"
'aliasname = "reason why";\n'
"when it should have been\n"
'aliasname = throw "reason why";',
)
temp_aliasfile.unlink()
return
shutil.move(f"{aliasfile}.raliases", aliasfile)
print(f"{aliasfile} modified! please verify with 'git diff'.")
def main() -> None:
"""main"""
args = process_args()
aliasfile = Path(args.file).absolute()
cutoffdate = (datetime.strptime(f"{args.year}-{args.month}-01", "%Y-%m-%d")).date()
txt: list[str] = (aliasfile.read_text(encoding="utf-8")).splitlines()
date_older_list: list[str] = []
date_sep_line_list: list[str] = []
date_older_throw_list: list[str] = []
date_older_list, date_sep_line_list, date_older_throw_list = get_date_lists(
txt, cutoffdate
)
converted_to_throw: list[tuple[str, str]] = []
converted_to_throw = convert_to_throw(date_older_list)
if date_older_list:
print(" Will be converted to throws. ".center(100, "-"))
for l_n in date_older_list:
print(l_n)
if date_older_throw_list:
print(" Will be removed. ".center(100, "-"))
for l_n in date_older_throw_list:
print(l_n)
if date_sep_line_list:
print(" On separate line, resolve manually. ".center(100, "-"))
for l_n in date_sep_line_list:
print(l_n)
if not args.dry_run:
text_to_write = generate_text_to_write(
txt, date_older_list, converted_to_throw, date_older_throw_list
)
write_file(aliasfile, text_to_write)
if __name__ == "__main__":
main()

View file

@ -932,6 +932,14 @@
renamed to <literal>linux-firmware</literal>.
</para>
</listitem>
<listitem>
<para>
It is now possible to specify wordlists to include as handy to
access environment variables using the
<literal>config.environment.wordlist</literal> configuration
options.
</para>
</listitem>
<listitem>
<para>
The <literal>services.mbpfan</literal> module was converted to
@ -970,6 +978,13 @@
Plugins are automatically repackaged using autoPatchelf.
</para>
</listitem>
<listitem>
<para>
<literal>services.logrotate.enable</literal> now defaults to
true if any rotate path has been defined, and some paths have
been added by default.
</para>
</listitem>
<listitem>
<para>
The <literal>zrepl</literal> package has been updated from

View file

@ -311,6 +311,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `firmwareLinuxNonfree` package has been renamed to `linux-firmware`.
- It is now possible to specify wordlists to include as handy to access environment variables using the `config.environment.wordlist` configuration options.
- The `services.mbpfan` module was converted to a [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
- The default value for `programs.spacefm.settings.graphical_su` got unset. It previously pointed to `gksu` which has been removed.
@ -323,6 +325,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.mattermost.plugins` has been added to allow the declarative installation of Mattermost plugins.
Plugins are automatically repackaged using autoPatchelf.
- `services.logrotate.enable` now defaults to true if any rotate path has
been defined, and some paths have been added by default.
- The `zrepl` package has been updated from 0.4.0 to 0.5:
- The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.

View file

@ -0,0 +1,59 @@
{ config, lib, pkgs, ... }:
with lib;
let
concatAndSort = name: files: pkgs.runCommand name {} ''
awk 1 ${lib.escapeShellArgs files} | sed '{ /^\s*$/d; s/^\s\+//; s/\s\+$// }' | sort | uniq > $out
'';
in
{
options = {
environment.wordlist = {
enable = mkEnableOption "environment variables for lists of words";
lists = mkOption {
type = types.attrsOf (types.nonEmptyListOf types.path);
default = {
WORDLIST = [ "${pkgs.scowl}/share/dict/words.txt" ];
};
defaultText = literalExpression ''
{
WORDLIST = [ "''${pkgs.scowl}/share/dict/words.txt" ];
}
'';
description = ''
A set with the key names being the environment variable you'd like to
set and the values being a list of paths to text documents containing
lists of words. The various files will be merged, sorted, duplicates
removed, and extraneous spacing removed.
If you have a handful of words that you want to add to an already
existing wordlist, you may find `builtins.toFile` useful for this
task.
'';
example = literalExpression ''
{
WORDLIST = [ "''${pkgs.scowl}/share/dict/words.txt" ];
AUGMENTED_WORDLIST = [
"''${pkgs.scowl}/share/dict/words.txt"
"''${pkgs.scowl}/share/dict/words.variants.txt"
(builtins.toFile "extra-words" '''
desynchonization
oobleck''')
];
}
'';
};
};
};
config = mkIf config.environment.wordlist.enable {
environment.variables =
lib.mapAttrs
(name: value: "${concatAndSort "wordlist-${name}" value}")
config.environment.wordlist.lists;
};
}

View file

@ -115,6 +115,7 @@
./misc/nixpkgs.nix
./misc/passthru.nix
./misc/version.nix
./misc/wordlist.nix
./misc/nixops-autoluks.nix
./programs/adb.nix
./programs/appgate-sdp.nix

View file

@ -4,7 +4,6 @@ with lib;
let
cfg = config.services.logrotate;
inherit (config.users) groups;
pathOpts = { name, ... }: {
options = {
@ -85,10 +84,6 @@ let
};
config.name = name;
config.extraConfig = ''
missingok
notifempty
'';
};
mkConf = pathOpts: ''
@ -102,7 +97,11 @@ let
'';
paths = sortProperties (attrValues (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths));
configFile = pkgs.writeText "logrotate.conf" (concatStringsSep "\n" ((map mkConf paths) ++ [ cfg.extraConfig ]));
configFile = pkgs.writeText "logrotate.conf" (
concatStringsSep "\n" (
[ "missingok" "notifempty" cfg.extraConfig ] ++ (map mkConf paths)
)
);
in
{
@ -112,7 +111,10 @@ in
options = {
services.logrotate = {
enable = mkEnableOption "the logrotate systemd service";
enable = mkEnableOption "the logrotate systemd service" // {
default = foldr (n: a: a || n.enable) false (attrValues cfg.paths);
defaultText = literalExpression "cfg.paths != {}";
};
paths = mkOption {
type = with types; attrsOf (submodule pathOpts);
@ -163,25 +165,6 @@ in
}
) cfg.paths;
services.logrotate = {
paths = {
"/var/log/btmp" = {
frequency = mkDefault "monthly";
keep = mkDefault 1;
extraConfig = ''
create 0660 root ${groups.utmp.name}
'';
};
"/var/log/wtmp" = {
frequency = mkDefault "monthly";
keep = mkDefault 1;
extraConfig = ''
create 0664 root ${groups.utmp.name}
'';
};
};
};
systemd.services.logrotate = {
description = "Logrotate Service";
wantedBy = [ "multi-user.target" ];

View file

@ -988,5 +988,17 @@ in
nginx.gid = config.ids.gids.nginx;
};
services.logrotate.paths.nginx = mapAttrs (_: mkDefault) {
path = "/var/log/nginx/*.log";
frequency = "weekly";
keep = 26;
extraConfig = ''
compress
delaycompress
postrotate
[ ! -f /var/run/nginx/nginx.pid ] || kill -USR1 `cat /var/run/nginx/nginx.pid`
endscript
'';
};
};
}

View file

@ -1217,6 +1217,23 @@ in
boot.kernel.sysctl."kernel.pid_max" = mkIf pkgs.stdenv.is64bit (lib.mkDefault 4194304);
boot.kernelParams = optional (!cfg.enableUnifiedCgroupHierarchy) "systemd.unified_cgroup_hierarchy=0";
services.logrotate.paths = {
"/var/log/btmp" = mapAttrs (_: mkDefault) {
frequency = "monthly";
keep = 1;
extraConfig = ''
create 0660 root ${config.users.groups.utmp.name}
'';
};
"/var/log/wtmp" = mapAttrs (_: mkDefault) {
frequency = "monthly";
keep = 1;
extraConfig = ''
create 0664 root ${config.users.groups.utmp.name}
'';
};
};
};
# FIXME: Remove these eventually.

View file

@ -270,6 +270,7 @@ in
litestream = handleTest ./litestream.nix {};
locate = handleTest ./locate.nix {};
login = handleTest ./login.nix {};
logrotate = handleTest ./logrotate.nix {};
loki = handleTest ./loki.nix {};
lxd = handleTest ./lxd.nix {};
lxd-image = handleTest ./lxd-image.nix {};
@ -347,6 +348,7 @@ in
nginx = handleTest ./nginx.nix {};
nginx-auth = handleTest ./nginx-auth.nix {};
nginx-etag = handleTest ./nginx-etag.nix {};
nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
nginx-sso = handleTest ./nginx-sso.nix {};

35
nixos/tests/logrotate.nix Normal file
View file

@ -0,0 +1,35 @@
# Test logrotate service works and is enabled by default
import ./make-test-python.nix ({ pkgs, ...} : rec {
name = "logrotate";
meta = with pkgs.lib.maintainers; {
maintainers = [ martinetd ];
};
# default machine
machine = { ... }: {
};
testScript =
''
with subtest("whether logrotate works"):
machine.succeed(
# we must rotate once first to create logrotate stamp
"systemctl start --wait logrotate.service",
# wtmp is present in default config.
"rm -f /var/log/wtmp*",
"echo test > /var/log/wtmp",
# move into the future and rotate
"date -s 'now + 1 month + 1 day'",
# systemd will run logrotate from logrotate.timer automatically
# on date change, but if we want to wait for it to terminate
# it's easier to run again...
"systemctl start --wait logrotate.service",
# check rotate worked
"[ -e /var/log/wtmp.1 ]",
)
'';
})

View file

@ -0,0 +1,39 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "nginx-modsecurity";
machine = { config, lib, pkgs, ... }: {
services.nginx = {
enable = true;
additionalModules = [ pkgs.nginxModules.modsecurity-nginx ];
virtualHosts.localhost =
let modsecurity_conf = pkgs.writeText "modsecurity.conf" ''
SecRuleEngine On
SecDefaultAction "phase:1,log,auditlog,deny,status:403"
SecDefaultAction "phase:2,log,auditlog,deny,status:403"
SecRule REQUEST_METHOD "HEAD" "id:100, phase:1, block"
SecRule REQUEST_FILENAME "secret.html" "id:101, phase:2, block"
'';
testroot = pkgs.runCommand "testroot" {} ''
mkdir -p $out
echo "<html><body>Hello World!</body></html>" > $out/index.html
echo "s3cret" > $out/secret.html
'';
in {
root = testroot;
extraConfig = ''
modsecurity on;
modsecurity_rules_file ${modsecurity_conf};
'';
};
};
};
testScript = ''
machine.wait_for_unit("nginx")
response = machine.wait_until_succeeds("curl -fvvv -s http://127.0.0.1/")
assert "Hello World!" in response
machine.fail("curl -fvvv -X HEAD -s http://127.0.0.1/")
machine.fail("curl -fvvv -s http://127.0.0.1/secret.html")
'';
})

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "testssl.sh";
version = "3.0.6";
version = "3.0.7";
src = fetchFromGitHub {
owner = "drwetter";
repo = pname;
rev = "v${version}";
sha256 = "016qpsb4dv9qb3ab3hmvk4vzf4ipr3xgmzv2cx46pxxsj0gnigd8";
sha256 = "sha256-SZfGiKSbLq81YdDMgG0C6LC/nE5NApqeWK/PqDzQNBU=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "qalculate-gtk";
version = "3.22.0";
version = "4.0.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-gtk";
rev = "v${version}";
sha256 = "sha256-BarbO25c103YImOOnjVgwgqpa3mUVvndgJeUHRf2I60=";
sha256 = "sha256-l9lR5MVHWiRz5RG/I/nXRY4GQSSaXXP7PlRNoAu9+yo=";
};
hardeningDisable = [ "format" ];

View file

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "got";
version = "0.66";
version = "0.67";
src = fetchurl {
url =
"https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
sha256 = "13xrwndj80jix210fxkadivxyd1f5qavdrhxyl32n68xyv5xmkgg";
sha256 = "sha256-37Ncljw2tibVRrynDlbxk7d5IS+5QypNFvKIkZ5JvME=";
};
nativeBuildInputs = [ pkg-config ];

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "i3-balance-workspace";
version = "1.8.5";
version = "1.8.6";
src = fetchPypi {
inherit pname version;
sha256 = "7b5d72b756f79878a058484825bb343b100433e00a01f80c9c6d1ccc9f4af57a";
sha256 = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
};
propagatedBuildInputs = [ i3ipc ];

View file

@ -2,7 +2,7 @@
let
pname = "parastoo-fonts";
version = "1.0.0-alpha5";
version = "2.0.1";
in fetchFromGitHub {
name = "${pname}-${version}";
@ -14,7 +14,7 @@ in fetchFromGitHub {
tar xf $downloadedFile --strip=1
find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/parastoo-fonts {} \;
'';
sha256 = "10jbii6rskcy4akjl5yfcqv4mfwk3nqnx36l6sbxks43va9l04f4";
sha256 = "sha256-4smobLS43DB7ISmbWDWX0IrtaeiyXpi1QpAiL8NyXoQ=";
meta = with lib; {
homepage = "https://github.com/rastikerdar/parastoo-font";

File diff suppressed because one or more lines are too long

View file

@ -5,6 +5,7 @@ with lib; mkCoqDerivation {
pname = "coqhammer";
owner = "lukaszcz";
defaultVersion = with versions; switch coq.coq-version [
{ case = "8.15"; out = "1.3.2-coq8.15"; }
{ case = "8.14"; out = "1.3.2-coq8.14"; }
{ case = "8.13"; out = "1.3.2-coq8.13"; }
{ case = "8.12"; out = "1.3.2-coq8.12"; }
@ -13,6 +14,8 @@ with lib; mkCoqDerivation {
{ case = "8.9"; out = "1.1.1-coq8.9"; }
{ case = "8.8"; out = "1.1-coq8.8"; }
] null;
release."1.3.2-coq8.15".sha256 = "sha256:0n0y9wda8bx88r17ls9541ibxw013ghp73zshgb65bi7ibznbhha";
release."1.3.2-coq8.15".rev = "9a3e689036f12c09800ca3bac05054af0cc49233";
release."1.3.2-coq8.14".sha256 = "sha256:1pvs4p95lr31jb86f33p2q9v8zq3xbci1fk6s6a2g2snfxng1574";
release."1.3.2-coq8.13".sha256 = "sha256:0krsm8qj9lgfbggxv2jhkbk3vy2cz63qypnarnl31fdmpykchi4b";
release."1.3.2-coq8.12".sha256 = "sha256:08mnr13lrdnpims6kf8pk6axf4s8qqs0a71hzg3frkx21d6nawhh";

View file

@ -11,14 +11,13 @@
, file
, gtk-doc
, docbook-xsl-nons
, help2man
, docbook_xml_dtd_412
, glib
}:
stdenv.mkDerivation rec {
pname = "libmodulemd";
version = "2.13.0";
version = "2.14.0";
outputs = [ "bin" "out" "dev" "devdoc" "man" "py" ];
@ -26,7 +25,7 @@ stdenv.mkDerivation rec {
owner = "fedora-modularity";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-hg/it3pHUnEYsmKcLzQKcZNthHZZwdXBjzTlOS1Losk=";
sha256 = "sha256-ccLk8O0UJwy7WZYr5Bq2XqaSFNe4i7HQehmVoB5C2Yg=";
};
patches = [
@ -43,7 +42,6 @@ stdenv.mkDerivation rec {
ninja
gtk-doc
docbook-xsl-nons
help2man
docbook_xml_dtd_412
gobject-introspection
];

View file

@ -67,6 +67,11 @@ stdenv.mkDerivation rec {
configureScript = "python ./configure";
# disable stackprotector on aarch64-darwin for now
# https://github.com/NixOS/nixpkgs/issues/158730
# see https://github.com/NixOS/nixpkgs/issues/127608 for a similar issue
hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ];
enableParallelBuilding = true;
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;

View file

@ -23,7 +23,7 @@
buildPythonPackage rec {
pname = "dask";
version = "2022.01.0";
version = "2022.02.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -32,8 +32,7 @@ buildPythonPackage rec {
owner = "dask";
repo = pname;
rev = version;
sha256 = "sha256-HlVvnhEDzefzv9xchlXl9d4KCumoAqoYUWmIiCXLJyM=
";
hash = "sha256-tDqpIS8j6a16YbJak+P1GkCEZvJyheWV5vkUrkhScRY=";
};
propagatedBuildInputs = [

View file

@ -19,20 +19,17 @@
buildPythonPackage rec {
pname = "distributed";
version = "2021.12.0";
disabled = pythonOlder "3.6";
version = "2022.2.0";
format = "setuptools";
disabled = pythonOlder "3.7";
# get full repository need conftest.py to run tests
src = fetchPypi {
inherit pname version;
sha256 = "c6119a2cf1fb2d8ac60337915bb9a790af6530afcb5d7a809a3308323b874714";
hash = "sha256-Gi9u7JczpnAEg53E7N5tXBfAeWZaLBVzRU3SpbU3bZU=";
};
postPatch = ''
substituteInPlace requirements.txt \
--replace "dask == 2021.11.2" "dask"
'';
propagatedBuildInputs = [
bokeh
click
@ -49,10 +46,17 @@ buildPythonPackage rec {
zict
];
postPatch = ''
substituteInPlace requirements.txt \
--replace "dask == 2022.02.0" "dask"
'';
# when tested random tests would fail and not repeatably
doCheck = false;
pythonImportsCheck = [ "distributed" ];
pythonImportsCheck = [
"distributed"
];
meta = with lib; {
description = "Distributed computation in Python";

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "flux-led";
version = "0.28.26";
version = "0.28.27";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Danielhiversen";
repo = "flux_led";
rev = version;
sha256 = "sha256-t8SE+TU9OW/iQHVLbEdTgX4azXendKSgJQ4/QpDSkL8=";
sha256 = "sha256-Z1NgQo4BrfdPAwoELzyjZphmuvPK/c09j/BvDOWaD9I=";
};
propagatedBuildInputs = [

View file

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "fsspec";
version = "2021.10.1";
version = "2022.01.0";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "intake";
repo = "filesystem_spec";
rev = version;
sha256 = "sha256-LgrOHBXKs2bEgtgrdHb1OEhOeQ5Rbgr6X5YtgiqiCH0=";
sha256 = "sha256-iPe2q9hY3ZRIKQGpxrHda3t9G0AtbtohVcWdnAzlzCo=";
};
propagatedBuildInputs = [

View file

@ -18,15 +18,16 @@
buildPythonPackage rec {
pname = "gcsfs";
version = "2021.10.1";
version = "2022.01.0";
format = "setuptools";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "fsspec";
repo = pname;
rev = version;
sha256 = "sha256-cpV+HKE39Yct1yu5xW9HZftx2Wy9ydFL2YLvPD3YM2M=";
hash = "sha256-wNeK1GdjK9GKaaECcFeBLjFf/h3MbLI5e4MX0UNoTqE=";
};
propagatedBuildInputs = [
@ -47,11 +48,15 @@ buildPythonPackage rec {
vcrpy
];
disabledTests = [
# Tests wants to communicate with the Link-local address
"test_GoogleCredentials_None"
disabledTestPaths = [
# Tests require a running Docker instance
"gcsfs/tests/test_core.py"
"gcsfs/tests/test_mapping.py"
"gcsfs/tests/test_retry.py"
];
pytestFlagsArray = [ "-x" ];
pythonImportsCheck = [
"gcsfs"
];

View file

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "hahomematic";
version = "0.35.1";
version = "0.35.2";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "danielperna84";
repo = pname;
rev = version;
sha256 = "sha256-ZQwL++j7wIaBYkLDAxUH2jhzxvf40tjgUPTZR4kySNk=";
sha256 = "sha256-CDHPoGwHQ8hxN5tX4arnDcNLVqBl9U9FhH2134ly6x4=";
};
propagatedBuildInputs = [

View file

@ -4,9 +4,7 @@
, fetchPypi
, substituteAll
, portmidi
, pygame
, python-rtmidi
, rtmidi-python
, pytestCheckHook
}:
@ -27,9 +25,7 @@ buildPythonPackage rec {
];
propagatedBuildInputs = [
pygame
python-rtmidi
rtmidi-python
];
checkInputs = [

View file

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "pc-ble-driver-py";
version = "0.16.2";
version = "0.16.3";
disabled = pythonOlder "3.7" || pythonAtLeast "3.10";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "NordicSemiconductor";
repo = "pc-ble-driver-py";
rev = "v${version}";
sha256 = "013kpj2df5grkrzxak22k01mskpmwf7g3aa1fmxdwi90bb1sabs5";
sha256 = "sha256-X21GQsyRZu1xdoTlD9DjceIWKpcuTLdIDf8UahntS3s=";
};
nativeBuildInputs = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "pyoverkiz";
version = "1.3.5";
version = "1.3.6";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "iMicknl";
repo = "python-overkiz-api";
rev = "v${version}";
hash = "sha256-KxZYluXa15RojAyNe5hA8Yf/Q9/mVl+b0TrDGRE6iuM=";
hash = "sha256-wH7mb2qagnPZ4ZEya9P34DKS2vJ5oDSXyiuCwP84mTQ=";
};
nativeBuildInputs = [

View file

@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "pysaml2";
version = "7.1.0";
version = "7.1.1";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "IdentityPython";
repo = pname;
rev = "v${version}";
sha256 = "sha256-3Yl6j6KAlw7QQYnwU7+naY6D97IqX766zguekKAuic8=";
sha256 = "sha256-uRfcn3nCK+tx6ol6ZFarOSrDOh0cfC9gZXBZ7EICQzw=";
};
propagatedBuildInputs = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "pyuptimerobot";
version = "21.11.0";
version = "22.2.0";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "ludeeus";
repo = pname;
rev = version;
sha256 = "1nmmwp9m38b75lz51ypcj0qxnxm9wq4id5cggl0pn2rx6gwnbw9n";
sha256 = "sha256-QZm8FlUm17Vv80hB3iai54QcVlhSrq2AvbdBaRWDyok=";
};
propagatedBuildInputs = [

View file

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "renault-api";
version = "0.1.8";
version = "0.1.9";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "hacf-fr";
repo = pname;
rev = "v${version}";
sha256 = "sha256-gGr9yzcEgcte2uYhHzgmqT80JRJyRia31bK/v+42teU=";
sha256 = "sha256-CZDxJ5vgk9I1cRDXoqcrUHu+buPWYVrEcHaRXcyts7I=";
};
nativeBuildInputs = [
@ -47,7 +47,9 @@ buildPythonPackage rec {
pytestCheckHook
];
pythonImportsCheck = [ "renault_api" ];
pythonImportsCheck = [
"renault_api"
];
meta = with lib; {
description = "Python library to interact with the Renault API";

View file

@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "requests-cache";
version = "0.9.1";
version = "0.9.3";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -29,8 +29,7 @@ buildPythonPackage rec {
owner = "reclosedev";
repo = "requests-cache";
rev = "v${version}";
sha256 = "sha256-MZ3N0zbo745erF52D6DqOEb4OPpXFwSsemi0z6Do02c=
";
hash = "sha256-9eA2fx+j6WLbEkLaemwEuoWLUWlS0iF5AkR2YienN5g=";
};
nativeBuildInputs = [
@ -56,6 +55,10 @@ buildPythonPackage rec {
timeout-decorator
];
preCheck = ''
export HOME=$(mktemp -d);
'';
pytestFlagsArray = [
# Integration tests require local DBs
"tests/unit"

View file

@ -40,14 +40,14 @@
buildPythonPackage rec {
pname = "sentry-sdk";
version = "1.5.5";
version = "1.5.6";
format = "setuptools";
src = fetchFromGitHub {
owner = "getsentry";
repo = "sentry-python";
rev = version;
sha256 = "sha256-hOWMrAFPwtURIngCN4vCxWrI6QZLOnakkNf+fZVyzzc=";
sha256 = "sha256-PxoxOeFdmmfpXBnGs9D5aKP6vlGKx9nPO3ngYuTa+Rs=";
};
propagatedBuildInputs = [

View file

@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "tifffile";
version = "2021.11.2";
version = "2022.2.9";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-FT4x+h2JL0gvq7KunyVh+kKe5C0BpvZ+WM7hNjfZKFs=";
hash = "sha256-ftp0EXZDaBuyyqaVtI854iQ7SIf3z5kdWt/9gT5cg3M=";
};
propagatedBuildInputs = [

View file

@ -0,0 +1,46 @@
{ lib
, buildPythonPackage
, fetchPypi
, python-Levenshtein
, pytesseract
, opencv4
, fuzzywuzzy
}:
buildPythonPackage rec {
pname = "videocr";
version = "0.1.6";
src = fetchPypi {
inherit pname version;
sha256 = "1clifwczvhvbaw2spgxkkyqsbqh21vyfw3rh094pxfmq89ylyj63";
};
propagatedBuildInputs = [
python-Levenshtein
pytesseract
opencv4
fuzzywuzzy
];
postPatch = ''
substituteInPlace setup.py \
--replace "opencv-python" "opencv"
substituteInPlace videocr/constants.py \
--replace "master" "main"
substituteInPlace videocr/video.py \
--replace '--tessdata-dir "{}"' '--tessdata-dir="{}"'
'';
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "videocr" ];
meta = with lib; {
description = "Extract hardcoded subtitles from videos using machine learning";
homepage = "https://github.com/apm1467/videocr";
license = licenses.mit;
maintainers = with maintainers; [ ozkutuk ];
};
}

View file

@ -2,14 +2,14 @@
rustPlatform.buildRustPackage rec {
pname = "apkeep";
version = "0.7.0";
version = "0.9.0";
src = fetchCrate {
inherit pname version;
sha256 = "0anfp3nwsainx9sw4njcmkzczq1rmib3dyncwhcf7y3j9v978d3h";
sha256 = "sha256-ST1ifON25mizKZQX3fKeqBloXWW9LXDq5JkZIeiguRY=";
};
cargoSha256 = "0npw8f8c0qcprcins0pc12c5w47kv8dd1nrzv4xyllr44vx488mc";
cargoSha256 = "sha256-/Xh1s4PO336B1ioKe0IKVGDACpMuXOpxA82U6zn2lj0=";
prePatch = ''
rm .cargo/config.toml

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "wg-netmanager";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "gin66";
repo = "wg_netmanager";
rev = "wg_netmanager-v${version}";
sha256 = "sha256-2LO1OCGlkjdszwgNBZ+Qwp126VfDq3pxf0Gz+6kzuPI=";
sha256 = "sha256-Mr4+TW1yOePEHa7puz6mTRJ514LGQeiEwPW3NKupV/M=";
};
cargoSha256 = "sha256-EM0TPMyWMVpLFhan0boAQoAvMHBVgXp6mnYJLHOHiV8=";
cargoSha256 = "sha256-cOxkWMFPVmi+/BQWIvExzX5LDyC7C8kaTf5dGwfXj+s=";
buildInputs = lib.optional stdenv.isDarwin Security;
@ -21,7 +21,12 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "Wireguard network manager";
longDescription = "Wireguard network manager, written in rust, simplifies the setup of wireguard nodes, identifies short connections between nodes residing in the same subnet, identifies unreachable aka dead nodes and maintains the routes between all nodes automatically. To achieve this, wireguard network manager needs to be running on each node.";
longDescription = ''
Wireguard network manager, written in rust, simplifies the setup of wireguard nodes,
identifies short connections between nodes residing in the same subnet,
identifies unreachable aka dead nodes and maintains the routes between all nodes automatically.
To achieve this, wireguard network manager needs to be running on each node.
'';
homepage = "https://github.com/gin66/wg_netmanager";
license = with licenses; [ mit asl20 bsd3 mpl20 ];
maintainers = with maintainers; [ gin66 ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "exploitdb";
version = "2022-02-22";
version = "2022-02-23";
src = fetchFromGitHub {
owner = "offensive-security";
repo = pname;
rev = version;
sha256 = "sha256-gCvxIMM1fBUhU03LnBaS+wOgr45C9Wjz5ahgT+DEZnI=";
sha256 = "sha256-5jxcx16CS35U8MVWR8Ea4hUTweQfsLSceVaQN5T5XiU=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "kubescape";
version = "2.0.147";
version = "2.0.148";
src = fetchFromGitHub {
owner = "armosec";
repo = pname;
rev = "v${version}";
hash = "sha256-5ESAvLCAQ6ttpuc3YGkUwUvvhHZj+QYXyx30fhVSP1Y=";
hash = "sha256-Wn/yVGAAdAaIsHUDWWqVyAlOTYIXpbwIktX9h4LN+fQ=";
};
nativeBuildInputs = [

View file

@ -2,6 +2,7 @@
, autoreconfHook, bison, flex, pkg-config
, curl, geoip, libmaxminddb, libxml2, lmdb, lua, pcre
, ssdeep, valgrind, yajl
, nixosTests
}:
stdenv.mkDerivation rec {
@ -50,6 +51,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
passthru.tests = {
nginx-modsecurity = nixosTests.nginx-modsecurity;
};
meta = with lib; {
homepage = "https://github.com/SpiderLabs/ModSecurity";
description = ''

View file

@ -5,13 +5,13 @@
buildGoModule rec {
pname = "terrascan";
version = "1.13.1";
version = "1.13.2";
src = fetchFromGitHub {
owner = "accurics";
repo = pname;
rev = "v${version}";
sha256 = "sha256-GIonoedad/ruKN8DaFfFdW4l3ZWIM1NI5DtgBYPw+38=";
sha256 = "sha256-ja7Cpd+BegGdKOWAiH5JsniO4NYlFEgJzqBuNzE2ao4=";
};
vendorSha256 = "sha256-h/mSF4hJ3TS+4b3CCUEXVin8MRcPg8qEe90Mcxk0uVo=";

View file

@ -1,6 +1,7 @@
{ lib, stdenv, fetchFromGitHub, gzip, popt, autoreconfHook
, mailutils ? null
, aclSupport ? true, acl
, nixosTests
}:
stdenv.mkDerivation rec {
@ -25,6 +26,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ popt ] ++ lib.optionals aclSupport [ acl ];
passthru.tests = {
nixos-logrotate = nixosTests.logrotate;
};
meta = with lib; {
homepage = "https://github.com/logrotate/logrotate";
description = "Rotates and compresses system logs";

View file

@ -35,6 +35,9 @@ in
### Please maintain this list in ASCIIbetical ordering.
### Hint: the "sections" are delimited by ### <letter> ###
# A script to convert old aliases to throws and remove old
# throws can be found in './maintainers/scripts/remove-old-aliases.py'.
mapAliases ({
# forceSystem should not be used directly in Nixpkgs.
# Added 2018-07-16

View file

@ -10361,6 +10361,8 @@ in {
veryprettytable = callPackage ../development/python-modules/veryprettytable { };
videocr = callPackage ../development/python-modules/videocr { };
vidstab = callPackage ../development/python-modules/vidstab { };
ViennaRNA = toPythonModule pkgs.ViennaRNA;