diff --git a/autostart.sh b/autostart.sh new file mode 100755 index 0000000000000000000000000000000000000000..1fc2afb69efdfd6cc21ade0edd0f67cbeb0cc6c9 --- /dev/null +++ b/autostart.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +result=`su - opengauss -c "source ~/.bash_profile; gs_ctl start -D /var/lib/opengauss/data"` +if [ $? -ne 0 ]; then + echo "Start openGauss database failed." + echo $result +else + echo "Start openGauss database success." +fi \ No newline at end of file diff --git a/og-edit.patch b/og-edit.patch new file mode 100644 index 0000000000000000000000000000000000000000..d436a7b4d19c60ab225207532162ab2c641b28f7 --- /dev/null +++ b/og-edit.patch @@ -0,0 +1,44 @@ +diff -crN openGauss-server-2.1.0/src/bin/psql/startup.cpp openGauss-server-2.1.0-edit/src/bin/psql/startup.cpp +*** openGauss-server-2.1.0/src/bin/psql/startup.cpp 2021-12-13 16:23:09.000000000 +0800 +--- openGauss-server-2.1.0-edit/src/bin/psql/startup.cpp 2022-01-22 22:08:39.420475340 +0800 +*************** +*** 257,262 **** +--- 257,266 ---- + pset.popt.topt.recordSep.separator_zero = false; + } + ++ if (options.port == NULL) { ++ options.port = GetEnvStr("PORT"); ++ } ++ + if (options.username == NULL) + password_prompt = pg_strdup(_("Password: ")); + else { +*************** +*** 1334,1337 **** + KEY_LEN); + exit(EXIT_FAILURE); + } +! } +\ No newline at end of file +--- 1338,1341 ---- + KEY_LEN); + exit(EXIT_FAILURE); + } +! } +diff -crN openGauss-server-2.1.0/src/gausskernel/dbmind/db4ai/executor/Makefile openGauss-server-2.1.0-edit/src/gausskernel/dbmind/db4ai/executor/Makefile +*** openGauss-server-2.1.0/src/gausskernel/dbmind/db4ai/executor/Makefile 2021-12-13 16:23:09.000000000 +0800 +--- openGauss-server-2.1.0-edit/src/gausskernel/dbmind/db4ai/executor/Makefile 2022-01-22 22:09:13.399068986 +0800 +*************** +*** 11,20 **** + + include $(top_builddir)/src/Makefile.global + +- PLATFORM_ARCH = $(shell uname -p) +- ifeq ($(PLATFORM_ARCH),x86_64) +- override CPPFLAGS += -mavx +- endif + + ifneq "$(MAKECMDGOALS)" "clean" + ifneq "$(MAKECMDGOALS)" "distclean" +--- 11,16 ---- diff --git a/opengauss-server.spec b/opengauss-server.spec old mode 100644 new mode 100755 index 7bf8e24af735d436f77411a2d45382fd16266ca7..906e7124ac553f98f1b91c32c2bf8299284cb59c --- a/opengauss-server.spec +++ b/opengauss-server.spec @@ -12,7 +12,7 @@ Name: opengauss Version: 2.1.0 -Release: 2 +Release: 3 Summary: openGauss is an open source relational database management system License: MulanPSL-2.0 and MIT and BSD and zlib and TCL and Apache-2.0 and BSL-1.0 URL: https://gitee.com/opengauss/openGauss-server @@ -21,8 +21,11 @@ Source1: %{cjson_name}-%{cjson_version}.tar.gz Source2: %{zlib_name}-%{zlib_version}.tar.gz Source3: %{protobuf_name}-%{protobuf_version}.tar.gz Source4: %{orc_name}-%{orc_version}.tar.gz -Source5: opengauss-bashprofile +Source5: opengauss-bashprofile +Source6: opengauss.service +Source7: autostart.sh +Patch0: og-edit.patch Patch1: 0001-cJSON.patch Patch20: 0001-zlib.patch Patch21: 0002-zlib.patch @@ -32,7 +35,7 @@ Patch40: 0001-orc.patch BuildRequires: cmake gcc gcc-c++ openssl-devel python BuildRequires: cjson lz4-devel protobuf-devel snappy-devel zstd-devel boost-devel -BuildRequires: libcgroup-devel curl-devel unixODBC-devel jemalloc-devel +BuildRequires: libcgroup-devel libcurl-devel unixODBC-devel jemalloc-devel BuildRequires: java-1.8.0-openjdk-devel libedit-devel libaio-devel BuildRequires: bison flex DCF %ifnarch aarch64 %{arm} @@ -44,7 +47,7 @@ BuildRequires: numactl-devel %global __requires_exclude %{_privatelibs} Requires: lz4-devel protobuf-devel snappy-devel zstd-devel boost-devel -Requires: libcgroup-devel curl-devel unixODBC-devel jemalloc-devel +Requires: libcgroup-devel libcurl-devel unixODBC-devel jemalloc-devel Requires: java-1.8.0-openjdk-devel libedit-devel libaio-devel Requires: DCF %ifnarch aarch64 %{arm} @@ -63,6 +66,9 @@ openGauss kernel : openGauss is an open source relational database management sy %setup -q -D -T -a 3 %setup -q -D -T -a 4 +pushd openGauss-server-%{version} +%patch0 -p1 +popd pushd %{cjson_name}-%{cjson_version} %patch1 -p1 @@ -164,6 +170,7 @@ popd pushd openGauss-server-%{version} %make_install -s %{?_smp_mflags} mkdir -p %{buildroot}/var/lib/opengauss/data +mkdir -p %{buildroot}/%{apppath}/script cp build/script/opengauss_config_file_mini %{buildroot}/%{apppath}/share/postgresql/ popd @@ -172,6 +179,9 @@ install -d -m 700 $RPM_BUILD_ROOT%{?_localstatedir}/lib/opengauss/data # opengauss .bash_profile install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{?_localstatedir}/lib/opengauss/.bash_profile +# auto start files +install -m 644 %{SOURCE6} %{buildroot}/%{apppath}/script/opengauss.service +install -m 700 %{SOURCE7} %{buildroot}/%{apppath}/script/autostart.sh %pre /usr/sbin/groupadd -g 39 -o -r opengauss >/dev/null 2>&1 || : @@ -233,12 +243,39 @@ start_opengauss(){ fi } +add_service(){ + cp %{apppath}/script/opengauss.service /usr/lib/systemd/system/ + systemctl enable opengauss.service +} + # for install step if [ $1 = 1 ]; then set_mini_configparam + add_service start_opengauss fi +%postun +remove_service(){ + servicename=/usr/lib/systemd/system/opengauss.service + if [ -f $servicename ]; then + systemctl disable opengauss.service + rm $servicename + fi +} +clear_database(){ + pid=$(ps -ef | grep /var/lib/opengauss/data | grep -v grep | awk '{print $2}') + if [ "$pid" != "" ]; then + kill -9 $pid + fi + if [ -d /var/lib/opengauss/data ]; then + rm -rf /var/lib/opengauss/data + fi +} +if [ "$1" = "0" ]; then + remove_service + clear_database +fi %files %defattr (-,root,root) @@ -251,9 +288,11 @@ fi %changelog +* Sat Jan 22 2022 zhangxubo - 2.1.0-3 +- Fix bugs: #I4RVNX + * Mon Dec 13 2021 zhangxubo - 2.1.0-2 - Fix bugs: Mask dependencies acquired during installation - * Wed Dec 1 2021 zhangxubo - 2.1.0-1 - Package init diff --git a/opengauss.service b/opengauss.service new file mode 100755 index 0000000000000000000000000000000000000000..c2680b2947ac27b18f41029f95f87dd64e237e50 --- /dev/null +++ b/opengauss.service @@ -0,0 +1,12 @@ +[Unit] +Description=Start openGauss server +After=local-fs.target + +[Service] +Type=idle +ExecStart=/usr/local/opengauss/script/autostart.sh +Delegate=yes +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target