# # SPEC file for bravos # # Noumenia (C) 2019 www.noumenia.gr # # License: GPLv3 # https://opensource.org/license/gpl-3-0/ # %global gitlab_owner noumenia %global gitlab_name bravos %global gitlab_version 1.0 %global gitlab_commit daf9797d95c5691f4613fe0b0dac427809467c4f %global composer_vendor noumenia %global composer_project bravos # "php": ">=8.0.0" %global php_min_ver 8.0.0 %{!?phpdir: %global phpdir %{_datadir}/php} %{!?licensedir: %global licensedir %{_datadir}/licenses} Name: %{gitlab_name} Version: %{gitlab_version} Release: 1%{?dist} Summary: Log file security parser. License: GPLv3 URL: https://gitlab.com/noumenia/bravos Source0: %{name}-%{gitlab_version}-%{gitlab_commit}.tar.gz BuildArch: noarch # required for the _unitdir macro BuildRequires: systemd-rpm-macros # composer.json Requires: php(language) >= %{php_min_ver} Requires: conntrack-tools Requires: libLoggerPHP Requires: libSDManagerPHP # composer Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} %description Log file security parser. Features - Multi process log monitors - Low resource usage - Adaptive monitor frequency - Systemd service - Firewalld ipset blacklist - Whitelist log by keywords - Blacklist by keywords - Blacklist by regular expressions - Block CIDR net blocks or individual IP addresses %prep %setup -qn %{gitlab_name}-%{gitlab_commit} %install # the ini file mkdir -p %{buildroot}%{_sysconfdir}/ cp -rp bravos.ini %{buildroot}%{_sysconfdir}/ # sudoers permissions mkdir -p %{buildroot}%{_sysconfdir}/sudoers.d/ cp -rp sudoers.conf %{buildroot}%{_sysconfdir}/sudoers.d/bravos chmod 0440 %{buildroot}/etc/sudoers.d/bravos # systemd service mkdir -p %{buildroot}%{_unitdir}/ cp -rp bravos.service %{buildroot}%{_unitdir}/ chmod 0644 %{buildroot}%{_unitdir}/bravos.service # the daemon executable mkdir -p %{buildroot}%{_sbindir}/ cp -rp bravos %{buildroot}%{_sbindir}/ # libraries mkdir -p %{buildroot}%{phpdir}/%{name}/ cp -rp controller %{buildroot}%{phpdir}/%{name}/ cp -rp interface %{buildroot}%{phpdir}/%{name}/ cp -rp library %{buildroot}%{phpdir}/%{name}/ # documentation mkdir -p %{buildroot}%{_docdir}/%{name}/ cp -rp CHANGELOG.md %{buildroot}%{_docdir}/%{name}/ cp -rp composer.json %{buildroot}%{_docdir}/%{name}/ cp -rp README.md %{buildroot}%{_docdir}/%{name}/ # license mkdir -p %{buildroot}%{licensedir}/%{name}/ cp -rp LICENSE %{buildroot}%{licensedir}/%{name}/ # run directory mkdir -p %{buildroot}%{_rundir}/bravos %pre # group getent group bravos >/dev/null || groupadd -r bravos # user getent passwd bravos >/dev/null || useradd -r -g bravos -d "/run/bravos" -M -s /sbin/nologin -c "bravos daemon" bravos exit 0 %post if [ $1 -eq 1 ]; then # initial installation systemctl daemon-reload &>/dev/null || : systemctl preset bravos.service &>/dev/null || : fi %preun if [ $1 -eq 0 ]; then # package removal, not upgrade systemctl --no-reload disable bravos.service &>/dev/null || : systemctl stop bravos.service &>/dev/null || : userdel bravos fi %postun systemctl daemon-reload &>/dev/null || : if [ $1 -ge 1 ]; then # package upgrade, not uninstall systemctl try-restart bravos.service &>/dev/null || : fi %files # default attributes %defattr(644,root,root,755) # license %license LICENSE # docs %doc CHANGELOG.md README.md composer.json # library %{phpdir}/bravos/ # executable %attr(0755,root,root) %{_sbindir}/bravos # the ini file %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/bravos.ini # sudoers permissions %attr(0440,root,root) %{_sysconfdir}/sudoers.d/bravos # systemd service %attr(0644,root,root) %{_unitdir}/bravos.service # run directory %dir %attr(0755,bravos,bravos) %{_rundir}/bravos %changelog * Mon Dec 29 2025 Maria Ksanthi - 1.1-1 - Initial package