%global debug_package %{nil} %global scala_version 2.13 Name: kafka Version: 4.0.0 Release: %autorelease Summary: Open-source distributed event streaming platform License: Apache-2.0 URL: https://kafka.apache.org/ Source0: https://dlcdn.apache.org/kafka/%{version}/kafka-%{version}-src.tgz Source1: kafka.service Source2: tmpfiles.conf Source3: kafka-start-server.sh BuildArch: noarch BuildRequires: java-21-openjdk-devel BuildRequires: systemd-rpm-macros BuildRequires: sed tar Requires: java-21-openjdk-headless Requires: bash grep gawk %description Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. %prep %autosetup -n %{name}-%{version}-src %build ./gradlew releaseTarGz -PscalaVersion=%{scala_version} %install install -D --directory --mode=0755 %{buildroot}%{_datadir}/java tar --extract --gzip --file core/build/distributions/kafka_%{scala_version}-%{version}.tgz --directory %{buildroot}%{_datadir}/java tar --extract --gzip --file core/build/distributions/kafka_%{scala_version}-%{version}-site-docs.tgz --directory . mv %{buildroot}%{_datadir}/java/kafka_%{scala_version}-%{version} %{buildroot}%{_datadir}/java/kafka rm -rf %{buildroot}%{_datadir}/java/kafka/bin/windows \ %{buildroot}%{_datadir}/java/kafka/licenses \ %{buildroot}%{_datadir}/java/kafka/site-docs \ %{buildroot}%{_datadir}/java/kafka/LICENSE \ %{buildroot}%{_datadir}/java/kafka/NOTICE install -D "%{SOURCE1}" %{buildroot}%{_unitdir}/kafka.service install -D "%{SOURCE2}" %{buildroot}%{_exec_prefix}/lib/tmpfiles.d/kafka.conf install -D --mode=0755 "%{SOURCE3}" %{buildroot}%{_datadir}/java/kafka/scripts/kafka-start-server.sh install -D --directory --mode=0700 %{buildroot}%{_sharedstatedir}/kafka sed --regexp-extended --in-place 's|^ LOG_DIR=.+$| LOG_DIR="%{_localstatedir}/log/kafka"|' %{buildroot}%{_datadir}/java/kafka/bin/kafka-run-class.sh pushd %{buildroot}%{_datadir}/java/kafka/config sed --regexp-extended --in-place 's|^log.dir=.+$|log.dir='"%{_sharedstatedir}/kafka/data"'|' *.properties sed --regexp-extended --in-place 's|^log.dirs=.+$|log.dirs='"%{_sharedstatedir}/kafka/data"'|' *.properties popd %files %doc README.md site-docs %license LICENSE licenses/* %{_datadir}/java/kafka/bin/* %config(noreplace) %{_datadir}/java/kafka/config/* %{_datadir}/java/kafka/libs/* %{_datadir}/java/kafka/scripts/* %{_unitdir}/kafka.service %{_exec_prefix}/lib/tmpfiles.d/kafka.conf %attr(700,kafka,kafka) %dir %{_sharedstatedir}/kafka %pre getent group kafka > /dev/null || groupadd --system kafka getent passwd kafka > /dev/null || \ useradd --system --home-dir %{_sharedstatedir}/kafka --gid kafka \ -s /sbin/nologin -c "kafka daemon" kafka exit 0 %post %systemd_post kafka.service %preun %systemd_preun kafka.service %postun %systemd_postun kafka.service %changelog %autochangelog