This commit is contained in:
unioah 2020-09-05 21:46:30 -04:00
parent 07fede7f6b
commit 8eda34879a

View File

@ -1,76 +1,59 @@
Summary: A Distributed Streaming Platform. %global debug_package %{nil}
%global debug_package %{nil}
%define kafka_home /opt/kafka
Name: kafka Name: kafka
Version: 2.6.0 Version: 2.6.0
Release: 1 Release: 1%{?dist}
Summary: A Distributed Streaming Platform.
License: Apache License, Version 2.0 License: Apache License, Version 2.0
Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}-src.tgz Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}-src.tgz
Source1: https://gradle.org/next-steps/?version=6.6.1&format=bin Source1: https://services.gradle.org/distributions/gradle-6.5-bin.zip
Provides: kafka
BuildRequires: systemd java-1.8.0-openjdk-devel BuildRequires: systemd java-1.8.0-openjdk-devel
Provides: kafka = %{version}
Requires: java-1.8.0-openjdk Requires: java-1.8.0-openjdk
%description %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. 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.
$pre %pre
getent group %{name} >/dev/null || groupadd -r %{name}
getent passwd %{name} >/dev/null || \
useradd -r -g %{name} -d %{_sharedstatedir}/%{name} -s /sbin/nologin \
-c "User for Kafka services" %{name}
exit 0
%prep %prep
%setup -q -n %{name}-%{version}-src %setup -q -n %{name}-%{version}-src
%build %build
unzip %{_sourcedir}/gradle-6.6.1-bin.zip unzip -q $RPM_SOURCE_DIR/gradle-6.5-bin.zip
./gradle-gradle-6.6.1/bin/gradle ./gradle-6.5/bin/gradle
./gradlew jar ./gradlew jar
%install %install
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{name}/{libs,bin,config} mkdir -p $RPM_BUILD_ROOT%{kafka_home}/{libs,bin,config}
mkdir -p $RPM_BUILD_ROOT%{_log_dir}
mkdir -p $RPM_BUILD_ROOT%{_data_dir}
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
mkdir -p $RPM_BUILD_ROOT%{_conf_dir}/
install -p -D -m 755 bin/*.sh $RPM_BUILD_ROOT%{_prefix}/%{name}/bin
install -p -D -m 644 config/* $RPM_BUILD_ROOT%{_prefix}/%{name}/config
install -p -D -m 644 config/server.properties $RPM_BUILD_ROOT%{_conf_dir}/
sed -i "s:^log.dirs=.*:log.dirs=%{_data_dir}:" $RPM_BUILD_ROOT%{_conf_dir}/server.properties
install -p -D -m 755 %{S:1} $RPM_BUILD_ROOT%{_unitdir}/
install -p -D -m 644 %{S:2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
install -p -D -m 644 %{S:3} $RPM_BUILD_ROOT%{_conf_dir}/
install -p -D -m 644 %{S:4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
install -p -D -m 644 libs/* $RPM_BUILD_ROOT%{_prefix}/%{name}/libs
%if %{build_with_metrics}
# adding metric specific sources.
install -p -D -m 644 %{S:6} $RPM_BUILD_ROOT%{_prefix}/%{name}/libs
install -p -D -m 644 %{S:7} $RPM_BUILD_ROOT%{_prefix}/%{name}/libs
%endif
%clean install -p -D -m 755 bin/*.sh $RPM_BUILD_ROOT%{kafka_home}/bin
rm -rf $RPM_BUILD_ROOT install -p -D -m 644 config/* $RPM_BUILD_ROOT%{kafka_home}/config
cp -n */build/libs/* $RPM_BUILD_ROOT%{kafka_home}/libs
%pre cp -n */build/dependant-libs*/* $RPM_BUILD_ROOT%{kafka_home}/libs
/usr/bin/getent group %{_group} >/dev/null || /usr/sbin/groupadd -r %{_group} cp -n */*/build/libs/* $RPM_BUILD_ROOT%{kafka_home}/libs
/usr/bin/getent passwd %{_user} >/dev/null || /usr/sbin/useradd -r \ cp -n */*/build/dependant-libs*/* $RPM_BUILD_ROOT%{kafka_home}/libs
-g %{_group} -d %{_prefix}/%{name} -s /bin/bash -c "Kafka" %{_user}
%post
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun %{name}.service
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%{_unitdir}/%{name}.service
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{kafka_home}
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%config(noreplace) %{_conf_dir}/*
%{_prefix}/%{name}
%attr(0755,kafka,kafka) %dir %{_log_dir}
%attr(0700,kafka,kafka) %dir %{_data_dir}
%doc NOTICE %doc NOTICE
%doc LICENSE %doc LICENSE
%clean
rm -rf %{buildroot}
%changelog %changelog
* 2020-09-01 "Hao Zhang" <unioah@isrc.iscas.ac.cn> * Sat Aug 15 2020 Hao Zhang <unioah@isrc.iscas.ac.cn>
- init