LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File hawk.spec of Package hawk (Project network:ha-clustering:Factory)

#
# 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