nixpkgs/pkgs/servers/calibre-web/default.nix
polygon b74dbf111b calibre-web: Update dependency version
Babel requirement is <2.9 and nixpkgs provides 2.9.0
Updated the requirement definition. Upstream did this as well and
according to the Babel changelogs, there were no breaking changes
between 2.8 and 2.9. Server started up properly, no functionality
test, though.
2021-05-21 19:02:10 -07:00

75 lines
2.3 KiB
Nix

{ lib
, fetchFromGitHub
, nixosTests
, python3
, python3Packages
}:
python3.pkgs.buildPythonApplication rec {
pname = "calibre-web";
version = "0.6.11";
src = fetchFromGitHub {
owner = "janeczku";
repo = "calibre-web";
rev = version;
sha256 = "10sjllhhcamswpa1wlim4mbm2zl4g804bwly5p4nmklg7n1v226g";
};
prePatch = ''
substituteInPlace setup.cfg \
--replace "singledispatch>=3.4.0.0,<3.5.0.0" "" \
--replace "requests>=2.11.1,<2.25.0" "requests>=2.11.1,<2.26.0" \
--replace "unidecode>=0.04.19,<1.2.0" "unidecode>=0.04.19" \
--replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
--replace "Babel>=1.3, <2.9" "Babel>=1.3, <=2.9"
'';
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
# if needed.
./default-logger.patch
# DB migrations adds an env var __RUN_MIGRATIONS_ANDEXIT that, when set, instructs calibre-web to run DB migrations
# and exit. This is gonna be used to configure calibre-web declaratively, as most of its configuration parameters
# are stored in the DB.
./db-migrations.patch
];
# calibre-web doesn't follow setuptools directory structure. The following is taken from the script
# that calibre-web's maintainer is using to package it:
# https://github.com/OzzieIsaacs/calibre-web-test/blob/master/build/make_release.py
postPatch = ''
mkdir -p src/calibreweb
mv cps.py src/calibreweb/__init__.py
mv cps src/calibreweb
'';
# Upstream repo doesn't provide any tests.
doCheck = false;
propagatedBuildInputs = with python3Packages; [
backports_abc
flask-babel
flask_login
flask_principal
iso-639
pypdf2
requests
sqlalchemy
tornado
unidecode
Wand
];
passthru.tests.calibre-web = nixosTests.calibre-web;
meta = with lib; {
description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database";
maintainers = with maintainers; [ pborzenkov ];
homepage = "https://github.com/janeczku/calibre-web";
license = licenses.gpl3Plus;
platforms = platforms.all;
};
}