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}/*