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 cde5db11 BIGTOP-3796: Support parent directory configuration for 
Zookeeper rpm build script (#995)
cde5db11 is described below

commit cde5db115e78f6a75a83c5b71dbe1f90759324f7
Author: Zhiguo Wu <[email protected]>
AuthorDate: Mon Sep 12 08:04:02 2022 +0800

    BIGTOP-3796: Support parent directory configuration for Zookeeper rpm build 
script (#995)
    
    * BIGTOP-3796: Support parent directory configuration for Zookeeper rpm 
build script
    
    * fix conf symlink
---
 .../src/common/zookeeper/install_zookeeper.sh      | 34 +++++++---
 .../src/rpm/zookeeper/SPECS/zookeeper.spec         | 79 +++++++++++++---------
 2 files changed, 74 insertions(+), 39 deletions(-)

diff --git a/bigtop-packages/src/common/zookeeper/install_zookeeper.sh 
b/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
index ac20097e..fc4f5806 100755
--- a/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
+++ b/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
@@ -28,6 +28,9 @@ usage: $0 <options>
      --doc-dir=DIR               path to install docs into 
[/usr/share/doc/zookeeper]
      --lib-dir=DIR               path to install zookeeper home 
[/usr/lib/zookeeper]
      --bin-dir=DIR               path to install bins [/usr/bin]
+     --man-dir=DIR               path to install mans [/usr/share/man]
+     --conf-dist-dir=DIR         path to install conf dist dir 
[/etc/zookeeper/conf.dist]
+     --etc-default=DIR           path to bigtop default dir [/etc/default]
      --examples-dir=DIR          path to install examples [doc-dir/examples]
      --system-include-dir=DIR    path to install development headers 
[/usr/include]
      --system-lib-dir=DIR        path to install native libraries [/usr/lib]
@@ -43,6 +46,9 @@ OPTS=$(getopt \
   -l 'doc-dir:' \
   -l 'lib-dir:' \
   -l 'bin-dir:' \
+  -l 'man-dir:' \
+  -l 'conf-dist-dir:' \
+  -l 'etc-default:' \
   -l 'examples-dir:' \
   -l 'system-include-dir:' \
   -l 'system-lib-dir:' \
@@ -70,6 +76,15 @@ while true ; do
         --bin-dir)
         BIN_DIR=$2 ; shift 2
         ;;
+        --man-dir)
+        MAN_DIR=$2 ; shift 2
+        ;;
+        --conf-dist-dir)
+        CONF_DIST_DIR=$2 ; shift 2
+        ;;
+        --etc-default)
+        ETC_DEFAULT=$2 ; shift 2
+        ;;
         --examples-dir)
         EXAMPLES_DIR=$2 ; shift 2
         ;;
@@ -97,15 +112,17 @@ for var in PREFIX BUILD_DIR ; do
   fi
 done
 
-MAN_DIR=/usr/share/man/man1
+MAN_DIR=${MAN_DIR:-/usr/share/man}/man1
 DOC_DIR=${DOC_DIR:-/usr/share/doc/zookeeper}
 LIB_DIR=${LIB_DIR:-/usr/lib/zookeeper}
 BIN_DIR=${BIN_DIR:-/usr/bin}
-CONF_DIR=/etc/zookeeper/conf
-CONF_DIST_DIR=/etc/zookeeper/conf.dist/
+ETC_DEFAULT=${ETC_DEFAULT:-/etc/default}
 SYSTEM_INCLUDE_DIR=${SYSTEM_INCLUDE_DIR:-/usr/include}
 SYSTEM_LIB_DIR=${SYSTEM_LIB_DIR:-/usr/lib}
 
+CONF_DIR=/etc/zookeeper/conf
+CONF_DIST_DIR=${CONF_DIST_DIR:-/etc/zookeeper/conf.dist}
+
 tar -z -x -f zookeeper-assembly/target/apache-zookeeper-*-bin.tar.gz
 install -d -m 0755 $PREFIX/$LIB_DIR/
 rm -f $BUILD_DIR/zookeeper-*-javadoc.jar $BUILD_DIR/zookeeper-*-bin.jar 
$BUILD_DIR/zookeeper-*-sources.jar $BUILD_DIR/zookeeper-*-test.jar
@@ -132,6 +149,7 @@ install -d -m 0755 $PREFIX/$LIB_DIR/lib
 cp $BUILD_DIR/lib/*.jar $PREFIX/$LIB_DIR/lib
 
 # Copy in the configuration files
+install -d -m 0755 $PREFIX/etc/zookeeper
 install -d -m 0755 $PREFIX/$CONF_DIST_DIR
 cp zoo.cfg $BUILD_DIR/conf/* $PREFIX/$CONF_DIST_DIR/
 ln -s $CONF_DIR $PREFIX/$LIB_DIR/conf
@@ -144,7 +162,7 @@ for i in zkServer.sh zkEnv.sh zkCli.sh zkCleanup.sh 
zkServer-initialize.sh
        chmod 755 $PREFIX/$LIB_DIR/bin/$i
 done
 
-wrapper=$PREFIX/usr/bin/zookeeper-client
+wrapper=$PREFIX/$BIN_DIR/zookeeper-client
 install -d -m 0755 `dirname $wrapper`
 cat > $wrapper <<EOF
 #!/bin/bash
@@ -161,7 +179,7 @@ EOF
 chmod 755 $wrapper
 
 for pairs in zkServer.sh/zookeeper-server 
zkServer-initialize.sh/zookeeper-server-initialize 
zkCleanup.sh/zookeeper-server-cleanup ; do
-  wrapper=$PREFIX/usr/bin/`basename $pairs`
+  wrapper=$PREFIX/$BIN_DIR/`basename $pairs`
   upstream_script=`dirname $pairs`
   cat > $wrapper <<EOF
 #!/bin/bash
@@ -188,8 +206,8 @@ install -d -m 0755 $PREFIX/$DOC_DIR
 cp -a $BUILD_DIR/docs/* $PREFIX/$DOC_DIR
 cp $BUILD_DIR/*.txt $PREFIX/$DOC_DIR/
 
-install -d -m 0755 ${PREFIX}/etc/default
-cp zookeeper.default ${PREFIX}/etc/default/zookeeper
+install -d -m 0755 $PREFIX/$ETC_DEFAULT
+cp zookeeper.default $PREFIX/$ETC_DEFAULT/zookeeper
 
 install -d -m 0755 $PREFIX/$MAN_DIR
 gzip -c zookeeper.1 > $PREFIX/$MAN_DIR/zookeeper.1.gz
@@ -212,7 +230,7 @@ for binary in ${PREFIX}/${LIB_DIR}-native/*; do
 
 PREFIX=\$(dirname \$(readlink -f \$0))
 export 
LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:\${PREFIX}/../lib:\${PREFIX}/../lib64
-/usr/lib/zookeeper-native/`basename ${binary}` \$@
+${LIB_DIR}-native/`basename ${binary}` \$@
 
 EOF
 done
diff --git a/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec 
b/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
index 7877559c..90a82a76 100644
--- a/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
+++ b/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
@@ -12,19 +12,30 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-%define etc_zookeeper /etc/%{name}
-%define bin_zookeeper %{_bindir}
-%define lib_zookeeper /usr/lib/%{name}
-%define log_zookeeper /var/log/%{name}
-%define run_zookeeper /var/run/%{name}
-%define vlb_zookeeper /var/lib/%{name}
+
+%define etc_default %{parent_dir}/etc/default
+
+%define usr_lib_zookeeper %{parent_dir}/usr/lib/%{name}
+%define var_lib_zookeeper %{parent_dir}/var/lib/%{name}
+%define etc_zookeeper_conf_dist %{parent_dir}/etc/zookeeper/conf.dist
+
+%define bin_dir %{parent_dir}/%{_bindir}
+%define man_dir %{parent_dir}/%{_mandir}
+%define doc_dir %{parent_dir}/%{_docdir}
+%define include_dir %{parent_dir}/%{_includedir}
+%define lib_dir %{parent_dir}/%{_libdir}
+
+# No prefix directory
+%define np_var_log_zookeeper /var/log/%{name}
+%define np_var_run_zookeeper /var/run/%{name}
+%define np_etc_zookeeper /etc/%{name}
+
 %define svc_zookeeper %{name}-server
 %define svc_zookeeper_rest %{name}-rest
-%define man_dir %{_mandir}
 
 %if  %{?suse_version:1}0
 
-# Only tested on openSUSE 11.4. le'ts update it for previous release when 
confirmed
+# Only tested on openSUSE 11.4. let's update it for previous release when 
confirmed
 %if 0%{suse_version} > 1130
 %define suse_check \# Define an empty suse_check for compatibility with older 
sles
 %endif
@@ -40,7 +51,7 @@
     %{nil}
 
 
-%define doc_zookeeper %{_docdir}/%{name}
+%define doc_zookeeper %{doc_dir}/%{name}
 %define alternatives_cmd update-alternatives
 %define alternatives_dep update-alternatives
 %define chkconfig_dep    aaa_base
@@ -49,7 +60,7 @@
 
 %else
 
-%define doc_zookeeper %{_docdir}/%{name}-%{zookeeper_version}
+%define doc_zookeeper %{doc_dir}/%{name}-%{zookeeper_version}
 %define alternatives_cmd alternatives
 %define alternatives_dep chkconfig 
 %define chkconfig_dep    chkconfig
@@ -155,10 +166,15 @@ bash %{SOURCE1}
 cp $RPM_SOURCE_DIR/zookeeper.1 $RPM_SOURCE_DIR/zoo.cfg 
$RPM_SOURCE_DIR/zookeeper.default .
 bash %{SOURCE2} \
           --build-dir=build \
-          --doc-dir=%{doc_zookeeper} \
           --prefix=$RPM_BUILD_ROOT \
-          --system-include-dir=%{_includedir} \
-          --system-lib-dir=%{_libdir}
+          --doc-dir=%{doc_zookeeper} \
+          --lib-dir=%{usr_lib_zookeeper} \
+          --bin-dir=%{bin_dir} \
+          --man-dir=%{man_dir} \
+          --conf-dist-dir=%{etc_zookeeper_conf_dist} \
+          --etc-default=%{etc_default} \
+          --system-include-dir=%{include_dir} \
+          --system-lib-dir=%{lib_dir}
 
 %if  %{?suse_version:1}0
 orig_init_file=%{SOURCE4}
@@ -177,19 +193,19 @@ bash $RPM_SOURCE_DIR/init.d.tmpl 
$RPM_SOURCE_DIR/zookeeper-rest.svc rpm $init_fi
 
 %pre
 getent group zookeeper >/dev/null || groupadd -r zookeeper
-getent passwd zookeeper > /dev/null || useradd -c "ZooKeeper" -s /sbin/nologin 
-g zookeeper -r -d %{vlb_zookeeper} zookeeper 2> /dev/null || :
+getent passwd zookeeper > /dev/null || useradd -c "ZooKeeper" -s /sbin/nologin 
-g zookeeper -r -d %{var_lib_zookeeper} zookeeper 2> /dev/null || :
 
-%__install -d -o zookeeper -g zookeeper -m 0755 %{run_zookeeper}
-%__install -d -o zookeeper -g zookeeper -m 0755 %{log_zookeeper}
+%__install -d -o zookeeper -g zookeeper -m 0755 %{np_var_run_zookeeper}
+%__install -d -o zookeeper -g zookeeper -m 0755 %{np_var_log_zookeeper}
 
 # Manage configuration symlink
 %post
-%{alternatives_cmd} --install %{etc_zookeeper}/conf %{name}-conf 
%{etc_zookeeper}/conf.dist 30
-%__install -d -o zookeeper -g zookeeper -m 0755 %{vlb_zookeeper}
+%{alternatives_cmd} --install %{np_etc_zookeeper}/conf %{name}-conf 
%{etc_zookeeper_conf_dist} 30
+%__install -d -o zookeeper -g zookeeper -m 0755 %{var_lib_zookeeper}
 
 %preun
 if [ "$1" = 0 ]; then
-        %{alternatives_cmd} --remove %{name}-conf %{etc_zookeeper}/conf.dist 
|| :
+        %{alternatives_cmd} --remove %{name}-conf %{etc_zookeeper_conf_dist} 
|| :
 fi
 
 %post server
@@ -225,13 +241,14 @@ fi
 #######################
 %files
 %defattr(-,root,root)
-%config(noreplace) %{etc_zookeeper}/conf.dist
-%config(noreplace) /etc/default/zookeeper
-%{lib_zookeeper}
-%{bin_zookeeper}/zookeeper-server
-%{bin_zookeeper}/zookeeper-server-initialize
-%{bin_zookeeper}/zookeeper-client
-%{bin_zookeeper}/zookeeper-server-cleanup
+%config(noreplace) %{etc_zookeeper_conf_dist}
+%config(noreplace) %{etc_default}/%{name}
+%{np_etc_zookeeper}
+%{usr_lib_zookeeper}
+%{bin_dir}/zookeeper-server
+%{bin_dir}/zookeeper-server-initialize
+%{bin_dir}/zookeeper-client
+%{bin_dir}/zookeeper-server-cleanup
 %doc %{doc_zookeeper}
 %{man_dir}/man1/zookeeper.1.*
 
@@ -243,9 +260,9 @@ fi
 
 %files native
 %defattr(-,root,root)
-%{lib_zookeeper}-native
-%{bin_zookeeper}/cli_*
-%{bin_zookeeper}/load_gen*
-%{_includedir}/zookeeper
-%{_libdir}/*
+%{usr_lib_zookeeper}-native
+%{bin_dir}/cli_*
+%{bin_dir}/load_gen*
+%{include_dir}/zookeeper
+%{lib_dir}/*
 

Reply via email to