1 Star 0 Fork 20

hefq343/openresty

forked from src-openEuler/openresty 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
openresty.spec 13.67 KB
一键复制 编辑 原始数据 按行查看 历史
Jingwiw 提交于 2023-08-03 17:05 . add riscv64 support
Name: openresty
Version: 1.21.4.1
Release: 3
Summary: OpenResty, scalable web platform by extending NGINX with Lua
Group: System Environment/Daemons
# BSD License (two clause)
# http://www.freebsd.org/copyright/freebsd-license.html
License: BSD
URL: https://openresty.org/
Source0: https://openresty.org/download/openresty-%{version}.tar.gz
%if 0%{?amzn} >= 2 || 0%{?suse_version} || 0%{?fedora} || 0%{?rhel} >= 7
%define use_systemd 1
%endif
Source1: openresty.service
Source2: openresty.init
Patch1: 0001-add-option-out-dir-on-configure.patch
Patch2: 0002-add-riscv-support-not-upstream-modified-files.patch
Patch3: 0003-add-riscv-support-not-upstream-new-files.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: perl-File-Temp
BuildRequires: ccache, gcc, make, perl, systemtap-sdt-devel
BuildRequires: openresty-zlib-devel >= 1.2.11-3
BuildRequires: openresty-openssl111-devel >= 1.1.1h-1
BuildRequires: openresty-pcre-devel >= 8.44-1
Requires: openresty-zlib >= 1.2.11-3
Requires: openresty-openssl111 >= 1.1.1h-1
Requires: openresty-pcre >= 8.44-1
%if 0%{?suse_version}
# for /sbin/service
Requires(post): insserv-compat
Requires(preun): insserv-compat
BuildRequires: systemd
%else
%if 0%{?use_systemd}
BuildRequires: systemd
Requires: systemd
%else
# for /sbin/service
Requires(post): chkconfig
Requires(preun): chkconfig, initscripts
%endif
%endif
AutoReqProv: no
%define orprefix %{_usr}/local/%{name}
%define zlib_prefix %{orprefix}/zlib
%define pcre_prefix %{orprefix}/pcre
%define openssl_prefix %{orprefix}/openssl111
%global debug_package %{nil}
# Remove source code from debuginfo package.
%define __debug_install_post \
%{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"; \
rm -rf "${RPM_BUILD_ROOT}/usr/src/debug"; \
mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug/openresty-%{version}"; \
mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug/tmp"; \
mkdir -p "${RPM_BUILD_ROOT}/usr/src/debug/builddir"; \
%{nil}
%if 0%{?fedora} >= 27
%undefine _debugsource_packages
%undefine _debuginfo_subpackages
%endif
%if 0%{?rhel} >= 8
%undefine _debugsource_packages
%undefine _debuginfo_subpackages
%endif
%if 0%{?openEuler} >= 2
%undefine _debugsource_packages
%undefine _debuginfo_subpackages
%endif
%description
This package contains the core server for OpenResty. Built for production
uses.
OpenResty is a full-fledged web platform by integrating the standard Nginx
core, LuaJIT, many carefully written Lua libraries, lots of high quality
3rd-party Nginx modules, and most of their external dependencies. It is
designed to help developers easily build scalable web applications, web
services, and dynamic web gateways.
By taking advantage of various well-designed Nginx modules (most of which
are developed by the OpenResty team themselves), OpenResty effectively
turns the nginx server into a powerful web app server, in which the web
developers can use the Lua programming language to script various existing
nginx C modules and Lua modules and construct extremely high-performance
web applications that are capable to handle 10K ~ 1000K+ connections in
a single box.
%package resty
Summary: OpenResty command-line utility, resty
Group: Development/Tools
Requires: perl, openresty >= %{version}-%{release}
Requires: perl(File::Spec), perl(FindBin), perl(List::Util), perl(Getopt::Long), perl(File::Temp), perl(POSIX), perl(Time::HiRes)
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 || 0%{?centos} >= 6 || 0%{?openEuler} >= 2
BuildArch: noarch
%endif
%description resty
This package contains the "resty" command-line utility for OpenResty, which
runs OpenResty Lua scripts on the terminal using a headless NGINX behind the
scene.
OpenResty is a full-fledged web platform by integrating the standard Nginx
core, LuaJIT, many carefully written Lua libraries, lots of high quality
3rd-party Nginx modules, and most of their external dependencies. It is
designed to help developers easily build scalable web applications, web
services, and dynamic web gateways.
%package doc
Summary: OpenResty documentation tool, restydoc
Group: Development/Tools
Requires: perl, perl(Getopt::Std), perl(File::Spec), perl(FindBin), perl(Cwd), perl(File::Temp), perl(Pod::Man), perl(Pod::Text)
%if (!0%{?rhel} || 0%{?rhel} < 7) && !0%{?fedora}
Requires: groff
%endif
%if (0%{?rhel} && 0%{?rhel} >= 7) || 0%{?fedora} || 0%{?openEuler} >= 2
Requires: groff-base
%endif
Provides: restydoc, restydoc-index, md2pod.pl
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 || 0%{?centos} >= 6 || 0%{?openEuler} >= 2
BuildArch: noarch
%endif
%description doc
This package contains the official OpenResty documentation index and
the "restydoc" command-line utility for viewing it.
OpenResty is a full-fledged web platform by integrating the standard Nginx
core, LuaJIT, many carefully written Lua libraries, lots of high quality
3rd-party Nginx modules, and most of their external dependencies. It is
designed to help developers easily build scalable web applications, web
services, and dynamic web gateways.
%package opm
Summary: OpenResty Package Manager
Group: Development/Tools
Requires: perl, openresty >= %{version}-%{release}, perl(Digest::MD5)
Requires: openresty-doc >= %{version}-%{release}, openresty-resty >= %{version}-%{release}
Requires: curl, tar, gzip
#BuildRequires: perl(Digest::MD5)
Requires: perl(Encode), perl(FindBin), perl(File::Find), perl(File::Path), perl(File::Spec), perl(Cwd), perl(Digest::MD5), perl(File::Copy), perl(File::Temp), perl(Getopt::Long)
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 || 0%{?centos} >= 6
BuildArch: noarch
%endif
%description opm
This package provides the client side tool, opm, for OpenResty Pakcage Manager (OPM).
%package debug
Summary: The debug version of OpenResty
Group: System Environment/Daemons
BuildRequires: openresty-openssl111-debug-devel >= 1.1.1h-1
Requires: openresty-zlib >= 1.2.11-3
Requires: openresty-openssl111-debug >= 1.1.1h-1
Requires: openresty-pcre >= 8.44-1
AutoReqProv: no
%define orprefix_debug %{_usr}/local/openresty-debug
%define openssl_prefix_debug %{_usr}/local/openresty-debug/openssl111
%define zlib_prefix_debug %{_usr}/local/openresty/zlib
%define pcre_prefix_debug %{_usr}/local/openresty/pcre
%description debug
This package contains the debug version of the core server for OpenResty.
Built for development purposes only.
DO NOT USE THIS PACKAGE IN PRODUCTION!
OpenResty is a full-fledged web platform by integrating the standard Nginx
core, LuaJIT, many carefully written Lua libraries, lots of high quality
3rd-party Nginx modules, and most of their external dependencies. It is
designed to help developers easily build scalable web applications, web
services, and dynamic web gateways.
By taking advantage of various well-designed Nginx modules (most of which
are developed by the OpenResty team themselves), OpenResty effectively
turns the nginx server into a powerful web app server, in which the web
developers can use the Lua programming language to script various existing
nginx C modules and Lua modules and construct extremely high-performance
web applications that are capable to handle 10K ~ 1000K+ connections in
a single box.
%prep
%setup -q -n "openresty-%{version}"
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
./configure \
--out-dir='build' \
--prefix="%{orprefix}" \
--with-cc='ccache gcc -fdiagnostics-color=always' \
--with-cc-opt="-DNGX_LUA_ABORT_AT_PANIC -I%{zlib_prefix}/include -I%{pcre_prefix}/include -I%{openssl_prefix}/include" \
--with-ld-opt="-L%{zlib_prefix}/lib -L%{pcre_prefix}/lib -L%{openssl_prefix}/lib -Wl,-rpath,%{zlib_prefix}/lib:%{pcre_prefix}/lib:%{openssl_prefix}/lib" \
--with-pcre-jit \
--without-http_rds_json_module \
--without-http_rds_csv_module \
--without-lua_rds_parser \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_v2_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_secure_link_module \
--with-http_random_index_module \
--with-http_gzip_static_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-threads \
--with-compat \
--with-luajit-xcflags='-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT' \
%{?_smp_mflags}
make -f 'Makefile-build' %{?_smp_mflags}
./configure \
--out-dir='build-debug' \
--prefix="%{orprefix_debug}" \
--with-cc='ccache gcc -fdiagnostics-color=always' \
--with-debug \
--with-cc-opt="-I%{zlib_prefix_debug}/include -I%{pcre_prefix_debug}/include -I%{openssl_prefix_debug}/include -O0" \
--with-ld-opt="-L%{zlib_prefix_debug}/lib -L%{pcre_prefix_debug}/lib -L%{openssl_prefix_debug}/lib -Wl,-rpath,%{zlib_prefix_debug}/lib:%{pcre_prefix_debug}/lib:%{openssl_prefix_debug}/lib" \
--with-pcre-jit \
--without-http_rds_json_module \
--without-http_rds_csv_module \
--without-lua_rds_parser \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_v2_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_secure_link_module \
--with-http_random_index_module \
--with-http_gzip_static_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-threads \
--with-poll_module \
--with-compat \
--with-luajit-xcflags='-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT -O0' \
%{?_smp_mflags}
make -f 'Makefile-build-debug' %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install -f 'Makefile-build' DESTDIR=%{buildroot}
rm -rf %{buildroot}%{orprefix}/luajit/share/man
rm -rf %{buildroot}%{orprefix}/luajit/lib/libluajit-5.1.a
mkdir -p %{buildroot}/usr/bin
ln -sf %{orprefix}/bin/resty %{buildroot}/usr/bin/
ln -sf %{orprefix}/bin/restydoc %{buildroot}/usr/bin/
ln -sf %{orprefix}/bin/opm %{buildroot}/usr/bin/
ln -sf %{orprefix}/nginx/sbin/nginx %{buildroot}/usr/bin/%{name}
%if 0%{?use_systemd}
mkdir -p %{buildroot}%{_unitdir}
%{__install} -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/
%else
mkdir -p %{buildroot}/etc/init.d
%{__install} -p -m 0755 %{SOURCE2} %{buildroot}/etc/init.d/%{name}
%endif
# to silence the check-rpath error
export QA_RPATHS=$[ 0x0002 ]
make install -f 'Makefile-build-debug' DESTDIR=%{buildroot}
rm -rf %{buildroot}%{orprefix_debug}/luajit/share/man
rm -rf %{buildroot}%{orprefix_debug}/luajit/lib/libluajit-5.1.a
rm -rf %{buildroot}%{orprefix_debug}/bin/resty
rm -rf %{buildroot}%{orprefix_debug}/bin/restydoc
rm -rf %{buildroot}%{orprefix_debug}/bin/restydoc-index
rm -rf %{buildroot}%{orprefix_debug}/bin/md2pod.pl
rm -rf %{buildroot}%{orprefix_debug}/bin/nginx-xml2pod
rm -rf %{buildroot}%{orprefix_debug}/bin/opm
rm -rf %{buildroot}%{orprefix_debug}/pod/*
rm -rf %{buildroot}%{orprefix_debug}/resty.index
mkdir -p %{buildroot}/usr/bin
ln -sf %{orprefix_debug}/nginx/sbin/nginx %{buildroot}/usr/bin/%{name}-debug
%clean
rm -rf %{buildroot}
%post
%if 0%{?use_systemd}
%systemd_post openresty.service
%else
%if ! 0%{?suse_version}
/sbin/chkconfig --add %{name}
%endif
%endif
%preun
%if 0%{?use_systemd}
%systemd_preun openresty.service
%else
%if ! 0%{?suse_version}
if [ $1 = 0 ]; then
/sbin/service %{name} stop >/dev/null 2>&1
/sbin/chkconfig --del %{name}
fi
%endif
%endif
%if 0%{?use_systemd}
%postun
%systemd_postun_with_restart openresty.service
%endif
%files
%defattr(-,root,root,-)
%if 0%{?use_systemd}
%{_unitdir}/%{name}.service
%else
/etc/init.d/%{name}
%endif
/usr/bin/%{name}
%{orprefix}/bin/openresty
%{orprefix}/site/lualib/
%{orprefix}/luajit/*
%{orprefix}/lualib/*
%{orprefix}/nginx/html/*
%{orprefix}/nginx/logs/
%{orprefix}/nginx/sbin/*
%config(noreplace) %{orprefix}/nginx/conf/*
%{orprefix}/COPYRIGHT
%files resty
%defattr(-,root,root,-)
/usr/bin/resty
%{orprefix}/bin/resty
%files doc
%defattr(-,root,root,-)
/usr/bin/restydoc
%{orprefix}/bin/restydoc
%{orprefix}/bin/restydoc-index
%{orprefix}/bin/md2pod.pl
%{orprefix}/bin/nginx-xml2pod
%{orprefix}/pod/*
%{orprefix}/resty.index
%files opm
%defattr(-,root,root,-)
/usr/bin/opm
%{orprefix}/bin/opm
%{orprefix}/site/manifest/
%{orprefix}/site/pod/
%files debug
%defattr(-,root,root,-)
/usr/bin/%{name}-debug
%{orprefix_debug}/bin/openresty
%{orprefix_debug}/site/lualib/
%{orprefix_debug}/luajit/*
%{orprefix_debug}/lualib/*
%{orprefix_debug}/nginx/html/*
%{orprefix_debug}/nginx/logs/
%{orprefix_debug}/nginx/sbin/*
%config(noreplace) %{orprefix_debug}/nginx/conf/*
%{orprefix_debug}/COPYRIGHT
%changelog
* Thu Aug 03 2023 Jingwiw <wangjingwei@iscas.ac.cn> - 1.21.4.1-3
- add riscv64 support
* Sat Jul 29 2023 Xinwei Hu <shinwell_hu@openeuler.sh> - 1.21.4.1-2
- Fix macro typo in spec file
* Wed Jul 12 2023 Niu zhengjie <niuzj0@gmail.com> 1.21.4.1-1
- upgrade to 1.21.4.1
* Mon Dec 13 2021 liweigang <liweiganga@uniontech.com> 1.19.3.1-2
- delete %dist
* Fri Jul 23 2021 Fu Changjie <fu_changjie@qq.com> 1.19.3.1-1
- Package init with openresty 1.19.3.1, without asan package
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hefq343/openresty.git
git@gitee.com:hefq343/openresty.git
hefq343
openresty
openresty
master

搜索帮助