File buffybox.spec of Package buffybox
%define dracutlibdir %{_prefix}/lib/dracut
Name: buffybox
Version: 3.4.1
Release: 0
Summary: BuffyBox is a suite of graphical applications for the terminal.
License: GPLv3
URL: https://gitlab.com/postmarketOS/buffybox
BuildRequires: git
BuildRequires: systemd-rpm-macros
BuildRequires: systemd-devel
BuildRequires: gcc
BuildRequires: meson >= 0.54.0
BuildRequires: ninja
BuildRequires: pkgconfig(inih)
BuildRequires: pkgconfig(libinput)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(scdoc)
BuildRequires: pkgconfig(systemd)
Source0: %{name}-%{version}.tar
Source1: unl0kr-dracut-module-setup.sh
Source2: unl0kr-ask-password.sh
Source3: unl0kr-ask-password.path
Source4: unl0kr-ask-password.service
Source5: 10-unl0kr.conf
Source6: 11-unl0kr.conf
%description
BuffyBox is a suite of graphical applications for the terminal.
%prep
%autosetup -p1
sed -i 's/LV_LOG_LEVEL LV_LOG_LEVEL_WARN/LV_LOG_LEVEL LV_LOG_LEVEL_TRACE/' unl0kr/lv_conf.h
%build
%meson
%meson_build
%install
%meson_install
# Install unl0kr dracut components
install -Dm0644 %{SOURCE1} %{buildroot}%{dracutlibdir}/modules.d/10unl0kr/module-setup.sh
install -Dm0755 %{SOURCE2} %{buildroot}%{dracutlibdir}/modules.d/10unl0kr/unl0kr-ask-password.sh
# Install systemd units
mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants
install -Dm0644 %{SOURCE3} %{buildroot}%{_unitdir}/unl0kr-ask-password.path
install -Dm0644 %{SOURCE4} %{buildroot}%{_unitdir}/unl0kr-ask-password.service
ln -sf ../unl0kr-ask-password.path %{buildroot}%{_unitdir}/sysinit.target.wants/unl0kr-ask-password.path
# Install dracut configuration
install -Dm0644 %{SOURCE5} %{buildroot}%{dracutlibdir}/dracut.conf.d/10-unl0kr.conf
# Install config
%{__install} -Dm0644 -t %{buildroot}%{_sysconfdir}/unl0kr.conf.d/ %{SOURCE6}
##### Subpackage: unl0kr #####
%package unl0kr
Summary: unl0kr - a graphical unlocker for encrypted devices
License: GPLv3
%description unl0kr
unl0kr is part of the BuffyBox suite. It provides a simple TUI interface for unlocking encrypted devices.
%files unl0kr
/usr/lib/systemd/system/unl0kr-agent.service
/usr/lib/systemd/system/unl0kr-agent.path
/usr/libexec/unl0kr-agent
%license COPYING
%{_bindir}/unl0kr
%config(noreplace) %{_sysconfdir}/unl0kr.conf
%dir %{_sysconfdir}/unl0kr.conf.d/
%config %{_sysconfdir}/unl0kr.conf.d/*
%{_mandir}/man1/unl0kr.1.gz
%{_mandir}/man5/unl0kr.conf.5.gz
##### Subpackage: unl0kr-dracut #####
%package unl0kr-dracut
Summary: Integration of unl0kr and Dracut
Requires: %{name}-unl0kr = %{version}-%{release}
Requires: dracut
%description unl0kr-dracut
Provides a Dracut module that will ask for a password using an on-screen keyboard.
%files unl0kr-dracut
%dir %{dracutlibdir}
%dir %{dracutlibdir}/dracut.conf.d
%dir %{dracutlibdir}/modules.d
%dir %{_unitdir}/sysinit.target.wants
%{dracutlibdir}/modules.d/10unl0kr
%{dracutlibdir}/dracut.conf.d/10-unl0kr.conf
%{_unitdir}/unl0kr-ask-password.path
%{_unitdir}/unl0kr-ask-password.service
%{_unitdir}/sysinit.target.wants/unl0kr-ask-password.path
##### Subpackage: buffyboard #####
%package buffyboard
Summary: buffyboard - keyboard selection tool for TTY environments
License: GPLv3
%description buffyboard
Part of the BuffyBox suite. It provides a graphical layout selector for keyboards in terminal environments
%files buffyboard
/usr/lib/systemd/system/buffyboard.service
/usr/bin/f0rmz
%dir /usr/lib/systemd/system/getty@.service.d
/usr/lib/systemd/system/getty@.service.d/buffyboard.conf
%license COPYING
%{_bindir}/buffyboard
%config(noreplace) %{_sysconfdir}/buffyboard.conf
%{_mandir}/man1/buffyboard.1.gz
%{_mandir}/man5/buffyboard.conf.5.gz