File kafka_protocol.spec of Package kafka_protocol
%define bname kafka_protocol
Name: %bname
Version: 4.1.10
Release: 1
Summary: Kafka protocol library for Erlang/Elixir
License: Apache-2.0
Group: Development/Tools/Other
URL: https://github.com/kafka4beam/%bname
Source: %bname-%version.tar.xz
Provides: erlang-%bname = %version-%release
BuildRequires: rpm-macros-erlang rpm-build-erlang
BuildRequires: rebar >= 2.6.1-7
%if_enabled check
BuildRequires: erlang-crc32cer >= 0.1.11
%endif
%description
Kafka protocol library for Erlang.
This library provides:
- Basic kafka connection management APIs
- Kafka protocol wire format encode/decode functions
- Kafka RPC primitives
- Utility functions to help building requests and parsing responses
%package devel
Summary: Headers and parse transformer of %bname
Group: Development/Tools/Other
Provides: erlang-%bname-devel = %version-%release
%description devel
Kafka protocol library for Erlang.
This package contains headers of %bname.
%package doc
Summary: Documentation of %bname
Group: Documentation/HTML
Provides: erlang-%bname-doc = %version-%release
%description doc
Kafka protocol library for Erlang.
This package contains documentation of %bname.
%prep
%setup -q -n %bname-%version
erl -noshell -eval '
{ok, [{application, N, L}]} = file:consult("src/%bname.app.src"),
file:write_file("src/%bname.app.src",
io_lib:format("{application, ~p, ~111p}.~n",
[N,
lists:foldl(fun({K, _} = KV, A) -> lists:keyreplace(K, 1, A, KV) end,
lists:foldl(fun(K, A) -> lists:keydelete(K, 1, A) end,
L, [build_tools, files]),
[{vsn, "%version"}, {description, "%summary"}])]),
[raw]),
init:stop().'
%build
erl -noshell -eval '
{ok, L} = file:consult("rebar.config"),
file:write_file("%bname.rebar.config", [[io_lib:print(E), ".\n"] || E <- lists:keydelete(deps, 1, L)], [raw]),
init:stop().'
ERL_COMPILER_OPTIONS="[verbose]" rebar %{?_smp_mflags} -C %bname.rebar.config compile -v
rebar %{?_smp_mflags} -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/kpro.hrl include/kpro_error_codes.hrl include/kpro_public.hrl %buildroot%_otplibdir/%bname-%version/include/
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 README* NOTICE changelog.md %buildroot%_docdir/%name/
%if_enabled check
%check
ERL_COMPILER_OPTIONS="[verbose]" rebar -C %bname.rebar.config eunit -v
%endif
%files
%defattr(-,root,root)
%_otplibdir/*
%exclude %_otplibdir/%bname-*/include
%exclude %_otplibdir/%bname-*/doc
%files devel
%defattr(-,root,root)
%dir %_otplibdir/%bname-*
%_otplibdir/%bname-*/include
%files doc
%defattr(-,root,root)
%doc %_docdir/%name
%doc %dir %_otplibdir/%bname-*
%doc %_otplibdir/%bname-*/doc
%changelog
* Tue Jan 14 2025 Led <ledest@gmail.com> 4.1.10-1
- 4.1.10