diff --git a/pkgs/by-name/bl/blint/package.nix b/pkgs/by-name/bl/blint/package.nix new file mode 100644 index 000000000000..822d48b522b6 --- /dev/null +++ b/pkgs/by-name/bl/blint/package.nix @@ -0,0 +1,70 @@ +{ + lib, + python3Packages, + fetchFromGitHub, + versionCheckHook, +}: + +python3Packages.buildPythonApplication rec { + pname = "blint"; + version = "2.4.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "owasp-dep-scan"; + repo = "blint"; + tag = "v${version}"; + hash = "sha256-mGeC7+YzQWSlT3sW2la/f21fN8V+YoFd4fwj/PBPCMI="; + }; + + build-system = [ + python3Packages.poetry-core + ]; + + dependencies = with python3Packages; [ + pyyaml + appdirs + apsw + ar + custom-json-diff + defusedxml + email-validator + lief + oras + orjson + packageurl-python + pydantic + rich + symbolic + ]; + + pythonRelaxDeps = [ + "apsw" + "symbolic" + ]; + + pythonImportsCheck = [ + "blint" + ]; + + nativeCheckInputs = with python3Packages; [ + pytestCheckHook + pytest-cov-stub + ]; + + # only runs on windows and fails, obviously + disabledTests = [ + "test_demangle" + ]; + + meta = { + description = "Binary Linter to check the security properties, and capabilities in executables"; + homepage = "https://github.com/owasp-dep-scan/blint"; + changelog = "https://github.com/owasp-dep-scan/blint/releases/tag/v${version}"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ ethancedwards8 ]; + teams = with lib.teams; [ ngi ]; + mainProgram = "blint"; + }; +} diff --git a/pkgs/development/python-modules/ar/default.nix b/pkgs/development/python-modules/ar/default.nix new file mode 100644 index 000000000000..50b9cb39874f --- /dev/null +++ b/pkgs/development/python-modules/ar/default.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + hatchling, + hatch-vcs, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "ar"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "vidstige"; + repo = "ar"; + tag = "v${version}"; + hash = "sha256-azbqlSO5YE6zMrDoVNLDyGeed5H4mSyNEE02AmoZIDs="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + hatch-vcs + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "ar" ]; + + disabledTests = lib.optionals stdenv.isDarwin [ + "test_list" + "test_read_content" + "test_read_binary" + "test_read_content_ext" + "test_read_binary_ext" + ]; + + meta = { + description = "Implementation of the ar archive format"; + homepage = "https://github.com/vidstige/ar"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ethancedwards8 ]; + }; +} diff --git a/pkgs/development/python-modules/custom-json-diff/default.nix b/pkgs/development/python-modules/custom-json-diff/default.nix new file mode 100644 index 000000000000..40f3769fd8e1 --- /dev/null +++ b/pkgs/development/python-modules/custom-json-diff/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + jinja2, + json-flatten, + packageurl-python, + semver, + toml, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "custom-json-diff"; + version = "2.1.6"; + pyproject = true; + + src = fetchFromGitHub { + owner = "appthreat"; + repo = "custom-json-diff"; + tag = "v${version}"; + hash = "sha256-09kSj4fJHQHyzsCk0bSVlwAgkyzWOSjRKxU1rcMXacQ="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + jinja2 + json-flatten + packageurl-python + semver + toml + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "custom_json_diff" + ]; + + meta = { + description = "Utility to compare json documents containing dynamically-generated fields"; + homepage = "https://github.com/appthreat/custom-json-diff"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ethancedwards8 ]; + }; +} diff --git a/pkgs/development/python-modules/json-flatten/default.nix b/pkgs/development/python-modules/json-flatten/default.nix new file mode 100644 index 000000000000..6a75d872560a --- /dev/null +++ b/pkgs/development/python-modules/json-flatten/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "json-flatten"; + version = "0.3.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "simonw"; + repo = "json-flatten"; + tag = version; + hash = "sha256-zAaunWuFAokC16FwHRHgyvq27pNUEGXJfSqTQ1wvXE8="; + }; + + build-system = [ + setuptools + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "json_flatten" + ]; + + meta = { + description = "Functions for flattening a JSON object to a single dictionary of pairs"; + license = lib.licenses.asl20; + homepage = "https://github.com/simonw/json-flatten"; + maintainers = with lib.maintainers; [ ethancedwards8 ]; + changelog = "https://github.com/simonw/json-flatten/releases/tag/${version}"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4fb18ba9c235..894f42820284 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -829,6 +829,8 @@ self: super: with self; { aqualogic = callPackage ../development/python-modules/aqualogic { }; + ar = callPackage ../development/python-modules/ar { }; + arabic-reshaper = callPackage ../development/python-modules/arabic-reshaper { }; aranet4 = callPackage ../development/python-modules/aranet4 { }; @@ -3122,6 +3124,8 @@ self: super: with self; { curvefitgui = callPackage ../development/python-modules/curvefitgui { }; + custom-json-diff = callPackage ../development/python-modules/custom-json-diff { }; + customtkinter = callPackage ../development/python-modules/customtkinter { }; cut-cross-entropy = callPackage ../development/python-modules/cut-cross-entropy { }; @@ -7308,6 +7312,8 @@ self: super: with self; { json-api-doc = callPackage ../development/python-modules/json-api-doc { }; + json-flatten = callPackage ../development/python-modules/json-flatten { }; + json-home-client = callPackage ../development/python-modules/json-home-client { }; json-logging = callPackage ../development/python-modules/json-logging { };