mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
www-apps/tt-rss: Bump to 20220218, EAPI 8, fix for dash, fix permissions
Thanks to Anna Vyalkova for the dash fix. Note that the configuration syntax has changed since the last version. Closes: https://bugs.gentoo.org/833206 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
This commit is contained in:
@@ -1 +1,2 @@
|
||||
DIST tt-rss-20200922.tar.gz 3406007 BLAKE2B 7058253fbbba1c121d11eace8a3ef024b7ef83b05fd8b10b0ba0d017fa75d16b970e2c95c13091f760b21bcf092f609d81a5649de03672b0394113412f90beb0 SHA512 90387d07af76bc90bfb2e740dcfa0b2e13ed9af679a6c9258edd053511277bc36fca8edd4b3862c3f1957fa65a827b161abf3ed7fa603d4b84514fd456947a47
|
||||
DIST tt-rss-20220218.tar.gz 9916433 BLAKE2B 318969b6e5156842079bf68c4ea614e5e60e21d8caa46b1a78f2cef051904da30e5091838f6e10f6f610d8ee39c7922137aeb60b7cd5004cabc1d2cdf65edfa8 SHA512 38a81dd737462724bc52ca3915350c175abe548cd566a4f9a5e1d5efda9287d0666e9348e5b13dd20549360501de5b0bfb659292fb650f7a60fdab8b63cf8202
|
||||
|
||||
24
www-apps/tt-rss/files/permissions-r1
Normal file
24
www-apps/tt-rss/files/permissions-r1
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
cd "${MY_INSTALLDIR}"
|
||||
|
||||
if [[ $1 = install ]]; then
|
||||
# We need to lock down cache/ for the operations below to be
|
||||
# safe. The permissions match the webapp-config defaults but these
|
||||
# can be changed and existing installations may also differ.
|
||||
chown root:root cache/
|
||||
chmod 00755 cache/
|
||||
|
||||
chgrp --no-dereference ttrssd feed-icons/ lock/ cache/*/
|
||||
chmod g+ws feed-icons/ lock/ cache/*/
|
||||
|
||||
# Files within lock/ are exclusively written by the update daemon.
|
||||
# feed-icons/ and cache/ holds files that are modified in place by both
|
||||
# processes and therefore ACLs are required to ensure that the files
|
||||
# themselves are created as group writable.
|
||||
if ! setfacl --modify d:g::rwX feed-icons/ cache/*/; then
|
||||
echo "WARNING: ACLs are not available on this filesystem. Either enable them or set TTRSSD_USER to your PHP user in /etc/conf.d/ttrssd to avoid permission issues."
|
||||
elif [[ -n $(find feed-icons/ cache/ -type f ! -name ".*" ! -name index.html ! \( -group ttrssd -perm -020 \) -print -quit) ]]; then
|
||||
echo "WARNING: Files that are not writable by the ttrssd group found within the cache or feed-icons directories. Either delete them or correct their permissions."
|
||||
fi
|
||||
fi
|
||||
@@ -1,4 +1,5 @@
|
||||
Please read https://tt-rss.org/wiki/InstallationNotes.
|
||||
Please read https://tt-rss.org/wiki/GlobalConfig. Note that the configuration
|
||||
syntax changed in 2021.
|
||||
|
||||
Once you have configured TT-RSS, tweak /etc/conf.d/ttrssd to your
|
||||
needs if you have not already done so. If ACLs are unavailable on the
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
Please read https://tt-rss.org/wiki/InstallationNotes.
|
||||
Please read https://tt-rss.org/wiki/GlobalConfig. Note that the configuration
|
||||
syntax changed in 2021.
|
||||
|
||||
26
www-apps/tt-rss/files/tt-rss-no-chmod.patch
Normal file
26
www-apps/tt-rss/files/tt-rss-no-chmod.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
These files may be written and then updated by the web interface user or the
|
||||
update daemon user, so they need to be group writeable. We enforce this with
|
||||
ACLs rather than chmod though.
|
||||
|
||||
diff --color -Naur a/classes/pref/feeds.php b/classes/pref/feeds.php
|
||||
--- a/classes/pref/feeds.php 2022-02-18 13:44:03.000000000 +0000
|
||||
+++ b/classes/pref/feeds.php 2022-02-19 15:37:55.000723992 +0000
|
||||
@@ -490,7 +490,6 @@
|
||||
|
||||
if (file_exists($new_filename)) unlink($new_filename);
|
||||
if (rename($tmp_file, $new_filename)) {
|
||||
- chmod($new_filename, 0644);
|
||||
|
||||
$feed->set([
|
||||
'favicon_avg_color' => null,
|
||||
diff --color -Naur a/classes/rssutils.php b/classes/rssutils.php
|
||||
--- a/classes/rssutils.php 2022-02-18 13:44:03.000000000 +0000
|
||||
+++ b/classes/rssutils.php 2022-02-19 15:37:40.393312123 +0000
|
||||
@@ -1728,7 +1728,6 @@
|
||||
|
||||
fwrite($fp, $contents);
|
||||
fclose($fp);
|
||||
- chmod($icon_file, 0644);
|
||||
clearstatcache();
|
||||
|
||||
return $icon_file;
|
||||
119
www-apps/tt-rss/files/ttrssd.initd-r4
Normal file
119
www-apps/tt-rss/files/ttrssd.initd-r4
Normal file
@@ -0,0 +1,119 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2022 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
command="/usr/bin/php"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
after postgresql mysql
|
||||
}
|
||||
|
||||
PID_DIR="/run/ttrssd"
|
||||
LOG_DIR=${LOG_DIR:-"/var/log/ttrssd"}
|
||||
TTRSSD_USER=${TTRSSD_USER:-"ttrssd"}
|
||||
|
||||
list_instance_dirs() {
|
||||
if [ -z "${INSTANCE_DIRS}" ]; then
|
||||
cut -d" " -f4 /var/db/webapps/tt-rss/*/installs 2>/dev/null
|
||||
else
|
||||
printf "%s\n" ${INSTANCE_DIRS}
|
||||
fi
|
||||
}
|
||||
|
||||
instance_dir_to_name() {
|
||||
local name
|
||||
|
||||
name=${1#/}
|
||||
printf %s "${name}" | awk '{
|
||||
gsub("/", "--");
|
||||
print $0;
|
||||
}'
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
mkdir -p "${PID_DIR}" "${LOG_DIR}" || return 1
|
||||
chown "${TTRSSD_USER}":ttrssd "${LOG_DIR}" || return 1
|
||||
}
|
||||
|
||||
start() {
|
||||
local instance_dir instance_name ret=1
|
||||
|
||||
IFS="
|
||||
"
|
||||
for instance_dir in $(list_instance_dirs); do
|
||||
if [ -d "${instance_dir}" ]; then
|
||||
if [ ! -f "${instance_dir}"/update_daemon2.php ]; then
|
||||
ewarn "TT-RSS instance in ${instance_dir} has no update_daemon2.php script"
|
||||
elif [ ! -f "${instance_dir}"/config.php ]; then
|
||||
eerror "TT-RSS instance in ${instance_dir} is not configured"
|
||||
else
|
||||
instance_name=$(instance_dir_to_name "${instance_dir}")
|
||||
ebegin "Starting TT-RSS update daemon in ${instance_dir}"
|
||||
start-stop-daemon --start --user "${TTRSSD_USER}":ttrssd \
|
||||
--background --wait 2000 \
|
||||
--stdout "${LOG_DIR}/${instance_name}.log" \
|
||||
--stderr "${LOG_DIR}/${instance_name}.log" \
|
||||
--make-pidfile --pidfile "${PID_DIR}/${instance_name}.pid" \
|
||||
--exec /usr/bin/php -- -f "${instance_dir}"/update_daemon2.php \
|
||||
-- ${TTRSSD_OPTS}
|
||||
eend $? && ret=0
|
||||
fi
|
||||
else
|
||||
eerror "TT-RSS instance in ${instance_dir} is missing"
|
||||
fi
|
||||
done
|
||||
unset IFS
|
||||
|
||||
# Succeed if at least one started.
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
stop() {
|
||||
local instance_dir instance_name
|
||||
|
||||
IFS="
|
||||
"
|
||||
for instance_dir in $(list_instance_dirs); do
|
||||
instance_name=$(instance_dir_to_name "${instance_dir}")
|
||||
|
||||
[ -f "${PID_DIR}/${instance_name}.pid" ] ||
|
||||
[ -f "${instance_dir}"/update_daemon2.php ] ||
|
||||
continue
|
||||
|
||||
ebegin "Stopping TT-RSS update daemon in ${instance_dir}"
|
||||
start-stop-daemon --stop --retry 5 --pidfile "${PID_DIR}/${instance_name}.pid" \
|
||||
--exec /usr/bin/php -- -f "${instance_dir}"/update_daemon2.php \
|
||||
-- ${TTRSSD_OPTS}
|
||||
eend $?
|
||||
|
||||
rm -f "${instance_dir}"/lock/*.lock
|
||||
done
|
||||
unset IFS
|
||||
|
||||
# Always succeed.
|
||||
return 0
|
||||
}
|
||||
|
||||
status() {
|
||||
local instance_dir instance_name pid
|
||||
|
||||
IFS="
|
||||
"
|
||||
for instance_dir in $(list_instance_dirs); do
|
||||
instance_name=$(instance_dir_to_name "${instance_dir}")
|
||||
|
||||
[ -f "${PID_DIR}/${instance_name}.pid" ] ||
|
||||
[ -f "${instance_dir}"/update_daemon2.php ] ||
|
||||
continue
|
||||
|
||||
if start-stop-daemon --signal 0 --pidfile "${PID_DIR}/${instance_name}.pid"; then
|
||||
# At least one instance is running
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
unset IFS
|
||||
|
||||
# No instances are running
|
||||
return 3
|
||||
}
|
||||
@@ -93,8 +93,3 @@ src_install() {
|
||||
|
||||
webapp_src_install
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "You need to merge config.php-dist into config.php manually when upgrading."
|
||||
webapp_pkg_postinst
|
||||
}
|
||||
|
||||
90
www-apps/tt-rss/tt-rss-20220218.ebuild
Normal file
90
www-apps/tt-rss/tt-rss-20220218.ebuild
Normal file
@@ -0,0 +1,90 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit webapp
|
||||
|
||||
DESCRIPTION="Tiny Tiny RSS - A web-based news feed (RSS/Atom) aggregator using AJAX"
|
||||
HOMEPAGE="https://tt-rss.org/"
|
||||
SRC_URI="https://dev.gentoo.org/~chewi/distfiles/${P}.tar.gz" # Upstream git frontend blocks wget?
|
||||
LICENSE="GPL-3"
|
||||
KEYWORDS="~amd64 ~arm ~mips ~x86"
|
||||
IUSE="+acl daemon gd +mysqli postgres"
|
||||
REQUIRED_USE="|| ( mysqli postgres )"
|
||||
|
||||
PHP_SLOTS="8.0 7.4 7.3"
|
||||
PHP_USE="gd?,mysqli?,postgres?,curl,fileinfo,intl,json(+),pdo,unicode,xml"
|
||||
|
||||
php_rdepend() {
|
||||
local slot
|
||||
echo "|| ("
|
||||
for slot in ${PHP_SLOTS}; do
|
||||
echo "(
|
||||
virtual/httpd-php:${slot}
|
||||
dev-lang/php:${slot}[$1]
|
||||
)"
|
||||
done
|
||||
echo ")"
|
||||
}
|
||||
|
||||
DEPEND="
|
||||
daemon? ( acl? ( sys-apps/acl ) )
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
daemon? (
|
||||
acct-user/ttrssd
|
||||
acct-group/ttrssd
|
||||
$(php_rdepend "${PHP_USE},cli,pcntl")
|
||||
)
|
||||
!daemon? (
|
||||
$(php_rdepend "${PHP_USE}")
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
!vhosts? ( ${DEPEND} )
|
||||
"
|
||||
|
||||
need_httpd_cgi # From webapp.eclass
|
||||
|
||||
S="${WORKDIR}/${PN}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-no-chmod.patch
|
||||
)
|
||||
|
||||
src_install() {
|
||||
webapp_src_preinst
|
||||
|
||||
insinto "${MY_HTDOCSDIR}"
|
||||
doins -r *
|
||||
|
||||
# When updating, grep the plugins directory for additional CACHE_DIR
|
||||
# instances as they cannot be created later due to permissions.
|
||||
dodir "${MY_HTDOCSDIR}"/cache/starred-images
|
||||
|
||||
local dir
|
||||
for dir in "${ED}${MY_HTDOCSDIR}"/{cache/*,feed-icons,lock}/; do
|
||||
webapp_serverowned "${dir#${ED}}"
|
||||
done
|
||||
|
||||
if use daemon; then
|
||||
webapp_hook_script "${FILESDIR}"/permissions-r1
|
||||
webapp_postinst_txt en "${FILESDIR}"/postinstall-en-with-daemon-r1.txt
|
||||
|
||||
newinitd "${FILESDIR}"/ttrssd.initd-r4 ttrssd
|
||||
newconfd "${FILESDIR}"/ttrssd.confd-r2 ttrssd
|
||||
|
||||
insinto /etc/logrotate.d
|
||||
newins "${FILESDIR}"/ttrssd.logrotated-r1 ttrssd
|
||||
|
||||
elog "After upgrading, please restart ttrssd."
|
||||
else
|
||||
webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
|
||||
fi
|
||||
|
||||
webapp_src_install
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
EAPI=8
|
||||
|
||||
inherit git-r3 prefix webapp
|
||||
inherit git-r3 webapp
|
||||
|
||||
DESCRIPTION="Tiny Tiny RSS - A web-based news feed (RSS/Atom) aggregator using AJAX"
|
||||
HOMEPAGE="https://tt-rss.org/"
|
||||
@@ -50,13 +50,9 @@ DEPEND="
|
||||
|
||||
need_httpd_cgi # From webapp.eclass
|
||||
|
||||
src_configure() {
|
||||
hprefixify config.php-dist
|
||||
|
||||
sed -i -r \
|
||||
-e "/'DB_TYPE'/s:,.*:, '$(usex mysqli mysql pgsql)'); // mysql or pgsql:" \
|
||||
config.php-dist || die
|
||||
}
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-no-chmod.patch
|
||||
)
|
||||
|
||||
src_install() {
|
||||
webapp_src_preinst
|
||||
@@ -74,10 +70,10 @@ src_install() {
|
||||
done
|
||||
|
||||
if use daemon; then
|
||||
webapp_hook_script "${FILESDIR}"/permissions
|
||||
webapp_hook_script "${FILESDIR}"/permissions-r1
|
||||
webapp_postinst_txt en "${FILESDIR}"/postinstall-en-with-daemon-r1.txt
|
||||
|
||||
newinitd "${FILESDIR}"/ttrssd.initd-r3 ttrssd
|
||||
newinitd "${FILESDIR}"/ttrssd.initd-r4 ttrssd
|
||||
newconfd "${FILESDIR}"/ttrssd.confd-r2 ttrssd
|
||||
|
||||
insinto /etc/logrotate.d
|
||||
@@ -92,8 +88,6 @@ src_install() {
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "You need to merge config.php-dist into config.php manually when upgrading."
|
||||
|
||||
if use vhosts && [[ -n ${REPLACING_VERSIONS} ]]; then
|
||||
elog
|
||||
elog "The live ebuild does not automatically upgrade your installations so"
|
||||
|
||||
Reference in New Issue
Block a user