File hawk.spec of Package hawk
#
# spec file for package hawk
#
# Copyright (c) 2013 SUSE LINUX Products 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/
#
%define www_base /srv/www
%define vendor_ruby vendor_ruby
%define init_style suse
%define pkg_group Productivity/Clustering/HA
%define gname haclient
%define uname hacluster
Name: hawk
Summary: HA Web Konsole
License: GPL-2.0
Group: Productivity/Clustering/HA
Version: 0.5.2
Release: 0
Url: http://www.clusterlabs.org/wiki/Hawk
Source: %{name}-%{version}.tar.bz2
Source1: filter-requires.sh
Source100: hawk-rpmlintrc
Patch0: remove-Gemfile-lock.patch
Patch3: remove-ha_state.patch
Patch4: fix-cib-NOTEXISTS.patch
Patch5: use-lrmd_test.patch
Patch6: set-default-home.patch
Patch7: fix-cibobject-exists.patch
Patch8: session-old-hash.patch
Patch9: bundler.patch
Patch10: fix-root.patch
Patch11: precompile.patch
Patch12: dispatch.patch
%define _use_internal_dependency_generator 0
%define __find_requires /bin/sh %{SOURCE1}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: hawk-templates >= %{version}-%{release}
%if 0%{?suse_version}
Requires: pacemaker-ticket-support >= 2.0
%else
Requires: pacemaker
%endif
Requires: graphviz
Requires: graphviz-gd
Requires: lighttpd >= 1.4.20
Requires: ruby
BuildRequires: ruby-devel
Requires: rubygem-bundler
%if 0%{?suse_version} < 1220
BuildRequires: ruby-fcgi
%else
Requires: rubygem-ruby-fcgi
%endif
Recommends: graphviz-gnome
BuildRequires: glib2-devel
BuildRequires: libxml2-devel
BuildRequires: pam-devel
BuildRequires: rubygem-fast_gettext
BuildRequires: rubygem-gettext
BuildRequires: rubygem-gettext_i18n_rails
BuildRequires: rubygem-rake
BuildRequires: rubygems
PreReq: permissions
BuildRequires: fdupes
BuildRequires: libpacemaker-devel
BuildRequires: rubygem-rack
BuildRequires: rubygem-rails-3_2
BuildRequires: rubygem-rails-i18n
# Require startproc respecting -p, bnc#559534#c44
%if 0%{?suse_version} > 1110
# 11.2 or newer;
Requires: sysvinit > 2.86-215.2
%else
# 11.1 or SLES11
Requires: sysvinit > 2.86-195.3.1
%endif
%description
A web-based GUI for managing and monitoring the Pacemaker
High-Availability cluster resource manager.
Authors: Tim Serong <tserong@suse.com>
%package templates
Summary: Hawk Setup Wizard Templates
Group: Productivity/Clustering/HA
%description templates
Template files for Hawk's cluster setup wizard.
Authors: Tim Serong <tserong@suse.com>
%prep
%setup
%patch0 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%build
CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}"
export CFLAGS
make WWW_BASE=%{www_base} INIT_STYLE=%{init_style} LIBDIR=%{_libdir} BINDIR=%{_bindir} SBINDIR=%{_sbindir}
%install
make WWW_BASE=%{www_base} INIT_STYLE=%{init_style} DESTDIR=%{buildroot} install
# copy of GPL
cp COPYING %{buildroot}%{www_base}/hawk/
# get rid of gem sample and test cruft
rm -rf %{buildroot}%{www_base}/hawk/vendor/gems/*/sample
rm -rf %{buildroot}%{www_base}/hawk/vendor/gems/*/samples
rm -rf %{buildroot}%{www_base}/hawk/vendor/gems/*/test
rm -rf %{buildroot}%{www_base}/hawk/vendor/gems/*/doc
# mark .mo files as such (works on SUSE but not FC12, as the latter wants directory to
# be "share/locale", not just "locale", and it also doesn't support appending to %%{name}.lang)
%find_lang %{name} %{name}.lang
#%find_lang rgettext %{name}.lang
#%find_lang gettext_rails %{name}.lang
# hard link duplicate files
%fdupes %{buildroot}
# more cruft to clean up (WTF?)
rm -f %{buildroot}%{www_base}/hawk/log/*
#find %{buildroot}%{www_base}/hawk/vendor/rails -type f -name '*.css' -o -name '*.js' -o -name '*LICENSE' | xargs chmod a-x
# get rid of packed gem specification files
rm -f %{buildroot}%{www_base}/hawk/vendor/gems/*/.specification
# likewise emtpy files (again, I say, WTF?)
find %{buildroot}%{www_base}/hawk/vendor -type f -empty -print0 | xargs -0 rm
# init script
%{__install} -d -m 0755 \
%{buildroot}%{_sbindir}
%{__install} -D -m 0755 scripts/hawk.%{init_style} \
%{buildroot}%{_sysconfdir}/init.d/hawk
%{__ln_s} -f %{_sysconfdir}/init.d/hawk %{buildroot}%{_sbindir}/rchawk
%clean
rm -rf %{buildroot}
%verifyscript
%verify_permissions -e %{_sbindir}/hawk_chkpwd
%verify_permissions -e %{_sbindir}/hawk_invoke
%post
%set_permissions %{_sbindir}/hawk_chkpwd
%set_permissions %{_sbindir}/hawk_invoke
%fillup_and_insserv hawk
%preun
%stop_on_removal hawk
%postun
%restart_on_update hawk
%{insserv_cleanup}
%triggerin -- lighttpd
%restart_on_update hawk
%files -f %{name}.lang
%defattr(-,root,root)
%attr(4750, root, %{gname})%{_sbindir}/hawk_chkpwd
%attr(4750, root, %{gname})%{_sbindir}/hawk_invoke
%{_sbindir}/hawk_monitor
%dir %{www_base}/hawk
%{www_base}/hawk/app
%{www_base}/hawk/config
# Packaged in hawk-templates
%exclude %{www_base}/hawk/config/wizard
%{www_base}/hawk/db
%{www_base}/hawk/doc
%{www_base}/hawk/lib
%attr(0750, %{uname},%{gname})%{www_base}/hawk/log
%dir %attr(0750, %{uname},%{gname})%{www_base}/hawk/tmp
%attr(0750, %{uname},%{gname})%{www_base}/hawk/tmp/cache
%attr(0770, %{uname},%{gname})%{www_base}/hawk/tmp/home
%attr(0750, %{uname},%{gname})%{www_base}/hawk/tmp/pids
%attr(0750, %{uname},%{gname})%{www_base}/hawk/tmp/sessions
%attr(0750, %{uname},%{gname})%{www_base}/hawk/tmp/sockets
%exclude %{www_base}/hawk/tmp/session_secret
%{www_base}/hawk/locale/hawk.pot
%{www_base}/hawk/.bundle
%{www_base}/hawk/public
%{www_base}/hawk/Rakefile
%{www_base}/hawk/Gemfile
%{www_base}/hawk/Gemfile.lock
%{www_base}/hawk/COPYING
%{www_base}/hawk/README.rdoc
%{www_base}/hawk/config.ru
%{www_base}/hawk/script
%{www_base}/hawk/test
# itemizing content in %%{www_base}/hawk/vendor and locale to avoid
# duplicate files that would otherwise be the result of including hawk.lang
%dir %{www_base}/hawk/locale
%dir %{www_base}/hawk/locale/*
%dir %{www_base}/hawk/locale/*/*
%exclude %{www_base}/hawk/locale/*/*.po
%dir %{www_base}/hawk/vendor
%if 0%{?suse_version} < 1220
%{www_base}/hawk/vendor/*rb
# architecture-specific .so files
%{www_base}/hawk/vendor/*-linux
%endif
%{www_base}/hawk/vendor/bundle
%{www_base}/hawk/vendor/cache
# this is moderatly disgusting - the intent is to get everything except
# the content of "data/locale" which is covered by files in hawk.lang
#%dir %{www_base}/hawk/vendor/gems
#%dir %{www_base}/hawk/vendor/gems/*
#%dir %{www_base}/hawk/vendor/gems/*/data
#%dir %{www_base}/hawk/vendor/gems/*/data/locale
#%dir %{www_base}/hawk/vendor/gems/*/data/locale/*
#%dir %{www_base}/hawk/vendor/gems/*/data/locale/*/*
#%{www_base}/hawk/vendor/gems/*/[!d]*
#%{www_base}/hawk/vendor/rails
#%if 0%{?suse_version} < 1220
#%{www_base}/hawk/vendor/rbconfig
#%{www_base}/hawk/vendor/rubygems
#%endif
%config(noreplace) %attr(-,root,root) %{_sysconfdir}/init.d/hawk
%attr(-,root,root) %{_sbindir}/rchawk
%files templates
%defattr(-,root,root)
%{www_base}/hawk/config/wizard
%changelog