makepkg.sh 12.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
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
Z
change  
zyyang 已提交
63
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh"
64
  taostools_bin_files=""
65
else
Z
change  
zyyang 已提交
66 67
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
68
      ${build_dir}/bin/taosadapter \
69 70 71
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
72
      ${script_dir}/run_taosd_and_taosadapter.sh \
73 74
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
75

76 77
  taostools_bin_files=" ${build_dir}/bin/${dumpName} \
      ${build_dir}/bin/${benchmarkName}"
L
lihui 已提交
78 79
fi

L
lihui 已提交
80
lib_files="${build_dir}/lib/libtaos.so.${version}"
81
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
82 83 84 85 86 87
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

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

Z
change  
zyyang 已提交
91 92
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
93 94
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
95 96 97 98

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
Z
change  
zyyang 已提交
99
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/${configFile} ${install_dir}/cfg/${configFile}
100

101
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
Z
change  
zyyang 已提交
102
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
103 104 105
fi

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

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

113
if [ -f "${cfg_dir}/tarbitratord.service" ]; then
Z
change  
zyyang 已提交
114
  cp ${cfg_dir}/tarbitratord.service ${install_dir}/cfg || :
115
fi
haoranc's avatar
change  
haoranc 已提交
116

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

H
Hui Li 已提交
121
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
Z
change  
zyyang 已提交
122 123
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 已提交
124 125
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 已提交
126

Z
zyyang 已提交
127 128 129 130 131 132 133 134 135 136 137
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}
138 139
  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 已提交
140 141
fi

142
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
143 144 145 146 147
  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/* || :

Z
zyyang 已提交
148 149
  if [ -f ${top_dir}/src/kit/taos-tools/packaging/tools/install-${toolsName}.sh ]; then
    cp ${top_dir}/src/kit/taos-tools/packaging/tools/install-${toolsName}.sh \
Z
change  
zyyang 已提交
150
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
151 152
      chmod a+x ${taostools_install_dir}/install-${toolsName}.sh ||
      echo -e "failed to copy install-${toolsName}.sh"
Z
change  
zyyang 已提交
153
  else
Z
zyyang 已提交
154
    echo -e "install-${toolsName}.sh not found"
Z
change  
zyyang 已提交
155 156
  fi

Z
zyyang 已提交
157 158
  if [ -f ${top_dir}/src/kit/taos-tools/packaging/tools/uninstall-${toolsName}.sh ]; then
    cp ${top_dir}/src/kit/taos-tools/packaging/tools/uninstall-${toolsName}.sh \
159
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
160 161
      chmod a+x ${taostools_install_dir}/uninstall-${toolsName}.sh ||
      echo -e "failed to copy uninstall-${toolsName}.sh"
162
  else
Z
zyyang 已提交
163
    echo -e "uninstall-${toolsName}.sh not found"
164 165
  fi

Z
change  
zyyang 已提交
166 167 168 169 170
  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
171 172
fi

173
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
  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
204 205
fi

S
slguan 已提交
206
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
207 208 209 210 211 212 213 214 215 216 217 218 219
  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 已提交
220 221
fi

H
hzcheng 已提交
222
cd ${install_dir}
Z
change  
zyyang 已提交
223
tar -zcv -f ${tarName} * --remove-files || :
L
lihui 已提交
224 225
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
226
  echo "tar ${tarName} error !!!"
Z
change  
zyyang 已提交
227
  exit $exitcode
L
lihui 已提交
228
fi
H
hzcheng 已提交
229 230

cd ${curr_dir}
S
slguan 已提交
231 232
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
233 234
  sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
L
lihui 已提交
235 236
fi
if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
237 238
  sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
S
slguan 已提交
239 240
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
241

242 243 244 245 246 247 248 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

    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 已提交
274
  fi
L
lihui 已提交
275
fi
276

H
hzcheng 已提交
277
# Copy driver
Z
change  
zyyang 已提交
278
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
279 280

# Copy connector
281 282 283 284 285 286 287 288 289 290 291 292
#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 已提交
293
# Copy release note
L
lihui 已提交
294
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
295 296 297

# exit 1

298
cd ${release_dir}
L
lihui 已提交
299

300 301 302
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

303 304
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

305 306 307 308 309 310 311 312
# 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 已提交
313

haoranc's avatar
haoranc 已提交
314
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
315
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
316
  taostools_pkg_name=${taostools_install_dir}-${verType}-${osType}-${cpuType}
317 318
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
319
  taostools_pkg_name=${taostools_pkg_name}
L
lihui 已提交
320 321 322 323 324
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

325 326 327 328
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

329
tar -zcv -f "$(basename ${pkg_name}).tar.gz" "$(basename ${install_dir})" --remove-files || :
L
lihui 已提交
330 331
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
332 333
  echo "tar ${pkg_name}.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
334
fi
L
lihui 已提交
335

336
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
337 338 339 340 341 342
  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
343 344
fi

L
lihui 已提交
345
cd ${curr_dir}