Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
3700552e
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3700552e
编写于
12月 28, 2019
作者:
L
lihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TBASE-1420]
上级
b0c839de
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
195 addition
and
88 deletion
+195
-88
CMakeLists.txt
CMakeLists.txt
+26
-24
packaging/deb/makedeb.sh
packaging/deb/makedeb.sh
+23
-10
packaging/release.sh
packaging/release.sh
+59
-21
packaging/rpm/makerpm.sh
packaging/rpm/makerpm.sh
+24
-6
packaging/tools/makeclient.sh
packaging/tools/makeclient.sh
+34
-17
packaging/tools/makepkg.sh
packaging/tools/makepkg.sh
+29
-10
未找到文件。
CMakeLists.txt
浏览文件 @
3700552e
...
...
@@ -41,33 +41,35 @@ IF (NOT DEFINED TD_CLUSTER)
SET
(
TD_ARM FALSE
)
SET
(
TD_ARM_64 FALSE
)
SET
(
TD_ARM_32 FALSE
)
SET
(
TD_MIPS FALSE
)
SET
(
TD_MIPS_64 FALSE
)
SET
(
TD_MIPS_32 FALSE
)
SET
(
TD_DARWIN_64 FALSE
)
SET
(
TD_WINDOWS_64 FALSE
)
# if generate ARM version:
# cmake -D
ARMVER=arm32 .. or cmake -DARMVER=arm
64
IF
(
${
ARMVER
}
MATCHES
"arm
32"
)
# cmake -D
CPUTYPE=aarch32 .. or cmake -DCPUTYPE=aarch
64
IF
(
${
CPUTYPE
}
MATCHES
"aarch
32"
)
SET
(
TD_ARM TRUE
)
SET
(
TD_ARM_32 TRUE
)
ADD_DEFINITIONS
(
-D_TD_ARM_
)
ADD_DEFINITIONS
(
-D_TD_ARM_32_
)
ELSEIF
(
${
ARMVER
}
MATCHES
"arm
64"
)
ELSEIF
(
${
CPUTYPE
}
MATCHES
"aarch
64"
)
SET
(
TD_ARM TRUE
)
SET
(
TD_ARM_64 TRUE
)
ADD_DEFINITIONS
(
-D_TD_ARM_
)
ADD_DEFINITIONS
(
-D_TD_ARM_64_
)
E
NDIF
(
)
IF
(
TD_ARM
)
ADD_DEFINITIONS
(
-D_TD_
ARM
_
)
IF
(
TD_ARM_32
)
ADD_DEFINITIONS
(
-D_TD_ARM_32_
)
ELSEIF
(
TD_ARM_64
)
ADD_DEFINITIONS
(
-D_TD_ARM_64_
)
ELSE
(
)
EXIT
()
ENDIF
(
)
E
LSEIF
(
${
CPUTYPE
}
MATCHES
"mips64"
)
SET
(
TD_MIPS TRUE
)
SET
(
TD_MIPS_64 TRUE
)
ADD_DEFINITIONS
(
-D_TD_
MIPS
_
)
ADD_DEFINITIONS
(
-D_TD_MIPS_64_
)
ELSEIF
(
${
CPUTYPE
}
MATCHES
"x64"
)
MESSAGE
(
STATUS
"input cpuType: "
${
CPUTYPE
}
)
ELSEIF
(
${
CPUTYPE
}
MATCHES
"x86"
)
MESSAGE
(
STATUS
"input cpuType: "
${
CPUTYPE
}
)
ELSE
()
MESSAGE
(
STATUS
"input cpuType: "
${
CPUTYPE
}
)
ENDIF
()
#
...
...
@@ -83,17 +85,17 @@ IF (NOT DEFINED TD_CLUSTER)
SET
(
TD_OS_DIR
${
TD_COMMUNITY_DIR
}
/src/os/linux
)
ADD_DEFINITIONS
(
-D_M_X64
)
MESSAGE
(
STATUS
"The current platform is Linux 64-bit"
)
ELSEIF
(
${
CMAKE_SIZEOF_VOID_P
}
MATCHES 4
)
IF
(
TD_ARM
)
SET
(
TD_LINUX_32 TRUE
)
SET
(
TD_OS_DIR
${
TD_COMMUNITY_DIR
}
/src/os/linux
)
#ADD_DEFINITIONS(-D_M_IX86)
MESSAGE
(
STATUS
"The current platform is Linux 32-bit"
)
ELSEIF
(
${
CMAKE_SIZEOF_VOID_P
}
MATCHES 4
)
IF
(
TD_ARM
)
SET
(
TD_LINUX_32 TRUE
)
SET
(
TD_OS_DIR
${
TD_COMMUNITY_DIR
}
/src/os/linux
)
#ADD_DEFINITIONS(-D_M_IX86)
MESSAGE
(
STATUS
"The current platform is Linux 32-bit"
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"The current platform is Linux 32-bit, but no ARM not supported yet"
)
EXIT
()
ENDIF
()
ELSE
()
MESSAGE
(
FATAL_ERROR
"The current platform is Linux 32-bit, but no ARM not supported yet"
)
EXIT
()
ENDIF
()
ELSE
()
MESSAGE
(
FATAL_ERROR
"The current platform is Linux neither 32-bit nor 64-bit, not supported yet"
)
EXIT
()
ENDIF
()
...
...
packaging/deb/makedeb.sh
浏览文件 @
3700552e
#!/bin/bash
#
# Generate deb package for ubuntu
# set -x
set
-e
#set -x
#curr_dir=$(pwd)
compile_dir
=
$1
output_dir
=
$2
tdengine_ver
=
$3
armver
=
$4
cpuType
=
$4
osType
=
$5
verMode
=
$6
verType
=
$7
script_dir
=
"
$(
dirname
$(
readlink
-f
$0
))
"
top_dir
=
"
$(
readlink
-f
${
script_dir
}
/../..
)
"
...
...
@@ -64,15 +68,24 @@ debver="Version: "$tdengine_ver
sed
-i
"2c
$debver
"
${
pkg_dir
}
/DEBIAN/control
#get taos version, then set deb name
if
[
-z
"
$armver
"
]
;
then
debname
=
"TDengine-"
${
tdengine_ver
}
".deb"
elif
[
"
$armver
"
==
"arm64"
]
;
then
debname
=
"TDengine-"
${
tdengine_ver
}
"-arm64.deb"
elif
[
"
$armver
"
==
"arm32"
]
;
then
debname
=
"TDengine-"
${
tdengine_ver
}
"-arm32.deb"
if
[
"
$verMode
"
==
"cluster"
]
;
then
debname
=
"TDengine-server-"
${
tdengine_ver
}
-
${
osType
}
-
${
cpuType
}
elif
[
"
$verMode
"
==
"lite"
]
;
then
debname
=
"TDengine-server-edge"
-
${
tdengine_ver
}
-
${
osType
}
-
${
cpuType
}
else
echo
"unknow verMode, nor cluster or lite"
exit
1
fi
if
[
"
$verType
"
==
"beta"
]
;
then
debname
=
${
debname
}
-
${
verType
}
".deb"
elif
[
"
$verType
"
==
"stable"
]
;
then
debname
=
${
debname
}
".deb"
else
echo
"
input parameter error!!!
"
return
echo
"
unknow verType, nor stabel or beta
"
exit
1
fi
# make deb package
...
...
packaging/release.sh
浏览文件 @
3700552e
...
...
@@ -5,7 +5,45 @@
set
-e
# set -x
armver
=
$1
# releash.sh -v [cluster | lite] -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] -V [stable | beta]
# set parameters by default value
verMode
=
lite
# [cluster, lite]
verType
=
stable
# [stable, beta]
cpuType
=
x64
# [aarch32 | aarch64 | x64 | x86 | mips64 ...]
osType
=
Linux
# [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...]
while
getopts
"hv:V:c:o:"
arg
do
case
$arg
in
v
)
#echo "verMode=$OPTARG"
verMode
=
$(
echo
$OPTARG
)
;;
V
)
#echo "verType=$OPTARG"
verType
=
$(
echo
$OPTARG
)
;;
c
)
#echo "cpuType=$OPTARG"
cpuType
=
$(
echo
$OPTARG
)
;;
o
)
#echo "osType=$OPTARG"
osType
=
$(
echo
$OPTARG
)
;;
h
)
echo
"Usage:
`
basename
$0
`
-v [cluster | lite] -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] -V [stable | beta]"
exit
0
;;
?
)
#unknow option
echo
"unkonw argument"
exit
1
;;
esac
done
echo
"verMode=
${
verMode
}
verType=
${
verType
}
cpuType=
${
cpuType
}
osType=
${
osType
}
"
curr_dir
=
$(
pwd
)
script_dir
=
"
$(
dirname
$(
readlink
-f
$0
))
"
...
...
@@ -106,12 +144,16 @@ done
# output the version info to the buildinfo file.
build_time
=
$(
date
+
"%F %R"
)
echo
"char version[64] =
\"
${
version
}
\"
;"
>
${
versioninfo
}
echo
"char compatible_version[64] =
\"
${
compatible_version
}
\"
;"
>>
${
versioninfo
}
echo
"char gitinfo[128] =
\"
$(
git rev-parse
--verify
HEAD
)
\"
;"
>>
${
versioninfo
}
echo
"char gitinfoOfInternal[128] =
\"\"
;"
>>
${
versioninfo
}
echo
"char version[64] =
\"
${
version
}
\"
;"
>
${
versioninfo
}
echo
"char compatible_version[64] =
\"
${
compatible_version
}
\"
;"
>>
${
versioninfo
}
echo
"char gitinfo[128] =
\"
$(
git rev-parse
--verify
HEAD
)
\"
;"
>>
${
versioninfo
}
echo
"char gitinfoOfInternal[128] =
\"\"
;"
>>
${
versioninfo
}
echo
"char buildinfo[512] =
\"
Built by
${
USER
}
at
${
build_time
}
\"
;"
>>
${
versioninfo
}
echo
""
>>
${
versioninfo
}
tmp_version
=
$(
echo
$version
|
tr
-s
"."
"_"
)
echo
"void libtaos_edge_
${
tmp_version
}
_
${
osType
}
_
${
cpuType
}
() {};"
>>
${
versioninfo
}
# 2. cmake executable file
compile_dir
=
"
${
top_dir
}
/debug"
...
...
@@ -122,16 +164,12 @@ fi
${
csudo
}
mkdir
-p
${
compile_dir
}
cd
${
compile_dir
}
# arm only support lite ver
if
[
-z
"
$armver
"
]
;
then
cmake ../
elif
[
"
$armver
"
==
"arm64"
]
;
then
cmake ../
-DARMVER
=
arm64
elif
[
"
$armver
"
==
"arm32"
]
;
then
cmake ../
-DARMVER
=
arm32
# check support cpu type
if
[[
"
$cpuType
"
==
"x64"
]]
||
[[
"
$cpuType
"
==
"aarch64"
]]
||
[[
"
$cpuType
"
==
"aarch32"
]]
||
[[
"
$cpuType
"
==
"mips64"
]]
;
then
cmake ../
-DCPUTYPE
=
${
cpuType
}
else
echo
"input
parameter
error!!!"
return
echo
"input
cpuType=
${
cpuType
}
error!!!"
exit
1
fi
make
...
...
@@ -143,28 +181,28 @@ cd ${curr_dir}
#osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2)
#echo "osinfo: ${osinfo}"
echo
"
do deb package for the ubuntu system
"
echo
"
====do deb package for the ubuntu system====
"
output_dir
=
"
${
top_dir
}
/debs"
if
[
-d
${
output_dir
}
]
;
then
${
csudo
}
rm
-rf
${
output_dir
}
fi
${
csudo
}
mkdir
-p
${
output_dir
}
cd
${
script_dir
}
/deb
${
csudo
}
./makedeb.sh
${
compile_dir
}
${
output_dir
}
${
version
}
${
armver
}
${
csudo
}
./makedeb.sh
${
compile_dir
}
${
output_dir
}
${
version
}
${
cpuType
}
${
osType
}
${
verMode
}
${
verType
}
echo
"
do rpm package for the centos system
"
echo
"
====do rpm package for the centos system====
"
output_dir
=
"
${
top_dir
}
/rpms"
if
[
-d
${
output_dir
}
]
;
then
${
csudo
}
rm
-rf
${
output_dir
}
fi
${
csudo
}
mkdir
-p
${
output_dir
}
cd
${
script_dir
}
/rpm
${
csudo
}
./makerpm.sh
${
compile_dir
}
${
output_dir
}
${
version
}
${
armver
}
${
csudo
}
./makerpm.sh
${
compile_dir
}
${
output_dir
}
${
version
}
${
cpuType
}
${
osType
}
${
verMode
}
${
verType
}
echo
"
do tar.gz package for all systems
"
echo
"
====do tar.gz package for all systems====
"
cd
${
script_dir
}
/tools
${
csudo
}
./makepkg.sh
${
compile_dir
}
${
version
}
"
${
build_time
}
"
${
armver
}
${
csudo
}
./makeclient.sh
${
compile_dir
}
${
version
}
"
${
build_time
}
"
${
armver
}
${
csudo
}
./makepkg.sh
${
compile_dir
}
${
version
}
"
${
build_time
}
"
${
cpuType
}
${
osType
}
${
verMode
}
${
verType
}
${
csudo
}
./makeclient.sh
${
compile_dir
}
${
version
}
"
${
build_time
}
"
${
cpuType
}
${
osType
}
${
verMode
}
${
verType
}
# 4. Clean up temporary compile directories
#${csudo} rm -rf ${compile_dir}
...
...
packaging/rpm/makerpm.sh
浏览文件 @
3700552e
...
...
@@ -9,7 +9,10 @@
compile_dir
=
$1
output_dir
=
$2
tdengine_ver
=
$3
armver
=
$4
cpuType
=
$4
osType
=
$5
verMode
=
$6
verType
=
$7
script_dir
=
"
$(
dirname
$(
readlink
-f
$0
))
"
top_dir
=
"
$(
readlink
-f
${
script_dir
}
/../..
)
"
...
...
@@ -55,15 +58,30 @@ ${csudo} mkdir -p BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
${
csudo
}
rpmbuild
--define
=
"_version
${
tdengine_ver
}
"
--define
=
"_topdir
${
pkg_dir
}
"
--define
=
"_compiledir
${
compile_dir
}
"
-bb
${
spec_file
}
# copy rpm package to output_dir, then clean temp dir
# copy rpm package to output_dir,
and modify package name,
then clean temp dir
#${csudo} cp -rf RPMS/* ${output_dir}
cp_rpm_package
${
pkg_dir
}
/RPMS
if
[
"
$armver
"
==
"arm64"
]
;
then
mv
${
output_dir
}
/TDengine-
${
tdengine_ver
}
.rpm
${
output_dir
}
/TDengine-
${
tdengine_ver
}
-arm64
.rpm
elif
[
"
$armver
"
==
"arm32"
]
;
then
mv
${
output_dir
}
/TDengine-
${
tdengine_ver
}
.rpm
${
output_dir
}
/TDengine-
${
tdengine_ver
}
-arm32
.rpm
if
[
"
$verMode
"
==
"cluster"
]
;
then
rpmname
=
"TDengine-server-"
${
tdengine_ver
}
-
${
osType
}
-
${
cpuType
}
elif
[
"
$verMode
"
==
"lite"
]
;
then
rpmname
=
"TDengine-server-edge"
-
${
tdengine_ver
}
-
${
osType
}
-
${
cpuType
}
else
echo
"unknow verMode, nor cluster or lite"
exit
1
fi
if
[
"
$verType
"
==
"beta"
]
;
then
rpmname
=
${
rpmname
}
-
${
verType
}
".rpm"
elif
[
"
$verType
"
==
"stable"
]
;
then
rpmname
=
${
rpmname
}
".rpm"
else
echo
"unknow verType, nor stabel or beta"
exit
1
fi
mv
${
output_dir
}
/TDengine-
${
tdengine_ver
}
.rpm
${
output_dir
}
/
${
rpmname
}
cd
..
${
csudo
}
rm
-rf
${
pkg_dir
}
packaging/tools/makeclient.sh
浏览文件 @
3700552e
#!/bin/bash
#
# Generate tar.gz package for linux client
# Generate tar.gz package for linux client
in all os system
set
-e
set
-x
#
set -x
curr_dir
=
$(
pwd
)
compile_dir
=
$1
version
=
$2
build_time
=
$3
armver
=
$4
cpuType
=
$4
osType
=
$5
verMode
=
$6
verType
=
$7
script_dir
=
"
$(
dirname
$(
readlink
-f
$0
))
"
top_dir
=
"
$(
readlink
-f
${
script_dir
}
/../..
)
"
...
...
@@ -19,7 +22,7 @@ code_dir="${top_dir}/src"
release_dir
=
"
${
top_dir
}
/release"
#package_name='linux'
install_dir
=
"
${
release_dir
}
/TDengine-client
-
${
version
}
"
install_dir
=
"
${
release_dir
}
/TDengine-client"
# Directories and files.
bin_files
=
"
${
build_dir
}
/bin/taos
${
build_dir
}
/bin/taosdump
${
script_dir
}
/remove_client.sh"
...
...
@@ -42,12 +45,13 @@ cp ${install_files} ${install_dir} && chmod a+x ${install_dir}/install*
# Copy example code
mkdir
-p
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/c
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/JDBC
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/matlab
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/python
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/R
${
install_dir
}
/examples
cp
-r
${
top_dir
}
/tests/examples/go
${
install_dir
}
/examples
examples_dir
=
"
${
top_dir
}
/tests/examples"
cp
-r
${
examples_dir
}
/c
${
install_dir
}
/examples
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
# Copy driver
mkdir
-p
${
install_dir
}
/driver
...
...
@@ -66,13 +70,26 @@ cp -r ${connector_dir}/go ${install_dir}/connector
# exit 1
cd
${
release_dir
}
if
[
-z
"
$armver
"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
elif
[
"
$armver
"
==
"arm64"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
-arm64.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
elif
[
"
$armver
"
==
"arm32"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
-arm32.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
cd
${
release_dir
}
if
[
"
$verMode
"
==
"cluster"
]
;
then
pkg_name
=
${
install_dir
}
-
${
version
}
-
${
osType
}
-
${
cpuType
}
elif
[
"
$verMode
"
==
"lite"
]
;
then
pkg_name
=
${
install_dir
}
-edge-
${
version
}
-
${
osType
}
-
${
cpuType
}
else
echo
"unknow verMode, nor cluster or lite"
exit
1
fi
if
[
"
$verType
"
==
"beta"
]
;
then
pkg_name
=
${
pkg_name
}
-
${
verType
}
elif
[
"
$verType
"
==
"stable"
]
;
then
pkg_name
=
${
pkg_name
}
else
echo
"unknow verType, nor stable or beta"
exit
1
fi
tar
-zcv
-f
"
$(
basename
${
pkg_name
}
)
.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
cd
${
curr_dir
}
packaging/tools/makepkg.sh
浏览文件 @
3700552e
#!/bin/bash
#
# Generate deb package for other os system (no unbutu or centos)
# Generate tar.gz package for all os system
set
-e
#set -x
curr_dir
=
$(
pwd
)
compile_dir
=
$1
version
=
$2
build_time
=
$3
armver
=
$4
cpuType
=
$4
osType
=
$5
verMode
=
$6
verType
=
$7
script_dir
=
"
$(
dirname
$(
readlink
-f
$0
))
"
top_dir
=
"
$(
readlink
-f
${
script_dir
}
/../..
)
"
...
...
@@ -17,7 +23,7 @@ code_dir="${top_dir}/src"
release_dir
=
"
${
top_dir
}
/release"
#package_name='linux'
install_dir
=
"
${
release_dir
}
/TDengine-
${
version
}
"
install_dir
=
"
${
release_dir
}
/TDengine-
server
"
# Directories and files.
bin_files
=
"
${
build_dir
}
/bin/taosd
${
build_dir
}
/bin/taos
${
build_dir
}
/bin/taosdemo
${
build_dir
}
/bin/taosdump
${
script_dir
}
/remove.sh"
...
...
@@ -77,13 +83,26 @@ cp -r ${connector_dir}/go ${install_dir}/connector
# exit 1
cd
${
release_dir
}
if
[
-z
"
$armver
"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
elif
[
"
$armver
"
==
"arm64"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
-arm64.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
elif
[
"
$armver
"
==
"arm32"
]
;
then
tar
-zcv
-f
"
$(
basename
${
install_dir
}
)
-arm32.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
cd
${
release_dir
}
if
[
"
$verMode
"
==
"cluster"
]
;
then
pkg_name
=
${
install_dir
}
-
${
version
}
-
${
osType
}
-
${
cpuType
}
elif
[
"
$verMode
"
==
"lite"
]
;
then
pkg_name
=
${
install_dir
}
-edge-
${
version
}
-
${
osType
}
-
${
cpuType
}
else
echo
"unknow verMode, nor cluster or lite"
exit
1
fi
if
[
"
$verType
"
==
"beta"
]
;
then
pkg_name
=
${
pkg_name
}
-
${
verType
}
elif
[
"
$verType
"
==
"stable"
]
;
then
pkg_name
=
${
pkg_name
}
else
echo
"unknow verType, nor stabel or beta"
exit
1
fi
tar
-zcv
-f
"
$(
basename
${
pkg_name
}
)
.tar.gz"
$(
basename
${
install_dir
}
)
--remove-files
cd
${
curr_dir
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录