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