diff options
-rw-r--r-- | pkgs/development/python-modules/arsenic/default.nix | 70 | ||||
-rw-r--r-- | pkgs/tools/security/wapiti/default.nix | 28 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 2 |
3 files changed, 89 insertions, 11 deletions
diff --git a/pkgs/development/python-modules/arsenic/default.nix b/pkgs/development/python-modules/arsenic/default.nix new file mode 100644 index 000000000000..e2c929b25147 --- /dev/null +++ b/pkgs/development/python-modules/arsenic/default.nix @@ -0,0 +1,70 @@ +{ lib +, aiohttp +, attrs +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, poetry-core +, pytestCheckHook +, pythonRelaxDepsHook +, pythonOlder +, structlog +}: + +buildPythonPackage rec { + pname = "arsenic"; + version = "21.8"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "HENNGE"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-fsLo22PR9WdX2FazPgr8B8dFq6EM1LLTpRFGEm/ymCE="; + }; + + patches = [ + # Switch to poetry-core, https://github.com/HENNGE/arsenic/pull/160 + (fetchpatch { + name = "switch-to-poetry-core.patch"; + url = "https://github.com/HENNGE/arsenic/commit/ca82894a5f1e832ab9283a245258b334bdd48855.patch"; + hash = "sha256-ECCUaJF4MRmFOKH1C6HowJ+zmbEPPiS7h9DlKw5otZc="; + }) + ]; + + pythonRelaxDeps = [ + "structlog" + ]; + + nativeBuildInputs = [ + poetry-core + pythonRelaxDepsHook + ]; + + propagatedBuildInputs = [ + aiohttp + attrs + structlog + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + # Depends on asyncio_extras which is not longer maintained + doCheck = false; + + pythonImportsCheck = [ + "arsenic" + ]; + + meta = with lib; { + description = "WebDriver implementation for asyncio and asyncio-compatible frameworks"; + homepage = "https://github.com/HENNGE/arsenic/"; + changelog = "https://github.com/HENNGE/arsenic/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/tools/security/wapiti/default.nix b/pkgs/tools/security/wapiti/default.nix index 6aec3dd105f2..49c0f8cd14fb 100644 --- a/pkgs/tools/security/wapiti/default.nix +++ b/pkgs/tools/security/wapiti/default.nix @@ -5,19 +5,20 @@ python3.pkgs.buildPythonApplication rec { pname = "wapiti"; - version = "3.1.3"; + version = "3.1.6"; format = "setuptools"; src = fetchFromGitHub { owner = "wapiti-scanner"; repo = pname; - rev = version; - sha256 = "sha256-alrJVe4Miarkk8BziC8Y333b3swJ4b4oQpP2WAdT2rc="; + rev = "refs/tags/${version}"; + hash = "sha256-b377nPXvpxg+WDNgjxm2RoJ5jNt7MTES2Bspxsvo/wc="; }; propagatedBuildInputs = with python3.pkgs; [ aiocache aiosqlite + arsenic beautifulsoup4 brotli browser-cookie3 @@ -63,15 +64,15 @@ python3.pkgs.buildPythonApplication rec { "test_bad_separator_used" "test_blind" "test_chunked_timeout" - "test_cookies" - "test_drop_cookies" - "test_save_and_restore_state" - "test_explorer_extract_links" "test_cookies_detection" + "test_cookies" "test_csrf_cases" "test_detection" "test_direct" + "test_dom_detection" + "test_drop_cookies" "test_escape_with_style" + "test_explorer_extract_links" "test_explorer_filtering" "test_false" "test_frame" @@ -79,21 +80,21 @@ python3.pkgs.buildPythonApplication rec { "test_html_detection" "test_implies_detection" "test_inclusion_detection" + "test_merge_with_and_without_redirection" "test_meta_detection" + "test_multi_detection" "test_no_crash" "test_options" "test_out_of_band" - "test_multi_detection" - "test_vulnerabilities" "test_partial_tag_name_escape" "test_prefix_and_suffix_detection" "test_qs_limit" "test_rare_tag_and_event" "test_redirect_detection" "test_request_object" + "test_save_and_restore_state" "test_script" "test_ssrf" - "test_merge_with_and_without_redirection" "test_tag_name_escape" "test_timeout" "test_title_false_positive" @@ -102,6 +103,7 @@ python3.pkgs.buildPythonApplication rec { "test_unregistered_cname" "test_url_detection" "test_verify_dns" + "test_vulnerabilities" "test_warning" "test_whole" "test_xss_inside_tag_input" @@ -111,9 +113,12 @@ python3.pkgs.buildPythonApplication rec { "test_xss_with_weak_csp" "test_xxe" # Requires a PHP installation - "test_timesql" "test_cookies" + "test_loknop_lfi_to_rce" "test_redirect" + "test_timesql" + "test_xss_inside_href_link" + "test_xss_inside_src_iframe" # TypeError: Expected bytes or bytes-like object got: <class 'str'> "test_persister_upload" ]; @@ -138,6 +143,7 @@ python3.pkgs.buildPythonApplication rec { if a script is vulnerable. ''; homepage = "https://wapiti-scanner.github.io/"; + changelog = "https://github.com/wapiti-scanner/wapiti/blob/${version}/doc/ChangeLog_Wapiti"; license = with licenses; [ gpl2Only ]; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e05400769bf8..09b0caa6397b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -604,6 +604,8 @@ self: super: with self; { arrow = callPackage ../development/python-modules/arrow { }; + arsenic = callPackage ../development/python-modules/arsenic { }; + arviz = callPackage ../development/python-modules/arviz { }; arxiv2bib = callPackage ../development/python-modules/arxiv2bib { }; |