From 4ad14ca6de146c47c06b64d256327aad2ad5d0d0 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 03:48:51 +0000 Subject: [PATCH 01/83] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20centos7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/centos7/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GreatSQL-Build/centos7/.keep diff --git a/GreatSQL-Build/centos7/.keep b/GreatSQL-Build/centos7/.keep new file mode 100644 index 0000000..e69de29 -- Gitee From 45bec6bb58e5277189e5212d4340c582d7e856d5 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 03:49:09 +0000 Subject: [PATCH 02/83] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20centos8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/centos8/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GreatSQL-Build/centos8/.keep diff --git a/GreatSQL-Build/centos8/.keep b/GreatSQL-Build/centos8/.keep new file mode 100644 index 0000000..e69de29 -- Gitee From 4de09f783eab9fcdc69946e346257ec94b2eeec5 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:08:24 +0000 Subject: [PATCH 03/83] centos7 Signed-off-by: earl86 --- GreatSQL-Build/centos7/CentOS-Base.repo | 44 +++++++++++++++++ GreatSQL-Build/centos7/Dockerfile | 63 +++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 GreatSQL-Build/centos7/CentOS-Base.repo create mode 100644 GreatSQL-Build/centos7/Dockerfile diff --git a/GreatSQL-Build/centos7/CentOS-Base.repo b/GreatSQL-Build/centos7/CentOS-Base.repo new file mode 100644 index 0000000..5e4acf6 --- /dev/null +++ b/GreatSQL-Build/centos7/CentOS-Base.repo @@ -0,0 +1,44 @@ +# CentOS-Base.repo +# +# The mirror system uses the connecting IP address of the client and the +# update status of each mirror to pick mirrors that are updated to and +# geographically close to the client. You should use this for CentOS updates +# unless you are manually picking other mirrors. +# +# If the mirrorlist= does not work for you, as a fall back you can try the +# remarked out baseurl= line instead. +# +# + +[base] +name=CentOS-7 - Base +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/os/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#released updates +[updates] +name=CentOS-7 - Updates +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=updates&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/updates/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#additional packages that may be useful +[extras] +name=CentOS-7 - Extras +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/extras/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#additional packages that extend functionality of existing packages +[centosplus] +name=CentOS-7 - Plus +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=centosplus&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/centosplus/$basearch/ +gpgcheck=1 +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile new file mode 100644 index 0000000..ddd1575 --- /dev/null +++ b/GreatSQL-Build/centos7/Dockerfile @@ -0,0 +1,63 @@ +FROM centos:7 +ENV LANG en_US.utf8 + +LABEL maintainer="greatsql.cn" \ +email="greatsql@greatdb.com" \ +forum="https://greatsql.cn/forum.php" \ +gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" + +ARG OPT_DIR=/opt +ARG MYSQL_UID=3306 +ARG MYSQL_USER=mysql +ARG GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" +ARG GREATSQL_ENV="greatsql-setenv.sh" +ARG ENTRYPOINT="docker-entrypoint.sh" + +ARG DEPS="autoconf binutils krb5-devel libudev-devel m4 devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ +yum-utils wget unzip tar vim file time rpm-* git diffutils net-tools gcc gcc-c++ clang ccache libtool psmisc flex \ +valgrind automake make cmake cmake3 pkgconfig openssl openssl-devel openssl-libs libssh cyrus-sasl-devel cyrus-sasl-scram \ +pam pam-devel openldap-devel openldap-clients readline-devel expat-devel re2-devel bison bison-devel \ +libaio-devel libevent-devel libicu-devel libffi-devel libxml2-devel libtirpc libtirpc-devel \ +libarchive libcurl-devel ncurses-devel ncurses-libs boost-devel numactl numactl-devel numactl-libs \ +gflags-devel gtest-devel libzstd libzstd-devel libzstd-static patchelf \ +perl perl-Env perl-JSON perl-Time-HiRes bzip2 bzip2-devel snappy-devel zlib-devel lz4-devel lz4-static \ +jemalloc jemalloc-devel python-devel redhat-lsb-core centos-release-scl scl-utils-build glibc-common" + +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ +rm -f /lib/systemd/system/multi-user.target.wants/*;\ +rm -f /etc/systemd/system/*.wants/*;\ +rm -f /lib/systemd/system/local-fs.target.wants/*; \ +rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ +rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ +rm -f /lib/systemd/system/basic.target.wants/*;\ +rm -f /lib/systemd/system/anaconda.target.wants/* + +#RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo +COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo +RUN yum clean all > /dev/null 2>&1 +#RUN yum makecache > /dev/null 2>&1 + +RUN yum install -y epel-release > /dev/null 2>&1 +RUN yum install -y centos-release-scl centos-release-scl-rh > /dev/null 2>&1 + +RUN yum install -y ${DEPS} > /dev/null 2>&1 + + +RUN scl enable devtoolset-11 bash + +RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ +echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; + +RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} + +RUN curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ +curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ +chmod +x /*sh ${OPT_DIR}/*sh + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["bash"] + + + + -- Gitee From fb4583916cf03d040a71999c79c2ce6f558b5dab Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:41:02 +0000 Subject: [PATCH 04/83] centos7 Signed-off-by: earl86 --- GreatSQL-Build/centos7/docker-entrypoint.sh | 39 ++++ GreatSQL-Build/centos7/greatsql-automake.sh | 215 ++++++++++++++++++++ GreatSQL-Build/centos7/greatsql-setenv.sh | 40 ++++ 3 files changed, 294 insertions(+) create mode 100644 GreatSQL-Build/centos7/docker-entrypoint.sh create mode 100644 GreatSQL-Build/centos7/greatsql-automake.sh create mode 100644 GreatSQL-Build/centos7/greatsql-setenv.sh diff --git a/GreatSQL-Build/centos7/docker-entrypoint.sh b/GreatSQL-Build/centos7/docker-entrypoint.sh new file mode 100644 index 0000000..213000c --- /dev/null +++ b/GreatSQL-Build/centos7/docker-entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +. /opt/greatsql-setenv.sh + +echo "0. touch logfile ${MAKELOG}" +touch ${MAKELOG} && \ +chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ +chmod 0777 ${MAKELOG} && \ +echo && \ +echo "1. downloading sourcecode tarballs and extract" +cd ${OPT_DIR} && \ +echo " 1.1 downloading sourcecode tarballs ..." && \ +wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz >> ${MAKELOG} 2>&1 && \ +echo " 1.2 extract tarballs ..." && \ +tar xf ${OPT_DIR}/${PATCHELF}*z && \ +tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${GREATSQL_SRC}*z && \ +chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ +chmod +x ${OPT_DIR}/*sh && \ +echo && \ +echo "2. compile patchelf"; \ +cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} > /dev/null 2>&1 && \ +./configure >> ${MAKELOG} > /dev/null 2>&1 && \ +make >> ${MAKELOG} > /dev/null 2>&1 && \ +make install >> ${MAKELOG} > /dev/null 2>&1 && \ +echo && \ +echo "3. compile GreatSQL"; \ +su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ +echo && \ +echo "4. greatsql build completed!" ; \ +ls -la ${OPT_DIR} | grep GreatSQL.*glibc.* && ${OPT_DIR}/GreatSQL*glibc*/bin/mysqld --verbose --version && \ +echo && \ +echo "5. remove files and clean up" ;\ +cd ${OPT_DIR} && rm -rf ${BOOST} ${GREATSQL_SRC} ${PATCHELF} +/bin/bash diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh new file mode 100644 index 0000000..4807967 --- /dev/null +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -0,0 +1,215 @@ +#!/bin/bash + +. /opt/greatsql-setenv.sh + +echo " 3.1 compiling GreatSQL" + +if [ ${ARCH} = "loongarch64" ] ; then + cd ${OPT_DIR}/${GREATSQL_SRC} + sed -i 's/\(.*defined.*mips.*\) \\/\1 defined(__loongarch__) || \\/ig' extra/icu/source/i18n/double-conversion-utils.h +fi + +LIBLIST="libcrypto.so libssl.so libreadline.so libtinfo.so libsasl2.so libbrotlidec.so libbrotlicommon.so libgssapi_krb5.so libkrb5.so libkrb5support.so libk5crypto.so librtmp.so libgssapi.so libssl3.so libsmime3.so libnss3.so libnssutil3.so libplc4.so libnspr4.so libssl3.so libplds4.so libncurses.so libjemalloc.so" +DIRLIST="bin lib lib/private lib/plugin lib/mysqlrouter/plugin lib/mysqlrouter/private" + +LIBPATH="" + +function gather_libs { + local elf_path=$1 + for lib in ${LIBLIST}; do + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + IFS=$'\n' + for libfromelf in $(ldd ${elf} | grep ${lib} | awk '{print $3}'); do + lib_realpath="$(readlink -f ${libfromelf})" + lib_realpath_basename="$(basename $(readlink -f ${libfromelf}))" + lib_without_version_suffix=$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}') + + # Some libraries may have dependencies on earlier openssl libraries, such as authentication_ldap_simple.so, + # thus we need to treat them specially here, other than stripping version suffix. + if [[ "${lib_realpath_basename}" =~ ^libcrypto.so.1.0.* ]] || [[ "${lib_realpath_basename}" =~ ^libssl.so.1.0.* ]]; + then + lib_without_version_suffix=$(basename ${libfromelf}) + fi + + + if [ ! -f "lib/private/${lib_realpath_basename}" ] && [ ! -L "lib/private/${lib_realpath_basename}" ]; then + + echo "Copying lib ${lib_realpath_basename}" + cp ${lib_realpath} lib/private + + echo "Symlinking lib from ${lib_realpath_basename} to ${lib_without_version_suffix}" + cd lib/ + ln -s private/${lib_realpath_basename} ${lib_without_version_suffix} + cd - + if [ ${lib_realpath_basename} != ${lib_without_version_suffix} ]; then + cd lib/private + ln -s ${lib_realpath_basename} ${lib_without_version_suffix} + cd - + fi + + patchelf --set-soname ${lib_without_version_suffix} lib/private/${lib_realpath_basename} + + LIBPATH+=" $(echo ${libfromelf} | grep -v $(pwd))" + fi + done + unset IFS + done + done +} + +function set_runpath { + # Set proper runpath for bins but check before doing anything + local elf_path=$1 + local r_path=$2 + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + echo "Checking LD_RUNPATH for ${elf}" + if [[ -z $(patchelf --print-rpath ${elf}) ]]; then + echo "Changing RUNPATH for ${elf}" + patchelf --set-rpath ${r_path} ${elf} + fi + if [[ ! -z "${override}" ]] && [[ "${override}" == "true" ]]; then + echo "Overriding RUNPATH for ${elf}" + patchelf --set-rpath ${r_path} ${elf} + fi + done +} + +function replace_libs { + local elf_path=$1 + for libpath_sorted in ${LIBPATH}; do + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + LDD=$(ldd ${elf} | grep ${libpath_sorted}|head -n1|awk '{print $1}') + lib_realpath_basename="$(basename $(readlink -f ${libpath_sorted}))" + lib_without_version_suffix="$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}')" + if [[ ! -z $LDD ]] && [[ "${minimal}" == "false" ]]; then + echo "Replacing lib ${lib_realpath_basename} to ${lib_without_version_suffix} for ${elf}" + patchelf --replace-needed ${LDD} ${lib_without_version_suffix} ${elf} + fi + done + done +} + +function check_libs { + local elf_path=$1 + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + if ! ldd ${elf}; then + exit 1 + fi + done +} + +function link { + if [ ! -d lib/private ]; then + mkdir -p lib/private + fi + # Gather libs + for DIR in ${DIRLIST}; do + gather_libs ${DIR} + done + # Set proper runpath + export override=false + set_runpath bin '$ORIGIN/../lib/private/' + set_runpath lib '$ORIGIN/private/' + set_runpath lib/plugin '$ORIGIN/../private/' + set_runpath lib/private '$ORIGIN' + # LIBS MYSQLROUTER + unset override && export override=true && set_runpath lib/mysqlrouter/plugin '$ORIGIN/:$ORIGIN/../private/:$ORIGIN/../../private/' + unset override && export override=true && set_runpath lib/mysqlrouter/private '$ORIGIN/:$ORIGIN/../plugin/:$ORIGIN/../../private/' + # BINS MYSQLROUTER + unset override && export override=true && set_runpath bin/mysqlrouter_passwd '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter_plugin_info '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter_keyring '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + # Replace libs + for DIR in ${DIRLIST}; do + replace_libs ${DIR} + done + # Make final check in order to determine any error after linkage + for DIR in ${DIRLIST}; do + check_libs ${DIR} + done +} + +rm -fr ${MAKELOG} + +mkdir -p ${DEST_DIR} +rm -f ${DEST_DIR}/* + +cd ${OPT_DIR}/${GREATSQL_SRC} && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake3 .. \ +-DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ +-DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ +-DCMAKE_INSTALL_PREFIX=${DEST_DIR} \ +-DWITH_ZLIB=bundled \ +-DWITH_NUMA=ON \ +-DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" \ +-DCMAKE_BUILD_TYPE=RelWithDebInfo \ +-DBUILD_CONFIG=mysql_release \ +-DWITH_TOKUDB=OFF \ +-DWITH_ROCKSDB=OFF \ +-DROCKSDB_DISABLE_AVX2=1 \ +-DROCKSDB_DISABLE_MARCH_NATIVE=1 \ +-DGROUP_REPLICATION_WITH_ROCKSDB=OFF \ +-DALLOW_NO_SSE42=ON \ +-DMYSQL_MAINTAINER_MODE=OFF \ +-DFORCE_INSOURCE_BUILD=1 \ +-DCOMPILATION_COMMENT="GreatSQL, Release ${RELEASE}, Revision ${REVISION}" \ +-DMAJOR_VERSION=${MAJOR_VERSION} -DMINOR_VERSION=${MINOR_VERSION} -DPATCH_VERSION=${PATCH_VERSION} \ +-DWITH_NDB=OFF \ +-DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF \ +-DWITH_NDBCLUSTER=OFF \ +-DWITH_UNIT_TESTS=OFF \ +-DWITH_SSL=system \ +-DWITH_SYSTEMD=ON \ +-DWITH_AUTHENTICATION_LDAP=OFF \ +-DWITH_PAM=1 \ +-DWITH_LIBEVENT=bundled \ +-DWITH_LDAP=system \ +-DWITH_SYSTEM_LIBS=ON \ +-DWITH_LZ4=bundled \ +-DWITH_PROTOBUF=bundled \ +-DWITH_RAPIDJSON=bundled \ +-DWITH_ICU=bundled \ +-DWITH_READLINE=system \ +-DWITH_ZSTD=bundled \ +-DWITH_FIDO=bundled \ +-DWITH_KEYRING_VAULT=ON \ +>> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 + +echo " 3.2 remove mysql-test from GreatSQL" +rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null + +echo " 3.3 make dynamic link for GreatSQL" +# strip binaries to get minimal/all package +tar_minimal { + minimal=true + echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 + echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 + ( + cp -rp ${DEST_DIR} ${DEST_DIR}-minimal + cd ${DEST_DIR}-minimal + find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded + link >> ${MAKELOG} 2>&1 + ) + tar -czf ${DEST_DIR}-minimal.tar.gz ${DEST_DIR}-minimal +} +# 如果想生成minial包,就把下面行注释去掉 +tar_minimal + +tar_all { + minimal=false + ( + cd ${DEST_DIR} + link >> ${MAKELOG} 2>&1 + ) + 如果要打包完整压缩,就把下面行注释去掉 + tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} +} +#如果要打包完整压缩,就把下面行注释去掉 +tar_all + diff --git a/GreatSQL-Build/centos7/greatsql-setenv.sh b/GreatSQL-Build/centos7/greatsql-setenv.sh new file mode 100644 index 0000000..b6c33ac --- /dev/null +++ b/GreatSQL-Build/centos7/greatsql-setenv.sh @@ -0,0 +1,40 @@ +#/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +MAJOR_VERSION=8 +MINOR_VERSION=0 +PATCH_VERSION=32 +RELEASE=25 +REVISION=79f57097e3f +OPT_DIR=/opt +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +OS=Linux +OSPATCH=`uname -r|tr -s '.' '\n'|grep el` +GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} +MAKELOG=/tmp/greatsql-automake.log +MYSQL_USER=mysql +DEST_DIR=${OPT_DIR}/${GREATSQL} +GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST="boost_1_77_0" +PATCHELF="patchelf-0.14.5" +GREATSQL_ENV="greatsql-setenv.sh" +GREATSQL_MAKESH="greatsql-automake.sh" +RPCGEN="" +CMAKE_EXE_LINKER_FLAGS="" +if [ ${ARCH} = "x86_64" ] ; then + CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " +fi -- Gitee From fba72d74d603fb81a63e5b8691250e68ac932638 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:41:27 +0000 Subject: [PATCH 05/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/centos7/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/centos7/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 GreatSQL-Build/centos7/.keep diff --git a/GreatSQL-Build/centos7/.keep b/GreatSQL-Build/centos7/.keep deleted file mode 100644 index e69de29..0000000 -- Gitee From 3ae72ad9f1d7e7e9235ff5351bca860ee56fe847 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:57:49 +0000 Subject: [PATCH 06/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/greatsql-setenv.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/greatsql-setenv.sh | 43 ------------------------------- 1 file changed, 43 deletions(-) delete mode 100755 GreatSQL-Build/greatsql-setenv.sh diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh deleted file mode 100755 index e8b0ee7..0000000 --- a/GreatSQL-Build/greatsql-setenv.sh +++ /dev/null @@ -1,43 +0,0 @@ -#/bin/bash - -. ~/.bash_profile - -MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` -if [ ${MAKE_JOBS} -ge 16 ] ; then - MAKE_JOBS=`expr ${MAKE_JOBS} - 4` -else - MAKE_JOBS=`expr ${MAKE_JOBS} - 1` -fi - -MAJOR_VERSION=8 -MINOR_VERSION=0 -PATCH_VERSION=32 -RELEASE=25 -REVISION=79f57097e3f -OPT_DIR=/opt -GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` -ARCH=`uname -p` -OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` -GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH} -MAKELOG=/tmp/greatsql-automake.log -MYSQL_USER=mysql -DEST_DIR=${OPT_DIR}/${GREATSQL} -GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" -BOOST="boost_1_77_0" -PATCHELF="patchelf-0.14.5" -GREATSQL_ENV="greatsql-setenv.sh" -GREATSQL_MAKESH="greatsql-automake.sh" -if [ "`uname -p`" = "aarch64" ] ; then - RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" -else - RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" -fi - -CMAKE_EXE_LINKER_FLAGS="" -if [ ${ARCH} = "x86_64" ] ; then - CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " -fi -- Gitee From a6186dc95715fd8d9294673ba46918223ce75a8e Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:58:08 +0000 Subject: [PATCH 07/83] centos7 Signed-off-by: earl86 --- GreatSQL-Build/greatsql-setenv.sh | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 GreatSQL-Build/greatsql-setenv.sh diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh new file mode 100644 index 0000000..207aad8 --- /dev/null +++ b/GreatSQL-Build/greatsql-setenv.sh @@ -0,0 +1,40 @@ +#/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +MAJOR_VERSION=8 +MINOR_VERSION=0 +PATCH_VERSION=32 +RELEASE=25 +REVISION=79f57097e3f +OPT_DIR=/opt +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +OS=Linux +OSPATCH=`uname -r|tr -s '.' '\n'|grep el` +GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} +MAKELOG=/tmp/greatsql-automake.log +MYSQL_USER=mysql +DEST_DIR=${OPT_DIR}/${GREATSQL} +GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST="boost_1_77_0" +PATCHELF="patchelf-0.14.5" +GREATSQL_ENV="greatsql-setenv.sh" +GREATSQL_MAKESH="greatsql-automake.sh" +RPCGEN="" +CMAKE_EXE_LINKER_FLAGS="" +if [ ${ARCH} = "x86_64" ] ; then + CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " +fi -- Gitee From a776ac4e9e24bcc101cfff13f440f9dfec4fa2bf Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:59:09 +0000 Subject: [PATCH 08/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/docker-entrypoint.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/docker-entrypoint.sh | 41 ----------------------------- 1 file changed, 41 deletions(-) delete mode 100755 GreatSQL-Build/docker-entrypoint.sh diff --git a/GreatSQL-Build/docker-entrypoint.sh b/GreatSQL-Build/docker-entrypoint.sh deleted file mode 100755 index b5fb734..0000000 --- a/GreatSQL-Build/docker-entrypoint.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -. /opt/greatsql-setenv.sh - -echo "0. touch logfile ${MAKELOG}" -touch ${MAKELOG} && \ -chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ -chmod 0777 ${MAKELOG} && \ -echo && \ -echo "1. downloading sourcecode tarballs and extract" -cd ${OPT_DIR} && \ -echo " 1.1 downloading sourcecode tarballs ..." && \ -wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz >> ${MAKELOG} 2>&1 && \ -echo " 1.2 extract tarballs ..." && \ -tar xf ${OPT_DIR}/${PATCHELF}*z && \ -tar xf ${OPT_DIR}/${BOOST}*z && \ -tar xf ${OPT_DIR}/${GREATSQL_SRC}*z && \ -chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ -dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ -chmod +x ${OPT_DIR}/*sh && \ -echo && \ -echo "2. compile patchelf"; \ -cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} > /dev/null 2>&1 && \ -./configure >> ${MAKELOG} > /dev/null 2>&1 && \ -make >> ${MAKELOG} > /dev/null 2>&1 && \ -make install >> ${MAKELOG} > /dev/null 2>&1 && \ -echo && \ -echo "3. compile GreatSQL"; \ -su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ -echo && \ -echo "4. greatsql build completed!" ; \ -ls -la ${OPT_DIR} | grep GreatSQL.*glibc.* && ${OPT_DIR}/GreatSQL*glibc*/bin/mysqld --verbose --version && \ -echo && \ -echo "5. remove files and clean up" ;\ -cd ${OPT_DIR} && rm -rf ${BOOST} ${GREATSQL_SRC} ${PATCHELF} -/bin/bash -- Gitee From c6917726abe25f112b6c2aa4a60a3dbdf8e9ff41 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:59:16 +0000 Subject: [PATCH 09/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/greatsql-automake.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/greatsql-automake.sh | 207 ---------------------------- 1 file changed, 207 deletions(-) delete mode 100755 GreatSQL-Build/greatsql-automake.sh diff --git a/GreatSQL-Build/greatsql-automake.sh b/GreatSQL-Build/greatsql-automake.sh deleted file mode 100755 index 3aa65d9..0000000 --- a/GreatSQL-Build/greatsql-automake.sh +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/bash - -. /opt/greatsql-setenv.sh - -echo " 3.1 compiling GreatSQL" - -if [ ${ARCH} = "loongarch64" ] ; then - cd ${OPT_DIR}/${GREATSQL_SRC} - sed -i 's/\(.*defined.*mips.*\) \\/\1 defined(__loongarch__) || \\/ig' extra/icu/source/i18n/double-conversion-utils.h -fi - -LIBLIST="libcrypto.so libssl.so libreadline.so libtinfo.so libsasl2.so libbrotlidec.so libbrotlicommon.so libgssapi_krb5.so libkrb5.so libkrb5support.so libk5crypto.so librtmp.so libgssapi.so libssl3.so libsmime3.so libnss3.so libnssutil3.so libplc4.so libnspr4.so libssl3.so libplds4.so libncurses.so libjemalloc.so" -DIRLIST="bin lib lib/private lib/plugin lib/mysqlrouter/plugin lib/mysqlrouter/private" - -LIBPATH="" - -function gather_libs { - local elf_path=$1 - for lib in ${LIBLIST}; do - for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do - IFS=$'\n' - for libfromelf in $(ldd ${elf} | grep ${lib} | awk '{print $3}'); do - lib_realpath="$(readlink -f ${libfromelf})" - lib_realpath_basename="$(basename $(readlink -f ${libfromelf}))" - lib_without_version_suffix=$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}') - - # Some libraries may have dependencies on earlier openssl libraries, such as authentication_ldap_simple.so, - # thus we need to treat them specially here, other than stripping version suffix. - if [[ "${lib_realpath_basename}" =~ ^libcrypto.so.1.0.* ]] || [[ "${lib_realpath_basename}" =~ ^libssl.so.1.0.* ]]; - then - lib_without_version_suffix=$(basename ${libfromelf}) - fi - - - if [ ! -f "lib/private/${lib_realpath_basename}" ] && [ ! -L "lib/private/${lib_realpath_basename}" ]; then - - echo "Copying lib ${lib_realpath_basename}" - cp ${lib_realpath} lib/private - - echo "Symlinking lib from ${lib_realpath_basename} to ${lib_without_version_suffix}" - cd lib/ - ln -s private/${lib_realpath_basename} ${lib_without_version_suffix} - cd - - if [ ${lib_realpath_basename} != ${lib_without_version_suffix} ]; then - cd lib/private - ln -s ${lib_realpath_basename} ${lib_without_version_suffix} - cd - - fi - - patchelf --set-soname ${lib_without_version_suffix} lib/private/${lib_realpath_basename} - - LIBPATH+=" $(echo ${libfromelf} | grep -v $(pwd))" - fi - done - unset IFS - done - done -} - -function set_runpath { - # Set proper runpath for bins but check before doing anything - local elf_path=$1 - local r_path=$2 - for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do - echo "Checking LD_RUNPATH for ${elf}" - if [[ -z $(patchelf --print-rpath ${elf}) ]]; then - echo "Changing RUNPATH for ${elf}" - patchelf --set-rpath ${r_path} ${elf} - fi - if [[ ! -z "${override}" ]] && [[ "${override}" == "true" ]]; then - echo "Overriding RUNPATH for ${elf}" - patchelf --set-rpath ${r_path} ${elf} - fi - done -} - -function replace_libs { - local elf_path=$1 - for libpath_sorted in ${LIBPATH}; do - for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do - LDD=$(ldd ${elf} | grep ${libpath_sorted}|head -n1|awk '{print $1}') - lib_realpath_basename="$(basename $(readlink -f ${libpath_sorted}))" - lib_without_version_suffix="$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}')" - if [[ ! -z $LDD ]] && [[ "${minimal}" == "false" ]]; then - echo "Replacing lib ${lib_realpath_basename} to ${lib_without_version_suffix} for ${elf}" - patchelf --replace-needed ${LDD} ${lib_without_version_suffix} ${elf} - fi - done - done -} - -function check_libs { - local elf_path=$1 - for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do - if ! ldd ${elf}; then - exit 1 - fi - done -} - -function link { - if [ ! -d lib/private ]; then - mkdir -p lib/private - fi - # Gather libs - for DIR in ${DIRLIST}; do - gather_libs ${DIR} - done - # Set proper runpath - export override=false - set_runpath bin '$ORIGIN/../lib/private/' - set_runpath lib '$ORIGIN/private/' - set_runpath lib/plugin '$ORIGIN/../private/' - set_runpath lib/private '$ORIGIN' - # LIBS MYSQLROUTER - unset override && export override=true && set_runpath lib/mysqlrouter/plugin '$ORIGIN/:$ORIGIN/../private/:$ORIGIN/../../private/' - unset override && export override=true && set_runpath lib/mysqlrouter/private '$ORIGIN/:$ORIGIN/../plugin/:$ORIGIN/../../private/' - # BINS MYSQLROUTER - unset override && export override=true && set_runpath bin/mysqlrouter_passwd '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' - unset override && export override=true && set_runpath bin/mysqlrouter_plugin_info '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' - unset override && export override=true && set_runpath bin/mysqlrouter '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' - unset override && export override=true && set_runpath bin/mysqlrouter_keyring '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' - # Replace libs - for DIR in ${DIRLIST}; do - replace_libs ${DIR} - done - # Make final check in order to determine any error after linkage - for DIR in ${DIRLIST}; do - check_libs ${DIR} - done -} - -rm -fr ${MAKELOG} - -cd ${OPT_DIR}/${GREATSQL_SRC} && \ -rm -fr bld && \ -mkdir bld && \ -cd bld && \ -cmake .. \ --DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ --DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ --DCMAKE_INSTALL_PREFIX=${DEST_DIR} \ --DWITH_ZLIB=bundled \ --DWITH_NUMA=ON \ --DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" \ --DCMAKE_BUILD_TYPE=RelWithDebInfo \ --DBUILD_CONFIG=mysql_release \ --DWITH_TOKUDB=OFF \ --DWITH_ROCKSDB=OFF \ --DROCKSDB_DISABLE_AVX2=1 \ --DROCKSDB_DISABLE_MARCH_NATIVE=1 \ --DGROUP_REPLICATION_WITH_ROCKSDB=OFF \ --DALLOW_NO_SSE42=ON \ --DMYSQL_MAINTAINER_MODE=OFF \ --DFORCE_INSOURCE_BUILD=1 \ --DCOMPILATION_COMMENT="GreatSQL, Release ${RELEASE}, Revision ${REVISION}" \ --DMAJOR_VERSION=${MAJOR_VERSION} -DMINOR_VERSION=${MINOR_VERSION} -DPATCH_VERSION=${PATCH_VERSION} \ --DWITH_NDB=OFF \ --DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF \ --DWITH_NDBCLUSTER=OFF \ --DWITH_UNIT_TESTS=OFF \ --DWITH_SSL=system \ --DWITH_SYSTEMD=ON \ --DWITH_AUTHENTICATION_LDAP=OFF \ --DWITH_PAM=1 \ --DWITH_LIBEVENT=bundled \ --DWITH_LDAP=system \ --DWITH_SYSTEM_LIBS=ON \ --DWITH_LZ4=bundled \ --DWITH_PROTOBUF=bundled \ --DWITH_RAPIDJSON=bundled \ --DWITH_ICU=bundled \ --DWITH_READLINE=system \ --DWITH_ZSTD=bundled \ --DWITH_FIDO=bundled \ --DWITH_KEYRING_VAULT=ON \ ->> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 - -echo " 3.2 remove mysql-test from GreatSQL" -rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null - -echo " 3.3 make dynamic link for GreatSQL" -# strip binaries to get minimal package -# 如果想生成minial包,就取消195-204行注释 -#minimal=true -#echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 -#echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 -#( -# cp -rp ${DEST_DIR} ${DEST_DIR}-minimal -# cd ${DEST_DIR}-minimal -# find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded -# link >> ${MAKELOG} 2>&1 -#) -#如果要打包压缩,就把下面两行注释去掉 -#tar -cf ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal -#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal - -minimal=false -( - cd ${DEST_DIR} - link >> ${MAKELOG} 2>&1 -) -#如果要打包压缩,就把下面两行注释去掉 -#tar -cf ${DEST_DIR}.tar ${DEST_DIR} -#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}.tar.xz ${DEST_DIR} -- Gitee From 4575bd63e46c64d514c8415309c4acbfa88f9a46 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:59:22 +0000 Subject: [PATCH 10/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/greatsql-setenv.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/greatsql-setenv.sh | 40 ------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 GreatSQL-Build/greatsql-setenv.sh diff --git a/GreatSQL-Build/greatsql-setenv.sh b/GreatSQL-Build/greatsql-setenv.sh deleted file mode 100644 index 207aad8..0000000 --- a/GreatSQL-Build/greatsql-setenv.sh +++ /dev/null @@ -1,40 +0,0 @@ -#/bin/bash - -. ~/.bash_profile - -MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` -if [ ${MAKE_JOBS} -ge 16 ] ; then - MAKE_JOBS=`expr ${MAKE_JOBS} - 4` -else - MAKE_JOBS=`expr ${MAKE_JOBS} - 1` -fi - -MAJOR_VERSION=8 -MINOR_VERSION=0 -PATCH_VERSION=32 -RELEASE=25 -REVISION=79f57097e3f -OPT_DIR=/opt -GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` -ARCH=`uname -p` -#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` -OS=Linux -OSPATCH=`uname -r|tr -s '.' '\n'|grep el` -GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} -MAKELOG=/tmp/greatsql-automake.log -MYSQL_USER=mysql -DEST_DIR=${OPT_DIR}/${GREATSQL} -GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" -BOOST="boost_1_77_0" -PATCHELF="patchelf-0.14.5" -GREATSQL_ENV="greatsql-setenv.sh" -GREATSQL_MAKESH="greatsql-automake.sh" -RPCGEN="" -CMAKE_EXE_LINKER_FLAGS="" -if [ ${ARCH} = "x86_64" ] ; then - CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " -fi -- Gitee From 52405e930e04a5401a52f774bb80970d3f1c8b4a Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 04:59:30 +0000 Subject: [PATCH 11/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/Dockerfile | 48 --------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 GreatSQL-Build/Dockerfile diff --git a/GreatSQL-Build/Dockerfile b/GreatSQL-Build/Dockerfile deleted file mode 100644 index e972000..0000000 --- a/GreatSQL-Build/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -FROM centos:8 -ENV LANG en_US.utf8 - -LABEL maintainer="greatsql.cn" \ -email="greatsql@greatdb.com" \ -forum="https://greatsql.cn/forum.php" \ -gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" - -ARG OPT_DIR=/opt \ -MYSQL_UID=3306 \ -MYSQL_USER=mysql \ -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" \ -GREATSQL_ENV="greatsql-setenv.sh" \ -ENTRYPOINT="docker-entrypoint.sh" \ -DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ -gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc jemalloc jemalloc-devel krb5-devel libaio-devel \ -libcurl-devel libtirpc-devel libudev-devel m4 make ncurses-devel numactl-devel openldap-devel \ -openssl openssl-devel pam-devel readline-devel wget zlib-devel" - -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ -systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ -sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf clean all > /dev/null 2>&1 && \ -dnf makecache > /dev/null 2>&1 && \ -dnf update -y > /dev/null 2>&1 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf install -y epel-release > /dev/null 2>&1 && \ -dnf install -y ${DEPS} > /dev/null 2>&1 && \ -source /opt/rh/gcc-toolset-11/enable > /dev/null 2>&1 && \ -echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ -/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ -/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ -curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ -curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ -chmod +x /*sh ${OPT_DIR}/*sh - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["bash"] -- Gitee From 06d1fe9f6cf122c2a92ded572711213827c6c4f5 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:02:36 +0000 Subject: [PATCH 12/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index de3fa1d..7b99862 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -3,7 +3,7 @@ 全自动编译GreatSQL源码,生成二进制包。 -适用于CentOS 8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 +适用于CentOS 7/8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 ## 1. GreatSQL Build Docker镜像构建 @@ -37,18 +37,29 @@ $ docker logs greatsql_build 3.3 make dynamic link for GreatSQL 4. greatsql build completed! -drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-centos-glibc2.28-x86_64 -/opt/GreatSQL-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) +centos7: +drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64 +/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) + +centos8: +drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64 +/opt/GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) + + 5. remove files and clean up ``` 可以看到已经完成编译,如果需要的话,可以将Docker容器中的二进制包文件拷贝到宿主机上,例如: ```shell -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-centos-glibc2.28-x86_64 /usr/local/ +centos7: +$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.gz /usr/local/ + +centos8: +$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.gz /usr/local/ ``` -如果宿主机环境也是CentOS 8 x86_64的话,这就可以在宿主机环境下直接使用该二进制文件包了。 +如果宿主机环境也是CentOS 7/8 x86_64的话,这就可以在宿主机环境下直接使用该二进制文件包了。 ## 文件介绍 - CHANGELOG.md,更新历史 -- Gitee From 7cfe978de8fe8bdacf1cb9e2dc5ed2cf5f7aeecf Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:04:35 +0000 Subject: [PATCH 13/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/centos7/greatsql-setenv.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/centos7/greatsql-setenv.sh | 40 ----------------------- 1 file changed, 40 deletions(-) delete mode 100644 GreatSQL-Build/centos7/greatsql-setenv.sh diff --git a/GreatSQL-Build/centos7/greatsql-setenv.sh b/GreatSQL-Build/centos7/greatsql-setenv.sh deleted file mode 100644 index b6c33ac..0000000 --- a/GreatSQL-Build/centos7/greatsql-setenv.sh +++ /dev/null @@ -1,40 +0,0 @@ -#/bin/bash - -. ~/.bash_profile - -MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` -if [ ${MAKE_JOBS} -ge 16 ] ; then - MAKE_JOBS=`expr ${MAKE_JOBS} - 4` -else - MAKE_JOBS=`expr ${MAKE_JOBS} - 1` -fi - -MAJOR_VERSION=8 -MINOR_VERSION=0 -PATCH_VERSION=32 -RELEASE=25 -REVISION=79f57097e3f -OPT_DIR=/opt -GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` -ARCH=`uname -p` -#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` -OS=Linux -OSPATCH=`uname -r|tr -s '.' '\n'|grep el` -GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} -MAKELOG=/tmp/greatsql-automake.log -MYSQL_USER=mysql -DEST_DIR=${OPT_DIR}/${GREATSQL} -GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" -GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" -GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" -BOOST="boost_1_77_0" -PATCHELF="patchelf-0.14.5" -GREATSQL_ENV="greatsql-setenv.sh" -GREATSQL_MAKESH="greatsql-automake.sh" -RPCGEN="" -CMAKE_EXE_LINKER_FLAGS="" -if [ ${ARCH} = "x86_64" ] ; then - CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " -fi -- Gitee From 8b9e1f5fe17947b3265a0281593203da20c27c51 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:04:51 +0000 Subject: [PATCH 14/83] centos7 Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-setenv.sh | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 GreatSQL-Build/centos7/greatsql-setenv.sh diff --git a/GreatSQL-Build/centos7/greatsql-setenv.sh b/GreatSQL-Build/centos7/greatsql-setenv.sh new file mode 100644 index 0000000..207aad8 --- /dev/null +++ b/GreatSQL-Build/centos7/greatsql-setenv.sh @@ -0,0 +1,40 @@ +#/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +MAJOR_VERSION=8 +MINOR_VERSION=0 +PATCH_VERSION=32 +RELEASE=25 +REVISION=79f57097e3f +OPT_DIR=/opt +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +OS=Linux +OSPATCH=`uname -r|tr -s '.' '\n'|grep el` +GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} +MAKELOG=/tmp/greatsql-automake.log +MYSQL_USER=mysql +DEST_DIR=${OPT_DIR}/${GREATSQL} +GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST="boost_1_77_0" +PATCHELF="patchelf-0.14.5" +GREATSQL_ENV="greatsql-setenv.sh" +GREATSQL_MAKESH="greatsql-automake.sh" +RPCGEN="" +CMAKE_EXE_LINKER_FLAGS="" +if [ ${ARCH} = "x86_64" ] ; then + CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " +fi -- Gitee From 1c925252514d17c84dd7ab91bd633e76b8873d71 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:11:53 +0000 Subject: [PATCH 15/83] centos8 Signed-off-by: earl86 --- GreatSQL-Build/centos8/Dockerfile | 48 +++++ GreatSQL-Build/centos8/docker-entrypoint.sh | 41 ++++ GreatSQL-Build/centos8/greatsql-automake.sh | 207 ++++++++++++++++++++ GreatSQL-Build/centos8/greatsql-setenv.sh | 43 ++++ 4 files changed, 339 insertions(+) create mode 100644 GreatSQL-Build/centos8/Dockerfile create mode 100644 GreatSQL-Build/centos8/docker-entrypoint.sh create mode 100644 GreatSQL-Build/centos8/greatsql-automake.sh create mode 100644 GreatSQL-Build/centos8/greatsql-setenv.sh diff --git a/GreatSQL-Build/centos8/Dockerfile b/GreatSQL-Build/centos8/Dockerfile new file mode 100644 index 0000000..e972000 --- /dev/null +++ b/GreatSQL-Build/centos8/Dockerfile @@ -0,0 +1,48 @@ +FROM centos:8 +ENV LANG en_US.utf8 + +LABEL maintainer="greatsql.cn" \ +email="greatsql@greatdb.com" \ +forum="https://greatsql.cn/forum.php" \ +gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" + +ARG OPT_DIR=/opt \ +MYSQL_UID=3306 \ +MYSQL_USER=mysql \ +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" \ +GREATSQL_ENV="greatsql-setenv.sh" \ +ENTRYPOINT="docker-entrypoint.sh" \ +DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc jemalloc jemalloc-devel krb5-devel libaio-devel \ +libcurl-devel libtirpc-devel libudev-devel m4 make ncurses-devel numactl-devel openldap-devel \ +openssl openssl-devel pam-devel readline-devel wget zlib-devel" + +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ +systemd-tmpfiles-setup.service ] || rm -f $i; done); \ +rm -f /lib/systemd/system/multi-user.target.wants/*;\ +rm -f /etc/systemd/system/*.wants/*;\ +rm -f /lib/systemd/system/local-fs.target.wants/*; \ +rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ +rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ +rm -f /lib/systemd/system/basic.target.wants/*;\ +rm -f /lib/systemd/system/anaconda.target.wants/*; \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ +sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +dnf clean all > /dev/null 2>&1 && \ +dnf makecache > /dev/null 2>&1 && \ +dnf update -y > /dev/null 2>&1 && \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +dnf install -y epel-release > /dev/null 2>&1 && \ +dnf install -y ${DEPS} > /dev/null 2>&1 && \ +source /opt/rh/gcc-toolset-11/enable > /dev/null 2>&1 && \ +echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ +/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ +curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ +curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ +chmod +x /*sh ${OPT_DIR}/*sh + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["bash"] diff --git a/GreatSQL-Build/centos8/docker-entrypoint.sh b/GreatSQL-Build/centos8/docker-entrypoint.sh new file mode 100644 index 0000000..b5fb734 --- /dev/null +++ b/GreatSQL-Build/centos8/docker-entrypoint.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +. /opt/greatsql-setenv.sh + +echo "0. touch logfile ${MAKELOG}" +touch ${MAKELOG} && \ +chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ +chmod 0777 ${MAKELOG} && \ +echo && \ +echo "1. downloading sourcecode tarballs and extract" +cd ${OPT_DIR} && \ +echo " 1.1 downloading sourcecode tarballs ..." && \ +wget -c -O ${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQL_MAKESH} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_MAKESH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQL_SRC}.tar.xz ${GREATSQL_SRC_DOWNLOAD_URL}/${GREATSQL_SRC}.tar.xz >> ${MAKELOG} 2>&1 && \ +echo " 1.2 extract tarballs ..." && \ +tar xf ${OPT_DIR}/${PATCHELF}*z && \ +tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${GREATSQL_SRC}*z && \ +chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ +dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ +chmod +x ${OPT_DIR}/*sh && \ +echo && \ +echo "2. compile patchelf"; \ +cd ${OPT_DIR}/${PATCHELF} && ./bootstrap.sh >> ${MAKELOG} > /dev/null 2>&1 && \ +./configure >> ${MAKELOG} > /dev/null 2>&1 && \ +make >> ${MAKELOG} > /dev/null 2>&1 && \ +make install >> ${MAKELOG} > /dev/null 2>&1 && \ +echo && \ +echo "3. compile GreatSQL"; \ +su - ${MYSQL_USER} -s /bin/bash -c "cd /opt; /bin/sh /opt/greatsql-automake.sh" && \ +echo && \ +echo "4. greatsql build completed!" ; \ +ls -la ${OPT_DIR} | grep GreatSQL.*glibc.* && ${OPT_DIR}/GreatSQL*glibc*/bin/mysqld --verbose --version && \ +echo && \ +echo "5. remove files and clean up" ;\ +cd ${OPT_DIR} && rm -rf ${BOOST} ${GREATSQL_SRC} ${PATCHELF} +/bin/bash diff --git a/GreatSQL-Build/centos8/greatsql-automake.sh b/GreatSQL-Build/centos8/greatsql-automake.sh new file mode 100644 index 0000000..3aa65d9 --- /dev/null +++ b/GreatSQL-Build/centos8/greatsql-automake.sh @@ -0,0 +1,207 @@ +#!/bin/bash + +. /opt/greatsql-setenv.sh + +echo " 3.1 compiling GreatSQL" + +if [ ${ARCH} = "loongarch64" ] ; then + cd ${OPT_DIR}/${GREATSQL_SRC} + sed -i 's/\(.*defined.*mips.*\) \\/\1 defined(__loongarch__) || \\/ig' extra/icu/source/i18n/double-conversion-utils.h +fi + +LIBLIST="libcrypto.so libssl.so libreadline.so libtinfo.so libsasl2.so libbrotlidec.so libbrotlicommon.so libgssapi_krb5.so libkrb5.so libkrb5support.so libk5crypto.so librtmp.so libgssapi.so libssl3.so libsmime3.so libnss3.so libnssutil3.so libplc4.so libnspr4.so libssl3.so libplds4.so libncurses.so libjemalloc.so" +DIRLIST="bin lib lib/private lib/plugin lib/mysqlrouter/plugin lib/mysqlrouter/private" + +LIBPATH="" + +function gather_libs { + local elf_path=$1 + for lib in ${LIBLIST}; do + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + IFS=$'\n' + for libfromelf in $(ldd ${elf} | grep ${lib} | awk '{print $3}'); do + lib_realpath="$(readlink -f ${libfromelf})" + lib_realpath_basename="$(basename $(readlink -f ${libfromelf}))" + lib_without_version_suffix=$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}') + + # Some libraries may have dependencies on earlier openssl libraries, such as authentication_ldap_simple.so, + # thus we need to treat them specially here, other than stripping version suffix. + if [[ "${lib_realpath_basename}" =~ ^libcrypto.so.1.0.* ]] || [[ "${lib_realpath_basename}" =~ ^libssl.so.1.0.* ]]; + then + lib_without_version_suffix=$(basename ${libfromelf}) + fi + + + if [ ! -f "lib/private/${lib_realpath_basename}" ] && [ ! -L "lib/private/${lib_realpath_basename}" ]; then + + echo "Copying lib ${lib_realpath_basename}" + cp ${lib_realpath} lib/private + + echo "Symlinking lib from ${lib_realpath_basename} to ${lib_without_version_suffix}" + cd lib/ + ln -s private/${lib_realpath_basename} ${lib_without_version_suffix} + cd - + if [ ${lib_realpath_basename} != ${lib_without_version_suffix} ]; then + cd lib/private + ln -s ${lib_realpath_basename} ${lib_without_version_suffix} + cd - + fi + + patchelf --set-soname ${lib_without_version_suffix} lib/private/${lib_realpath_basename} + + LIBPATH+=" $(echo ${libfromelf} | grep -v $(pwd))" + fi + done + unset IFS + done + done +} + +function set_runpath { + # Set proper runpath for bins but check before doing anything + local elf_path=$1 + local r_path=$2 + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + echo "Checking LD_RUNPATH for ${elf}" + if [[ -z $(patchelf --print-rpath ${elf}) ]]; then + echo "Changing RUNPATH for ${elf}" + patchelf --set-rpath ${r_path} ${elf} + fi + if [[ ! -z "${override}" ]] && [[ "${override}" == "true" ]]; then + echo "Overriding RUNPATH for ${elf}" + patchelf --set-rpath ${r_path} ${elf} + fi + done +} + +function replace_libs { + local elf_path=$1 + for libpath_sorted in ${LIBPATH}; do + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + LDD=$(ldd ${elf} | grep ${libpath_sorted}|head -n1|awk '{print $1}') + lib_realpath_basename="$(basename $(readlink -f ${libpath_sorted}))" + lib_without_version_suffix="$(echo ${lib_realpath_basename} | awk -F"." 'BEGIN { OFS = "." }{ print $1, $2}')" + if [[ ! -z $LDD ]] && [[ "${minimal}" == "false" ]]; then + echo "Replacing lib ${lib_realpath_basename} to ${lib_without_version_suffix} for ${elf}" + patchelf --replace-needed ${LDD} ${lib_without_version_suffix} ${elf} + fi + done + done +} + +function check_libs { + local elf_path=$1 + for elf in $(find ${elf_path} -maxdepth 1 -exec file {} \; | grep 'ELF ' | cut -d':' -f1); do + if ! ldd ${elf}; then + exit 1 + fi + done +} + +function link { + if [ ! -d lib/private ]; then + mkdir -p lib/private + fi + # Gather libs + for DIR in ${DIRLIST}; do + gather_libs ${DIR} + done + # Set proper runpath + export override=false + set_runpath bin '$ORIGIN/../lib/private/' + set_runpath lib '$ORIGIN/private/' + set_runpath lib/plugin '$ORIGIN/../private/' + set_runpath lib/private '$ORIGIN' + # LIBS MYSQLROUTER + unset override && export override=true && set_runpath lib/mysqlrouter/plugin '$ORIGIN/:$ORIGIN/../private/:$ORIGIN/../../private/' + unset override && export override=true && set_runpath lib/mysqlrouter/private '$ORIGIN/:$ORIGIN/../plugin/:$ORIGIN/../../private/' + # BINS MYSQLROUTER + unset override && export override=true && set_runpath bin/mysqlrouter_passwd '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter_plugin_info '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + unset override && export override=true && set_runpath bin/mysqlrouter_keyring '$ORIGIN/../lib/mysqlrouter/private/:$ORIGIN/../lib/mysqlrouter/plugin/:$ORIGIN/../lib/private/' + # Replace libs + for DIR in ${DIRLIST}; do + replace_libs ${DIR} + done + # Make final check in order to determine any error after linkage + for DIR in ${DIRLIST}; do + check_libs ${DIR} + done +} + +rm -fr ${MAKELOG} + +cd ${OPT_DIR}/${GREATSQL_SRC} && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake .. \ +-DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ +-DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ +-DCMAKE_INSTALL_PREFIX=${DEST_DIR} \ +-DWITH_ZLIB=bundled \ +-DWITH_NUMA=ON \ +-DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" \ +-DCMAKE_BUILD_TYPE=RelWithDebInfo \ +-DBUILD_CONFIG=mysql_release \ +-DWITH_TOKUDB=OFF \ +-DWITH_ROCKSDB=OFF \ +-DROCKSDB_DISABLE_AVX2=1 \ +-DROCKSDB_DISABLE_MARCH_NATIVE=1 \ +-DGROUP_REPLICATION_WITH_ROCKSDB=OFF \ +-DALLOW_NO_SSE42=ON \ +-DMYSQL_MAINTAINER_MODE=OFF \ +-DFORCE_INSOURCE_BUILD=1 \ +-DCOMPILATION_COMMENT="GreatSQL, Release ${RELEASE}, Revision ${REVISION}" \ +-DMAJOR_VERSION=${MAJOR_VERSION} -DMINOR_VERSION=${MINOR_VERSION} -DPATCH_VERSION=${PATCH_VERSION} \ +-DWITH_NDB=OFF \ +-DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF \ +-DWITH_NDBCLUSTER=OFF \ +-DWITH_UNIT_TESTS=OFF \ +-DWITH_SSL=system \ +-DWITH_SYSTEMD=ON \ +-DWITH_AUTHENTICATION_LDAP=OFF \ +-DWITH_PAM=1 \ +-DWITH_LIBEVENT=bundled \ +-DWITH_LDAP=system \ +-DWITH_SYSTEM_LIBS=ON \ +-DWITH_LZ4=bundled \ +-DWITH_PROTOBUF=bundled \ +-DWITH_RAPIDJSON=bundled \ +-DWITH_ICU=bundled \ +-DWITH_READLINE=system \ +-DWITH_ZSTD=bundled \ +-DWITH_FIDO=bundled \ +-DWITH_KEYRING_VAULT=ON \ +>> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 + +echo " 3.2 remove mysql-test from GreatSQL" +rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null + +echo " 3.3 make dynamic link for GreatSQL" +# strip binaries to get minimal package +# 如果想生成minial包,就取消195-204行注释 +#minimal=true +#echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 +#echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 +#( +# cp -rp ${DEST_DIR} ${DEST_DIR}-minimal +# cd ${DEST_DIR}-minimal +# find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded +# link >> ${MAKELOG} 2>&1 +#) +#如果要打包压缩,就把下面两行注释去掉 +#tar -cf ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal +#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal + +minimal=false +( + cd ${DEST_DIR} + link >> ${MAKELOG} 2>&1 +) +#如果要打包压缩,就把下面两行注释去掉 +#tar -cf ${DEST_DIR}.tar ${DEST_DIR} +#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}.tar.xz ${DEST_DIR} diff --git a/GreatSQL-Build/centos8/greatsql-setenv.sh b/GreatSQL-Build/centos8/greatsql-setenv.sh new file mode 100644 index 0000000..e8b0ee7 --- /dev/null +++ b/GreatSQL-Build/centos8/greatsql-setenv.sh @@ -0,0 +1,43 @@ +#/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +MAJOR_VERSION=8 +MINOR_VERSION=0 +PATCH_VERSION=32 +RELEASE=25 +REVISION=79f57097e3f +OPT_DIR=/opt +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH} +MAKELOG=/tmp/greatsql-automake.log +MYSQL_USER=mysql +DEST_DIR=${OPT_DIR}/${GREATSQL} +GREATSQL_SRC=greatsql-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" +GREATSQL_SRC_DOWNLOAD_URL="https://product.greatdb.com/GreatSQL-8.0.32-25" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +BOOST="boost_1_77_0" +PATCHELF="patchelf-0.14.5" +GREATSQL_ENV="greatsql-setenv.sh" +GREATSQL_MAKESH="greatsql-automake.sh" +if [ "`uname -p`" = "aarch64" ] ; then + RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" +else + RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" +fi + +CMAKE_EXE_LINKER_FLAGS="" +if [ ${ARCH} = "x86_64" ] ; then + CMAKE_EXE_LINKER_FLAGS=" -ljemalloc " +fi -- Gitee From 851efd6f7b1a5dfff124aaf0ca4ed83d702b884a Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:12:18 +0000 Subject: [PATCH 16/83] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Gr?= =?UTF-8?q?eatSQL-Build/centos8/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Build/centos8/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 GreatSQL-Build/centos8/.keep diff --git a/GreatSQL-Build/centos8/.keep b/GreatSQL-Build/centos8/.keep deleted file mode 100644 index e69de29..0000000 -- Gitee From b25f07c3ed1f5e135c2a63f9a7686341a827f4b5 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:21:28 +0000 Subject: [PATCH 17/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 7b99862..753d878 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -8,7 +8,11 @@ ## 1. GreatSQL Build Docker镜像构建 ```shell -$ docker build -t greatsql/greatsql_build . +centos7: +$ docker build -t greatsql/greatsql_build7 . + +centos8: +$ docker build -t greatsql/greatsql_build8 . ``` 上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build` 的Docker镜像。 @@ -18,10 +22,15 @@ $ docker build -t greatsql/greatsql_build . ```shell # 创建新容器 -$ docker run -itd --hostname greatsql_build --name greatsql_build greatsql/greatsql_build bash +centos7: +$ docker run -itd --hostname greatsql_build7 --name greatsql_build7 greatsql/greatsql_build7 bash + +centos8: +$ docker run -itd --hostname greatsql_build8 --name greatsql_build8 greatsql/greatsql_build8 bash # 查看自动编译进展 -$ docker logs greatsql_build +$ docker logs greatsql_build7 +$ docker logs greatsql_build8 0. touch logfile /tmp/greatsql-automake.log @@ -53,10 +62,10 @@ drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-Linux-el8-gl 可以看到已经完成编译,如果需要的话,可以将Docker容器中的二进制包文件拷贝到宿主机上,例如: ```shell centos7: -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.gz /usr/local/ +$ docker cp greatsql_build7:/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.gz /usr/local/ centos8: -$ docker cp greatsql_build:/opt/GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.gz /usr/local/ +$ docker cp greatsql_build8:/opt/GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.gz /usr/local/ ``` 如果宿主机环境也是CentOS 7/8 x86_64的话,这就可以在宿主机环境下直接使用该二进制文件包了。 -- Gitee From 1318b4034fa4962a5e3830714ef5db0306f9597e Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:22:13 +0000 Subject: [PATCH 18/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 753d878..1f86ffd 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -29,7 +29,10 @@ centos8: $ docker run -itd --hostname greatsql_build8 --name greatsql_build8 greatsql/greatsql_build8 bash # 查看自动编译进展 +centos7: $ docker logs greatsql_build7 + +centos8: $ docker logs greatsql_build8 0. touch logfile /tmp/greatsql-automake.log -- Gitee From 4cee3a963d36bf5fcc3052b8b8a7f20139865850 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:23:57 +0000 Subject: [PATCH 19/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 1f86ffd..9b56521 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -51,7 +51,7 @@ $ docker logs greatsql_build8 4. greatsql build completed! centos7: drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64 -/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.28-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) +/opt/GreatSQL-8.0.32-25-Linux-el7-glibc2.17-x86_64/bin/mysqld Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f) centos8: drwxrwxr-x 13 mysql mysql 293 Feb 22 01:33 GreatSQL-8.0.32-25-Linux-el8-glibc2.28-x86_64 -- Gitee From fb246e66239bc545f0c38bc81ffa838a10a53b35 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:26:27 +0000 Subject: [PATCH 20/83] update GreatSQL-Build/centos8/greatsql-setenv.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos8/greatsql-setenv.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos8/greatsql-setenv.sh b/GreatSQL-Build/centos8/greatsql-setenv.sh index e8b0ee7..da68f16 100644 --- a/GreatSQL-Build/centos8/greatsql-setenv.sh +++ b/GreatSQL-Build/centos8/greatsql-setenv.sh @@ -17,8 +17,10 @@ REVISION=79f57097e3f OPT_DIR=/opt GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` ARCH=`uname -p` -OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` -GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH} +#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +OS=Linux +OSPATCH=`uname -r|tr -s '.' '\n'|grep el` +GREATSQL=GreatSQL-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} MAKELOG=/tmp/greatsql-automake.log MYSQL_USER=mysql DEST_DIR=${OPT_DIR}/${GREATSQL} -- Gitee From 5df213046129c03008980f13705123e6b8d21f9a Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 05:27:40 +0000 Subject: [PATCH 21/83] update GreatSQL-Build/centos8/greatsql-automake.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos8/greatsql-automake.sh | 50 +++++++++++---------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/GreatSQL-Build/centos8/greatsql-automake.sh b/GreatSQL-Build/centos8/greatsql-automake.sh index 3aa65d9..3cea3ed 100644 --- a/GreatSQL-Build/centos8/greatsql-automake.sh +++ b/GreatSQL-Build/centos8/greatsql-automake.sh @@ -182,26 +182,30 @@ echo " 3.2 remove mysql-test from GreatSQL" rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null echo " 3.3 make dynamic link for GreatSQL" -# strip binaries to get minimal package -# 如果想生成minial包,就取消195-204行注释 -#minimal=true -#echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 -#echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 -#( -# cp -rp ${DEST_DIR} ${DEST_DIR}-minimal -# cd ${DEST_DIR}-minimal -# find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded -# link >> ${MAKELOG} 2>&1 -#) -#如果要打包压缩,就把下面两行注释去掉 -#tar -cf ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal -#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}-minimal.tar ${DEST_DIR}-minimal - -minimal=false -( - cd ${DEST_DIR} - link >> ${MAKELOG} 2>&1 -) -#如果要打包压缩,就把下面两行注释去掉 -#tar -cf ${DEST_DIR}.tar ${DEST_DIR} -#xz -9 -f -T${MAKE_JOBS} ${DEST_DIR}.tar.xz ${DEST_DIR} +# strip binaries to get minimal/all package +tar_minimal { + minimal=true + echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 + echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 + ( + cp -rp ${DEST_DIR} ${DEST_DIR}-minimal + cd ${DEST_DIR}-minimal + find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded + link >> ${MAKELOG} 2>&1 + ) + tar -czf ${DEST_DIR}-minimal.tar.gz ${DEST_DIR}-minimal +} +# 如果想生成minial包,就把下面行注释去掉 +tar_minimal + +tar_all { + minimal=false + ( + cd ${DEST_DIR} + link >> ${MAKELOG} 2>&1 + ) + 如果要打包完整压缩,就把下面行注释去掉 + tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} +} +#如果要打包完整压缩,就把下面行注释去掉 +tar_all -- Gitee From e0da33888f6ed4ddd3284c19ba11a74ecc1628cd Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 07:46:41 +0000 Subject: [PATCH 22/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 9b56521..0a78e32 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -14,7 +14,7 @@ $ docker build -t greatsql/greatsql_build7 . centos8: $ docker build -t greatsql/greatsql_build8 . ``` -上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build` 的Docker镜像。 +上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build7/8` 的Docker镜像。 在构建镜像时,会自动从服务器上下载相应的源码包文件、初始化脚本等文件,并全自动化方式完成镜像构建工作。 -- Gitee From d2c08b714b2a644c3074d9973982abeda04cd4de Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 08:04:11 +0000 Subject: [PATCH 23/83] update GreatSQL-Build/centos7/Dockerfile. Signed-off-by: earl86 --- GreatSQL-Build/centos7/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile index ddd1575..51638b0 100644 --- a/GreatSQL-Build/centos7/Dockerfile +++ b/GreatSQL-Build/centos7/Dockerfile @@ -1,4 +1,4 @@ -FROM centos:7 +FROM centos:7 ENV LANG en_US.utf8 LABEL maintainer="greatsql.cn" \ @@ -9,7 +9,7 @@ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ARG OPT_DIR=/opt ARG MYSQL_UID=3306 ARG MYSQL_USER=mysql -ARG GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build" +ARG GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" ARG GREATSQL_ENV="greatsql-setenv.sh" ARG ENTRYPOINT="docker-entrypoint.sh" -- Gitee From 510540900981eb9edc2df53648615bef34b07ef3 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 09:04:35 +0000 Subject: [PATCH 24/83] update GreatSQL-Build/centos7/greatsql-setenv.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-setenv.sh b/GreatSQL-Build/centos7/greatsql-setenv.sh index 207aad8..440c9c6 100644 --- a/GreatSQL-Build/centos7/greatsql-setenv.sh +++ b/GreatSQL-Build/centos7/greatsql-setenv.sh @@ -1,4 +1,4 @@ -#/bin/bash +!#/bin/bash . ~/.bash_profile -- Gitee From da5c3e51b732f8c38fc90a9f6036052457ecf6d4 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 09:05:20 +0000 Subject: [PATCH 25/83] update GreatSQL-Build/centos7/greatsql-setenv.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-setenv.sh b/GreatSQL-Build/centos7/greatsql-setenv.sh index 440c9c6..989cb75 100644 --- a/GreatSQL-Build/centos7/greatsql-setenv.sh +++ b/GreatSQL-Build/centos7/greatsql-setenv.sh @@ -1,4 +1,4 @@ -!#/bin/bash +#!/bin/bash . ~/.bash_profile -- Gitee From 2606f2b3801decba0e8d8df8108d84a360891e51 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 09:05:46 +0000 Subject: [PATCH 26/83] update GreatSQL-Build/centos8/greatsql-setenv.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos8/greatsql-setenv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/centos8/greatsql-setenv.sh b/GreatSQL-Build/centos8/greatsql-setenv.sh index da68f16..a6053fc 100644 --- a/GreatSQL-Build/centos8/greatsql-setenv.sh +++ b/GreatSQL-Build/centos8/greatsql-setenv.sh @@ -1,4 +1,4 @@ -#/bin/bash +#!/bin/bash . ~/.bash_profile -- Gitee From 4fd800f6666c2853ccf2491b29165979180d2c21 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 09:07:08 +0000 Subject: [PATCH 27/83] update GreatSQL-Build/centos7/greatsql-automake.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-automake.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 4807967..c197300 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash . /opt/greatsql-setenv.sh @@ -186,7 +186,7 @@ rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null echo " 3.3 make dynamic link for GreatSQL" # strip binaries to get minimal/all package -tar_minimal { +function tar_minimal { minimal=true echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 @@ -201,7 +201,7 @@ tar_minimal { # 如果想生成minial包,就把下面行注释去掉 tar_minimal -tar_all { +function tar_all { minimal=false ( cd ${DEST_DIR} -- Gitee From 3be8bb5c2383b3882bb61eba99736b9e9204036e Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 09:07:57 +0000 Subject: [PATCH 28/83] update GreatSQL-Build/centos8/greatsql-automake.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos8/greatsql-automake.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos8/greatsql-automake.sh b/GreatSQL-Build/centos8/greatsql-automake.sh index 3cea3ed..e0f2e7d 100644 --- a/GreatSQL-Build/centos8/greatsql-automake.sh +++ b/GreatSQL-Build/centos8/greatsql-automake.sh @@ -183,7 +183,7 @@ rm -fr ${DEST_DIR}/mysql-test 2 > /dev/null echo " 3.3 make dynamic link for GreatSQL" # strip binaries to get minimal/all package -tar_minimal { +function tar_minimal { minimal=true echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 @@ -198,7 +198,7 @@ tar_minimal { # 如果想生成minial包,就把下面行注释去掉 tar_minimal -tar_all { +function tar_all { minimal=false ( cd ${DEST_DIR} -- Gitee From f73654876c28fb4f3cdae4c3bfbb4a4fe296a743 Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 10:05:26 +0000 Subject: [PATCH 29/83] update GreatSQL-Build/centos7/Dockerfile. Signed-off-by: earl86 --- GreatSQL-Build/centos7/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile index 51638b0..ccc9e20 100644 --- a/GreatSQL-Build/centos7/Dockerfile +++ b/GreatSQL-Build/centos7/Dockerfile @@ -52,8 +52,9 @@ RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} RUN curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ -curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ -chmod +x /*sh ${OPT_DIR}/*sh +curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 + +RUN chmod +x /*sh ${OPT_DIR}/*sh ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["bash"] -- Gitee From d9bf3f7104c8631f4fcc076dbcc18f35bf0175ed Mon Sep 17 00:00:00 2001 From: earl86 Date: Tue, 27 Feb 2024 10:21:22 +0000 Subject: [PATCH 30/83] update GreatSQL-Build/centos7/greatsql-automake.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-automake.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index c197300..5085f46 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -199,6 +199,7 @@ function tar_minimal { tar -czf ${DEST_DIR}-minimal.tar.gz ${DEST_DIR}-minimal } # 如果想生成minial包,就把下面行注释去掉 +echo " 3.4 make minimal tar for GreatSQL" tar_minimal function tar_all { @@ -211,5 +212,6 @@ function tar_all { tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } #如果要打包完整压缩,就把下面行注释去掉 +echo " 3.5 make normal tar for GreatSQL" tar_all -- Gitee From a57e3a473dd785dc0b1cb59ebe30826dde5c1d99 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 28 Feb 2024 02:10:16 +0000 Subject: [PATCH 31/83] update GreatSQL-Build/centos7/Dockerfile. Signed-off-by: earl86 --- GreatSQL-Build/centos7/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile index ccc9e20..6c8b9fa 100644 --- a/GreatSQL-Build/centos7/Dockerfile +++ b/GreatSQL-Build/centos7/Dockerfile @@ -9,7 +9,7 @@ gitee="https://gitee.com/GreatSQL/GreatSQL-Docker" ARG OPT_DIR=/opt ARG MYSQL_UID=3306 ARG MYSQL_USER=mysql -ARG GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" +ARG GREATSQL_MAKESH_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Build/centos7" ARG GREATSQL_ENV="greatsql-setenv.sh" ARG ENTRYPOINT="docker-entrypoint.sh" @@ -51,8 +51,8 @@ echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} -RUN curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ -curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 +RUN curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ +curl -o /${ENTRYPOINT} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 RUN chmod +x /*sh ${OPT_DIR}/*sh -- Gitee From 85c6654b9c6f3cb6d38b0f471593511c0b4231ba Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 28 Feb 2024 02:11:25 +0000 Subject: [PATCH 32/83] update GreatSQL-Build/centos7/Dockerfile. Signed-off-by: earl86 --- GreatSQL-Build/centos7/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile index 6c8b9fa..36c3d74 100644 --- a/GreatSQL-Build/centos7/Dockerfile +++ b/GreatSQL-Build/centos7/Dockerfile @@ -54,6 +54,10 @@ RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ RUN curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \ curl -o /${ENTRYPOINT} ${GREATSQL_MAKESH_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 +#COPY ${GREATSQL_ENV} ${OPT_DIR}/${GREATSQL_ENV} +#COPY ${ENTRYPOINT} /${ENTRYPOINT} + + RUN chmod +x /*sh ${OPT_DIR}/*sh ENTRYPOINT ["/docker-entrypoint.sh"] -- Gitee From 22ed505ccf4f170d668a93f7b5054937c0d4635b Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 28 Feb 2024 02:16:01 +0000 Subject: [PATCH 33/83] update GreatSQL-Build/README.md. Signed-off-by: earl86 --- GreatSQL-Build/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/GreatSQL-Build/README.md b/GreatSQL-Build/README.md index 0a78e32..ff98954 100644 --- a/GreatSQL-Build/README.md +++ b/GreatSQL-Build/README.md @@ -8,10 +8,14 @@ ## 1. GreatSQL Build Docker镜像构建 ```shell +$ git clone https://gitee.com/earl86/GreatSQL-Docker.git + centos7: +$ cd GreatSQL-Docker/GreatSQL-Build/centos7 $ docker build -t greatsql/greatsql_build7 . centos8: +$ cd GreatSQL-Docker/GreatSQL-Build/centos8 $ docker build -t greatsql/greatsql_build8 . ``` 上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build7/8` 的Docker镜像。 -- Gitee From 6a6a9a5aa0dfae61a8f341905f0dcccdb8555096 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 28 Feb 2024 02:18:55 +0000 Subject: [PATCH 34/83] update GreatSQL-Build/centos7/greatsql-automake.sh. Signed-off-by: earl86 --- GreatSQL-Build/centos7/greatsql-automake.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 5085f46..777beb4 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -215,3 +215,4 @@ function tar_all { echo " 3.5 make normal tar for GreatSQL" tar_all +echo "4. greatsql build completed!" -- Gitee From 9585e724d8c92c8b1cf571130b6c6a7879042769 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 1 Mar 2024 08:07:50 +0000 Subject: [PATCH 35/83] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20centos7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/centos7/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GreatSQL-Shell-Build/centos7/.keep diff --git a/GreatSQL-Shell-Build/centos7/.keep b/GreatSQL-Shell-Build/centos7/.keep new file mode 100644 index 0000000..e69de29 -- Gitee From 30773722a4b3d8a1ebcea16bdfe90eb986e65d94 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 1 Mar 2024 08:07:59 +0000 Subject: [PATCH 36/83] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20centos8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GreatSQL-Shell-Build/centos8/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GreatSQL-Shell-Build/centos8/.keep diff --git a/GreatSQL-Shell-Build/centos8/.keep b/GreatSQL-Shell-Build/centos8/.keep new file mode 100644 index 0000000..e69de29 -- Gitee From fd565bb1cde873c0404f239303288a571c87dd8f Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 1 Mar 2024 16:22:53 +0800 Subject: [PATCH 37/83] centos8 --- GreatSQL-Shell-Build/Dockerfile | 51 ---------------- GreatSQL-Shell-Build/docker-entrypoint.sh | 65 --------------------- GreatSQL-Shell-Build/greatsqlsh-automake.sh | 30 ---------- GreatSQL-Shell-Build/greatsqlsh-setenv.sh | 40 ------------- 4 files changed, 186 deletions(-) delete mode 100644 GreatSQL-Shell-Build/Dockerfile delete mode 100755 GreatSQL-Shell-Build/docker-entrypoint.sh delete mode 100755 GreatSQL-Shell-Build/greatsqlsh-automake.sh delete mode 100755 GreatSQL-Shell-Build/greatsqlsh-setenv.sh diff --git a/GreatSQL-Shell-Build/Dockerfile b/GreatSQL-Shell-Build/Dockerfile deleted file mode 100644 index 217f932..0000000 --- a/GreatSQL-Shell-Build/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -FROM centos:8 -#FROM docker.io/arm64v8/centos - -LABEL maintainer="greatsql.cn" \ -email="greatsql@greatdb.com" \ -forum="https://greatsql.cn/forum.php" \ -gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" - -ENV LANG en_US.utf8 -ARG OPT_DIR=/opt \ -MYSQL_UID=3306 \ -MYSQL_USER=mysql \ -DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ -gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc libcurl-devel libssh libssh-config libssh-devel \ -libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel" \ -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" \ -GREATSQLSH_ENV="greatsqlsh-setenv.sh" \ -ENTRYPOINT="docker-entrypoint.sh" - -CMD /bin/bash - -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ -systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ -sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ -dnf clean all > /dev/null 2>&1 && \ -dnf -y update > /dev/null 2>&1 ; \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf clean all > /dev/null 2>&1 && \ -rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ -dnf install -y ${DEPS} > /dev/null 2>&1 ; \ -echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ -/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ -/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ -mkdir -p ${OPT_DIR} && \ -curl -o ${OPT_DIR}/${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} > /dev/null 2>&1 && \ -curl -o ${OPT_DIR}/${ENTRYPOINT} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ -chmod +x ${OPT_DIR}/*sh - -ENTRYPOINT ["/opt/docker-entrypoint.sh"] - -CMD ["bash"] diff --git a/GreatSQL-Shell-Build/docker-entrypoint.sh b/GreatSQL-Shell-Build/docker-entrypoint.sh deleted file mode 100755 index 1afc8df..0000000 --- a/GreatSQL-Shell-Build/docker-entrypoint.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -. /opt/greatsqlsh-setenv.sh - -echo "0. touch logfile ${MAKELOG}" -touch ${MAKELOG} && \ -chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ -chmod 0777 ${MAKELOG} && \ -echo && \ -echo "1. downloading sourcecode tarballs and extract" -cd ${OPT_DIR} && \ -echo " 1.1 downloading sourcecode tarballs ..." && \ -wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ -echo " 1.2 extract tarballs ..." && \ -tar xf ${OPT_DIR}/${PATCHELF}*z && \ -tar xf ${OPT_DIR}/${PROTOBUF}*z && \ -tar xf ${OPT_DIR}/${ANTLR}*z && \ -tar xf ${OPT_DIR}/${BOOST}*z && \ -tar xf ${OPT_DIR}/${MYSQL}*z && \ -tar xf ${OPT_DIR}/${MYSQLSH}*z && \ -chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ -dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ -chmod +x ${OPT_DIR}/*sh && \ -echo && \ -echo "2. compiling antlr4" -cd ${OPT_DIR}/${ANTLR}/runtime/Cpp/bld && \ -cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "3. compiling patchelf" -cd ${OPT_DIR}/${PATCHELF} && \ -./bootstrap.sh >> ${MAKELOG} 2>&1 && \ -./configure >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "4. compiling protobuf" -cd ${OPT_DIR}/${PROTOBUF} && \ -./configure >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "5. compiling MySQL Shell for GreatSQL" -su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ -echo && \ -echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" -pip3.8 install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ -echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ -${BASE_DIR}/bin/mysqlsh --version && \ -cd ${OPT_DIR} && \ -tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ -xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ -echo " 6.2 TARBALL file:" && \ -ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ -cd ${OPT_DIR} && \ -rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${RPCGEN} -/bin/bash diff --git a/GreatSQL-Shell-Build/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/greatsqlsh-automake.sh deleted file mode 100755 index f818688..0000000 --- a/GreatSQL-Shell-Build/greatsqlsh-automake.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -. /opt/greatsqlsh-setenv.sh - -echo " 5.1 compiling mysqlclient and mysqlxclient" && \ -cd ${OPT_DIR}/${MYSQL} && \ -rm -fr bld && \ -mkdir bld && \ -cd bld && \ -cmake .. -DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ --DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ --DWITH_SSL=system >> ${MAKELOG} 2>&1 && \ -cmake --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ -cmake --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -echo " 5.2 compiling MySQL Shell for GreatSQL" && \ -cd ${OPT_DIR}/${MYSQLSH} && \ -patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ -rm -fr bld && \ -mkdir bld && \ -cd bld && \ -cmake .. \ --DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ --DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ --DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ --DHAVE_PYTHON=1 \ --DWITH_PROTOBUF=bundled \ --DBUILD_SOURCE_PACKAGE=0 \ --DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ -&& make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/greatsqlsh-setenv.sh deleted file mode 100755 index 4d97527..0000000 --- a/GreatSQL-Shell-Build/greatsqlsh-setenv.sh +++ /dev/null @@ -1,40 +0,0 @@ -#/bin/bash - -. ~/.bash_profile - -MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` -if [ ${MAKE_JOBS} -ge 16 ] ; then - MAKE_JOBS=`expr ${MAKE_JOBS} - 4` -else - MAKE_JOBS=`expr ${MAKE_JOBS} - 1` -fi - -OPT_DIR=/opt -MYSQL_VERSTION=8.0.32 -RELEASE=25 -GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` -ARCH=`uname -p` -OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` -MAKELOG=/tmp/greatsqlsh-automake.log -MYSQL_USER=mysql -GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH} -BASE_DIR=${OPT_DIR}/${GREATSQLSH} -GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" -BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" -MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" -MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" -ANTLR="antlr4-4.10" -BOOST="boost_1_77_0" -MYSQL="mysql-8.0.32" -MYSQLSH="mysql-shell-8.0.32-src" -PATCHELF="patchelf-0.14.5" -PROTOBUF="protobuf-3.19.4" -GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" -GREATSQLSH_MAKESH="greatsqlsh-automake.sh" -GREATSQLSH_ENV="greatsqlsh-setenv.sh" -if [ "`uname -p`" = "aarch64" ] ; then - RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" -else - RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" -fi -- Gitee From 9d4d0b6d1725ac65ffe3e98d78ccc7b3a26b1e9e Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 1 Mar 2024 16:25:27 +0800 Subject: [PATCH 38/83] centos8 --- GreatSQL-Shell-Build/centos8/Dockerfile | 51 +++++++++++++++ .../centos8/docker-entrypoint.sh | 65 +++++++++++++++++++ .../centos8/greatsqlsh-automake.sh | 30 +++++++++ .../centos8/greatsqlsh-setenv.sh | 40 ++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 GreatSQL-Shell-Build/centos8/Dockerfile create mode 100644 GreatSQL-Shell-Build/centos8/docker-entrypoint.sh create mode 100644 GreatSQL-Shell-Build/centos8/greatsqlsh-automake.sh create mode 100644 GreatSQL-Shell-Build/centos8/greatsqlsh-setenv.sh diff --git a/GreatSQL-Shell-Build/centos8/Dockerfile b/GreatSQL-Shell-Build/centos8/Dockerfile new file mode 100644 index 0000000..217f932 --- /dev/null +++ b/GreatSQL-Shell-Build/centos8/Dockerfile @@ -0,0 +1,51 @@ +FROM centos:8 +#FROM docker.io/arm64v8/centos + +LABEL maintainer="greatsql.cn" \ +email="greatsql@greatdb.com" \ +forum="https://greatsql.cn/forum.php" \ +gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" + +ENV LANG en_US.utf8 +ARG OPT_DIR=/opt \ +MYSQL_UID=3306 \ +MYSQL_USER=mysql \ +DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc libcurl-devel libssh libssh-config libssh-devel \ +libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ +patch python38 python38-devel python38-libs python38-pyyaml uuid wget zlib-devel" \ +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" \ +GREATSQLSH_ENV="greatsqlsh-setenv.sh" \ +ENTRYPOINT="docker-entrypoint.sh" + +CMD /bin/bash + +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ +systemd-tmpfiles-setup.service ] || rm -f $i; done); \ +rm -f /lib/systemd/system/multi-user.target.wants/*;\ +rm -f /etc/systemd/system/*.wants/*;\ +rm -f /lib/systemd/system/local-fs.target.wants/*; \ +rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ +rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ +rm -f /lib/systemd/system/basic.target.wants/*;\ +rm -f /lib/systemd/system/anaconda.target.wants/*; \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ +sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \ +dnf clean all > /dev/null 2>&1 && \ +dnf -y update > /dev/null 2>&1 ; \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +dnf clean all > /dev/null 2>&1 && \ +rm -f /etc/yum.repos.d/CentOS-Linux-* ; \ +dnf install -y ${DEPS} > /dev/null 2>&1 ; \ +echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \ +/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \ +mkdir -p ${OPT_DIR} && \ +curl -o ${OPT_DIR}/${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} > /dev/null 2>&1 && \ +curl -o ${OPT_DIR}/${ENTRYPOINT} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \ +chmod +x ${OPT_DIR}/*sh + +ENTRYPOINT ["/opt/docker-entrypoint.sh"] + +CMD ["bash"] diff --git a/GreatSQL-Shell-Build/centos8/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos8/docker-entrypoint.sh new file mode 100644 index 0000000..1afc8df --- /dev/null +++ b/GreatSQL-Shell-Build/centos8/docker-entrypoint.sh @@ -0,0 +1,65 @@ +#!/bin/bash +. /opt/greatsqlsh-setenv.sh + +echo "0. touch logfile ${MAKELOG}" +touch ${MAKELOG} && \ +chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ +chmod 0777 ${MAKELOG} && \ +echo && \ +echo "1. downloading sourcecode tarballs and extract" +cd ${OPT_DIR} && \ +echo " 1.1 downloading sourcecode tarballs ..." && \ +wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ +echo " 1.2 extract tarballs ..." && \ +tar xf ${OPT_DIR}/${PATCHELF}*z && \ +tar xf ${OPT_DIR}/${PROTOBUF}*z && \ +tar xf ${OPT_DIR}/${ANTLR}*z && \ +tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${MYSQL}*z && \ +tar xf ${OPT_DIR}/${MYSQLSH}*z && \ +chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ +dnf install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ +chmod +x ${OPT_DIR}/*sh && \ +echo && \ +echo "2. compiling antlr4" +cd ${OPT_DIR}/${ANTLR}/runtime/Cpp/bld && \ +cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "3. compiling patchelf" +cd ${OPT_DIR}/${PATCHELF} && \ +./bootstrap.sh >> ${MAKELOG} 2>&1 && \ +./configure >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "4. compiling protobuf" +cd ${OPT_DIR}/${PROTOBUF} && \ +./configure >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "5. compiling MySQL Shell for GreatSQL" +su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ +echo && \ +echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" +pip3.8 install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ +echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +${BASE_DIR}/bin/mysqlsh --version && \ +cd ${OPT_DIR} && \ +tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ +xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ +echo " 6.2 TARBALL file:" && \ +ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ +cd ${OPT_DIR} && \ +rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${RPCGEN} +/bin/bash diff --git a/GreatSQL-Shell-Build/centos8/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos8/greatsqlsh-automake.sh new file mode 100644 index 0000000..f818688 --- /dev/null +++ b/GreatSQL-Shell-Build/centos8/greatsqlsh-automake.sh @@ -0,0 +1,30 @@ +#!/bin/bash +. /opt/greatsqlsh-setenv.sh + +echo " 5.1 compiling mysqlclient and mysqlxclient" && \ +cd ${OPT_DIR}/${MYSQL} && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake .. -DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ +-DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ +-DWITH_SSL=system >> ${MAKELOG} 2>&1 && \ +cmake --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ +cmake --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +echo " 5.2 compiling MySQL Shell for GreatSQL" && \ +cd ${OPT_DIR}/${MYSQLSH} && \ +patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake .. \ +-DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ +-DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ +-DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ +-DHAVE_PYTHON=1 \ +-DWITH_PROTOBUF=bundled \ +-DBUILD_SOURCE_PACKAGE=0 \ +-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ +-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ +&& make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/centos8/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos8/greatsqlsh-setenv.sh new file mode 100644 index 0000000..4d97527 --- /dev/null +++ b/GreatSQL-Shell-Build/centos8/greatsqlsh-setenv.sh @@ -0,0 +1,40 @@ +#/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +OPT_DIR=/opt +MYSQL_VERSTION=8.0.32 +RELEASE=25 +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +MAKELOG=/tmp/greatsqlsh-automake.log +MYSQL_USER=mysql +GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-${OS}-glibc${GLIBC}-${ARCH} +BASE_DIR=${OPT_DIR}/${GREATSQLSH} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" +MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" +ANTLR="antlr4-4.10" +BOOST="boost_1_77_0" +MYSQL="mysql-8.0.32" +MYSQLSH="mysql-shell-8.0.32-src" +PATCHELF="patchelf-0.14.5" +PROTOBUF="protobuf-3.19.4" +GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" +GREATSQLSH_MAKESH="greatsqlsh-automake.sh" +GREATSQLSH_ENV="greatsqlsh-setenv.sh" +if [ "`uname -p`" = "aarch64" ] ; then + RPCGEN="rpcgen-1.3.1-4.el8.aarch64.rpm" +else + RPCGEN="rpcgen-1.3.1-4.el8.x86_64.rpm" +fi -- Gitee From 3e3d448ff67ebb5ec062c00e94fa2f455c5946aa Mon Sep 17 00:00:00 2001 From: earl86 Date: Mon, 4 Mar 2024 11:16:47 +0800 Subject: [PATCH 39/83] add centos7 --- GreatSQL-Shell-Build/centos7/.keep | 0 GreatSQL-Shell-Build/centos7/CentOS-Base.repo | 44 +++++++++++++ GreatSQL-Shell-Build/centos7/Dockerfile | 62 ++++++++++++++++++ .../centos7/docker-entrypoint.sh | 65 +++++++++++++++++++ .../centos7/greatsqlsh-automake.sh | 30 +++++++++ .../centos7/greatsqlsh-setenv.sh | 39 +++++++++++ GreatSQL-Shell-Build/centos8/.keep | 0 7 files changed, 240 insertions(+) delete mode 100644 GreatSQL-Shell-Build/centos7/.keep create mode 100644 GreatSQL-Shell-Build/centos7/CentOS-Base.repo create mode 100644 GreatSQL-Shell-Build/centos7/Dockerfile create mode 100644 GreatSQL-Shell-Build/centos7/docker-entrypoint.sh create mode 100644 GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh create mode 100644 GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh delete mode 100644 GreatSQL-Shell-Build/centos8/.keep diff --git a/GreatSQL-Shell-Build/centos7/.keep b/GreatSQL-Shell-Build/centos7/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/GreatSQL-Shell-Build/centos7/CentOS-Base.repo b/GreatSQL-Shell-Build/centos7/CentOS-Base.repo new file mode 100644 index 0000000..5e4acf6 --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/CentOS-Base.repo @@ -0,0 +1,44 @@ +# CentOS-Base.repo +# +# The mirror system uses the connecting IP address of the client and the +# update status of each mirror to pick mirrors that are updated to and +# geographically close to the client. You should use this for CentOS updates +# unless you are manually picking other mirrors. +# +# If the mirrorlist= does not work for you, as a fall back you can try the +# remarked out baseurl= line instead. +# +# + +[base] +name=CentOS-7 - Base +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/os/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#released updates +[updates] +name=CentOS-7 - Updates +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=updates&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/updates/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#additional packages that may be useful +[extras] +name=CentOS-7 - Extras +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/extras/$basearch/ +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + +#additional packages that extend functionality of existing packages +[centosplus] +name=CentOS-7 - Plus +mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=centosplus&infra=$infra +#baseurl=http://mirror.centos.org/centos/7/centosplus/$basearch/ +gpgcheck=1 +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 + diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile new file mode 100644 index 0000000..e379dcd --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -0,0 +1,62 @@ +FROM centos:7 + +LABEL maintainer="greatsql.cn" \ +email="greatsql@greatdb.com" \ +forum="https://greatsql.cn/forum.php" \ +gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" + +ENV LANG en_US.utf8 +ARG OPT_DIR=/opt \ +MYSQL_UID=3306 \ +MYSQL_USER=mysql \ +DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ +libcurl-devel libssh libssh-config libssh-devel \ +libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ +patch \ +rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml \ +uuid wget zlib-devel" \ +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" \ +GREATSQLSH_ENV="greatsqlsh-setenv.sh" \ +ENTRYPOINT="docker-entrypoint.sh" + +CMD /bin/bash + +RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ +systemd-tmpfiles-setup.service ] || rm -f $i; done); \ +rm -f /lib/systemd/system/multi-user.target.wants/*;\ +rm -f /etc/systemd/system/*.wants/*;\ +rm -f /lib/systemd/system/local-fs.target.wants/*; \ +rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ +rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ +rm -f /lib/systemd/system/basic.target.wants/*;\ +rm -f /lib/systemd/system/anaconda.target.wants/*; + + +RUN rm -f /etc/yum.repos.d/CentOS-Linux-* ; +#RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo +COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo +#RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ +#sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 + +RUN yum clean all > /dev/null 2>&1 && \ +yum -y update > /dev/null 2>&1 ; \ +yum install -y ${DEPS} > /dev/null 2>&1 ; + +RUN scl enable devtoolset-11 bash +RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ +echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; + +RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ +/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} + +RUN mkdir -p ${OPT_DIR} + +RUN curl -o ${OPT_DIR}/${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} > /dev/null 2>&1 +RUN curl -o ${OPT_DIR}/${ENTRYPOINT} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 + +RUN chmod +x ${OPT_DIR}/*sh + +ENTRYPOINT ["/opt/docker-entrypoint.sh"] + +CMD ["bash"] diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh new file mode 100644 index 0000000..9ffdb45 --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -0,0 +1,65 @@ +#!/bin/bash +. /opt/greatsqlsh-setenv.sh + +echo "0. touch logfile ${MAKELOG}" +touch ${MAKELOG} && \ +chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ +chmod 0777 ${MAKELOG} && \ +echo && \ +echo "1. downloading sourcecode tarballs and extract" +cd ${OPT_DIR} && \ +echo " 1.1 downloading sourcecode tarballs ..." && \ +wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ +echo " 1.2 extract tarballs ..." && \ +tar xf ${OPT_DIR}/${PATCHELF}*z && \ +tar xf ${OPT_DIR}/${PROTOBUF}*z && \ +tar xf ${OPT_DIR}/${ANTLR}*z && \ +tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${MYSQL}*z && \ +tar xf ${OPT_DIR}/${MYSQLSH}*z && \ +chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ +yum install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ +chmod +x ${OPT_DIR}/*sh && \ +echo && \ +echo "2. compiling antlr4" +cd ${OPT_DIR}/${ANTLR}/runtime/Cpp/bld && \ +cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "3. compiling patchelf" +cd ${OPT_DIR}/${PATCHELF} && \ +./bootstrap.sh >> ${MAKELOG} 2>&1 && \ +./configure >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "4. compiling protobuf" +cd ${OPT_DIR}/${PROTOBUF} && \ +./configure >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +echo && \ +echo "5. compiling MySQL Shell for GreatSQL" +su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ +echo && \ +echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" +pip3.8 install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ +echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +${BASE_DIR}/bin/mysqlsh --version && \ +cd ${OPT_DIR} && \ +tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ +xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ +echo " 6.2 TARBALL file:" && \ +ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ +cd ${OPT_DIR} && \ +rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${RPCGEN} +/bin/bash diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh new file mode 100644 index 0000000..eaf3790 --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -0,0 +1,30 @@ +#!/bin/bash +. /opt/greatsqlsh-setenv.sh + +echo " 5.1 compiling mysqlclient and mysqlxclient" && \ +cd ${OPT_DIR}/${MYSQL} && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake3 .. -DBOOST_INCLUDE_DIR=${OPT_DIR}/${BOOST} \ +-DLOCAL_BOOST_DIR=${OPT_DIR}/${BOOST} \ +-DWITH_SSL=system >> ${MAKELOG} 2>&1 && \ +cmake3 --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ +cmake3 --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +echo " 5.2 compiling MySQL Shell for GreatSQL" && \ +cd ${OPT_DIR}/${MYSQLSH} && \ +patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +rm -fr bld && \ +mkdir bld && \ +cd bld && \ +cmake3 .. \ +-DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ +-DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ +-DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ +-DHAVE_PYTHON=1 \ +-DWITH_PROTOBUF=bundled \ +-DBUILD_SOURCE_PACKAGE=0 \ +-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ +-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ +&& make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ +cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh new file mode 100644 index 0000000..cd5d0fc --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +. ~/.bash_profile + +MAKE_JOBS=`lscpu | grep '^CPU(s)'|awk '{print $NF}'` +if [ ${MAKE_JOBS} -ge 16 ] ; then + MAKE_JOBS=`expr ${MAKE_JOBS} - 4` +else + MAKE_JOBS=`expr ${MAKE_JOBS} - 1` +fi + +OPT_DIR=/opt +MYSQL_VERSTION=8.0.32 +RELEASE=25 +GLIBC=`ldd --version | head -n 1 | awk '{print $NF}'` +ARCH=`uname -p` +#OS=`grep '^ID=' /etc/os-release | sed 's/.*"\(.*\)".*/\1/ig'` +OS=Linux +OSPATCH=`uname -r|tr -s '.' '\n'|grep el` + +MAKELOG=/tmp/greatsqlsh-automake.log +MYSQL_USER=mysql +GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} +BASE_DIR=${OPT_DIR}/${GREATSQLSH} +GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" +BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" +MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" +MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" +ANTLR="antlr4-4.10" +BOOST="boost_1_77_0" +MYSQL="mysql-8.0.32" +MYSQLSH="mysql-shell-8.0.32-src" +PATCHELF="patchelf-0.14.5" +PROTOBUF="protobuf-3.19.4" +GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" +GREATSQLSH_MAKESH="greatsqlsh-automake.sh" +GREATSQLSH_ENV="greatsqlsh-setenv.sh" +RPCGEN="" diff --git a/GreatSQL-Shell-Build/centos8/.keep b/GreatSQL-Shell-Build/centos8/.keep deleted file mode 100644 index e69de29..0000000 -- Gitee From 26fd3c72905b1d452fe9952609586035eed97525 Mon Sep 17 00:00:00 2001 From: earl86 Date: Mon, 4 Mar 2024 11:27:31 +0800 Subject: [PATCH 40/83] add centos7 --- GreatSQL-Shell-Build/README.md | 52 ++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/GreatSQL-Shell-Build/README.md b/GreatSQL-Shell-Build/README.md index 45d77ad..d79bcb9 100644 --- a/GreatSQL-Shell-Build/README.md +++ b/GreatSQL-Shell-Build/README.md @@ -4,7 +4,7 @@ 本项目用于构建MySQL Shell for GreatSQL编译环境Docker镜像。 -适用于CentOS 8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 +适用于CentOS 7/8 x86_64/aarch64 环境,更多环境适配请自行修改Dockerfile及相关脚本中的参数。 ## 基本信息 - 维护者: GreatSQL(greatsql@greatdb.com) @@ -20,8 +20,26 @@ ## 如何使用GreatSQL-Shell-Build 例如: + +## 1. GreatSQL Build Docker镜像构建 + +```shell +$ git clone https://gitee.com/earl86/GreatSQL-Docker.git + +centos7: +$ cd GreatSQL-Docker/GreatSQL-Shell-Build/centos7 +$ docker build -t greatsql/greatsqlsh_build7 . + +centos8: +$ cd GreatSQL-Docker/GreatSQL-Shell-Build/centos8 +$ docker build -t greatsql/greatsqlsh_build8 . +``` +上述命令会查找当前目录下的 `Dockerfile` 文件,并构建名为 `greatsql/greatsql_build7/8` 的Docker镜像。 + + ```shell -$ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shell_build:8.0.32-25 bash +$ docker run -itd --hostname greatsqlsh_build7 --name greatsqlsh_build7 greatsql/greatsqlsh_build7:8.0.32-25 bash +$ docker run -itd --hostname greatsqlsh_build8 --name greatsqlsh_build8 greatsql/greatsqlsh_build8:8.0.32-25 bash ``` 执行上述命令后,会创建一个GreatSQL-Shell编译环境容器,并在容器中自动完成GreatSQL-Shell编译工作。 @@ -51,25 +69,43 @@ $ docker logs greatsqlsh | tail 6. MySQL Shell for GreatSQL 8.0.32-25 build completed! 6.1 MySQL Shell for GreatSQL 8.0.32-25 version: -/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh Ver 8.0.32 for Linux on x86_64 - for MySQL 8.0.32 (Source distribution) + centos7: +/opt/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64/bin/mysqlsh Ver 8.0.32 for Linux on x86_64 - for MySQL 8.0.32 (Source distribution) + +centos8: +/opt/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64/bin/mysqlsh Ver 8.0.32 for Linux on x86_64 - for MySQL 8.0.32 (Source distribution) + 6.2 TARBALL file: --rw-r--r-- 1 root root 19956168 Feb 21 02:56 /opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz + centos7: +-rw-r--r-- 1 root root 19956168 Feb 21 02:56 /opt/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.xz + +centos8: +-rw-r--r-- 1 root root 19956168 Feb 21 02:56 /opt/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.xz ``` 接下来回退到宿主机,将容器中的二进制包拷贝出来 ```shell -$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz /usr/local/ +centos7: +$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.xz /usr/local/ + +centos8: +$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.xz /usr/local/ ``` 然后解压缩,就可以在宿主机环境下使用了,例如: ```shell # 先安装几个必要的依赖包 -$ dnf install -y ibssh python38 python38-libs python38-pyyaml +$ yum install -y ibssh python38 python38-libs python38-pyyaml $ pip3.8 install --user certifi pyclamd # 测试使用 -$ /usr/local/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh +centos7: +$ /usr/local/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64/bin/mysqlsh + +centos8: +$ /usr/local/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64/bin/mysqlsh + MySQL Shell 8.0.32 ... Type '\help' or '\?' for help; '\quit' to exit. @@ -80,7 +116,7 @@ Bye! 如果是在aarch64环境中,则修改Dockerfile的前几行,改成适用于aarch64的镜像,例如 ```shell -#FROM centos:8 +#FROM centos:7/8 FROM docker.io/arm64v8/centos ``` -- Gitee From aadaeb8221bc961b3631372a5baa52acd3974346 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:05:39 +0800 Subject: [PATCH 41/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 777beb4..65018fc 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -33,7 +33,7 @@ function gather_libs { if [ ! -f "lib/private/${lib_realpath_basename}" ] && [ ! -L "lib/private/${lib_realpath_basename}" ]; then - + echo "Copying lib ${lib_realpath_basename}" cp ${lib_realpath} lib/private @@ -133,7 +133,7 @@ function link { rm -fr ${MAKELOG} mkdir -p ${DEST_DIR} -rm -f ${DEST_DIR}/* +rm -rf ${DEST_DIR}/* cd ${OPT_DIR}/${GREATSQL_SRC} && \ rm -fr bld && \ -- Gitee From c0b40407868c8dcb04aa4598370a910c4ee84266 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:07:07 +0800 Subject: [PATCH 42/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 777beb4..65018fc 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -33,7 +33,7 @@ function gather_libs { if [ ! -f "lib/private/${lib_realpath_basename}" ] && [ ! -L "lib/private/${lib_realpath_basename}" ]; then - + echo "Copying lib ${lib_realpath_basename}" cp ${lib_realpath} lib/private @@ -133,7 +133,7 @@ function link { rm -fr ${MAKELOG} mkdir -p ${DEST_DIR} -rm -f ${DEST_DIR}/* +rm -rf ${DEST_DIR}/* cd ${OPT_DIR}/${GREATSQL_SRC} && \ rm -fr bld && \ -- Gitee From 8cf4248aef7da723617a9ccfc5774f05205342e7 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:11:44 +0800 Subject: [PATCH 43/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 65018fc..817cca4 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -208,7 +208,7 @@ function tar_all { cd ${DEST_DIR} link >> ${MAKELOG} 2>&1 ) - 如果要打包完整压缩,就把下面行注释去掉 + #如果要打包完整压缩,就把下面行注释去掉 tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } #如果要打包完整压缩,就把下面行注释去掉 -- Gitee From 8eb3270e9a618b79174ae1bca7b60fd45b09f511 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:12:17 +0800 Subject: [PATCH 44/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 65018fc..817cca4 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -208,7 +208,7 @@ function tar_all { cd ${DEST_DIR} link >> ${MAKELOG} 2>&1 ) - 如果要打包完整压缩,就把下面行注释去掉 + #如果要打包完整压缩,就把下面行注释去掉 tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } #如果要打包完整压缩,就把下面行注释去掉 -- Gitee From 3f94ae31c143e69c752a232effdc75054ad90e1d Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:15:12 +0800 Subject: [PATCH 45/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 817cca4..8b7a23b 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -191,11 +191,13 @@ function tar_minimal { echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 ( + rm -rf ${DEST_DIR}-minimal cp -rp ${DEST_DIR} ${DEST_DIR}-minimal cd ${DEST_DIR}-minimal find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded link >> ${MAKELOG} 2>&1 ) + rm -f ${DEST_DIR}-minimal.tar.gz tar -czf ${DEST_DIR}-minimal.tar.gz ${DEST_DIR}-minimal } # 如果想生成minial包,就把下面行注释去掉 @@ -209,6 +211,7 @@ function tar_all { link >> ${MAKELOG} 2>&1 ) #如果要打包完整压缩,就把下面行注释去掉 + rm -f ${DEST_DIR}.tar.gz tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } #如果要打包完整压缩,就把下面行注释去掉 -- Gitee From 05986ccd000fca4436eb5391d9e50aff0204f4a2 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:16:30 +0800 Subject: [PATCH 46/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 817cca4..8b7a23b 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -191,11 +191,13 @@ function tar_minimal { echo "minimal = ${minimal}" >> ${MAKELOG} 2>&1 echo "link ${DEST_DIR}-minimal" >> ${MAKELOG} 2>&1 ( + rm -rf ${DEST_DIR}-minimal cp -rp ${DEST_DIR} ${DEST_DIR}-minimal cd ${DEST_DIR}-minimal find . -type f -exec file '{}' \; | grep ': ELF ' | cut -d':' -f1 | xargs strip --strip-unneeded link >> ${MAKELOG} 2>&1 ) + rm -f ${DEST_DIR}-minimal.tar.gz tar -czf ${DEST_DIR}-minimal.tar.gz ${DEST_DIR}-minimal } # 如果想生成minial包,就把下面行注释去掉 @@ -209,6 +211,7 @@ function tar_all { link >> ${MAKELOG} 2>&1 ) #如果要打包完整压缩,就把下面行注释去掉 + rm -f ${DEST_DIR}.tar.gz tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } #如果要打包完整压缩,就把下面行注释去掉 -- Gitee From 3c1c937c744ff7c33b5a39a55cd3d4e967f1a0ad Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:49:34 +0800 Subject: [PATCH 47/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 8b7a23b..29a7cc1 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -210,7 +210,6 @@ function tar_all { cd ${DEST_DIR} link >> ${MAKELOG} 2>&1 ) - #如果要打包完整压缩,就把下面行注释去掉 rm -f ${DEST_DIR}.tar.gz tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } -- Gitee From c19c333b86464b24c151309fc932f4292fe2ef76 Mon Sep 17 00:00:00 2001 From: earl86 Date: Wed, 6 Mar 2024 18:49:58 +0800 Subject: [PATCH 48/83] centos7 --- GreatSQL-Build/centos7/greatsql-automake.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/GreatSQL-Build/centos7/greatsql-automake.sh b/GreatSQL-Build/centos7/greatsql-automake.sh index 8b7a23b..29a7cc1 100644 --- a/GreatSQL-Build/centos7/greatsql-automake.sh +++ b/GreatSQL-Build/centos7/greatsql-automake.sh @@ -210,7 +210,6 @@ function tar_all { cd ${DEST_DIR} link >> ${MAKELOG} 2>&1 ) - #如果要打包完整压缩,就把下面行注释去掉 rm -f ${DEST_DIR}.tar.gz tar -czf ${DEST_DIR}.tar.gz ${DEST_DIR} } -- Gitee From 8338048581b4cf302b924409e76c89566dccd269 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 09:38:37 +0800 Subject: [PATCH 49/83] centos7 --- .../centos7/CentOS-Base-tencent.repo | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 GreatSQL-Build/centos7/CentOS-Base-tencent.repo diff --git a/GreatSQL-Build/centos7/CentOS-Base-tencent.repo b/GreatSQL-Build/centos7/CentOS-Base-tencent.repo new file mode 100644 index 0000000..7efd0e7 --- /dev/null +++ b/GreatSQL-Build/centos7/CentOS-Base-tencent.repo @@ -0,0 +1,53 @@ +# CentOS-Base.repo +# +# The mirror system uses the connecting IP address of the client and the +# update status of each mirror to pick mirrors that are updated to and +# geographically close to the client. You should use this for CentOS updates +# unless you are manually picking other mirrors. +# +# If the mirrorlist= does not work for you, as a fall back you can try the +# remarked out baseurl= line instead. +# +# + +[os] +name=Qcloud centos os - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch/ +enabled=1 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 + +[updates] +name=Qcloud centos updates - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/updates/$basearch/ +enabled=1 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 + +[centosplus] +name=Qcloud centosplus - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/centosplus/$basearch/ +enabled=0 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 + +[cr] +name=Qcloud centos cr - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/cr/$basearch/ +enabled=0 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 + +[extras] +name=Qcloud centos extras - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/ +enabled=1 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 + +[fasttrack] +name=Qcloud centos fasttrack - $basearch +baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/fasttrack/$basearch/ +enabled=0 +gpgcheck=1 +gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7 -- Gitee From 15ea1c2a3b289aa9a8f474152593bc0682b255d2 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 09:55:33 +0800 Subject: [PATCH 50/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index e379dcd..78089d1 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -6,19 +6,19 @@ forum="https://greatsql.cn/forum.php" \ gitee="https://gitee.com/GreatSQL/GreatSQL-Shell-Docker" ENV LANG en_US.utf8 -ARG OPT_DIR=/opt \ -MYSQL_UID=3306 \ -MYSQL_USER=mysql \ -DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +ARG OPT_DIR=/opt +ARG MYSQL_UID=3306 +ARG MYSQL_USER=mysql +ARG DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ patch \ rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml \ -uuid wget zlib-devel" \ -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" \ -GREATSQLSH_ENV="greatsqlsh-setenv.sh" \ -ENTRYPOINT="docker-entrypoint.sh" +uuid wget zlib-devel" +ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" +ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" +ARG ENTRYPOINT="docker-entrypoint.sh" CMD /bin/bash -- Gitee From 34ae083892f8ad3efc8c451ee853cc0e07943c8f Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 09:59:41 +0800 Subject: [PATCH 51/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 78089d1..6f0106c 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -39,9 +39,9 @@ COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo #RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ #sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 -RUN yum clean all > /dev/null 2>&1 && \ -yum -y update > /dev/null 2>&1 ; \ -yum install -y ${DEPS} > /dev/null 2>&1 ; +RUN yum clean all > /dev/null 2>&1 +RUN yum -y update > /dev/null 2>&1 +RUN yum install -y ${DEPS} > /dev/null 2>&1 ; RUN scl enable devtoolset-11 bash RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ -- Gitee From f6496d1464e12bebe4fef8a98cb628f202f1480b Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:03:36 +0800 Subject: [PATCH 52/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 6f0106c..a998941 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -13,9 +13,10 @@ ARG DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-sc devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch \ -rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml \ -uuid wget zlib-devel" +patch uuid wget zlib-devel \ +python python-devel python-libs python-pyyaml" +#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml" + ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" ARG ENTRYPOINT="docker-entrypoint.sh" -- Gitee From 09d11edec01600873e49c0265835ee121d953567 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:04:33 +0800 Subject: [PATCH 53/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index a998941..d0dcff4 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -42,7 +42,7 @@ COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all > /dev/null 2>&1 RUN yum -y update > /dev/null 2>&1 -RUN yum install -y ${DEPS} > /dev/null 2>&1 ; +RUN yum install -y ${DEPS} > /dev/null 2>&1 RUN scl enable devtoolset-11 bash RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ -- Gitee From d99fc0310d221c3b89092ed427fe70ad1fea1dd8 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:07:07 +0800 Subject: [PATCH 54/83] centos7 --- GreatSQL-Build/centos7/Dockerfile | 2 +- GreatSQL-Shell-Build/centos7/Dockerfile | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Build/centos7/Dockerfile b/GreatSQL-Build/centos7/Dockerfile index 36c3d74..0bcf19f 100644 --- a/GreatSQL-Build/centos7/Dockerfile +++ b/GreatSQL-Build/centos7/Dockerfile @@ -21,7 +21,7 @@ libaio-devel libevent-devel libicu-devel libffi-devel libxml2-devel libtirpc lib libarchive libcurl-devel ncurses-devel ncurses-libs boost-devel numactl numactl-devel numactl-libs \ gflags-devel gtest-devel libzstd libzstd-devel libzstd-static patchelf \ perl perl-Env perl-JSON perl-Time-HiRes bzip2 bzip2-devel snappy-devel zlib-devel lz4-devel lz4-static \ -jemalloc jemalloc-devel python-devel redhat-lsb-core centos-release-scl scl-utils-build glibc-common" +jemalloc jemalloc-devel python-devel redhat-lsb-core centos-release-scl centos-release-scl-rh scl-utils-build glibc-common" RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ rm -f /lib/systemd/system/multi-user.target.wants/*;\ diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index d0dcff4..ea40ed8 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -13,7 +13,7 @@ ARG DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-sc devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch uuid wget zlib-devel \ +patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ python python-devel python-libs python-pyyaml" #rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml" @@ -42,6 +42,10 @@ COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all > /dev/null 2>&1 RUN yum -y update > /dev/null 2>&1 + + +RUN yum install -y epel-release > /dev/null 2>&1 +RUN yum install -y centos-release-scl centos-release-scl-rh > /dev/null 2>&1 RUN yum install -y ${DEPS} > /dev/null 2>&1 RUN scl enable devtoolset-11 bash -- Gitee From deffee87d95594a4eed443f6e8b99f6cf2a0db0e Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:10:52 +0800 Subject: [PATCH 55/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index ea40ed8..fb3beeb 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -37,8 +37,6 @@ rm -f /lib/systemd/system/anaconda.target.wants/*; RUN rm -f /etc/yum.repos.d/CentOS-Linux-* ; #RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo -#RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /dev/null 2>&1 && \ -#sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 RUN yum clean all > /dev/null 2>&1 RUN yum -y update > /dev/null 2>&1 -- Gitee From 70753c63cb4423cee7d07a7e9fd82bbc8fd450e3 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:16:14 +0800 Subject: [PATCH 56/83] centos7 --- GreatSQL-Shell-Build/centos7/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 9ffdb45..63c1131 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -52,7 +52,7 @@ echo "5. compiling MySQL Shell for GreatSQL" su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ echo && \ echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" -pip3.8 install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ +pip install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ -- Gitee From 02b790157cce48fd32371bed18d021db45e9b39c Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:19:33 +0800 Subject: [PATCH 57/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index fb3beeb..2641d48 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -14,8 +14,8 @@ devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtool libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ -python python-devel python-libs python-pyyaml" -#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml" +python python-devel python-libs python-pyyaml python-pip" +#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" -- Gitee From 33348e42407155cddf804839221d8f1117a7597a Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:27:31 +0800 Subject: [PATCH 58/83] centos7 --- GreatSQL-Shell-Build/centos7/docker-entrypoint.sh | 2 +- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 63c1131..026b458 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -11,7 +11,7 @@ cd ${OPT_DIR} && \ echo " 1.1 downloading sourcecode tarballs ..." && \ wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ +wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_BASE_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index cd5d0fc..aeaa778 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -23,6 +23,7 @@ MYSQL_USER=mysql GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} BASE_DIR=${OPT_DIR}/${GREATSQLSH} GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" +GREATSQLSH_BUILD_DOWNLOAD_BASE_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build" GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" -- Gitee From b6b618edc0863e9f483e7cd8c0023835ce977fbb Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:44:01 +0800 Subject: [PATCH 59/83] centos7 --- .../centos7/docker-entrypoint.sh | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 026b458..787ac3b 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -7,7 +7,7 @@ chown ${MYSQL_USER}:${MYSQL_USER} ${MAKELOG} && \ chmod 0777 ${MAKELOG} && \ echo && \ echo "1. downloading sourcecode tarballs and extract" -cd ${OPT_DIR} && \ +cd ${OPT_DIR} echo " 1.1 downloading sourcecode tarballs ..." && \ wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ @@ -25,33 +25,32 @@ tar xf ${OPT_DIR}/${PROTOBUF}*z && \ tar xf ${OPT_DIR}/${ANTLR}*z && \ tar xf ${OPT_DIR}/${BOOST}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ -tar xf ${OPT_DIR}/${MYSQLSH}*z && \ -chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} && \ -yum install -y ${RPCGEN} >> ${MAKELOG} 2>&1 && \ -chmod +x ${OPT_DIR}/*sh && \ -echo && \ -echo "2. compiling antlr4" +tar xf ${OPT_DIR}/${MYSQLSH}*z + +chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} + +#yum install -y ${RPCGEN} >> ${MAKELOG} 2>&1 + +chmod +x ${OPT_DIR}/*sh + +echo "2. compiling antlr4" && \ cd ${OPT_DIR}/${ANTLR}/runtime/Cpp/bld && \ cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "3. compiling patchelf" +echo "3. compiling patchelf" && \ cd ${OPT_DIR}/${PATCHELF} && \ ./bootstrap.sh >> ${MAKELOG} 2>&1 && \ ./configure >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "4. compiling protobuf" +echo "4. compiling protobuf" && \ cd ${OPT_DIR}/${PROTOBUF} && \ ./configure >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo && \ -echo "5. compiling MySQL Shell for GreatSQL" +echo "5. compiling MySQL Shell for GreatSQL" && \ su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ -echo && \ -echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" +echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ pip install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ -- Gitee From 486448197f2ad65754735e45e643e48bb124e2e3 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 10:49:55 +0800 Subject: [PATCH 60/83] centos7 --- GreatSQL-Shell-Build/centos7/docker-entrypoint.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 787ac3b..af05cab 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -12,7 +12,6 @@ echo " 1.1 downloading sourcecode tarballs ..." && \ wget -c -O ${GREATSQLSH_ENV} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_ENV} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_MAKESH} ${GREATSQLSH_BUILD_DOWNLOAD_URL}/${GREATSQLSH_MAKESH} >> ${MAKELOG} 2>&1 && \ wget -c -O ${GREATSQLSH_PATCH} ${GREATSQLSH_BUILD_DOWNLOAD_BASE_URL}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ -wget -c -O ${RPCGEN} ${GREATSQL_BUILD_DOWNLOAD_URL}/${RPCGEN} >> ${MAKELOG} 2>&1 && \ wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ -- Gitee From 4d27567cfa7a40bed376a8cd44dd33800d3d3dbf Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 11:25:51 +0800 Subject: [PATCH 61/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 2641d48..6db8297 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -9,13 +9,13 @@ ENV LANG en_US.utf8 ARG OPT_DIR=/opt ARG MYSQL_UID=3306 ARG MYSQL_USER=mysql -ARG DEPS="autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ +ARG DEPS="which autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \ devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ -python python-devel python-libs python-pyyaml python-pip" -#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" +rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" +#python python-devel python-libs python-pyyaml python-pip" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" @@ -46,10 +46,16 @@ RUN yum install -y epel-release > /dev/null 2>&1 RUN yum install -y centos-release-scl centos-release-scl-rh > /dev/null 2>&1 RUN yum install -y ${DEPS} > /dev/null 2>&1 + RUN scl enable devtoolset-11 bash RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; +RUN scl enable rh-python38 bash +RUN source /opt/rh/rh-python38/enable > /dev/null 2>&1 && \ +echo 'source /opt/rh/rh-python38/enable' >> /root/.bash_profile; + + RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ /usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} -- Gitee From ddd573ae7da93c3703b9aa5344a318ca98c367f8 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 12:22:00 +0800 Subject: [PATCH 62/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 6db8297..ff1b85f 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -15,7 +15,6 @@ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" -#python python-devel python-libs python-pyyaml python-pip" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" -- Gitee From 4347d934a610f9b9e0863f13073169bd6abd7864 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 12:41:07 +0800 Subject: [PATCH 63/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index eaf3790..83e3e41 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -13,8 +13,9 @@ cmake3 --build . --target mysqlclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 ; \ cmake3 --build . --target mysqlxclient -- -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ echo " 5.2 compiling MySQL Shell for GreatSQL" && \ cd ${OPT_DIR}/${MYSQLSH} && \ -patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 && \ -rm -fr bld && \ +patch -p1 -f < ${OPT_DIR}/${GREATSQLSH_PATCH} >> ${MAKELOG} 2>&1 + +rm -rf bld && \ mkdir bld && \ cd bld && \ cmake3 .. \ @@ -25,6 +26,10 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ + +#/opt/rh/rh-python38/root/usr/lib64/python3.8 +#/opt/rh/rh-python38/root/usr/include/python3.8/ +#-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ -- Gitee From 5816fe21c8f61123b55f9a87d9e9a7d9c8808adf Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 13:01:34 +0800 Subject: [PATCH 64/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 5 +++-- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 83e3e41..13224d2 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -26,10 +26,11 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64 \ +-DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ -#/opt/rh/rh-python38/root/usr/lib64/python3.8 +#/opt/rh/rh-python38/root/usr/lib64 #/opt/rh/rh-python38/root/usr/include/python3.8/ #-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index aeaa778..a7d9252 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -38,3 +38,5 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" +PYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64 +PYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ -- Gitee From 7554a750de83cb6d092a27a20108d9016761c07e Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 14:59:43 +0800 Subject: [PATCH 65/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 7 +++---- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 13224d2..5ab4914 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -22,15 +22,14 @@ cmake3 .. \ -DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ -DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ -DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ --DHAVE_PYTHON=1 \ +-DHAVE_PYTHON=0 \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64 \ +-DPYTHON_LIBRARY=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ +-DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ -DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ -#/opt/rh/rh-python38/root/usr/lib64 -#/opt/rh/rh-python38/root/usr/include/python3.8/ #-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index a7d9252..ba0925d 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -38,5 +38,6 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" -PYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64 +PYTHON_LIBRARY=/opt/rh/rh-python38/root/usr/lib64/python3.8 +PYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 PYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ -- Gitee From 468d194d1caa786a8c0797b8c365e34e009de5fb Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 15:08:49 +0800 Subject: [PATCH 66/83] centos7 --- .../centos7/docker-entrypoint.sh | 17 +++++++++++++---- .../centos7/greatsqlsh-setenv.sh | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index af05cab..1f2e519 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -16,6 +16,7 @@ wget -c -O ${PATCHELF}.tar.gz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PATCHELF}.tar.gz wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${LIBSSH}.tar.xz ${LIBSSH_SRC_DOWNLOAD_URL}/${LIBSSH}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ echo " 1.2 extract tarballs ..." && \ @@ -23,6 +24,7 @@ tar xf ${OPT_DIR}/${PATCHELF}*z && \ tar xf ${OPT_DIR}/${PROTOBUF}*z && \ tar xf ${OPT_DIR}/${ANTLR}*z && \ tar xf ${OPT_DIR}/${BOOST}*z && \ +tar xf ${OPT_DIR}/${LIBSSH}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ tar xf ${OPT_DIR}/${MYSQLSH}*z @@ -47,16 +49,23 @@ cd ${OPT_DIR}/${PROTOBUF} && \ ./configure >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -echo "5. compiling MySQL Shell for GreatSQL" && \ +echo "5. compiling libssh" && \ +cd ${OPT_DIR}/${LIBSSH} && \ +mkdir build && \ +cd build && \ +cmake3 ../ >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make install >> ${MAKELOG} 2>&1 && \ +echo "6. compiling MySQL Shell for GreatSQL" && \ su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ -echo "6. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ +echo "7. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ pip install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ -echo " 6.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +echo " 7.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ -echo " 6.2 TARBALL file:" && \ +echo " 7.2 TARBALL file:" && \ ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ cd ${OPT_DIR} && \ rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${RPCGEN} diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index ba0925d..d469b2e 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -28,8 +28,10 @@ GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/grea BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" +LIBSSH_SRC_DOWNLOAD_URL="https://www.libssh.org/files/0.9" ANTLR="antlr4-4.10" BOOST="boost_1_77_0" +LIBSSH="libssh-0.9.2" MYSQL="mysql-8.0.32" MYSQLSH="mysql-shell-8.0.32-src" PATCHELF="patchelf-0.14.5" -- Gitee From dec6b97c6f46a7b7a8a683fd9f8b3e4f65e9e1e2 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 15:12:07 +0800 Subject: [PATCH 67/83] centos7 --- GreatSQL-Shell-Build/centos7/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 1f2e519..df89811 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -68,5 +68,5 @@ xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ echo " 7.2 TARBALL file:" && \ ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ cd ${OPT_DIR} && \ -rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${RPCGEN} +rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${LIBSSH}* ${RPCGEN} /bin/bash -- Gitee From 4493f284fada2e0eeaa5a5c4c8bb82893b8d53f5 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 15:16:47 +0800 Subject: [PATCH 68/83] centos7 --- GreatSQL-Shell-Build/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Shell-Build/README.md b/GreatSQL-Shell-Build/README.md index d79bcb9..a39b37e 100644 --- a/GreatSQL-Shell-Build/README.md +++ b/GreatSQL-Shell-Build/README.md @@ -38,8 +38,8 @@ $ docker build -t greatsql/greatsqlsh_build8 . ```shell -$ docker run -itd --hostname greatsqlsh_build7 --name greatsqlsh_build7 greatsql/greatsqlsh_build7:8.0.32-25 bash -$ docker run -itd --hostname greatsqlsh_build8 --name greatsqlsh_build8 greatsql/greatsqlsh_build8:8.0.32-25 bash +$ docker run -itd --hostname greatsqlsh_build7 --name greatsqlsh_build7 greatsql/greatsqlsh_build7 bash +$ docker run -itd --hostname greatsqlsh_build8 --name greatsqlsh_build8 greatsql/greatsqlsh_build8 bash ``` 执行上述命令后,会创建一个GreatSQL-Shell编译环境容器,并在容器中自动完成GreatSQL-Shell编译工作。 -- Gitee From f3e3e5e77c6d03496dc2a5fd5350a79c58058901 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 15:20:15 +0800 Subject: [PATCH 69/83] centos7 --- GreatSQL-Shell-Build/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Shell-Build/README.md b/GreatSQL-Shell-Build/README.md index a39b37e..5193952 100644 --- a/GreatSQL-Shell-Build/README.md +++ b/GreatSQL-Shell-Build/README.md @@ -87,10 +87,10 @@ centos8: ```shell centos7: -$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.xz /usr/local/ +$ docker cp greatsqlsh_build7:/opt/greatsql-shell-8.0.32-25-Linux-el7-glibc2.17-x86_64.tar.xz /usr/local/ centos8: -$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.xz /usr/local/ +$ docker cp greatsqlsh_build8:/opt/greatsql-shell-8.0.32-25-Linux-el8-glibc2.28-x86_64.tar.xz /usr/local/ ``` 然后解压缩,就可以在宿主机环境下使用了,例如: -- Gitee From fcd70cea6ebeaa21555e9b65cb556a890fc28d69 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 16:14:49 +0800 Subject: [PATCH 70/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 5ab4914..43f4ceb 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -30,6 +30,7 @@ cmake3 .. \ -DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ -DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ -cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ +cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ +cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ #-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ -- Gitee From 824de3257dadedbd0305d86e0a5def2a7e2341ea Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 16:58:41 +0800 Subject: [PATCH 71/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 9 +++++---- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 43f4ceb..fb7ca44 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -22,13 +22,14 @@ cmake3 .. \ -DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ -DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ -DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ --DHAVE_PYTHON=0 \ +-DHAVE_PYTHON=1 \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARY=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ --DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ --DPYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARY=/usr/local/soft/python/3.8.18/lib/python3.8 \ +-DPYTHON_LIBRARIES=/usr/local/soft/python/3.8.18/lib/python3.8 \ +-DPYTHON_INCLUDE_DIR=/usr/local/soft/python/3.8.18/include/python3.8 \ +-DPYTHON_INCLUDE_DIRS=/usr/local/soft/python/3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index d469b2e..398a2ff 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -40,6 +40,7 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" -PYTHON_LIBRARY=/opt/rh/rh-python38/root/usr/lib64/python3.8 -PYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 -PYTHON_INCLUDE_DIRS=/opt/rh/rh-python38/root/usr/include/python3.8/ +PYTHON_LIBRARY="/usr/local/soft/python/3.8.18/lib/python3.8" +PYTHON_LIBRARIES="/usr/local/soft/python/3.8.18/lib/python3.8" +PYTHON_INCLUDE_DIR="/usr/local/soft/python/3.8.18/include/python3.8" +PYTHON_INCLUDE_DIRS="/usr/local/soft/python/3.8.18/include/python3.8" -- Gitee From df98487333daabe6805bfdde29484653d31f1593 Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 18:18:26 +0800 Subject: [PATCH 72/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 10 ++--- .../centos7/docker-entrypoint.sh | 17 ++++---- .../centos7/greatsqlsh-automake.sh | 10 ++--- .../centos7/greatsqlsh-setenv.sh | 10 +++-- .../centos7/install_python.sh | 42 +++++++++++++++++++ 5 files changed, 67 insertions(+), 22 deletions(-) create mode 100644 GreatSQL-Shell-Build/centos7/install_python.sh diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index ff1b85f..8b487f4 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -13,8 +13,8 @@ ARG DEPS="which autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-s devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ -rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" +patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build" +#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" @@ -50,9 +50,9 @@ RUN scl enable devtoolset-11 bash RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; -RUN scl enable rh-python38 bash -RUN source /opt/rh/rh-python38/enable > /dev/null 2>&1 && \ -echo 'source /opt/rh/rh-python38/enable' >> /root/.bash_profile; +#RUN scl enable rh-python38 bash +#RUN source /opt/rh/rh-python38/enable > /dev/null 2>&1 && \ +#echo 'source /opt/rh/rh-python38/enable' >> /root/.bash_profile; RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index df89811..cb2da70 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -56,17 +56,20 @@ cd build && \ cmake3 ../ >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make install >> ${MAKELOG} 2>&1 && \ -echo "6. compiling MySQL Shell for GreatSQL" && \ +echo "6. compiling python38" && \ +cd ${OPT_DIR} && \ +sh install_python.sh && \ +echo "7. compiling MySQL Shell for GreatSQL" && \ su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ -echo "7. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ +echo "8. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ pip install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ -echo " 7.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +echo " 8.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ -echo " 7.2 TARBALL file:" && \ -ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz && \ -cd ${OPT_DIR} && \ -rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${LIBSSH}* ${RPCGEN} +echo " 8.2 TARBALL file:" && \ +ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz +#cd ${OPT_DIR} && \ +#rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${LIBSSH}* ${RPCGEN} /bin/bash diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index fb7ca44..ee9e249 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -26,12 +26,10 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARY=/usr/local/soft/python/3.8.18/lib/python3.8 \ --DPYTHON_LIBRARIES=/usr/local/soft/python/3.8.18/lib/python3.8 \ --DPYTHON_INCLUDE_DIR=/usr/local/soft/python/3.8.18/include/python3.8 \ --DPYTHON_INCLUDE_DIRS=/usr/local/soft/python/3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARY=/usr/local/python/3.8.18/lib/python3.8 \ +-DPYTHON_LIBRARIES=/usr/local/python/3.8.18/lib/python3.8 \ +-DPYTHON_INCLUDE_DIR=/usr/local/python/3.8.18/include/python3.8 \ +-DPYTHON_INCLUDE_DIRS=/usr/local/python/3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ - -#-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ >> ${MAKELOG} 2>&1 \ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index 398a2ff..be602cf 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -29,9 +29,11 @@ BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77. MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" LIBSSH_SRC_DOWNLOAD_URL="https://www.libssh.org/files/0.9" +PYTHON_SRC_DOWNLOAD_URL="https://www.python.org/ftp/python/3.8.18" ANTLR="antlr4-4.10" BOOST="boost_1_77_0" LIBSSH="libssh-0.9.2" +PYTHON="Python-3.8.18" MYSQL="mysql-8.0.32" MYSQLSH="mysql-shell-8.0.32-src" PATCHELF="patchelf-0.14.5" @@ -40,7 +42,7 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" -PYTHON_LIBRARY="/usr/local/soft/python/3.8.18/lib/python3.8" -PYTHON_LIBRARIES="/usr/local/soft/python/3.8.18/lib/python3.8" -PYTHON_INCLUDE_DIR="/usr/local/soft/python/3.8.18/include/python3.8" -PYTHON_INCLUDE_DIRS="/usr/local/soft/python/3.8.18/include/python3.8" +PYTHON_LIBRARY="/usr/local/python/3.8.18/lib/python3.8" +PYTHON_LIBRARIES="/usr/local/python/3.8.18/lib/python3.8" +PYTHON_INCLUDE_DIR="/usr/local/python/3.8.18/include/python3.8" +PYTHON_INCLUDE_DIRS="/usr/local/python/3.8.18/include/python3.8" diff --git a/GreatSQL-Shell-Build/centos7/install_python.sh b/GreatSQL-Shell-Build/centos7/install_python.sh new file mode 100644 index 0000000..a7743eb --- /dev/null +++ b/GreatSQL-Shell-Build/centos7/install_python.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +src_dir='/opt' +soft_dir='/usr/local' + +yum clean all + +get_cpu_count() { + expr $(grep 'processor' /proc/cpuinfo | wc -l) + 1 +} + + +install_python() { + # 下载 python src + py_ver='3.8.18' + py_name="Python-${py_ver}" + py_file="${py_name}.tar.xz" + py_log='/tmp/init_py.log' + + wget https://www.python.org/ftp/python/${py_ver}/${py_file} -O ${src_dir}/${py_file} && renic=$? + + + if [[ "$renic" == 0 ]]; then + tar Jxf ${src_dir}/${py_file} -C ${src_dir} || exit 11 + pushd ${src_dir}/${py_name} + ./configure --prefix=${soft_dir}/python/${py_ver} >> ${py_log} 2>&1 && \ + make -j$(get_cpu_count) >> ${py_log} 2>&1 && \ + make install >> ${py_log} 2>&1 + popd + + pushd /usr/local/bin + ln -s ../python/${py_ver}/bin/python3 ./ + ln -s ../python/${py_ver}/bin/pip3 ./ + else + rm -rf ${src_dir}/${py_file} + echo "can't download $py_file source file" + exit 1 + fi +} + + +install_python -- Gitee From 03743ccad6381377bc2f067d723ebc0379ec066e Mon Sep 17 00:00:00 2001 From: earl86 Date: Thu, 7 Mar 2024 18:19:27 +0800 Subject: [PATCH 73/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index ee9e249..2689ac3 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -22,7 +22,7 @@ cmake3 .. \ -DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ -DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ -DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ --DHAVE_PYTHON=1 \ +-DHAVE_PYTHON=0 \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ -- Gitee From d178f085db233a2bfe7b7ef292e9f46680205492 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 09:09:55 +0800 Subject: [PATCH 74/83] centos7 --- .../centos7/docker-entrypoint.sh | 10 ++++- .../centos7/install_python.sh | 42 ------------------- 2 files changed, 8 insertions(+), 44 deletions(-) delete mode 100644 GreatSQL-Shell-Build/centos7/install_python.sh diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index cb2da70..062657c 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -17,6 +17,7 @@ wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${LIBSSH}.tar.xz ${LIBSSH_SRC_DOWNLOAD_URL}/${LIBSSH}.tar.xz >> ${MAKELOG} 2>&1 && \ +wget -c -O ${PYTHON}.tar.xz ${PYTHON_SRC_DOWNLOAD_URL}/${PYTHON}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ echo " 1.2 extract tarballs ..." && \ @@ -25,6 +26,7 @@ tar xf ${OPT_DIR}/${PROTOBUF}*z && \ tar xf ${OPT_DIR}/${ANTLR}*z && \ tar xf ${OPT_DIR}/${BOOST}*z && \ tar xf ${OPT_DIR}/${LIBSSH}*z && \ +tar xf ${OPT_DIR}/${PYTHON}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ tar xf ${OPT_DIR}/${MYSQLSH}*z @@ -57,8 +59,12 @@ cmake3 ../ >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make install >> ${MAKELOG} 2>&1 && \ echo "6. compiling python38" && \ -cd ${OPT_DIR} && \ -sh install_python.sh && \ +cd ${OPT_DIR}/${PYTHON} && \ +./configure --prefix=/usr/local/python/${PYTHON} >> ${MAKELOG} 2>&1 && \ +make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ +make install >> ${MAKELOG} 2>&1 && \ +ln -s /usr/local/python/${PYTHON}/bin/python3 /usr/local/bin/python3 >> ${MAKELOG} 2>&1 && \ +ln -s /usr/local/python/${PYTHON}/bin/pip3 /usr/local/bin/pip3 >> ${MAKELOG} 2>&1 && \ echo "7. compiling MySQL Shell for GreatSQL" && \ su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ echo "8. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ diff --git a/GreatSQL-Shell-Build/centos7/install_python.sh b/GreatSQL-Shell-Build/centos7/install_python.sh deleted file mode 100644 index a7743eb..0000000 --- a/GreatSQL-Shell-Build/centos7/install_python.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -src_dir='/opt' -soft_dir='/usr/local' - -yum clean all - -get_cpu_count() { - expr $(grep 'processor' /proc/cpuinfo | wc -l) + 1 -} - - -install_python() { - # 下载 python src - py_ver='3.8.18' - py_name="Python-${py_ver}" - py_file="${py_name}.tar.xz" - py_log='/tmp/init_py.log' - - wget https://www.python.org/ftp/python/${py_ver}/${py_file} -O ${src_dir}/${py_file} && renic=$? - - - if [[ "$renic" == 0 ]]; then - tar Jxf ${src_dir}/${py_file} -C ${src_dir} || exit 11 - pushd ${src_dir}/${py_name} - ./configure --prefix=${soft_dir}/python/${py_ver} >> ${py_log} 2>&1 && \ - make -j$(get_cpu_count) >> ${py_log} 2>&1 && \ - make install >> ${py_log} 2>&1 - popd - - pushd /usr/local/bin - ln -s ../python/${py_ver}/bin/python3 ./ - ln -s ../python/${py_ver}/bin/pip3 ./ - else - rm -rf ${src_dir}/${py_file} - echo "can't download $py_file source file" - exit 1 - fi -} - - -install_python -- Gitee From a8f6ce84cd2c7b0636b270216f1aca22cb4e2db6 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 09:14:02 +0800 Subject: [PATCH 75/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 8 ++++---- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 2689ac3..1018105 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -26,10 +26,10 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARY=/usr/local/python/3.8.18/lib/python3.8 \ --DPYTHON_LIBRARIES=/usr/local/python/3.8.18/lib/python3.8 \ --DPYTHON_INCLUDE_DIR=/usr/local/python/3.8.18/include/python3.8 \ --DPYTHON_INCLUDE_DIRS=/usr/local/python/3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARY=/usr/local/python/Python-3.8.18/lib/python3.8 \ +-DPYTHON_LIBRARIES=/usr/local/python/Python-3.8.18/lib/python3.8 \ +-DPYTHON_INCLUDE_DIR=/usr/local/python/Python-3.8.18/include/python3.8 \ +-DPYTHON_INCLUDE_DIRS=/usr/local/python/Python-3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index be602cf..2e9d617 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -42,7 +42,7 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" -PYTHON_LIBRARY="/usr/local/python/3.8.18/lib/python3.8" -PYTHON_LIBRARIES="/usr/local/python/3.8.18/lib/python3.8" -PYTHON_INCLUDE_DIR="/usr/local/python/3.8.18/include/python3.8" -PYTHON_INCLUDE_DIRS="/usr/local/python/3.8.18/include/python3.8" +PYTHON_LIBRARY="/usr/local/python/Python-3.8.18/lib/python3.8" +PYTHON_LIBRARIES="/usr/local/python/Python-3.8.18/lib/python3.8" +PYTHON_INCLUDE_DIR="/usr/local/python/Python-3.8.18/include/python3.8" +PYTHON_INCLUDE_DIRS="/usr/local/python/Python-3.8.18/include/python3.8" -- Gitee From 411991a5015208a4b7845907b047352b344068d2 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 09:15:34 +0800 Subject: [PATCH 76/83] centos7 --- GreatSQL-Shell-Build/centos7/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 062657c..33087bf 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -30,7 +30,7 @@ tar xf ${OPT_DIR}/${PYTHON}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ tar xf ${OPT_DIR}/${MYSQLSH}*z -chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} +#chown -R ${MYSQL_USER}:${MYSQL_USER} ${OPT_DIR} #yum install -y ${RPCGEN} >> ${MAKELOG} 2>&1 -- Gitee From d5dd4a9d914cf204ccf193d6c82a8d597da2869b Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 09:17:00 +0800 Subject: [PATCH 77/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 1018105..19723a0 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -22,7 +22,7 @@ cmake3 .. \ -DCMAKE_INSTALL_PREFIX=${BASE_DIR} \ -DMYSQL_SOURCE_DIR=${OPT_DIR}/${MYSQL} \ -DMYSQL_BUILD_DIR=${OPT_DIR}/${MYSQL}/bld/ \ --DHAVE_PYTHON=0 \ +-DHAVE_PYTHON=1 \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ -- Gitee From fd7f622ab627378dff2be1bc58ccab58c2a1555b Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 09:35:50 +0800 Subject: [PATCH 78/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 10 +++++----- .../centos7/docker-entrypoint.sh | 17 ++++------------- .../centos7/greatsqlsh-automake.sh | 7 +++---- .../centos7/greatsqlsh-setenv.sh | 7 +------ 4 files changed, 13 insertions(+), 28 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 8b487f4..ff1b85f 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -13,8 +13,8 @@ ARG DEPS="which autoconf automake binutils bison cmake3 cyrus-sasl-devel cyrus-s devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtoolset-11-binutils \ libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ -patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build" -#rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" +patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ +rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" @@ -50,9 +50,9 @@ RUN scl enable devtoolset-11 bash RUN source /opt/rh/devtoolset-11/enable > /dev/null 2>&1 && \ echo 'source /opt/rh/devtoolset-11/enable' >> /root/.bash_profile; -#RUN scl enable rh-python38 bash -#RUN source /opt/rh/rh-python38/enable > /dev/null 2>&1 && \ -#echo 'source /opt/rh/rh-python38/enable' >> /root/.bash_profile; +RUN scl enable rh-python38 bash +RUN source /opt/rh/rh-python38/enable > /dev/null 2>&1 && \ +echo 'source /opt/rh/rh-python38/enable' >> /root/.bash_profile; RUN /usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \ diff --git a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh index 33087bf..7f7515a 100644 --- a/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh +++ b/GreatSQL-Shell-Build/centos7/docker-entrypoint.sh @@ -17,7 +17,6 @@ wget -c -O ${PROTOBUF}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${PROTOBUF}.tar.xz wget -c -O ${ANTLR}.tar.xz ${GREATSQL_BUILD_DOWNLOAD_URL}/${ANTLR}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${BOOST}.tar.gz ${BOOST_SRC_DOWNLOAD_URL}/${BOOST}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${LIBSSH}.tar.xz ${LIBSSH_SRC_DOWNLOAD_URL}/${LIBSSH}.tar.xz >> ${MAKELOG} 2>&1 && \ -wget -c -O ${PYTHON}.tar.xz ${PYTHON_SRC_DOWNLOAD_URL}/${PYTHON}.tar.xz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQLSH}.tar.gz ${MYSQLSH_SRC_DOWNLOAD_URL}/${MYSQLSH}.tar.gz >> ${MAKELOG} 2>&1 && \ wget -c -O ${MYSQL}.tar.gz ${MYSQL_SRC_DOWNLOAD_URL}/${MYSQL}.tar.gz >> ${MAKELOG} 2>&1 && \ echo " 1.2 extract tarballs ..." && \ @@ -26,7 +25,6 @@ tar xf ${OPT_DIR}/${PROTOBUF}*z && \ tar xf ${OPT_DIR}/${ANTLR}*z && \ tar xf ${OPT_DIR}/${BOOST}*z && \ tar xf ${OPT_DIR}/${LIBSSH}*z && \ -tar xf ${OPT_DIR}/${PYTHON}*z && \ tar xf ${OPT_DIR}/${MYSQL}*z && \ tar xf ${OPT_DIR}/${MYSQLSH}*z @@ -58,23 +56,16 @@ cd build && \ cmake3 ../ >> ${MAKELOG} 2>&1 && \ make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ make install >> ${MAKELOG} 2>&1 && \ -echo "6. compiling python38" && \ -cd ${OPT_DIR}/${PYTHON} && \ -./configure --prefix=/usr/local/python/${PYTHON} >> ${MAKELOG} 2>&1 && \ -make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && \ -make install >> ${MAKELOG} 2>&1 && \ -ln -s /usr/local/python/${PYTHON}/bin/python3 /usr/local/bin/python3 >> ${MAKELOG} 2>&1 && \ -ln -s /usr/local/python/${PYTHON}/bin/pip3 /usr/local/bin/pip3 >> ${MAKELOG} 2>&1 && \ -echo "7. compiling MySQL Shell for GreatSQL" && \ +echo "6. compiling MySQL Shell for GreatSQL" && \ su - ${MYSQL_USER} -s /bin/bash -c "cd ${OPT_DIR}; /bin/sh ${OPT_DIR}/${GREATSQLSH_MAKESH}" && \ -echo "8. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ +echo "7. MySQL Shell for GreatSQL 8.0.32-25 build completed!" && \ pip install --user certifi pyclamd >> ${MAKELOG} 2>&1 && \ -echo " 8.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ +echo " 7.1 MySQL Shell for GreatSQL 8.0.32-25 version:" && \ ${BASE_DIR}/bin/mysqlsh --version && \ cd ${OPT_DIR} && \ tar cf ${GREATSQLSH}.tar ${GREATSQLSH} >> ${MAKELOG} 2>&1 && \ xz -9 -f -T${MAKE_JOBS} ${GREATSQLSH}.tar >> ${MAKELOG} 2>&1 && \ -echo " 8.2 TARBALL file:" && \ +echo " 7.2 TARBALL file:" && \ ls -la ${OPT_DIR}/${GREATSQLSH}.tar.xz #cd ${OPT_DIR} && \ #rm -fr ${ANTLR}* ${BOOST}* ${MYSQL}* ${MYSQLSH}* ${MYSQLSH_PATCH} ${PATCHELF}* ${PROTOBUF}* ${LIBSSH}* ${RPCGEN} diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 19723a0..9efaeaf 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -26,10 +26,9 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ --DPYTHON_LIBRARY=/usr/local/python/Python-3.8.18/lib/python3.8 \ --DPYTHON_LIBRARIES=/usr/local/python/Python-3.8.18/lib/python3.8 \ --DPYTHON_INCLUDE_DIR=/usr/local/python/Python-3.8.18/include/python3.8 \ --DPYTHON_INCLUDE_DIRS=/usr/local/python/Python-3.8.18/include/python3.8 >> ${MAKELOG} 2>&1 \ +-DPYTHON_LIBRARY=/opt/rh/rh-python38/root/lib64/libpython3.8.so \ +-DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ +-DPYTHON_INCLUDE_DIR=/opt/rh/rh-python38/root/usr/include/python3.8 >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index 2e9d617..82b79af 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -29,11 +29,9 @@ BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77. MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" LIBSSH_SRC_DOWNLOAD_URL="https://www.libssh.org/files/0.9" -PYTHON_SRC_DOWNLOAD_URL="https://www.python.org/ftp/python/3.8.18" ANTLR="antlr4-4.10" BOOST="boost_1_77_0" LIBSSH="libssh-0.9.2" -PYTHON="Python-3.8.18" MYSQL="mysql-8.0.32" MYSQLSH="mysql-shell-8.0.32-src" PATCHELF="patchelf-0.14.5" @@ -42,7 +40,4 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" -PYTHON_LIBRARY="/usr/local/python/Python-3.8.18/lib/python3.8" -PYTHON_LIBRARIES="/usr/local/python/Python-3.8.18/lib/python3.8" -PYTHON_INCLUDE_DIR="/usr/local/python/Python-3.8.18/include/python3.8" -PYTHON_INCLUDE_DIRS="/usr/local/python/Python-3.8.18/include/python3.8" + -- Gitee From 258dbd6bf12749bf82d4627e704cc34e36b18a07 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 12:30:39 +0800 Subject: [PATCH 79/83] centos7 --- GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh | 8 +++++++- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh index 9efaeaf..45fef94 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-automake.sh @@ -26,9 +26,15 @@ cmake3 .. \ -DWITH_PROTOBUF=bundled \ -DBUILD_SOURCE_PACKAGE=0 \ -DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \ +-DHAVE_V8=1 \ +-DV8_LIBRARY=/usr/lib64/libv8.so \ +-DV8_INCLUDE_DIR=/usr/include \ +-DV8_LIB_DIR=/usr/lib64 \ -DPYTHON_LIBRARY=/opt/rh/rh-python38/root/lib64/libpython3.8.so \ -DPYTHON_LIBRARIES=/opt/rh/rh-python38/root/usr/lib64/python3.8 \ -DPYTHON_INCLUDE_DIR=/opt/rh/rh-python38/root/usr/include/python3.8 >> ${MAKELOG} 2>&1 \ && make -j${MAKE_JOBS} >> ${MAKELOG} 2>&1 && make -j${MAKE_JOBS} install >> ${MAKELOG} 2>&1 && \ cp /usr/local/lib/libprotobuf.so.30 ${BASE_DIR}/lib/mysqlsh/ && \ -cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ +cp /usr/local/lib64/libssh.so.4 ${BASE_DIR}/lib/mysqlsh/ && \ +cp /opt/rh/rh-python38/root/lib64/libpython3.8.so ${BASE_DIR}/lib/mysqlsh/ && \ +cp /opt/rh/rh-python38/root/lib64/libpython3.8.so ${BASE_DIR}/lib/mysqlsh/libpython3.8.so.rh-python38-1.0 diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index 82b79af..9b2fcd2 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -40,4 +40,3 @@ GREATSQLSH_PATCH="mysqlsh-for-greatsql-8.0.32.patch" GREATSQLSH_MAKESH="greatsqlsh-automake.sh" GREATSQLSH_ENV="greatsqlsh-setenv.sh" RPCGEN="" - -- Gitee From ee5692db301eefb09b19073d106f7ef0fd0b2d67 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 12:32:37 +0800 Subject: [PATCH 80/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index ff1b85f..ad1bf9e 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -14,7 +14,8 @@ devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-annobin-plugin-gcc devtool libcurl-devel libssh libssh-config libssh-devel \ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl openssl-devel \ patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ -rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip" +rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip \ +v8-devel nodejs-libs nodejs nodejs-devtoolset nodejs-packaging" ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" -- Gitee From ce219391dfc537f345b1b46afd4194bc5c028cd9 Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 13:48:15 +0800 Subject: [PATCH 81/83] centos7 --- .../mysqlsh-for-greatsql-8.0.32.patch | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch b/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch index 00d96dc..2b989a8 100644 --- a/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch +++ b/GreatSQL-Shell-Build/mysqlsh-for-greatsql-8.0.32.patch @@ -27,9 +27,21 @@ index 05dfa54bf..23ccf6a76 100644 @@ -73,7 +73,7 @@ enum class Member_state { MISSING }; - + -enum class Member_role { PRIMARY, SECONDARY, NONE }; +enum class Member_role { PRIMARY, SECONDARY, ARBITRATOR, NONE }; - + enum class Topology_mode { SINGLE_PRIMARY, MULTI_PRIMARY, NONE }; - +diff --git a/mysqlshdk/scripting/jscript_context.cc b/mysqlshdk/scripting/jscript_context.cc +index 5f46751..0e7ff1e 100644 +--- a/mysqlshdk/scripting/jscript_context.cc ++++ b/mysqlshdk/scripting/jscript_context.cc +@@ -1557,7 +1557,7 @@ v8::Local v8_array_buffer(v8::Isolate *isolate, + + std::string to_string(v8::Isolate *isolate, v8::Local obj) { + const v8::String::Utf8Value utf8{ +- isolate, obj->IsSymbol() ? obj.As()->Name() : obj}; ++ isolate, obj->IsSymbol() ? obj.As()->Description() : obj}; + const auto ptr = *utf8; + return nullptr == ptr ? "" : std::string(ptr, utf8.length()); + } -- Gitee From 111d3202a585bb12bbd339c04f6ad9c37079d01e Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 15:32:06 +0800 Subject: [PATCH 82/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index ad1bf9e..4f9dc76 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -16,6 +16,7 @@ libtirpc-devel libudev-devel libuuid libuuid-devel m4 make ncurses-devel openssl patch uuid wget zlib-devel centos-release-scl centos-release-scl-rh scl-utils-build \ rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38-python-pyyaml rh-python38-python-pip \ v8-devel nodejs-libs nodejs nodejs-devtoolset nodejs-packaging" +#v8-devel-9.4.146.26-1.16.20.2.1.el7.x86_64 ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" -- Gitee From 58f3dfebc2b2372028b9233a3a1085149ce3b0ab Mon Sep 17 00:00:00 2001 From: earl86 Date: Fri, 8 Mar 2024 16:08:50 +0800 Subject: [PATCH 83/83] centos7 --- GreatSQL-Shell-Build/centos7/Dockerfile | 2 +- GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/GreatSQL-Shell-Build/centos7/Dockerfile b/GreatSQL-Shell-Build/centos7/Dockerfile index 4f9dc76..ab8cd29 100644 --- a/GreatSQL-Shell-Build/centos7/Dockerfile +++ b/GreatSQL-Shell-Build/centos7/Dockerfile @@ -18,7 +18,7 @@ rh-python38-python rh-python38-python-devel rh-python38-python-libs rh-python38- v8-devel nodejs-libs nodejs nodejs-devtoolset nodejs-packaging" #v8-devel-9.4.146.26-1.16.20.2.1.el7.x86_64 -ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" +ARG GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build/centos7" ARG GREATSQLSH_ENV="greatsqlsh-setenv.sh" ARG ENTRYPOINT="docker-entrypoint.sh" diff --git a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh index 9b2fcd2..b61f2c9 100644 --- a/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh +++ b/GreatSQL-Shell-Build/centos7/greatsqlsh-setenv.sh @@ -23,8 +23,8 @@ MYSQL_USER=mysql GREATSQLSH=greatsql-shell-${MYSQL_VERSTION}-${RELEASE}-${OS}-${OSPATCH}-glibc${GLIBC}-${ARCH} BASE_DIR=${OPT_DIR}/${GREATSQLSH} GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/deppkgs" -GREATSQLSH_BUILD_DOWNLOAD_BASE_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build" -GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/earl86/GreatSQL-Docker/raw/greatsql-8.0.32-25-centos7/GreatSQL-Shell-Build/centos7" +GREATSQLSH_BUILD_DOWNLOAD_BASE_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build" +GREATSQLSH_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Shell-Build/centos7" BOOST_SRC_DOWNLOAD_URL="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source" MYSQL_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file" MYSQLSH_SRC_DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/43/file" -- Gitee