makepkg.sh 11.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 28
productName="TDengine"
serverName="taosd"
clientName="taos"
configFile="taos.cfg"
tarName="taos.tar.gz"

H
hzcheng 已提交
29 30 31 32 33
# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

L
lihui 已提交
34
#package_name='linux'
S
slguan 已提交
35
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
36
  install_dir="${release_dir}/${productName}-enterprise-server-${version}"
S
slguan 已提交
37
else
Z
change  
zyyang 已提交
38
  install_dir="${release_dir}/${productName}-server-${version}"
S
slguan 已提交
39
fi
H
hzcheng 已提交
40

41
if [ -d ${top_dir}/src/kit/taos-tools/packaging/deb ]; then
Z
change  
zyyang 已提交
42 43
  cd ${top_dir}/src/kit/taos-tools/packaging/deb
  [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0"
44

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

Z
change  
zyyang 已提交
48
  cd ${curr_dir}
49
else
50
  taostools_install_dir="${release_dir}/${clientName}Tools-${version}"
51 52
fi

53
# Directories and files
L
lihui 已提交
54
if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
55
  strip ${build_dir}/bin/${serverName}
Z
change  
zyyang 已提交
56
  strip ${build_dir}/bin/${clientName}
57
  # lite version doesn't include taosadapter,  which will lead to no restful interface
Z
change  
zyyang 已提交
58
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh"
59
  taostools_bin_files=""
60
else
Z
change  
zyyang 已提交
61 62
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
63
      ${build_dir}/bin/taosadapter \
64 65 66
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
67
      ${script_dir}/run_taosd.sh \
68 69
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
70 71 72

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

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

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

Z
change  
zyyang 已提交
86 87
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
88 89
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
90 91 92 93

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

96
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
Z
change  
zyyang 已提交
97
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
98 99 100
fi

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

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

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

112
if [ -f "${cfg_dir}/nginxd.service" ]; then
Z
change  
zyyang 已提交
113
  cp ${cfg_dir}/nginxd.service ${install_dir}/cfg || :
114 115
fi

H
Hui Li 已提交
116
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
Z
change  
zyyang 已提交
117 118
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 已提交
119 120
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 已提交
121

122
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
123 124 125 126 127 128 129 130 131 132 133 134 135 136
  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

137 138 139 140 141 142 143 144 145
  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

Z
change  
zyyang 已提交
146 147 148 149 150
  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
151 152
fi

153
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
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 180 181 182 183
  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
184 185
fi

S
slguan 已提交
186
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
187 188 189 190 191 192 193 194 195 196 197 198 199
  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 已提交
200 201
fi

H
hzcheng 已提交
202
cd ${install_dir}
Z
change  
zyyang 已提交
203
tar -zcv -f ${tarName} * --remove-files || :
L
lihui 已提交
204 205
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
206
  echo "tar ${tarName} error !!!"
Z
change  
zyyang 已提交
207
  exit $exitcode
L
lihui 已提交
208
fi
H
hzcheng 已提交
209 210

cd ${curr_dir}
S
slguan 已提交
211 212
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
213 214
  sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
L
lihui 已提交
215 216
fi
if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
217 218
  sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >>install_temp.sh
  mv install_temp.sh ${install_dir}/install.sh
S
slguan 已提交
219 220
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
221 222 223

# Copy example code
mkdir -p ${install_dir}/examples
L
lihui 已提交
224
examples_dir="${top_dir}/tests/examples"
Z
change  
zyyang 已提交
225
cp -r ${examples_dir}/c ${install_dir}/examples
L
lihui 已提交
226
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
zyyang 已提交
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
  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
245

Z
change  
zyyang 已提交
246
  cp -r ${examples_dir}/JDBC ${install_dir}/examples
L
lihui 已提交
247 248
  cp -r ${examples_dir}/matlab ${install_dir}/examples
  cp -r ${examples_dir}/python ${install_dir}/examples
Z
change  
zyyang 已提交
249 250
  cp -r ${examples_dir}/R ${install_dir}/examples
  cp -r ${examples_dir}/go ${install_dir}/examples
H
Hui Li 已提交
251
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
Z
change  
zyyang 已提交
252
  cp -r ${examples_dir}/C# ${install_dir}/examples
L
lihui 已提交
253
fi
H
hzcheng 已提交
254
# Copy driver
Z
change  
zyyang 已提交
255
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
256 257 258 259

# Copy connector
connector_dir="${code_dir}/connector"
mkdir -p ${install_dir}/connector
L
lihui 已提交
260
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
change  
zyyang 已提交
261
  cp ${build_dir}/lib/*.jar ${install_dir}/connector || :
Z
zyyang 已提交
262 263 264 265 266
  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 已提交
267 268
  cp -r ${connector_dir}/python ${install_dir}/connector
  cp -r ${connector_dir}/nodejs ${install_dir}/connector
L
lihui 已提交
269
fi
H
hzcheng 已提交
270
# Copy release note
L
lihui 已提交
271
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
272 273 274

# exit 1

275
cd ${release_dir}
L
lihui 已提交
276

277 278 279
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

280 281
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

282 283 284 285 286 287 288 289
# 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 已提交
290

haoranc's avatar
haoranc 已提交
291
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
292
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
293
  taostools_pkg_name=${taostools_install_dir}-${verType}-${osType}-${cpuType}
294 295
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
296
  taostools_pkg_name=${taostools_pkg_name}
L
lihui 已提交
297 298 299 300 301
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

302 303 304 305
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

306
tar -zcv -f "$(basename ${pkg_name}).tar.gz" "$(basename ${install_dir})" --remove-files || :
L
lihui 已提交
307 308
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
309 310
  echo "tar ${pkg_name}.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
311
fi
L
lihui 已提交
312

313
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
314 315 316 317 318 319
  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
320 321
fi

L
lihui 已提交
322
cd ${curr_dir}