File nginx-module-devel-kit.spec of Package nginx-module-devel-kit

#
# spec file for package nginx-module-devel-kit
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%if 0%{?suse_version} != 1315 || 0%{?is_opensuse}
%bcond_without libatomic
%else
%bcond_with    libatomic
%endif

%if 0%{?suse_version} > 1220
%bcond_without pcre_jit
%else
%bcond_with    pcre_jit
%endif

%define project_name ngx_devel_kit
%define nginx_moduledir %{_libdir}/nginx/modules
%define src_install_dir /usr/src/%{name}

Name:           nginx-module-devel-kit
Version:        0.3.0
Release:        0
Summary:        Additional generic tools for nginx module development
License:        BSD-3-Clause
Group:          Productivity/Networking/Web/Proxy
Url:            https://github.com/simplresty/%{project_name}
Source:         https://github.com/simplresty/%{project_name}/archive/v%{version}.tar.gz#/%{project_name}-%{version}.tar.gz
Source1:        nginx-module-devel-kit.rpmlintrc
BuildRequires:  nginx-source
BuildRequires:  pcre-devel
%if %{with libatomic}
BuildRequires:  libatomic-ops-devel
%endif
Requires:       nginx = %(rpm -q nginx-source | rev | cut -d. --complement -f1 | cut -d"-" -f2 | rev)

%description
The NDK is an Nginx module that extends the core functionality of the
Nginx webserver in a way that can be used as a basis for other Nginx
modules.

NDK has functions and macros to deal with tasks that do not currently
have code in nginx. NDK itself adds few features that are seen by
end-users; the plan is to reduce the code that module developers need
to write.

Using features from the NDK makes it a dependency that users will
need to install as well.

%package -n nginx-module-devel-kit-source
Summary:        The nginx-module-devel-kit source
Group:          Development/Sources
BuildArch:      noarch

%description -n nginx-module-devel-kit-source
The source of an nginx module that is designed to extend the core functionality
of nginx.

%prep
mkdir %{project_name}
tar -xzf %{SOURCE0} --strip-components=1 -C %{project_name}
cp -r /usr/src/nginx .

%build
cd nginx
export CFLAGS="%optflags -fno-strict-aliasing"
./configure                                    \
  --user=nginx --group=nginx                   \
  --without-select_module                      \
  --without-poll_module                        \
  --without-http_gzip_module                   \
  --with-threads                               \
  --with-file-aio                              \
  --with-ipv6                                  \
  --with-pcre                                  \
  %if %{with pcre_jit}
  --with-pcre-jit                              \
  %endif
  %if %{with libatomic}
  --with-libatomic                             \
  %endif
  --with-compat                                \
  --add-dynamic-module=../%{project_name}      \
%if 0%{?suse_version} > 1220
  --with-cc-opt="%{optflags} -fPIC -D_GNU_SOURCE -std=gnu99 -fstack-protector -DNDK_ALL -Wno-maybe-uninitialized -Wno-sizeof-pointer-memaccess" \
  --with-ld-opt="-Wl,-z,relro,-z,now -pie"
%else
  --with-cc-opt="%{optflags} -DNDK_ALL -Wno-maybe-uninitialized -Wno-sizeof-pointer-memaccess"
%endif
make modules

%install
mkdir -p %{buildroot}%{nginx_moduledir}
install -D -m 0644 nginx/objs/ndk_http_module.so %{buildroot}%{nginx_moduledir}

mkdir -p %{buildroot}%{src_install_dir}
tar -xzf %{SOURCE0} --strip-components=1 -C %{buildroot}%{src_install_dir}
rm %{buildroot}%{src_install_dir}/.gitignore

%files
%dir %{_libdir}/nginx
%dir %{nginx_moduledir}
%{nginx_moduledir}/ndk_http_module.so

%files -n nginx-module-devel-kit-source
%{src_install_dir}

%changelog
openSUSE Build Service is sponsored by