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

set -e
6
#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
18
dbName=${10}
H
hzcheng 已提交
19 20

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

23 24 25 26 27
productName="TDengine"
serverName="taosd"
clientName="taos"
configFile="taos.cfg"
tarName="taos.tar.gz"
28 29 30 31 32
dumpName="taosdump"
benchmarkName="taosBenchmark"
toolsName="taostools"
adapterName="taosadapter"
defaultPasswd="taosdata"
33

H
hzcheng 已提交
34 35 36 37 38
# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

L
lihui 已提交
39
#package_name='linux'
S
slguan 已提交
40
if [ "$verMode" == "cluster" ]; then
41
  install_dir="${release_dir}/${productName}-enterprise-server-${version}"
S
slguan 已提交
42
else
43
  install_dir="${release_dir}/${productName}-server-${version}"
S
slguan 已提交
44
fi
H
hzcheng 已提交
45

46
if [ -d ${top_dir}/src/kit/taos-tools/packaging/deb ]; then
47 48
  cd ${top_dir}/src/kit/taos-tools/packaging/deb
  [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0"
49

50 51
  taostools_ver=$(git describe --tags | sed -e 's/ver-//g' | awk -F '-' '{print $1}')
  taostools_install_dir="${release_dir}/${clientName}Tools-${taostools_ver}"
52

53
  cd ${curr_dir}
54
else
55
  taostools_install_dir="${release_dir}/${clientName}Tools-${version}"
56 57
fi

58
# Directories and files
L
lihui 已提交
59
if [ "$pagMode" == "lite" ]; then
60 61
  strip ${build_dir}/bin/${serverName}
  strip ${build_dir}/bin/${clientName}
62
  # lite version doesn't include taosadapter,  which will lead to no restful interface
63
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh ${build_dir}/bin/taosBenchmark"
64
  taostools_bin_files=""
65
else
66 67 68 69 70 71

  wget https://github.com/taosdata/grafanaplugin/releases/latest/download/TDinsight.sh -O ${build_dir}/bin/TDinsight.sh \
      && echo "TDinsight.sh downloaded!" \
      || echo "failed to download TDinsight.sh"

  taostools_bin_files=" ${build_dir}/bin/taosdump \
72
      ${build_dir}/bin/taosBenchmark \
73 74
      ${build_dir}/bin/TDinsight.sh "

75 76
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
77
      ${taostools_bin_files} \
78
      ${build_dir}/bin/taosadapter \
79 80 81
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
82
      ${script_dir}/run_taosd_and_taosadapter.sh \
83 84
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
85 86
fi

L
lihui 已提交
87
lib_files="${build_dir}/lib/libtaos.so.${version}"
88
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
89 90

if [ "$dbName" != "taos" ]; then
91 92 93 94 95
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

L
lihui 已提交
96
install_files="${script_dir}/install.sh"
L
lihui 已提交
97
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
98

L
lihui 已提交
99 100
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
101 102
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
103 104 105 106

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
107
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/${configFile} ${install_dir}/cfg/${configFile}
108

109
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
110
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
111 112 113
fi

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

117
if [ -f "${cfg_dir}/${serverName}.service" ]; then
118
  cp ${cfg_dir}/${serverName}.service ${install_dir}/cfg || :
119
fi
120

121 122
if [ -f "${top_dir}/packaging/cfg/tarbitratord.service" ]; then
  cp ${top_dir}/packaging/cfg/tarbitratord.service ${install_dir}/cfg || :
123
fi
124

125 126
if [ -f "${top_dir}/packaging/cfg/nginxd.service" ]; then
  cp ${top_dir}/packaging/cfg/nginxd.service ${install_dir}/cfg || :
127 128
fi

H
Hui Li 已提交
129
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
130 131
mkdir -p ${install_dir}/init.d && cp ${init_file_deb} ${install_dir}/init.d/${serverName}.deb
mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/${serverName}.rpm
H
Hui Li 已提交
132 133
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 已提交
134

135 136 137 138
if [ $adapterName != "taosadapter" ]; then
  mv ${install_dir}/cfg/taosadapter.toml ${install_dir}/cfg/$adapterName.toml
  sed -i "s/path = \"\/var\/log\/taos\"/path = \"\/var\/log\/${productName}\"/g" ${install_dir}/cfg/$adapterName.toml
  sed -i "s/password = \"taosdata\"/password = \"${defaultPasswd}\"/g" ${install_dir}/cfg/$adapterName.toml
139

140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
  mv ${install_dir}/cfg/taosadapter.service ${install_dir}/cfg/$adapterName.service
  sed -i "s/TDengine/${productName}/g" ${install_dir}/cfg/$adapterName.service
  sed -i "s/taosAdapter/${adapterName}/g" ${install_dir}/cfg/$adapterName.service
  sed -i "s/taosadapter/${adapterName}/g" ${install_dir}/cfg/$adapterName.service

  mv ${install_dir}/bin/taosadapter ${install_dir}/bin/${adapterName}
  mv ${install_dir}/bin/run_taosd_and_taosadapter.sh ${install_dir}/bin/run_${serverName}_and_${adapterName}.sh
  mv ${install_dir}/bin/taosd-dump-cfg.gdb ${install_dir}/bin/${serverName}-dump-cfg.gdb
fi

if [ -n "${taostools_bin_files}" ]; then
    mkdir -p ${taostools_install_dir} || echo -e "failed to create ${taostools_install_dir}"
    mkdir -p ${taostools_install_dir}/bin \
        && cp ${taostools_bin_files} ${taostools_install_dir}/bin \
        && chmod a+x ${taostools_install_dir}/bin/* || :

    if [ -f ${top_dir}/src/kit/taos-tools/packaging/tools/install-taostools.sh ]; then
        cp ${top_dir}/src/kit/taos-tools/packaging/tools/install-taostools.sh \
            ${taostools_install_dir}/ > /dev/null \
            && chmod a+x ${taostools_install_dir}/install-taostools.sh \
            || echo -e "failed to copy install-taostools.sh"
    else
        echo -e "install-taostools.sh not found"
163
    fi
164 165 166 167 168 169 170 171

    if [ -f ${top_dir}/src/kit/taos-tools/packaging/tools/uninstall-taostools.sh ]; then
        cp ${top_dir}/src/kit/taos-tools/packaging/tools/uninstall-taostools.sh \
            ${taostools_install_dir}/ > /dev/null \
            && chmod a+x ${taostools_install_dir}/uninstall-taostools.sh \
            || echo -e "failed to copy uninstall-taostools.sh"
    else
        echo -e "uninstall-taostools.sh not found"
172
    fi
173 174 175 176 177

    if [ -f ${build_dir}/lib/libavro.so.23.0.0 ]; then
        mkdir -p ${taostools_install_dir}/avro/{lib,lib/pkgconfig} || echo -e "failed to create ${taostools_install_dir}/avro"
        cp ${build_dir}/lib/libavro.* ${taostools_install_dir}/avro/lib
        cp ${build_dir}/lib/pkgconfig/avro-c.pc ${taostools_install_dir}/avro/lib/pkgconfig
178 179 180
    fi
fi

181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
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 已提交
214
if [ "$verMode" == "cluster" ]; then
215 216
  sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >>remove_temp.sh
  mv remove_temp.sh ${install_dir}/bin/remove.sh
217

218 219 220
  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
S
slguan 已提交
221

222 223 224 225 226 227
  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
S
slguan 已提交
228 229
fi

H
hzcheng 已提交
230
cd ${install_dir}
231
tar -zcv -f ${tarName} * --remove-files || :
L
lihui 已提交
232 233
exitcode=$?
if [ "$exitcode" != "0" ]; then
234 235
  echo "tar ${tarName} error !!!"
  exit $exitcode
L
lihui 已提交
236
fi
H
hzcheng 已提交
237 238

cd ${curr_dir}
S
slguan 已提交
239 240
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
241 242
  sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
L
lihui 已提交
243 244
fi
if [ "$pagMode" == "lite" ]; then
245 246
  sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
S
slguan 已提交
247 248
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
249

250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
if [[ $dbName == "taos" ]]; then
  # Copy example code
  mkdir -p ${install_dir}/examples
  examples_dir="${top_dir}/examples"
  cp -r ${examples_dir}/c ${install_dir}/examples
  if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
    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
274

275 276 277 278 279 280 281 282
    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
    cp -r ${examples_dir}/nodejs ${install_dir}/examples
    cp -r ${examples_dir}/C# ${install_dir}/examples
  fi
L
lihui 已提交
283
fi
284

H
hzcheng 已提交
285
# Copy driver
286
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
287 288

# Copy connector
289 290 291
#connector_dir="${code_dir}/connector"
#mkdir -p ${install_dir}/connector
#if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
292
#  cp ${build_dir}/lib/*.jar ${install_dir}/connector || :
293 294 295 296 297
#  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
298 299
#  cp -r ${connector_dir}/python ${install_dir}/connector
#  cp -r ${connector_dir}/nodejs ${install_dir}/connector
300
#fi
H
hzcheng 已提交
301
# Copy release note
L
lihui 已提交
302
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
303 304 305

# exit 1

306
cd ${release_dir}
L
lihui 已提交
307

308 309 310
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

311 312
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

313 314 315 316 317 318 319 320
# 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 已提交
321

haoranc's avatar
haoranc 已提交
322
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
323
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
324
  taostools_pkg_name=${taostools_install_dir}-${verType}-${osType}-${cpuType}
325 326
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
327
  taostools_pkg_name=${taostools_pkg_name}
L
lihui 已提交
328 329 330 331 332
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

333 334 335 336
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

337
tar -zcv -f "$(basename ${pkg_name}).tar.gz" "$(basename ${install_dir})" --remove-files || :
L
lihui 已提交
338 339
exitcode=$?
if [ "$exitcode" != "0" ]; then
340 341
  echo "tar ${pkg_name}.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
342
fi
L
lihui 已提交
343

344 345 346 347 348 349 350 351 352
if [ -n "${taostools_bin_files}" ]; then
    wget https://github.com/taosdata/grafanaplugin/releases/latest/download/TDinsight.sh -O ${taostools_install_dir}/bin/TDinsight.sh && echo "TDinsight.sh downloaded!"|| echo "failed to download TDinsight.sh"
    tar -zcv -f "$(basename ${taostools_pkg_name}).tar.gz" "$(basename ${taostools_install_dir})" --remove-files || :
    exitcode=$?
    if [ "$exitcode" != "0" ]; then
        echo "tar ${taostools_pkg_name}.tar.gz error !!!"
        exit $exitcode
    fi
fi
353

L
lihui 已提交
354
cd ${curr_dir}