]> git.pld-linux.org Git - packages/passenger.git/blame - passenger.spec
- disble duplicate bundler run (rails does it on package creation)
[packages/passenger.git] / passenger.spec
CommitLineData
06811060
ER
1# Conditional build:
2%bcond_with tests # build without tests
3
a6dd913b 4Summary: A module to bridge Ruby on Rails to Apache
c9e1f73a 5Name: passenger
d9c4c0a1 6Version: 4.0.50
20667242 7Release: 2
cf570175
ER
8# Passenger code uses MIT license.
9# Bundled(Boost) uses Boost Software License
10# BCrypt and Blowfish files use BSD license.
11# Documentation is CC-BY-SA
12# See: https://bugzilla.redhat.com/show_bug.cgi?id=470696#c146
13License: Boost and BSD and BSD with advertising and MIT and zlib
c3715c90 14Group: Networking/Daemons/HTTP
0b769d0f 15Source0: https://github.com/phusion/passenger/archive/release-%{version}.tar.gz
d9c4c0a1 16# Source0-md5: 69c6ade41d870782ae12c3f49d79ce20
c9e1f73a 17Source1: apache-mod_%{name}.conf
8f90c771
JR
18Patch0: alias+public.patch
19Patch1: dirs.patch
20667242 20Patch2: no-bundler.patch
0b769d0f 21URL: https://www.phusionpassenger.com/
a6dd913b 22BuildRequires: apache-devel >= 2.0.55-1
2be03977 23BuildRequires: apache-tools
26446e83 24BuildRequires: apr-devel >= 1:1.0.0
a6dd913b 25BuildRequires: apr-util-devel >= 1:1.0.0
4e15a504 26#BuildRequires: asciidoc
681e9caf 27BuildRequires: curl-devel
2b222840 28BuildRequires: libev-devel
76045959 29BuildRequires: libstdc++-devel
26446e83 30BuildRequires: openssl-devel
76045959 31BuildRequires: rpm-pythonprov
fe9ba373 32BuildRequires: rpmbuild(macros) >= 1.559
a6dd913b 33BuildRequires: ruby-devel
50225bc6 34BuildRequires: ruby-rake >= 0.8.0
2423fa08 35BuildRequires: ruby-rdoc
6cb57b65 36BuildRequires: sed >= 4.0
26446e83 37BuildRequires: zlib-devel
bc478f28
ER
38%if %(locale -a | grep -q '^en_US$'; echo $?)
39BuildRequires: glibc-localedb-all
40%endif
4e15a504 41Obsoletes: apache-mod_rails-rdoc
a6dd913b 42BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
d25d580b 44%define apxs /usr/sbin/apxs
d833e7f5
ER
45%define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
46%define _sysconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
47
a6dd913b 48%description
bc478f28 49Phusion Passenger - a.k.a. mod_passenger - makes deployment of
a6dd913b 50applications built on the revolutionary Ruby on Rails web framework a
51breeze. It follows the usual Ruby on Rails conventions, such as
c9e1f73a 52"Don't-Repeat-Yourself".
a6dd913b 53
bc478f28
ER
54%package -n apache-mod_passenger
55Summary: Apache Module for Phusion Passenger
56License: Boost and BSD and BSD with advertising and MIT and zlib
57Group: Daemons
58Requires: %{name} = %{version}-%{release}
59Requires: apache(modules-api) = %apache_modules_api
20667242 60Requires: ruby-bundler
bc478f28 61Provides: apache(mod_passenger)
8f90c771 62Provides: apache(mod_rails)
bc478f28
ER
63Obsoletes: apache-mod_rails < 4.0
64
65%description -n apache-mod_passenger
66This package contains the pluggable Apache server module for Phusion
67Passenger(tm).
68
69%package -n ruby-passenger-ri
70Summary: ri documentation for Phusion Passenger
71Summary(pl.UTF-8): Dokumentacja w formacie ri dla Phusion Passenger
2a03dcd6
JR
72Group: Documentation
73Requires: ruby
bc478f28 74Obsoletes: apache-mod_rails-ri < 4.0
2a03dcd6 75
bc478f28
ER
76%description -n ruby-passenger-ri
77ri documentation for Phusion Passenger
2a03dcd6 78
bc478f28
ER
79%description -n ruby-passenger-ri -l pl.UTF-8
80Dokumentacji w formacie ri dla Phusion Passenger
2a03dcd6 81
a6dd913b 82%prep
c9e1f73a 83%setup -q -n %{name}-release-%{version}
bc478f28 84#%patch0 -p1
8f90c771 85%patch1 -p1
20667242 86%patch2 -p1
8f90c771
JR
87
88__rubydir=$(echo %{ruby_vendorlibdir} | %{__sed} -e 's|/usr||')
89
90%{__sed} -i -e "s|@@LIB@@|%{_lib}|g" \
91 -e "s|@@RUBYLIBDIR@@|$__rubydir|g" ext/common/ResourceLocator.h
2a03dcd6 92
bc478f28
ER
93%{__sed} -i -e 's|#!/usr/bin/env python|#!%{_bindir}/python|' helper-scripts/*.py
94%{__sed} -i -e 's|#!/usr/bin/env ruby|#!%{_bindir}/ruby|' helper-scripts/{prespawn,download_binaries/extconf.rb,*.rb} bin/*
06811060 95
2b222840
ER
96# Don't use bundled libev
97rm -r ext/libev
98
a6dd913b 99%build
06811060
ER
100export USE_VENDORED_LIBEV=false
101export CC="%{__cc}"
102export CXX="%{__cxx}"
e0e226e5
JR
103export CFLAGS="%{rpmcflags} -fno-strict-aliasing"
104export CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing"
105export EXTRA_CFLAGS="%{rpmcflags} -fno-strict-aliasing"
106export EXTRA_CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing"
bc478f28 107
06811060 108export APACHECTL=%{_sbindir}/apachectl
8749d44c 109export HTTPD_VERSION=$(rpm -q apache-devel --qf '%{V}')
c89bf01e
JR
110export HTTPD=%{_sbindir}/httpd
111export APXS2=%{apxs}
06811060 112
d211a771 113rake apache2 V=1 \
26446e83 114 RELEASE=yes \
c89bf01e 115 OPTIMIZE=yes
06811060
ER
116
117%if %{with tests}
118# Run the tests, capture the output, but don't fail the build if the tests fail
119#
120# This will make the test failure non-critical, but it should be examined
121# anyway.
122sed -i 's|sh "cd test && \./cxx/CxxTestMain"|& rescue true|' build/cxx_tests.rb
123
124# adjust for rspec 2 while the test suite seems to require RSpec 1.
125sed -i \
126 "s|return locate_ruby_tool('spec')|return locate_ruby_tool('rspec')|" \
127 lib/phusion_passenger/platform_info/ruby.rb
128
129rake test --trace
130%endif
2a03dcd6 131
bc478f28
ER
132# UTF8 locale needed for doc generation
133LC_ALL=en_US.UTF-8 \
26446e83 134rdoc --ri --op ri lib ext/ruby
2be03977 135%{__rm} -r ri/{GC,IO,Object,Signal,CommonLibraryBuilder,Exception,DaemonController}
26446e83 136%{__rm} ri/{cache.ri,created.rid}
a6dd913b 137
138%install
139rm -rf $RPM_BUILD_ROOT
d833e7f5 140install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_mandir}/man{1,8}} \
d25d580b 141 $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir},%{ruby_ridir}} \
681e9caf 142 $RPM_BUILD_ROOT%{_bindir} \
681e9caf 143 $RPM_BUILD_ROOT%{_libdir}/phusion-passenger/agents/apache2 \
144 $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/helper-scripts
a6dd913b 145
bc478f28
ER
146install -p buildout/apache2/mod_passenger.so $RPM_BUILD_ROOT%{_pkglibdir}
147cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/75_mod_passenger.conf
148
149install -p buildout/ruby/ruby-*/passenger_native_support.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
d25d580b 150cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
bc478f28
ER
151
152install -p bin/passenger-{config,memory-stats,status} bin/passenger $RPM_BUILD_ROOT%{_bindir}
8f90c771 153install -p buildout/agents/{PassengerLoggingAgent,PassengerWatchdog,PassengerHelperAgent,SpawnPreparer,TempDirToucher} $RPM_BUILD_ROOT%{_libdir}/phusion-passenger/agents
bc478f28 154cp -a helper-scripts/* $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/helper-scripts
8f90c771 155cp -a resources node_lib $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/
bc478f28 156
d833e7f5
ER
157cp -p man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
158cp -p man/*.8 $RPM_BUILD_ROOT%{_mandir}/man8
2a03dcd6 159cp -a ri/* $RPM_BUILD_ROOT%{ruby_ridir}
e73e14e7 160
a6dd913b 161%clean
162rm -rf $RPM_BUILD_ROOT
163
bc478f28 164%post -n apache-mod_passenger
a6dd913b 165%service -q httpd restart
166
bc478f28 167%postun -n apache-mod_passenger
a6dd913b 168if [ "$1" = "0" ]; then
169 %service -q httpd restart
170fi
171
172%files
173%defattr(644,root,root,755)
bc478f28 174%doc README.md INSTALL.md
e73e14e7 175%attr(755,root,root) %{_bindir}/passenger
d833e7f5
ER
176%attr(755,root,root) %{_bindir}/passenger-config
177%attr(755,root,root) %{_bindir}/passenger-memory-stats
178%attr(755,root,root) %{_bindir}/passenger-status
d25d580b 179%{_mandir}/man1/passenger-config.1*
d25d580b
ER
180%{_mandir}/man8/passenger-memory-stats.8*
181%{_mandir}/man8/passenger-status.8*
182
183%attr(755,root,root) %{ruby_vendorarchdir}/passenger_native_support.so
184%{ruby_vendorlibdir}/phusion_passenger.rb
185%{ruby_vendorlibdir}/phusion_passenger
186
681e9caf 187%dir %{_libdir}/phusion-passenger
188%dir %{_libdir}/phusion-passenger/agents
bc478f28 189%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerHelperAgent
d833e7f5
ER
190%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerLoggingAgent
191%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerWatchdog
8f90c771
JR
192%attr(755,root,root) %{_libdir}/phusion-passenger/agents/SpawnPreparer
193%attr(755,root,root) %{_libdir}/phusion-passenger/agents/TempDirToucher
681e9caf 194%dir %{_datadir}/phusion-passenger
195%dir %{_datadir}/phusion-passenger/helper-scripts
196%attr(755,root,root) %{_datadir}/phusion-passenger/helper-scripts/*
8f90c771
JR
197%{_datadir}/phusion-passenger/resources
198%{_datadir}/phusion-passenger/node_lib
2a03dcd6 199
bc478f28
ER
200%files -n apache-mod_passenger
201%defattr(644,root,root,755)
202%doc doc/Users?guide?Apache.txt
203%defattr(644,root,root,755)
204%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_passenger.conf
205%attr(755,root,root) %{_pkglibdir}/mod_passenger.so
206
207%files -n ruby-passenger-ri
2a03dcd6
JR
208%defattr(644,root,root,755)
209%{ruby_ridir}/PhusionPassenger
This page took 0.170329 seconds and 4 git commands to generate.