Merge master into staging-next
This commit is contained in:
commit
10c4b97b44
|
@ -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";
|
||||
|
|
202
maintainers/scripts/remove-old-aliases.py
Executable file
202
maintainers/scripts/remove-old-aliases.py
Executable 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()
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
59
nixos/modules/misc/wordlist.nix
Normal file
59
nixos/modules/misc/wordlist.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
35
nixos/tests/logrotate.nix
Normal 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 ]",
|
||||
)
|
||||
'';
|
||||
})
|
39
nixos/tests/nginx-modsecurity.nix
Normal file
39
nixos/tests/nginx-modsecurity.nix
Normal 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")
|
||||
'';
|
||||
})
|
|
@ -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 ];
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
46
pkgs/development/python-modules/videocr/default.nix
Normal file
46
pkgs/development/python-modules/videocr/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue