You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.2 KiB
80 lines
2.2 KiB
2 years ago
|
#!/bin/bash
|
||
|
|
||
|
. scripts/lib.sh
|
||
|
|
||
|
download_sign_key()
|
||
|
{
|
||
|
echo -n "Downloading $1: "
|
||
|
curl https://community.omprussia.ru/documentation/files/doc/$1 -o $1 &> /dev/null || die "Can't download $1" && echo "OK"
|
||
|
}
|
||
|
|
||
|
pack_sources()
|
||
|
{
|
||
|
echo "Packing sources to $1..."
|
||
|
git ls-files --recurse-submodules | tar caf "$1" -T-
|
||
|
}
|
||
|
|
||
|
dependencies="SDL2-devel ImageMagick"
|
||
|
build_dir="build_rpm"
|
||
|
|
||
|
if [ "$1" == "aurora" ]; then
|
||
|
name="su.xash.Engine"
|
||
|
flavor="aurora"
|
||
|
else
|
||
|
name="harbour-xash3d-fwgs"
|
||
|
flavor="sailfish"
|
||
|
fi
|
||
|
|
||
|
if [ $flavor == 'aurora' ]; then
|
||
|
download_sign_key regular_key.pem
|
||
|
download_sign_key regular_cert.pem
|
||
|
fi
|
||
|
|
||
|
rm -fr ${build_dir}/{BUILD,SRPMS}
|
||
|
mkdir -p ${build_dir}/SOURCES
|
||
|
pack_sources ${build_dir}/SOURCES/${name}.tar
|
||
|
git clone https://github.com/FWGS/hlsdk-portable -b mobile_hacks
|
||
|
pushd hlsdk-portable
|
||
|
pack_sources ../${build_dir}/SOURCES/hlsdk-portable.tar
|
||
|
popd
|
||
|
|
||
|
sfdk_targets=`sfdk engine exec sb2-config -l | grep default | grep -v i486`
|
||
|
|
||
|
for each in $sfdk_targets; do
|
||
|
target_arch=${each##*-}
|
||
|
target_arch=${target_arch/.default/}
|
||
|
echo "Build for '$each' target with '$target_arch' architecture"
|
||
|
|
||
|
# install deps for current target
|
||
|
sfdk engine exec sb2 -t $each -R -m sdk-install zypper in -y ${dependencies}
|
||
|
|
||
|
# build RPM for current target
|
||
|
sfdk engine exec sb2 -t $each rpmbuild \
|
||
|
--define "_topdir `pwd`/${build_dir}" \
|
||
|
--define "_arch $target_arch" \
|
||
|
--define "_packagename $name" \
|
||
|
--define "_flavor $flavor" \
|
||
|
-ba scripts/sailfish/harbour-xash3d-fwgs.spec || die "Build for ${each}: FAIL"
|
||
|
|
||
|
# sign RPM packacge
|
||
|
if [ "$flavor" == "aurora" ]; then
|
||
|
echo -n "Signing RPMs: "
|
||
|
sfdk engine exec sb2 -t $each rpmsign-external sign --key `pwd`/regular_key.pem --cert `pwd`/regular_cert.pem `pwd`/${build_dir}/RPMS/${target_arch}/$name-0*.rpm || die "FAIL" && echo "OK"
|
||
|
fi
|
||
|
|
||
|
echo -n "Validate RPM: "
|
||
|
if [ "$flavor" == "aurora" ]; then
|
||
|
validator_output=`sfdk engine exec rpm-validator -p regular $(pwd)/${build_dir}/RPMS/${target_arch}/$name-0* 2>&1`
|
||
|
else
|
||
|
sfdk config target=${each/.default/}
|
||
|
validator_output=`sfdk check $(pwd)/${build_dir}/RPMS/${target_arch}/$name-0* 2>&1`
|
||
|
fi
|
||
|
if [ $? -ne 0 ] ; then
|
||
|
echo "FAIL"
|
||
|
echo "${validator_output}"
|
||
|
break;
|
||
|
fi
|
||
|
echo "OK"
|
||
|
done
|
||
|
echo "All build done! All your packages in `pwd`/build_rpm/RPMS"
|