forked from mirrors/nixpkgs
b74dbf111b
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.
75 lines
2.3 KiB
Nix
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;
|
|
};
|
|
}
|