passenger/passenger.spec
2023-07-05 13:47:53 +08:00

232 lines
8.2 KiB
RPMSpec
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}}
%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
%{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
%{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}}
%{!?ruby_vendorlibdir: %global ruby_vendorlibdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["vendorlibdir"]')}
%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"]')}
%global passenger_ruby_libdir %{ruby_vendorlibdir}
Name:passenger
Summary: Phusion Passenger application server
Version: 6.0.17
Release: 3
License: Boost and BSD and MIT and zlib
URL: https://www.phusionpassenger.com
Source: http://github.com/phusion/passenger/archive/refs/tags/release-6.0.17.tar.gz
Source10: passenger.logrotate
Source11: passenger-selinux.te
Source100: apache-passenger.conf.in
Source101: apache-passenger-module.conf
Source102: passenger.tmpfiles
Requires: rubygems rubygem(rack) rubygem(rake) ruby(release)
BuildRequires: gcc, gcc-c++ httpd-devel ruby ruby-devel rubygems rubygems-devel
BuildRequires: rubygem(rake) >= 0.8.1 rubygem(rack) zlib-devel pcre-devel
BuildRequires: openssl-devel libcurl-devel jsoncpp-devel perl
Provides: bundled(boost) = 1.81.0
Obsoletes: rubygem-passenger < %{version}-%{release}
Provides: rubygem-passenger = %{version}-%{release}
Provides: rubygem-passenger%{?_isa} = %{version}-%{release}
Obsoletes: rubygem-passenger-devel < %{version}-%{release}
Obsoletes: rubygem-passenger-native < %{version}-%{release}
Obsoletes: rubygem-passenger-native-libs < %{version}-%{release}
%description
Phusion Passenger® is a web server and application server, designed to be fast,
robust and lightweight. It takes a lot of complexity out of deploying web apps,
adds powerful enterprise-grade features that are useful in production,
and makes administration much easier and less complex. It supports Ruby,
Python, Node.js and Meteor.
%package -n mod_passenger
Summary: Apache Module for Phusion Passenger
BuildRequires: httpd-devel
Requires: httpd-mmn = %{_httpd_mmn}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n mod_passenger
This package contains the pluggable Apache server module for Phusion Passenger®.
%package devel
Summary: Phusion Passenger development files
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: bundled(boost-devel) = %{bundled_boost_version}
%description devel
This package contains development files for Phusion Passenger®. Installing this
package allows it to compile native extensions for non-standard Ruby interpreters,
and allows Passenger Standalone to use a different Nginx core version.
%package help
Summary: Phusion Passenger documentation
Requires: %{name} = %{version}-%{release}
Obsoletes: rubygem-passenger-doc < %{version}-%{release}
Provides: rubygem-passenger-doc = %{version}-%{release}
Obsoletes: %{name}-doc < %{version}-%{release}
Provides: %{name}-doc = %{version}-%{release}
BuildArch: noarch
%description help
This package contains documentation files for Phusion Passenger®.
%prep
%autosetup -n %{name}-release-%{version}
%build
%ifarch loongarch64 riscv64
%configure || :
%endif
export EXTRA_CFLAGS="${CFLAGS:-%optflags} -Wno-deprecated"
export EXTRA_CXXFLAGS="${CXXFLAGS:-%optflags} -Wno-deprecated"
export EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -fPIE -pie -fPIC"
export EXTRA_CXX_LDFLAGS="${EXTRA_CXX_LDFLAGS} -fPIE -pie -fPIC"
export EXTRA_CFLAGS=`echo "$EXTRA_CFLAGS" | sed 's|-O2||g'`
export EXTRA_CXXFLAGS=`echo "$EXTRA_CXXFLAGS" | sed 's|-O2||g'`
export OPTIMIZE=yes
export CACHING=false
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=3
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
rake -m fakeroot \
NATIVE_PACKAGING_METHOD=rpm \
FS_PREFIX=%{_prefix} \
FS_BINDIR=%{_bindir} \
FS_SBINDIR=%{_sbindir} \
FS_DATADIR=%{_datadir} \
FS_LIBDIR=%{_libdir} \
FS_DOCDIR=%{_docdir} \
RUBYLIBDIR=%{ruby_vendorlibdir} \
RUBYARCHDIR=%{ruby_vendorarchdir} \
APACHE2_MODULE_PATH=%{_httpd_moddir}/mod_passenger.so
%install
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
%{__rm} -rf %{buildroot}
%{__mkdir} %{buildroot}
%{__cp} -a pkg/fakeroot/* %{buildroot}/
%{__mkdir_p} %{buildroot}%{_httpd_confdir} %{buildroot}%{_httpd_modconfdir}
%{__sed} -e 's|@PASSENGERROOT@|%{_datadir}/passenger/phusion_passenger/locations.ini|g' %{SOURCE100} > passenger.conf
%{__sed} -i -e '/^# *Require all granted/d' passenger.conf
./dev/install_scripts_bootstrap_code.rb --ruby %{passenger_ruby_libdir} \
%{buildroot}%{_bindir}/* \
%{buildroot}%{_sbindir}/* \
`find %{buildroot} -name rack_handler.rb`
%if "%{_httpd_modconfdir}" == "%{_httpd_confdir}"
%{__cat} %{SOURCE101} passenger.conf > passenger-combined.conf
touch -r %{SOURCE100} passenger-combined.conf
%{__install} -pm 0644 passenger-combined.conf %{buildroot}%{_httpd_confdir}/passenger.conf
%else
touch -r %{SOURCE100} passenger.conf
%{__install} -pm 0644 passenger.conf %{buildroot}%{_httpd_confdir}/passenger.conf
%{__install} -pm 0644 %{SOURCE101} %{buildroot}%{_httpd_modconfdir}/10-passenger.conf
touch -r %{SOURCE101} %{buildroot}%{_httpd_modconfdir}/10-passenger.conf
%endif
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/passenger-analytics
%{__mkdir_p} %{buildroot}%{_localstatedir}/run/passenger-instreg
%{__mkdir_p} %{buildroot}%{_usr}/lib/tmpfiles.d
%{__install} -m 644 -p %{SOURCE102} \
%{buildroot}%{_usr}/lib/tmpfiles.d/passenger.conf
%{__mkdir_p} %{buildroot}%{_sysconfdir}/logrotate.d
%{__install} -pm 0644 %{SOURCE10} %{buildroot}%{_sysconfdir}/logrotate.d/passenger
%{__mkdir_p} %{buildroot}%{_mandir}/man1
%{__mkdir_p} %{buildroot}%{_mandir}/man8
%{__cp} man/*.1 %{buildroot}%{_mandir}/man1
%{__cp} man/*.8 %{buildroot}%{_mandir}/man8
%{__chmod} +x %{buildroot}%{_datadir}/passenger/helper-scripts/wsgi-loader.py
find %{buildroot}%{_bindir} %{buildroot}%{_datadir}/passenger/helper-scripts/ -type f | xargs sed -i 's|^#!/usr/bin/env ruby$|#!/usr/bin/ruby|'
sed -i 's|^#!/usr/bin/env python$|#!/usr/bin/python3|' %{buildroot}%{_datadir}/passenger/helper-scripts/wsgi-loader.py
%files
%doc LICENSE CONTRIBUTORS CHANGELOG
%{_bindir}/*
%exclude %{_bindir}/%{name}-install-*-module
%{_sbindir}/*
%{_usr}/lib/tmpfiles.d/passenger.conf
%{_datadir}/passenger/helper-scripts
%{_datadir}/passenger/templates
%{_datadir}/passenger/standalone_default_root
%{_datadir}/passenger/node
%{_datadir}/passenger/*.types
%{_datadir}/passenger/*.crt
%{_datadir}/passenger/*.pem
%{_datadir}/passenger/*.p12
%dir %{_localstatedir}/log/passenger-analytics
%dir %attr(755, root, root) %{_localstatedir}/run/passenger-instreg
%{_sysconfdir}/logrotate.d/passenger
%{passenger_ruby_libdir}/*
%{_libdir}/passenger/support-binaries
%{ruby_vendorarchdir}/passenger_native_support.so
%files devel
%{_datadir}/passenger/ngx_http_passenger_module
%{_datadir}/passenger/ruby_extension_source
%{_datadir}/passenger/include
%{_libdir}/%{name}/common
%exclude %{_libdir}/%{name}/nginx_dynamic
%files -n mod_passenger
%config(noreplace) %{_httpd_modconfdir}/*.conf
%if "%{_httpd_modconfdir}" != "%{_httpd_confdir}"
%config(noreplace) %{_httpd_confdir}/*.conf
%endif
%{_httpd_moddir}/mod_passenger.so
%files help
%{_docdir}/%{name}/*
%{_mandir}/*/*
%changelog
* Wed Jul 05 2023 wujie <wujie@nj.iscas.ac.cn> - 6.0.17-3
- fix riscv configure
* Wed Jun 07 2023 chenchen <chen_aka_jan@163.com> - 6.0.17-2
- add PIE compiler option
* Mon Apr 17 2023 Ge Wang <wang--ge@126.com> - 6.0.17-1
- update to version 6.0.17
* Tue Dec 13 2022 huajingyun <huajingyun@loongson.cn> - 6.0.8-5
- fix passenger build error for loongarch64
* Sat Sep 10 2022 yangchenguang <yangchenguang@uniontech.com> - 6.0.8-4
- fix passenger load error
* Mon Apr 25 2022 caodongxia<caodongxia@h-partners.com> - 6.0.8-3
- add buildRequires to resolve compilation failure
* Tue Oct 19 2021 zhangweiguo <zhangweiguo2@huawei.com> - 6.0.8-2
- add rake option -m
* Tue Aug 10 2021 yixiangzhike <zhangxingliang3@huawei.com> - 6.0.8-1
- update version to 6.0.8
* Sat Jan 23 2021 zoulin <zoulin13@huawei.com> - 6.0.7-1
- update version to 6.0.7
* Wed Mar 4 2020 openEuler Buildteam <buildteam@openeuler.org> - 6.0.4-2
- Package Init