155 lines
4.2 KiB
Bash
Executable File
155 lines
4.2 KiB
Bash
Executable File
#!/bin/bash
|
|
PKGNAME=$1
|
|
SH_PATH=$(readlink -f `dirname "$0"`)
|
|
PKG_LOCATION_PATH="/tmp/2022"
|
|
DEB_OPT="dd"
|
|
|
|
errlog(){
|
|
echo $1;
|
|
exit 1;
|
|
}
|
|
|
|
copy_dir(){
|
|
rsync -ra $SH_DIR/$PKGNAME /build
|
|
cd /build/$PKGNAME
|
|
}
|
|
|
|
if [ ! -n "$PKGNAME" ];then
|
|
errlog "Useage: ./build.sh pve-common"
|
|
fi
|
|
|
|
if [ ! -d "$SH_PATH/packages/$PKGNAME" ];then
|
|
errlog "$PKGNAME is not exsited!"
|
|
fi
|
|
|
|
if [ -n "$PKG_DIR" ];then
|
|
PKG_LOCATION_PATH=$PKG_DIR
|
|
fi
|
|
|
|
if [ -n "$DEB_BUILD_OPTIONS" ];then
|
|
DEB_OPT=$DEB_BUILD_OPTIONS
|
|
fi
|
|
|
|
dscflag="dsc"
|
|
|
|
if [[ "$DEB_BUILD_OPTIONS" == *"nodsc"* ]];then
|
|
dscflag="nodsc"
|
|
fi
|
|
|
|
echo "--------------info------------------"
|
|
echo "This is Proxmox-Port package build scripts"
|
|
echo "Package is $PKGNAME"
|
|
echo "Docker build is $BUILDERNAME"
|
|
echo "Package dir is $PKG_LOCATION_PATH/$PKGNAME"
|
|
if [ -n "$DEB_BUILD_OPTIONS" ];
|
|
then
|
|
echo "DEB_BUILD_OPTIONS = $DEB_BUILD_OPTIONS"
|
|
fi
|
|
echo "--------------start-----------------"
|
|
|
|
dockerbuild(){
|
|
rm $SH_PATH/packages/$PKGNAME/$PKGNAME/pvebuild -rf
|
|
if [ -n "$BUILDERNAME" ];then
|
|
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm $BUILDERNAME || errlog "builderror"
|
|
else
|
|
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm pvebuilder || errlog "builderror"
|
|
fi
|
|
}
|
|
|
|
exec_build_make(){
|
|
apt update
|
|
yes |mk-build-deps --install --remove
|
|
echo "clean "
|
|
make clean || echo ok
|
|
echo "build deb in `pwd` "
|
|
if [ $dscflag == "dsc" ];then
|
|
make dsc || errlog "build dsc error"
|
|
fi
|
|
DEB_BUILD_OPTIONS=nocheck make deb || errlog "build deb error"
|
|
}
|
|
|
|
exec_build_dpkg(){
|
|
apt update
|
|
yes |mk-build-deps --install --remove
|
|
echo "clean "
|
|
make clean || echo ok
|
|
echo "build deb in `pwd` "
|
|
if [ $dscflag == "dsc" ];then
|
|
dpkg-buildpackage -us -uc -S -d || errlog "build dsc error"
|
|
fi
|
|
dpkg-buildpackage -b -us -uc || errlog "build deb error"
|
|
}
|
|
|
|
|
|
upload_pkg(){
|
|
mkdir $PKG_LOCATION_PATH/$PKGNAME -p
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.deb" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.buildinfo" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.changes" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.dsc" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.tar*" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.deb`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.buildinfo`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.changes`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
|
|
if [ $dscflag == "dsc" ];then
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.dsc`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.tar*`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
fi
|
|
|
|
}
|
|
|
|
update_submodues(){
|
|
if [ -d "$SH_PATH/packages/$PKGNAME/$PKGNAME/.git/" ]; then
|
|
echo "skip submodule"
|
|
else
|
|
cd $SH_PATH/packages/$PKGNAME/
|
|
git submodule update --init --recursive "$PKGNAME"
|
|
fi
|
|
}
|
|
|
|
update_submodues || errlog "Failed to update submodule"
|
|
|
|
if [ -f "$SH_PATH/packages/$PKGNAME/series" ];then
|
|
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
|
|
QUILT_PATCHES=../ \
|
|
QUILT_SERIES=../series \
|
|
quilt --quiltrc /dev/null --color=always push -a || test $$? = 2
|
|
fi
|
|
|
|
ARCH=$(arch)
|
|
|
|
if [ -f "$SH_PATH/packages/$PKGNAME/series.$ARCH" ];then
|
|
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
|
|
QUILT_PATCHES=../ \
|
|
QUILT_SERIES=../series.$ARCH \
|
|
quilt --quiltrc /dev/null --color=always push -a || test $$? = 2
|
|
fi
|
|
|
|
cd $SH_PATH
|
|
|
|
dockerbuild
|
|
upload_pkg || errlog "upload pkg failed"
|
|
|