diff --git a/1002-Add-RISC-V-support-for-frontend-maven-plugin.patch b/1002-Add-RISC-V-support-for-frontend-maven-plugin.patch new file mode 100644 index 0000000000000000000000000000000000000000..a99225444a2cacbf18c85912d956e18a6bd6aaaa --- /dev/null +++ b/1002-Add-RISC-V-support-for-frontend-maven-plugin.patch @@ -0,0 +1,31 @@ +From d193fc6f8a272c661ba4b0603b01ef0d36185812 Mon Sep 17 00:00:00 2001 +From: Dingli Zhang +Date: Sun, 5 May 2024 11:27:18 +0800 +Subject: [PATCH] Add RISC-V support for frontend-maven-plugin + + +diff --git a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java +index 3bdb029..2f82c1e 100644 +--- a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java ++++ b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java +@@ -2,7 +2,7 @@ package com.github.eirslett.maven.plugins.frontend.lib; + + import java.io.File; + +-enum Architecture { x86, x64, ppc64le, s390x, arm64, armv7l; ++enum Architecture { x86, x64, ppc64le, s390x, arm64, armv7l, riscv64; + public static Architecture guess(){ + String arch = System.getProperty("os.arch"); + String version = System.getProperty("os.version"); +@@ -15,6 +15,8 @@ enum Architecture { x86, x64, ppc64le, s390x, arm64, armv7l; + return s390x; + } else if (arch.equals("arm") && version.contains("v7")) { + return armv7l; ++ } else if (arch.equals("riscv64")) { ++ return riscv64; + } else { + return arch.contains("64") ? x64 : x86; + } +-- +2.41.0 + diff --git a/flink.spec b/flink.spec index e7e6b850a83412fca2e703a9f41fcf29b4922315..442c79c44622baba1a01204ff0c4a0bea907261f 100644 --- a/flink.spec +++ b/flink.spec @@ -11,7 +11,7 @@ Name: flink Version: 1.17.1 -Release: 5 +Release: 6 Summary: Stateful Computations over Data Streams License: Apache License v2.0 URL: https://github.com/apache/%{name} @@ -24,6 +24,8 @@ Source6: npm-8.1.2.tar.gz Source7: https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.7.tar.gz Source8: https://github.com/os72/protoc-jar/archive/refs/tags/v3.11.4.tar.gz Source9: https://github.com/os72/protoc-jar-maven-plugin/archive/refs/tags/v3.11.4.zip +Source10: https://github.com/eirslett/frontend-maven-plugin/archive/refs/tags/frontend-plugins-1.11.0.tar.gz +Source11: https://unofficial-builds.nodejs.org/download/release/v18.0.0/node-v18.0.0-linux-riscv64.tar.gz Patch0: 0001-add-npm.hw-repo.patch Patch1: 0002-fix-compilation-failure.patch @@ -32,6 +34,7 @@ Patch3: 0004-update-npm.hw-repo.patch Patch4: 0005-upgrade-os-maven-plugin-to-1.7.1.patch Patch1000: 1000-Add-protoc-java-support-for-riscv64.patch Patch1001: 1001-Added-support-for-building-the-riscv64-protoc-binari.patch +Patch1002: 1002-Add-RISC-V-support-for-frontend-maven-plugin.patch BuildRequires: java-1.8.0-openjdk-devel maven npm Requires: java-1.8.0-openjdk %ifarch riscv64 @@ -42,18 +45,14 @@ BuildRequires: autoconf automake libtool pkgconfig zlib-devel libstdc++-static Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale. %prep +%setup -n %{name}-release-%{version} +%autopatch -M999 -p1 %ifarch riscv64 -%setup -qn %{name}-release-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 mkdir -p ${HOME}/%{name}-prep_dir # protoc tar -mxf %{SOURCE7} -C ${HOME}/%{name}-prep_dir pushd ${HOME}/%{name}-prep_dir/protobuf-3.21.7 -%patch1001 -p1 +%patch 1001 -p1 ./autogen.sh ./protoc-artifacts/build-protoc.sh linux riscv64 protoc mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.21.7 -Dclassifier=linux-riscv64 -Dpackaging=exe -Dfile=protoc-artifacts/target/linux/riscv64/protoc.exe @@ -61,7 +60,7 @@ popd # protoc-jar tar -mxf %{SOURCE8} -C ${HOME}/%{name}-prep_dir pushd ${HOME}/%{name}-prep_dir/protoc-jar-3.11.4 -%patch1000 -p1 +%patch 1000 -p1 mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true popd # protoc-jar-maven-plugin @@ -69,9 +68,17 @@ unzip %{SOURCE9} -d ${HOME}/%{name}-prep_dir pushd ${HOME}/%{name}-prep_dir/protoc-jar-maven-plugin-3.11.4 mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true popd -%else -%setup -n %{name}-release-%{version} -%autopatch -M999 -p1 +# frontend-plugin +tar -mxf %{SOURCE10} -C ${HOME}/%{name}-prep_dir +pushd ${HOME}/%{name}-prep_dir/frontend-maven-plugin-frontend-plugins-1.11.0 +%patch 1002 -p1 +mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true +popd +# Use nodejs-18 for riscv64 +sed -i 's/v16.13.2/v18.0.0/g' flink-runtime-web/pom.xml +mkdir -p ${HOME}/.m2/repository/com/github/eirslett/node/18.0.0/ +cp %{SOURCE11} ${HOME}/.m2/repository/com/github/eirslett/node/18.0.0/ +mv ${HOME}/.m2/repository/com/github/eirslett/node/18.0.0/node-v18.0.0-linux-riscv64.tar.gz ${HOME}/.m2/repository/com/github/eirslett/node/18.0.0/node-18.0.0-linux-riscv64.tar.gz %endif mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=7.2.2 -Dpackaging=jar -Dfile=%{SOURCE2} mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-avro-serializer -Dversion=7.2.2 -Dpackaging=jar -Dfile=%{SOURCE3} @@ -84,11 +91,9 @@ cp %{SOURCE6} ${HOME}/.m2/repository/com/github/eirslett/npm/8.1.2/ %ifarch riscv64 export MAVEN_OPTS="-Xms10240m -Xmx10240m -Xss2m -XX:MaxTenuringThreshold=0" export JAVA_TOOL_OPTIONS="-Xms10240m -Xmx10240m" -mvn clean install -DskipTests -Dfast -T 2 -Pskip-webui-build -%else +%endif npm config set registry https://repo.huaweicloud.com/repository/npm/ mvn clean install -DskipTests -Dfast -T 2 -%endif %install mkdir -p %{buildroot}/opt/ @@ -102,6 +107,10 @@ find %{buildroot}/opt/apache-%{name}-%{version}/ -type f -name '*.py' | xargs -i %license LICENSE %changelog +* Tue Jan 14 2025 Dingli Zhang - 1.17.1-6 +- Use nodejs-18 to enable webui for riscv64 +- Remove unused source file + * Tue Dec 10 2024 shenzhongwei - 1.17.1-5 - include all patches in the source package. diff --git a/frontend-plugins-1.11.0.tar.gz b/frontend-plugins-1.11.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4d5613e07367746d2bcd42cfc3d5357dbb066502 Binary files /dev/null and b/frontend-plugins-1.11.0.tar.gz differ diff --git a/node-16.13.2-linux-arm64.tar.gz b/node-v18.0.0-linux-riscv64.tar.gz similarity index 65% rename from node-16.13.2-linux-arm64.tar.gz rename to node-v18.0.0-linux-riscv64.tar.gz index 2f18dded514ceddb73cb88586c20831824b00982..6d3879078332842ed93fd3601d9d4164dc586491 100644 Binary files a/node-16.13.2-linux-arm64.tar.gz and b/node-v18.0.0-linux-riscv64.tar.gz differ