diff --git a/pkgs/by-name/ar/archivebox/package.nix b/pkgs/by-name/ar/archivebox/package.nix index c98192a1ae7db0..69f58336d323b3 100644 --- a/pkgs/by-name/ar/archivebox/package.nix +++ b/pkgs/by-name/ar/archivebox/package.nix @@ -3,7 +3,6 @@ stdenv, python3, fetchFromGitHub, - fetchPypi, curl, wget, git, @@ -17,68 +16,126 @@ let python = python3.override { self = python; - packageOverrides = self: super: { - django = super.django_3.overridePythonAttrs (old: rec { - version = "3.1.14"; - src = old.src.override { - inherit version; - hash = "sha256-cqSloTaiFMOc8BbM3Wtp4qoIx0ecZtk/OpteS7nYo0c="; - }; - meta = old.meta // { - knownVulnerabilities = [ - "CVE-2021-45115" - "CVE-2021-45116" - "CVE-2021-45452" - "CVE-2022-23833" - "CVE-2022-22818" - "CVE-2022-28347" - "CVE-2022-28346" - ]; - }; + packageOverrides = _: super: { + django = super.django_5; + django-extensions = super.django-extensions.overridePythonAttrs { + # Django 5.1 compat issues + # https://github.com/django-extensions/django-extensions/issues/1885 + doCheck = false; + }; + bx-django-utils = super.bx-django-utils.overridePythonAttrs { + # Upstream has test cases for django 5.0 and 4.2 for these tests, but not 5.1, so they have to be disabled here. + # Note that this isn't a direct dependency, but a dependency chain. + # archivebox <- django-huey-monitor <- manage-django-project <- django-tools <- bx-django-utils + disabledTests = [ + "test_index_page" + "test_basic" + "test_assert_html_response_snapshot" + ]; + }; + manage-django-project = super.manage-django-project.overridePythonAttrs (old: { + # Same reason and dependency chain as above, no Django 5.1 test snapshots so this test fails. + disabledTests = (old.disabledTests or [ ]) ++ [ + "test_help" + ]; }); - django-extensions = super.django-extensions.overridePythonAttrs (old: rec { - version = "3.1.5"; + django-taggit = super.django-taggit.overridePythonAttrs rec { + version = "6.1.0"; src = fetchFromGitHub { - inherit version; - owner = "django-extensions"; - repo = "django-extensions"; - rev = "e43f383dae3a35237e42f6acfe1207a8e7e7bdf5"; - hash = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM="; + owner = "jazzband"; + repo = "django-taggit"; + rev = "refs/tags/${version}"; + hash = "sha256-QLJhO517VONuf+8rrpZ6SXMP/WWymOIKfd4eyviwCsU="; }; - - # possibly a real issue, but that version is not supported anymore - doCheck = false; - }); + }; }; }; in python.pkgs.buildPythonApplication rec { pname = "archivebox"; - version = "0.7.2"; + version = "0.8.5rc53"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-hdBUEX2tOWN2b11w6aG3x7MP7KQTj4Rwc2w8XvABGf4="; + src = fetchFromGitHub { + owner = "ArchiveBox"; + repo = "ArchiveBox"; + rev = "refs/tags/v${version}"; + hash = "sha256-zqLutX3YM1oEgJ+Djgd8IlmnSgBRekEqX17FQqbP1Y0="; + # Vendors `pocket` and `pydantic-pkgr` depdendencies + fetchSubmodules = true; }; nativeBuildInputs = with python.pkgs; [ pdm-backend ]; - propagatedBuildInputs = with python.pkgs; [ - croniter - dateparser - django - django-extensions - ipython - mypy-extensions - python-crontab - requests - w3lib - yt-dlp - ]; + propagatedBuildInputs = + with python.pkgs; + [ + # Core Libraries + django + (django-ninja.overridePythonAttrs { doCheck = false; }) + django-extensions + mypy-extensions + typing-extensions + channels + daphne + django-signal-webhooks + django-admin-data-views + django-object-actions + django-charid-field + django-pydantic-field + django-jsonform + django-stubs + django-huey + django-huey-monitor + # Helper Libraries + pluggy + requests + dateparser + tzdata + feedparser + w3lib + rich + rich-argparse + ulid-py + typeid-python + psutil + supervisor + python-crontab + croniter + ipython + py-machineid + python-benedict + pydantic-settings + atomicwrites + django-taggit + base32-crockford + platformdirs + pydantic-pkgr + pocket + sonic-client + yt-dlp + # Plugin dependencies + + ] + ++ python.pkgs.python-benedict.optional-dependencies.io + ++ python.pkgs.python-benedict.optional-dependencies.parse; + + optional-dependencies = { + ldap = with python.pkgs; [ + python-ldap + django-auth-ldap + ]; + debug = with python.pkgs; [ + django-debug-toolbar + djdt-flamegraph + ipdb + requests-tracker + django-autotyping + ]; + }; makeWrapperArgs = [