From 7bdcfa1db80e063d68242037aacf753ef01df5a6 Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 17 Nov 2024 16:45:14 -0500 Subject: [PATCH] calibre-web: 0.6.22 -> 0.6.24 Diff: https://github.com/janeczku/calibre-web/compare/0.6.22...0.6.24 Changelog: https://github.com/janeczku/calibre-web/releases/tag/0.6.24 --- pkgs/by-name/ca/calibre-web/package.nix | 156 +++++++++++++++++------- 1 file changed, 109 insertions(+), 47 deletions(-) diff --git a/pkgs/by-name/ca/calibre-web/package.nix b/pkgs/by-name/ca/calibre-web/package.nix index 6f643ba842ed..7a4ae13160ff 100644 --- a/pkgs/by-name/ca/calibre-web/package.nix +++ b/pkgs/by-name/ca/calibre-web/package.nix @@ -1,58 +1,23 @@ { lib, fetchFromGitHub, - nixosTests, nix-update-script, - python3, + nixosTests, + python3Packages, }: -let - python = python3.override { - self = python; - packageOverrides = self: super: { - sqlalchemy = super.sqlalchemy_1_4; - }; - }; -in -python.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "calibre-web"; - version = "0.6.22"; + version = "0.6.24"; + pyproject = true; src = fetchFromGitHub { owner = "janeczku"; repo = "calibre-web"; - rev = version; - hash = "sha256-nWZmDasBH+DW/+Cvw510mOv11CXorRnoBwNFpoKPErY="; + tag = version; + hash = "sha256-DYhlD3ly6U/e5cDlsubDyW1uKeCtB+HrpagJlNDJhyI="; }; - propagatedBuildInputs = with python.pkgs; [ - advocate - apscheduler - babel - bleach - chardet - flask - flask-babel - flask-limiter - flask-login - flask-principal - flask-simpleldap - flask-wtf - iso-639 - jsonschema - lxml - pypdf - python-magic - pytz - regex - requests - sqlalchemy - tornado - unidecode - wand - werkzeug - ]; - patches = [ # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI @@ -70,12 +35,108 @@ python.pkgs.buildPythonApplication rec { mv cps.py src/calibreweb/__init__.py mv cps src/calibreweb - substituteInPlace setup.cfg \ - --replace-fail "cps = calibreweb:main" "calibre-web = calibreweb:main" + substituteInPlace pyproject.toml \ + --replace-fail 'cps = "calibreweb:main"' 'calibre-web = "calibreweb:main"' ''; - # Upstream repo doesn't provide any tests. - doCheck = false; + build-system = [ python3Packages.setuptools ]; + + dependencies = with python3Packages; [ + apscheduler + babel + bleach + chardet + cryptography + flask + flask-babel + flask-httpauth + flask-limiter + flask-principal + flask-wtf + iso-639 + lxml + netifaces-plus + pycountry + pypdf + python-magic + pytz + regex + requests + sqlalchemy + tornado + unidecode + urllib3 + wand + ]; + + optional-dependencies = { + comics = with python3Packages; [ + comicapi + natsort + ]; + + gdrive = with python3Packages; [ + gevent + google-api-python-client + greenlet + httplib2 + oauth2client + pyasn1-modules + # https://github.com/NixOS/nixpkgs/commit/bf28e24140352e2e8cb952097febff0e94ea6a1e + # pydrive2 + pyyaml + rsa + uritemplate + ]; + + gmail = with python3Packages; [ + google-api-python-client + google-auth-oauthlib + ]; + + # We don't support the goodreads feature, as the `goodreads` package is + # archived and depends on other long unmaintained packages (rauth & nose) + # goodreads = [ ]; + + kobo = with python3Packages; [ jsonschema ]; + + ldap = with python3Packages; [ + flask-simpleldap + python-ldap + ]; + + metadata = with python3Packages; [ + faust-cchardet + html2text + markdown2 + mutagen + py7zr + pycountry + python-dateutil + rarfile + scholarly + ]; + + oauth = with python3Packages; [ + flask-dance + sqlalchemy-utils + ]; + }; + + pythonRelaxDeps = [ + "apscheduler" + "bleach" + "cryptography" + "flask" + "flask-limiter" + "lxml" + "pypdf" + "regex" + ]; + + nativeCheckInputs = lib.flatten (lib.attrValues optional-dependencies); + + pythonImportsCheck = [ "calibreweb" ]; passthru = { tests.calibre-web = nixosTests.calibre-web; @@ -85,9 +146,10 @@ python.pkgs.buildPythonApplication rec { meta = with lib; { description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database"; homepage = "https://github.com/janeczku/calibre-web"; + changelog = "https://github.com/janeczku/calibre-web/releases/tag/${src.tag}"; license = licenses.gpl3Plus; maintainers = with maintainers; [ pborzenkov ]; - platforms = platforms.all; mainProgram = "calibre-web"; + platforms = platforms.all; }; }