File gen_rpc.spec of Package gen_rpc

%def_with lager

%define bname gen_rpc
Name: %bname
Version: 2.1.0
Release: 5
Summary: A scalable RPC library for Erlang-VM based languages
License: Apache-2.0
Group: Development/Tools/Other
URL: https://github.com/priestjim/%bname
Source: %bname-%version.tar.xz
Patch: %bname-%version-git.patch
BuildArch: noarch
Provides: erlang-%bname = %version-%release
Requires: erlang-otp-base >= 1:18
%{?_with_lager:Requires: erlang-lager >= 3.0}

BuildRequires: rpm-macros-erlang rpm-build-erlang
BuildRequires: rebar >= 2.6.1-7
BuildRequires: erlang >= 1:18
BuildRequires: erlang-hut-devel >= 1.2
%{?_with_lager:BuildRequires: erlang-lager-devel >= 3.0}
BuildRequires: erlang_beam(gen_statem)

%description
%bname is a scalable RPC library for Erlang-VM based languages.
%banme uses a mailbox-per-node architecture and gen_tcp processes to parallelize
data reception from multiple nodes without blocking the VM's distributed port.


%prep
%setup -q -n %bname-%version
%patch -p1
erl -noshell -eval '
A = "src/%bname.app.src",
{ok, [{application, %bname, L}]} = file:consult(A),
file:write_file(A, io_lib:format("{application, %bname, ~p}.~n", [[{vsn, "%version"}|proplists:delete(vsn, L)]])),
halt().'


%build
erl -noshell -eval '
{ok, L} = file:consult("rebar.config"),
file:write_file("%bname.rebar.config",
                lists:map(fun(E) -> [io_lib:print(E), ".\n"] end,
                          [{erl_opts, [slim, inline, no_debug_info%{?_with_lager:, {d, '"'HUT_LAGER'"'}, {parse_transform, lager_transform}}|proplists:get_value(erl_opts, L, [])]}
                           |lists:foldl(fun proplists:delete/2, L, [erl_opts, deps, plugins, cover_enabled])])),
halt().'
rebar -C %bname.rebar.config compile -v
rebar -C %bname.rebar.config doc -v


%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%_otplibdir/%bname-%version/include
install -p -m 0644 include/* %buildroot%_otplibdir/%bname-%version/include/
install -d -m 0755 %buildroot%_otplibdir/%bname-%version/priv/ssl
install -p -m 0644 priv/ssl/* %buildroot%_otplibdir/%bname-%version/priv/ssl/
install -d -m 0755 %buildroot%_otplibdir/%bname-%version/doc
install -p -m 0644 doc/*.{css,html,png} %buildroot%_otplibdir/%bname-%version/doc/
install -d -m 0755 %buildroot%_docdir/%name
ln -sf %_otplibdir/%bname-%version/doc %buildroot%_docdir/%name/html
install -p -m 0644 *.md %buildroot%_docdir/%name/


%files
%defattr(-,root,root)
%doc %_docdir/%name
%_otplibdir/*


%changelog
* Tue May 09 2017 Led <ledest@gmail.com> 2.1.0-5
- improve BuildRequires

* Fri May 05 2017 Led <ledest@gmail.com> 2.1.0-4
- update Requires and BuildRequires

* Fri Mar 24 2017 Led <ledest@gmail.com> 2.1.0-3
- git 6e17cac

* Fri Mar 10 2017 Led <ledest@gmail.com> 2.1.0-2
- update BuildRequires

* Tue Dec 27 2016 Led <ledest@gmail.com> 2.1.0-1
- 2.1.0
- git 1b6518b

* Tue May 24 2016 Led <ledest@gmail.com> 1.0.2-1
- initial build