You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by se...@apache.org on 2022/09/30 09:14:19 UTC

[bigtop] branch master updated: BIGTOP-3825: Support parent directory configuration for Solr rpm build script (#1022)

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 1b727506 BIGTOP-3825: Support parent directory configuration for Solr rpm build script (#1022)
1b727506 is described below

commit 1b7275064661ad9ef7bc94eb366a895f1c9bc2ae
Author: Zhiguo Wu <wu...@apache.org>
AuthorDate: Fri Sep 30 17:14:13 2022 +0800

    BIGTOP-3825: Support parent directory configuration for Solr rpm build script (#1022)
---
 bigtop-packages/src/common/solr/install_solr.sh | 72 +++++++++++++++----------
 bigtop-packages/src/rpm/solr/SPECS/solr.spec    | 66 ++++++++++++++---------
 2 files changed, 84 insertions(+), 54 deletions(-)

diff --git a/bigtop-packages/src/common/solr/install_solr.sh b/bigtop-packages/src/common/solr/install_solr.sh
index f32e4066..c83c41dd 100644
--- a/bigtop-packages/src/common/solr/install_solr.sh
+++ b/bigtop-packages/src/common/solr/install_solr.sh
@@ -27,10 +27,12 @@ usage: $0 <options>
 
   Optional options:
      --doc-dir=DIR               path to install docs into [/usr/share/doc/solr]
-     --lib-dir=DIR               path to install bits [/usr/lib/solr]
-     --installed-lib-dir=DIR     path where lib-dir will end up on target system
      --bin-dir=DIR               path to install bins [/usr/bin]
-     --examples-dir=DIR          path to install examples [doc-dir/examples]
+     --man-dir=DIR               path to install mans [/usr/share/man]
+     --etc-default=DIR           path to bigtop default dir [/etc/default]
+     --lib-dir=DIR               path to install solr home [/usr/lib/solr]
+     --var-dir=DIR               path to install solr contents [/var/lib/solr]
+     --etc-solr=DIR              path to install solr conf [/etc/solr]
      ... [ see source for more similar options ]
   "
   exit 1
@@ -42,10 +44,12 @@ OPTS=$(getopt \
   -l 'prefix:' \
   -l 'distro-dir:' \
   -l 'doc-dir:' \
-  -l 'lib-dir:' \
-  -l 'installed-lib-dir:' \
   -l 'bin-dir:' \
-  -l 'examples-dir:' \
+  -l 'man-dir:' \
+  -l 'etc-default:' \
+  -l 'lib-dir:' \
+  -l 'var-dir:' \
+  -l 'etc-solr:' \
   -l 'build-dir:' -- "$@")
 
 if [ $? != 0 ] ; then
@@ -67,17 +71,23 @@ while true ; do
         --doc-dir)
         DOC_DIR=$2 ; shift 2
         ;;
+        --bin-dir)
+        BIN_DIR=$2 ; shift 2
+        ;;
+        --man-dir)
+        MAN_DIR=$2 ; shift 2
+        ;;
+        --etc-default)
+        ETC_DEFAULT=$2 ; shift 2
+        ;;
         --lib-dir)
         LIB_DIR=$2 ; shift 2
         ;;
-        --installed-lib-dir)
-        INSTALLED_LIB_DIR=$2 ; shift 2
-        ;;
-        --bin-dir)
-        BIN_DIR=$2 ; shift 2
+        --var-dir)
+        VAR_DIR=$2 ; shift 2
         ;;
-        --examples-dir)
-        EXAMPLES_DIR=$2 ; shift 2
+        --etc-solr)
+        ETC_SOLR=$2 ; shift 2
         ;;
         --)
         shift ; break
@@ -97,16 +107,16 @@ for var in PREFIX BUILD_DIR DISTRO_DIR ; do
   fi
 done
 
-MAN_DIR=${MAN_DIR:-/usr/share/man/man1}
+MAN_DIR=${MAN_DIR:-/usr/share/man}/man1
 DOC_DIR=${DOC_DIR:-/usr/share/doc/solr}
-LIB_DIR=${LIB_DIR:-/usr/lib/solr}
-INSTALLED_LIB_DIR=${INSTALLED_LIB_DIR:-/usr/lib/solr}
-EXAMPLES_DIR=${EXAMPLES_DIR:-$DOC_DIR/examples}
 BIN_DIR=${BIN_DIR:-/usr/bin}
-CONF_DIR=${CONF_DIR:-/etc/solr/conf}
-DEFAULT_DIR=${ETC_DIR:-/etc/default}
+ETC_DEFAULT=${ETC_DEFAULT:-/etc/default}
+LIB_DIR=${LIB_DIR:-/usr/lib/solr}
+VAR_DIR=${VAR_DIR:-/var/lib/solr}
 
-VAR_DIR=$PREFIX/var
+ETC_SOLR=${ETC_SOLR:-/etc/solr}
+# No prefix
+NP_ETC_SOLR=/etc/solr
 
 install -d -m 0755 $PREFIX/$LIB_DIR
 cp -ra ${BUILD_DIR}/dist $PREFIX/$LIB_DIR/lib
@@ -136,20 +146,24 @@ cp -ra ${BUILD_DIR}/docs/* $PREFIX/$DOC_DIR
 cp -ra ${BUILD_DIR}/example/ $PREFIX/$DOC_DIR/
 
 # Copy in the configuration files
-install -d -m 0755 $PREFIX/$DEFAULT_DIR
-cp $DISTRO_DIR/solr.default $PREFIX/$DEFAULT_DIR/solr
-cp $DISTRO_DIR/solr.in.sh $PREFIX/$DEFAULT_DIR/solr.in.sh
-install -d -m 0755 $PREFIX/${CONF_DIR}.dist
-cp -a ${BUILD_DIR}/server/resources/* $PREFIX/${CONF_DIR}.dist
+install -d -m 0755 $PREFIX/$ETC_DEFAULT
+cp $DISTRO_DIR/solr.default $PREFIX/$ETC_DEFAULT/solr
+cp $DISTRO_DIR/solr.in.sh $PREFIX/$ETC_DEFAULT/solr.in.sh
+install -d -m 0755 $PREFIX/$NP_ETC_SOLR
+install -d -m 0755 $PREFIX/$ETC_SOLR/conf.dist
+cp -a ${BUILD_DIR}/server/resources/* $PREFIX/$ETC_SOLR/conf.dist
+echo 111111
+ls -R $PREFIX/$ETC_SOLR/conf.dist
+echo 222222
 
 # Copy in the wrapper
 cp -a ${DISTRO_DIR}/solrd $PREFIX/$LIB_DIR/bin/solrd
 chmod 755 $PREFIX/$LIB_DIR/bin/solrd
 
 # installing the only script that goes into /usr/bin
-install -D -m 0755 $DISTRO_DIR/solrctl.sh $PREFIX/usr/bin/solrctl
+install -D -m 0755 $DISTRO_DIR/solrctl.sh $PREFIX/$BIN_DIR/solrctl
 
 # precreating /var layout
-install -d -m 0755 $VAR_DIR/log/solr
-install -d -m 0755 $VAR_DIR/run/solr
-install -d -m 0755 $VAR_DIR/lib/solr
+install -d -m 0755 $PREFIX/$VAR_DIR
+install -d -m 0755 $PREFIX/var/log/solr
+install -d -m 0755 $PREFIX/var/run/solr
diff --git a/bigtop-packages/src/rpm/solr/SPECS/solr.spec b/bigtop-packages/src/rpm/solr/SPECS/solr.spec
index c2a10d33..0524f085 100644
--- a/bigtop-packages/src/rpm/solr/SPECS/solr.spec
+++ b/bigtop-packages/src/rpm/solr/SPECS/solr.spec
@@ -14,24 +14,33 @@
 # limitations under the License.
 
 %define solr_name solr
-%define lib_solr /usr/lib/%{solr_name}
-%define etc_solr /etc/%{solr_name}
-%define config_solr %{etc_solr}/conf
-%define tomcat_deployment_solr %{etc_solr}/tomcat-conf
-%define log_solr /var/log/%{solr_name}
-%define bin_solr /usr/bin
-%define man_dir /usr/share/man
-%define run_solr /var/run/solr
+
+%define etc_default %{parent_dir}/etc/default
+
+%define usr_lib_solr %{parent_dir}/usr/lib/%{solr_name}
+%define var_lib_solr %{parent_dir}/var/lib/%{solr_name}
+%define etc_solr %{parent_dir}/etc/%{solr_name}
+
+%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_solr /var/log/%{solr_name}
+%define np_var_run_solr /var/run/%{solr_name}
+%define np_etc_solr /etc/%{solr_name}
+
 %define svc_solr %{name}-server
+%define tomcat_deployment_solr %{etc_solr}/tomcat-conf
 
 %if  %{?suse_version:1}0
-%define doc_solr %{_docdir}/solr-doc
+%define doc_solr %{doc_dir}/solr-doc
 %define alternatives_cmd update-alternatives
 %define chkconfig_dep    aaa_base
 %define service_dep      aaa_base
 %global initd_dir %{_sysconfdir}/rc.d
 %else
-%define doc_solr %{_docdir}/solr-doc-%{solr_version}
+%define doc_solr %{doc_dir}/solr-doc-%{solr_version}
 %define alternatives_cmd alternatives
 %define chkconfig_dep    chkconfig
 %define service_dep      initscripts
@@ -115,10 +124,16 @@ env FULL_VERSION=%{solr_base_version} bash %{SOURCE1}
 %install
 %__rm -rf $RPM_BUILD_ROOT
 sh $RPM_SOURCE_DIR/install_solr.sh \
-          --build-dir=solr/build/solr-%{solr_base_version} \
-          --prefix=$RPM_BUILD_ROOT \
-          --distro-dir=$RPM_SOURCE_DIR \
-          --doc-dir=%{doc_solr} 
+        --build-dir=solr/build/solr-%{solr_base_version} \
+        --prefix=$RPM_BUILD_ROOT \
+        --distro-dir=$RPM_SOURCE_DIR \
+        --doc-dir=%{doc_solr} \
+        --bin-dir=%{bin_dir} \
+        --man-dir=%{man_dir} \
+        --etc-default=%{etc_default} \
+        --lib-dir=%{usr_lib_solr} \
+        --var-dir=%{var_lib_solr} \
+        --etc-solr=%{etc_solr}
 
 %__install -d -m 0755 $RPM_BUILD_ROOT/%{initd_dir}/
 init_file=$RPM_BUILD_ROOT/%{initd_dir}/%{svc_solr}
@@ -127,14 +142,14 @@ chmod 755 $init_file
 
 %pre
 getent group solr >/dev/null || groupadd -r solr
-getent passwd solr > /dev/null || useradd -c "Solr" -s /sbin/nologin -g solr -r -d %{run_solr} solr 2> /dev/null || :
+getent passwd solr > /dev/null || useradd -c "Solr" -s /sbin/nologin -g solr -r -d %{np_var_run_solr} solr 2> /dev/null || :
 
 %post
-%{alternatives_cmd} --install %{config_solr} %{solr_name}-conf %{config_solr}.dist 30
+%{alternatives_cmd} --install %{np_etc_solr}/conf %{solr_name}-conf %{etc_solr}/conf.dist 30
 
 %preun
 if [ "$1" = 0 ]; then
-        %{alternatives_cmd} --remove %{solr_name}-conf %{config_solr}.dist || :
+        %{alternatives_cmd} --remove %{solr_name}-conf %{etc_solr}/conf.dist || :
 fi
 
 %post server
@@ -156,15 +171,16 @@ fi
 #######################
 %files 
 %defattr(-,root,root,755)
-%config(noreplace) %{config_solr}.dist
-%config(noreplace) /etc/default/solr 
-%config(noreplace) /etc/default/solr.in.sh
-%{lib_solr}
-%{bin_solr}/solrctl
+%config(noreplace) %{etc_solr}/conf.dist
+%config(noreplace) %{etc_default}/solr 
+%config(noreplace) %{etc_default}/solr.in.sh
+%dir %{np_etc_solr}
+%{usr_lib_solr}
+%{bin_dir}/solrctl
 %defattr(-,solr,solr,755)
-/var/lib/solr
-/var/run/solr
-/var/log/solr
+%{var_lib_solr}
+%{np_var_run_solr}
+%{np_var_log_solr}
 
 %files doc
 %defattr(-,root,root)