%define debug_package %{nil}
%define _prefix /opt/rocketmq
%define path_name %{name}-all-%{version}-source-release

Summary: Cloud-Native, Distributed Messaging and Streaming
Name: rocketmq
Version: 5.1.5
Release: 34
License: Apache-2.0
Group: Applications/Message
URL: https://rocketmq.apache.org/
Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-all-%{version}-source-release.zip
Patch0001: patch001-backport-some-typo-fixes.patch
Patch0002: patch002-backport-some-enhancement.patch
Patch0003: patch003-backport-feature-refactor-recipt-processor.patch
Patch0004: patch004-backport-Support-Proxy-Protocol-for-gRPC-and-Remoting-Server.patch
Patch0005: patch005-backport-fix-some-bugs.patch
Patch0006: patch006-backport-auto-batch-producer.patch
Patch0007: patch007-backport-fix-some-bugs.patch
Patch0008: patch008-backport-Allow-BoundaryType.patch
Patch0009: patch009-backport-Support-KV-Storage.patch
Patch0010: patch010-backport-add-some-fixes.patch
Patch0011: patch011-backport-optimize-config.patch
Patch0012: patch012-backport-enhance-rockdbconfigtojson.patch
Patch0013: patch013-backport-enhance-admin-output.patch
Patch0014: patch014-backport-Queue-Selection-Strategy-Optimization.patch
Patch0015: patch015-backport-fix-some-bugs.patch
Patch0016: patch016-backport-Optimize-fault-tolerant-mechanism.patch
Patch0017: patch017-backport-Convergent-thread-pool-creation.patch
Patch0018: patch018-backport-enhancement-of-tiered-storage.patch
Patch0019: patch019-backport-some-bugfix.patch
Patch0020: patch020-backport-add-goaway-mechanism.patch
Patch0021: patch021-backport-some-enhancements.patch
Patch0022: patch022-backport-Support-KV-Storage-for-ConsumeQueue.patch
Patch0023: patch023-backport-some-bugfixes.patch
Patch0024: patch024-backport-some-format.patch
Patch0025: patch025-backport-Fix-channel-connect-issue.patch
Patch0026: patch026-backport-AddBroker-removes-parsing-configuration-from-body.patch
Patch0027: patch027-backport-Utilizing-cache-to-avoid-duplicate-parsing.patch
Patch0028: patch028-backport-Fix-proxy-client-language-error.patch
Patch0029: patch029-backport-Introduce-new-event-NettyEventType.ACTIVEr.patch
Patch0030: patch030-backport-remove-some-code.patch
Patch0031: patch031-backport-Add-CRC-check-of-commitlog.patch
Patch0032: patch032-backport-Clear-POP_CK-when-sending-messages.patch
Patch0033: patch033-backport-Lock-granularity-issue-causing-LMQ-message-loss.patch
BuildRequires: java-1.8.0-openjdk-devel, maven, maven-local, git
Requires: java-1.8.0-openjdk-devel

%description
Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.

%prep
# -T is passed to %%setup to not re-extract the archive
# -D is passed to %%setup to not delete the existing archive dir
# -N to disable automatic patching
%autosetup  -v -S git -n %{name}-all-%{version}-source-release -N
# -M Apply patches up to 999
# -m Apply patches greater to 24
%autopatch -m 24

%build
mvn -Prelease-all -DskipTests clean package -U

%install
cd %{_builddir}/rocketmq-all-5.1.5-source-release/distribution/target
mkdir -p $RPM_BUILD_ROOT%{_prefix}
cp -pr %{_builddir}/rocketmq-all-5.1.5-source-release/distribution/target/rocketmq-5.1.5-SNAPSHOT/rocketmq-5.1.5-SNAPSHOT/* $RPM_BUILD_ROOT%{_prefix}


%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD

%files
%defattr(-,root,root)
%attr(-,rocketmq,rocketmq) %{_prefix}
%dir %attr(755, rocketmq, rocketmq) %{_prefix}

%pre
getent group rocketmq >/dev/null || groupadd -r rocketmq
getent passwd rocketmq >/dev/null || useradd -r -g rocketmq -d / -s /sbin/nologin rocketmq
exit 0


%changelog
* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-34
- backport Lock granularity issue causing LMQ message loss

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-33
- backport Clear POP_CK when sending messages

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-32
- backport Add the CRC check of commitlog

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-31
- backport remove some code

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-30
- backport Introduce a new event NettyEventType.ACTIVE

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-29
- backport fix proxy client language error

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-28
- backport Utilizing cache to avoid duplicate parsing

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-27
- backport AddBroker removes parsing configuration from body

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-26
- backport Fix channel connect issue

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-25
- backport some format and doc

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-24
- backport some bugfixes

* Fri Dec 8 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-23
- backport support kv storage

* Tue Dec 5 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-22
- backport some enhancements

* Tue Dec 5 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-21
- backport add goaway mechanism

* Mon Nov 20 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-20
- backport some bugfixes

* Mon Nov 20 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-19
- backport some enhancement of tiered storage

* Mon Nov 20 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-18
- backport-Convergent-thread-pool-creation

* Mon Oct 30 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-17
- backport Optimize fault tolerant-mechanism

* Mon Oct 30 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-16
- backport some bug fixes

* Mon Oct 30 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-15
- backport queue selection strategy

* Fri Oct 6 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-14
- backport enhance admin output

* Mon Oct 2 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-13
- backport enhance medata to json

* Sun Oct 1 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-12
- backport optimize config

* Sun Oct 1 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-11
- backport add some fixes

* Wed Sep 20 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-10
- backport support kv storage

* Tue Sep 19 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-9
- backport add allow boundary type

* Tue Sep 19 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-8
- backport fix some docs error

* Fri Sep 15 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-7
- backport auto batch producer

* Fri Sep 15 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-6
- backport fix some bugs

* Fri Sep 15 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-5
- backport Support Proxy Protocol for gRPC and Remoting Server

* Fri Sep 15 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-4
- backport refactor receipt processor

* Wed Sep 13 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-3
- backport some enhancement

* Fri Sep 08 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-2
- fix some bugs

* Thu Aug 17 2023 ShiZhili <shizhili_yewu@cmss.chinamobile.com> - 5.1.3-1
- init rocketmq spec