-
-
Notifications
You must be signed in to change notification settings - Fork 226
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
scripts: sailfish: initial SailfishOS support
- Loading branch information
Showing
12 changed files
with
273 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#!/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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/bin/bash | ||
|
||
PASSWORD="12345" | ||
IP="192.168.1.10" | ||
|
||
if [ "$1" == "aurora" ]; then | ||
name="su.xash.Engine" | ||
arch="armv7hl" # lame! | ||
else | ||
name="harbour-xash3d-fwgs" | ||
arch="aarch64" # absolutely lame... | ||
fi | ||
package=$(ls build_rpm/RPMS/$arch/$name-0*.rpm) | ||
|
||
sshpass -p $PASSWORD scp $package defaultuser@$IP:~/ | ||
|
||
# sandwich of programs: | ||
# 1. Call sshpass to automatically fill password for ssh session | ||
# 2. Call devel-su that reads password from stdin | ||
# 3. devel-su calls pkcon install-local -y and installs the package | ||
echo $PASSWORD | sshpass -p $PASSWORD ssh defaultuser@$IP devel-su pkcon install-local -y $(basename $package) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
[Desktop Entry] | ||
Categories=Game;Shooter; | ||
Comment=Half-Life compatible game engine | ||
Exec=__REPLACE_EXEC__ | ||
Icon=__REPLACE_ICON__ | ||
Keywords=first;person;shooter;multiplayer;half-life;halflife;singleplayer; | ||
Name=Xash3D FWGS | ||
Name[en]=Xash3D FWGS | ||
PrefersNonDefaultGPU=true | ||
Terminal=false | ||
Type=Application | ||
X-Nemo-Application-Type=silica-qt5 | ||
|
||
[X-Sailjail] | ||
Permissions=Audio;Internet;Microphone;PublicDir; | ||
OrganizationName=su.xash | ||
ApplicationName=Engine |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Based on harbour-quake2 spec file | ||
|
||
Name: %{_packagename} | ||
Summary: Xash3D FWGS | ||
Release: 1 | ||
Version: 0.20 | ||
Group: Amusements/Games | ||
License: GPLv2 | ||
BuildArch: %{_arch} | ||
URL: https://github.com/FWGS/xash3d-fwgs | ||
Source0: %{name}.tar | ||
Source1: hlsdk-portable.tar | ||
BuildRequires: SDL2-devel ImageMagick | ||
|
||
%define __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$ | ||
|
||
%description | ||
Xash3D FWGS is a game engine compatible with Half-Life 1 and mods. | ||
|
||
%prep | ||
tar -xf %{_topdir}/SOURCES/%{name}.tar | ||
python3 waf configure \ | ||
-T release \ | ||
--sailfish=%{_flavor} \ | ||
--enable-stbtt \ | ||
--enable-bundled-deps \ | ||
--enable-packaging \ | ||
--disable-gl \ | ||
--enable-gles2 \ | ||
--enable-gl4es \ | ||
--prefix=/usr \ | ||
--libdir=%{_datadir}/%{name}/lib \ | ||
--bindir=%{_bindir} | ||
|
||
mkdir -p hlsdk-portable | ||
pushd hlsdk-portable | ||
tar -xf %{_topdir}/SOURCES/hlsdk-portable.tar | ||
python3 waf configure -T release | ||
popd | ||
|
||
%build | ||
python3 waf build -j$(($(nproc)+1)) | ||
pushd hlsdk-portable | ||
python3 waf build -j$(($(nproc)+1)) | ||
popd | ||
|
||
%install | ||
python3 waf install --destdir=%{buildroot} | ||
pushd hlsdk-portable | ||
python3 waf install --destdir=%{buildroot}%{_datadir}/%{name}/rodir | ||
popd | ||
# rename real binary | ||
mv %{buildroot}/usr/bin/xash3d %{buildroot}/usr/bin/%{name} | ||
|
||
install -d %{buildroot}/%{_datadir}/applications | ||
sed "s/__REPLACE_ICON__/su.xash.Engine/g;s/__REPLACE_EXEC__/su.xash.Engine/g;" scripts/sailfish/harbour-xash3d-fwgs.desktop > %{buildroot}/%{_datadir}/applications/%{name}.desktop | ||
chmod 644 %{buildroot}/%{_datadir}/applications/%{name}.desktop | ||
|
||
install -d %{buildroot}/%{_datadir}/icons/hicolor/86x86/apps | ||
install -d %{buildroot}/%{_datadir}/icons/hicolor/108x108/apps | ||
install -d %{buildroot}/%{_datadir}/icons/hicolor/128x128/apps | ||
install -d %{buildroot}/%{_datadir}/icons/hicolor/172x172/apps | ||
convert game_launch/icon-xash-material.png -resize 86x86 %{buildroot}/%{_datadir}/icons/hicolor/86x86/apps/%{name}.png | ||
convert game_launch/icon-xash-material.png -resize 108x108 %{buildroot}/%{_datadir}/icons/hicolor/108x108/apps/%{name}.png | ||
convert game_launch/icon-xash-material.png -resize 128x128 %{buildroot}/%{_datadir}/icons/hicolor/128x128/apps/%{name}.png | ||
convert game_launch/icon-xash-material.png -resize 172x172 %{buildroot}/%{_datadir}/icons/hicolor/172x172/apps/%{name}.png | ||
|
||
%files | ||
%defattr(-,root,root,-) | ||
%attr(755,root,root) %{_bindir}/%{name} | ||
%attr(755,root,root) %{_datadir}/%{name}/lib/* | ||
%attr(644,root,root) %{_datadir}/%{name}/rodir/valve/extras.pk3 | ||
%attr(755,root,root) %{_datadir}/%{name}/rodir/valve/cl_dlls/* | ||
%attr(755,root,root) %{_datadir}/%{name}/rodir/valve/dlls/* | ||
%attr(644,root,root) %{_datadir}/icons/hicolor/86x86/apps/%{name}.png | ||
%attr(644,root,root) %{_datadir}/icons/hicolor/108x108/apps/%{name}.png | ||
%attr(644,root,root) %{_datadir}/icons/hicolor/128x128/apps/%{name}.png | ||
%attr(644,root,root) %{_datadir}/icons/hicolor/172x172/apps/%{name}.png | ||
%{_datadir}/applications/%{name}.desktop | ||
|
||
%changelog | ||
* Thu Jun 1 2023 a1batross <a1ba.omarov@gmail.com> | ||
- initial port |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/sh | ||
|
||
die() | ||
{ | ||
echo "$@" | ||
exit 1 | ||
} | ||
|
||
echo "Xash3D FWGS installed as Sailfish RPM" | ||
|
||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html | ||
# $XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored. | ||
# If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used. | ||
if [ -z "$XDG_DATA_HOME" ]; then | ||
export XDG_DATA_HOME="$HOME/.local/share" | ||
fi | ||
|
||
if [ -z "$XASH3D_BASEDIR" ]; then | ||
export XASH3D_BASEDIR="$XDG_DATA_HOME/xash3d-fwgs/" | ||
fi | ||
|
||
mkdir -p "$XASH3D_BASEDIR" | ||
cd "$XASH3D_BASEDIR" || die "Can't cd into $XASH3D_BASEDIR" | ||
echo "XASH3D_BASEDIR is $XASH3D_BASEDIR" | ||
|
||
#if [ -z "$XASH3D_EXTRAS_PAK1" ]; then | ||
# export XASH3D_EXTRAS_PAK1=/app/share/xash3d/valve/extras.pk3 | ||
#fi | ||
#echo "XASH3D_EXTRAS_PAK1 is $XASH3D_EXTRAS_PAK1" | ||
|
||
exec $DEBUGGER /app/lib32/xash3d/xash3d "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters