From eba04bfbe8637465797b77da477e09c6c78064a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 17 Oct 2022 20:14:51 +0200 Subject: [PATCH] changedetection-io: init at 0.39.20.4 change --- .../web-apps/changedetection-io/default.nix | 92 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 94 insertions(+) create mode 100644 pkgs/servers/web-apps/changedetection-io/default.nix diff --git a/pkgs/servers/web-apps/changedetection-io/default.nix b/pkgs/servers/web-apps/changedetection-io/default.nix new file mode 100644 index 000000000000..c86357637e48 --- /dev/null +++ b/pkgs/servers/web-apps/changedetection-io/default.nix @@ -0,0 +1,92 @@ +{ lib +, fetchFromGitHub +, python3 +}: +let + py = python3.override { + packageOverrides = final: prev: { + flask = prev.flask.overridePythonAttrs (old: rec { + version = "2.1.3"; + src = old.src.override { + inherit version; + sha256 = "sha256-FZcuUBffBXXD1sCQuhaLbbkCWeYgrI1+qBOjlrrVtss="; + }; + }); + flask-restful = prev.flask-restful.overridePythonAttrs (old: rec { + disabledTests = old.disabledTests or [ ] ++ [ + # fails because of flask or werkzeug downgrade + "test_redirect" + ]; + }); + werkzeug = prev.werkzeug.overridePythonAttrs (old: rec { + version = "2.0.3"; + src = old.src.override { + inherit version; + sha256 = "sha256-uGP4/wV8UiFktgZ8niiwQRYbS+W6TQ2s7qpQoWOCLTw="; + }; + }); + }; + }; +in +py.pkgs.buildPythonApplication rec { + pname = "changedetection-io"; + version = "0.39.20.3"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "dgtlmoon"; + repo = "changedetection.io"; + rev = version; + sha256 = "sha256-0Sv/1YoZuSnslQgMOu+uHTxb9QewXPC0tLAvzJA4Aa8="; + }; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "bs4" "beautifulsoup4" \ + --replace "cryptography ~= 3.4" "cryptography" \ + --replace "selenium ~= 4.1.0" "selenium" + ''; + + propagatedBuildInputs = with py.pkgs; [ + flask + flask-wtf + eventlet + validators + timeago + inscriptis + feedgen + flask-login + flask-restful + pytz + brotli + requests + urllib3 + chardet + wtforms + jsonpath-ng + jq + apprise + paho-mqtt + cryptography + beautifulsoup4 + lxml + selenium + werkzeug + playwright + ] ++ requests.optional-dependencies.socks; + + # tests can currently not be run in one pytest invocation and without docker + doCheck = false; + + checkInputs = with py.pkgs; [ + pytest-flask + pytestCheckHook + ]; + + meta = with lib; { + homepage = "https://github.com/dgtlmoon/changedetection.io"; + description = "Simplest self-hosted free open source website change detection tracking, monitoring and notification service"; + license = licenses.asl20; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5710817b86d2..068ebf4145fa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3548,6 +3548,8 @@ with pkgs; cambalache = callPackage ../development/tools/cambalache { }; + changedetection-io = callPackage ../servers/web-apps/changedetection-io { }; + clipster = callPackage ../tools/misc/clipster { }; clockify = callPackage ../applications/office/clockify {