Date: Monday, June 10, 2019 @ 19:59:13 Author: dvzrv Revision: 479789
upgpkg: cacti 1.2.4-1 Upgrading to 1.2.4. Adding default uwsgi configuration. Installing as separate user/group cacti. Moving all state files, logs, etc. to their respective FHS compliant locations. Adding install file to explain changes. Added: cacti/trunk/cacti.install cacti/trunk/cacti.sysusers cacti/trunk/cacti.tmpfiles (from rev 479788, cacti/trunk/tmpfiles.conf) cacti/trunk/cacti.uwsgi Modified: cacti/trunk/PKGBUILD Deleted: cacti/trunk/tmpfiles.conf ----------------+ PKGBUILD | 159 ++++++++++++++++++++++++++++++++++++++++++++----------- cacti.install | 9 +++ cacti.sysusers | 1 cacti.tmpfiles | 17 +++++ cacti.uwsgi | 38 +++++++++++++ tmpfiles.conf | 2 6 files changed, 194 insertions(+), 32 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-06-10 18:50:23 UTC (rev 479788) +++ PKGBUILD 2019-06-10 19:59:13 UTC (rev 479789) @@ -3,22 +3,37 @@ # Contributor: tuxbubling <tuxbubl...@jabber.fr> pkgname=cacti -pkgver=1.2.2 +pkgver=1.2.4 pkgrel=1 pkgdesc="Network graphing solution using RRDTool" arch=('any') url="https://www.cacti.net" license=('GPL2') -depends=('rrdtool' 'mariadb' 'php-gd' 'net-snmp' 'xorg-fonts-100dpi') +depends=('php-gd' 'php-snmp' 'rrdtool' 'ttf-dejavu') +optdepends=('mariadb: use local MySQL server' + 'php-fpm: run in fastCGI process manager' + 'uwsgi: run as local application container') backup=('etc/webapps/cacti/.htaccess' 'etc/webapps/cacti/config.php') source=("https://www.${pkgname}.net/downloads/${pkgname}-${pkgver}.tar.gz" - 'tmpfiles.conf') -sha512sums=('4a41aff20f06ad56f4723e52084d1a09e3b3eb017e8f1c957f700e4e2f9b12e8f0e599cb56611241c6fcc59bbd6bf957e948631f3beca72e2a7fdadacc473c65' - '6d25f182141ca7d13388f7241eb27d783ea99b991c0b147382f8ec9eeeb521303531f8ad9dd7c968cb36b7bb657cb517b8c7f46fd1d777e1b10923d76e4efbd6') + "${pkgname}.uwsgi" + "${pkgname}.sysusers" + "${pkgname}.tmpfiles") +install="${pkgname}.install" +sha512sums=('b3b296a59eb5ba2c83ddc4fb7c44f121808a5444daa9d87cf4be5364d80ed91034b0ea1a68e117a555e87a5ae574e8de890ddbc16fe543b4c4888ecb259efbe5' + 'a87241b12226fcad9e161d0f4cd344161015b5fa8e2f1f3af4431d22bd87aad8a4f9553226baed98d48376819e75266a50fd796b1c884b4e597ccf38a5e4de01' + '847e2b791de44d0790a2fdb81c77c8af9a66da9d44500f3f8a8d1c0f406d3a20082cc8fef1c6afe4de93ad989d35c79c9809abe14693a9ac6ea74d4696e3b6c1' + 'e833e411f74e77773c32589ba83cb1b2f28ca9b35931626480ab7daa63420d47ecfc3061e6703323646b69e1d98536b6f3afdd36faa483fb13aac9b818af0c6e') prepare() { + # adding default .htaccess + echo "Require all denied" > "${pkgname}-htaccess" cd "${pkgname}-${pkgver}" + # setting correct install path for spine + sed -e 's|/usr/local/spine/bin/spine|/usr/bin/spine|g' \ + -i install/functions.php + # setting correct path for dejavu font + sed -e 's|/usr/share/fonts/dejavu/|/usr/share/fonts/TTF/|g' -i lib/rrd.php # remove unneeded executable bits find . -executable -type f -and -not -path "*scripts*" -exec chmod -c 644 {} \; } @@ -25,38 +40,122 @@ package() { cd "${pkgname}-${pkgver}" - install -vDm 644 {CHANGELOG,README.md} -t "${pkgdir}/usr/share/doc/${pkgname}" - rm -v {CHANGELOG,LICENSE,README.md} - # create directories - install -vdm 0755 "${pkgdir}/usr/share/webapps/${pkgname}" \ - "${pkgdir}/etc/webapps/${pkgname}" \ - "${pkgdir}/var/log/" "${pkgdir}/var/lib/${pkgname}/" - - # move sources - cp -av "../${pkgname}-${pkgver}"/* \ - "${pkgdir}/usr/share/webapps/${pkgname}" - - # move and symlink configuration - echo "Require all denied" >> "${pkgdir}/etc/webapps/${pkgname}/.htaccess" - mv "${pkgdir}/usr/share/webapps/${pkgname}/include/config.php" \ - "${pkgdir}/etc/webapps/${pkgname}" + # webapp + install -vDm 644 include/config.php -t "${pkgdir}/etc/webapps/${pkgname}" + rm -v include/config.php + install -vDm 644 *.{php,sql} -t "${pkgdir}/usr/share/webapps/${pkgname}" + install -vDm 644 cli/{*.php,.htaccess} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/cli" + install -vDm 644 docs/*.{css,html,sql} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/docs" + install -vDm 644 docs/images/*.png \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/docs/images" + install -vDm 644 formats/*.{format,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/formats" + install -vDm 644 images/*.{gif,ico,png,svg} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/images" + install -vDm 644 include/{*.{php,js},cacti_version} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include" + install -vDm 644 include/content/{*.{html,php},README} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/content" + install -vDm 644 include/fa/index.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fa" + install -vDm 644 include/fa/css/*.{css,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fa/css" + install -vDm 644 include/fa/less/*.{less,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fa/less" + install -vDm 644 include/fa/scss/*.{php,scss} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fa/scss" + install -vDm 644 include/fa/webfonts/*.{eot,php,svg,ttf,woff,woff2} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fa/webfonts" + install -vDm 644 include/fonts/*.ttf \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/fonts" + install -vDm 644 include/js/*.{js,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/js" + install -vDm 644 include/js/LC_MESSAGES/*.{js,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/js/LC_MESSAGES" + install -vDm 644 include/themes/index.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/themes" + for theme in {classic,dark,modern,paper-plane,paw,sunrise}; do + install -vDm 644 include/themes/${theme}/*.{css,js,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/themes/${theme}" + install -vDm 644 include/themes/${theme}/default/*.{css,gif,php,png} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/themes/${theme}/default" + install -vDm 644 include/themes/${theme}/images/*.{gif,ico,png,svg} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/themes/${theme}/images" + install -vDm 644 include/themes/${theme}/images/128/*.png \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/include/themes/${theme}/images/128" + done + cp -av include/vendor "${pkgdir}/usr/share/webapps/${pkgname}/include/" + install -vDm 644 install/*.{css,csv,js,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/install" + install -vDm 644 install/templates/*.gz \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/install/templates" + install -vDm 644 install/upgrades/*.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/install/upgrades" + install -vDm 644 lib/*.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/lib" + install -vDm 644 locales/index.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/locales" + install -vDm 644 locales/LC_MESSAGES/*.{mo,php} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/locales/LC_MESSAGES" + install -vDm 644 locales/po/*.{php,po,pot} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/locales/po" + install -vDm 644 mibs/{index.php,*-MIB} \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/mibs" + install -vDm 644 plugins/index.php \ + -t "${pkgdir}/usr/share/webapps/${pkgname}/plugins" + # config + install -vDm 644 "${srcdir}/${pkgname}-htaccess" \ + "${pkgdir}/etc/webapps/${pkgname}/.htaccess" ln -sv "/etc/webapps/${pkgname}/.htaccess" \ "${pkgdir}/usr/share/webapps/${pkgname}/.htaccess" ln -sv "/etc/webapps/${pkgname}/config.php" \ "${pkgdir}/usr/share/webapps/${pkgname}/include/config.php" - - # move and symlink var directory - mv -v "${pkgdir}/usr/share/webapps/${pkgname}/rra" \ - "${pkgdir}/var/lib/${pkgname}/rra" + # state + install -vdm 750 "${pkgdir}/var/lib/${pkgname}" + install -vDm 644 rra/.htaccess -t "${pkgdir}/var/lib/${pkgname}/rra" ln -sv "/var/lib/${pkgname}/rra" \ "${pkgdir}/usr/share/webapps/${pkgname}/rra" - - # move and symlink log directory - mv -v "${pkgdir}/usr/share/webapps/${pkgname}/log" \ - "${pkgdir}/var/log/${pkgname}" + install -vDm 644 resource/index.php \ + -t "${pkgdir}/var/lib/${pkgname}/resource" + install -vDm 644 resource/snmp_queries/*.{php,xml} \ + -t "${pkgdir}/var/lib/${pkgname}/resource/snmp_queries/" + install -vDm 644 resource/script_server/*.{php,xml} \ + -t "${pkgdir}/var/lib/${pkgname}/resource/script_server/" + install -vDm 644 resource/script_queries/*.{php,xml} \ + -t "${pkgdir}/var/lib/${pkgname}/resource/script_queries/" + ln -sv "/var/lib/${pkgname}/resource" \ + "${pkgdir}/usr/share/webapps/${pkgname}/resource" + install -vDm 644 scripts/*.{php,pl,sh} \ + -t "${pkgdir}/var/lib/${pkgname}/scripts" + ln -sv "/var/lib/${pkgname}/scripts" \ + "${pkgdir}/usr/share/webapps/${pkgname}/scripts" + # cache + install -vdm 750 "${pkgdir}/var/cache/${pkgname}" + install -vDm 644 cache/boost/index.php \ + -t "${pkgdir}/var/cache/${pkgname}/boost" + install -vDm 644 cache/mibcache/index.php \ + -t "${pkgdir}/var/cache/${pkgname}/mibcache" + install -vDm 644 cache/realtime/index.php \ + -t "${pkgdir}/var/cache/${pkgname}/realtime" + install -vDm 644 cache/spikekill/index.php \ + -t "${pkgdir}/var/cache/${pkgname}/spikekill" + ln -sv "/var/cache/${pkgname}" \ + "${pkgdir}/usr/share/webapps/${pkgname}/cache" + # log + install -vdm 750 "${pkgdir}/var/log/${pkgname}" + install -vDm 644 log/.htaccess -t "${pkgdir}/var/log/${pkgname}" ln -sv "/var/log/${pkgname}" "${pkgdir}/usr/share/webapps/${pkgname}/log" - + # docs + install -vDm 644 {CHANGELOG,README.md} -t "${pkgdir}/usr/share/doc/${pkgname}" # tmpfiles.d - install -vDm 644 "${srcdir}/tmpfiles.conf" \ + install -vDm 644 "${srcdir}/${pkgname}.tmpfiles" \ "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" + # sysusers.d + install -vDm 644 "${srcdir}/${pkgname}.sysusers" \ + "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + # uwsgi config + install -vDm 644 "${srcdir}/${pkgname}.uwsgi" \ + "${pkgdir}/etc/uwsgi/${pkgname}.ini" } Added: cacti.install =================================================================== --- cacti.install (rev 0) +++ cacti.install 2019-06-10 19:59:13 UTC (rev 479789) @@ -0,0 +1,9 @@ +post_upgrade() { + local new_package_version="$1" + local old_package_version="$2" + if [ $(vercmp "${old_package_version}" "1.2.2") -le 0 ]; then +cat <<EOF +The webapp now needs to be run as its own user/group: cacti/cacti. +EOF + fi +} Added: cacti.sysusers =================================================================== --- cacti.sysusers (rev 0) +++ cacti.sysusers 2019-06-10 19:59:13 UTC (rev 479789) @@ -0,0 +1 @@ +u cacti - "Cacti user" - Copied: cacti/trunk/cacti.tmpfiles (from rev 479788, cacti/trunk/tmpfiles.conf) =================================================================== --- cacti.tmpfiles (rev 0) +++ cacti.tmpfiles 2019-06-10 19:59:13 UTC (rev 479789) @@ -0,0 +1,17 @@ +z /etc/webapps/cacti/*.php 0640 cacti cacti +d %L/cacti 0750 cacti cacti +z %L/cacti/*.log - cacti cacti +d %S/cacti 0750 cacti cacti +d %S/cacti/rra - cacti cacti +z %S/cacti/rra/*.rrd - cacti cacti +d %S/cacti/resource 755 cacti cacti +d %S/cacti/resource/snmp_queries 755 cacti cacti +d %S/cacti/resource/script_server 755 cacti cacti +d %S/cacti/resource/script_queries 755 cacti cacti +d %S/cacti/scripts 755 cacti cacti +d %t/cacti 755 cacti cacti +d %C/cacti 750 cacti cacti +d %C/cacti/boost 755 cacti cacti +d %C/cacti/mibcache 755 cacti cacti +d %C/cacti/realtime 755 cacti cacti +d %C/cacti/spikekill 755 cacti cacti Added: cacti.uwsgi =================================================================== --- cacti.uwsgi (rev 0) +++ cacti.uwsgi 2019-06-10 19:59:13 UTC (rev 479789) @@ -0,0 +1,38 @@ +[uwsgi] +procname-master = %n +plugins = php +master = true +socket = /run/cacti/%n.sock +stats = /run/cacti/%n-stats.sock +uid = cacti +gid = cacti +processes = 10 +cheaper = 2 +cheaper-step = 1 +idle = 600 +die-on-idle = true +; reload whenever this config file changes +touch-reload = %p + +php-allowed-ext = .php +php-docroot = /usr/share/webapps/%n +php-index = index.php +php-set = date.timezone=Europe/Berlin +php-set = open_basedir=/tmp/:/usr/share/webapps/%n:/etc/webapps/%n:/var/cache/%n:/var/lib/%n:/var/log/%n:/proc/meminfo:/usr/bin/rrdtool:/usr/bin/snmpget:/usr/bin/snmpwalk:/usr/bin/snmpbulkwalk:/usr/bin/snmpgetnext:/usr/bin/snmptrap:/usr/bin/sendmail:/usr/bin/php:/usr/bin/spine:/usr/share/fonts/TTF/ +php-set = memory_limit = 512M +php-set = max_execution_time = 60 +php-set = session.save_path=/tmp +php-set = session.gc_maxlifetime 21600 +php-set = session.gc_divisor 500 +php-set = session.gc_probability 1 +php-set = post_max_size=64M +php-set = upload_max_filesize=64M +php-set = extension=gd.so +php-set = extension=gettext.so +php-set = extension=gmp.so +php-set = extension=pdo_mysql.so +php-set = extension=ldap.so +php-set = extension=snmp +php-set = extension=sockets.so + +cron = -5 -1 -1 -1 -1 /usr/bin/php -d date.timezone=Europe/Berlin -d memory_limit=512M -d max_execution_time=60 -d extension=gd -d extension=gettext -d extension=gmp -d extension=pdo_mysql -d extension=ldap -d extension=snmp -d extension=sockets /usr/share/webapps/cacti/poller.php Deleted: tmpfiles.conf =================================================================== --- tmpfiles.conf 2019-06-10 18:50:23 UTC (rev 479788) +++ tmpfiles.conf 2019-06-10 19:59:13 UTC (rev 479789) @@ -1,2 +0,0 @@ -d /var/log/cacti 0755 http http -d /var/lib/cacti/rra 0755 http http