Project not found: devel:ARM:Factory:Contrib:ILP32

File ly.spec of Package ly

%define zig_exe /usr/bin/zig
%define ly_version 1.3.0

Name:           ly
Version:        %{ly_version}
Release:        1
Summary:        TUI display manager
License:        WTFPL
Group:          System/DisplayManagers
Url:            https://github.com/fairyglade/ly
Source0:        %{name}-%{version}-vendored.tar.gz
BuildRequires:  zig >= 0.15.0
BuildRequires:  pam-devel
BuildRequires:  libxcb-devel
BuildRequires:  git

%description
Ly is a lightweight TUI (ncurses-like) display manager for Linux and BSD,
designed with portability in mind (e.g. it does not require systemd to run).

%prep
%setup -q -n %{name}-%{version}

%build
# Build using vendored dependencies (no network required)
%{zig_exe} build -Dprefix_directory=%{_prefix} -Dconfig_directory=%{_sysconfdir} -Dinit_system=systemd -Ddefault_tty=2 -Dfallback_tty=2 -Doptimize=ReleaseFast

%install
rm -rf %{buildroot}

# Build with install to buildroot
%{zig_exe} build installnoconf -Ddest_directory=%{buildroot} -Dprefix_directory=%{_prefix} -Dconfig_directory=%{_sysconfdir} -Dinit_system=systemd -Ddefault_tty=2 -Dfallback_tty=2

# Verify the binary exists and install it if needed
if [ ! -f %{buildroot}%{_bindir}/ly ]; then
    if [ -f zig-out/bin/ly ]; then
        mkdir -p %{buildroot}%{_bindir}
        install -m 755 zig-out/bin/ly %{buildroot}%{_bindir}/ly
    fi
fi

# Install service file  
mkdir -p %{buildroot}%{_unitdir}
install -m 644 res/ly.service %{buildroot}%{_unitdir}/ly.service
sed -i "s,\$PREFIX_DIRECTORY,%{_prefix},g" %{buildroot}%{_unitdir}/ly.service
sed -i "s,\$EXECUTABLE_NAME,ly,g" %{buildroot}%{_unitdir}/ly.service
sed -i "s,\$DEFAULT_TTY,2,g" %{buildroot}%{_unitdir}/ly.service

# Install PAM configuration files
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
install -m 644 res/pam.d/ly-linux %{buildroot}%{_sysconfdir}/pam.d/ly
install -m 644 res/pam.d/ly-linux-autologin %{buildroot}%{_sysconfdir}/pam.d/ly-autologin

%files
%defattr(-,root,root)
%{_bindir}/ly
%{_unitdir}/ly.service
%config(noreplace) %{_sysconfdir}/ly/config.ini
%{_sysconfdir}/ly/config.ini.example
%{_sysconfdir}/ly/setup.sh
%dir %{_sysconfdir}/ly/lang
%{_sysconfdir}/ly/lang/*.ini
%dir %{_sysconfdir}/ly/custom-sessions
%{_sysconfdir}/ly/custom-sessions/README
%{_sysconfdir}/pam.d/ly
%{_sysconfdir}/pam.d/ly-autologin

%dir %{_sysconfdir}/ly

%changelog
* Tue Oct 28 2025 - marc_smith <marc_smith@opensuse.org> - 1.3.0-1
- Initial package for openSUSE Tumbleweed
openSUSE Build Service is sponsored by