Blob Blame History Raw
# 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