%global tag v1.3.1 %global pkg_version 1.3.1 %global debug_package %{nil} %global _missing_build_ids_terminate_build 0 Name: ly Version: %{pkg_version} Release: 1%{?dist} Summary: A lightweight TUI display manager for Linux and BSD License: WTFPL URL: https://github.com/fairyglade/ly Source0: %{url}/archive/%{tag}/%{name}-%{tag}.tar.gz Source1: ly.te BuildRequires: zig BuildRequires: systemd-devel BuildRequires: pam-devel BuildRequires: libxcb-devel BuildRequires: selinux-policy-devel Requires: pam Requires: xauth Requires: systemd Requires(post): policycoreutils, selinux-policy-targeted %description Ly is a lightweight TUI display manager. This package includes a basic SELinux policy to allow Ly to manage TTY logins. %prep %autosetup -n %{name}-%{pkg_version} cp %{SOURCE1} . %build export ZIG_GLOBAL_CACHE_DIR=$(pwd)/.zig-cache zig build -Doptimize=ReleaseSafe -Dinit_system=systemd --summary all make -f %{_datadir}/selinux/devel/Makefile ly.pp %install install -D -p -m 0755 zig-out/bin/ly %{buildroot}%{_bindir}/ly # We replace @BIN_DIR@ with /usr/bin and @PACKAGE_NAME@ with ly sed -e 's|@BIN_DIR@|%{_bindir}|g' \ -e 's|@PACKAGE_NAME@|ly|g' \ res/ly@.service > ly@.service.fixed install -D -p -m 0644 ly@.service.fixed %{buildroot}%{_unitdir}/ly@.service install -D -p -m 0644 res/config.ini %{buildroot}%{_sysconfdir}/ly/config.ini mkdir -p %{buildroot}%{_datadir}/ly cp -r res/lang %{buildroot}%{_datadir}/ly/ install -D -p -m 0644 ly.pp %{buildroot}%{_datadir}/selinux/packages/ly.pp %post %systemd_post ly@.service /usr/sbin/semodule -i %{_datadir}/selinux/packages/ly.pp &> /dev/null || : /usr/sbin/semanage fcontext -a -t xdm_exec_t '%{_bindir}/ly' 2>/dev/null || : /usr/sbin/restorecon -v %{_bindir}/ly || : %postun %systemd_postun_with_restart ly@.service if [ $1 -eq 0 ]; then /usr/sbin/semanage fcontext -d -t xdm_exec_t '%{_bindir}/ly' 2>/dev/null || : /usr/sbin/semodule -r ly &> /dev/null || : fi %files %license license.md %doc readme.md %{_bindir}/ly %dir %{_sysconfdir}/ly %config(noreplace) %{_sysconfdir}/ly/config.ini %{_unitdir}/ly@.service %{_datadir}/ly/ %{_datadir}/selinux/packages/ly.pp %changelog * Sat Jan 31 2026 Your Name - 1.3.1-1 - Added SELinux policy module to allow TTY transitions