www-apps/calibre-web - 0.6.27 (stowe-verlay)

Search

Install

Install this version:

emerge -a =www-apps/calibre-web-0.6.27

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =www-apps/calibre-web-0.6.27

Or alternatively:

emerge --autounmask-write -a =www-apps/calibre-web-0.6.27

Package Information

Description:
Web app for browsing, reading and downloading eBooks stored in a Calibre database
Homepage:
https://github.com/janeczku/calibre-web
License:
GPL-3

Ebuild Details

Version EAPI Keywords Slot
0.6.27 8 ~amd64 ~x86 0
View Raw Ebuild
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{12..14} )
DISTUTILS_USE_PEP517=setuptools
PYPI_PN="calibreweb"

inherit distutils-r1 pypi systemd

DESCRIPTION="Web app for browsing, reading and downloading eBooks stored in a Calibre database"
HOMEPAGE="https://github.com/janeczku/calibre-web"
SRC_URI="$(pypi_sdist_url "${PYPI_PN}" "${PV}")"
S="${WORKDIR}/${PYPI_PN}-${PV}"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="calibre comics gdrive gdrive-send kepubify kobo ldap metadata oauth unrar"
RESTRICT="mirror test"

# Patch from mwstowe/calibre-web gdrive-send-feature branch
# Commit: 5a127ea60cae76c17180202a59d6003d7393827a
# Rebased to PyPI sdist layout (src/calibreweb/cps/...)
GDRIVE_SEND_PATCHES="gdrive-send.patch"

RDEPEND="
	acct-user/calibre
	acct-group/calibre
	>=dev-python/apscheduler-3.6.3[${PYTHON_USEDEP}]
	>=dev-python/babel-1.3[${PYTHON_USEDEP}]
	>=dev-python/certifi-2024.7.4[${PYTHON_USEDEP}]
	>=dev-python/chardet-3.0.0[${PYTHON_USEDEP}]
	>=dev-python/cryptography-39.0.0[${PYTHON_USEDEP}]
	>=dev-python/flask-1.0.2[${PYTHON_USEDEP}]
	>=dev-python/flask-babel-3.0.0[${PYTHON_USEDEP}]
	>=dev-python/flask-httpauth-4.4.0[${PYTHON_USEDEP}]
	>=dev-python/flask-limiter-2.3.0[${PYTHON_USEDEP}]
	>=dev-python/flask-principal-0.3.2[${PYTHON_USEDEP}]
	>=dev-python/flask-wtf-0.14.2[${PYTHON_USEDEP}]
	>=dev-python/lxml-4.9.1[${PYTHON_USEDEP}]
	>=dev-python/netifaces-plus-0.12.0[${PYTHON_USEDEP}]
	>=dev-python/nh3-0.3.0[${PYTHON_USEDEP}]
	>=dev-python/pycountry-20.0.0[${PYTHON_USEDEP}]
	>=dev-python/pypdf-6.1.3[${PYTHON_USEDEP}]
	>=dev-python/python-magic-0.4.27[${PYTHON_USEDEP}]
	>=dev-python/pytz-2016.10[${PYTHON_USEDEP}]
	>=dev-python/regex-2022.3.2[${PYTHON_USEDEP}]
	>=dev-python/requests-2.32.0[${PYTHON_USEDEP}]
	>=dev-python/sqlalchemy-1.3.0[${PYTHON_USEDEP}]
	>=dev-python/tornado-6.4.2[${PYTHON_USEDEP}]
	>=dev-python/unidecode-0.04.19[${PYTHON_USEDEP}]
	>=dev-python/urllib3-1.22[${PYTHON_USEDEP}]
	>=dev-python/wand-0.4.4[${PYTHON_USEDEP}]
	calibre? ( app-text/calibre )
	comics? ( >=dev-python/natsort-2.2.0[${PYTHON_USEDEP}] )
	gdrive? (
		>=dev-python/gevent-20.6.0[${PYTHON_USEDEP}]
		dev-python/google-api-python-client[${PYTHON_USEDEP}]
		dev-python/oauth2client[${PYTHON_USEDEP}]
		>=dev-python/pydrive2-1.15.0[${PYTHON_USEDEP}]
		dev-python/pyyaml[${PYTHON_USEDEP}]
	)
	kobo? ( >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}] )
	ldap? (
		dev-python/python-ldap[${PYTHON_USEDEP}]
		dev-python/flask-simpleldap[${PYTHON_USEDEP}]
	)
	metadata? (
		>=dev-python/beautifulsoup4-4.0.1[${PYTHON_USEDEP}]
		>=dev-python/markdown2-2.0.0[${PYTHON_USEDEP}]
		>=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
	)
	oauth? (
		>=dev-python/flask-dance-2.0.0[${PYTHON_USEDEP}]
		>=dev-python/sqlalchemy-utils-0.33.5[${PYTHON_USEDEP}]
	)
	unrar? ( app-arch/unrar )
	kepubify? ( app-text/kepubify-bin )
	gdrive-send? (
		>=dev-python/google-auth-oauthlib-1.0.0[${PYTHON_USEDEP}]
		dev-python/google-api-python-client[${PYTHON_USEDEP}]
	)
"

src_prepare() {
	if use gdrive-send; then
		eapply "${FILESDIR}/${GDRIVE_SEND_PATCHES}"
	fi
	distutils-r1_src_prepare
}

src_install() {
	distutils-r1_src_install

	newinitd "${FILESDIR}"/calibre-web.initd calibre-web
	newconfd "${FILESDIR}"/calibre-web.confd calibre-web
	systemd_dounit "${FILESDIR}"/calibre-web.service

	keepdir /var/lib/calibre-web
	fowners calibre:calibre /var/lib/calibre-web

	keepdir /var/log/calibre-web
	fowners calibre:calibre /var/log/calibre-web
}

pkg_postinst() {
	elog "Calibre-Web is now installed."
	elog ""
	elog "To start calibre-web:"
	elog "  rc-service calibre-web start"
	elog ""
	elog "Then access the web interface at http://localhost:8083"
	elog "Default login: admin / admin123"
	elog ""
	elog "You will need to point it at an existing Calibre database"
	elog "(metadata.db) on first setup via the web interface."
	elog ""
	elog "Data is stored in /var/lib/calibre-web"
	elog "Override with CALIBRE_WEB_DATADIR in /etc/conf.d/calibre-web"
	if use calibre; then
		elog ""
		elog "Calibre tools (ebook-convert, calibredb) are available for"
		elog "format conversion and metadata embedding. Configure paths"
		elog "in the Calibre-Web admin interface under Basic Configuration."
	fi
	if use unrar; then
		elog ""
		elog "unrar is available for CBR comic book extraction."
		elog "Configure the path in the admin interface."
	fi
	if use kepubify; then
		elog ""
		elog "kepubify is available for EPUB to Kobo KEPUB conversion."
		elog "Set the path to /usr/bin/kepubify in the admin interface."
	fi
	if use gdrive-send; then
		elog ""
		elog "Google Drive Send is enabled. Configure OAuth client credentials"
		elog "in the admin panel under Google Drive Send Settings. Users can"
		elog "then connect their Google Drive from their profile page."
	fi
}

USE Flags

Manage flags for this package: euse -i <flag> -p www-apps/calibre-web | euse -E <flag> -p www-apps/calibre-web | euse -D <flag> -p www-apps/calibre-web

Inherited Eclasses

Dependencies

RDEPEND

	acct-user/calibre
	acct-group/calibre
	>=dev-python/apscheduler-3.6.3[]
	>=dev-python/babel-1.3[]
	>=dev-python/certifi-2024.7.4[]
	>=dev-python/chardet-3.0.0[]
	>=dev-python/cryptography-39.0.0[]
	>=dev-python/flask-1.0.2[]
	>=dev-python/flask-babel-3.0.0[]
	>=dev-python/flask-httpauth-4.4.0[]
	>=dev-python/flask-limiter-2.3.0[]
	>=dev-python/flask-principal-0.3.2[]
	>=dev-python/flask-wtf-0.14.2[]
	>=dev-python/lxml-4.9.1[]
	>=dev-python/netifaces-plus-0.12.0[]
	>=dev-python/nh3-0.3.0[]
	>=dev-python/pycountry-20.0.0[]
	>=dev-python/pypdf-6.1.3[]
	>=dev-python/python-magic-0.4.27[]
	>=dev-python/pytz-2016.10[]
	>=dev-python/regex-2022.3.2[]
	>=dev-python/requests-2.32.0[]
	>=dev-python/sqlalchemy-1.3.0[]
	>=dev-python/tornado-6.4.2[]
	>=dev-python/unidecode-0.04.19[]
	>=dev-python/urllib3-1.22[]
	>=dev-python/wand-0.4.4[]
	calibre? ( app-text/calibre )
	comics? ( >=dev-python/natsort-2.2.0[] )
	gdrive? (
		>=dev-python/gevent-20.6.0[]
		dev-python/google-api-python-client[]
		dev-python/oauth2client[]
		>=dev-python/pydrive2-1.15.0[]
		dev-python/pyyaml[]
	)
	kobo? ( >=dev-python/jsonschema-3.2.0[] )
	ldap? (
		dev-python/python-ldap[]
		dev-python/flask-simpleldap[]
	)
	metadata? (
		>=dev-python/beautifulsoup4-4.0.1[]
		>=dev-python/markdown2-2.0.0[]
		>=dev-python/python-dateutil-2.1[]
	)
	oauth? (
		>=dev-python/flask-dance-2.0.0[]
		>=dev-python/sqlalchemy-utils-0.33.5[]
	)
	unrar? ( app-arch/unrar )
	kepubify? ( app-text/kepubify-bin )
	gdrive-send? (
		>=dev-python/google-auth-oauthlib-1.0.0[]
		dev-python/google-api-python-client[]
	)