]> git.pld-linux.org Git - packages/passenger.git/blame_incremental - passenger.spec
Started update to 6.0.20 (builds)
[packages/passenger.git] / passenger.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_with tests # test target
4
5Summary: A module to bridge Ruby on Rails to Apache
6Summary(pl.UTF-8): Moduł służący za bramkę Ruby on Rails do Apache'a
7Name: passenger
8Version: 6.0.20
9Release: 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
15License: Boost and BSD and BSD with advertising and MIT and zlib
16Group: Networking/Daemons/HTTP
17Source0: https://github.com/phusion/passenger/archive/release-%{version}.tar.gz
18# Source0-md5: 1f94d1264e6fdbe5a202472454e00d88
19Source1: apache-mod_%{name}.conf
20Patch0: alias+public.patch
21Patch1: no-bundler.patch
22URL: https://www.phusionpassenger.com/
23BuildRequires: apache-devel >= 2.0.55-1
24BuildRequires: apache-tools
25BuildRequires: apr-devel >= 1:1.0.0
26BuildRequires: apr-util-devel >= 1:1.0.0
27#BuildRequires: asciidoc
28BuildRequires: curl-devel
29BuildRequires: libev-devel >= 4.11
30BuildRequires: libstdc++-devel
31BuildRequires: libuv-devel >= 1.4.2
32BuildRequires: openssl-devel
33BuildRequires: rpm-pythonprov
34BuildRequires: rpmbuild(macros) >= 1.559
35BuildRequires: ruby-devel
36BuildRequires: ruby-rake >= 0.8.0
37BuildRequires: ruby-rdoc
38BuildRequires: sed >= 4.0
39BuildRequires: zlib-devel
40%if %(locale -a | grep -q '^en_US$'; echo $?)
41BuildRequires: glibc-localedb-all
42%endif
43Obsoletes: apache-mod_rails-rdoc
44BuildRoot: %{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
51Phusion Passenger - a.k.a. mod_passenger - makes deployment of
52applications built on the revolutionary Ruby on Rails web framework a
53breeze. It follows the usual Ruby on Rails conventions, such as
54"Don't-Repeat-Yourself".
55
56%description -l pl.UTF-8
57Phusion Passenger (inaczej mod_passenger) ułatwia wdrażanie aplikacji
58zbudowanych w oparciu o rewolucyjny szkielet WWW Ruby on Rails. Jest
59zgodny ze zwyczajowymi konwencjami Ruby on Rails, takimi jak "nie
60powtarzaj się".
61
62%package -n apache-mod_passenger
63Summary: Apache Module for Phusion Passenger
64Summary(pl.UTF-8): Moduł Apache'a dla Phusion Passengera
65License: Boost and BSD and BSD with advertising and MIT and zlib
66Group: Daemons
67Requires: %{name} = %{version}-%{release}
68Requires: apache(modules-api) = %apache_modules_api
69Requires: ruby-bundler
70Provides: apache(mod_passenger)
71Provides: apache(mod_rails)
72Obsoletes: apache-mod_rails < 4.0
73
74%description -n apache-mod_passenger
75This package contains the pluggable Apache server module for Phusion
76Passenger.
77
78%description -n apache-mod_passenger -l pl.UTF-8
79Ten pakiet zawiera ładowalny moduł serwera Apache dla Phusion
80Passengera.
81
82%package -n ruby-passenger-ri
83Summary: ri documentation for Phusion Passenger
84Summary(pl.UTF-8): Dokumentacja w formacie ri dla Phusion Passengera
85Group: Documentation
86Requires: ruby
87Obsoletes: apache-mod_rails-ri < 4.0
88
89%description -n ruby-passenger-ri
90ri documentation for Phusion Passenger.
91
92%description -n ruby-passenger-ri -l pl.UTF-8
93Dokumentacji 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
108export USE_VENDORED_LIBEV=no
109export USE_VENDORED_LIBUV=no
110export CC="%{__cc}"
111export CXX="%{__cxx}"
112export CFLAGS="%{rpmcflags} -fno-strict-aliasing"
113export CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing"
114export EXTRA_CFLAGS="%{rpmcflags} -fno-strict-aliasing"
115export EXTRA_CXXFLAGS="%{rpmcxxflags} -fno-strict-aliasing"
116export EXTRA_PRE_LDFLAGS="%{rpmldflags}"
117
118export APACHECTL=%{_sbindir}/apachectl
119export HTTPD_VERSION=$(rpm -q apache-devel --qf '%{V}')
120export HTTPD=%{_sbindir}/httpd
121export APXS2=%{apxs}
122
123rake 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
148rake test --trace
149%endif
150
151# UTF8 locale needed for doc generation
152LC_ALL=en_US.UTF-8 \
153rdoc --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
158rm -rf $RPM_BUILD_ROOT
159install -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
165install -p buildout/apache2/mod_passenger.so $RPM_BUILD_ROOT%{_pkglibdir}
166cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/75_mod_passenger.conf
167
168install -p buildout/ruby/ruby-*/passenger_native_support.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
169cp -a src/ruby_supportlib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
170
171install -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
173cp -a src/helper-scripts/* $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/helper-scripts
174cp -a resources $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/
175# does that make any sense?
176cp -a src/nodejs_supportlib/phusion_passenger/*.js $RPM_BUILD_ROOT%{_datadir}/phusion-passenger/node_lib
177
178cp -p man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
179cp -p man/*.8 $RPM_BUILD_ROOT%{_mandir}/man8
180cp -a ri/* $RPM_BUILD_ROOT%{ruby_ridir}/PhusionPassenger
181
182%clean
183rm -rf $RPM_BUILD_ROOT
184
185%post -n apache-mod_passenger
186%service -q httpd restart
187
188%postun -n apache-mod_passenger
189if [ "$1" = "0" ]; then
190 %service -q httpd restart
191fi
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
This page took 0.125657 seconds and 5 git commands to generate.