!1 poissonsearch-oss 1.0.0版本构建
From: @PadawanZH Reviewed-by: @candiceguo Signed-off-by: @candiceguo
This commit is contained in:
commit
903de351aa
BIN
1.0.0-alpha1.tar.gz
Normal file
BIN
1.0.0-alpha1.tar.gz
Normal file
Binary file not shown.
201
LICENSE
Normal file
201
LICENSE
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
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.
|
||||||
587
poissonsearch-oss.spec
Normal file
587
poissonsearch-oss.spec
Normal file
@ -0,0 +1,587 @@
|
|||||||
|
# Disable brp-java-repack-jars, so jars will not be decompressed and repackaged
|
||||||
|
%define __jar_repack 0
|
||||||
|
|
||||||
|
# Generate digests, 8 means algorithm of sha256
|
||||||
|
# This is different from rpm sig algorithm
|
||||||
|
# Requires rpm version 4.12 + to generate but b/c run on older versions
|
||||||
|
%define _source_filedigest_algorithm 8
|
||||||
|
%define _binary_filedigest_algorithm 8
|
||||||
|
|
||||||
|
# User Define Variables
|
||||||
|
%define product_name poissonsearch
|
||||||
|
%define product_dir %{_datadir}/%{product_name}
|
||||||
|
%define config_dir %{_sysconfdir}/%{product_name}
|
||||||
|
%define data_dir %{_sharedstatedir}/%{product_name}
|
||||||
|
%define log_dir %{_localstatedir}/log/%{product_name}
|
||||||
|
%define pid_dir %{_localstatedir}/run/%{product_name}
|
||||||
|
%define build_arch x86_64
|
||||||
|
|
||||||
|
Name: poissonsearch-oss
|
||||||
|
Version: 1.0.0
|
||||||
|
%define package_version 1.0.0-alpha1
|
||||||
|
Release: 1
|
||||||
|
License: ASL 2.0
|
||||||
|
Summary: Distributed RESTful search engine built for the cloud
|
||||||
|
URL: https://gitee.com/openeuler/poissonsearch-oss
|
||||||
|
Source0: https://gitee.com/openEuler/poissonsearch-oss/archive/refs/tags/%{package_version}.tar.gz
|
||||||
|
Group: Application/Internet
|
||||||
|
ExclusiveArch: %{build_arch}
|
||||||
|
BuildArch: %{build_arch}
|
||||||
|
|
||||||
|
BuildRequires: java-17-openjdk-devel,java-11-openjdk-devel,tar,gzip,rpmdevtools,dos2unix
|
||||||
|
Requires: java-11-openjdk-headless
|
||||||
|
Provides: elasticsearch-oss = 7.10.2-1
|
||||||
|
|
||||||
|
%description
|
||||||
|
poissonsearch-oss is a distributed RESTful search engine built for the cloud, forked from elasticsearch-oss 7.10.2.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
tar -xzf %{_sourcedir}/%{package_version}.tar.gz -C %{_builddir}
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
# need to add java home and runtime java home
|
||||||
|
export JAVA_HOME=/etc/alternatives/java_sdk_17
|
||||||
|
export RUNTIME_JAVA_HOME=$JAVA_HOME
|
||||||
|
|
||||||
|
cd %{name}-%{package_version}
|
||||||
|
dos2unix gradlew
|
||||||
|
./gradlew buildOssNoJdkRpm --warning-mode none -Dorg.gradle.java.home=/etc/alternatives/java_sdk_17
|
||||||
|
cd ..
|
||||||
|
mv %{name}-%{package_version}/distribution/packages/oss-no-jdk-rpm/build/distributions/%{name}-7.10.2-no-jdk-x86_64.rpm ./%{name}-%{version}-%{_architecture}.rpm
|
||||||
|
rpm2cpio %{name}-%{version}-%{_architecture}.rpm | cpio -divm
|
||||||
|
|
||||||
|
# dos2unix for all scripts
|
||||||
|
find etc -type f -print0 | xargs -0 dos2unix
|
||||||
|
find usr/lib -type f -print0 | xargs -0 dos2unix
|
||||||
|
find usr/share/poissonsearch/bin -type f -print0 | xargs -0 dos2unix
|
||||||
|
|
||||||
|
%install
|
||||||
|
# Create necessary directories
|
||||||
|
mkdir -p %{buildroot}%{pid_dir}
|
||||||
|
cp -a usr etc var %{buildroot}
|
||||||
|
|
||||||
|
%check
|
||||||
|
cd %{name}-%{package_version}
|
||||||
|
|
||||||
|
export JAVA_HOME=/etc/alternatives/java_sdk_11
|
||||||
|
export RUNTIME_JAVA_HOME=$JAVA_HOME
|
||||||
|
|
||||||
|
# need to build with java 17 in openEuler, jdk 11 will be recognized as jre in gradle 7.5.1 for some reason
|
||||||
|
./gradlew test --warning-mode none -Dorg.gradle.java.home=/etc/alternatives/java_sdk_17 > test.report
|
||||||
|
|
||||||
|
%pre -p /bin/bash
|
||||||
|
#!/bin/bash
|
||||||
|
RPM_ARCH=x86_64
|
||||||
|
RPM_OS=linux
|
||||||
|
RPM_PACKAGE_NAME=poissonsearch-oss
|
||||||
|
RPM_PACKAGE_VERSION=7.10.2
|
||||||
|
RPM_PACKAGE_RELEASE=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script is executed in the pre-installation phase
|
||||||
|
#
|
||||||
|
# On Debian,
|
||||||
|
# $1=install : indicates an new install
|
||||||
|
# $1=upgrade : indicates an upgrade
|
||||||
|
#
|
||||||
|
# On RedHat,
|
||||||
|
# $1=1 : indicates an new install
|
||||||
|
# $1=2 : indicates an upgrade
|
||||||
|
|
||||||
|
err_exit() {
|
||||||
|
echo "$@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# source the default env file
|
||||||
|
if [ -f "/etc/sysconfig/poissonsearch" ]; then
|
||||||
|
. "/etc/sysconfig/poissonsearch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export ES_PATH_CONF=${ES_PATH_CONF:-/etc/poissonsearch}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
# Debian ####################################################
|
||||||
|
install|upgrade)
|
||||||
|
|
||||||
|
# Create poissonsearch group if not existing
|
||||||
|
if ! getent group poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
echo -n "Creating poissonsearch group..."
|
||||||
|
addgroup --quiet --system poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create poissonsearch user if not existing
|
||||||
|
if ! id poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
echo -n "Creating poissonsearch user..."
|
||||||
|
adduser --quiet \
|
||||||
|
--system \
|
||||||
|
--no-create-home \
|
||||||
|
--home /nonexistent \
|
||||||
|
--ingroup poissonsearch \
|
||||||
|
--disabled-password \
|
||||||
|
--shell /bin/false \
|
||||||
|
poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
abort-deconfigure|abort-upgrade|abort-remove)
|
||||||
|
;;
|
||||||
|
|
||||||
|
# RedHat ####################################################
|
||||||
|
1|2)
|
||||||
|
|
||||||
|
# Create poissonsearch group if not existing
|
||||||
|
if ! getent group poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
echo -n "Creating poissonsearch group..."
|
||||||
|
groupadd -r poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create poissonsearch user if not existing
|
||||||
|
if ! id poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
echo -n "Creating poissonsearch user..."
|
||||||
|
useradd --system \
|
||||||
|
--no-create-home \
|
||||||
|
--home-dir /nonexistent \
|
||||||
|
--gid poissonsearch \
|
||||||
|
--shell /sbin/nologin \
|
||||||
|
--comment "poissonsearch user" \
|
||||||
|
poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
err_exit "pre install script called with unknown argument \`$1'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%post -p /bin/sh
|
||||||
|
RPM_ARCH=x86_64
|
||||||
|
RPM_OS=linux
|
||||||
|
RPM_PACKAGE_NAME=poissonsearch-oss
|
||||||
|
RPM_PACKAGE_VERSION=7.10.2
|
||||||
|
RPM_PACKAGE_RELEASE=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script is executed in the post-installation phase
|
||||||
|
#
|
||||||
|
# On Debian,
|
||||||
|
# $1=configure : is set to 'configure' and if $2 is set, it is an upgrade
|
||||||
|
#
|
||||||
|
# On RedHat,
|
||||||
|
# $1=0 : indicates a removal
|
||||||
|
# $1=1 : indicates an upgrade
|
||||||
|
|
||||||
|
# source the default env file
|
||||||
|
if [ -f "/etc/sysconfig/poissonsearch" ]; then
|
||||||
|
. "/etc/sysconfig/poissonsearch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export ES_PATH_CONF=${ES_PATH_CONF:-/etc/poissonsearch}
|
||||||
|
|
||||||
|
IS_UPGRADE=false
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
# Debian ####################################################
|
||||||
|
configure)
|
||||||
|
|
||||||
|
# If $1=configure and $2 is set, this is an upgrade
|
||||||
|
if [ -n $2 ]; then
|
||||||
|
IS_UPGRADE=true
|
||||||
|
fi
|
||||||
|
PACKAGE=deb
|
||||||
|
;;
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
PACKAGE=deb
|
||||||
|
;;
|
||||||
|
|
||||||
|
# RedHat ####################################################
|
||||||
|
1)
|
||||||
|
# If $1=1 this is an install
|
||||||
|
IS_UPGRADE=false
|
||||||
|
PACKAGE=rpm
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
# If $1=1 this is an upgrade
|
||||||
|
IS_UPGRADE=true
|
||||||
|
PACKAGE=rpm
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "post install script called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# to pick up /usr/lib/sysctl.d/poissonsearch.conf
|
||||||
|
if command -v systemctl > /dev/null; then
|
||||||
|
systemctl restart systemd-sysctl.service || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$IS_UPGRADE" != "xtrue" ]; then
|
||||||
|
if command -v systemctl >/dev/null; then
|
||||||
|
echo "### NOT starting on installation, please execute the following statements to configure poissonsearch service to start automatically using systemd"
|
||||||
|
echo " sudo systemctl daemon-reload"
|
||||||
|
echo " sudo systemctl enable poissonsearch.service"
|
||||||
|
echo "### You can start poissonsearch service by executing"
|
||||||
|
echo " sudo systemctl start poissonsearch.service"
|
||||||
|
|
||||||
|
elif command -v chkconfig >/dev/null; then
|
||||||
|
echo "### NOT starting on installation, please execute the following statements to configure poissonsearch service to start automatically using chkconfig"
|
||||||
|
echo " sudo chkconfig --add poissonsearch"
|
||||||
|
echo "### You can start poissonsearch service by executing"
|
||||||
|
echo " sudo service poissonsearch start"
|
||||||
|
|
||||||
|
elif command -v update-rc.d >/dev/null; then
|
||||||
|
echo "### NOT starting on installation, please execute the following statements to configure poissonsearch service to start automatically using chkconfig"
|
||||||
|
echo " sudo update-rc.d poissonsearch defaults 95 10"
|
||||||
|
echo "### You can start poissonsearch service by executing"
|
||||||
|
echo " sudo /etc/init.d/poissonsearch start"
|
||||||
|
fi
|
||||||
|
elif [ "$RESTART_ON_UPGRADE" = "true" ]; then
|
||||||
|
|
||||||
|
echo -n "Restarting poissonsearch service..."
|
||||||
|
if command -v systemctl >/dev/null; then
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl restart poissonsearch.service || true
|
||||||
|
|
||||||
|
elif [ -x /etc/init.d/poissonsearch ]; then
|
||||||
|
if command -v invoke-rc.d >/dev/null; then
|
||||||
|
invoke-rc.d poissonsearch stop || true
|
||||||
|
invoke-rc.d poissonsearch start || true
|
||||||
|
else
|
||||||
|
/etc/init.d/poissonsearch restart || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# older suse linux distributions do not ship with systemd
|
||||||
|
# but do not have an /etc/init.d/ directory
|
||||||
|
# this tries to start the poissonsearch service on these
|
||||||
|
# as well without failing this script
|
||||||
|
elif [ -x /etc/rc.d/init.d/poissonsearch ] ; then
|
||||||
|
/etc/rc.d/init.d/poissonsearch restart || true
|
||||||
|
fi
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# the equivalent code for rpm is in posttrans
|
||||||
|
if [ "$PACKAGE" = "deb" ]; then
|
||||||
|
if [ ! -f "${ES_PATH_CONF}"/elasticsearch.keystore ]; then
|
||||||
|
/usr/share/poissonsearch/bin/elasticsearch-keystore create
|
||||||
|
chown root:poissonsearch "${ES_PATH_CONF}"/elasticsearch.keystore
|
||||||
|
chmod 660 "${ES_PATH_CONF}"/elasticsearch.keystore
|
||||||
|
md5sum "${ES_PATH_CONF}"/elasticsearch.keystore > "${ES_PATH_CONF}"/.elasticsearch.keystore.initial_md5sum
|
||||||
|
else
|
||||||
|
if /usr/share/poissonsearch/bin/elasticsearch-keystore has-passwd --silent ; then
|
||||||
|
echo "### Warning: unable to upgrade encrypted keystore" 1>&2
|
||||||
|
echo " Please run elasticsearch-keystore upgrade and enter password" 1>&2
|
||||||
|
else
|
||||||
|
/usr/share/poissonsearch/bin/elasticsearch-keystore upgrade
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%posttrans -p /bin/sh
|
||||||
|
RPM_ARCH=x86_64
|
||||||
|
RPM_OS=linux
|
||||||
|
RPM_PACKAGE_NAME=poissonsearch-oss
|
||||||
|
RPM_PACKAGE_VERSION=7.10.2
|
||||||
|
RPM_PACKAGE_RELEASE=1
|
||||||
|
|
||||||
|
# source the default env file
|
||||||
|
if [ -f "/etc/sysconfig/poissonsearch" ]; then
|
||||||
|
. "/etc/sysconfig/poissonsearch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export ES_PATH_CONF=${ES_PATH_CONF:-/etc/poissonsearch}
|
||||||
|
|
||||||
|
if [ ! -f "${ES_PATH_CONF}"/elasticsearch.keystore ]; then
|
||||||
|
/usr/share/poissonsearch/bin/elasticsearch-keystore create
|
||||||
|
chown root:poissonsearch "${ES_PATH_CONF}"/elasticsearch.keystore
|
||||||
|
chmod 660 "${ES_PATH_CONF}"/elasticsearch.keystore
|
||||||
|
md5sum "${ES_PATH_CONF}"/elasticsearch.keystore > "${ES_PATH_CONF}"/.elasticsearch.keystore.initial_md5sum
|
||||||
|
else
|
||||||
|
if /usr/share/poissonsearch/bin/elasticsearch-keystore has-passwd --silent ; then
|
||||||
|
echo "### Warning: unable to upgrade encrypted keystore" 1>&2
|
||||||
|
echo " Please run elasticsearch-keystore upgrade and enter password" 1>&2
|
||||||
|
else
|
||||||
|
/usr/share/poissonsearch/bin/elasticsearch-keystore upgrade
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%preun -p /bin/sh
|
||||||
|
RPM_ARCH=x86_64
|
||||||
|
RPM_OS=linux
|
||||||
|
RPM_PACKAGE_NAME=poissonsearch-oss
|
||||||
|
RPM_PACKAGE_VERSION=7.10.2
|
||||||
|
RPM_PACKAGE_RELEASE=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script is executed in the pre-remove phase
|
||||||
|
#
|
||||||
|
# On Debian,
|
||||||
|
# $1=remove : indicates a removal
|
||||||
|
# $1=upgrade : indicates an upgrade
|
||||||
|
#
|
||||||
|
# On RedHat,
|
||||||
|
# $1=0 : indicates a removal
|
||||||
|
# $1=1 : indicates an upgrade
|
||||||
|
|
||||||
|
# source the default env file
|
||||||
|
if [ -f "/etc/sysconfig/poissonsearch" ]; then
|
||||||
|
. "/etc/sysconfig/poissonsearch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export ES_PATH_CONF=${ES_PATH_CONF:-/etc/poissonsearch}
|
||||||
|
|
||||||
|
STOP_REQUIRED=false
|
||||||
|
REMOVE_SERVICE=false
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
# Debian ####################################################
|
||||||
|
remove)
|
||||||
|
STOP_REQUIRED=true
|
||||||
|
REMOVE_SERVICE=true
|
||||||
|
;;
|
||||||
|
upgrade)
|
||||||
|
if [ "$RESTART_ON_UPGRADE" = "true" ]; then
|
||||||
|
STOP_REQUIRED=true
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
deconfigure|failed-upgrade)
|
||||||
|
;;
|
||||||
|
|
||||||
|
# RedHat ####################################################
|
||||||
|
0)
|
||||||
|
STOP_REQUIRED=true
|
||||||
|
REMOVE_SERVICE=true
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
# Dont do anything on upgrade, because the preun script in redhat gets executed after the postinst (madness!)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "pre remove script called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Stops the service
|
||||||
|
if [ "$STOP_REQUIRED" = "true" ]; then
|
||||||
|
echo -n "Stopping poissonsearch service..."
|
||||||
|
if command -v systemctl >/dev/null; then
|
||||||
|
systemctl --no-reload stop poissonsearch.service
|
||||||
|
|
||||||
|
elif [ -x /etc/init.d/poissonsearch ]; then
|
||||||
|
if command -v invoke-rc.d >/dev/null; then
|
||||||
|
invoke-rc.d poissonsearch stop
|
||||||
|
else
|
||||||
|
/etc/init.d/poissonsearch stop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# older suse linux distributions do not ship with systemd
|
||||||
|
# but do not have an /etc/init.d/ directory
|
||||||
|
# this tries to start the poissonsearch service on these
|
||||||
|
# as well without failing this script
|
||||||
|
elif [ -x /etc/rc.d/init.d/poissonsearch ] ; then
|
||||||
|
/etc/rc.d/init.d/poissonsearch stop
|
||||||
|
fi
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "${ES_PATH_CONF}"/elasticsearch.keystore ]; then
|
||||||
|
if md5sum --status -c "${ES_PATH_CONF}"/.elasticsearch.keystore.initial_md5sum; then
|
||||||
|
rm "${ES_PATH_CONF}"/elasticsearch.keystore "${ES_PATH_CONF}"/.elasticsearch.keystore.initial_md5sum
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$REMOVE_SERVICE" = "true" ]; then
|
||||||
|
if command -v systemctl >/dev/null; then
|
||||||
|
systemctl disable poissonsearch.service > /dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v chkconfig >/dev/null; then
|
||||||
|
chkconfig --del poissonsearch 2> /dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v update-rc.d >/dev/null; then
|
||||||
|
update-rc.d poissonsearch remove >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Built for packages-7.10.2 (rpm)
|
||||||
|
|
||||||
|
|
||||||
|
%postun -p /bin/sh
|
||||||
|
RPM_ARCH=x86_64
|
||||||
|
RPM_OS=linux
|
||||||
|
RPM_PACKAGE_NAME=poissonsearch-oss
|
||||||
|
RPM_PACKAGE_VERSION=7.10.2
|
||||||
|
RPM_PACKAGE_RELEASE=1
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script is executed in the post-removal phase
|
||||||
|
#
|
||||||
|
# On Debian,
|
||||||
|
# $1=remove : indicates a removal
|
||||||
|
# $1=purge : indicates an upgrade
|
||||||
|
#
|
||||||
|
# On RedHat,
|
||||||
|
# $1=0 : indicates a removal
|
||||||
|
# $1=1 : indicates an upgrade
|
||||||
|
|
||||||
|
# source the default env file
|
||||||
|
if [ -f "/etc/sysconfig/poissonsearch" ]; then
|
||||||
|
. "/etc/sysconfig/poissonsearch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export ES_PATH_CONF=${ES_PATH_CONF:-/etc/poissonsearch}
|
||||||
|
|
||||||
|
REMOVE_DIRS=false
|
||||||
|
REMOVE_JVM_OPTIONS_DIRECTORY=false
|
||||||
|
REMOVE_USER_AND_GROUP=false
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
# Debian ####################################################
|
||||||
|
remove)
|
||||||
|
REMOVE_DIRS=true
|
||||||
|
;;
|
||||||
|
|
||||||
|
purge)
|
||||||
|
REMOVE_DIRS=true
|
||||||
|
REMOVE_JVM_OPTIONS_DIRECTORY=true
|
||||||
|
REMOVE_USER_AND_GROUP=true
|
||||||
|
;;
|
||||||
|
failed-upgrade|abort-install|abort-upgrade|disappear|upgrade|disappear)
|
||||||
|
;;
|
||||||
|
|
||||||
|
# RedHat ####################################################
|
||||||
|
0)
|
||||||
|
REMOVE_DIRS=true
|
||||||
|
REMOVE_USER_AND_GROUP=true
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
# If $1=1 this is an upgrade
|
||||||
|
IS_UPGRADE=true
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "post remove script called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$REMOVE_DIRS" = "true" ]; then
|
||||||
|
|
||||||
|
if [ -d /var/log/poissonsearch ]; then
|
||||||
|
echo -n "Deleting log directory..."
|
||||||
|
rm -rf /var/log/poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /usr/share/poissonsearch/plugins ]; then
|
||||||
|
echo -n "Deleting plugins directory..."
|
||||||
|
rm -rf /usr/share/poissonsearch/plugins
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# plugins may have contained bin files
|
||||||
|
if [ -d /usr/share/poissonsearch/bin ]; then
|
||||||
|
echo -n "Deleting plugin bin directories..."
|
||||||
|
rm -rf /usr/share/poissonsearch/bin
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/run/poissonsearch ]; then
|
||||||
|
echo -n "Deleting PID directory..."
|
||||||
|
rm -rf /var/run/poissonsearch
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Delete the data directory if and only if empty
|
||||||
|
if [ -d /var/lib/poissonsearch ]; then
|
||||||
|
rmdir --ignore-fail-on-non-empty /var/lib/poissonsearch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete the jvm.options.d directory if and only if empty
|
||||||
|
if [ -d "${ES_PATH_CONF}/jvm.options.d" ]; then
|
||||||
|
rmdir --ignore-fail-on-non-empty "${ES_PATH_CONF}/jvm.options.d"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete the jvm.options.d directory if we are purging
|
||||||
|
if [ "$REMOVE_JVM_OPTIONS_DIRECTORY" = "true" ]; then
|
||||||
|
if [ -d "${ES_PATH_CONF}/jvm.options.d" ]; then
|
||||||
|
echo -n "Deleting jvm.options.d directory..."
|
||||||
|
rm -rf "${ES_PATH_CONF}/jvm.options.d"
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete the conf directory if and only if empty
|
||||||
|
if [ -d "${ES_PATH_CONF}" ]; then
|
||||||
|
rmdir --ignore-fail-on-non-empty "${ES_PATH_CONF}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$REMOVE_USER_AND_GROUP" = "true" ]; then
|
||||||
|
if id poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
userdel poissonsearch
|
||||||
|
fi
|
||||||
|
|
||||||
|
if getent group poissonsearch > /dev/null 2>&1 ; then
|
||||||
|
groupdel poissonsearch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
# Permissions
|
||||||
|
%defattr(-, %{product_name}, %{product_name})
|
||||||
|
|
||||||
|
# Root dirs/docs/licenses
|
||||||
|
# /usr/share/poissonsearch
|
||||||
|
%dir %{product_dir}
|
||||||
|
%doc %{product_dir}/NOTICE.txt
|
||||||
|
%doc %{product_dir}/README.asciidoc
|
||||||
|
%license %{product_dir}/LICENSE.txt
|
||||||
|
|
||||||
|
# Config dirs/files
|
||||||
|
# /etc/poissonsearch
|
||||||
|
%dir %{config_dir}
|
||||||
|
%{config_dir}/jvm.options.d
|
||||||
|
%config(noreplace) %{config_dir}/elasticsearch.yml
|
||||||
|
%config(noreplace) %{config_dir}/jvm.options
|
||||||
|
%config(noreplace) %{config_dir}/log4j2.properties
|
||||||
|
|
||||||
|
# Service files
|
||||||
|
# /etc/init.d/poissonsearch
|
||||||
|
%attr(0644, root, root) %{_sysconfdir}/init.d/%{product_name}
|
||||||
|
%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/sysconfig/%{product_name}
|
||||||
|
# /usr/lib/
|
||||||
|
%attr(0644, root, root) %{_prefix}/lib/systemd/system/%{product_name}.service
|
||||||
|
%attr(0644, root, root) %config(noreplace) %{_prefix}/lib/sysctl.d/%{product_name}.conf
|
||||||
|
%attr(0644, root, root) %config(noreplace) %{_prefix}/lib/tmpfiles.d/%{product_name}.conf
|
||||||
|
|
||||||
|
# Main dirs
|
||||||
|
%{product_dir}/bin
|
||||||
|
%{product_dir}/lib
|
||||||
|
%{product_dir}/modules
|
||||||
|
%{product_dir}/plugins
|
||||||
|
%{log_dir}
|
||||||
|
%{pid_dir}
|
||||||
|
%dir %{data_dir}
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Mar 19 2024 Zhang An <zhangan9@huawei.com> - 1.0.0-1
|
||||||
|
- Initial package (HEAD -> master)
|
||||||
Loading…
x
Reference in New Issue
Block a user