makepkg.sh 11.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
change  
zyyang 已提交
31

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

125
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
126 127 128 129 130
  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 已提交
131 132
  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 已提交
133
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
134 135
      chmod a+x ${taostools_install_dir}/install-${toolsName}.sh ||
      echo -e "failed to copy install-${toolsName}.sh"
Z
change  
zyyang 已提交
136
  else
Z
zyyang 已提交
137
    echo -e "install-${toolsName}.sh not found"
Z
change  
zyyang 已提交
138 139
  fi

Z
zyyang 已提交
140 141
  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 \
142
      ${taostools_install_dir}/ >/dev/null &&
Z
zyyang 已提交
143 144
      chmod a+x ${taostools_install_dir}/uninstall-${toolsName}.sh ||
      echo -e "failed to copy uninstall-${toolsName}.sh"
145
  else
Z
zyyang 已提交
146
    echo -e "uninstall-${toolsName}.sh not found"
147 148
  fi

Z
change  
zyyang 已提交
149 150 151 152 153
  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
154 155
fi

156
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
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 184 185 186
  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
187 188
fi

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

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

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

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

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

# Copy connector
261 262 263 264 265 266 267 268 269 270 271 272
#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 已提交
273
# Copy release note
L
lihui 已提交
274
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
275 276 277

# exit 1

278
cd ${release_dir}
L
lihui 已提交
279

280 281 282
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

283 284
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

285 286 287 288 289 290 291 292
# 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 已提交
293

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

305 306 307 308
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

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

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

L
lihui 已提交
325
cd ${curr_dir}