makepkg.sh 12.2 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
zyyang 已提交
109 110


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

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

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

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

Z
zyyang 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141 142
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}
  mv ${install_dir}/bin/run_taosd_and_taosadapter.sh ${install_dir}/bin/run_taosd_and_${adapterName}.sh
fi

143
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
144 145 146 147 148
  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 已提交
149 150
  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 已提交
151
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
152 153
      chmod a+x ${taostools_install_dir}/install-${toolsName}.sh ||
      echo -e "failed to copy install-${toolsName}.sh"
Z
change  
zyyang 已提交
154
  else
Z
zyyang 已提交
155
    echo -e "install-${toolsName}.sh not found"
Z
change  
zyyang 已提交
156 157
  fi

Z
zyyang 已提交
158 159
  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 \
160
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
161 162
      chmod a+x ${taostools_install_dir}/uninstall-${toolsName}.sh ||
      echo -e "failed to copy uninstall-${toolsName}.sh"
163
  else
Z
zyyang 已提交
164
    echo -e "uninstall-${toolsName}.sh not found"
165 166
  fi

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

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

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

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

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

# Copy example code
mkdir -p ${install_dir}/examples
L
lihui 已提交
245
examples_dir="${top_dir}/tests/examples"
Z
change  
zyyang 已提交
246
cp -r ${examples_dir}/c ${install_dir}/examples
L
lihui 已提交
247
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
zyyang 已提交
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
  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
266

Z
change  
zyyang 已提交
267
  cp -r ${examples_dir}/JDBC ${install_dir}/examples
L
lihui 已提交
268 269
  cp -r ${examples_dir}/matlab ${install_dir}/examples
  cp -r ${examples_dir}/python ${install_dir}/examples
Z
change  
zyyang 已提交
270 271
  cp -r ${examples_dir}/R ${install_dir}/examples
  cp -r ${examples_dir}/go ${install_dir}/examples
H
Hui Li 已提交
272
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
Z
change  
zyyang 已提交
273
  cp -r ${examples_dir}/C# ${install_dir}/examples
L
lihui 已提交
274
fi
H
hzcheng 已提交
275
# Copy driver
Z
change  
zyyang 已提交
276
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
277 278

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

# exit 1

296
cd ${release_dir}
L
lihui 已提交
297

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

301 302
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

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

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

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

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

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

L
lihui 已提交
343
cd ${curr_dir}