Project

General

Profile

Download (4.97 KB) Statistics
| Branch: | Tag: | Revision:
501a98b4 Todd Zullinger
%global homedir %{_datadir}/%{name}
%global confdir extras/spec
96ec285f Ohad Levy
501a98b4 Todd Zullinger
Name: foreman
96ec285f Ohad Levy
Version: 0.1.4
501a98b4 Todd Zullinger
Release: 4%{?dist}
96ec285f Ohad Levy
Summary: Systems Management web application
501a98b4 Todd Zullinger
Group: Applications/System
License: GPLv3+
96ec285f Ohad Levy
URL: http://theforeman.org
501a98b4 Todd Zullinger
Source0: http://github.com/ohadlevy/%{name}/tarball/%{name}-0.1-4.tar.bz2
96ec285f Ohad Levy
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
501a98b4 Todd Zullinger
96ec285f Ohad Levy
BuildArch: noarch
501a98b4 Todd Zullinger
96ec285f Ohad Levy
Requires: ruby(abi) = 1.8
Requires: rubygems
Requires: rubygem(rack) >= 1.0.1
Requires: rubygem(rake) >= 0.8.3
b495586d Ohad Levy
Requires: puppet >= 0.24.4
Requires: rubygem(sqlite3-ruby)
501a98b4 Todd Zullinger
Requires(pre): shadow-utils
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts

96ec285f Ohad Levy
Packager: Ohad Levy <ohadlevy@gmail.com>

%description
Foreman is aimed to be a Single Address For All Machines Life Cycle Management.
501a98b4 Todd Zullinger
Foreman is based on Ruby on Rails, and this package bundles Rails and all
plugins required for Foreman to work.
96ec285f Ohad Levy
%prep
%setup -q -n %{name}

%build

%install
501a98b4 Todd Zullinger
rm -rf %{buildroot}
install -d -m0755 %{buildroot}%{_datadir}/%{name}
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}
install -d -m0755 %{buildroot}%{_localstatedir}/lib/%{name}
install -d -m0755 %{buildroot}%{_localstatedir}/run/%{name}
install -d -m0750 %{buildroot}%{_localstatedir}/log/%{name}

install -Dp -m0644 %{confdir}/%{name}.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -Dp -m0755 %{confdir}/%{name}.init %{buildroot}%{_initrddir}/%{name}
cp -p -r app config extras lib Rakefile script vendor %{buildroot}%{_datadir}/%{name}
chmod a+x %{buildroot}%{_datadir}/%{name}/script/{console,dbconsole,runner}
rm -rf %{buildroot}%{_datadir}/%{name}/extras/{jumpstart,spec}
rm -rf %{buildroot}%{_datadir}/%{name}/VERSION

# Move config files to %{_sysconfdir}
mv %{buildroot}%{_datadir}/%{name}/config/email.yaml.example %{buildroot}%{_datadir}/%{name}/config/email.yaml
for i in database.yml environment.rb email.yaml settings.yaml; do
mv %{buildroot}%{_datadir}/%{name}/config/$i %{buildroot}%{_sysconfdir}/%{name}
ln -sv %{_sysconfdir}/%{name}/$i %{buildroot}%{_datadir}/%{name}/config/$i
done

# Put db in %{_localstatedir}/lib/%{name}/db
cp -pr db/migrate %{buildroot}%{_datadir}/%{name}
mkdir %{buildroot}%{_localstatedir}/lib/%{name}/db
ln -sv %{_localstatedir}/lib/%{name}/db %{buildroot}%{_datadir}/%{name}/db
ln -sv %{_datadir}/%{name}/migrate %{buildroot}%{_localstatedir}/lib/%{name}/db/migrate

# Put HTML %{_localstatedir}/lib/%{name}/public
cp -pr public %{buildroot}%{_localstatedir}/lib/%{name}/
ln -sv %{_localstatedir}/lib/%{name}/public %{buildroot}%{_datadir}/%{name}/public

# Put logs in %{_localstatedir}/log/%{name}
ln -sv %{_localstatedir}/log/%{name} %{buildroot}%{_datadir}/%{name}/log

# Put tmp files in %{_localstatedir}/run/%{name}
ln -sv %{_localstatedir}/run/%{name} %{buildroot}%{_datadir}/%{name}/tmp

# Create a script for migrating the database
cat << \EOF > %{buildroot}%{_datadir}/%{name}/extras/dbmigrate
#!/bin/sh
cd && /usr/bin/rake db:migrate RAILS_ENV=production
EOF
chmod a+x %{buildroot}%{_datadir}/%{name}/extras/dbmigrate
96ec285f Ohad Levy
%clean
501a98b4 Todd Zullinger
rm -rf %{buildroot}
96ec285f Ohad Levy
%files
%defattr(-,root,root,0755)
b495586d Ohad Levy
%doc README
501a98b4 Todd Zullinger
%{_datadir}/%{name}
%{_initrddir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}
b495586d Ohad Levy
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
501a98b4 Todd Zullinger
%attr(-,%{name},%{name}) %{_localstatedir}/lib/%{name}
%attr(-,%{name},%{name}) %{_localstatedir}/log/%{name}
%attr(-,%{name},%{name}) %{_localstatedir}/run/%{name}
96ec285f Ohad Levy
%pre
# Add the "foreman" user and group
501a98b4 Todd Zullinger
getent group %{name} >/dev/null || groupadd -r %{name}
getent passwd %{name} >/dev/null || \
useradd -r -g %{name} -G puppet -d %{homedir} -s /sbin/nologin -c "Foreman" %{name}
exit 0
b495586d Ohad Levy
%post
501a98b4 Todd Zullinger
/sbin/chkconfig --add %{name} || ::
b495586d Ohad Levy
501a98b4 Todd Zullinger
# initialize/migrate the database (defaults to SQLITE3)
su - foreman -s /bin/bash -c %{_datadir}/%{name}/extras/dbmigrate >/dev/null 2>&1 || :
96ec285f Ohad Levy
501a98b4 Todd Zullinger
%preun
if [ $1 -eq 0 ] ; then
/sbin/service %{name} stop >/dev/null 2>&1
/sbin/chkconfig --del %{name} || :
fi

%postun
if [ $1 -ge 1 ] ; then
# Restart the service
/sbin/service %{name} condrestart >/dev/null 2>&1 || :
fi
96ec285f Ohad Levy
%changelog
501a98b4 Todd Zullinger
* Fri Apr 30 2010 Todd Zullinger <tmz@pobox.com> - 0.1.4-4
- Rework %%install for better FHS compliance
- Misc. adjustments to match Fedora/EPEL packaging guidelines
- Update License field to GPLv3+ to match README
- Use foreman as the primary group for the foreman user instead of puppet
- This breaks compatibility with previous RPM, as directories can't be replaced with links easily.

2594d4f0 Ohad Levy
* Thu Apr 19 2010 Ohad Levy <ohadlevy@gmail.com> - 0.1-4-3
- added status to startup script
- removed puppet module from the RPM
501a98b4 Todd Zullinger
* Thu Apr 12 2010 Ohad Levy <ohadlevy@gmail.com> - 0.1.4-2
b495586d Ohad Levy
- Added startup script for built in webrick server
- Changed foreman user default shell to /sbin/nologin and is now part of the puppet group
- defaults to sqlite database
501a98b4 Todd Zullinger
* Thu Apr 6 2010 Ohad Levy <ohadlevy@gmail.com> - 0.1.4-1
96ec285f Ohad Levy
- Initial release.