%define ruby_sitelibdir %(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.3 Release: 4%{?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 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_sitelibdir} %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_sitelibdir}/* %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,-) %{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,-) %{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,-) %{modulehome}/basic-site/* %doc %{modulehome}/basic-site/COPYING #################### # Console Module #################### %package console Summary: Management Console for ACE Modules Group: Applications/Internet License: LGPLv2+ Requires: ruby(abi) = 1.8 Requires: ace Requires: ace-console-wui %description console Simple management console for appliances %files console %defattr(-,root,root,-) %{modulehome}/console/* %doc %{modulehome}/console/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,-) %{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,-) %{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,-) %{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,-) %{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_sitelibdir} install -d %{buildroot}/%{_bindir} install -d %{buildroot}/%{_initrddir} cp -pr %{pbuild}/COPYING %{buildroot}/%{acehome} cp -pr %{pbuild}/lib/ace.rb %{buildroot}/%{ruby_sitelibdir} cp -pr %{pbuild}/lib/ace %{buildroot}/%{ruby_sitelibdir} 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}/console 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 * Thu Oct 2 2008 Bryan Kearney 0.0.3-4 - Combine all ace packages into a single SRPM. * Wed Sep 24 2008 Bryan Kearney 0.0.3-3 - Comments from David Lutterkort and Bill Nottingham * Fri Sep 19 2008 Bryan Kearney 0.0.3-2 - Submit For Fedora Packaging Process * Thu Sep 18 2008 Bryan Kearney 0.0.3-1 - Begin Fedora Packaging Process * Thu Jul 17 2008 Bryan Kearney 0.0.2-1 - Converted to puppet syntax * Thu Mar 26 2008 Bryan Kearney 0.0.1-1 - Initial packaging