%global htmldir %{_localstatedir}/www/html
%global brokerdir %{_localstatedir}/www/stickshift/broker
%global appdir %{_localstatedir}/lib/stickshift
Summary: OpenShift Origin broker components
Name: openshift-origin-broker
Version: 0.6.7
Release: 4%{?dist}
License: ASL 2.0
URL: http://openshift.redhat.com
Source0: http://mirror.openshift.com/pub/openshift-origin/source/%{name}/%{name}-%{version}.tar.gz
# Example blank favicon - upstream currently does not ship one
Source1: favicon
#Patch1: %{name}-0.6.7-passenger-ridealong-switch.patch
Requires: httpd
Requires: mod_ssl
Requires: oddjob
Requires: mod_ridealong
Requires: mongodb-server
Requires: rubygem(rails)
Requires: rubygem(rack)
Requires: rubygem(open4)
Requires: rubygem(xml-simple)
Requires: rubygem(bson_ext)
Requires: rubygem(rest-client)
Requires: rubygem(parseconfig)
Requires: rubygem(json)
Requires: rubygem(multimap)
Requires: rubygem(openshift-origin-controller)
Requires: rubygem(passenger)
Requires: rubygem(passenger-native)
Requires: selinux-policy-targeted
Requires: policycoreutils-python
BuildArch: noarch
%description
This contains the broker 'controlling' components of OpenShift.
This includes the public APIs for the client tools.
%prep
%setup -q
#%patch1 -p1 -b .switch
%build
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_initddir}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{htmldir}
mkdir -p %{buildroot}%{brokerdir}
mkdir -p %{buildroot}%{brokerdir}/httpd/root
mkdir -p %{buildroot}%{brokerdir}/httpd/run
mkdir -p %{buildroot}%{brokerdir}/httpd/logs
mkdir -p %{buildroot}%{brokerdir}/httpd/conf
mkdir -p %{buildroot}%{brokerdir}/log
mkdir -p %{buildroot}%{brokerdir}/run
mkdir -p %{buildroot}%{brokerdir}/tmp/cache
mkdir -p %{buildroot}%{brokerdir}/tmp/pids
mkdir -p %{buildroot}%{brokerdir}/tmp/sessions
mkdir -p %{buildroot}%{brokerdir}/tmp/sockets
mkdir -p %{buildroot}%{appdir}
mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d/stickshift
mkdir -p %{buildroot}%{_sysconfdir}/oddjobd.conf.d
mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_var}/lib/stickshift
mkdir -p %{buildroot}/usr/share/selinux/packages/%{name}
cp -r . %{buildroot}%{brokerdir}
mv %{buildroot}%{brokerdir}/init.d/* %{buildroot}%{_initddir}
ln -s %{brokerdir}/public %{buildroot}%{htmldir}/broker
ln -s %{brokerdir}/public %{buildroot}%{brokerdir}/httpd/root/broker
ln -sf /usr/lib64/httpd/modules %{buildroot}%{brokerdir}/httpd/modules
ln -sf /etc/httpd/conf/magic %{buildroot}%{brokerdir}/httpd/conf/magic
mv %{buildroot}%{brokerdir}/httpd/000000_stickshift_proxy.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/
cp %{buildroot}%{brokerdir}/doc/selinux/stickshift-broker.te %{buildroot}/usr/share/selinux/packages/%{name}/
# Clean up stuff
mv -f %{buildroot}%{_initddir}/stickshift-broker %{buildroot}%{_initddir}/%{name}
rm -f %{buildroot}%{brokerdir}/.gitignore
chmod 644 %{buildroot}%{brokerdir}/Gemfile
cp %{SOURCE1} %{buildroot}%{brokerdir}/public/favicon.ico
%post
chkconfig %{name} on
#selinux updated
systemctl --system daemon-reload
pushd /usr/share/selinux/packages/stickshift-broker
make -f /usr/share/selinux/devel/Makefile
popd
semanage -i - <<_EOF
boolean -m --on httpd_can_network_connect
boolean -m --on httpd_can_network_relay
boolean -m --on httpd_read_user_content
boolean -m --on httpd_enable_homedirs
fcontext -a -t httpd_var_run_t '%{brokerdir}/httpd/run(/.*)?'
fcontext -a -t httpd_tmp_t '%{brokerdir}/tmp(/.*)?'
fcontext -a -t httpd_log_t '%{brokerdir}/httpd/logs(/.*)?'
fcontext -a -t httpd_log_t '%{brokerdir}/log(/.*)?'
_EOF
semodule -i /usr/share/selinux/packages/stickshift-broker/stickshift-broker.pp -d passenger -i /usr/share/selinux/packages/rubygem-passenger/rubygem-passenger.pp
/sbin/restorecon -R -v %{brokerdir}/httpd
/sbin/restorecon -R -v %{brokerdir}/log
/sbin/restorecon -R -v /var/run
%preun
if [ "$1" = 0 ] ; then
service %{name} stop > /dev/null 2>&1
chkconfig %{name} off || :
fi
%postun
/usr/sbin/semodule -e passenger -r stickshift-broker
/sbin/fixfiles -R rubygem-passenger restore
/sbin/fixfiles -R mod_passenger restore
/sbin/restorecon -R -v /var/run
%files
%doc LICENSE COPYRIGHT
%{_initddir}/%{name}
/usr/share/selinux/packages/%{name}/
%{_var}/lib/stickshift
%config(noreplace) %{brokerdir}/config/environments/production.rb
%config(noreplace) %{brokerdir}/config/environments/development.rb
%config(noreplace) %{_sysconfdir}/httpd/conf.d/000000_stickshift_proxy.conf
%attr(0644,-,-) %{brokerdir}/config/environments/production.rb
%attr(0644,-,-) %{brokerdir}/config/environments/development.rb
%attr(0644,-,-) %{_sysconfdir}/httpd/conf.d/000000_stickshift_proxy.conf
%defattr(-,apache,apache,-)
%{brokerdir}
%{htmldir}/broker
%attr(0664,-,-) %ghost %{brokerdir}/log/production.log
%attr(0664,-,-) %ghost %{brokerdir}/log/development.log
%attr(0664,-,-) %ghost %{brokerdir}/httpd/logs/error_log
%attr(0664,-,-) %ghost %{brokerdir}/httpd/logs/access_log
%changelog
* Tue Aug 07 2012 Adam Miller - 0.6.7-4
- changed permissions and ownership for config files
- added note about blank favicon
* Wed Aug 01 2012 Troy Dawson 0.6.7-3
- Renamed to openshift-origin-broker
- Changed logs to ghost setting
- Replace ridealong with passenger
* Mon Jul 23 2012 Troy Dawson 0.6.7-2
- Fixup for Fedora
- Replace passenger with ridealong
* Wed May 30 2012 Krishna Raman 0.6.7-1
- Fixing /etc/httpd/conf.d/stickshift link to be conpatible with typeless gears
change Fixing context of action log file (kraman@gmail.com)
- Merge pull request #75 from abhgupta/bz817172 (mmcgrath+openshift@redhat.com)
- Fix for bug 817172 - adding gear profile on gear_groups rest call
(abhgupta@redhat.com)
* Wed May 30 2012 Krishna Raman 0.6.6-1
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (dmcphers@redhat.com)
- Merge pull request #66 from abhgupta/agupta-dev (dmcphers@redhat.com)
- Fix for Bugz 825366, 825340. SELinux changes to allow access to
user_action.log file. Logging authentication failures and user creation for
OpenShift Origin (abhgupta@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Merge pull request #46 from rajatchopra/master (kraman@gmail.com)
- Updating gem versions (dmcphers@redhat.com)
- Updating gem versions (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Merge pull request #56 from pravisankar/master (admiller@redhat.com)
- disable mongo unit tests temporarily to avoid build issues
(rpenta@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Fixed mongo data store unit tests (rpenta@redhat.com)
- changing user action log file path (abhgupta@redhat.com)
- changes for logging user actions to a separate log file (abhgupta@redhat.com)
- Updating gem versions (admiller@redhat.com)
- fixup gem versions (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
- code for min_gear setting (rchopra@redhat.com)
- Updating gem versions (dmcphers@redhat.com)
- Updating gem versions (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (admiller@redhat.com)
- more timeout tweaking (dmcphers@redhat.com)
- try a bigger timeout (dmcphers@redhat.com)
- try a bigger timeout (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Merge pull request #40 from kraman/dev/kraman/features/livecd
(admiller@redhat.com)
- Re-include all OpenShift components in rcov run. (rmillner@redhat.com)
- Adding livecd build scripts Adding a text only minimal version of livecd
Added ability to access livecd dns from outside VM (kraman@gmail.com)
- allow syslog output for gear usage (dmcphers@redhat.com)
- proper usage of StickShift::Model and beginnings of usage tracking
(dmcphers@redhat.com)
- Add rcov testing to the Stickshift broker, common and controller.
(rmillner@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Merge pull request #28 from abhgupta/abhgupta-dev2 (dmcphers@redhat.com)
- adding test cases for gear_groups rest api and changing tag from cartridge to
cartridges as it is a list (abhgupta@redhat.com)
- We already validate the gear size elswhere based on the user information.
Remove the hard-coded list of node types. As a side effect; we can't check
invalid gear sizes in unit tests. (rmillner@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Small is the only gear size guaranteed to be accepted by the broker.
(rmillner@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Updating gem versions (admiller@redhat.com)
- BugZ 817170. Add ability to get valid gear size options from the
ApplicationContainerProxy (kraman@gmail.com)
- update gem versions (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
* Wed Apr 25 2012 Krishna Raman 0.6.5-1
- Updating gem versions (admiller@redhat.com)
- fix gem version (dmcphers@redhat.com)
- Modifed SELinux policy to allow connection to DB. (mpatel@redhat.com)
- Merge branch 'master' of github.com:openshift/crankcase (rpenta@redhat.com)
- Fixes + README file for REST api version unit tests (rpenta@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Stickshift broker Unit tests to verify REST api version compatibility
(rpenta@redhat.com)
- Updating gem versions (admiller@redhat.com)
- Fixing stickshift-broker.spec to load rubygem-passenger.pp SELinux policy
(kraman@gmail.com)
- Adding missing initializer to load Mongo datastore (kraman@gmail.com)
- Updating gem versions (admiller@redhat.com)
* Mon Apr 23 2012 Krishna Raman 0.6.4-1
- Updated SELinux policies (kraman@gmail.com)
- Adding pasenger dependencies which provide required selinux policies.
(kraman@gmail.com)
- Updating gem versions (admiller@redhat.com)
- cleaning up spec files (dmcphers@redhat.com)
- Updating gem versions (admiller@redhat.com)
- fix hanging comma (dmcphers@redhat.com)
- move crankcase mongo datastore (dmcphers@redhat.com)
* Sat Apr 21 2012 Krishna Raman 0.6.3-1
- new package built with tito