File ranch.spec of Package ranch
%def_enable check
%def_with docs
%define bname ranch
Name: %bname
Version: 1.7.1
Release: 6
Summary: Erlang socket acceptor pool for TCP protocols
License: ISC
Group: Development/Tools/Other
URL: https://github.com/extend/%bname
Source: %bname-%version.tar.xz
#Patch0: %bname-%version-git.patch
Patch11: ranch-1.6.2-deprecated.patch
BuildArch: noarch
Provides: erlang-%bname = %version-%release
Requires: erlang-stdlib >= 1:18
Requires: erlang-ssl >= 1:18
BuildRequires: rpm-macros-erlang rpm-build-erlang >= 0.9.9
BuildRequires: erlang >= 1:18
BuildRequires: erlang-otpbp-devel >= 4.16.0
%if_with docs
BuildRequires: erlang-asciideck asciidoc dblatex libxslt
%if 0%{?suse_version}
BuildRequires: texlive-collection-basic texlive-collection-fontsrecommended
BuildRequires: tex(upquote.sty) tex(fancybox.sty) tex(mathrsfs.sty)
%endif
%endif
%if_enabled check
# check
BuildRequires: epmd ct_run erlang-eunit
BuildRequires: erlang-ct_helper >= 0.1.0-12
BuildRequires: erlang-otpbp >= 4.16.0
%endif
%description
Ranch is a Erlang socket acceptor pool for TCP protocols.
Ranch aims to provide everything you need to accept TCP connections with a small
code base and low latency while being easy to use directly as an application or
to embed into your own.
Ranch provides a modular design, letting you choose which transport and protocol
are going to be used for a particular listener. Listeners accept and manage
connections on one port, and include facilities to limit the number of concurrent
connections. Connections are sorted into pools, each pool having a different
configurable limit.
Ranch also allows you to upgrade the acceptor pool without having to close any of
the currently opened sockets.
%package devel
Summary: Behaviour modules of %bname
Group: Development/Tools/Other
Provides: erlang-%bname-devel = %version-%release
Conflicts: %name < 1.6.2-11
%description devel
Ranch is a Erlang socket acceptor pool for TCP protocols.
This package contains behaviour modules of %bname.
%package doc
Summary: Ranch documemtation
Group: Documentation/HTML
%description doc
Ranch is a Erlang socket acceptor pool for TCP protocols.
This package contains Ranch documemtation.
%prep
%setup -q -n %bname-%version
#patch0 -p1
%patch11 -p1
rm -rf ebin
%if "%_otp_release" == "18"
sed -i '/^-type proxy_info()/,/^[[:blank:]]*}\./s/ := / => /g' src/ranch_proxy_header.erl
%endif
%build
%if %_otp_release >= 24
ERL_COMPILER_OPTIONS="[inline,{parse_transform,otpbp_pt}]" \
%else
ERL_COMPILER_OPTIONS="[inline]" \
%endif
make %{?_smp_mflags} SKIP_DEPS=1 all %{?_with_docs:docs}
%install
install -d -m 0755 %buildroot%_otplibdir/%bname-%version/ebin
install -p -m 0644 ebin/* %buildroot%_otplibdir/%bname-%version/ebin/
install -d -m 0755 %buildroot%_docdir/%name/html
cp -r examples %buildroot%_docdir/%name/html/
%if_with docs
install -d -m 0755 %buildroot%_mandir/man3 %buildroot%_mandir/man7
install -p -m 0644 doc/man3/* %buildroot%_mandir/man3/
install -p -m 0644 doc/man7/* %buildroot%_mandir/man7/
install -p -m 0644 doc/html/* %buildroot%_docdir/%name/html/
install -p -m 0644 doc/*.pdf %buildroot%_docdir/%name/
%endif
erl -noshell -eval '
lists:foreach(fun(F) ->
{ok, {M, [{exports, Fs}]}} = beam_lib:chunks(F, [exports]),
lists:sort(Fs) =:= [{behaviour_info, 1}, {module_info, 0}, {module_info, 1}] andalso
io:fwrite("%_otplibdir/%bname-%version/ebin/~s.beam~n", [M])
end, filelib:wildcard("./ebin/*.beam")),
init:stop().' | tee behaviours.list | sed 's/^/%%exclude /' > behaviours-exclude.list
if [ -s behaviours.list ]; then
sed -i '1i%%dir %_otplibdir/%bname-%version/ebin' behaviours.list
fi
%if_enabled check
%check
%if %_otp_release < 23
%if %_otp_release >= 24
export ERL_COMPILER_OPTIONS="[inline,{parse_transform,otpbp_pt}]" \
%else
export ERL_COMPILER_OPTIONS="[inline]" \
%endif
[ $(stat -c %%i /) -gt 3 ] || make SKIP_DEPS=1 tests
%endif
%endif
%files -f behaviours-exclude.list
%defattr(-,root,root)
%_otplibdir/*
%if_with docs
%_mandir/man3/*
%_mandir/man7/*
%endif
%files -f behaviours.list devel
%defattr(-,root,root)
%dir %_otplibdir/%bname-*
%files doc
%defattr(-,root,root)
%doc %_docdir/%name
%changelog
* Sun Aug 07 2022 Led <ledest@gmail.com> 1.7.1-6
- update erl_opts
* Sat Sep 04 2021 Led <ledest@gmail.com> 1.7.1-5
- temporary disable check for Erlang/OTP >= 23
* Sun Aug 22 2021 Led <ledest@gmail.com> 1.7.1-4
- update patches:
+ ranch-1.6.2-deprecated.patch
- use otpbp_pt for deprecated ssl functions
* Mon Nov 04 2019 Led <ledest@gmail.com> 1.7.1-3
- temporary disable check for Erlang/OTP 23
* Mon Nov 04 2019 Led <ledest@gmail.com> 1.7.1-2
- update BuildRequires
* Mon Nov 04 2019 Led <ledest@gmail.com> 1.7.1-1
- 1.7.1
- remove patches:
+ 0001-Fix-inconsistent-naming-of-filter_user_options-2-arg.patch
+ 0002-Make-the-acceptors-exit-rather-than-crash-on-socket-.patch
+ 0003-Fix-a-race-condition-on-restart-after-listener_sup-c.patch
+ 0004-Correct-a-typo-in-a-manual-page-title.patch
* Tue Aug 20 2019 Led <ledest@gmail.com> 1.6.2-11
- move behaviours-only modules to devel subpackage
* Mon Jul 01 2019 Led <ledest@gmail.com> 1.6.2-10
- update patches:
+ ranch-1.6.2-deprecated.patch
* Wed Jun 12 2019 Led <ledest@gmail.com> 1.6.2-9
- fix %%check
* Sat Nov 03 2018 Led <ledest@gmail.com> 1.6.2-8
- update BuildRequires
* Sat Nov 03 2018 Led <ledest@gmail.com> 1.6.2-7
- update BuildRequires
* Sat Nov 03 2018 Led <ledest@gmail.com> 1.6.2-6
- update BuildRequires
* Sun Oct 21 2018 Led <ledest@gmail.com> 1.6.2-5
- add patches:
+ 0001-Fix-inconsistent-naming-of-filter_user_options-2-arg.patch
+ 0002-Make-the-acceptors-exit-rather-than-crash-on-socket-.patch
+ 0003-Fix-a-race-condition-on-restart-after-listener_sup-c.patch
+ 0004-Correct-a-typo-in-a-manual-page-title.patch
* Mon Oct 08 2018 Led <ledest@gmail.com> 1.6.2-4
- %%check when there is not in chroot only
* Sun Sep 30 2018 Led <ledest@gmail.com> 1.6.2-3
- remove patches:
+ 0001-Added-transport-functions-getopts-2-getstat-1-and-ge.patch
* Sun Sep 30 2018 Led <ledest@gmail.com> 1.6.2-2
- disable 0001-Added-transport-functions-getopts-2-getstat-1-and-ge.patch
* Sun Sep 30 2018 Led <ledest@gmail.com> 1.6.2-1
- 1.6.2
- fix Group
- update BuildRequires
- add patches:
+ ranch-1.6.2-deprecated.patch
* Tue Aug 21 2018 Led <ledest@gmail.com> 1.5.0-4
- clean up spec
* Wed Apr 25 2018 Led <ledest@gmail.com> 1.5.0-3
- %%check when there is not in chroot only
* Wed Apr 25 2018 Led <ledest@gmail.com> 1.5.0-2
- add patches
+ 0001-Added-transport-functions-getopts-2-getstat-1-and-ge.patch
(revert, for Erlang/OTP 18)
- update BuildRequires
- Require Erlang/OTP >= 18
* Wed Apr 18 2018 Led <ledest@gmail.com> 1.5.0-1
- 1.5.0
* Mon Feb 26 2018 Led <ledest@gmail.com> 1.4.0-4
- update BuildRequires for build docs in openSUSE >= 15.0
* Sun Feb 25 2018 Led <ledest@gmail.com> 1.4.0-3
- update BuildRequires
* Sun Aug 20 2017 Led <ledest@gmail.com> 1.4.0-2
- update spec
* Tue Jul 04 2017 Led <ledest@gmail.com> 1.4.0-1
- 1.4.0
- remove patches:
+ ranch-1.3.2-fix-test.patch
* Sun May 21 2017 Led <ledest@gmail.com> 1.3.2-9
- revert BuildRequires
* Sat May 20 2017 Led <ledest@gmail.com> 1.3.2-8
- update BuildRequires
* Sat May 20 2017 Led <ledest@gmail.com> 1.3.2-7
- add patches:
+ ranch-1.3.2-fix-test.patch
* Thu Apr 20 2017 Led <ledest@gmail.com> 1.3.2-6
- remove uniq node name for tests in erlang.mk
* Sun Apr 02 2017 Led <ledest@gmail.com> 1.3.2-5
- uniq node name for tests in erlang.mk
* Wed Mar 29 2017 Led <ledest@gmail.com> 1.3.2-4
- update BuildRequires
* Thu Feb 09 2017 Led <ledest@gmail.com> 1.3.2-3
- update BuildRequires
* Wed Feb 08 2017 Led <ledest@gmail.com> 1.3.2-2
- add doc subpackage
- fix License
* Wed Feb 08 2017 Led <ledest@gmail.com> 1.3.2-1
- 1.3.2
* Mon Dec 12 2016 Led <ledest@gmail.com> 1.3.0-2
- fix build
* Sun Dec 11 2016 Led <ledest@gmail.com> 1.3.0-1
- 1.3.0
- git f4f297c
* Fri Jul 15 2016 Led <ledest@gmail.com> 1.2.1-5
- fix BuildRequires
* Sat Jun 18 2016 Led <ledest@gmail.com> 1.2.1-4
- update ERLC_OPTS
* Sat Jun 18 2016 Led <ledest@gmail.com> 1.2.1-3
- use system erlang.mk
* Sun Jan 31 2016 Led <ledest@gmail.com> 1.2.1-2
- add epmd to BuildRequires
* Sun Jan 10 2016 Led <ledest@gmail.com> 1.2.1-1
- 1.2.1
* Sun Nov 29 2015 Led <ledest@gmail.com> 1.2.0-1
- 1.2.0
- remove patches:
+ ranch-1.1.0-git.patch
* Mon Apr 13 2015 Led <ledest@gmail.com> 1.1.0-6
- update BuildRequires
* Sun Apr 12 2015 Led <ledest@gmail.com> 1.1.0-5
- enable check
- clean up BuildRequires
* Sun Apr 05 2015 Led <ledest@gmail.com> 1.1.0-4
- clean up BuildRequires
* Wed Apr 01 2015 Led <ledest@gmail.com> 1.1.0-3
- disable check
* Wed Apr 01 2015 Led <ledest@gmail.com> 1.1.0-2
- add %%check section
* Wed Apr 01 2015 Led <ledest@gmail.com> 1.1.0-1
- initial build