makepkg.sh 8.3 KB
Newer Older
H
hzcheng 已提交
1 2
#!/bin/bash
#
L
lihui 已提交
3 4 5 6
# Generate tar.gz package for all os system

set -e
#set -x
H
hzcheng 已提交
7 8 9 10 11

curr_dir=$(pwd)
compile_dir=$1
version=$2
build_time=$3
L
lihui 已提交
12 13 14 15
cpuType=$4
osType=$5
verMode=$6
verType=$7
L
lihui 已提交
16
pagMode=$8
17
versionComp=$9
H
hzcheng 已提交
18 19

script_dir="$(dirname $(readlink -f $0))"
F
Frozen 已提交
20
top_dir="$(readlink -f ${script_dir}/../..)"
H
hzcheng 已提交
21 22 23 24 25 26

# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

L
lihui 已提交
27
#package_name='linux'
S
slguan 已提交
28
if [ "$verMode" == "cluster" ]; then
H
Hui Li 已提交
29
    install_dir="${release_dir}/TDengine-enterprise-server-${version}"
S
slguan 已提交
30
else
H
Hui Li 已提交
31
    install_dir="${release_dir}/TDengine-server-${version}"
S
slguan 已提交
32
fi
H
hzcheng 已提交
33

34
# Directories and files
L
lihui 已提交
35
if [ "$pagMode" == "lite" ]; then
36
  strip ${build_dir}/bin/taosd
L
lihui 已提交
37
  strip ${build_dir}/bin/taos
haoranc's avatar
haoranc 已提交
38
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh ${script_dir}/startPre.sh"
39
else
40
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${build_dir}/bin/taosdump ${build_dir}/bin/taosdemo ${build_dir}/bin/tarbitrator\
41
             ${script_dir}/remove.sh ${script_dir}/set_core.sh ${script_dir}/startPre.sh  ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
42 43
fi

L
lihui 已提交
44
lib_files="${build_dir}/lib/libtaos.so.${version}"
L
lihui 已提交
45
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taoserror.h"
46 47 48 49 50 51
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

L
lihui 已提交
52
install_files="${script_dir}/install.sh"
L
lihui 已提交
53
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
54 55 56 57 58 59 60 61

# Init file
#init_dir=${script_dir}/deb
#if [ $package_type = "centos" ]; then
#    init_dir=${script_dir}/rpm
#fi
#init_files=${init_dir}/taosd
# temp use rpm's taosd. TODO: later modify according to os type
L
lihui 已提交
62 63
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
64 65
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
66 67 68 69

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
L
lihui 已提交
70
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
H
Hui Li 已提交
71
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
L
lihui 已提交
72 73
mkdir -p ${install_dir}/init.d && cp ${init_file_deb} ${install_dir}/init.d/taosd.deb
mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/taosd.rpm
H
Hui Li 已提交
74 75
mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_deb} ${install_dir}/init.d/tarbitratord.deb || :
mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_rpm} ${install_dir}/init.d/tarbitratord.rpm || :
H
hzcheng 已提交
76

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
if [ -f ${build_dir}/bin/jemalloc-config ]; then
    mkdir -p ${install_dir}/jemalloc/{bin,lib,lib/pkgconfig,include/jemalloc,share/doc/jemalloc,share/man/man3}
    cp ${build_dir}/bin/jemalloc-config ${install_dir}/jemalloc/bin
    if [ -f ${build_dir}/bin/jemalloc.sh ]; then
        cp ${build_dir}/bin/jemalloc.sh ${install_dir}/jemalloc/bin
    fi
    if [ -f ${build_dir}/bin/jeprof ]; then
        cp ${build_dir}/bin/jeprof ${install_dir}/jemalloc/bin
    fi
    if [ -f ${build_dir}/include/jemalloc/jemalloc.h ]; then
        cp ${build_dir}/include/jemalloc/jemalloc.h ${install_dir}/jemalloc/include/jemalloc
    fi
    if [ -f ${build_dir}/lib/libjemalloc.so.2 ]; then
        cp ${build_dir}/lib/libjemalloc.so.2 ${install_dir}/jemalloc/lib
        ln -sf libjemalloc.so.2 ${install_dir}/jemalloc/lib/libjemalloc.so
    fi
    if [ -f ${build_dir}/lib/libjemalloc.a ]; then
        cp ${build_dir}/lib/libjemalloc.a ${install_dir}/jemalloc/lib
    fi
    if [ -f ${build_dir}/lib/libjemalloc_pic.a ]; then
        cp ${build_dir}/lib/libjemalloc_pic.a ${install_dir}/jemalloc/lib
    fi
    if [ -f ${build_dir}/lib/pkgconfig/jemalloc.pc ]; then
        cp ${build_dir}/lib/pkgconfig/jemalloc.pc ${install_dir}/jemalloc/lib/pkgconfig
    fi
    if [ -f ${build_dir}/share/doc/jemalloc/jemalloc.html ]; then
        cp ${build_dir}/share/doc/jemalloc/jemalloc.html ${install_dir}/jemalloc/share/doc/jemalloc
    fi
    if [ -f ${build_dir}/share/man/man3/jemalloc.3 ]; then
        cp ${build_dir}/share/man/man3/jemalloc.3 ${install_dir}/jemalloc/share/man/man3
    fi
fi

S
slguan 已提交
110
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
111 112
    sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >> remove_temp.sh
    mv remove_temp.sh ${install_dir}/bin/remove.sh
113

S
slguan 已提交
114 115 116 117 118 119 120 121 122 123 124 125
    mkdir -p ${install_dir}/nginxd && cp -r ${nginx_dir}/* ${install_dir}/nginxd
    cp ${nginx_dir}/png/taos.png ${install_dir}/nginxd/admin/images/taos.png
    rm -rf ${install_dir}/nginxd/png

    if [ "$cpuType" == "aarch64" ]; then
        cp -f ${install_dir}/nginxd/sbin/arm/64bit/nginx ${install_dir}/nginxd/sbin/
    elif [ "$cpuType" == "aarch32" ]; then
        cp -f ${install_dir}/nginxd/sbin/arm/32bit/nginx ${install_dir}/nginxd/sbin/
    fi
    rm -rf ${install_dir}/nginxd/sbin/arm
fi

H
hzcheng 已提交
126
cd ${install_dir}
S
slguan 已提交
127
tar -zcv -f taos.tar.gz * --remove-files  || :
L
lihui 已提交
128 129 130 131 132
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar taos.tar.gz error !!!"
    exit $exitcode
fi
H
hzcheng 已提交
133 134

cd ${curr_dir}
S
slguan 已提交
135 136
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
137 138 139 140 141 142
    sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install.sh >> install_temp.sh
    mv install_temp.sh ${install_dir}/install.sh
fi
if [ "$pagMode" == "lite" ]; then
    sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >> install_temp.sh
    mv install_temp.sh ${install_dir}/install.sh
S
slguan 已提交
143 144
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
145 146 147

# Copy example code
mkdir -p ${install_dir}/examples
L
lihui 已提交
148
examples_dir="${top_dir}/tests/examples"
L
lihui 已提交
149 150
  cp -r ${examples_dir}/c      ${install_dir}/examples
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
zyyang 已提交
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
  if [ -d ${examples_dir}/JDBC/connectionPools/target ]; then
    rm -rf ${examples_dir}/JDBC/connectionPools/target
  fi
  if [ -d ${examples_dir}/JDBC/JDBCDemo/target ]; then
    rm -rf ${examples_dir}/JDBC/JDBCDemo/target
  fi
  if [ -d ${examples_dir}/JDBC/mybatisplus-demo/target ]; then
    rm -rf ${examples_dir}/JDBC/mybatisplus-demo/target
  fi
  if [ -d ${examples_dir}/JDBC/springbootdemo/target ]; then
    rm -rf ${examples_dir}/JDBC/springbootdemo/target
  fi
  if [ -d ${examples_dir}/JDBC/SpringJdbcTemplate/target ]; then
    rm -rf ${examples_dir}/JDBC/SpringJdbcTemplate/target
  fi
  if [ -d ${examples_dir}/JDBC/taosdemo/target ]; then
    rm -rf ${examples_dir}/JDBC/taosdemo/target
  fi
169

L
lihui 已提交
170 171 172 173 174
  cp -r ${examples_dir}/JDBC   ${install_dir}/examples
  cp -r ${examples_dir}/matlab ${install_dir}/examples
  cp -r ${examples_dir}/python ${install_dir}/examples
  cp -r ${examples_dir}/R      ${install_dir}/examples
  cp -r ${examples_dir}/go     ${install_dir}/examples
H
Hui Li 已提交
175 176
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
  cp -r ${examples_dir}/C#     ${install_dir}/examples
L
lihui 已提交
177
fi
H
hzcheng 已提交
178
# Copy driver
179
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" > ${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
180 181 182 183

# Copy connector
connector_dir="${code_dir}/connector"
mkdir -p ${install_dir}/connector
L
lihui 已提交
184
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
P
plum-lihui 已提交
185
  cp ${build_dir}/lib/*.jar            ${install_dir}/connector ||:
Z
zyyang 已提交
186 187 188 189 190 191
  if find ${connector_dir}/go -mindepth 1 -maxdepth 1 | read; then
    cp -r ${connector_dir}/go ${install_dir}/connector
  else
    echo "WARNING: go connector not found, please check if want to use it!"
  fi
  cp -r ${connector_dir}/python        ${install_dir}/connector
H
Hui Li 已提交
192
  cp -r ${connector_dir}/nodejs        ${install_dir}/connector
L
lihui 已提交
193
fi
H
hzcheng 已提交
194
# Copy release note
L
lihui 已提交
195
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
196 197 198

# exit 1

199
cd ${release_dir}
L
lihui 已提交
200

201 202 203 204 205 206 207 208 209 210 211
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

# if [ "$verMode" == "cluster" ]; then
#   pkg_name=${install_dir}-${osType}-${cpuType}
# elif [ "$verMode" == "edge" ]; then
#   pkg_name=${install_dir}-${osType}-${cpuType}
# else
#   echo "unknow verMode, nor cluster or edge"
#   exit 1
# fi
L
lihui 已提交
212

haoranc's avatar
haoranc 已提交
213
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
214
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType} 
215 216
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
L
lihui 已提交
217 218 219 220 221
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

222 223 224 225
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

S
slguan 已提交
226
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
L
lihui 已提交
227 228 229 230 231
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar ${pkg_name}.tar.gz error !!!"
    exit $exitcode
fi
L
lihui 已提交
232

L
lihui 已提交
233
cd ${curr_dir}