makepkg.sh 13.3 KB
Newer Older
H
hzcheng 已提交
1 2
#!/bin/bash
#
L
lihui 已提交
3 4 5
# Generate tar.gz package for all os system

set -e
6
#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
zyyang 已提交
31 32
adapterName="taosadapter"
defaultPasswd="taosdata"
Z
change  
zyyang 已提交
33

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

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

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

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

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

58
# Directories and files
L
lihui 已提交
59
if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
60
  strip ${build_dir}/bin/${serverName}
Z
change  
zyyang 已提交
61
  strip ${build_dir}/bin/${clientName}
62
  # lite version doesn't include taosadapter,  which will lead to no restful interface
T
taos-support 已提交
63
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh ${build_dir}/bin/${benchmarkName}"
64
  taostools_bin_files=""
65
else
66 67 68 69 70

  wget https://github.com/taosdata/grafanaplugin/releases/latest/download/TDinsight.sh -O ${build_dir}/bin/TDinsight.sh \
      && echo "TDinsight.sh downloaded!" \
      || echo "failed to download TDinsight.sh"

T
taos-support 已提交
71 72
  taostools_bin_files=" ${build_dir}/bin/${dumpName} \
      ${build_dir}/bin/${benchmarkName} \
73 74
      ${build_dir}/bin/TDinsight.sh "

Z
change  
zyyang 已提交
75
#!!! do not change taosadapter here
Z
change  
zyyang 已提交
76 77
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
78
      ${taostools_bin_files} \
Z
change  
zyyang 已提交
79
      ${build_dir}/bin/taosadapter \
80 81 82
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
Z
change  
zyyang 已提交
83
      ${script_dir}/run_taosd_and_taosadapter.sh \
84 85
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
86 87
fi

L
lihui 已提交
88
lib_files="${build_dir}/lib/libtaos.so.${version}"
89
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
90 91

if [ "$dbName" != "taos" ]; then
92 93 94 95 96
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

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

Z
change  
zyyang 已提交
100 101
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
102 103
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
104 105 106 107

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

Y
update  
yangchen 已提交
110 111
if [ -f "${compile_dir}/test/cfg/${adapterName}.toml" ]; then
  cp ${compile_dir}/test/cfg/${adapterName}.toml ${install_dir}/cfg || :
112 113
fi

Y
update  
yangchen 已提交
114 115
if [ -f "${compile_dir}/test/cfg/${adapterName}.service" ]; then
  cp ${compile_dir}/test/cfg/${adapterName}.service ${install_dir}/cfg || :
116
fi
117

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

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

126 127
if [ -f "${top_dir}/packaging/cfg/nginxd.service" ]; then
  cp ${top_dir}/packaging/cfg/nginxd.service ${install_dir}/cfg || :
128 129
fi

H
Hui Li 已提交
130
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
Z
change  
zyyang 已提交
131 132
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 已提交
133 134
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 已提交
135

Y
update  
yangchen 已提交
136 137
if [ $adapterName != "${adapterName}" ]; then
  mv ${install_dir}/cfg/${adapterName}.toml ${install_dir}/cfg/$adapterName.toml
Z
zyyang 已提交
138 139 140
  sed -i "s/path = \"\/var\/log\/taos\"/path = \"\/var\/log\/${productName}\"/g" ${install_dir}/cfg/$adapterName.toml
  sed -i "s/password = \"taosdata\"/password = \"${defaultPasswd}\"/g" ${install_dir}/cfg/$adapterName.toml

Y
update  
yangchen 已提交
141
  mv ${install_dir}/cfg/${adapterName}.service ${install_dir}/cfg/$adapterName.service
Z
zyyang 已提交
142 143 144 145 146
  sed -i "s/TDengine/${productName}/g" ${install_dir}/cfg/$adapterName.service
  sed -i "s/taosAdapter/${adapterName}/g" ${install_dir}/cfg/$adapterName.service
  sed -i "s/taosadapter/${adapterName}/g" ${install_dir}/cfg/$adapterName.service

  mv ${install_dir}/bin/taosadapter ${install_dir}/bin/${adapterName}
147 148
  mv ${install_dir}/bin/run_taosd_and_taosadapter.sh ${install_dir}/bin/run_${serverName}_and_${adapterName}.sh
  mv ${install_dir}/bin/taosd-dump-cfg.gdb ${install_dir}/bin/${serverName}-dump-cfg.gdb
Z
zyyang 已提交
149 150
fi

151 152 153 154 155 156
if [ -n "${taostools_bin_files}" ]; then
    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/* || :

T
taos-support 已提交
157 158
    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 \
159
            ${taostools_install_dir}/ > /dev/null \
T
taos-support 已提交
160 161
            && chmod a+x ${taostools_install_dir}/install-${toolsName}.sh \
            || echo -e "failed to copy install-${toolsName}.sh"
162
    else
T
taos-support 已提交
163
        echo -e "install-${toolsName}.sh not found"
164 165
    fi

T
taos-support 已提交
166 167
    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 \
168
            ${taostools_install_dir}/ > /dev/null \
T
taos-support 已提交
169 170
            && chmod a+x ${taostools_install_dir}/uninstall-${toolsName}.sh \
            || echo -e "failed to copy uninstall-${toolsName}.sh"
171
    else
T
taos-support 已提交
172
        echo -e "uninstall-${toolsName}.sh not found"
173 174 175 176 177 178 179 180
    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
fi
181

182
if [ -f ${build_dir}/bin/jemalloc-config ]; then
Z
change  
zyyang 已提交
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 210 211 212
  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
213 214
fi

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

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

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

251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
if [[ $dbName == "taos" ]]; then
  # Copy example code
  mkdir -p ${install_dir}/examples
  examples_dir="${top_dir}/examples"
  cp -r ${examples_dir}/c ${install_dir}/examples
  if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
    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

    cp -r ${examples_dir}/JDBC ${install_dir}/examples
    cp -r ${examples_dir}/matlab ${install_dir}/examples
    cp -r ${examples_dir}/python ${install_dir}/examples
    cp -r ${examples_dir}/R ${install_dir}/examples
    cp -r ${examples_dir}/go ${install_dir}/examples
    cp -r ${examples_dir}/nodejs ${install_dir}/examples
    cp -r ${examples_dir}/C# ${install_dir}/examples
283
    mkdir -p ${install_dir}/examples/taosbenchmark-json && cp ${examples_dir}/../src/kit/taos-tools/example/* ${install_dir}/examples/taosbenchmark-json
Z
zyyang 已提交
284
  fi
L
lihui 已提交
285
fi
286

H
hzcheng 已提交
287
# Copy driver
Z
change  
zyyang 已提交
288
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" >${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
289 290

# Copy connector
291 292 293 294 295 296 297 298 299 300 301 302
#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 已提交
303
# Copy release note
L
lihui 已提交
304
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
305 306 307

# exit 1

308
cd ${release_dir}
L
lihui 已提交
309

310 311 312
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

313 314
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

315 316 317 318 319 320 321 322
# 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 已提交
323

haoranc's avatar
haoranc 已提交
324
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
325
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
326
  taostools_pkg_name=${taostools_install_dir}-${verType}-${osType}-${cpuType}
327 328
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
329
  taostools_pkg_name=${taostools_pkg_name}
L
lihui 已提交
330 331 332 333 334
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

335 336 337 338
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

339
tar -zcv -f "$(basename ${pkg_name}).tar.gz" "$(basename ${install_dir})" --remove-files || :
L
lihui 已提交
340 341
exitcode=$?
if [ "$exitcode" != "0" ]; then
Z
change  
zyyang 已提交
342 343
  echo "tar ${pkg_name}.tar.gz error !!!"
  exit $exitcode
L
lihui 已提交
344
fi
L
lihui 已提交
345

346 347 348 349 350 351 352 353 354
if [ -n "${taostools_bin_files}" ]; then
    wget https://github.com/taosdata/grafanaplugin/releases/latest/download/TDinsight.sh -O ${taostools_install_dir}/bin/TDinsight.sh && echo "TDinsight.sh downloaded!"|| echo "failed to download TDinsight.sh"
    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
fi
355

Y
change  
yangchen 已提交
356
cd ${curr_dir}