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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

139 140 141 142 143 144 145 146 147
  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 已提交
148 149 150 151 152
  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
153 154
fi

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

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

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

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

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

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

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

# exit 1

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

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

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

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

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

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

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

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

L
lihui 已提交
324
cd ${curr_dir}