SabakiHQ / Sabaki

An elegant Go board and SGF editor for a more civilized age.
https://sabaki.yichuanshen.de/
MIT License
2.38k stars 375 forks source link

Sabaki for `aarch64` Linux devices #929

Open gsobell opened 1 year ago

gsobell commented 1 year ago

As I understand it, it is possible to build Electron apps for Linux Arm platforms. Would it be within the scope of the project to also include a AppImage targeted for those systems in future releases? I think this could open up Sabaki to quite a few tinkerers, on Raspberry Pi, pine64 and other boards, in addition to those who use Arm systems as daily drivers.

apetresc commented 1 year ago

Are you on Arch Linux, by any chance? You might want to try out the PKGBUILD, I suspect it'll probably work on aarch64 if Electron does.

gsobell commented 1 year ago

It failed repeatedly to build from the AUR, but succeeded building manually with $ npm run build (on a Pinebook Pro).

apetresc commented 1 year ago

What error did you get when running the PKGBUILD?

gsobell commented 1 year ago

I think the problem is:

+ linux-arm64-unpacked
- linux-unpacked'

The folder my AUR helper looks for in package() does not exist.

> sabaki@0.52.2 build
> npm run bundle && electron-builder --dir

> sabaki@0.52.2 bundle
> webpack --mode production

asset bundle.js 1.25 MiB [emitted] [minimized] (name: main) 1 related asset
orphan modules 627 KiB [orphan] 200 modules
runtime modules 937 bytes 4 modules
modules by path ./node_modules/ 1.64 MiB
  javascript modules 1.61 MiB 300 modules
  json modules 31.1 KiB 2 modules
modules by path ./src/ 747 KiB
  modules by path ./src/modules/ 124 KiB 7 modules
  modules by path ./src/*.js 31.1 KiB 2 modules
  ./src/components/App.js + 178 modules 591 KiB [built] [code generated]
modules by path external "require(/ 84 bytes
  external "require(\"@sabaki/i18n\")" 42 bytes [built] [code generated]
  external "require(\"iconv-lite\")" 42 bytes [built] [code generated]
+ 15 modules
webpack 5.74.0 compiled successfully in 41012 ms
  • electron-builder  version=23.3.3 os=6.1.7-1-MANJARO-ARM
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=linux arch=arm64 electron=13.6.9 appOutDir=dist/linux-arm64-unpacked
==> Starting check()...

// passes tests...

  14 passing (298ms)
==> Entering fakeroot environment...
==> Starting package()...
cp: cannot stat '/home/gsobell/.cache/paru/clone/sabaki/src/Sabaki-0.52.2/dist/linux-unpacked': No such file or directory
==> ERROR: A failure occurred in package().
    Aborting...
error: failed to build 'sabaki-0.52.2-1':
error: packages failed to build: sabaki-0.52.2-1
apetresc commented 6 months ago

Indeed that does seem to be the problem. Next time I'm on my Arch machine I'll try to update the PKGBUILD there to accept linux-arm64-unpacked as an output directory, that oughta do it. I'll ping you when it's pushed to the AUR.