summaryrefslogtreecommitdiff
path: root/openresty.spec
diff options
context:
space:
mode:
Diffstat (limited to 'openresty.spec')
-rw-r--r--openresty.spec463
1 files changed, 463 insertions, 0 deletions
diff --git a/openresty.spec b/openresty.spec
new file mode 100644
index 0000000..8a840b3
--- /dev/null
+++ b/openresty.spec
@@ -0,0 +1,463 @@
+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