Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alpine-linux compiling #1966

Open
Szasdragon opened this issue Apr 12, 2023 · 9 comments
Open

Alpine-linux compiling #1966

Szasdragon opened this issue Apr 12, 2023 · 9 comments

Comments

@Szasdragon
Copy link

I followed the docs but when try to install the debian package there is an error:

dpkg: error processing archive EmptyEpsilon.deb (--install):
package arcitecture () does not match system (musl-linux-amd64)

This is the same pc, wich compiled the game.
Did I missed some step or cmake or ninja had to have more arguments?

@kwadroke
Copy link

kwadroke commented Apr 14, 2023

Alpine Linux uses .apk packages & not .deb packages. It looks like the wiki page you linked to has wrong information in it for installation. Probably was a copy and paste of the Debian instructions.

I started working on an APKBUILD file for EmptyEpsilon a while back. I should probably get back to it and share it.

@Szasdragon
Copy link
Author

Thanks. I was thinking, something is off. New in Alpine Linux. I found recommendation of Alpine Linux, because it use little resources. Just get started reusing some old hardware as Empty Epsilon kiosk. Can you provide link to your guide?

@kwadroke
Copy link

I'll update the Wiki page hopefully this weekend with updated instructions.

@Szasdragon
Copy link
Author

Thx.

@kwadroke
Copy link

Here is my APKBUILD file for EmptyEpsilon. Tested on x86 Edge. Should work on 3.17 on x86_64.
These instructions assume you're building for x86_64, if not replace that with your CPU Arch in the commands below. You won't need to change the APKBUILD file to change your CPU Arch.

You'll need to install alpine-sdk doas apk install alpine-sdk
Configure your Signing Key once with abuild-keygen -a -i

Create a couple of directories in your home directory: mkdir -p ~/alpine-build/emptyepsilon
Create a file and save it as ~/alpine-build/emptyepsilon/APKBUILD with the contents below.

# Contributor:
# Maintainer:
pkgname=emptyepsilon
## Change pkgver to the latest release version
pkgver=2022.10.28  
pkgrel=0
pkgdesc="Starship Bridge Simulator game"
url="https://github.com/daid/EmptyEpsilon"
## build for all but s390x - no 3D GPU
arch="all !s390x"
license="GPL-2.0-only"
depends="sdl2"
makedepends="
  pkgconf
  sdl2
  sdl2-dev
  opus-dev
  freetype-dev
  cmake
  ninja
  build-base 
  "
checkdepends=""
install=""
subpackages="" 
source="
  EE-${pkgver}.tar.gz::https://github.com/daid/EmptyEpsilon/archive/refs/tags/EE-${pkgver}.tar.gz
  SP-${pkgver}.tar.gz::https://github.com/daid/SeriousProton/archive/refs/tags/EE-${pkgver}.tar.gz
"
builddir="$srcdir/"

prepare() {
	default_prepare
}

build() {
	cd EmptyEpsilon-EE-${pkgver}
        ## Scripting this here as it has to be updated for every new $pkgver instead of updating a .patch for every update - just change the $pkgver at top
        echo set\(PROJECT_VERSION ${pkgver}\) > version.cmake
        echo set\(PROJECT_VERSION_MAJOR $(echo ${pkgver} | cut -d'.' -f1)\) >> version.cmake
        echo set\(PROJECT_VERSION_MINOR $(echo ${pkgver} | cut -d'.' -f2)\) >> version.cmake
        echo set\(PROJECT_VERSION_PATCH $(echo ${pkgver} | cut -d'.' -f3)\) >> version.cmake
	
	mkdir _build
	cd _build
	cmake .. -G Ninja -DCMAKE_INSTALL_PREFIX:PATH=/usr -DSERIOUS_PROTON_DIR=$PWD/../../SeriousProton-EE-${pkgver}/ -DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=./version.cmake
        ninja
}

check() {
	# Replace with proper check command(s)
	:
}

package() {
	cd EmptyEpsilon-EE-${pkgver}/_build
	DESTDIR="$pkgdir" ninja install
}

sha512sums="
"

To update the checksums in the APKBUILD file, run abuild checksum. Only needs to be ran once per EE version. This will need to be ran again if the version in pkgver is changed
To Build: run abuild -r

If it compiles successfully you should have a EmptyEpsilon APK file in your home directory at ~/packages/alpine-build/x86_64/emptyepsilon-2022.10.28-r0.apk
Install it with: doas apk add ~/packages/alpine-build/x86_64/emptyepsilon-2022.10.28-r0.apk

There should be a Icon in your Applications menu (or wherever your Window Manager keeps your Icons for application launcher)
The binary for EE is located at /usr/bin/EmptyEpsilon

@kwadroke
Copy link

Hopefully I didn't miss anything. Let me know if you still have issues.
And sorry it took so long to get this posted. I'll be updating the wiki with these instructions later on.

@daid
Copy link
Owner

daid commented Apr 23, 2023

FYI: Listed license is slightly wrong. The code is GPLv2, but not all assets are. Common mistake, and most packaging systems have easy way to deal with this except for packing the assets in a 2nd package.

@kwadroke
Copy link

FYI: Listed license is slightly wrong. The code is GPLv2, but not all assets are. Common mistake, and most packaging systems have easy way to deal with this except for packing the assets in a 2nd package.

I'm aware of this. One of the reasons I haven't updated the Wiki yet.
For self packaging & installing this should be fine for right this moment. Basically: it compiles; ship it.
For inclusion into the Alpine Linux Repositories and to make it right: more work will need to be done to split it up into 2 (or more) sets of packages. It's possible the non-free assets may make it not able to be included in the Alpine Repos. I plan on eventually submitting it to the Repos once the package is split up and see if it can be added.

@daid
Copy link
Owner

daid commented Apr 24, 2023

You could put it with a "custom" license in the APKBUILD on the wiki, that would at least archive the instructions better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants