feat: generate RPM packages for CentOS 7, Rocky Linux 8/9/10
- Update Dockerfile.package to build RPMs for multiple distributions using a unified fpm-based approach - Add RPM maintainer scripts (postinst, prerm, postrm) for proper installation and service management - Update ja4sentinel.spec for CentOS 7+ compatibility - Add packaging/systemd/config.yml as default configuration - Update test-rpm.sh to test installation on all 4 target distributions - Fix CentOS 7 repository configuration (EOL - vault.centos.org) Generated RPMs: - el7: CentOS 7 (libpcap >= 1.4.0) - el8: Rocky Linux 8 (libpcap >= 1.9.0) - el9: Rocky Linux 9 (libpcap >= 1.9.0) - el10: AlmaLinux 10 / Rocky Linux 10 (libpcap >= 1.9.0) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@ -6,11 +6,13 @@ License: MIT
|
||||
URL: https://github.com/your-repo/ja4sentinel
|
||||
BuildArch: x86_64
|
||||
|
||||
# Rocky Linux / RHEL compatibility
|
||||
# Requires EPEL for some dependencies if not in base repos
|
||||
# Distribution-agnostic dependencies
|
||||
# systemd is available on all target distros (CentOS 7, Rocky 8/9/10)
|
||||
Requires: systemd
|
||||
# libpcap is available in base repos for RHEL/CentOS/Rocky 8+
|
||||
Requires: libpcap >= 1.9.0
|
||||
# libpcap version varies by distro:
|
||||
# - CentOS 7: 1.4.0
|
||||
# - Rocky 8/9/10: 1.9.0+
|
||||
Requires: libpcap >= 1.4.0
|
||||
|
||||
%description
|
||||
JA4Sentinel is a Go-based tool for capturing network traffic on Linux servers,
|
||||
@ -24,7 +26,7 @@ Features:
|
||||
- IP/TCP metadata enrichment
|
||||
- Multiple output formats (stdout, file, UNIX socket)
|
||||
- Structured JSON logging for systemd/journald
|
||||
- Compatible with Rocky Linux, RHEL, CentOS
|
||||
- Compatible with CentOS 7, Rocky Linux 8/9/10, RHEL
|
||||
|
||||
%prep
|
||||
# No source to unpack, binary is pre-built
|
||||
@ -52,6 +54,7 @@ install -m 640 %{_sourcedir}/config.yml %{buildroot}/etc/ja4sentinel/config.yml.
|
||||
install -m 640 %{_sourcedir}/config.yml %{buildroot}/usr/share/ja4sentinel/config.yml
|
||||
|
||||
%pre
|
||||
# Create system user and group (compatible with CentOS 7+)
|
||||
getent group ja4sentinel >/dev/null || groupadd -r ja4sentinel
|
||||
getent passwd ja4sentinel >/dev/null || \
|
||||
useradd -r -g ja4sentinel -d /var/lib/ja4sentinel -s /sbin/nologin \
|
||||
@ -77,19 +80,19 @@ if [ ! -f /etc/ja4sentinel/config.yml ]; then
|
||||
chmod 640 /etc/ja4sentinel/config.yml
|
||||
fi
|
||||
|
||||
# Enable service
|
||||
# Enable and start service (systemd macro for compatibility)
|
||||
if [ $1 -eq 1 ] && [ -x /bin/systemctl ]; then
|
||||
/bin/systemctl daemon-reload
|
||||
/bin/systemctl enable ja4sentinel.service
|
||||
/bin/systemctl start ja4sentinel.service
|
||||
/bin/systemctl enable ja4sentinel.service 2>/dev/null || :
|
||||
/bin/systemctl start ja4sentinel.service 2>/dev/null || :
|
||||
fi
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
# Package removal, stop and disable service
|
||||
if [ -x /bin/systemctl ]; then
|
||||
/bin/systemctl stop ja4sentinel.service >/dev/null 2>&1 || true
|
||||
/bin/systemctl disable ja4sentinel.service >/dev/null 2>&1 || true
|
||||
/bin/systemctl stop ja4sentinel.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl disable ja4sentinel.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -113,4 +116,4 @@ fi
|
||||
|
||||
%changelog
|
||||
* Wed Feb 25 2026 JA4Sentinel Team <team@example.com> - 1.0.0-1
|
||||
- Initial package release
|
||||
- Initial package release for CentOS 7, Rocky Linux 8/9/10
|
||||
|
||||
Reference in New Issue
Block a user