From 09a5c4913bd00619aa6c8edb9ce0777e2f3351ef Mon Sep 17 00:00:00 2001 From: aerique Date: Wed, 9 Oct 2024 17:14:30 +0000 Subject: [PATCH] Build Sokoban RPM for Sailfish OS --- examples/sokoban/platforms/img/logo.png | Bin 0 -> 41572 bytes .../sokoban/platforms/sailfish-os/Dockerfile | 46 ++++++++++++++++ .../sokoban/platforms/sailfish-os/README.md | 50 ++++++++++++++++++ .../sailfish-os/harbour-sokoban.desktop | 10 ++++ .../sailfish-os/harbour-sokoban.spec | 43 +++++++++++++++ 5 files changed, 149 insertions(+) create mode 100644 examples/sokoban/platforms/img/logo.png create mode 100644 examples/sokoban/platforms/sailfish-os/Dockerfile create mode 100644 examples/sokoban/platforms/sailfish-os/README.md create mode 100644 examples/sokoban/platforms/sailfish-os/harbour-sokoban.desktop create mode 100644 examples/sokoban/platforms/sailfish-os/harbour-sokoban.spec diff --git a/examples/sokoban/platforms/img/logo.png b/examples/sokoban/platforms/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a7df8fdba74a7b71103cc645a7d25f9b1dfd3ec1 GIT binary patch literal 41572 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 /etc/zypp/zypp.conf' +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R zypper install --no-confirm opt-qt5-qtdeclarative-devel opt-qt5-qtconnectivity-devel opt-qt5-qtlocation-devel opt-qt5-qtmultimedia-devel opt-qt5-qtquickcontrols2-devel opt-qt5-qtsensors-devel +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R /opt/qt5/bin/qmake ../lqml-lib.pro +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R make + +# Prepare Sokoban directory. +WORKDIR /home/nemo/lqml/examples +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R ./copy.sh sokoban + +# Build Sokoban. +WORKDIR /home/nemo/lqml/examples/sokoban/build +RUN rm -rf * .qmake.stash +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R /opt/qt5/bin/qmake .. +RUN sb2 -t SailfishOS-latest-aarch64 -m sdk-install -R make + +# Build RPM. +COPY platforms/img/logo.png ./harbour-sokoban.png +COPY platforms/sailfish-os/harbour-sokoban.desktop . +RUN mkdir -p rpm +COPY platforms/sailfish-os/harbour-sokoban.spec ./rpm/ +RUN sudo chown -R nemo:sailfish-system . +RUN mb2 -t SailfishOS-latest-aarch64 build + +CMD echo -e "In another terminal execute:\n - 'docker cp ${HOSTNAME}:$(pwd)/RPMS/$(basename RPMS/*.rpm) .'\nto copy the RPM out of the container." && read -p "Then press to terminate this container." diff --git a/examples/sokoban/platforms/sailfish-os/README.md b/examples/sokoban/platforms/sailfish-os/README.md new file mode 100644 index 0000000..6ad5b8b --- /dev/null +++ b/examples/sokoban/platforms/sailfish-os/README.md @@ -0,0 +1,50 @@ +# Example Dockerfile to Build Sokoban for AARCH64 + +## Dependency + +This project depends on [SFOSBID](https://codeberg.org/aerique/sfosbid). +This Git repository needs to be cloned somewhere and then, in the root of +that project's directory, the following commands should be issued: + +- `bin/download.sh` +- `bin/build.sh` + +Once this has been successfully built we can continue with building the +Sokoban RPM. + +## Building the Sokoban RPM + +Go to the LQML project's root directory, then: + +- `cd examples/sokoban` +- `docker build -t sokoban -f platforms/sailfish-os/Dockerfile .` + - this takes a long time, especially if one is on another architecture + than the one being built +- `docker run -it sokoban` + +A message will be displayed on how to copy the RPM out of the running +container. + +## Installing the Sokoban RPM + +Get the RPM onto your Sailfish OS phone either by using SSH, by putting it +online somewhere, emailing it to yourself, etc. + +Then either in Downloads, Transfers or using the file manager install the RPM. + +There should now be an new icon in your apps menu called "Sokoban". + +## Building for other architectures + +All relevant command are called with `sb2 -t SailfishOS-latest-aarch64 …`, +so creating a new Dockerfile or replacing `SailfishOS-latest-aarch64` with +one of the other installed architectures this project should build for that +architecture. + +Available architectures in [SFOSBID](https://codeberg.org/aerique/sfosbid): + +- `aarch64` +- `armv7hl` (this is the old 32-bit Sailfish OS architecture) +- `i486` + +Building for the other architectures has not been tested. diff --git a/examples/sokoban/platforms/sailfish-os/harbour-sokoban.desktop b/examples/sokoban/platforms/sailfish-os/harbour-sokoban.desktop new file mode 100644 index 0000000..6169c7d --- /dev/null +++ b/examples/sokoban/platforms/sailfish-os/harbour-sokoban.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +X-Nemo-Single-Instance=no +X-Nemo-Application-Type=no-invoker +Icon=harbour-sokoban +Exec=qt-runner harbour-sokoban +Name=Sokoban + +[X-Sailjail] +Sandboxing=Disabled diff --git a/examples/sokoban/platforms/sailfish-os/harbour-sokoban.spec b/examples/sokoban/platforms/sailfish-os/harbour-sokoban.spec new file mode 100644 index 0000000..90fca16 --- /dev/null +++ b/examples/sokoban/platforms/sailfish-os/harbour-sokoban.spec @@ -0,0 +1,43 @@ +Name: harbour-sokoban +Summary: Sokoban game for Sailfish OS + +Version: 0.1 +Release: 1 + +Group: Amusements/Games +URL: https://gitlab.com/eql/lqml/-/tree/master/examples/sokoban +License: "It's complicated." + +%description +Sokoban LQML Example for Sailfish OS. + +# These are all installed in /opt/qt5 and not detected on RPM install. +%global __requires_exclude ^libQt5.*?\\.so.*$ + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_datadir}/applications +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps +install -m 755 app %{buildroot}%{_bindir}/harbour-sokoban +install -m 644 ../../../../ecl/build/libecl.so.23.9.9 %{buildroot}%{_libdir}/libecl.so.23.9.9 +install -m 644 harbour-sokoban.desktop %{buildroot}%{_datadir}/applications/harbour-sokoban.desktop +install -m 644 harbour-sokoban.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/harbour-sokoban.png +strip %{buildroot}%{_bindir}/harbour-sokoban +strip %{buildroot}%{_libdir}/libecl.so.23.9.9 +cd %{buildroot}%{_libdir} +ln -s libecl.so.23.9.9 libecl.so.23.9 +ln -s libecl.so.23.9.9 libecl.so.23 + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +# XXX no idea how and why this is created +%exclude %{_libdir}/documentation.list +%{_bindir}/harbour-sokoban +%{_libdir}/libecl.so.23 +%{_libdir}/libecl.so.23.9 +%{_libdir}/libecl.so.23.9.9 +%{_datadir}/applications/harbour-sokoban.desktop +%{_datadir}/icons/hicolor/128x128/apps/harbour-sokoban.png