From b070554fdd85f2e1ccb4f8da120c958e20c027da Mon Sep 17 00:00:00 2001 From: Brian Read Date: Thu, 4 Sep 2025 13:17:44 +0100 Subject: [PATCH] Get journal api wrapper working for detailed logs --- additional/journalwrap | Bin 0 -> 23704 bytes root/opt/mailstats/css/mailstats.css | 2 +- root/opt/mailstats/html/ShowDetailedLogs.php | 2 +- smeserver-mailstats.spec | 90 +++++++++++-------- 4 files changed, 57 insertions(+), 37 deletions(-) create mode 100755 additional/journalwrap diff --git a/additional/journalwrap b/additional/journalwrap new file mode 100755 index 0000000000000000000000000000000000000000..fb73dd7d52740598a146fe8706815925d578da3e GIT binary patch literal 23704 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 9.0 @@ -35,6 +38,57 @@ AutoReqProv: no A script that via cron.d e-mails mail statistics to admin on a daily basis. See https://wiki.koozali.org/mailstats +%prep +%setup + +%build +perl createlinks + +%install +/bin/rm -rf $RPM_BUILD_ROOT +(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) +chmod +x $RPM_BUILD_ROOT/usr/bin/runmailstats.sh + +#chmod 0640 $RPM_BUILD_ROOT/etc/mailstats/db.php +#ls -l /builddir/build/BUILDROOT/smeserver-mailstats-11.1-5.el8.sme.x86_64/etc/mailstats/ +#chown root:102 $RPM_BUILD_ROOT/etc/mailstats/db.php + +# Define the placeholder and generate the current date and time +now=$(date +"%Y-%m-%d %H:%M:%S") + +# Replace the placeholder in the Python program located at %{BUILDROOT}/usr/bin +sed -i "s|__BUILD_DATE_TIME__|$now|" $RPM_BUILD_ROOT/usr/bin/mailstats.py + +/bin/rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist --file '/etc/mailstats/db.php' 'attr(0640, root, apache)' $RPM_BUILD_ROOT | grep -v "\.pyc" | grep -v "\.pyo" > %{name}-%{version}-filelist + +install -Dpm 0755 journalwrap %{buildroot}%{_bindir}/journalwrap +#install -Dpm 0644 libjournalwrap.so %{buildroot}%{_libdir}/libjournalwrap.so + + +%pre +/usr/bin/pip3 install -q pymysql +/usr/bin/pip3 install -q numpy +/usr/bin/pip3 install -q pandas + +%clean +/bin/rm -rf $RPM_BUILD_ROOT + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) +#%attr(0640, root, apache) %config(noreplace) /etc/mailstats/db.php +%{_bindir}/journalwrap + +#%{_libdir}/libjournalwrap.so + + +%post +/sbin/ldconfig +usermod -aG systemd-journal www + +%postun +/sbin/ldconfig + %changelog * Tue Sep 02 2025 Brian Read 11.1-5.sme - Speed up Journal access [SME: 13121] @@ -127,38 +181,4 @@ See https://wiki.koozali.org/mailstats - Add Update event to createlinks Unexpected failure string in log file: auth::auth_cvm_unix_local see [SME 7089] * Sat May 26 2012 Brian J read 1.0-1.sme -- Initial version - -%prep -%setup - -%build -perl createlinks - -%install -/bin/rm -rf $RPM_BUILD_ROOT -(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) -chmod +x $RPM_BUILD_ROOT/usr/bin/runmailstats.sh -#chmod 0640 $RPM_BUILD_ROOT/etc/mailstats/db.php -#ls -l /builddir/build/BUILDROOT/smeserver-mailstats-11.1-5.el8.sme.x86_64/etc/mailstats/ -#chown root:102 $RPM_BUILD_ROOT/etc/mailstats/db.php -# Define the placeholder and generate the current date and time -now=$(date +"%Y-%m-%d %H:%M:%S") - -# Replace the placeholder in the Python program located at %{BUILDROOT}/usr/bin -sed -i "s|__BUILD_DATE_TIME__|$now|" $RPM_BUILD_ROOT/usr/bin/mailstats.py - -/bin/rm -f %{name}-%{version}-filelist -/sbin/e-smith/genfilelist $RPM_BUILD_ROOT | grep -v "\.pyc" | grep -v "\.pyo" > %{name}-%{version}-filelist - -%pre -/usr/bin/pip3 install -q pymysql -/usr/bin/pip3 install -q numpy -/usr/bin/pip3 install -q pandas - -%clean -/bin/rm -rf $RPM_BUILD_ROOT - -%files -f %{name}-%{version}-filelist -%defattr(-,root,root) -%attr(0640, root, apache) %config(noreplace) /etc/mailstats/db.php +- Initial version \ No newline at end of file