diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbb3a13 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.rpm +*.log +*spec-20* +*.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4b4a086 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +# Makefile for source rpm: smeserver-tt-rss +NAME := smeserver-tt-rss +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md index baf632c..514ef0f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ -# smeserver-tt-rss +# smeserver-tt-rss -SMEServer Koozali developed git repo for smeserver-tt-rss smecontribs \ No newline at end of file +SMEServer Koozali developed git repo for smeserver-tt-rss smecontribs + +## Wiki +
https://wiki.koozali.org/ + +## Bugzilla +Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-tt-rss&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) + +## Description + +
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.* +*Once it has been checked, then this comment will be deleted* +
diff --git a/additional/CHANGELOG.git b/additional/CHANGELOG.git new file mode 100644 index 0000000..eed6637 --- /dev/null +++ b/additional/CHANGELOG.git @@ -0,0 +1,291 @@ +commit 861925abb67bee91ac99fd9e6d67f847e0a833f1 +Author: Daniel Berteaud +Date: Tue Jul 18 11:32:47 2017 +0200 + + Remove hardcoded php version + Replace it at build time instead so it's easier to change + +commit 3168a47f088c0564f3007d27f3365b7bc3c9fcce +Author: Daniel Berteaud +Date: Tue Jul 18 11:31:34 2017 +0200 + + Fix tmp dir + +commit 89b96992833d69e59fe16978cf385ddfd60ff3fd +Author: Daniel Berteaud +Date: Tue Jul 18 11:30:13 2017 +0200 + + Limit max_requests to 1000 + +commit 489aa0a7b36b5b87416d4646f7dda98d7472243e +Author: Daniel Berteaud +Date: Fri Jul 14 11:50:23 2017 +0200 + + Cleanup in the fpm pool template + +commit 40668f71d9f321e201c1c885bf20824336191735 +Author: Daniel Berteaud +Date: Thu Jul 13 18:26:59 2017 +0200 + + Move php-fpm tempalte to the correct location + +commit 0dfa5b6d3b0e9b2a13177249c826d3ed4d58c682 +Author: Daniel Berteaud +Date: Thu Jul 13 17:38:49 2017 +0200 + + Revert "Move to php56 dir" + + This reverts commit b88d97b5ca4030c5fafa0a53b4db4c1fee08d82d. + +commit b88d97b5ca4030c5fafa0a53b4db4c1fee08d82d +Author: Daniel Berteaud +Date: Thu Jul 13 17:38:37 2017 +0200 + + Move to php56 dir + +commit b560124a22eaabea7ef38de24b57be54a2e213d3 +Author: Daniel Berteaud +Date: Thu Jul 13 17:27:55 2017 +0200 + + Rename template fragment for www.conf + +commit 0a2bdb6d9ac74f692f454f347b3703878728e0d3 +Author: Daniel Berteaud +Date: Thu Jul 13 17:19:34 2017 +0200 + + Spacing issue + +commit b810bb40f8802bd4f38be9f1256ed2b0c4afe085 +Author: Daniel Berteaud +Date: Thu Jul 13 17:19:02 2017 +0200 + + Put PHP-FPM pool conf in www.conf + +commit 6d146dc619553f7b7516a5ee266b17e503ef1c1e +Author: Daniel Berteaud +Date: Thu Jul 13 12:22:11 2017 +0200 + + Another php -> php71 + +commit c5dec2f0006b22aadb6547bc8821245f916cef1c +Author: Daniel Berteaud +Date: Thu Jul 13 11:37:05 2017 +0200 + + Adjust templates to work with php71 + +commit 293d9801885a8aae67f8e66267d28986545f0e53 +Author: Daniel Berteaud +Date: Thu Jul 13 10:46:44 2017 +0200 + + php-fpm conf must not use # as comment + +commit bf888dd6711dd8920e0e6a29033b67b839a5ec8f +Merge: f2c6689 6277a3a +Author: Daniel Berteaud +Date: Thu Jul 13 10:33:17 2017 +0200 + + Merge branch 'sme9' + +commit f2c668931f7264b28337ef0a28173082c74f2f15 +Author: Daniel Berteaud +Date: Thu Jul 13 09:50:46 2017 +0200 + + Switch to php71 (php-fpm) + +commit 448291ab3fd89a780b721cac0eec9dd693f0e309 +Author: Daniel Berteaud +Date: Tue Feb 16 09:34:27 2016 +0100 + + Spec file update + +commit 6277a3a7699bcc6ef07bf23db3699ad144a4e9e5 +Author: Daniel Berteaud +Date: Tue Feb 16 09:33:27 2016 +0100 + + Spec file update + +commit 0d3a5c2dc1c1b10b268c43ce33eaf611bf0bfbdd +Author: Daniel Berteaud +Date: Tue Feb 16 09:27:45 2016 +0100 + + Remove SESSION_CHECK_ADDRESS + +commit f8bf3150edb3c0454f55c6c08df325decc359b16 +Author: Daniel Berteaud +Date: Tue Feb 16 09:27:45 2016 +0100 + + Remove SESSION_CHECK_ADDRESS + +commit 291f88982e05f920e2f84fa7faccf23ebe583984 +Author: Daniel Berteaud +Date: Mon Jun 29 15:54:26 2015 +0200 + + Spec file update + +commit 554bbd2a35ca05ef80d97bd9a65e0a3442167f80 +Author: Daniel Berteaud +Date: Mon Jun 29 15:18:51 2015 +0200 + + Adapt conf for 20150629 version + +commit 4d6f83856ae63c607d568566c01ef14f61840726 +Author: Daniel Berteaud +Date: Mon Jun 29 15:38:41 2015 +0200 + + Spec file update + +commit a31e9478819b3a092f1e323bf60cea98dcce4bd9 +Author: Daniel Berteaud +Date: Mon Jun 29 15:18:51 2015 +0200 + + Adapt conf for 20150629 version + +commit a402a5b0a982d0b80ef8fab4b064173836d720c0 +Author: Daniel Berteaud +Date: Tue Apr 22 19:01:08 2014 +0200 + + Spec file update + +commit 510580624f0cd256b9d87a3b083f35d6cfabe1dd +Author: Daniel Berteaud +Date: Tue Apr 22 18:59:11 2014 +0200 + + Fix basic auth on SME9 + +commit 1f5812c87948f2232bf5500f3b36ec63207213a7 +Author: Daniel Berteaud +Date: Thu Feb 6 12:56:47 2014 +0100 + + Spec file update + +commit a6b9f89860c58fe5f3d60768875e33cf7c52889a +Author: Daniel Berteaud +Date: Thu Feb 6 12:55:53 2014 +0100 + + Fix database upgrades + +commit 9bf6ec7e9c142548cec737218873f5eb25266254 +Author: Daniel Berteaud +Date: Mon Jan 20 16:51:05 2014 +0100 + + Spec file update + +commit dffe71f5c34ddec60e1fea7928e7de1181089714 +Author: Daniel Berteaud +Date: Mon Jan 20 16:49:55 2014 +0100 + + Remove default Authentication prop (http is still the default value, but it makes it easier to change this default value on another meta-package) + +commit ce4e3bbe7ac4828e737381b58ad446187301b18b +Author: Daniel Berteaud +Date: Wed Dec 18 12:45:53 2013 +0100 + + Spec file update + +commit 52c5ac6bb3903b72cf5bb83f2f6103e7f63282a7 +Author: Daniel Berteaud +Date: Wed Dec 18 12:25:32 2013 +0100 + + Automatically upgrade database schema using update.php + +commit f79cfa865cf1efb32a5561c46ffd2fe4a04828dc +Author: Daniel Berteaud +Date: Wed Dec 18 12:18:41 2013 +0100 + + Add DETECT_ARTICLE_LANGUAGE, needed for tt-rss 1.11 + +commit 4d5379d30f104d349aa3c3a65912786e29699c43 +Author: Daniel Berteaud +Date: Thu Jun 13 09:15:13 2013 +0200 + + update spec file + +commit 7dc148f84bfa8c607d7048eddde5d3687dc5803b +Author: Daniel Berteaud +Date: Wed Jun 12 18:58:08 2013 +0200 + + update spec file + +commit 7f2d3fe39786a4ea83300cc81e0985aae3244fff +Author: Daniel Berteaud +Date: Wed Jun 12 18:56:30 2013 +0200 + + Add SMTP_SECURE needed for v 1.8 + +commit bad3599af78b164f7f1f8b89bea41a5d696ddcdc +Author: Daniel Berteaud +Date: Tue May 14 17:40:14 2013 +0200 + + update spec file + +commit 2579abb6735ff5e5a7c0a859032b830dab1a318c +Author: Daniel Berteaud +Date: Tue May 14 17:03:16 2013 +0200 + + 1.7.9 compat + +commit e8ac589c4d067a27a900af3042c5237ca6b01e28 +Author: Daniel Berteaud +Date: Sun Mar 24 21:15:54 2013 +0100 + + update spec file + +commit c6c6b537e2ef72319457d86200182c0b77657414 +Author: Daniel Berteaud +Date: Sun Mar 24 21:14:23 2013 +0100 + + update daemon run script to use --daemon + +commit ba767963cce9719dc43cd408451211d934904451 +Author: Daniel Berteaud +Date: Sat Mar 23 18:16:31 2013 +0100 + + update spec file + +commit d2e490088e4da9321637851eed8ad78d84dd9fd3 +Author: Daniel Berteaud +Date: Sat Mar 23 14:42:50 2013 +0100 + + add SMTP_PORT parameter + +commit 8cf48413b3d02688fb15467faaf17d6366f704ae +Author: Daniel Berteaud +Date: Tue Mar 5 09:25:49 2013 +0100 + + update the spec file + +commit 9f1624dfdd7da29508496cd4716c1610467e8735 +Author: Daniel Berteaud +Date: Tue Mar 5 09:23:33 2013 +0100 + + update config templates for tt-rss 1.7.x + +commit bb533f83846abed731531b743d4b47cddcc70dd1 +Author: Daniel Berteaud +Date: Tue Nov 20 09:23:00 2012 +0100 + + Update spec file + +commit b996d72872af9320b016e7d0ad52e0197a315bcf +Author: Daniel Berteaud +Date: Wed Nov 14 21:48:06 2012 +0100 + + More config change for v 1.6 + +commit 9d60fb8cc0c3db58dd1df54bb5a9fb4ce6115180 +Author: Daniel Berteaud +Date: Wed Nov 14 19:23:27 2012 +0100 + + Update auth config for ttrss 1.6 + +commit c6428c8b02d09244cd1cefc29744adaaa83736c5 +Author: Daniel Berteaud +Date: Wed Nov 14 19:20:06 2012 +0100 + + Remove useless comment + +commit a7dc6d0251b50dd4b92224bb3afbc64781a4947b +Author: Daniel Berteaud +Date: Tue Apr 24 10:25:01 2012 +0200 + + Initial immport diff --git a/contriborbase b/contriborbase new file mode 100644 index 0000000..9b7fd51 --- /dev/null +++ b/contriborbase @@ -0,0 +1 @@ +contribs10 diff --git a/createlinks b/createlinks new file mode 100644 index 0000000..dd4c399 --- /dev/null +++ b/createlinks @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w + +use esmith::Build::CreateLinks qw(:all); + +for my $event (qw( + bootstrap-console-save + smeserver-tt-rss-update + )) +{ + templates2events("/etc/e-smith/sql/init/tt-rss", $event); + templates2events("/usr/share/tt-rss/config.php", $event); + templates2events("/etc/cron.d/tt-rss", $event); +} + +my $event = 'smeserver-tt-rss-update'; + +# Templates to expand + +templates2events("/etc/httpd/conf/httpd.conf", $event); +templates2events("/etc/opt/remi/php74/php-fpm.d/www.conf", $event); + +safe_symlink("reload", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); +safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/php74-php-fpm"); +safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init");; + +# ttrss daemon +safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/ttrss"); + +# PHP header and footer +safe_symlink("/etc/e-smith/templates-default/template-begin-php", "root/etc/e-smith/templates/usr/share/tt-rss/config.php/template-begin"); +#safe_symlink("/etc/e-smith/templates-default/template-end-php", "root/etc/e-smith/templates/usr/share/tt-rss/config.php/template-end"); + diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/DbName b/root/etc/e-smith/db/configuration/defaults/tt-rss/DbName new file mode 100644 index 0000000..6ac457d --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/DbName @@ -0,0 +1 @@ +rssdb diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/DbUser b/root/etc/e-smith/db/configuration/defaults/tt-rss/DbUser new file mode 100644 index 0000000..e3241ec --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/DbUser @@ -0,0 +1 @@ +rssuser diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/MultiUser b/root/etc/e-smith/db/configuration/defaults/tt-rss/MultiUser new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/MultiUser @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/access b/root/etc/e-smith/db/configuration/defaults/tt-rss/access new file mode 100644 index 0000000..3e18ebf --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/access @@ -0,0 +1 @@ +private diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/status b/root/etc/e-smith/db/configuration/defaults/tt-rss/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/tt-rss/type b/root/etc/e-smith/db/configuration/defaults/tt-rss/type new file mode 100644 index 0000000..f92f363 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/tt-rss/type @@ -0,0 +1 @@ +configuration diff --git a/root/etc/e-smith/db/configuration/defaults/ttrss/description b/root/etc/e-smith/db/configuration/defaults/ttrss/description new file mode 100644 index 0000000..732d8c8 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/ttrss/description @@ -0,0 +1 @@ +tt-rss backend (systemd service) diff --git a/root/etc/e-smith/db/configuration/defaults/ttrss/status b/root/etc/e-smith/db/configuration/defaults/ttrss/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/ttrss/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/ttrss/type b/root/etc/e-smith/db/configuration/defaults/ttrss/type new file mode 100644 index 0000000..24e1098 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/ttrss/type @@ -0,0 +1 @@ +service diff --git a/root/etc/e-smith/db/configuration/migrate/tt-rss-database b/root/etc/e-smith/db/configuration/migrate/tt-rss-database new file mode 100644 index 0000000..dc55612 --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/tt-rss-database @@ -0,0 +1,12 @@ +{ + +my $rec = $DB->get('tt-rss') || $DB->new_record('tt-rss', { type => 'webapp' }); +my $pw = $rec->prop('DbPassword'); + +if (not $pw){ + $pw = `/usr/bin/openssl rand -base64 60 | tr -c -d '[:graph:]'`; + chomp($pw); + $rec->set_prop('DbPassword', $pw); +} + +} diff --git a/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/tt-rss b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/tt-rss new file mode 100644 index 0000000..c68b69d --- /dev/null +++ b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/tt-rss @@ -0,0 +1,3 @@ +UID="root" +GID="root" +PERMS=0755 diff --git a/root/etc/e-smith/templates.metadata/usr/share/tt-rss/config.php b/root/etc/e-smith/templates.metadata/usr/share/tt-rss/config.php new file mode 100644 index 0000000..20984ee --- /dev/null +++ b/root/etc/e-smith/templates.metadata/usr/share/tt-rss/config.php @@ -0,0 +1,3 @@ +UID="root" +GID="apache" +PERMS=0640 diff --git a/root/etc/e-smith/templates/etc/cron.d/tt-rss/All b/root/etc/e-smith/templates/etc/cron.d/tt-rss/All new file mode 100644 index 0000000..ecccf1f --- /dev/null +++ b/root/etc/e-smith/templates/etc/cron.d/tt-rss/All @@ -0,0 +1 @@ +# Cron job disabled, SME Server uses the daemon to update the feeds diff --git a/root/etc/e-smith/templates/etc/e-smith/sql/init/tt-rss/80tt-rss b/root/etc/e-smith/templates/etc/e-smith/sql/init/tt-rss/80tt-rss new file mode 100644 index 0000000..5fd4372 --- /dev/null +++ b/root/etc/e-smith/templates/etc/e-smith/sql/init/tt-rss/80tt-rss @@ -0,0 +1,49 @@ +{ +my $db = ${'tt-rss'}{'DbName'} || 'rssdb'; +my $user = ${'tt-rss'}{'DbUser'} || 'rssuser'; +my $pass = ${'tt-rss'}{'DbPassword'} || 'secret'; + +$OUT .= <<"END"; +#! /bin/sh +if [ \! -d /var/lib/mysql/$db ]; then + /usr/bin/mysqladmin create $db + /usr/bin/mysql $db < '/usr/share/tt-rss/sql/mysql/schema.sql' +fi + +/usr/bin/mysql < + SetHandler "proxy:unix:/var/run/php-fpm/php74-tt-rss.sock|fcgi://localhost" + +_EOF + + $OUT .=<<"_EOF"; + +$alias + + + $php + SSLRequireSSL on +_EOF + + if ( $auth ) { + $OUT .= " $auth\n" . + " \n" . + " Require $allow\n" . + " Require valid-user\n" . + " \n"; + } else { + $OUT .= "Require $allow\n"; + } + + $OUT .=<<_EOF; + + + + Require all denied + + +_EOF +} +else{ + $OUT .= " # TT-RSS is disabled\n"; +} + +} diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60tt-rss-ssl b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60tt-rss-ssl new file mode 100644 index 0000000..c35ffe1 --- /dev/null +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60tt-rss-ssl @@ -0,0 +1,14 @@ +{ +my $sslport = $modSSL{'TCPPort'} || '443'; +my $status = ${'tt-rss'}{'status'} || 'enabled'; +my $alias = ${'tt-rss'}{'AliasOnPrimary'} || 'enabled'; + +if (($port ne $sslport) && ($status eq 'enabled') && ($alias eq 'enabled')){ + + ## Redirect Web Address to Secure Address + $OUT .= " RewriteEngine on\n"; + $OUT .= " RewriteRule ^/tt-rss(/.*|\$) https://%{HTTP_HOST}/tt-rss\$1 \[L,R\]\n"; + +} +} + diff --git a/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/20tt-rss b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/20tt-rss new file mode 100644 index 0000000..456243f --- /dev/null +++ b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/20tt-rss @@ -0,0 +1,55 @@ +{ +if ($PHP_VERSION eq '74'){ + if ((${'tt-rss'}{status} || 'disabled') eq 'enabled'){ + my $id = 'tt-rss'; + my $openbasedir = '/usr/share/tt-rss:/var/cache/tt-rss/:/var/run/php-fpm/:/var/lib/php/tt-rss/' . + ':/var/lock/tt-rss/:/usr/share/php/:/usr/share/pear/:/opt/remi/php74/root/usr/share/pear/' . + ':/opt/remi/php74/root/usr/share/php/'; + $disablefunctions = 'system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, ' . + 'escapeshellarg, escapeshellcmd'; + + $OUT .=<<_EOF; + +[php$PHP_VERSION-$id] +user = www +group = www +listen.owner = root +listen.group = www +listen.mode = 0660 +listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock +pm = dynamic +pm.max_children = 15 +pm.start_servers = 3 +pm.min_spare_servers = 3 +pm.max_spare_servers = 4 +pm.max_requests = 1000 +request_terminate_timeout = 30 +php_admin_value[session.save_path] = /var/lib/php/$id/session +php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache +php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp +php_admin_value[error_log] = /var/log/php/$id/error.log +slowlog = /var/log/php/$id/slow.log +php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } +php_admin_flag[display_errors] = off +php_admin_flag[log_errors] = on +php_admin_value[error_log] = syslog +php_admin_value[memory_limit] = 128M +php_admin_value[max_execution_time] = 30 +php_admin_value[post_max_size] = 2M +php_admin_value[upload_max_filesize] = 1M +php_admin_value[max_input_time] = 60 +php_admin_value[disable_functions] = $disablefunctions; +php_admin_value[open_basedir] = $openbasedir; +php_admin_flag[allow_url_fopen] = on +php_admin_flag[file_upload] = off +php_admin_flag[session.cookie_httponly] = on +php_admin_flag[allow_url_include] = off +php_admin_value[session.save_handler] = files + +_EOF + } + else{ + $OUT .= '; Tiny Tiny RSS is disabled'; + } +} +} diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/10database b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/10database new file mode 100644 index 0000000..9cb5b85 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/10database @@ -0,0 +1,23 @@ +{ + +my $db = ${'tt-rss'}{'DbName'} || 'rssdb'; +my $user = ${'tt-rss'}{'DbUser'} || 'rssuser'; +my $pass = ${'tt-rss'}{'DbPassword'} || 'secret'; +my $port = $mysqld{'TCPPort'} || '3306'; + +$OUT .=<<"HERE"; + + putenv('TTRSS_DB_TYPE=mysql'); + putenv('TTRSS_DB_HOST=localhost'); + putenv('TTRSS_DB_PORT=$port'); + putenv('TTRSS_DB_USER=$user'); + putenv('TTRSS_DB_NAME=$db'); + putenv('TTRSS_DB_PASS=$pass'); + putenv('TTRSS_DB_HOST=localhost'); + +HERE +} + + putenv('TTRSS_MYSQL_CHARSET=UTF8'); + // Connection charset for MySQL. + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/15directories b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/15directories new file mode 100644 index 0000000..7dc75ed --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/15directories @@ -0,0 +1,26 @@ + + putenv('TTRSS_SELF_URL_PATH={ ${'tt-rss'}{'Uri'} || 'https://' . $SystemName . '.' . $DomainName . '/tt-rss' }'); + // Full URL of your tt-rss installation. This should be set to the + // location of tt-rss directory, e.g. http://yourserver/tt-rss/ + // You need to set this option correctly otherwise several features + // including PUSH, bookmarklets and browser integration will not work properly. + + putenv('TTRSS_CACHE_DIR=/var/cache/tt-rss'); + // Local cache directory for RSS feed content. + + putenv('TTRSS_ICONS_DIR=rssicons'); + putenv('TTRSS_ICONS_URL=rssicons'); + // Local and URL path to the directory, where feed favicons are stored. + // Unless you really know what you're doing, please keep those relative + // to tt-rss main directory. + + putenv('TTRSS_TMP_DIRECTORY=/var/lib/php/tt-rss/tmp'); + // Directory for temporary files + + putenv('TTRSS_PHP_EXECUTABLE=/usr/bin/php74'); + // Path to PHP executable + + putenv('TTRSS_LOCK_DIRECTORY=/var/lock/tt-rss'); + // Directory for lockfiles, must be writable to the user you run + // daemon process or cronjobs under + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/25auth b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/25auth new file mode 100644 index 0000000..11e196a --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/25auth @@ -0,0 +1,52 @@ +{ + +my $auth = ${'tt-rss'}{'Authentication'} || 'http'; +my $plugins = ($auth eq 'internal') ? 'auth_internal':'auth_remote'; +$plugin .= ',note'; +my $multi = ((${'tt-rss'}{'MultiUser'} || 'enabled') eq 'enabled') ? 'false':'true'; + +$OUT .=<<"HERE"; + + putenv('TTRSS_SINGLE_USER_MODE=$multi'); + // Operate in single user mode, disables all functionality related to + // multiple users. + + putenv('TTRSS_PLUGINS=$plugins'); + // Comma-separated list of plugins to load automatically for all users. + // System plugins have to be specified here. Please enable at least one + // authentication plugin here (auth_*). + // Users may enable other user plugins from Preferences/Plugins but may not + // disable plugins specified in this list. +HERE +} + + putenv('TTRSS_AUTH_AUTO_CREATE=true'); + // If users are authenticated by your web server, set this to true if + // You want new users to be automaticaly created in tt-rss database + // on first login + + putenv('TTRSS_AUTH_AUTO_LOGIN=true'); + // Set this to true if you use ALLOW_REMOTE_USER_AUTH and you want + // to skip the login form. If set to true, users won't be able to select + // profile + + putenv('TTRSS_DATABASE_BACKED_SESSIONS=false'); + // Store session information in a database, recommended for multiuser + // configurations. Doesn't seem to work for everyone, so enable with caution. + // tt-rss uses default PHP session storing mechanism if disabled. + + putenv('TTRSS_SESSION_COOKIE_LIFETIME=0'); + // Default lifetime of a session (e.g. login) cookie. In seconds, + // 0 means cookie will be deleted when browser closes. + + putenv('TTRSS_SESSION_EXPIRE_TIME=86400'); + // Hard expiration limit for sessions. Should be + // greater or equal to SESSION_COOKIE_LIFETIME + + putenv('TTRSS_FEED_CRYPT_KEY='); + // Key used for encryption of passwords for password-protected feeds + // in the database. A string of 24 random characters. If left blank, encryption + // is not used. Requires mcrypt functions. + // Warning: changing this key will make your stored feed passwords impossible + // to decrypt. + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/30update b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/30update new file mode 100644 index 0000000..7147493 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/30update @@ -0,0 +1,35 @@ + + putenv('TTRSS_ENABLE_UPDATE_DAEMON=true'); + // This enables different mechanism for user-triggered updates designed + // for update daemon running in background on the server. + // This option suggests FEEDS_FRAME_REFRESH set to a small value + // (like 60 seconds, depending on number of users and server/bandwidth load). + + putenv('TTRSS_DAEMON_SLEEP_INTERVAL=60'); + // Interval between update daemon update runs + + putenv('TTRSS_DAEMON_UPDATE_LOGIN_LIMIT=0'); + // Stop updating feeds of user who haven't logged in specified + // amount of days. 0 disables. + + putenv('TTRSS_DAEMON_FEED_LIMIT=60'); + // Limits the amount of feeds daemon (or a cronjob) updates on one run + + putenv('TTRSS_FORCE_ARTICLE_PURGE=0'); + // When this option is not 0, users ability to control feed purging + // intervals is disabled and all articles (which are not starred) + // older than this amount of days are purged. + + putenv('TTRSS_COUNTERS_MAX_AGE=365'); + // Hard limit for unread counters calculation. Try tweaking this + // parameter to speed up tt-rss when having a huge number of articles + // in the database (better yet, enable purging!) + + putenv('TTRSS_SIMPLE_UPDATE_MODE=false'); + // Enables fallback update mode where tt-rss tries to update feeds in + // background while tt-rss is open in your browser. + // If you don't have a lot of feeds and don't want to or can't run + // background processes while not running tt-rss, this method is generally + // viable to keep your feeds up to date. + // Still, there are more robust (and recommended) updating methods + // available, you can read about them here: http://tt-rss.org/wiki/UpdatingFeeds diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/35digest b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/35digest new file mode 100644 index 0000000..393d722 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/35digest @@ -0,0 +1,23 @@ + + // ********************************* + // *** Email and digest settings *** + // ********************************* + + putenv('TTRSS_SMTP_FROM_NAME=Tiny Tiny RSS'); + putenv('TTRSS_SMTP_FROM_ADDRESS=noreply@{$DomainName}'); + // Name, address and subject for sending outgoing mail. This applies + // to password reset notifications, digest emails and any other mail. + + putenv('TTRSS_DIGEST_SUBJECT=[tt-rss] New headlines for last 24 hours'); + // Subject line for email digests + + putenv('TTRSS_SMTP_SERVER='); + // Hostname:port combination to send outgoing mail (i.e. localhost:25). + // Blank - use system MTA. + + putenv('TTRSS_SMTP_LOGIN='); + putenv('TTRSS_SMTP_PASSWORD='); + putenv('TTRSS_SMTP_SECURE='); + // These three options enable SMTP authentication when sending + // outgoing mail. Only used with SMTP_HOST + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/40registration b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/40registration new file mode 100644 index 0000000..3edfb63 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/40registration @@ -0,0 +1,14 @@ + + putenv('TTRSS_ENABLE_REGISTRATION=false'); + // Allow users to register themselves. Please be vary that allowing + // random people to access your tt-rss installation is a security risk + // and potentially might lead to data loss or server exploit. Disabled + // by default. + + putenv('TTRSS_REG_NOTIFY_ADDRESS=admin@{$DomainName}'); + // Email address to send new user notifications to. + + putenv('TTRSS_REG_MAX_USERS=0'); + // Maximum amount of users which will be allowed to register on this + // system. 0 - no limit. + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/45sphinx b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/45sphinx new file mode 100644 index 0000000..f4e1ebb --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/45sphinx @@ -0,0 +1,10 @@ + + putenv('TTRSS_SPHINX_ENABLED=false'); + // Enable fulltext search using Sphinx (http://www.sphinxsearch.com) + // Please see http://tt-rss.org/wiki/SphinxSearch for more information. + + putenv('TTRSS_SPHINX_INDEX=ttrss'); + // Index name in Sphinx configuration + + putenv('TTRSS_SPHINX_SERVER=localhost:9312'); + // Hostname:port combination for the Sphinx server. diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/50tweeter b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/50tweeter new file mode 100644 index 0000000..25152d0 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/50tweeter @@ -0,0 +1,9 @@ + + putenv('TTRSS_ENABLE_TWEET_BUTTON=false'); + // Enable 'tweet this' button for articles + + putenv('TTRSS_CONSUMER_KEY='); + putenv('TTRSS_CONSUMER_SECRET='); + // Your OAuth instance authentication information for Twitter, visit + // http://twitter.com/oauth_clients to register your instance. + diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/55various b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/55various new file mode 100644 index 0000000..3bc11cb --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/55various @@ -0,0 +1,32 @@ + putenv('TTRSS_CHECK_FOR_UPDATES=false'); + // Check for updates automatically if running Git version + + putenv('TTRSS_ENABLE_GZIP_OUTPUT=true'); + // Selectively gzip output to improve wire performance. This requires + // PHP Zlib extension on the server. + + putenv('TTRSS_FEEDBACK_URL='); + // Displays an URL for users to provide feedback or comments regarding + // this instance of tt-rss. Can lead to a forum, contact email, etc. + + putenv('TTRSS_ARTICLE_BUTTON_PLUGINS=note,tweet,share,mail'); + // Comma-separated list of additional article action button plugins + // to enable, like tweet button, etc. + // The following plugins are available: note, tweet, share, mail + // More plugins: http://tt-rss.org/wiki/Plugins + + // *** PubSubHubbub settings *** + + putenv('TTRSS_PUBSUBHUBBUB_HUB='); + // URL to a PubSubHubbub-compatible hub server. If defined, "Published + // articles" generated feed would automatically become PUSH-enabled. + + putenv('TTRSS_PUBSUBHUBBUB_ENABLED=false'); + // Enable client PubSubHubbub support in tt-rss. When disabled, tt-rss + // won't try to subscribe to PUSH feed updates. + + putenv('TTRSS_LOG_DESTINATION='); + // Log destination to use. Possible values: sql (uses internal logging + // you can read in Preferences -> System), syslog - logs to system log. + // Setting this to blank uses PHP logging (usually to http server + // error.log). diff --git a/root/etc/e-smith/templates/usr/share/tt-rss/config.php/60version b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/60version new file mode 100644 index 0000000..7eb7deb --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/tt-rss/config.php/60version @@ -0,0 +1,6 @@ + putenv('TTRSS_CONFIG_VERSION=26'); + // Expected config version. Please update this option in config.php + // if necessary (after migrating all new options from this file). + + // vim:ft=php + diff --git a/root/sbin/e-smith/mysql-init-start b/root/sbin/e-smith/mysql-init-start new file mode 100644 index 0000000..a931b2a --- /dev/null +++ b/root/sbin/e-smith/mysql-init-start @@ -0,0 +1,19 @@ +#! /bin/sh + +MYSQLDB=$1 +USAGE="Usage: mysql-init-status MYSQLDBNAME" + +#if no MYSQLDBname is provided return usage +if [[ "${MYSQLDB}" == "" ]] +then + echo ${USAGE} >&2 + exit 1 +fi + +if [[ -x "/etc/e-smith/sql/init/$MYSQLDB" ]] +then + /usr/bin/systemctl restart mysql.init.service +else + exit 0 +fi + diff --git a/root/usr/lib/systemd/system-preset/80-koozali-ttrss.preset b/root/usr/lib/systemd/system-preset/80-koozali-ttrss.preset new file mode 100644 index 0000000..5d38be2 --- /dev/null +++ b/root/usr/lib/systemd/system-preset/80-koozali-ttrss.preset @@ -0,0 +1,2 @@ +enable ttrss.service + diff --git a/root/usr/lib/systemd/system/ttrss.service b/root/usr/lib/systemd/system/ttrss.service new file mode 100644 index 0000000..da486fb --- /dev/null +++ b/root/usr/lib/systemd/system/ttrss.service @@ -0,0 +1,12 @@ +[Unit] +Description=ttrss backend +After=network.target mariadb.service mysql.init.service + +[Service] +ExecStartPre=/sbin/e-smith/service-status ttrss +ExecStartPre=/sbin/e-smith/mysql-init-start tt-rss +ExecStart=/bin/su -s /bin/bash www -c "/usr/bin/php74 /usr/share/tt-rss/update_daemon2.php --log /var/log/tt-rss.log" + +[Install] +WantedBy=sme-server.target + diff --git a/smeserver-tt-rss.spec b/smeserver-tt-rss.spec new file mode 100644 index 0000000..fa607cb --- /dev/null +++ b/smeserver-tt-rss.spec @@ -0,0 +1,152 @@ +%define name smeserver-tt-rss +%define version 0.5.0 +%define release 4 +%define phpversion 74 +Summary: sme server integration of tt-rss +Name: %{name} +Version: %{version} +Epoch: 9 +Release: %{release}%{?dist} +License: GNU GPL version 2 +URL: http://www.zabbix.com/ +Group: SMEserver/addon +Source: %{name}-%{version}.tar.xz + +BuildArchitectures: noarch +BuildRequires: e-smith-devtools +BuildRoot: /var/tmp/%{name}-%{version} +Requires: e-smith-base +Requires: e-smith-release >= 10.0 +Requires: e-smith-apache >= 2.6.0-19 +Requires: smeserver-php >= 3.0.0-43 +Requires: tt-rss >= 20211029 +AutoReqProv: no + +%description +smserver integration of TIny Tiny RSS +Tiny Tiny RSS is a feature rich, web based feed reader + +%prep +%setup + +%build +perl ./createlinks +find root/ -type f | xargs grep -l __PHP_VERSION__ | xargs sed -i -e "s/__PHP_VERSION__/%{phpversion}/g" +%{__mkdir_p} root/var/log/tt-rss +%{__mkdir_p} root/var/log/php/tt-rss +%{__mkdir_p} root/var/lib/php/tt-rss/{tmp,wsdlcache,opcache,session} + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + --dir /var/log/php/tt-rss 'attr(0770,root,www)' \ + --dir /var/lib/php/tt-rss 'attr(0770,root,www)' \ + --dir /var/lib/php/tt-rss/tmp 'attr(0770,root,www)' \ + --dir /var/lib/php/tt-rss/session 'attr(0770,root,www)' \ + --dir /var/lib/php/tt-rss/wsdlcache 'attr(0770,root,www)' \ + --dir /var/lib/php/tt-rss/opcache 'attr(0770,root,www)' \ + --file /var/service/tt-rss/run 'attr(0755,root,root)' \ + --file /var/service/tt-rss/log/run 'attr(0755,root,root)' \ + --dir /var/log/tt-rss 'attr(0770,root,smelog)' \ + > %{name}-%{version}-filelist + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) + +%clean +rm -rf $RPM_BUILD_ROOT + +%postun + +%changelog +* Sat Sep 07 2024 cvs2git.sh aka Brian Read 0.5.0-4.sme +- Roll up patches and move to git repo [SME: 12338] + +* Sat Sep 07 2024 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + +* Thu Jun 30 2022 Michel Begue 0.5.0-3.sme +- update to httpd 2.4 syntax [SME: 12062] + +* Sun Nov 21 2021 Michel Begue 0.5.0-2.sme +- Fix log file not fed + +* Mon Nov 1 2021 Michel Begue 0.5.0-1.sme +- First import to sme 10 +- systemd, update event & php-fpm +- Support tt-rss 20211029 + +* Thu Jul 13 2017 Daniel Berteaud 0.3.0-1.sme +- Switch to php fpm, using PHP 7.1 +- Support tt-rss 20170713 + +* Tue Feb 16 2016 Daniel Berteaud 0.2.11-1.sme +- Remove SESSION_CHECK_ADDRESS + +* Mon Jun 29 2015 Daniel Berteaud 0.2.9-1.sme +- Adapt templates for 20150629 + +* Mon Jun 29 2015 Daniel Berteaud 0.2.10-1.sme +- Adapt conf templates for 20150629 + +* Tue Apr 22 2014 Daniel Berteaud 0.2.9-1.sme +- Fix basic auth on SME9 + +* Thu Feb 6 2014 Daniel Berteaud 0.2.8-1.sme +- Fix database upgrades + +* Mon Jan 20 2014 Daniel Berteaud 0.2.7-1.sme +- Remove the default Authentication prop (but the default value is still http) + +* Wed Dec 18 2013 Daniel Berteaud 0.2.6-1.sme +- Add DETECT_ARTICLE_LANGUAGE, for tt-rss 1.11 +- Automatically update database schema when needed + +* Wed Jun 12 2013 Daniel Berteaud 0.2.5-1.sme +- Add SMTP_SECURE, for tt-rss 1.8 + +* Tue May 14 2013 Daniel Berteaud 0.2.4-1.sme +- Support tt-rss 1.7.9 + +* Sun Mar 24 2013 Daniel Berteaud 0.2.3-1.sme +- update daemon run script to use --daemon argument + +* Sat Mar 23 2013 Daniel Berteaud 0.2.2-1.sme +- Add missing SMTP_PORT + +* Tue Mar 5 2013 Daniel Berteaud 0.2.1-1.sme +- Support tt-rss 1.7.1 + +* Wed Nov 14 2012 Daniel Berteaud 0.2.0-1.sme +- Support tt-rss 1.6.1 + +* Tue Apr 24 2012 Daniel Berteaud 0.1.0-1.sme +- Migrate to GIT + +* Fri Nov 25 2011 Daniel Berteaud 0.1-8.sme +- Define SELF_URL_PATH in config +- Update config version to 23 (1.5.7) + +* Mon Jul 25 2011 Daniel Berteaud 0.1-7.sme +- Configure cache dir (prevent log noise) + +* Tue Jun 07 2011 Daniel B. 0.1-6.sme +- MySQL schema files are not doc files anymore + +* Tue May 17 2011 Daniel B. 0.1-5 +- Deny access to the /schema directory + +* Wed Jan 26 2011 Daniel B. 0.1-4 +- Add DB_PORT param in config file + +* Wed Jan 26 2011 Daniel B. 0.1-3 +- Support tt-rss 1.5.1 + +* Mon Jan 03 2011 Daniel B. 0.1-2 +- disable cron job, as feeds are updated via the daemon + +* Mon Jan 03 2011 Daniel B. 0.1-1 +- initial release