%{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")}
%define pbuild %{_builddir}/%{name}-%{version}
%define binFile %{_bindir}/ace
%define initFile %{_initrddir}/ace
%define acehome %{_datadir}/ace
%define modulehome %{acehome}/modules
##############
# Main Module
##############
Summary: Appliance Configuration Engine
Name: ace
Version: 0.0.7
Release: 2%{?dist}
Group: Applications/Internet
License: LGPLv2+
URL: http://www.thincrust.net
Source0: %{url}/download/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: ruby(abi) = 1.8
BuildRequires: ruby-devel >= 1.8
BuildRequires: ruby
Requires: yum
Requires: ruby(abi) = 1.8
Requires: puppet
Requires: ruby-augeas
Requires: /usr/sbin/crond
Requires(post): chkconfig
Requires(preun): chkconfig
%description
Boot time configuration engine for appliances.
%files
%defattr(-,root,root,-)
%dir %{ruby_sitelib}
%dir %{acehome}
%dir %{modulehome}
%dir %{modulehome}/appliance_base
%dir %{modulehome}/augeas
%dir %{modulehome}/firewall
%dir %{acehome}/facts
%dir %{acehome}/lenses
%dir %{acehome}/manifests
%dir %{acehome}/tools
%{modulehome}/appliance_base/*
%{modulehome}/augeas/*
%{modulehome}/firewall/*
%{acehome}/facts/*
%{acehome}/lenses/*
%{acehome}/manifests/*
%{acehome}/tools/*
%{ruby_sitelib}/*
%doc %{acehome}/COPYING
%{binFile}
%{initFile}
###############
# Apache Module
###############
%package apache
Summary: Apache ACE Module
Group: Applications/Internet
License: LGPLv2+
URL: http://www.thincrust.net
BuildArch: noarch
Requires: ace
Requires: httpd
Requires: ruby(abi) = 1.8
%description apache
Apache module for the Appliance Configuration Engine
%files apache
%defattr(-,root,root,-)
%dir %{modulehome}/apache
%{modulehome}/apache/*
%doc %{modulehome}/apache/COPYING
#################
# Banners Module
#################
%package banners
Summary: Simple Banners ACE Module
Group: Applications/Internet
Requires: ace
Requires: ruby(abi) = 1.8
%description banners
Login and Console information for appliances
%files banners
%defattr(-,root,root,-)
%dir %{modulehome}/banners
%{modulehome}/banners/*
%doc %{modulehome}/banners/COPYING
####################
# Basic Site Module
####################
%package basic-site
Summary: Simple Web Site ACE Module
Group: Applications/Internet
Requires: ace-apache
Requires: ruby(abi) = 1.8
%description basic-site
Basic informative web site for appliances
%files basic-site
%defattr(-,root,root,-)
%dir %{modulehome}/basic-site
%{modulehome}/basic-site/*
%doc %{modulehome}/basic-site/COPYING
##############
# MySQL Module
##############
%package mysql
Summary: ACE Mysql module
Group: Applications/Internet
Requires: ruby(abi) = 1.8
Requires: ace
Requires: mysql
Requires: mysql-server
%description mysql
Mysql management for appliances.
%files mysql
%defattr(-,root,root,-)
%dir %{modulehome}/mysql
%{modulehome}/mysql/*
%doc %{modulehome}/mysql/COPYING
##############
# PHP Module
##############
%package php
Summary: ACE php module
Group: Applications/Internet
Requires: ruby(abi) = 1.8
Requires: ace
Requires: php
%description php
PHP management for appliances.
%files php
%defattr(-,root,root,-)
%dir %{modulehome}/php
%{modulehome}/php/*
%doc %{modulehome}/php/COPYING
#################
# Postgres Module
#################
%package postgres
Summary: ACE postgres module
Group: Applications/Internet
Requires: ruby(abi) = 1.8
Requires: ace
Requires: postgresql
Requires: postgresql-server
%description postgres
Postgres database management for appliances.
%files postgres
%defattr(-,root,root,-)
%dir %{modulehome}/postgres
%{modulehome}/postgres/*
%doc %{modulehome}/postgres/COPYING
############
# SSH Module
############
%package ssh
Summary: ACE ssh module
Group: Applications/Internet
Requires: ruby(abi) = 1.8
Requires: ace
Requires: openssh-server
%description ssh
SSH configuration for appliances
%files ssh
%defattr(-,root,root,-)
%dir %{modulehome}/ssh
%{modulehome}/ssh/*
%doc %{modulehome}/ssh/COPYING
###########################
# Prep, Build, and Install
###########################
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
install -d %{buildroot}/%{acehome}
install -d %{buildroot}/%{ruby_sitelib}
install -d %{buildroot}/%{_bindir}
install -d %{buildroot}/%{_initrddir}
cp -pr %{pbuild}/COPYING %{buildroot}/%{acehome}
cp -pr %{pbuild}/lib/ace.rb %{buildroot}/%{ruby_sitelib}
cp -pr %{pbuild}/lib/ace %{buildroot}/%{ruby_sitelib}
cp -pr %{pbuild}/bin/ace %{buildroot}/%{binFile}
cp -pr %{pbuild}/bin/ace-init %{buildroot}/%{initFile}
cp -pr %{pbuild}/modules %{buildroot}/%{acehome}
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/apache
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/banners
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/basic-site
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/mysql
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/php
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/postgres
cp -pr %{pbuild}/COPYING %{buildroot}/%{modulehome}/ssh
cp -pr %{pbuild}/facts %{buildroot}/%{acehome}
cp -pr %{pbuild}/manifests %{buildroot}/%{acehome}
cp -pr %{pbuild}/tools %{buildroot}/%{acehome}
cp -pr %{pbuild}/lenses %{buildroot}/%{acehome}
%clean
rm -rf %{buildroot}
%post
/sbin/chkconfig --add %{name}
%preun
if [ $1 = 0 ] ; then
/sbin/service ace stop >/dev/null 2>&1
/sbin/chkconfig --del %{name}
fi
###########
# Changelog
###########
%changelog
* Wed Mar 16 2009 Bryan Kearney <bkearney@redhat.com> 0.0.7-2
- Ovirt enhancements from Joey Boggs
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Feb 18 2009 Bryan Kearney <bkearney@redhat.com> 0.0.6-1
- Iptables enhancements from Joey Boggs
* Tue Jan 07 2009 Bryan Kearney <bkearney@redhat.com> 0.0.5-1
- Status of puppet script is reflected in command line and init script
- Executingn 'ace --verbose' now provides real time view of puppet output
- Will work with new puppet which includes the augas plugin
* Tue Dec 16 2008 Bryan Kearney <bkearney@redhat.com> 0.0.4-1
- Postgres packages did not enforfce dependencies correctly
- init script can handle many appliances
* Tue Dec 2 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-7
- Modify the build requires to include the ruby binary
* Tue Dec 2 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-6
- Modify the build requires to get the sitelibdir value
* Thu Oct 2 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-5
- Remove the console to package it later.
* Thu Oct 2 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-4
- Combine all ace packages into a single SRPM.
* Wed Sep 24 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-3
- Comments from David Lutterkort and Bill Nottingham
* Fri Sep 19 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-2
- Submit For Fedora Packaging Process
* Thu Sep 18 2008 Bryan Kearney <bkearney@redhat.com> 0.0.3-1
- Begin Fedora Packaging Process
* Thu Jul 17 2008 Bryan Kearney <bkearney@redhat.com> 0.0.2-1
- Converted to puppet syntax
* Thu Mar 26 2008 Bryan Kearney <bkearney@redhat.com> 0.0.1-1
- Initial packaging