Skip to content

Goa: add support for Jam and h/o/g ? #354

Open
@ttcoder

Description

Picking up the discussion with @nfeske on the mailing-list, about taking advantage of Be apps on SculptOS : this might be done with new repos/ports/*.port files or (more likely!) with Goa projects.

If there's ever a wish to try this out, I've just pushed a few commits with simple apps:

  • DeskCalc scientific calculator
  • Sudoku game
  • the previous demo "classics" are still there too, including Mandelbrot

By working on such 'easy' ports we would detect early issues and porting challenges in a relatively simple environment, before tackling more complex ports.

In the abstract, I guess Goa should perform these tasks:

In practice, there will be things to work out, to make haiku.lib.so work with standard SculptOS, like configuring it to not use xattr:

  • GE_XATTR_DISABLED=1 (otherwise linking will fail with "no such Genode function: path_for_genode_fd()")
  • GE_DECORATIONS_AND_WM=1 (otherwise haiku.lib.so creates client-side decorations etc which would conflict with Genode's wm and decorator)

So that would mean building the lib and buliding the app by invoking these:
GE_XATTR_DISABLED=1 GE_DECORATIONS_AND_WM=1 jam -q -j2 haiku.lib.so
and
GE_XATTR_DISABLED=1 GE_DECORATIONS_AND_WM=1 jam -q -j2 DeskCalc

And in order to invoke that, one would need to build the "reference" Jam (rather than use ft-jam or lib-boost jam, which are not quite compatible). (we don't want to go again through troublesome debugging that occured when I suggested Norman use non-compatible Jam variants on Linux, I am still feeling guilty about that!)

Other possible issues:

  • my jamfiles are a bit messy currently, in that they don't (all) build to genode/build_dir, some build inside the fossil tree (!) Should probably fix that.
  • they also hardcode building for x86_64, but the whole Be code is probably not completely in shape for compiling on Arm etc anyway, so it may be too soon to make the jamfiles architecture-agnostic yet.

If you ever tackle this, hit me with any question you have, I'll do my best to answer, and tweak my jamfiles as needed.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions