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 \