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 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 30 31 32 33 34 35 36 37 38 39 40 41
if [ $dbName == "power" ]; then
  productName="PowerDB"
elif [ $dbName == "tq" ]; then
  productName="TQ"
elif [ $dbName == "pro" ]; then
  productName="ProDB"
elif [ $dbName == "kh" ]; then
  productName="KingHistorian"
elif [ $dbName == "jh" ]; then
  productName="jh_iot"
else
  productName="TDengine"
fi

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

49
if [ -d ${top_dir}/src/kit/taos-tools/packaging/deb ]; then
Z
change  
zyyang 已提交
50 51
  cd ${top_dir}/src/kit/taos-tools/packaging/deb
  [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0"
52

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

Z
change  
zyyang 已提交
56
  cd ${curr_dir}
57
else
Z
change  
zyyang 已提交
58
  taostools_install_dir="${release_dir}/${productName}-tools-${version}"
59 60
fi

61
# Directories and files
L
lihui 已提交
62
if [ "$pagMode" == "lite" ]; then
63
  strip ${build_dir}/bin/taosd
L
lihui 已提交
64
  strip ${build_dir}/bin/taos
65
  # lite version doesn't include taosadapter,  which will lead to no restful interface
66
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh ${script_dir}/startPre.sh"
67
  taostools_bin_files=""
68
else
69 70
  bin_files="${build_dir}/bin/taosd \
      ${build_dir}/bin/taos \
71
      ${build_dir}/bin/taosadapter \
72 73 74
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
75
      ${script_dir}/run_taosd.sh \
76 77
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
78 79 80

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

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

L
lihui 已提交
91
install_files="${script_dir}/install.sh"
L
lihui 已提交
92
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
93 94 95 96 97 98 99 100

# Init file
#init_dir=${script_dir}/deb
#if [ $package_type = "centos" ]; then
#    init_dir=${script_dir}/rpm
#fi
#init_files=${init_dir}/taosd
# temp use rpm's taosd. TODO: later modify according to os type
L
lihui 已提交
101 102
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
103 104
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
105 106 107 108

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
L
lihui 已提交
109
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
110

111
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
Z
change  
zyyang 已提交
112
  cp ${compile_dir}/test/cfg/taosadapter.toml ${install_dir}/cfg || :
113 114 115
fi

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

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

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

127
if [ -f "${cfg_dir}/nginxd.service" ]; then
Z
change  
zyyang 已提交
128
  cp ${cfg_dir}/nginxd.service ${install_dir}/cfg || :
129 130
fi

H
Hui Li 已提交
131
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
L
lihui 已提交
132 133
mkdir -p ${install_dir}/init.d && cp ${init_file_deb} ${install_dir}/init.d/taosd.deb
mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/taosd.rpm
H
Hui Li 已提交
134 135
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 已提交
136

137
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
  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
160 161
fi

162
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
  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
193 194
fi

S
slguan 已提交
195
if [ "$verMode" == "cluster" ]; then
Z
change  
zyyang 已提交
196 197 198 199 200 201 202 203 204 205 206 207 208
  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 已提交
209 210
fi

H
hzcheng 已提交
211
cd ${install_dir}
Z
change  
zyyang 已提交
212
tar -zcv -f taos.tar.gz * --remove-files || :
L
lihui 已提交
213 214
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
215 216
  echo "tar taos.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
217
fi
H
hzcheng 已提交
218 219

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

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

Z
change  
zyyang 已提交
255
  cp -r ${examples_dir}/JDBC ${install_dir}/examples
L
lihui 已提交
256 257
  cp -r ${examples_dir}/matlab ${install_dir}/examples
  cp -r ${examples_dir}/python ${install_dir}/examples
Z
change  
zyyang 已提交
258 259
  cp -r ${examples_dir}/R ${install_dir}/examples
  cp -r ${examples_dir}/go ${install_dir}/examples
H
Hui Li 已提交
260
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
Z
change  
zyyang 已提交
261
  cp -r ${examples_dir}/C# ${install_dir}/examples
L
lihui 已提交
262
fi
H
hzcheng 已提交
263
# Copy driver
Z
change  
zyyang 已提交
264
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
265 266 267 268

# Copy connector
connector_dir="${code_dir}/connector"
mkdir -p ${install_dir}/connector
L
lihui 已提交
269
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
change  
zyyang 已提交
270
  cp ${build_dir}/lib/*.jar ${install_dir}/connector || :
Z
zyyang 已提交
271 272 273 274 275
  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 已提交
276 277
  cp -r ${connector_dir}/python ${install_dir}/connector
  cp -r ${connector_dir}/nodejs ${install_dir}/connector
L
lihui 已提交
278
fi
H
hzcheng 已提交
279
# Copy release note
L
lihui 已提交
280
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
281 282 283

# exit 1

284
cd ${release_dir}
L
lihui 已提交
285

286 287 288
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

289 290
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

291 292 293 294 295 296 297 298
# 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 已提交
299

haoranc's avatar
haoranc 已提交
300
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
301
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
302
  taostools_pkg_name=${taostools_install_dir}-${verType}-${osType}-${cpuType}
303 304
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
305
  taostools_pkg_name=${taostools_pkg_name}
L
lihui 已提交
306 307 308 309 310
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

311 312 313 314
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

315
tar -zcv -f "$(basename ${pkg_name}).tar.gz" "$(basename ${install_dir})" --remove-files || :
L
lihui 已提交
316 317
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
318 319
  echo "tar ${pkg_name}.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
320
fi
L
lihui 已提交
321

322
if [ -n "${taostools_bin_files}" ]; then
Z
change  
zyyang 已提交
323 324 325 326 327 328
  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
329 330
fi

L
lihui 已提交
331
cd ${curr_dir}