1
0
Fork
You've already forked goa
0
forked from genodelabs/goa
Tool for streamlining the development of Genode applications
  • Tcl 88.4%
  • Makefile 8.1%
  • PHP 3%
  • Pascal 0.4%
  • CMake 0.1%
2026年02月06日 17:55:56 +01:00
bin Check remote URLs and migrate to Codeberg 2026年02月06日 15:51:32 +01:00
examples examples: remove goarc from profiling example 2025年10月30日 20:34:08 +01:00
share validate runtime file against hsd (run & export) 2026年02月06日 15:54:06 +01:00
.gitignore Add var to .gitignore 2019年11月25日 20:27:38 +01:00
LICENSE LICENSE and .gitignore 2019年11月07日 11:54:06 +01:00
README Update README (github -> codeberg) 2026年02月06日 17:55:56 +01:00

 ===========================================
 Goa - goal, but reached a little bit sooner
 ===========================================
Goa is a command-line-based workflow tool for the development of applications
for the [https://genode.org - Genode OS Framework]. It streamlines the work of
cross-developing Genode application software using a GNU/Linux-based host
system for development, in particular
* Importing 3rd-party source code,
* Building software using commodity build systems such as CMake,
* Test-running software on the host system,
* Crafting runtime configurations for deployment, and
* Packaging and publishing the software for the integration into Genode
 systems like [https://genode.org/download/sculpt - Sculpt OS].
Goa is solely geared towards application software. It does _not_ address the
following topics:
* Integration of complete Genode systems,
* Test automation,
* Continuous testing and integration (CI).
Those topics are covered by the tools that come with the Genode project and
are described in Chapter 5 of the Genode Foundations book:
[https://genode.org/documentation/genode-foundations/23.05/development/index.html]
Installation
------------
# It is recommended to use the latest long-term support (LTS) version of
 Ubuntu on a 64-bit x86 PC. Make sure that your installation satisfies the
 following requirements.
 * _libSDL-dev_ needed to run system scenarios directly on your host OS,
 * _tclsh_ and _expect_ needed by the tools,
 * _bubblewrap_ for sandboxed build environments,
# Clone the Goa repository:
 ! git clone https://codeberg.org/genodelabs/goa.git
 The following steps refer to the directory of the clone as '<goa-dir>'.
# Enable your shell to locate the 'goa' tool by either
 * Creating a symbolic link in one of your shell's binary-search
 locations (e.g., if you use a 'bin/' directory in your home directory,
 issue 'ln -s <goa-dir>/bin/goa ~/bin/'), or alternatively
 * Add '<goa-dir>/bin/>' to your 'PATH' environment variable, e.g.,
 (replace '<goa-dir>' with the absolute path of your clone):
 ! export PATH=$PATH:<goa-dir>/bin
# Provide the latest Genode toolchain by either
 * Installing the Genode toolchain following the instructions at
 [https://genode.org/download/tool-chain]
 * Making sure _squashfs-tools_ and _squashfuse_ are installed so that Goa
 is able to download the latest Genode toolchain and make it available in
 the sandboxed build environment
# Optionally, enable bash completion by adding the following line to your
 '~/.bashrc' file:
 ! source <goa-dir>/share/bash-completion/goa
Usage
-----
Once installed, obtain further information about the use of Goa via
the 'goa help' command.
Step-by-step tutorials
----------------------
The following article series gets you started with using Goa.
:Streamlining the development of Genode applications:
 [https://genodians.org/nfeske/2019-11-25-goa]
:Sticking together a little Unix (part 1):
 [https://genodians.org/nfeske/2019-12-13-goa-unix-bash]
:Sticking together a little Unix (part 2):
 [https://genodians.org/nfeske/2019-12-19-goa-unix-terminal]
:Sticking together a little Unix (part 3):
 [https://genodians.org/nfeske/2019-12-22-goa-unix-pipes]
:Publishing packages:
 [https://genodians.org/nfeske/2020-01-16-goa-publish]