dpkg/build.sh

281 lines
9.7 KiB
Bash
Raw Normal View History

2022-07-04 01:48:13 +00:00
oem=$1 #厂商
cpu=$(arch) #cpu架构
sys=$(cat /etc/issue)
sys=${sys%% *} #操作系统
dpkgpath="" #打包路径
dpkgarch="" #打包时的版本
libname="" #动态库名字
libpath="" #打包时库路径
2022-08-04 08:20:59 +00:00
time2=$(date "+%g%j") #版本控制
2022-07-04 08:31:52 +00:00
dpkgtype="app"
2022-08-04 08:20:59 +00:00
ver3=10
2022-08-29 09:54:02 +00:00
mainverstr=$(cat ../sdk/include/huagao/brand.h |grep VERSION_MAIN)
mainverstr=${mainverstr: -2}
mainverstr=$(echo $mainverstr)
minver=$(cat ../sdk/include/huagao/brand.h |grep VERSION_SUB)
minver=${minver: -2}
minver=$(echo $minver)
2022-08-09 09:22:55 +00:00
2022-07-04 01:48:13 +00:00
2022-09-28 07:15:38 +00:00
if [ "$oem" != "hg" ] && [ "$oem" != "lsc" ] && [ "$oem" != "hw" ] && [ "$oem" != ""hgweb ] && [ "$oem" != ""lscweb ] && [ "$oem" != ""hwweb ] && [ "$oem" != ""hgso ] && [ "$oem" != ""lscso ] && [ "$oem" != ""hwso ];
2022-07-04 01:48:13 +00:00
then
echo "参数错误!!!"
2022-07-04 06:26:02 +00:00
echo "参数:华高:hg || hgweb 立思层:lsc || lscweb 汉王:hw || hwweb"
2022-07-04 01:48:13 +00:00
exit 1
fi
if [ "$cpu" == "x86_64" ]; then
dpkgarch="amd64"
libpath="x86_64-linux-gnu"
elif [ "$cpu" == "aarch64" ]; then
dpkgarch="arm64"
libpath="aarch64-linux-gnu"
elif [ "$cpu" == "mips64" ]; then
dpkgarch="mips64el"
2022-08-09 09:29:09 +00:00
libpath="mips64el-linux-gnu"
2022-07-04 01:48:13 +00:00
else
echo "没有已知架构"
exit 1
fi
if [ "$sys" == "UnionTech" ];then
syspath="uos"
if [ "$oem" == "hw" ]; then
2022-09-28 07:15:38 +00:00
dpkgpath="com.hanvonchina.hanvonscan"
2022-07-04 01:48:13 +00:00
elif [ "$oem" == "lsc" ];then
2022-09-28 07:15:38 +00:00
dpkgpath="com.lanxumchina.lanxumscan"
2022-07-04 06:26:02 +00:00
elif [ "$oem" == "hg" ];then
2022-09-28 07:15:38 +00:00
dpkgpath="com.huagaochina.huagoscan"
2022-07-04 06:26:02 +00:00
elif [ "$oem" == "hgweb" ];then
dpkgpath="huagaowebscan"
elif [ "$oem" == "lscweb" ];then
dpkgpath="lanxumwebscan"
elif [ "$oem" == "hwweb" ];then
dpkgpath="hanvonwebscan"
2022-09-28 07:15:38 +00:00
elif [ "$oem" == "hgso" ];then
dpkgpath="huagaoscansdk"
elif [ "$oem" == "lscso" ];then
dpkgpath="lanxumscansdk"
elif [ "$oem" == "hwso" ];then
dpkgpath="hanvonscansdk"
2022-07-04 01:48:13 +00:00
fi
2022-09-28 07:15:38 +00:00
else
2022-07-04 01:48:13 +00:00
syspath="kylin"
if [ "$oem" == "hw" ] ;then
2022-09-28 07:15:38 +00:00
dpkgpath="scanner-driver-hanvon"
2022-07-04 01:48:13 +00:00
elif [ "$oem" == "lsc" ];then
2022-09-28 07:15:38 +00:00
dpkgpath="scanner-driver-lanxum"
2022-07-04 06:26:02 +00:00
elif [ "$oem" == "hg" ];then
2022-09-28 07:15:38 +00:00
dpkgpath="scanner-driver-huagao"
2022-07-04 06:26:02 +00:00
elif [ "$oem" == "hgweb" ];then
dpkgpath="huagaowebscan"
elif [ "$oem" == "lscweb" ];then
dpkgpath="lanxumwebscan"
elif [ "$oem" == "hwweb" ];then
2022-09-28 07:15:38 +00:00
dpkgpath="hanvonwebscan"
elif [ "$oem" == "hgso" ];then
dpkgpath="huagaoscansdk"
elif [ "$oem" == "lscso" ];then
dpkgpath="lanxumscansdk"
elif [ "$oem" == "hwso" ];then
dpkgpath="hanvonscansdk"
2022-07-04 01:48:13 +00:00
fi
fi
2022-08-05 02:57:49 +00:00
if [ "$oem" == "lsc" ] || [ "$oem" == "lscweb" ] ;then
ver3=14
2022-08-12 08:02:00 +00:00
elif [ "$oem" == "hw" ] || [ "$oem" == "hwweb" ] ;then
ver3=16
2022-08-05 02:57:49 +00:00
fi
2022-08-04 09:24:58 +00:00
ver3=$[$ver3 * 10]
if [ "$cpu" == "x86_64" ]; then
ver3=$[$ver3 + 1]
elif [ "$cpu" == "aarch64" ]; then
ver3=$[$ver3 + 2]
elif [ "$cpu" == "mips64" ]; then
ver3=$[$ver3 + 3]
fi
2022-07-04 01:48:13 +00:00
2022-08-04 09:24:58 +00:00
ver3=$[$ver3 * 100]
if [ "$sys" == "UnionTech" ];then
# uos ...
ver3=$[$ver3 + 20]
elif [ "$sys" == "Kylin" ];then
# kylin ...
ver3=$[$ver3 + 21]
else
# unknown OS, set as linux
ver3=$[$ver3 + 10]
fi
2022-07-04 01:48:13 +00:00
cd ../release/$syspath/$cpu/
rm * -R
git checkout .
git pull
cd ../../../sdk
git checkout .
git pull
2022-09-28 07:37:01 +00:00
2022-07-04 01:48:13 +00:00
cd ../code_device
git checkout .
git pull
2022-09-28 07:37:01 +00:00
if [ "$oem" == "hgso" ] ;then
./build.sh hg
else if [ "$oem" == "hwso" ];then
./build.sh hw
else if [ "$oem" == "lscso" ];then
./build.sh lsc
else
./build.sh $oem
fi
2022-07-04 01:48:13 +00:00
if [ $? -ne 0 ];then
echo "code_device-------->编译失败"
exit 1
fi
cd ../code_app
git checkout .
git pull
2022-09-28 07:37:01 +00:00
if [ "$oem" == "hgso" ] ;then
./build.sh hg
else if [ "$oem" == "hwso" ];then
./build.sh hw
else if [ "$oem" == "lscso" ];then
./build.sh lsc
fi
2022-08-08 02:36:48 +00:00
./build.sh $oem
2022-09-28 07:37:01 +00:00
2022-07-04 01:48:13 +00:00
if [ $? -ne 0 ];then
echo "code_app-------->编译失败"
exit 1
fi
2022-08-29 09:54:02 +00:00
2022-08-09 09:22:55 +00:00
echo $minver
echo "3rd version replacing pattern: "${ver3}
echo $dpkgpath
ver="$mainverstr.$minver.$ver3.$time2"
echo $ver
2022-07-04 01:48:13 +00:00
Version="Version: $ver"
Architecture="Architecture: $dpkgarch"
2022-09-28 07:15:38 +00:00
2022-07-04 01:48:13 +00:00
packagename="package: $dpkgpath"
2022-09-28 07:15:38 +00:00
2022-07-04 01:48:13 +00:00
echo $Architecture $Version
cd ..
echo "dpkg/$syspath/$oem/usr/lib/$libpath"
echo "dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib"
sed -i "1s/.*/$packagename/g" dpkg/$syspath/$oem/DEBIAN/control
sed -i "2s/.*/$Version/g" dpkg/$syspath/$oem/DEBIAN/control
2022-09-28 07:15:38 +00:00
sed -i "3s/.*/$Architecture/g" dpkg/$syspath/$oem/DEBIAN/control
2022-07-04 01:48:13 +00:00
2022-07-29 09:28:21 +00:00
cp dpkg/60-sane.rules dpkg/$syspath/$oem/etc/udev/rules.d/60-"$oem"sane.rules
if [ $? -ne 0 ];then
2022-08-08 02:10:02 +00:00
echo "not find:60-sane.rule "
2022-07-29 09:28:21 +00:00
exit 1
fi
2022-07-04 06:26:02 +00:00
if [ "$oem" == "lscweb" ] || [ "$oem" == "hwweb" ] || [ "$oem" == "hgweb" ]; then
cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/$dpkgpath/bin
2022-09-28 07:37:01 +00:00
else if [ "$oem" == "hgso" ] || [ "$oem" == "hwso" ] || [ "$oem" == "lscso" ];then
2022-09-28 07:15:38 +00:00
cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/$dpkgpath/lib
2022-09-28 07:37:01 +00:00
cp sdk/include/scannerlib/* dpkg/$syspath/$oem/opt/$dpkgpath/inculde
rm dpkg/$syspath/$oem/opt/$dpkgpath/lib/*Scan
2022-09-28 07:15:38 +00:00
rm dpkg/$syspath/$oem/opt/$dpkgpath/lib/*App
2022-07-04 01:48:13 +00:00
else
2022-07-04 06:26:02 +00:00
mv dpkg/$syspath/$oem/usr/lib/* dpkg/$syspath/$oem/usr/lib/$libpath
if [ "$sys" == "UnionTech" ];then
if [ "$cpu" == "x86_64" ]; then
sed -i "s/aarch64-linux-gnu/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
sed -i "s/mips64el-linux-gnuabi64/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
sed -i "s/arm64/amd64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
2022-09-28 07:15:38 +00:00
sed -i "s/mips64el/amd64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
2022-07-04 06:26:02 +00:00
elif [ "$cpu" == "aarch64" ]; then
sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
sed -i "s/mips64el-linux-gnuabi64/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
sed -i "s/amd64/arm64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
2022-09-28 07:15:38 +00:00
sed -i "s/mips64el/arm64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
2022-07-04 06:26:02 +00:00
elif [ "$cpu" == "mips64" ]; then
sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
2022-09-28 07:15:38 +00:00
sed -i "s/aarch64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh
2022-07-04 06:26:02 +00:00
sed -i "s/amd64/mips64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
sed -i "s/arm64/mips64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info
fi
cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/*Scan dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin
2022-09-28 07:37:01 +00:00
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/*App dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin
2022-07-04 06:26:02 +00:00
cp dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/libsane-"$oem"sane.so dpkg/$syspath/$oem/usr/lib/$libpath/sane/libsane-"$oem"sane.so.1
2022-09-28 07:15:38 +00:00
else
2022-07-04 06:26:02 +00:00
if [ "$cpu" == "x86_64" ]; then
2022-09-02 07:29:46 +00:00
sed -i "s/aarch64-linux-gnu/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
sed -i "s/mips64el-linux-gnuabi64/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
2022-07-04 06:26:02 +00:00
elif [ "$cpu" == "aarch64" ]; then
2022-09-02 07:29:46 +00:00
sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
sed -i "s/mips64el-linux-gnuabi64/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
2022-07-04 06:26:02 +00:00
elif [ "$cpu" == "mips64" ]; then
2022-09-02 07:29:46 +00:00
sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
sed -i "s/aarch64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst
2022-07-04 06:26:02 +00:00
fi
2022-09-02 07:29:46 +00:00
cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/apps/$dpkgpath/
cp dpkg/$syspath/$oem/opt/apps/$dpkgpath/libsane-"$oem"sane.so dpkg/$syspath/$oem/usr/lib/$libpath/sane/libsane-"$oem"sane.so.1
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.so dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.ttf dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.key dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.so.* dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*Scan dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin
mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*App dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin
2022-07-04 01:48:13 +00:00
fi
2022-08-08 02:10:02 +00:00
fi
if [ $? -ne 0 ];then
echo "not find:libsane-"$oem"sane.so"
exit 1
2022-07-04 01:48:13 +00:00
fi
2022-08-08 02:36:30 +00:00
pwd
2022-07-04 08:31:52 +00:00
2022-07-04 01:48:13 +00:00
chmod 755 dpkg -R
chmod 755 backup -R
if [ -d "backup/$syspath/$oem/$ver" ];then
rm -rf backup/$syspath/$oem/$ver
fi
if [ ! -d "backup/$syspath/$oem/$ver" ]; then
mkdir -p backup/$syspath/$oem/$ver
fi
cp -rf dpkg/$syspath/$oem/* backup/$syspath/$oem/$ver
2022-07-04 08:31:52 +00:00
if [ "$oem" == "hg" ] || [ "$oem" == "lsc" ] || [ "$oem" == "hw" ];
then
if [ ! -d "backup/dpkg/$time2/$dpkgtype" ];then
mkdir -p backup/dpkg/$time2/$dpkgtype
fi
else
dpkgtype="web"
if [ ! -d "backup/dpkg/$time2/$dpkgtype" ];then
mkdir -p backup/dpkg/$time2/$dpkgtype
fi
fi
2022-09-28 07:15:38 +00:00
dpkg -b backup/$syspath/$oem/$ver backup/dpkg/$time2/$dpkgtype/$dpkgpath"_"$ver"_"$dpkgarch.deb