makepkg.sh 12.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
H
hzcheng 已提交
18 19

script_dir="$(dirname $(readlink -f $0))"
F
Frozen 已提交
20
top_dir="$(readlink -f ${script_dir}/../..)"
H
hzcheng 已提交
21

22 23 24 25 26 27
productName="TDengine"
serverName="taosd"
clientName="taos"
configFile="taos.cfg"
tarName="taos.tar.gz"

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

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

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

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

    cd ${curr_dir}
else
49
    taostools_install_dir="${release_dir}/taosTools-${version}"
50 51
fi

52
# Directories and files
L
lihui 已提交
53
if [ "$pagMode" == "lite" ]; then
54 55
  strip ${build_dir}/bin/${serverName}
  strip ${build_dir}/bin/${clientName}
56
  # lite version doesn't include taosadapter,  which will lead to no restful interface
57
  bin_files="${build_dir}/bin/${serverName} ${build_dir}/bin/${clientName} ${script_dir}/remove.sh ${script_dir}/startPre.sh ${build_dir}/bin/taosBenchmark"
58
  taostools_bin_files=""
59
else
60 61 62 63 64 65

  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"

  taostools_bin_files=" ${build_dir}/bin/taosdump \
66
      ${build_dir}/bin/taosBenchmark \
67 68
      ${build_dir}/bin/TDinsight.sh "

69 70
  bin_files="${build_dir}/bin/${serverName} \
      ${build_dir}/bin/${clientName} \
71
      ${build_dir}/bin/taosBenchmark \
72 73
      ${build_dir}/bin/taosdump \
      ${build_dir}/bin/TDinsight.sh \
74
      ${taostools_bin_files} \
75
      ${build_dir}/bin/taosadapter \
76 77 78
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
79
      ${script_dir}/run_taosd_and_taosadapter.sh \
80 81
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
82 83
fi

L
lihui 已提交
84
lib_files="${build_dir}/lib/libtaos.so.${version}"
85
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
86 87

if [ "$dbName" != "taos" ]; then
88 89 90 91 92
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

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

L
lihui 已提交
96 97
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
98 99
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
100 101 102 103

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
104
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/${configFile} ${install_dir}/cfg/${configFile}
105

106

107 108 109 110 111 112 113
if [ -f "${compile_dir}/test/cfg/taosadapter.toml" ]; then
    cp ${compile_dir}/test/cfg/taosadapter.toml                 ${install_dir}/cfg || :
fi

if [ -f "${compile_dir}/test/cfg/taosadapter.service" ]; then
    cp ${compile_dir}/test/cfg/taosadapter.service          ${install_dir}/cfg || :
fi
114

115 116
if [ -f "${cfg_dir}/${serverName}.service" ]; then
    cp ${cfg_dir}/${serverName}.service          ${install_dir}/cfg || :
117
fi
118

119 120
if [ -f "${top_dir}/packaging/cfg/tarbitratord.service" ]; then
  cp ${top_dir}/packaging/cfg/tarbitratord.service ${install_dir}/cfg || :
121
fi
122

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

H
Hui Li 已提交
127
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
128 129
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 已提交
130 131
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 已提交
132

133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
#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/* || :

#    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 ${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

#    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
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 193 194 195 196
if [ -f ${build_dir}/bin/jemalloc-config ]; then
    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
fi

S
slguan 已提交
197
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
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
200

S
slguan 已提交
201 202 203 204 205 206 207 208 209 210 211 212
    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
fi

H
hzcheng 已提交
213
cd ${install_dir}
214
tar -zcv -f ${tarName} * --remove-files  || :
L
lihui 已提交
215 216
exitcode=$?
if [ "$exitcode" != "0" ]; then
217
    echo "tar ${tarName} error !!!"
L
lihui 已提交
218 219
    exit $exitcode
fi
H
hzcheng 已提交
220 221

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

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

L
lihui 已提交
257 258 259 260 261
  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
H
Hui Li 已提交
262 263
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
  cp -r ${examples_dir}/C#     ${install_dir}/examples
L
lihui 已提交
264
fi
H
hzcheng 已提交
265
# Copy driver
266
mkdir -p ${install_dir}/driver && cp ${lib_files} ${install_dir}/driver && echo "${versionComp}" > ${install_dir}/driver/vercomp.txt
H
hzcheng 已提交
267 268

# Copy connector
269 270 271 272 273 274 275 276 277 278 279 280
#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 已提交
281
# Copy release note
L
lihui 已提交
282
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
283 284 285

# exit 1

286
cd ${release_dir}
L
lihui 已提交
287

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

291 292
taostools_pkg_name=${taostools_install_dir}-${osType}-${cpuType}

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

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

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

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

324 325 326 327 328 329 330 331 332
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
333

L
lihui 已提交
334
cd ${curr_dir}