makepkg.sh 9.4 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
38
  # lite version doesn't include taosadapter,  which will lead to no restful interface
39
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh ${script_dir}/startPre.sh"
40
else
41 42
  bin_files="${build_dir}/bin/taosd \
      ${build_dir}/bin/taos \
43
      ${build_dir}/bin/taosadapter \
44 45 46 47 48 49 50
      ${build_dir}/bin/taosdump \
      ${build_dir}/bin/taosdemo \
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
51 52
fi

L
lihui 已提交
53
lib_files="${build_dir}/lib/libtaos.so.${version}"
54
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
55 56 57 58 59 60
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

L
lihui 已提交
61
install_files="${script_dir}/install.sh"
L
lihui 已提交
62
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
63 64 65 66 67 68 69 70

# 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 已提交
71 72
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
73 74
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
75 76 77 78

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
L
lihui 已提交
79
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
80

81 82 83 84 85 86 87
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
    cp ${compile_dir}/test/cfg/taosadapter.toml                 ${install_dir}/cfg || :
fi

if [ -f "${compile_dir}/test/cfg/taosadapter.service" ]; then
    cp ${compile_dir}/test/cfg/taosadapter.service          ${install_dir}/cfg || :
fi
88

89 90 91 92 93 94 95 96 97 98
if [ -f "${cfg_dir}/taosd.service" ]; then
    cp ${cfg_dir}/taosd.service          ${install_dir}/cfg || :
fi
if [ -f "${cfg_dir}/tarbitratord.service" ]; then
    cp ${cfg_dir}/tarbitratord.service          ${install_dir}/cfg || :
fi
if [ -f "${cfg_dir}/nginxd.service" ]; then
    cp ${cfg_dir}/nginxd.service          ${install_dir}/cfg || :
fi

H
Hui Li 已提交
99
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
L
lihui 已提交
100 101
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 已提交
102 103
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 已提交
104

105 106 107 108 109 110
if [ -f ${build_dir}/lib/libavro.so.23.0.0 ]; then
    mkdir -p ${install_dir}/avro/{lib,lib/pkgconfig}
    cp ${build_dir}/lib/libavro.* ${install_dir}/avro/lib
    cp ${build_dir}/lib/pkgconfig/avro-c.pc ${install_dir}/avro/lib/pkgconfig
fi

111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
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 已提交
144
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
145 146
    sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >> remove_temp.sh
    mv remove_temp.sh ${install_dir}/bin/remove.sh
147

S
slguan 已提交
148 149 150 151 152 153 154 155 156 157 158 159
    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 已提交
160
cd ${install_dir}
S
slguan 已提交
161
tar -zcv -f taos.tar.gz * --remove-files  || :
L
lihui 已提交
162 163 164 165 166
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar taos.tar.gz error !!!"
    exit $exitcode
fi
H
hzcheng 已提交
167 168

cd ${curr_dir}
S
slguan 已提交
169 170
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
171 172 173 174 175 176
    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 已提交
177 178
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
179 180 181

# Copy example code
mkdir -p ${install_dir}/examples
L
lihui 已提交
182
examples_dir="${top_dir}/tests/examples"
L
lihui 已提交
183 184
  cp -r ${examples_dir}/c      ${install_dir}/examples
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
zyyang 已提交
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
  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
203

L
lihui 已提交
204 205 206 207 208
  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 已提交
209 210
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
  cp -r ${examples_dir}/C#     ${install_dir}/examples
L
lihui 已提交
211
fi
H
hzcheng 已提交
212
# Copy driver
213
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" > ${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
214 215 216 217

# Copy connector
connector_dir="${code_dir}/connector"
mkdir -p ${install_dir}/connector
L
lihui 已提交
218
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
P
plum-lihui 已提交
219
  cp ${build_dir}/lib/*.jar            ${install_dir}/connector ||:
Z
zyyang 已提交
220 221 222 223 224 225
  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 已提交
226
  cp -r ${connector_dir}/nodejs        ${install_dir}/connector
L
lihui 已提交
227
fi
H
hzcheng 已提交
228
# Copy release note
L
lihui 已提交
229
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
230 231 232

# exit 1

233
cd ${release_dir}
L
lihui 已提交
234

235 236 237 238 239 240 241 242 243 244 245
#  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 已提交
246

haoranc's avatar
haoranc 已提交
247
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
248
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
249 250
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
L
lihui 已提交
251 252 253 254 255
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

256 257 258 259
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

S
slguan 已提交
260
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
L
lihui 已提交
261 262 263 264 265
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar ${pkg_name}.tar.gz error !!!"
    exit $exitcode
fi
L
lihui 已提交
266

L
lihui 已提交
267
cd ${curr_dir}