This is an automated email from the ASF dual-hosted git repository.

sekikn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bigtop.git


The following commit(s) were added to refs/heads/master by this push:
     new 9d6a00c2 BIGTOP-3806: Support parent directory configuration for Flink 
rpm build script (#1004)
9d6a00c2 is described below

commit 9d6a00c28b15d00a54c42a04ccc95c958b0da045
Author: Zhiguo Wu <[email protected]>
AuthorDate: Mon Sep 12 21:50:03 2022 +0800

    BIGTOP-3806: Support parent directory configuration for Flink rpm build 
script (#1004)
    
    * BIGTOP-3806: Support parent directory configuration for Flink rpm build 
script
    
    * change hadoop dir
---
 bigtop-packages/src/common/flink/install_flink.sh | 45 +++++++++++++-------
 bigtop-packages/src/rpm/flink/SPECS/flink.spec    | 52 ++++++++++++++++-------
 2 files changed, 67 insertions(+), 30 deletions(-)

diff --git a/bigtop-packages/src/common/flink/install_flink.sh 
b/bigtop-packages/src/common/flink/install_flink.sh
index ac8e5b66..4d58f86f 100644
--- a/bigtop-packages/src/common/flink/install_flink.sh
+++ b/bigtop-packages/src/common/flink/install_flink.sh
@@ -27,8 +27,10 @@ usage: $0 <options>
 
   Optional options:
      --lib-dir=DIR               path to install flink home [/usr/lib/flink]
-     --installed-lib-dir=DIR     path where lib-dir will end up on target 
system
      --bin-dir=DIR               path to install bins [/usr/bin]
+     --lib-hadoop=DIR            path to hadoop home [/usr/lib/hadoop]
+     --etc-flink=DIR             path to install flink conf [/etc/flink]
+     --etc-hadoop=DIR            path to hadoop conf [/etc/hadoop]
      ... [ see source for more similar options ]
   "
   exit 1
@@ -39,8 +41,10 @@ OPTS=$(getopt \
   -o '' \
   -l 'prefix:' \
   -l 'lib-dir:' \
-  -l 'installed-lib-dir:' \
   -l 'bin-dir:' \
+  -l 'lib-hadoop:' \
+  -l 'etc-flink:' \
+  -l 'etc-hadoop:' \
   -l 'source-dir:' \
   -l 'build-dir:' -- "$@")
 
@@ -63,12 +67,18 @@ while true ; do
         --lib-dir)
         LIB_DIR=$2 ; shift 2
         ;;
-        --installed-lib-dir)
-        INSTALLED_LIB_DIR=$2 ; shift 2
-        ;;
         --bin-dir)
         BIN_DIR=$2 ; shift 2
         ;;
+        --lib-hadoop)
+        LIB_HADOOP=$2 ; shift 2
+        ;;
+        --etc-flink)
+        ETC_FLINK=$2 ; shift 2
+        ;;
+        --etc-hadoop)
+        ETC_HADOOP=$2 ; shift 2
+        ;;
         --)
         shift ; break
         ;;
@@ -94,15 +104,20 @@ fi
 
 
 LIB_DIR=${LIB_DIR:-/usr/lib/flink}
-INSTALLED_LIB_DIR=${INSTALLED_LIB_DIR:-/usr/lib/flink}
 BIN_DIR=${BIN_DIR:-/usr/bin}
-CONF_DIR=${CONF_DIR:-/etc/flink/conf.dist}
+LIB_HADOOP=${LIB_HADOOP:-/usr/lib/hadoop}
+
+ETC_FLINK=${ETC_FLINK:-/etc/flink}
+ETC_HADOOP=${ETC_HADOOP:-/etc/hadoop}
+# No prefix
+NP_ETC_FLINK=/etc/flink
 
 install -d -m 0755 $PREFIX/$LIB_DIR
 install -d -m 0755 $PREFIX/$LIB_DIR/bin
 install -d -m 0755 $PREFIX/$LIB_DIR/lib
 install -d -m 0755 $PREFIX/$LIB_DIR/examples
-install -d -m 0755 $PREFIX/$CONF_DIR
+install -d -m 0755 $PREFIX/$NP_ETC_FLINK
+install -d -m 0755 $PREFIX/$ETC_FLINK/conf.dist
 install -d -m 0755 $PREFIX/var/log/flink
 install -d -m 0755 $PREFIX/var/log/flink-cli
 install -d -m 0755 $PREFIX/var/run/flink
@@ -115,8 +130,8 @@ rm -rf $PREFIX/${LIB_DIR}/bin/*.cmd
 rm -rf  $PREFIX/${LIB_DIR}/log
 
 # Copy the configuration files
-cp -a ${BUILD_DIR}/conf/* $PREFIX/$CONF_DIR
-ln -s /etc/flink/conf $PREFIX/$LIB_DIR/conf
+cp -a ${BUILD_DIR}/conf/* $PREFIX/$ETC_FLINK/conf.dist
+ln -s $NP_ETC_FLINK/conf $PREFIX/$LIB_DIR/conf
 
 cp -ra ${BUILD_DIR}/examples/* $PREFIX/${LIB_DIR}/examples/
 
@@ -130,12 +145,12 @@ cat > $PREFIX/$BIN_DIR/flink <<EOF
 # Autodetect JAVA_HOME if not defined
 . /usr/lib/bigtop-utils/bigtop-detect-javahome
 
-export HADOOP_HOME=\${HADOOP_HOME:-/usr/lib/hadoop}
-export HADOOP_CONF_DIR=\${HADOOP_CONF_DIR:-/etc/hadoop/conf}
-export FLINK_HOME=\${FLINK_HOME:-$INSTALLED_LIB_DIR}
-export FLINK_CONF_DIR=\${FLINK_CONF_DIR:-$CONF_DIR}
+export HADOOP_HOME=\${HADOOP_HOME:-$LIB_HADOOP}
+export HADOOP_CONF_DIR=\${HADOOP_CONF_DIR:-$ETC_HADOOP/conf}
+export FLINK_HOME=\${FLINK_HOME:-$LIB_DIR}
+export FLINK_CONF_DIR=\${FLINK_CONF_DIR:-$ETC_FLINK/conf.dist}
 export FLINK_LOG_DIR=\${FLINK_LOG_DIR:-/var/log/flink-cli}
 
-exec $INSTALLED_LIB_DIR/bin/flink "\$@"
+exec $LIB_DIR/bin/flink "\$@"
 EOF
 chmod 755 $PREFIX/$BIN_DIR/flink
diff --git a/bigtop-packages/src/rpm/flink/SPECS/flink.spec 
b/bigtop-packages/src/rpm/flink/SPECS/flink.spec
index 79b96420..21332ffb 100644
--- a/bigtop-packages/src/rpm/flink/SPECS/flink.spec
+++ b/bigtop-packages/src/rpm/flink/SPECS/flink.spec
@@ -14,24 +14,37 @@
 # limitations under the License.
 
 %define flink_name flink
-%define lib_flink /usr/lib/%{flink_name}
-%define bin_flink /usr/bin
-%define etc_flink /etc/%{flink_name}
-%define config_flink %{etc_flink}/conf
-%define man_dir %{_mandir}
+
+%define etc_default %{parent_dir}/etc/default
+
+%define usr_lib_flink %{parent_dir}/usr/lib/%{flink_name}
+%define var_lib_flink %{parent_dir}/var/lib/%{flink_name}
+%define etc_flink %{parent_dir}/etc/%{flink_name}
+
+%define usr_lib_hadoop %{parent_dir}/usr/lib/hadoop
+%define etc_hadoop %{parent_dir}/etc/hadoop
+
+%define bin_dir %{parent_dir}/%{_bindir}
+%define man_dir %{parent_dir}/%{_mandir}
+%define doc_dir %{parent_dir}/%{_docdir}
+
+# No prefix directory
+%define np_var_log_flink /var/log/%{flink_name}
+%define np_etc_flink /etc/%{flink_name}
+
 %define flink_services flink-jobmanager flink-taskmanager
-%define var_log_flink /var/log/%{flink_name}
 %define build_target_flink 
flink-dist/target/%{flink_name}-%{flink_version}-bin/%{flink_name}-%{flink_version}/
+
 %global __python %{__python3}
 
 
 %if  %{!?suse_version:1}0
-%define doc_flink %{_docdir}/%{flink_name}-%{flink_version}
+%define doc_flink %{doc_dir}/%{flink_name}-%{flink_version}
 %define alternatives_cmd alternatives
 %define build_flink 
%{_builddir}/%{flink_name}-%{flink_version}/flink-dist/target/%{flink_name}-%{flink_version}-bin/%{flink_name}-%{flink_version}/
 %global initd_dir %{_sysconfdir}/rc.d/init.d
 %else
-%define doc_flink %{_docdir}/%{flink_name}-%{flink_version}
+%define doc_flink %{doc_dir}/%{flink_name}-%{flink_version}
 %define alternatives_cmd update-alternatives
 %global initd_dir %{_sysconfdir}/rc.d
 %endif
@@ -118,7 +131,15 @@ bash $RPM_SOURCE_DIR/do-component-build
 %install
 %__rm -rf $RPM_BUILD_ROOT
 
-sh -x %{SOURCE2} --prefix=$RPM_BUILD_ROOT --source-dir=$RPM_SOURCE_DIR 
--build-dir=`pwd`/%{build_target_flink}
+sh -x %{SOURCE2} \
+    --prefix=$RPM_BUILD_ROOT \
+    --source-dir=$RPM_SOURCE_DIR \
+    --build-dir=`pwd`/%{build_target_flink} \
+    --lib-dir=%{usr_lib_flink} \
+    --bin-dir=%{bin_dir} \
+    --lib-hadoop=%{usr_lib_hadoop} \
+    --etc-flink=%{etc_flink} \
+    --etc-hadoop=%{etc_hadoop}
 
 for service in %{flink_services}
 do
@@ -129,23 +150,24 @@ done
 
 %pre
 getent group flink >/dev/null || groupadd -r flink
-getent passwd flink >/dev/null || useradd -c "Flink" -s /sbin/nologin -g flink 
-r -d %{lib_flink} flink 2> /dev/null || :
+getent passwd flink >/dev/null || useradd -c "Flink" -s /sbin/nologin -g flink 
-r -d %{usr_lib_flink} flink 2> /dev/null || :
 
 %post
-%{alternatives_cmd} --install %{config_flink} %{flink_name}-conf 
%{config_flink}.dist 30
+%{alternatives_cmd} --install %{np_etc_flink}/conf %{flink_name}-conf 
%{etc_flink}/conf.dist 30
 
 ###### FILES ###########
 
 %files
 %defattr(-,root,root,755)
-%config(noreplace) %{config_flink}.dist
+%config(noreplace) %{etc_flink}/conf.dist
+%attr(0755,flink,flink) %{np_etc_flink}
 
 %dir %{_sysconfdir}/%{flink_name}
 #%doc %{doc_flink}
-%attr(0755,flink,flink) %{var_log_flink}
+%attr(0755,flink,flink) %{np_var_log_flink}
 %attr(0767,flink,flink) /var/log/flink-cli
-%{lib_flink}
-%{bin_flink}/flink
+%{usr_lib_flink}
+%{bin_dir}/flink
 
 %define service_macro() \
 %files %1 \

Reply via email to