From 07cac00f30a3c6fdf55e1d1e382d8fe3a39831a5 Mon Sep 17 00:00:00 2001 From: "alexandr.lushin" Date: Mon, 24 Nov 2025 15:41:16 +0300 Subject: [PATCH] Add RPM-packaging scripts and spec file Signed-off-by: alexandr.lushin --- .gitignore | 4 ++++ Cargo.toml | 2 +- build-srpm.sh | 28 ++++++++++++++++++++++++++++ packaging/logria.spec.in | 37 +++++++++++++++++++++++++++++++++++++ version.sh | 4 ++++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100755 build-srpm.sh create mode 100644 packaging/logria.spec.in create mode 100644 version.sh diff --git a/.gitignore b/.gitignore index 88f7023..761aa83 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ # Build directories /target /output +/rpmbuild + +# Vendor +/vendor # OS Files .DS_Store diff --git a/Cargo.toml b/Cargo.toml index dfe8018..63c0191 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Christopher Sardegna "] categories = ["command-line-interface", "command-line-utilities"] description = "A powerful CLI tool that puts log analytics at your fingertips." edition = "2024" -exclude = ["/resources", ".github", "docs", "build.sh"] +exclude = ["/resources", ".github", "docs", "build.sh", "packaging", "build-srpm.sh"] keywords = ["cli", "tui", "logs", "log-parsing", "log-analytics"] license = "GPL-3.0-or-later" name = "logria" diff --git a/build-srpm.sh b/build-srpm.sh new file mode 100755 index 0000000..78340ac --- /dev/null +++ b/build-srpm.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# + +set -e + +source ./version.sh +TARBALL=logria-$VERSION.tar.gz + +mkdir -p output +rm -rf rpmbuild + +cargo vendor +tar -czf logria-$VERSION-vendor.tar.gz vendor +sed -e "s/@VERSION@/$VERSION/; s/@RELEASE@/$RELEASE/" ./packaging/logria.spec.in > logria.spec +find ./* \ + ! -name 'packaging' \ + ! -name 'rpmbuild' \ + ! -name 'exported-artifacts' \ + ! -name '.git' \ + -type f | tar --files-from /proc/self/fd/0 -czf "$TARBALL" --transform "s,^,logria-$VERSION/," + +mkdir -p rpmbuild/{SPECS,SOURCES,BUILD,BUILDROOT,SRPMS} +mv *.tar.gz rpmbuild/SOURCES +mv logria.spec rpmbuild/SPECS + +rpmbuild -bs --define "_topdir `pwd`/rpmbuild" `pwd`/rpmbuild/SPECS/logria.spec + +mv rpmbuild/SRPMS/* output diff --git a/packaging/logria.spec.in b/packaging/logria.spec.in new file mode 100644 index 0000000..bcd2857 --- /dev/null +++ b/packaging/logria.spec.in @@ -0,0 +1,37 @@ +Name: logria +Version: @VERSION@ +Release: @RELEASE@%{?dist} +Summary: A powerful CLI tool that puts log aggregation at your fingertips + +License: GPL-3.0 +URL: https://github.com/ReagentX/Logria +Source0: %{name}-%{version}.tar.gz +Source1: %{name}-%{version}-vendor.tar.gz + +BuildRequires: rust >= 1.88.0 +BuildRequires: cargo + +%description +Logria is best leveraged to watch live logs from multiple processes and filter them for events you want to see. My most common use case is watching logs from multiple Linode/EC2 instances via ssh or multiple CloudWatch streams using aws logs. + + +%prep +%autosetup + +%build +cargo build --release + +%install +mkdir -p %{buildroot}%{_bindir} +install -D -m 0755 target/release/%{name} %{buildroot}%{_bindir} + + +%files +%{_bindir}/%{name} +%license LICENSE +%doc README.md + + +%changelog +* Mon Nov 24 2025 Alexander Lushin - 0.4.2-1 +- Initial build diff --git a/version.sh b/version.sh new file mode 100644 index 0000000..08827f7 --- /dev/null +++ b/version.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +export VERSION=0.4.2 +export RELEASE=1