public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "James Le Cuirot" <chewi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: www-apps/tt-rss/, www-apps/tt-rss/files/
Date: Sat, 19 Feb 2022 16:00:55 +0000 (UTC)	[thread overview]
Message-ID: <1645286437.6bbd050f9ecc0fadd9fae6eabc7206a6042d397f.chewi@gentoo> (raw)

commit:     6bbd050f9ecc0fadd9fae6eabc7206a6042d397f
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 19 15:59:25 2022 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sat Feb 19 16:00:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bbd050f

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 <AT> gentoo.org>

 www-apps/tt-rss/Manifest                           |   1 +
 www-apps/tt-rss/files/permissions-r1               |  24 +++++
 .../tt-rss/files/postinstall-en-with-daemon-r1.txt |   3 +-
 www-apps/tt-rss/files/postinstall-en.txt           |   3 +-
 www-apps/tt-rss/files/tt-rss-no-chmod.patch        |  26 +++++
 www-apps/tt-rss/files/ttrssd.initd-r4              | 119 +++++++++++++++++++++
 www-apps/tt-rss/tt-rss-20200922.ebuild             |   5 -
 ...-rss-20200922.ebuild => tt-rss-20220218.ebuild} |  26 ++---
 www-apps/tt-rss/tt-rss-99999999.ebuild             |  20 ++--
 9 files changed, 189 insertions(+), 38 deletions(-)

diff --git a/www-apps/tt-rss/Manifest b/www-apps/tt-rss/Manifest
index a650767d6971..5a6f1e2a2113 100644
--- a/www-apps/tt-rss/Manifest
+++ b/www-apps/tt-rss/Manifest
@@ -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

diff --git a/www-apps/tt-rss/files/permissions-r1 b/www-apps/tt-rss/files/permissions-r1
new file mode 100644
index 000000000000..e50b4406646d
--- /dev/null
+++ b/www-apps/tt-rss/files/permissions-r1
@@ -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

diff --git a/www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt b/www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt
index 8c72406d76d2..92d1fa315c72 100644
--- a/www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt
+++ b/www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt
@@ -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

diff --git a/www-apps/tt-rss/files/postinstall-en.txt b/www-apps/tt-rss/files/postinstall-en.txt
index 67a16111f3d5..f28a19d991bf 100644
--- a/www-apps/tt-rss/files/postinstall-en.txt
+++ b/www-apps/tt-rss/files/postinstall-en.txt
@@ -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.

diff --git a/www-apps/tt-rss/files/tt-rss-no-chmod.patch b/www-apps/tt-rss/files/tt-rss-no-chmod.patch
new file mode 100644
index 000000000000..e51e66eaed22
--- /dev/null
+++ b/www-apps/tt-rss/files/tt-rss-no-chmod.patch
@@ -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;

diff --git a/www-apps/tt-rss/files/ttrssd.initd-r4 b/www-apps/tt-rss/files/ttrssd.initd-r4
new file mode 100644
index 000000000000..9dbfa157ce43
--- /dev/null
+++ b/www-apps/tt-rss/files/ttrssd.initd-r4
@@ -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
+}

diff --git a/www-apps/tt-rss/tt-rss-20200922.ebuild b/www-apps/tt-rss/tt-rss-20200922.ebuild
index 86ea09cce5e4..e2117ac64f57 100644
--- a/www-apps/tt-rss/tt-rss-20200922.ebuild
+++ b/www-apps/tt-rss/tt-rss-20200922.ebuild
@@ -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
-}

diff --git a/www-apps/tt-rss/tt-rss-20200922.ebuild b/www-apps/tt-rss/tt-rss-20220218.ebuild
similarity index 78%
copy from www-apps/tt-rss/tt-rss-20200922.ebuild
copy to www-apps/tt-rss/tt-rss-20220218.ebuild
index 86ea09cce5e4..2081b2a81759 100644
--- a/www-apps/tt-rss/tt-rss-20200922.ebuild
+++ b/www-apps/tt-rss/tt-rss-20220218.ebuild
@@ -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 prefix webapp
+inherit webapp
 
 DESCRIPTION="Tiny Tiny RSS - A web-based news feed (RSS/Atom) aggregator using AJAX"
 HOMEPAGE="https://tt-rss.org/"
@@ -13,7 +13,7 @@ KEYWORDS="~amd64 ~arm ~mips ~x86"
 IUSE="+acl daemon gd +mysqli postgres"
 REQUIRED_USE="|| ( mysqli postgres )"
 
-PHP_SLOTS="7.4 7.3"
+PHP_SLOTS="8.0 7.4 7.3"
 PHP_USE="gd?,mysqli?,postgres?,curl,fileinfo,intl,json(+),pdo,unicode,xml"
 
 php_rdepend() {
@@ -52,14 +52,9 @@ need_httpd_cgi # From webapp.eclass
 
 S="${WORKDIR}/${PN}"
 
-src_configure() {
-	hprefixify config.php-dist
-
-	sed -i -r \
-		-e "/'DB_TYPE'/s:,.*:, '$(usex mysqli mysql pgsql)'); // mysql or pgsql:" \
-		-e "/'CHECK_FOR_UPDATES'/s/true/false/" \
-		config.php-dist || die
-}
+PATCHES=(
+	"${FILESDIR}"/${PN}-no-chmod.patch
+)
 
 src_install() {
 	webapp_src_preinst
@@ -77,10 +72,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
@@ -93,8 +88,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
-}

diff --git a/www-apps/tt-rss/tt-rss-99999999.ebuild b/www-apps/tt-rss/tt-rss-99999999.ebuild
index 25e4a31621d6..e91fad7a3c67 100644
--- a/www-apps/tt-rss/tt-rss-99999999.ebuild
+++ b/www-apps/tt-rss/tt-rss-99999999.ebuild
@@ -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"


             reply	other threads:[~2022-02-19 16:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-19 16:00 James Le Cuirot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-05 22:56 [gentoo-commits] repo/gentoo:master commit in: www-apps/tt-rss/, www-apps/tt-rss/files/ James Le Cuirot
2022-12-17 22:19 James Le Cuirot
2022-03-20 23:03 James Le Cuirot
2018-01-18 13:44 James Le Cuirot
2018-01-18 13:44 James Le Cuirot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1645286437.6bbd050f9ecc0fadd9fae6eabc7206a6042d397f.chewi@gentoo \
    --to=chewi@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox