]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Conditional build: | |
3 | %bcond_with tests # test target | |
4 | ||
5 | Summary: A module to bridge Ruby on Rails to Apache | |
6 | Summary(pl.UTF-8): Moduł służący za bramkę Ruby on Rails do Apache'a | |
7 | Name: passenger | |
8 | Version: 6.0.20 | |
9 | Release: 0.1 | |
10 | # Passenger code uses MIT license. | |
11 | # Bundled(Boost) uses Boost Software License | |
12 | # BCrypt and Blowfish files use BSD license. | |
13 | # Documentation is CC-BY-SA | |
14 | # See: https://bugzilla.redhat.com/show_bug.cgi?id=470696#c146 | |
15 | License: Boost and BSD and BSD with advertising and MIT and zlib | |
16 | Group: Networking/Daemons/HTTP | |
17 | Source0: https://github.com/phusion/passenger/archive/release-%{version}.tar.gz | |
18 | # Source0-md5: 1f94d1264e6fdbe5a202472454e00d88 | |
19 | Source1: apache-mod_%{name}.conf | |
20 | Patch0: alias+public.patch | |
21 | Patch1: no-bundler.patch | |
22 | URL: https://www.phusionpassenger.com/ | |
23 | BuildRequires: apache-devel >= 2.0.55-1 | |
24 | BuildRequires: apache-tools | |
25 | BuildRequires: apr-devel >= 1:1.0.0 | |
26 | BuildRequires: apr-util-devel >= 1:1.0.0 | |
27 | #BuildRequires: asciidoc | |
28 | BuildRequires: curl-devel | |
29 | BuildRequires: libev-devel >= 4.11 | |
30 | BuildRequires: libstdc++-devel | |
31 | BuildRequires: libuv-devel >= 1.4.2 | |
32 | BuildRequires: openssl-devel | |
33 | BuildRequires: rpm-pythonprov | |
34 | BuildRequires: rpmbuild(macros) >= 1.559 | |
35 | BuildRequires: ruby-devel | |
36 | BuildRequires: ruby-rake >= 0.8.0 | |
37 | BuildRequires: ruby-rdoc | |
38 | BuildRequires: sed >= 4.0 | |
39 | BuildRequires: zlib-devel | |
40 | %if %(locale -a | grep -q '^en_US$'; echo $?) | |
41 | BuildRequires: glibc-localedb-all | |
42 | %endif | |
43 | Obsoletes: apache-mod_rails-rdoc | |
44 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
45 | ||
46 | %define apxs /usr/sbin/apxs | |
47 | %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null) | |
48 | %define _sysconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d | |
49 | ||
50 | %description | |
51 | Phusion Passenger - a.k.a. mod_passenger - makes deployment of | |
52 | applications built on the revolutionary Ruby on Rails web framework a | |
53 | breeze. It follows the usual Ruby on Rails conventions, such as | |
54 | "Don't-Repeat-Yourself". | |
55 | ||
56 | %description -l pl.UTF-8 | |
57 | Phusion Passenger (inaczej mod_passenger) ułatwia wdrażanie aplikacji | |
58 | zbudowanych w oparciu o rewolucyjny szkielet WWW Ruby on Rails. Jest | |
59 | zgodny ze zwyczajowymi konwencjami Ruby on Rails, takimi jak "nie | |
60 | powtarzaj się". | |
61 | ||
62 | %package -n apache-mod_passenger | |
63 | Summary: Apache Module for Phusion Passenger | |
64 | Summary(pl.UTF-8): Moduł Apache'a dla Phusion Passengera | |
65 | License: Boost and BSD and BSD with advertising and MIT and zlib | |
66 | Group: Daemons | |
67 | Requires: %{name} = %{version}-%{release} | |
68 | Requires: apache(modules-api) = %apache_modules_api | |
69 | Requires: ruby-bundler | |
70 | Provides: apache(mod_passenger) | |
71 | Provides: apache(mod_rails) | |
72 | Obsoletes: apache-mod_rails < 4.0 | |
73 | ||
74 | %description -n apache-mod_passenger | |
75 | This package contains the pluggable Apache server module for Phusion | |
76 | Passenger. | |
77 | ||
78 | %description -n apache-mod_passenger -l pl.UTF-8 | |
79 | Ten pakiet zawiera ładowalny moduł serwera Apache dla Phusion | |
80 | Passengera. | |
81 | ||
82 | %package -n ruby-passenger-ri | |
83 | Summary: ri documentation for Phusion Passenger | |
84 | Summary(pl.UTF-8): Dokumentacja w formacie ri dla Phusion Passengera | |
85 | Group: Documentation | |
86 | Requires: ruby | |
87 | Obsoletes: apache-mod_rails-ri < 4.0 | |
88 | ||
89 | %description -n ruby-passenger-ri | |
90 | ri documentation for Phusion Passenger. | |
91 | ||
92 | %description -n ruby-passenger-ri -l pl.UTF-8 | |
93 | Dokumentacji w formacie ri dla Phusion Passengera. | |
94 | ||
95 | %prep | |
96 | %setup -q -n %{name}-release-%{version} | |
97 | #%patch0 -p1 | |
98 | %patch1 -p1 | |
99 | ||
100 | %{__sed} -i -e 's|#!/usr/bin/env python|#!%{_bindir}/python3|' src/helper-scripts/*.py | |
101 | %{__sed} -i -e 's|#!/usr/bin/env ruby|#!%{_bindir}/ruby|' src/helper-scripts/{prespawn,download_binaries/extconf.rb,*.rb} bin/* | |
102 | ||
103 | # Don't use bundled libs | |
104 | %{__rm} -r src/cxx_supportlib/vendor-modified/libev | |
105 | %{__rm} -r src/cxx_supportlib/vendor-copy/libuv | |
106 | ||
107 | %build | |
108 | export USE_VENDORED_LIBEV=no | |
109 | export USE_VENDORED_LIBUV=no | |
110 | export CC="%{__cc}" | |
111 | export CXX="%{__cxx}" | |
112 | export CFLAGS="%{rpmcflags} -fno-strict-aliasing" | |
113 | export CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing" | |
114 | export EXTRA_CFLAGS="%{rpmcflags} -fno-strict-aliasing" | |
115 | export EXTRA_CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing" | |
116 | export EXTRA_PRE_LDFLAGS="%{rpmldflags}" | |
117 | ||
118 | export APACHECTL=%{_sbindir}/apachectl | |
119 | export HTTPD_VERSION=$(rpm -q apache-devel --qf '%{V}') | |
120 | export HTTPD=%{_sbindir}/httpd | |
121 | export APXS2=%{apxs} | |
122 | ||
123 | rake apache2 V=1 \ | |
124 | NATIVE_PACKAGING_METHOD=rpm \ | |
125 | FS_PREFIX=%{_prefix} \ | |
126 | FS_BINDIR=%{_bindir} \ | |
127 | FS_SBINDIR=%{_sbindir} \ | |
128 | FS_DATADIR=%{_datadir} \ | |
129 | FS_LIBDIR=%{_libdir} \ | |
130 | RUBYLIBDIR=%{ruby_vendorlibdir} \ | |
131 | RUBYARCHDIR=%{_libdir}/%{name} \ | |
132 | APACHE2_MODULE_PATH=%{_libdir}/apache/mod_passenger.so | |
133 | RELEASE=yes \ | |
134 | OPTIMIZE=yes | |
135 | ||
136 | %if %{with tests} | |
137 | # Run the tests, capture the output, but don't fail the build if the tests fail | |
138 | # | |
139 | # This will make the test failure non-critical, but it should be examined | |
140 | # anyway. | |
141 | %{__sed} -i 's|sh "cd test && \./cxx/CxxTestMain"|& rescue true|' build/cxx_tests.rb | |
142 | ||
143 | # adjust for rspec 2 while the test suite seems to require RSpec 1. | |
144 | %{__sed} -i \ | |
145 | "s|return locate_ruby_tool('spec')|return locate_ruby_tool('rspec')|" \ | |
146 | lib/phusion_passenger/platform_info/ruby.rb | |
147 | ||
148 | rake test --trace | |
149 | %endif | |
150 | ||
151 | # UTF8 locale needed for doc generation | |
152 | LC_ALL=en_US.UTF-8 \ | |
153 | rdoc --ri --op ri lib ext/ruby | |
154 | %{__rm} -r ri/{GC,IO,Object,Signal,CommonLibraryBuilder,Exception} | |
155 | %{__rm} ri/{cache.ri,created.rid} | |
156 | ||
157 | %install | |
158 | rm -rf $RPM_BUILD_ROOT | |
159 | install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_mandir}/man{1,8}} \ | |
160 | $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir},%{ruby_ridir}/PhusionPassenger} \ | |
161 | $RPM_BUILD_ROOT%{_bindir} \ | |
162 | $RPM_BUILD_ROOT%{_libdir}/phusion-passenger/agents/apache2 \ | |
163 | $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/{node_lib,helper-scripts} | |
164 | ||
165 | install -p buildout/apache2/mod_passenger.so $RPM_BUILD_ROOT%{_pkglibdir} | |
166 | cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/75_mod_passenger.conf | |
167 | ||
168 | install -p buildout/ruby/ruby-*/passenger_native_support.so $RPM_BUILD_ROOT%{ruby_vendorarchdir} | |
169 | cp -a src/ruby_supportlib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir} | |
170 | ||
171 | install -p bin/passenger-{config,memory-stats,status} bin/passenger $RPM_BUILD_ROOT%{_bindir} | |
172 | #install -p buildout/agents/{PassengerLoggingAgent,PassengerWatchdog,PassengerHelperAgent,SpawnPreparer,TempDirToucher} $RPM_BUILD_ROOT%{_libdir}/phusion-passenger/agents | |
173 | cp -a src/helper-scripts/* $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/helper-scripts | |
174 | cp -a resources $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/ | |
175 | # does that make any sense? | |
176 | cp -a src/nodejs_supportlib/phusion_passenger/*.js $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/node_lib | |
177 | ||
178 | cp -p man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 | |
179 | cp -p man/*.8 $RPM_BUILD_ROOT%{_mandir}/man8 | |
180 | cp -a ri/* $RPM_BUILD_ROOT%{ruby_ridir}/PhusionPassenger | |
181 | ||
182 | %clean | |
183 | rm -rf $RPM_BUILD_ROOT | |
184 | ||
185 | %post -n apache-mod_passenger | |
186 | %service -q httpd restart | |
187 | ||
188 | %postun -n apache-mod_passenger | |
189 | if [ "$1" = "0" ]; then | |
190 | %service -q httpd restart | |
191 | fi | |
192 | ||
193 | %files | |
194 | %defattr(644,root,root,755) | |
195 | %doc README.md INSTALL.md | |
196 | %attr(755,root,root) %{_bindir}/passenger | |
197 | %attr(755,root,root) %{_bindir}/passenger-config | |
198 | %attr(755,root,root) %{_bindir}/passenger-memory-stats | |
199 | %attr(755,root,root) %{_bindir}/passenger-status | |
200 | %{_mandir}/man1/passenger-config.1* | |
201 | %{_mandir}/man8/passenger-memory-stats.8* | |
202 | %{_mandir}/man8/passenger-status.8* | |
203 | %attr(755,root,root) %{ruby_vendorarchdir}/passenger_native_support.so | |
204 | %{ruby_vendorlibdir}/phusion_passenger.rb | |
205 | %{ruby_vendorlibdir}/phusion_passenger | |
206 | ||
207 | %dir %{_libdir}/phusion-passenger | |
208 | %dir %{_libdir}/phusion-passenger/agents | |
209 | #%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerHelperAgent | |
210 | #%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerLoggingAgent | |
211 | #%attr(755,root,root) %{_libdir}/phusion-passenger/agents/PassengerWatchdog | |
212 | #%attr(755,root,root) %{_libdir}/phusion-passenger/agents/SpawnPreparer | |
213 | #%attr(755,root,root) %{_libdir}/phusion-passenger/agents/TempDirToucher | |
214 | %dir %{_datadir}/phusion-passenger | |
215 | %dir %{_datadir}/phusion-passenger/helper-scripts | |
216 | %attr(755,root,root) %{_datadir}/phusion-passenger/helper-scripts/* | |
217 | %{_datadir}/phusion-passenger/resources | |
218 | %{_datadir}/phusion-passenger/node_lib | |
219 | ||
220 | %files -n apache-mod_passenger | |
221 | %defattr(644,root,root,755) | |
222 | %defattr(644,root,root,755) | |
223 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_passenger.conf | |
224 | %attr(755,root,root) %{_pkglibdir}/mod_passenger.so | |
225 | ||
226 | %files -n ruby-passenger-ri | |
227 | %defattr(644,root,root,755) | |
228 | %{ruby_ridir}/PhusionPassenger |