forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]>
- Loading branch information
Showing
9 changed files
with
271 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters