## START: Set by rpmautospec ## (rpmautospec version 0.8.1) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 5; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %bcond_without check # Suppress output of debuginfo and debugsource %if 0%{?rhel} <= 9 %global debug_package %{nil} %global _enable_debug_packages 0 %endif %global url https://github.com/birkenfeld/arexibo %global crate arexibo %global shortversion 0.3.0 %global commit 8a237c16c127028b7d3ddee28cd611014a91c1e3 #global committag 1 %global commitversion %{?committag:%{commit}}%{?!committag:%{shortversion}} %global shortcommitversion %{?committag:%(c=%{commit}; echo ${c:0:7})}%{?!committag:%{shortversion}} %global commitdatestring 2025-03-28 08:41:10 +0100 %global commitdate 20250328 %global commitgit %{?committag:^git%{commitdate}.%(c=%{commit}; echo ${c:0:7})} Name: %{crate} Version: %{shortversion}%{commitgit} Release: %{autorelease} Summary: A Rust Linux Xibo player License: AGPLv3+ URL: %{url}/%{crate} Source0: %{url}/%{crate}/archive/refs/tags/%{commitversion}/%{crate}-%{shortcommitversion}.tar.gz # To create the below sources: # * git clone %%{url}/%%{crate}.git at the specified commit # * cargo vendor > vendor-config-%%{shortcommitversion}.toml # * tar -pczf vendor-%%{shortcommitversion}.tar.xz vendor Source1: vendor-%{shortcommitversion}.tar.xz # * mv vendor-config-%%{shortcommitversion}.toml .. Source2: vendor-config-%{shortcommitversion}.toml %if 0%{?fedora} || 0%{?rhel} >= 8 ExclusiveArch: %{rust_arches} %else ExclusiveArch: x86_64 ppc64le aarch64 %endif BuildRequires: cargo-rpm-macros >= 26 BuildRequires: rustc >= 1.75 BuildRequires: cargo BuildRequires: gcc-c++ BuildRequires: dbus-devel >= 1.6 BuildRequires: qt6-qtwebengine-devel BuildRequires: zeromq-devel >= 4.1 BuildRequires: systemd Requires: qt6-qtwebengine Requires: xorg-x11-server-Xorg Requires: xorg-x11-xinit %if 0%{?fedora} || 0%{?rhel} >= 8 Recommends: ffmpeg %endif Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description Arexibo is an unofficial alternate Digital Signage Player for Xibo, implemented in Rust with the GTK GUI components, for Linux platforms. It is currently quite incomplete. Don't expect any particular feature to work unless tested. %prep %autosetup -n %{crate}-%{commitversion} -p1 -a1 %cargo_prep -N # Check if .cargo/config.toml exists if [ -f .cargo/config.toml ]; then # If it exists, append the contents of %%{SOURCE2} to .cargo/config.toml cat %{SOURCE2} >> .cargo/config.toml echo "Appended %{SOURCE2} to .cargo/config.toml" else # If it does not exist, append the contents of %%{SOURCE2} to .cargo/config cat %{SOURCE2} >> .cargo/config echo "Appended %{SOURCE2} to .cargo/config" fi cat >x11 <systemd < LICENSE.dependencies %{cargo_vendor_manifest} sed 's/\(.*\) (.*#\(.*\))/\1+git\2/' -i cargo-vendor.txt sed 's/^\([^+]*\)+.*+\([^+]*\)$/\1+\2/' -i cargo-vendor.txt %install mkdir -p %{buildroot}%{_bindir} install -Dpm 0755 target/release/%{name} %{buildroot}%{_bindir}/ # xibo datas mkdir -p %{buildroot}%{_localstatedir}/cache/xibo # x11 wrapper mkdir -p %{buildroot}%{_sysconfdir}/X11 install -Dpm 0644 x11 %{buildroot}%{_sysconfdir}/X11/Xwrapper.config # systemd install -Dpm 0644 systemd %{buildroot}%{_unitdir}/%{name}.service %check %if %{with check} # Set vergen environment variables export VERGEN_GIT_COMMIT_DATE="date --utc '%{commitdatestring}'" export VERGEN_GIT_SHA="%{commit}" %cargo_test %endif %pre getent group xibo >/dev/null || groupadd -g 9505 -r xibo getent passwd xibo >/dev/null || \ useradd -r -u 9505 -g xibo -d %{_localstatedir}/cache/xibo -s /sbin/nologin \ -c "Xibo client user" xibo %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service %files %license LICENSE %license LICENSE.dependencies %license cargo-vendor.txt %doc CHANGELOG.md README.md assets target/release/examples %attr(0750,xibo,xibo) %dir %{_localstatedir}/cache/xibo %{_bindir}/%{name} %{_sysconfdir}/X11/Xwrapper.config %{_unitdir}/%{name}.service %changelog * Fri Dec 05 2025 Jean-Marc Liger - 0.3.0-5 - Build offline using cargo vendor * Mon Jun 02 2025 Jean-Marc Liger - 0.3.0-4 - Revert xibo home directory to /var/cache/xibo to avoid conflicts with xibo-cms /var/lib/xibo * Wed Apr 02 2025 Jean-Marc Liger - 0.3.0-3 - Add xorg-x11-* dependencies for minimal install without GUI - Move xibo home directory to /var/lib/xibo and fix permissions * Wed Apr 02 2025 Jean-Marc Liger - 0.3.0-2 - Remove gstreamer1 dependencies - Recommend ffmpeg * Sat Mar 29 2025 Jean-Marc Liger - 0.3.0-1 - Update to 0.3.0 Switch GUI to QWebEngine implementation * Tue Feb 18 2025 Jean-Marc Liger - 0.2.8-1 - Update to 0.2.8 * Mon Feb 03 2025 Jean-Marc Liger - 0.2.7-1 - Update to 0.2.7 Rust toolchain >= 1.75 is required * Tue Aug 13 2024 Jean-Marc Liger - 0.2.5-2 - Add missing /var/cache/xibo * Tue Aug 13 2024 Jean-Marc Liger - 0.2.5-1 - Update to 0.2.5 * Sat Jul 20 2024 Jean-Marc Liger - 0.2.4-1 - Update to 0.2.4 * Wed Dec 27 2023 Jean-Marc Liger - 0.2.3-4.3cadeb5 - Update from last git commit 3cadeb5 Rust toolchain >= 1.66 is required * Tue Aug 15 2023 Jean-Marc Liger - 0.2.3-3 - Add gstreamer1-plugin-openh264 dependency #Luc Tamisier * Sat Nov 19 2022 Jean-Marc Liger - 0.2.3-2 - Add gstreamer1 dependencies #Nicolas Meneceur - Update cargo dependencies from git * Sat Nov 12 2022 Jean-Marc Liger - 0.2.3-1 - Initial RPM 0.2.3