#global commit 57c6e7340d16b14d61f9e3361ca4940f53dfcafa #global shortcommit %%(c=%%{commit}; echo ${c:0:7}) #global commit_date 20221123 Name: slstatus #Version: %{commit_date}git%{shortcommit} Version: 1.0 Release: 1%{?dist} Summary: Status monitor for window managers that use WM_NAME %global _slstatussourcedir %{_usrsrc}/slstatus-user-%{version}-%{release} Group: User Interface/Desktops License: MIT URL: https://tools.suckless.org/slstatus/ # Source is a git checkout (git://git.suckless.org/slstatus) # git archive --format=tar --prefix=%%{name}-%%{shortcommit}/ %%{shortcommit} | xz > %%{name}-%%{shortcommit}.tar.xz #Source0: %%{name}-%%{shortcommit}.tar.xz Source0: https://dl.suckless.org/tools/slstatus-%{version}.tar.gz # slstatus-start script and its manpage Source1: slstatus-start Source2: slstatus-start.1 # slstatus systemd unit Source3: slstatus.service # Fedora notes referring to dwm-user in dwm(1) Patch1: slstatus-user-notes.patch BuildRequires: gcc BuildRequires: libX11-devel BuildRequires: make BuildRequires: sed BuildRequires: systemd-rpm-macros %description slstatus is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or stdin to fill the status bar. %package user Summary: Status monitor for window managers sources and tools for user configuration Group: User Interface/Desktops License: MIT Requires: %{name}%{?_isa} = %{version}-%{release} Requires: findutils Requires: gcc Requires: libX11-devel Requires: make Requires: patch %description user slstatus sources and slstatus-start script for individual user configuration. slstatus-start reads user's header file and creates custom slstatus build for user to use on the fly. %prep %autosetup -n %{name}-%{version} %build # Insert optflags + ldflags sed -i -e 's|-Os|%{optflags}|' config.mk sed -i -e 's|LDFLAGS = -L$(X11LIB) -s|LDFLAGS = %{?build_ldflags}|' config.mk # X includedir path fix sed -i -e 's|X11INC = .*|X11INC = %{_includedir}|' config.mk # libdir path fix sed -i -e 's|X11LIB = .*|X11LIB = %{_libdir}|' config.mk %make_build # Remove problematic flag sed -i -e 's|-Wl,-dT,%{_builddir}/%{name}-%{shortcommit}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld||' config.mk %install %make_install PREFIX="%{_prefix}" install -m755 %{SOURCE1} %{buildroot}%{_bindir}/slstatus-start sed -i "s/version=VERSION/version=%{version}/" %{buildroot}%{_bindir}/slstatus-start sed -i "s/release=RELEASE/release=%{release}/" %{buildroot}%{_bindir}/slstatus-start install -m644 %{SOURCE2} %{buildroot}%{_mandir}/man1/slstatus-start.1 sed -i "s/VERSION/%{version}/" %{buildroot}%{_mandir}/man1/slstatus-start.1 sed -i "s/RELEASE/%{release}/" %{buildroot}%{_mandir}/man1/slstatus-start.1 mkdir -p %{buildroot}%{_slstatussourcedir} install -m644 -p -t %{buildroot}%{_slstatussourcedir} \ arg.h \ config.def.h \ config.mk \ Makefile \ slstatus.c \ slstatus.h \ util.c \ util.h \ cp -r components/ %{buildroot}%{_slstatussourcedir} mkdir -p %{buildroot}%{_userunitdir} install -m644 %{SOURCE3} %{buildroot}%{_userunitdir} %post %systemd_user_post %{name}.service %preun %systemd_user_preun %{name}.service %files %license LICENSE %doc README %{_bindir}/%{name} %{_mandir}/man1/%{name}.1* %files user %{_bindir}/%{name}-start %{_mandir}/man1/%{name}-start.1* %{_userunitdir}/%{name}.service %{_slstatussourcedir} %changelog * Mon Dec 04 2023 Luca Magrone - 1.0-1 - Update to version 1.0 * Wed Nov 30 2022 Luca Magrone - 20221123git57c6e73-3 - Allow systemd unit to restart if it fails (workaround needed to ensure the desktop has loaded when starting the user service) * Wed Nov 30 2022 Luca Magrone - 20221123git57c6e73-2 - Fix slstatus-start scripr source variable - Remove problematic tag from config.mk - Add systemd unit * Tue Nov 29 2022 Luca Magrone - 20221123git57c6e73-1 - Initial package