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
Z
change  
zyyang 已提交
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

Z
change  
zyyang 已提交
23 24 25 26 27
productName="TDengine"
serverName="taosd"
clientName="taos"
configFile="taos.cfg"
tarName="taos.tar.gz"
28 29
dumpName="taosdump"
benchmarkName="taosBenchmark"
Z
zyyang 已提交
30
toolsName="taostools"
Z
zyyang 已提交
31 32
adapterName="taosadapter"
defaultPasswd="taosdata"
Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
41
  install_dir="${release_dir}/${productName}-enterprise-server-${version}"
S
slguan 已提交
42
else
Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
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

Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
60
  strip ${build_dir}/bin/${serverName}
Z
change  
zyyang 已提交
61
  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 "

Z
change  
zyyang 已提交
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

Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
110
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
111 112 113
fi

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

Z
change  
zyyang 已提交
117 118
if [ -f "${cfg_dir}/${serverName}.service" ]; then
  cp ${cfg_dir}/${serverName}.service ${install_dir}/cfg || :
119
fi
haoranc's avatar
change  
haoranc 已提交
120

121 122
if [ -f "${top_dir}/packaging/cfg/tarbitratord.service" ]; then
  cp ${top_dir}/packaging/cfg/tarbitratord.service ${install_dir}/cfg || :
123
fi
haoranc's avatar
change  
haoranc 已提交
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/* || :
Z
change  
zyyang 已提交
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

Z
zyyang 已提交
135 136 137 138 139 140 141 142 143 144 145
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

  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}
146 147
  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
Z
zyyang 已提交
148 149
fi

150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
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"
    fi

    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"
    fi

    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
    fi
fi
180

181
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
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
  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
212 213
fi

S
slguan 已提交
214
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
215 216 217 218 219 220 221 222 223 224 225 226 227
  sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >>remove_temp.sh
  mv remove_temp.sh ${install_dir}/bin/remove.sh

  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
S
slguan 已提交
228 229
fi

H
hzcheng 已提交
230
cd ${install_dir}
Z
change  
zyyang 已提交
231
tar -zcv -f ${tarName} * --remove-files || :
L
lihui 已提交
232 233
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
234
  echo "tar ${tarName} error !!!"
Z
change  
zyyang 已提交
235
  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
Z
change  
zyyang 已提交
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
Z
change  
zyyang 已提交
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 274 275 276 277 278 279 280 281
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

    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
Z
zyyang 已提交
282
  fi
L
lihui 已提交
283
fi
284

H
hzcheng 已提交
285
# Copy driver
Z
change  
zyyang 已提交
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 292 293 294 295 296 297 298 299 300
#connector_dir="${code_dir}/connector"
#mkdir -p ${install_dir}/connector
#if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
#  cp ${build_dir}/lib/*.jar ${install_dir}/connector || :
#  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
#  cp -r ${connector_dir}/nodejs ${install_dir}/connector
#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
Z
change  
zyyang 已提交
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}