File xmonad.spec of Package xmonad

#
# spec file for package xmonad
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%global pkg_name xmonad
# no useful debuginfo for Haskell packages without C sources
%global debug_package %{nil}
Name:           xmonad
Version:        0.11.1
Release:        0
Summary:        A tiling window manager
License:        BSD-3-Clause
Group:          System/GUI/Other
Url:            https://hackage.haskell.org/package/%{name}
Source0:        %{name}-%{version}.tar.gz
Source1:        xmonad.desktop
BuildRequires:  ghc-Cabal-devel
BuildRequires:  ghc-X11-devel
BuildRequires:  ghc-containers-devel
BuildRequires:  ghc-directory-devel
BuildRequires:  ghc-extensible-exceptions-devel
BuildRequires:  ghc-filepath-devel
BuildRequires:  ghc-mtl-devel
BuildRequires:  ghc-process-devel
BuildRequires:  ghc-rpm-macros
BuildRequires:  ghc-unix-devel
BuildRequires:  ghc-utf8-string-devel
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(xinerama)
Suggests:       ghc-xmonad-contrib-devel
Suggests:       ghc-xmonad-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Xmonad is a tiling window manager for X. Windows are arranged automatically to
tile the screen without gaps or overlap, maximising screen use. All features of
the window manager are accessible from the keyboard: a mouse is strictly
optional. xmonad is written and extensible in Haskell. Custom layout
algorithms, and other extensions, may be written by the user in config files.
Layouts are applied dynamically, and different layouts may be used on each
workspace. Xinerama is fully supported, allowing windows to be tiled on several
screens.

%package -n ghc-%{name}
Summary:        Haskell %{name} library
Group:          System/Libraries

%description -n ghc-%{name}
This package provides the Haskell %{name} shared library.

%package -n ghc-%{name}-devel
Summary:        Haskell %{name} library development files
Group:          Development/Libraries/Other
Requires:       ghc-%{name} = %{version}-%{release}

%description -n ghc-%{name}-devel
This package provides the Haskell %{name} library development files.

%prep
%setup -q
cabal-tweak-dep-ver utf8-string '< 0.4' '< 1.1'

%build
%{ghc_lib_build}

%install
%{ghc_lib_install}
install -d %{buildroot}%{_mandir}/man1/
mv %{buildroot}%{_datadir}/%{name}-%{version}/man/%{name}.1 %{buildroot}%{_mandir}/man1/
gzip %{buildroot}%{_mandir}/man1/%{name}.1
# Gzipping here because when we gzip it in %build step, it breaks cabal setup

%define desktop_src %{buildroot}%{_datadir}/xsessions/xmonad.desktop
install -m0644 -D %{SOURCE1} %{desktop_src}
%suse_update_desktop_file %{desktop_src}

%post -n ghc-%{name}-devel
%{ghc_pkg_recache}

%postun -n ghc-%{name}-devel
%{ghc_pkg_recache}

%files
%defattr(-,root,root,-)
%doc LICENSE
%doc README TODO
%{_bindir}/%{name}
%{_datadir}/%{name}-%{version}
%{_mandir}/man1/xmonad.1.gz
%{_datadir}/xsessions/xmonad.desktop

%files -n ghc-%{name} -f ghc-%{name}.files
%defattr(-,root,root,-)
%doc LICENSE

%files -n ghc-%{name}-devel -f ghc-%{name}-devel.files
%defattr(-,root,root,-)
%doc README TODO

%changelog