evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ca / calibre-web / package.nix
blob397b9e76cfc46340106e964c4e3c752804903f96
1 { lib
2 , fetchFromGitHub
3 , nixosTests
4 , nix-update-script
5 , python3
6 }:
8 let
9   python = python3.override {
10     self = python;
11     packageOverrides = self: super: {
12       sqlalchemy = super.sqlalchemy_1_4;
13     };
14   };
16 python.pkgs.buildPythonApplication rec {
17   pname = "calibre-web";
18   version = "0.6.22";
20   src = fetchFromGitHub {
21     owner = "janeczku";
22     repo = "calibre-web";
23     rev = version;
24     hash = "sha256-nWZmDasBH+DW/+Cvw510mOv11CXorRnoBwNFpoKPErY=";
25   };
27   propagatedBuildInputs = with python.pkgs; [
28     advocate
29     apscheduler
30     babel
31     bleach
32     chardet
33     flask
34     flask-babel
35     flask-limiter
36     flask-login
37     flask-principal
38     flask-wtf
39     iso-639
40     jsonschema
41     lxml
42     pypdf
43     python-magic
44     pytz
45     regex
46     requests
47     sqlalchemy
48     tornado
49     unidecode
50     wand
51     werkzeug
52   ];
54   patches = [
55     # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative
56     # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI
57     # if needed.
58     ./default-logger.patch
59     # DB migrations adds an env var __RUN_MIGRATIONS_ANDEXIT that, when set, instructs calibre-web to run DB migrations
60     # and exit. This is gonna be used to configure calibre-web declaratively, as most of its configuration parameters
61     # are stored in the DB.
62     ./db-migrations.patch
63   ];
65   # calibre-web doesn't follow setuptools directory structure.
66   postPatch = ''
67     mkdir -p src/calibreweb
68     mv cps.py src/calibreweb/__init__.py
69     mv cps src/calibreweb
71     substituteInPlace setup.cfg \
72       --replace-fail "cps = calibreweb:main" "calibre-web = calibreweb:main"
73   '';
75   # Upstream repo doesn't provide any tests.
76   doCheck = false;
78   passthru = {
79     tests.calibre-web = nixosTests.calibre-web;
80     updateScript = nix-update-script { };
81   };
83   meta = with lib; {
84     description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database";
85     homepage = "https://github.com/janeczku/calibre-web";
86     license = licenses.gpl3Plus;
87     maintainers = with maintainers; [ pborzenkov ];
88     platforms = platforms.all;
89     mainProgram = "calibre-web";
90   };