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

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

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

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

33
# Directories and files
L
lihui 已提交
34
if [ "$pagMode" == "lite" ]; then
35
  strip ${build_dir}/bin/taosd
L
lihui 已提交
36 37
  strip ${build_dir}/bin/taos
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh"
38
else
39
  bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${build_dir}/bin/taosdump ${build_dir}/bin/taosdemo ${build_dir}/bin/tarbitrator\
40
             ${script_dir}/remove.sh ${script_dir}/set_core.sh ${script_dir}/startPre.sh  ${script_dir}/taosd-dump-cfg.gdb"
L
lihui 已提交
41 42
fi

L
lihui 已提交
43
lib_files="${build_dir}/lib/libtaos.so.${version}"
L
lihui 已提交
44
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taoserror.h"
45 46 47 48 49 50
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi

L
lihui 已提交
51
install_files="${script_dir}/install.sh"
L
lihui 已提交
52
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
H
hzcheng 已提交
53 54 55 56 57 58 59 60

# 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 已提交
61 62
init_file_deb=${script_dir}/../deb/taosd
init_file_rpm=${script_dir}/../rpm/taosd
H
Hui Li 已提交
63 64
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
H
hzcheng 已提交
65 66 67 68

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
L
lihui 已提交
69
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
H
Hui Li 已提交
70
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
L
lihui 已提交
71 72
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 已提交
73 74
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 已提交
75

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
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 已提交
109
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
110 111
    sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >> remove_temp.sh
    mv remove_temp.sh ${install_dir}/bin/remove.sh
112

S
slguan 已提交
113 114 115 116 117 118 119 120 121 122 123 124
    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 已提交
125
cd ${install_dir}
S
slguan 已提交
126
tar -zcv -f taos.tar.gz * --remove-files  || :
L
lihui 已提交
127 128 129 130 131
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar taos.tar.gz error !!!"
    exit $exitcode
fi
H
hzcheng 已提交
132 133

cd ${curr_dir}
S
slguan 已提交
134 135
cp ${install_files} ${install_dir}
if [ "$verMode" == "cluster" ]; then
L
lihui 已提交
136 137 138 139 140 141
    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 已提交
142 143
fi
chmod a+x ${install_dir}/install.sh
H
hzcheng 已提交
144 145 146

# Copy example code
mkdir -p ${install_dir}/examples
L
lihui 已提交
147
examples_dir="${top_dir}/tests/examples"
L
lihui 已提交
148 149
  cp -r ${examples_dir}/c      ${install_dir}/examples
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
Z
zyyang 已提交
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
  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
168

L
lihui 已提交
169 170 171 172 173
  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 已提交
174 175
  cp -r ${examples_dir}/nodejs ${install_dir}/examples
  cp -r ${examples_dir}/C#     ${install_dir}/examples
L
lihui 已提交
176
fi
H
hzcheng 已提交
177
# Copy driver
178
mkdir -p ${install_dir}/driver
H
hzcheng 已提交
179 180 181 182 183
cp ${lib_files} ${install_dir}/driver

# Copy connector
connector_dir="${code_dir}/connector"
mkdir -p ${install_dir}/connector
L
lihui 已提交
184
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
P
plum-lihui 已提交
185
  cp ${build_dir}/lib/*.jar            ${install_dir}/connector ||:
Z
zyyang 已提交
186 187 188 189 190 191 192 193 194 195 196
  if [ -d "${connector_dir}/grafanaplugin/dist" ]; then
    cp -r ${connector_dir}/grafanaplugin/dist ${install_dir}/connector/grafanaplugin
  else
    echo "WARNING: grafanaplugin bundled dir not found, please check if you want to use it!"
  fi
  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
H
Hui Li 已提交
197
  cp -r ${connector_dir}/nodejs        ${install_dir}/connector
L
lihui 已提交
198
fi
H
hzcheng 已提交
199
# Copy release note
L
lihui 已提交
200
# cp ${script_dir}/release_note ${install_dir}
H
hzcheng 已提交
201 202 203

# exit 1

204
cd ${release_dir}
L
lihui 已提交
205 206

if [ "$verMode" == "cluster" ]; then
H
Hui Li 已提交
207
  pkg_name=${install_dir}-${osType}-${cpuType}
L
lihui 已提交
208
elif [ "$verMode" == "edge" ]; then
H
Hui Li 已提交
209
  pkg_name=${install_dir}-${osType}-${cpuType}
L
lihui 已提交
210
else
L
lihui 已提交
211
  echo "unknow verMode, nor cluster or edge"
L
lihui 已提交
212
  exit 1
L
lihui 已提交
213
fi
H
hzcheng 已提交
214

L
lihui 已提交
215 216 217 218
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

L
lihui 已提交
219 220
if [ "$verType" == "beta" ]; then
  pkg_name=${pkg_name}-${verType}
221 222
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
L
lihui 已提交
223 224 225 226 227
else
  echo "unknow verType, nor stabel or beta"
  exit 1
fi

S
slguan 已提交
228
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
L
lihui 已提交
229 230 231 232 233
exitcode=$?
if [ "$exitcode" != "0" ]; then
    echo "tar ${pkg_name}.tar.gz error !!!"
    exit $exitcode
fi
L
lihui 已提交
234

L
lihui 已提交
235
cd ${curr_dir}