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.
79 lines
2.2 KiB
79 lines
2.2 KiB
#!/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"
|
|
|