summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-apps/tt-rss/files')
-rw-r--r--www-apps/tt-rss/files/permissions25
-rw-r--r--www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt14
-rw-r--r--www-apps/tt-rss/files/postinstall-en-with-daemon.txt2
-rw-r--r--www-apps/tt-rss/files/postinstall-en.txt7
-rw-r--r--www-apps/tt-rss/files/ttrssd.confd-r247
-rw-r--r--www-apps/tt-rss/files/ttrssd.initd-r388
-rw-r--r--www-apps/tt-rss/files/ttrssd.logrotated1
-rw-r--r--www-apps/tt-rss/files/ttrssd.logrotated-r19
8 files changed, 186 insertions, 7 deletions
diff --git a/www-apps/tt-rss/files/permissions b/www-apps/tt-rss/files/permissions
new file mode 100644
index 000000000000..a26b87f4e715
--- /dev/null
+++ b/www-apps/tt-rss/files/permissions
@@ -0,0 +1,25 @@
+#!/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. Files within feed-icons/ are always unlinked before
+ # modification. Only 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 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 cache/ -type f ! -name ".*" ! \( -group ttrssd -perm -020 \) -print -quit) ]]; then
+ echo "WARNING: Files that are not writable by the ttrssd group found within the cache directory. 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
new file mode 100644
index 000000000000..8c72406d76d2
--- /dev/null
+++ b/www-apps/tt-rss/files/postinstall-en-with-daemon-r1.txt
@@ -0,0 +1,14 @@
+Please read https://tt-rss.org/wiki/InstallationNotes.
+
+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
+filesystem you have just installed to then you will need to set
+TTRSSD_USER to your PHP user. When everything is ready, (re)start the
+update daemon like so:
+
+ /etc/init.d/ttrssd restart
+
+This will periodically update your feeds in the background. Add the
+daemon to your default runlevel to start it on every boot:
+
+ rc-update add ttrssd default
diff --git a/www-apps/tt-rss/files/postinstall-en-with-daemon.txt b/www-apps/tt-rss/files/postinstall-en-with-daemon.txt
index 7d269d7165f2..25545842a381 100644
--- a/www-apps/tt-rss/files/postinstall-en-with-daemon.txt
+++ b/www-apps/tt-rss/files/postinstall-en-with-daemon.txt
@@ -1,4 +1,4 @@
-Please read http://tt-rss.org/redmine/projects/tt-rss/wiki/InstallationNotes
+Please read https://tt-rss.org/wiki/InstallationNotes.
Once you have configured TT-RSS, put the path to this instance into
the INSTANCE_DIRS variable in /etc/conf.d/ttrssd. Make sure that
diff --git a/www-apps/tt-rss/files/postinstall-en.txt b/www-apps/tt-rss/files/postinstall-en.txt
index 7b4b279e5be4..67a16111f3d5 100644
--- a/www-apps/tt-rss/files/postinstall-en.txt
+++ b/www-apps/tt-rss/files/postinstall-en.txt
@@ -1,6 +1 @@
-Please read http://tt-rss.org/redmine/projects/tt-rss/wiki/InstallationNotes
-
-With the update to 1.7.0 the 'magpie' RSS parser has been removed.
-That means TT-RSS will use the 'simplepie' parser. If you have been
-using 'magpie' so far, the switch might cause lots of duplicate
-articles - it's a one-time thing for each instance.
+Please read https://tt-rss.org/wiki/InstallationNotes.
diff --git a/www-apps/tt-rss/files/ttrssd.confd-r2 b/www-apps/tt-rss/files/ttrssd.confd-r2
new file mode 100644
index 000000000000..b169b548bb9a
--- /dev/null
+++ b/www-apps/tt-rss/files/ttrssd.confd-r2
@@ -0,0 +1,47 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Space-separated paths of TT-RSS instances that you want to start the
+# update daemon for. If left empty, these will be automatically
+# detected using data from /var/db/webapps/tt-rss. Instances without
+# the update_daemon2.php script present will be skipped.
+#
+# Default:
+# INSTANCE_DIRS=""
+# Example:
+# INSTANCE_DIRS="/some/webhost/htdocs/tt-rss /some/otherwebhost/htdocs/newsreader"
+#
+INSTANCE_DIRS=""
+
+# Path to the log files. One log file will be created for each TT-RSS
+# instance. Update the logrotate file after changing this.
+#
+# Default:
+# LOG_DIR="/var/log/ttrssd"
+#
+LOG_DIR="/var/log/ttrssd"
+
+# User to run the update daemon as. You should not run this as
+# root. If ACLs are unavailable on the filesystem used by the TT-RSS
+# instances then choosing the same user that serves the PHP web
+# interface is recommended to avoid permission issues. You *must* add
+# this user to the ttrssd group. If the PHP user is not the same as
+# the web server user (e.g. apache or nginx) then this user must be
+# added to the ttrssd group too.
+#
+# Default:
+# TTRSSD_USER="ttrssd"
+#
+TTRSSD_USER="ttrssd"
+
+# Additional options to pass to the update daemon. If you want to pass
+# different options to different TT-RSS instances then create symlinks
+# of the ttrssd init.d script (e.g. ttrssd.foo, ttrssd.bar) and
+# configure INSTANCE_DIRS and TTRSSD_OPTS for each of these.
+#
+# Default:
+# TTRSSD_OPTS=""
+# Example:
+# TTRSSD_OPTS="--tasks=1 --interval=300"
+#
+TTRSSD_OPTS=""
diff --git a/www-apps/tt-rss/files/ttrssd.initd-r3 b/www-apps/tt-rss/files/ttrssd.initd-r3
new file mode 100644
index 000000000000..a6f3b8a78ef1
--- /dev/null
+++ b/www-apps/tt-rss/files/ttrssd.initd-r3
@@ -0,0 +1,88 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+ after postgresql mysql
+}
+
+PID_DIR="/run/ttrssd"
+LOG_DIR=${LOG_DIR:-"/var/log/ttrssd"}
+TTRSSD_USER=${TTRSSD_USER:-"ttrssd"}
+
+setup() {
+ mkdir -p "${PID_DIR}" "${LOG_DIR}" || return 1
+ chown "${TTRSSD_USER}":ttrssd "${LOG_DIR}" || return 1
+}
+
+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=${1#/}
+ echo ${name//\//--}
+}
+
+start() {
+ setup || return 1
+ local instance_dir instance_name ret=1
+
+ IFS=$'\n'
+ 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=$'\n'
+ 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
+}
diff --git a/www-apps/tt-rss/files/ttrssd.logrotated b/www-apps/tt-rss/files/ttrssd.logrotated
index 9616a98c3029..2bb0d0c1dd37 100644
--- a/www-apps/tt-rss/files/ttrssd.logrotated
+++ b/www-apps/tt-rss/files/ttrssd.logrotated
@@ -1,5 +1,6 @@
/var/log/ttrssd.log {
daily
+ delaycompress
missingok
notifempty
postrotate
diff --git a/www-apps/tt-rss/files/ttrssd.logrotated-r1 b/www-apps/tt-rss/files/ttrssd.logrotated-r1
new file mode 100644
index 000000000000..c2bf08f75619
--- /dev/null
+++ b/www-apps/tt-rss/files/ttrssd.logrotated-r1
@@ -0,0 +1,9 @@
+/var/log/ttrssd/*.log {
+ daily
+ delaycompress
+ missingok
+ notifempty
+ postrotate
+ /etc/init.d/ttrssd restart > /dev/null
+ endscript
+}