makepkg.sh 11.7 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 23 24 25 26 27

# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

Z
change  
zyyang 已提交
28 29
if [ $dbName == "power" ]; then
  productName="PowerDB"
Z
change  
zyyang 已提交
30 31 32 33
  serverName="powerd"
  clientName="power"
  cfgDirName="power.cfg"
  tarName="power.tar.gz"
Z
change  
zyyang 已提交
34 35
elif [ $dbName == "tq" ]; then
  productName="TQ"
Z
change  
zyyang 已提交
36 37 38 39
  serverName="tqd"
  clientName="tq"
  cfgDirName="tq.cfg"
  tarName="tq.tar.gz"
Z
change  
zyyang 已提交
40 41
elif [ $dbName == "pro" ]; then
  productName="ProDB"
Z
change  
zyyang 已提交
42 43 44 45
  serverName="prodbs"
  clientName="prodbc"
  cfgDirName="prodb.cfg"
  tarName="prodb.tar.gz"
Z
change  
zyyang 已提交
46 47
elif [ $dbName == "kh" ]; then
  productName="KingHistorian"
Z
change  
zyyang 已提交
48 49 50 51
  serverName="khserver"
  clientName="khclient"
  cfgDirName="kinghistorian.cfg"
  tarName="kinghistorian.tar.gz"
Z
change  
zyyang 已提交
52 53
elif [ $dbName == "jh" ]; then
  productName="jh_iot"
Z
change  
zyyang 已提交
54 55 56 57
  serverName="jh_taosd"
  clientName="jh_taos"
  cfgDirName="jh_taos.cfg"
  tarName="jh_taos.tar.gz"
Z
change  
zyyang 已提交
58 59
else
  productName="TDengine"
Z
change  
zyyang 已提交
60 61 62 63
  serverName="taosd"
  clientName="taos"
  cfgDirName="taos.cfg"
  tarName="taos.tar.gz"
Z
change  
zyyang 已提交
64 65
fi

L
lihui 已提交
66
#package_name='linux'
S
slguan 已提交
67
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
68
  install_dir="${release_dir}/${productName}-enterprise-server-${version}"
S
slguan 已提交
69
else
Z
change  
zyyang 已提交
70
  install_dir="${release_dir}/${productName}-server-${version}"
S
slguan 已提交
71
fi
H
hzcheng 已提交
72

73
if [ -d ${top_dir}/src/kit/taos-tools/packaging/deb ]; then
Z
change  
zyyang 已提交
74 75
  cd ${top_dir}/src/kit/taos-tools/packaging/deb
  [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0"
76

Z
change  
zyyang 已提交
77 78
  taostools_ver=$(git describe --tags | sed -e 's/ver-//g' | awk -F '-' '{print $1}')
  taostools_install_dir="${release_dir}/${productName}-tools-${taostools_ver}"
79

Z
change  
zyyang 已提交
80
  cd ${curr_dir}
81
else
Z
change  
zyyang 已提交
82
  taostools_install_dir="${release_dir}/${productName}-tools-${version}"
83 84
fi

85
# Directories and files
L
lihui 已提交
86
if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
87
  strip ${build_dir}/bin/${serverName}
L
lihui 已提交
88
  strip ${build_dir}/bin/taos
89
  # lite version doesn't include taosadapter,  which will lead to no restful interface
Z
change  
zyyang 已提交
90
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh"
91
  taostools_bin_files=""
92
else
Z
change  
zyyang 已提交
93 94
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
95
      ${build_dir}/bin/taosadapter \
96 97 98
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
99
      ${script_dir}/run_taosd.sh \
100 101
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
102 103 104

  taostools_bin_files=" ${build_dir}/bin/taosdump \
      ${build_dir}/bin/taosBenchmark"
L
lihui 已提交
105 106
fi

L
lihui 已提交
107
lib_files="${build_dir}/lib/libtaos.so.${version}"
108
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
109 110 111 112 113 114
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

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

Z
change  
zyyang 已提交
118 119
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
120 121
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
122 123 124 125

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

128
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
Z
change  
zyyang 已提交
129
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
130 131 132
fi

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

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

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

144
if [ -f "${cfg_dir}/nginxd.service" ]; then
Z
change  
zyyang 已提交
145
  cp ${cfg_dir}/nginxd.service ${install_dir}/cfg || :
146 147
fi

H
Hui Li 已提交
148
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
Z
change  
zyyang 已提交
149 150
mkdir -p ${install_dir}/init.d && cp ${init_file_deb} ${install_dir}/init.d/${clientName}.deb
mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/${clientName}.rpm
H
Hui Li 已提交
151 152
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 已提交
153

154
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
  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/* || :
  [ -f ${taostools_install_dir}/bin/taosBenchmark ] &&
    ln -sf ${taostools_install_dir}/bin/taosBenchmark \
      ${taostools_install_dir}/bin/taosdemo

  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 ${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
177 178
fi

179
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
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 205 206 207 208 209
  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
210 211
fi

S
slguan 已提交
212
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
213 214 215 216 217 218 219 220 221 222 223 224 225
  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 已提交
226 227
fi

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

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

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

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

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

# exit 1

301
cd ${release_dir}
L
lihui 已提交
302

303 304 305
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

306 307
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

308 309 310 311 312 313 314 315
# 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 已提交
316

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

328 329 330 331
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

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

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

L
lihui 已提交
348
cd ${curr_dir}