diff --git a/www/py-calibreweb/Makefile b/www/py-calibreweb/Makefile index ed6019618879..85cb6c67877c 100644 --- a/www/py-calibreweb/Makefile +++ b/www/py-calibreweb/Makefile @@ -1,127 +1,126 @@ PORTNAME= calibreweb -PORTVERSION= 0.6.25 -PORTREVISION= 3 +PORTVERSION= 0.6.26 CATEGORIES= www python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= matthew@wener.org COMMENT= Web interface for viewing and downloading eBooks from a Calibre DB WWW= https://github.com/janeczku/calibre-web LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}APScheduler>=0:devel/py-apscheduler@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}bleach>=0:www/py-bleach@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}chardet>=0:textproc/py-chardet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask-babel>=0:devel/py-flask-babel@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-HTTPAuth>=0:security/py-flask-httpauth@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Principal>=0:www/py-flask-principal@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask_Limiter3<3.13:www/py-flask-limiter3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask_wtf>=0:www/py-flask-wtf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}iso-639>=0:textproc/py-iso-639@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}netifaces-plus>=0:net/py-netifaces-plus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pycountry>=0:textproc/py-pycountry@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pypdf>=0:print/py-pypdf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-magic>=0:devel/py-python-magic@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}regex>=0:textproc/py-regex@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tornado>=0:www/py-tornado@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}unidecode>=0:converters/py-unidecode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}urllib3>=0:net/py-urllib3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Wand>=0:graphics/py-wand@${PY_FLAVOR} USES= python ssl USE_PYTHON= autoplist cryptography pep517 USE_RC_SUBR= ${PORTNAME} NO_ARCH= yes SUB_FILES= pkg-message SUB_LIST= GROUP=${GROUPS} \ PORTNAME=${PORTNAME} \ PYTHON_CMD=${PYTHON_CMD} \ RC_NAME=calibreweb \ USER=${USERS} USERS= ${PORTNAME} GROUPS= ${PORTNAME} POST_PLIST= fix-plist PORTDOCS= PKG-INFO README.md # GDRIVE option removed due to expired security/py-oauth2client OPTIONS_DEFINE= CALIBRE COMICS DOCS GMAIL GREADS KOBO LDAP METADATA \ OAUTH OPTIONS_DEFAULT= IMAGICK7_X11 SQLA20 OPTIONS_SINGLE= IMAGICK SQLA OPTIONS_SINGLE_IMAGICK= IMAGICK6_NOX11 IMAGICK6_X11 IMAGICK7_NOX11 IMAGICK7_X11 OPTIONS_SINGLE_SQLA= SQLA14 SQLA20 CALIBRE_DESC= Calibre Desktop Conversion and Metadata Editing COMICS_DESC= Comic Metadata Support GMAIL_DESC= GMail GREADS_DESC= Goodreads API IMAGICK6_NOX11_DESC= ImageMagick6 without X11 support IMAGICK6_X11_DESC= ImageMagick6 with X11 support IMAGICK7_NOX11_DESC= ImageMagick7 without X11 support IMAGICK7_X11_DESC= ImageMagick7 with X11 support IMAGICK_DESC= ${IMAGEMAGICK_DESC} KOBO_DESC= Kobo Device Support LDAP_DESC= LDAP Login Support METADATA_DESC= Metadata Extraction Support OAUTH_DESC= OAuth Login SQLA14_DESC= Use SQLAlchemy 1.4.* SQLA20_DESC= Use SQLAlchemy 2.0.* SQLA_DESC= SQLAchemy Database Toolkit for Python CALIBRE_RUN_DEPENDS= calibre>=0:deskutils/calibre COMICS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}comicapi>=0:archivers/py-comicapi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}natsort>=0:devel/py-natsort@${PY_FLAVOR} GMAIL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-python-client>=0:www/py-google-api-python-client@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}google-auth-oauthlib>=0:security/py-google-auth-oauthlib@${PY_FLAVOR} GREADS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}goodreads>=0:devel/py-goodreads@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}levenshtein>=0:devel/py-levenshtein@${PY_FLAVOR} IMAGICK6_NOX11_USES= magick:6,run,nox11 IMAGICK6_X11_USES= magick:6,run IMAGICK7_NOX11_USES= magick:7,run,nox11 IMAGICK7_X11_USES= magick:7,run KOBO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jsonschema>=0:devel/py-jsonschema@${PY_FLAVOR} \ kepubify>=0:textproc/kepubify LDAP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Flask-SimpleLDAP>=0:www/py-flask-simpleldap@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-ldap>=0:net/py-python-ldap@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlalchemy-utils>=0:databases/py-sqlalchemy-utils@${PY_FLAVOR} METADATA_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}faust-cchardet>=0:textproc/py-faust-cchardet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}html2text>=0:textproc/py-html2text@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}markdown2>=0:textproc/py-markdown2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mutagen>=0:audio/py-mutagen@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}py7zr>=0:archivers/py-py7zr@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pycountry>=0:textproc/py-pycountry@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-dateutil>=0:devel/py-python-dateutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rarfile>=0:archivers/py-rarfile@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scholarly>=0:devel/py-scholarly@${PY_FLAVOR} \ unrar>=0:archivers/unrar OAUTH_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flask-dance>=0:www/py-flask-dance@${PY_FLAVOR} SQLA14_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=0:databases/py-sqlalchemy14@${PY_FLAVOR} SQLA20_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>=0:databases/py-sqlalchemy20@${PY_FLAVOR} pre-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR}/ ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR} post-install: # Remove .HOMEDIR so we can specify the location for the config files (cd ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/calibreweb/cps && ${RM} .HOMEDIR) fix-plist: @${REINPLACE_CMD} -e "s|.*HOMEDIR$$||" ${TMPPLIST} .include diff --git a/www/py-calibreweb/distinfo b/www/py-calibreweb/distinfo index fedffc2bd2c2..d662186ee30a 100644 --- a/www/py-calibreweb/distinfo +++ b/www/py-calibreweb/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1756041510 -SHA256 (calibreweb-0.6.25.tar.gz) = 27f8c3c2790ac6732a16eda52bd450a0578ad177c21f68b7373e68a3b86379cc -SIZE (calibreweb-0.6.25.tar.gz) = 7199153 -SHA256 (f493d4e4e521b99964c0b2a744d54390fc3b663e.patch) = 38a80e7ab18d5f06216b5b0b3fbe45d7cd59c3d43aecea2eb4ba9510d6f118ca -SIZE (f493d4e4e521b99964c0b2a744d54390fc3b663e.patch) = 1748 +TIMESTAMP = 1770412907 +SHA256 (calibreweb-0.6.26.tar.gz) = 4d0cdb10df10872817d26f9cbf43097674e35bbb16d16c6c4ff5a24c002a2358 +SIZE (calibreweb-0.6.26.tar.gz) = 7256515 diff --git a/www/py-calibreweb/files/calibreweb.in b/www/py-calibreweb/files/calibreweb.in index 75fc5a352314..78e83108400b 100644 --- a/www/py-calibreweb/files/calibreweb.in +++ b/www/py-calibreweb/files/calibreweb.in @@ -1,91 +1,92 @@ #!/bin/sh # # PROVIDE: %%PORTNAME%% # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # %%RC_NAME%%_enable (bool): Set to NO by default. # Set it to YES to enable it. # %%RC_NAME%%_ip_addr: IP Address used to listen for connections # Default: 0.0.0.0 # %%RC_NAME%%_conf_dir: Directory where %%RC_NAME%% configuration # data is stored. # Default: %%PREFIX%%/%%RC_NAME%% # %%RC_NAME%%_settings: Directory and file name of %%RC_NAME%% settings # db is stored. # Default: %%PREFIX%%/%%RC_NAME%%/app.db # %%RC_NAME%%_gdrive: Directory and file name of %%RC_NAME%% gdrive # db is stored. # Default: %%PREFIX%%/%%RC_NAME%%/gdrive.db # %%RC_NAME%%_cert: Directory and file name of %%RC_NAME%% # certificate is stored. # Default: None # %%RC_NAME%%_key: Directory and file name of %%RC_NAME%% # key is stored. # Default: None # %%RC_NAME%%_flags: Additonal flags as needed # Default: None # %%RC_NAME%%_user: The user account %%RC_NAME%% daemon runs as what # you want it to be. It uses '%%RC_NAME%%' user by # default. Do not set it as empty or it will run # as root. # %%RC_NAME%%_group: The group account %%RC_NAME%% daemon runs as what # you want it to be. It uses '%%RC_NAME%%' group by # default. Do not set it as empty or it will run # as wheel. # %%RC_NAME%%_pid: Set the name of the %%RC_NAME%% pidfile # Default: %%PORTNAME%%.pid # %%RC_NAME%%_pid_dir: Set the directory of the %%RC_NAME%% pidfile # Default: /var/run/%%PORTNAME%% # %%RC_NAME%%_log: Set the name of the %%RC_NAME%% logfile # Default: %%PORTNAME%%.log # %%RC_NAME%%_log_dir: Set the directory of the %%RC_NAME%% logfile # Default: /var/log/%%PORTNAME%% . /etc/rc.subr name=%%RC_NAME%% rcvar=%%RC_NAME%%_enable load_rc_config ${name} : ${%%RC_NAME%%_enable:=NO} : ${%%RC_NAME%%_user:=%%USER%%} : ${%%RC_NAME%%_group:=%%GROUP%%} : ${%%RC_NAME%%_ip_addr:="0.0.0.0"} : ${%%RC_NAME%%_conf_dir:="%%DATADIR%%"} : ${%%RC_NAME%%_settings:="${%%RC_NAME%%_conf_dir}/app.db"} : ${%%RC_NAME%%_gdrive:="${%%RC_NAME%%_conf_dir}/gdrive.db"} : ${%%RC_NAME%%_pid:="%%PORTNAME%%.pid"} : ${%%RC_NAME%%_pid_dir:="/var/run/%%PORTNAME%%"} : ${%%RC_NAME%%_log:="%%PORTNAME%%.log"} : ${%%RC_NAME%%_log_dir:="/var/log/%%PORTNAME%%"} pidfile=${%%RC_NAME%%_pid_dir}/${%%RC_NAME%%_pid} logfile=${%%RC_NAME%%_log_dir}/${%%RC_NAME%%_log} start_precmd="${name}_prestart" procname="%%PREFIX%%/bin/cps" command_interpreter="%%PYTHON_CMD%%" command="/usr/sbin/daemon" command_args="-p $pidfile $procname \ -i ${%%RC_NAME%%_ip_addr} \ -p ${%%RC_NAME%%_settings} \ -g ${%%RC_NAME%%_gdrive} \ ${%%RC_NAME%%_cert:+-c ${%%RC_NAME%%_cert}} \ ${%%RC_NAME%%_key:+-k ${%%RC_NAME%%_key}} \ -o $logfile" %%RC_NAME%%_prestart() { PATH=${PATH}:%%PREFIX%%/bin:%%PREFIX%%/sbin + export CACHE_DIRECTORY=${%%RC_NAME%%_conf_dir}/cache for calwebdir in ${%%RC_NAME%%_pid_dir} ${%%RC_NAME%%_log_dir} ${%%RC_NAME%%_conf_dir}; do [ -d ${calwebdir} ] || install -d -g ${%%RC_NAME%%_group} -o ${%%RC_NAME%%_user} ${calwebdir} done } run_rc_command $1