# Copyright © 2016 Martin Ueding <dev@martin-ueding.de>
# Licensed under the MIT license as the packaged software itself.
# Rationale for choosing a post release:
#
# The version that I use from git is a couple commits *after* 0.3.0 and there
# is no more recent tag in the upstream repository. Previously I have used
# xss-lock 0.3.0 on Ubuntu 15.04 and had a bug with it, it would not exit when
# I logged out of the graphics session. Then it would hammer one CPU core. The
# repository contains commits which suggest that this bug has been addressed
# but not yet released.
%global checkout 20140302git
%global commit0 1e158fb20108058dbd62bd51d8e8c003c0a48717
%global shortcommit0 %(c=%{commit0}; echo ${c:0:12})
Name: xss-lock
Version: 0.3.0
Release: 4.%{checkout}%{?dist}
Summary: Use external locker as X screen saver
#Group:
License: MIT
Url: https://bitbucket.org/raymonad/xss-lock
Source0: https://bitbucket.org/raymonad/%{name}/get/%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz
BuildRequires: xcb-util-devel libxcb-devel glib2-devel
BuildRequires: cmake python-docutils
Requires: xcb-util
# Description is a verbatim copy of the manual formatted to Markdown.
%description
*xss-lock* hooks up your favorite locker to the MIT screen saver extension for
X and also to systemd's login manager. The locker is executed in response to
events from these two sources:
- X signals when screen saver activation is forced or after a period of user
inactivity (as set with `xset s TIMEOUT`). In the latter case, the notifier
command, if specified, is executed first.
- The login manager can also request that the session be locked; as a result of
`loginctl lock-sessions`, for example. Additionally, **xss-lock** uses the
inhibition logic to lock the screen before the system goes to sleep.
*xss-lock* waits for the locker to exit -- or kills it when screen saver
deactivation or session unlocking is forced -- so the command should not fork.
Also, *xss-lock* manages the idle hint on the login session. The idle state of
the session is directly linked to user activity as reported by X (except when
the notifier runs before locking the screen). When all sessions are idle, the
login manager can take action (such as suspending the system) after a
preconfigured delay.
%prep
%setup -qn raymonad-%{name}-%{shortcommit0}
%build
%cmake .
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%{_bindir}/xss-lock
%{_datadir}/bash-completion/completions/
%{_datadir}/zsh/
%{_mandir}/man1/xss-lock.1*
%doc NEWS
%doc doc/dim-screen.sh
%doc doc/transfer-sleep-lock-generic-delay.sh
%doc doc/transfer-sleep-lock-i3lock.sh
%doc doc/xdg-screensaver.patch
%license LICENSE
%changelog
* Wed Jan 06 2016 Martin Ueding <von.fedora@martin-ueding.de> 0.3.0-4.20140302git
- Own `zsh` directory
* Tue Jan 05 2016 Martin Ueding <von.fedora@martin-ueding.de> 0.3.0-3.20140302git
- Include full commit has
- Let RPM find library dependencies automatically
* Mon Jan 04 2016 Martin Ueding <von.fedora@martin-ueding.de> 0.3.0-2.20140302git
- Use downloading and renaming support from `%%setup -qn` and `spectool -g`
- Replace `%%define` with `%%global`
- Own shell completion directory as this package does not explicitly depend on
the shells
- Add a wildcard to catch all manual page compression formats
- Add a `Url` tag
* Sat Jan 02 2016 Martin Ueding <von.fedora@martin-ueding.de> 0.3.0-1
- Initial RPM