calibre-web: 0.6.22 -> 0.6.24 (#356882)
This commit is contained in:
@@ -1,57 +1,24 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
, nix-update-script
|
||||
, python3
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
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
|
||||
@@ -69,24 +36,121 @@ 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;
|
||||
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit (nixosTests) calibre-web; };
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database";
|
||||
homepage = "https://github.com/janeczku/calibre-web";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ pborzenkov ];
|
||||
platforms = platforms.all;
|
||||
changelog = "https://github.com/janeczku/calibre-web/releases/tag/${src.tag}";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ pborzenkov ];
|
||||
mainProgram = "calibre-web";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
importlib-metadata,
|
||||
natsort,
|
||||
pillow,
|
||||
py7zr,
|
||||
pycountry,
|
||||
pyicu,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
rapidfuzz,
|
||||
rarfile,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
text2digits,
|
||||
wheel,
|
||||
wordninja,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "comicapi";
|
||||
version = "3.2.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "comictagger";
|
||||
repo = "comicapi";
|
||||
rev = "2bf8332114e49add0bbc0fd3d85bdbba02de3d1a";
|
||||
hash = "sha256-Cd3ILy/4PqWUj1Uu9of9gCpdVp2R6CXjPOuSXgrB894=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
importlib-metadata
|
||||
natsort
|
||||
pillow
|
||||
pycountry
|
||||
rapidfuzz
|
||||
text2digits
|
||||
wordninja
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
_7z = [ py7zr ];
|
||||
|
||||
all = [
|
||||
py7zr
|
||||
rarfile
|
||||
] ++ lib.optional (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) pyicu;
|
||||
|
||||
cbr = [ rarfile ];
|
||||
|
||||
icu = lib.optional (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) pyicu;
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
|
||||
|
||||
pythonRelaxDeps = [ "pycountry" ];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError
|
||||
"test_copy_from_archive"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "comicapi" ];
|
||||
|
||||
meta = {
|
||||
description = "Comic archive (cbr/cbz/cbt) and metadata utilities";
|
||||
homepage = "https://github.com/comictagger/comicapi";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
lib,
|
||||
betamax,
|
||||
blinker,
|
||||
buildPythonPackage,
|
||||
coverage,
|
||||
fetchFromGitHub,
|
||||
flask,
|
||||
flask-caching,
|
||||
flask-login,
|
||||
flask-sqlalchemy,
|
||||
flit,
|
||||
freezegun,
|
||||
oauthlib,
|
||||
pallets-sphinx-themes,
|
||||
pillow,
|
||||
pytest,
|
||||
pytest-mock,
|
||||
pytestCheckHook,
|
||||
requests,
|
||||
requests-oauthlib,
|
||||
responses,
|
||||
sphinx,
|
||||
sphinxcontrib-seqdiag,
|
||||
sphinxcontrib-spelling,
|
||||
sqlalchemy,
|
||||
urlobject,
|
||||
werkzeug,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "flask-dance";
|
||||
version = "7.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "singingwolfboy";
|
||||
repo = "flask-dance";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rKHC0G5S7l52QSrbbweMii68AZuBAgf6tYsJdPKIeUk=";
|
||||
};
|
||||
|
||||
build-system = [ flit ];
|
||||
|
||||
dependencies = [
|
||||
flask
|
||||
oauthlib
|
||||
requests
|
||||
requests-oauthlib
|
||||
urlobject
|
||||
werkzeug
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
docs = [
|
||||
betamax
|
||||
pallets-sphinx-themes
|
||||
pillow
|
||||
sphinx
|
||||
sphinxcontrib-seqdiag
|
||||
sphinxcontrib-spelling
|
||||
sqlalchemy
|
||||
];
|
||||
|
||||
signals = [ blinker ];
|
||||
|
||||
sqla = [ sqlalchemy ];
|
||||
|
||||
test = [
|
||||
betamax
|
||||
coverage
|
||||
flask-caching
|
||||
flask-login
|
||||
flask-sqlalchemy
|
||||
freezegun
|
||||
oauthlib
|
||||
pytest
|
||||
pytest-mock
|
||||
responses
|
||||
sqlalchemy
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
|
||||
|
||||
pythonImportsCheck = [ "flask_dance" ];
|
||||
|
||||
meta = {
|
||||
description = "Doing the OAuth dance with style using Flask, requests, and oauthlib";
|
||||
homepage = "https://github.com/singingwolfboy/flask-dance";
|
||||
changelog = "https://github.com/singingwolfboy/flask-dance/releases/tag/${src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
wheel,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "netifaces-plus";
|
||||
version = "0.12.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tsukumijima";
|
||||
repo = "netifaces-plus";
|
||||
tag = "release_${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-3CYAe0doWMagcUIN9+ikH9gEST9AqglSQDlZsKOMnC8=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "netifaces" ];
|
||||
|
||||
meta = {
|
||||
description = "Portable network interface information";
|
||||
homepage = "https://github.com/tsukumijima/netifaces-plus";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
lib,
|
||||
arrow,
|
||||
beautifulsoup4,
|
||||
bibtexparser,
|
||||
buildPythonPackage,
|
||||
deprecated,
|
||||
fake-useragent,
|
||||
fetchFromGitHub,
|
||||
free-proxy,
|
||||
httpx,
|
||||
python-dotenv,
|
||||
requests,
|
||||
selenium,
|
||||
setuptools,
|
||||
sphinx-rtd-theme,
|
||||
stem,
|
||||
typing-extensions,
|
||||
wheel,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "scholarly";
|
||||
version = "1.7.11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scholarly-python-package";
|
||||
repo = "scholarly";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-yvew63tGwSjwseHK7wDqm26xiyCztUzxMqBpwwLD798=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
arrow
|
||||
beautifulsoup4
|
||||
bibtexparser
|
||||
deprecated
|
||||
fake-useragent
|
||||
free-proxy
|
||||
httpx
|
||||
python-dotenv
|
||||
requests
|
||||
selenium
|
||||
sphinx-rtd-theme
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
tor = [ stem ];
|
||||
};
|
||||
|
||||
nativeCheckInputs = lib.flatten (lib.attrValues optional-dependencies);
|
||||
|
||||
pythonImportsCheck = [ "scholarly" ];
|
||||
|
||||
meta = {
|
||||
description = "Retrieve author and publication information from Google Scholar";
|
||||
homepage = "https://scholarly.readthedocs.io/";
|
||||
changelog = "https://github.com/scholarly-python-package/scholarly/releases/tag/${src.tag}";
|
||||
license = lib.licenses.unlicense;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pypaInstallHook,
|
||||
setuptoolsBuildHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "text2digits";
|
||||
version = "0.1.0";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-oB2NyNVxediIulid9A4Ccw878t2JKrIsN1OOR5lyi7I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pypaInstallHook
|
||||
setuptoolsBuildHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "text2digits" ];
|
||||
|
||||
meta = {
|
||||
description = "Converts text such as 'twenty three' to number/digit '23' in any sentence";
|
||||
homepage = "https://github.com/ShailChoksi/text2digits";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pypaInstallHook,
|
||||
setuptoolsBuildHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "urlobject";
|
||||
version = "2.4.3";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zacharyvoase";
|
||||
repo = "urlobject";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-4UuQZTkVre8jXlchW7/TjeaADYvLnGMpGbJR/sdeKv4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pypaInstallHook
|
||||
setuptoolsBuildHook
|
||||
];
|
||||
|
||||
# Tests use `nose`
|
||||
doInstallCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "urlobject" ];
|
||||
|
||||
meta = {
|
||||
description = "Python library for manipulating URLs (and some URIs) in a more natural way";
|
||||
homepage = "http://zacharyvoase.github.com/urlobject";
|
||||
license = lib.licenses.unlicense;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
wheel,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "wordninja";
|
||||
version = "2.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-GhzH7BRq0Z1vcZQe6CrvPTEiFwDw2L+EQTbPjfedKBo=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "wordninja" ];
|
||||
|
||||
meta = {
|
||||
description = "Probabilistically split concatenated words using NLP based on English Wikipedia unigram frequencies";
|
||||
homepage = "https://github.com/keredson/wordninja";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
};
|
||||
}
|
||||
@@ -2196,6 +2196,8 @@ self: super: with self; {
|
||||
inherit (pkgs) secp256k1;
|
||||
};
|
||||
|
||||
comicapi = callPackage ../development/python-modules/comicapi { };
|
||||
|
||||
comicon = callPackage ../development/python-modules/comicon { };
|
||||
|
||||
command-runner = callPackage ../development/python-modules/command-runner { };
|
||||
@@ -4800,6 +4802,8 @@ self: super: with self; {
|
||||
|
||||
flask-cors = callPackage ../development/python-modules/flask-cors { };
|
||||
|
||||
flask-dance = callPackage ../development/python-modules/flask-dance { };
|
||||
|
||||
flask-dramatiq = callPackage ../development/python-modules/flask-dramatiq { };
|
||||
|
||||
flask-elastic = callPackage ../development/python-modules/flask-elastic { };
|
||||
@@ -9424,6 +9428,8 @@ self: super: with self; {
|
||||
|
||||
netifaces2 = callPackage ../development/python-modules/netifaces2 { };
|
||||
|
||||
netifaces-plus = callPackage ../development/python-modules/netifaces-plus { };
|
||||
|
||||
netmiko = callPackage ../development/python-modules/netmiko { };
|
||||
|
||||
netio = callPackage ../development/python-modules/netio { };
|
||||
@@ -14846,6 +14852,8 @@ self: super: with self; {
|
||||
|
||||
schiene = callPackage ../development/python-modules/schiene { };
|
||||
|
||||
scholarly = callPackage ../development/python-modules/scholarly { };
|
||||
|
||||
schwifty = callPackage ../development/python-modules/schwifty { };
|
||||
|
||||
scienceplots = callPackage ../development/python-modules/scienceplots { };
|
||||
@@ -16476,6 +16484,8 @@ self: super: with self; {
|
||||
|
||||
texsoup = callPackage ../development/python-modules/texsoup { };
|
||||
|
||||
text2digits = callPackage ../development/python-modules/text2digits { };
|
||||
|
||||
textblob = callPackage ../development/python-modules/textblob { };
|
||||
|
||||
textfsm = callPackage ../development/python-modules/textfsm { };
|
||||
@@ -18118,6 +18128,8 @@ self: super: with self; {
|
||||
|
||||
urlmatch = callPackage ../development/python-modules/urlmatch { };
|
||||
|
||||
urlobject = callPackage ../development/python-modules/urlobject { };
|
||||
|
||||
urlpy = callPackage ../development/python-modules/urlpy { };
|
||||
|
||||
urwid = callPackage ../development/python-modules/urwid { };
|
||||
@@ -18614,6 +18626,8 @@ self: super: with self; {
|
||||
|
||||
wordfreq = callPackage ../development/python-modules/wordfreq { };
|
||||
|
||||
wordninja = callPackage ../development/python-modules/wordninja { };
|
||||
|
||||
world-bank-data = callPackage ../development/python-modules/world-bank-data { };
|
||||
|
||||
worldengine = callPackage ../development/python-modules/worldengine { };
|
||||
|
||||
Reference in New Issue
Block a user