makepkg.sh 11.7 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
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

# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

L
lihui 已提交
27
#package_name='linux'
S
slguan 已提交
28
if [ "$verMode" == "cluster" ]; then
H
Hui Li 已提交
29
    install_dir="${release_dir}/TDengine-enterprise-server-${version}"
S
slguan 已提交
30
else
H
Hui Li 已提交
31
    install_dir="${release_dir}/TDengine-server-${version}"
S
slguan 已提交
32
fi
H
hzcheng 已提交
33

34 35 36 37 38
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}')
39
    taostools_install_dir="${release_dir}/taosTools-${taostools_ver}"
40 41 42

    cd ${curr_dir}
else
43
    taostools_install_dir="${release_dir}/taosTools-${version}"
44 45
fi

46
# Directories and files
L
lihui 已提交
47
if [ "$pagMode" == "lite" ]; then
48
  strip ${build_dir}/bin/taosd
L
lihui 已提交
49
  strip ${build_dir}/bin/taos
50
  # lite version doesn't include taosadapter,  which will lead to no restful interface
51
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh ${script_dir}/startPre.sh"
52
  taostools_bin_files=""
53
else
54 55
  bin_files="${build_dir}/bin/taosd \
      ${build_dir}/bin/taos \
56
      ${build_dir}/bin/taosadapter \
57 58 59
      ${build_dir}/bin/tarbitrator\
      ${script_dir}/remove.sh \
      ${script_dir}/set_core.sh \
60
      ${script_dir}/run_taosd.sh \
61 62
      ${script_dir}/startPre.sh \
      ${script_dir}/taosd-dump-cfg.gdb"
63 64 65

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

L
lihui 已提交
68
lib_files="${build_dir}/lib/libtaos.so.${version}"
69
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
70 71 72 73 74 75
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

L
lihui 已提交
76
install_files="${script_dir}/install.sh"
L
lihui 已提交
77
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
78 79 80 81 82 83 84 85

# 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 已提交
86 87
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
88 89
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
90 91 92 93

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

96

97 98 99 100 101 102 103
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
104

105 106 107 108 109 110 111 112 113 114
if [ -f "${cfg_dir}/taosd.service" ]; then
    cp ${cfg_dir}/taosd.service          ${install_dir}/cfg || :
fi
if [ -f "${cfg_dir}/tarbitratord.service" ]; then
    cp ${cfg_dir}/tarbitratord.service          ${install_dir}/cfg || :
fi
if [ -f "${cfg_dir}/nginxd.service" ]; then
    cp ${cfg_dir}/nginxd.service          ${install_dir}/cfg || :
fi

H
Hui Li 已提交
115
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
L
lihui 已提交
116 117
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 已提交
118 119
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 已提交
120

121 122 123 124 125
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/* || :
126 127 128
#    [ -f ${taostools_install_dir}/bin/taosBenchmark ] && \
#        ln -sf ${taostools_install_dir}/bin/taosBenchmark \
#        ${taostools_install_dir}/bin/taosdemo
129 130 131 132

    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 \
133
            && chmod a+x ${taostools_install_dir}/install-taostools.sh \
134 135 136 137
            || echo -e "failed to copy install-taostools.sh"
    else
        echo -e "install-taostools.sh not found"
    fi
138 139 140 141 142 143 144 145 146
    
    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
147 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 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 186 187
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 已提交
188
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
189 190
    sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >> remove_temp.sh
    mv remove_temp.sh ${install_dir}/bin/remove.sh
191

S
slguan 已提交
192 193 194 195 196 197 198 199 200 201 202 203
    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 已提交
204
cd ${install_dir}
S
slguan 已提交
205
tar -zcv -f taos.tar.gz * --remove-files  || :
L
lihui 已提交
206 207 208 209 210
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar taos.tar.gz error !!!"
    exit $exitcode
fi
H
hzcheng 已提交
211 212

cd ${curr_dir}
S
slguan 已提交
213 214
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
215 216 217 218 219 220
    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 已提交
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"
L
lihui 已提交
227 228
  cp -r ${examples_dir}/c      ${install_dir}/examples
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

L
lihui 已提交
248 249 250 251 252
  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 已提交
253 254
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
  cp -r ${examples_dir}/C#     ${install_dir}/examples
L
lihui 已提交
255
fi
H
hzcheng 已提交
256
# Copy driver
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 311 312 313
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar ${pkg_name}.tar.gz error !!!"
    exit $exitcode
fi
L
lihui 已提交
314

315
if [ -n "${taostools_bin_files}" ]; then
316
    tar -zcv -f "$(basename ${taostools_pkg_name}).tar.gz" "$(basename ${taostools_install_dir})" --remove-files || :
317 318 319 320 321 322 323
    exitcode=$?
    if [ "$exitcode" != "0" ]; then
        echo "tar ${taostools_pkg_name}.tar.gz error !!!"
        exit $exitcode
    fi
fi

L
lihui 已提交
324
cd ${curr_dir}