diff --git a/0004-netty-to-4.1.89.patch b/0004-netty-to-4.1.89.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2d6b6b29e4ae9358151e6f2f93864c8400f512d4
--- /dev/null
+++ b/0004-netty-to-4.1.89.patch
@@ -0,0 +1,129 @@
+diff --git a/buildtools/pom.xml b/buildtools/pom.xml
+index 0197f03326..1a805dee6c 100644
+--- a/buildtools/pom.xml
++++ b/buildtools/pom.xml
+@@ -131,7 +131,7 @@
+
+ io.netty
+ netty-common
+- 4.1.86.Final
++ 4.1.89.Final
+ test
+
+
+diff --git a/distribution/server/src/assemble/LICENSE.bin.txt b/distribution/server/src/assemble/LICENSE.bin.txt
+index 1ce81c7344..adda602fd3 100644
+--- a/distribution/server/src/assemble/LICENSE.bin.txt
++++ b/distribution/server/src/assemble/LICENSE.bin.txt
+@@ -352,24 +352,27 @@ The Apache Software License, Version 2.0
+ - org.apache.commons-commons-compress-1.21.jar
+ - org.apache.commons-commons-lang3-3.11.jar
+ * Netty
+- - io.netty-netty-buffer-4.1.87.Final.jar
+- - io.netty-netty-codec-4.1.87.Final.jar
+- - io.netty-netty-codec-dns-4.1.87.Final.jar
+- - io.netty-netty-codec-http-4.1.87.Final.jar
+- - io.netty-netty-codec-http2-4.1.87.Final.jar
+- - io.netty-netty-codec-socks-4.1.87.Final.jar
+- - io.netty-netty-codec-haproxy-4.1.87.Final.jar
+- - io.netty-netty-common-4.1.87.Final.jar
+- - io.netty-netty-handler-4.1.87.Final.jar
+- - io.netty-netty-handler-proxy-4.1.87.Final.jar
+- - io.netty-netty-resolver-4.1.87.Final.jar
+- - io.netty-netty-resolver-dns-4.1.87.Final.jar
+- - io.netty-netty-transport-4.1.87.Final.jar
+- - io.netty-netty-transport-classes-epoll-4.1.87.Final.jar
+- - io.netty-netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar
+- - io.netty-netty-transport-native-epoll-4.1.87.Final.jar
+- - io.netty-netty-transport-native-unix-common-4.1.87.Final.jar
+- - io.netty-netty-transport-native-unix-common-4.1.87.Final-linux-x86_64.jar
++ - io.netty-netty-buffer-4.1.89.Final.jar
++ - io.netty-netty-codec-4.1.89.Final.jar
++ - io.netty-netty-codec-dns-4.1.89.Final.jar
++ - io.netty-netty-codec-http-4.1.89.Final.jar
++ - io.netty-netty-codec-http2-4.1.89.Final.jar
++ - io.netty-netty-codec-socks-4.1.89.Final.jar
++ - io.netty-netty-codec-haproxy-4.1.89.Final.jar
++ - io.netty-netty-common-4.1.89.Final.jar
++ - io.netty-netty-handler-4.1.89.Final.jar
++ - io.netty-netty-handler-proxy-4.1.89.Final.jar
++ - io.netty-netty-resolver-4.1.89.Final.jar
++ - io.netty-netty-resolver-dns-4.1.89.Final.jar
++ - io.netty-netty-resolver-dns-classes-macos-4.1.89.Final.jar
++ - io.netty-netty-resolver-dns-native-macos-4.1.89.Final-osx-aarch_64.jar
++ - io.netty-netty-resolver-dns-native-macos-4.1.89.Final-osx-x86_64.jar
++ - io.netty-netty-transport-4.1.89.Final.jar
++ - io.netty-netty-transport-classes-epoll-4.1.89.Final.jar
++ - io.netty-netty-transport-native-epoll-4.1.89.Final-linux-x86_64.jar
++ - io.netty-netty-transport-native-epoll-4.1.89.Final.jar
++ - io.netty-netty-transport-native-unix-common-4.1.89.Final.jar
++ - io.netty-netty-transport-native-unix-common-4.1.89.Final-linux-x86_64.jar
+ - io.netty-netty-tcnative-boringssl-static-2.0.56.Final.jar
+ - io.netty-netty-tcnative-boringssl-static-2.0.56.Final-linux-aarch_64.jar
+ - io.netty-netty-tcnative-boringssl-static-2.0.56.Final-linux-x86_64.jar
+diff --git a/pom.xml b/pom.xml
+index 69adebd4df..c6d8955faa 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -110,8 +110,8 @@ flexible messaging model and an intuitive client API.
+ 1.1.7
+ 3.2.5
+ 5.1.0
+- 4.1.87.Final
+- 0.0.17.Final
++ 4.1.89.Final
++ 0.0.18.Final
+ 9.4.48.v20220622
+ 2.5.2
+ 2.34
+diff --git a/pulsar-sql/presto-distribution/LICENSE b/pulsar-sql/presto-distribution/LICENSE
+index 4087b9e83e..a2ab984cd4 100644
+--- a/pulsar-sql/presto-distribution/LICENSE
++++ b/pulsar-sql/presto-distribution/LICENSE
+@@ -232,18 +232,18 @@ The Apache Software License, Version 2.0
+ - commons-lang3-3.11.jar
+ * Netty
+ - netty-3.10.6.Final.jar
+- - netty-buffer-4.1.87.Final.jar
+- - netty-codec-4.1.87.Final.jar
+- - netty-codec-dns-4.1.87.Final.jar
+- - netty-codec-http-4.1.87.Final.jar
+- - netty-codec-haproxy-4.1.87.Final.jar
+- - netty-codec-socks-4.1.87.Final.jar
+- - netty-handler-proxy-4.1.87.Final.jar
+- - netty-common-4.1.87.Final.jar
+- - netty-handler-4.1.87.Final.jar
++ - netty-buffer-4.1.89.Final.jar
++ - netty-codec-4.1.89.Final.jar
++ - netty-codec-dns-4.1.89.Final.jar
++ - netty-codec-http-4.1.89.Final.jar
++ - netty-codec-haproxy-4.1.89.Final.jar
++ - netty-codec-socks-4.1.89.Final.jar
++ - netty-handler-proxy-4.1.89.Final.jar
++ - netty-common-4.1.89.Final.jar
++ - netty-handler-4.1.89.Final.jar
+ - netty-reactive-streams-2.0.6.jar
+- - netty-resolver-4.1.87.Final.jar
+- - netty-resolver-dns-4.1.87.Final.jar
++ - netty-resolver-4.1.89.Final.jar
++ - netty-resolver-dns-4.1.89.Final.jar
+ - netty-tcnative-boringssl-static-2.0.56.Final.jar
+ - netty-tcnative-boringssl-static-2.0.56.Final-linux-aarch_64.jar
+ - netty-tcnative-boringssl-static-2.0.56.Final-linux-x86_64.jar
+@@ -251,11 +251,11 @@ The Apache Software License, Version 2.0
+ - netty-tcnative-boringssl-static-2.0.56.Final-osx-x86_64.jar
+ - netty-tcnative-boringssl-static-2.0.56.Final-windows-x86_64.jar
+ - netty-tcnative-classes-2.0.56.Final.jar
+- - netty-transport-4.1.87.Final.jar
+- - netty-transport-classes-epoll-4.1.87.Final.jar
+- - netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar
+- - netty-transport-native-unix-common-4.1.87.Final.jar
+- - netty-transport-native-unix-common-4.1.87.Final-linux-x86_64.jar
++ - netty-transport-4.1.89.Final.jar
++ - netty-transport-classes-epoll-4.1.89.Final.jar
++ - netty-transport-native-epoll-4.1.89.Final-linux-x86_64.jar
++ - netty-transport-native-unix-common-4.1.89.Final.jar
++ - netty-transport-native-unix-common-4.1.89.Final-linux-x86_64.jar
+ - netty-codec-http2-4.1.87.Final.jar
+ * GRPC
+ - grpc-api-1.45.1.jar
diff --git a/pulsar.spec b/pulsar.spec
index bcd9d4d5ed5af7387bab4ad0f001d45592131855..5c77a6af518c019f5f8e789285a1adc9941a2d67 100644
--- a/pulsar.spec
+++ b/pulsar.spec
@@ -1,6 +1,6 @@
%define debug_package %{nil}
%define pulsar_ver 2.10.4
-%define pkg_ver 3
+%define pkg_ver 4
%define _prefix /opt/pulsar
Summary: Cloud-Native, Distributed Messaging and Streaming
Name: pulsar
@@ -13,6 +13,7 @@ Source0: https://archive.apache.org/dist/pulsar/pulsar-2.10.4/apache-pulsar-2.10
Patch0001: 0001-use-huawei-repository.patch
Patch0002: 0002-resolve-cve-2023-32697.patch
Patch0003: 0003-CVE-2023-2976.patch
+Patch0004: 0004-netty-to-4.1.89.patch
BuildRoot: /root/rpmbuild/BUILDROOT/
BuildRequires: java-1.8.0-openjdk-devel,maven,systemd
Requires: java-1.8.0-openjdk,systemd
@@ -28,6 +29,7 @@ Pulsar is a distributed pub-sub messaging platform with a very flexible messagin
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
+%patch0004 -p1
%build
mvn clean install -Pcore-modules,-main -DskipTests
@@ -53,6 +55,8 @@ getent passwd pulsar >/dev/null || useradd -r -g pulsar -d / -s /sbin/nologin pu
exit 0
%changelog
+* Fri Dec 1 2023 Dapeng Sun - 2.10.4-4
+- upgrade netty to 4.1.89
* Mon Nov 27 2023 Dapeng Sun - 2.10.4-3
- resolve CVE-2023-2976
* Thu Aug 24 2023 Jialing Wang - 2.10.4-2