Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/genodelabs/goa

Tool for streamlining the development of Genode applications
https://github.com/genodelabs/goa

cplusplus cpp gcc genode goa linux osdev sculpt-os tool

Last synced: 2 days ago
JSON representation

Tool for streamlining the development of Genode applications

Awesome Lists containing this project

README

        

===========================================
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
------------

# Install the latest Genode tool chain on a GNU/Linux OS on a 64-bit x86 PC.
It is recommended to use the latest long-term support (LTS) version of
Ubuntu. 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,
* _xmllint_ for validating configurations,

# Clone the Goa repository:

! git clone https://github.com/genodelabs/goa.git

The following steps refer to the directory of the clone as ''.

# 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 /bin/goa ~/bin/'), or alternatively

* Add '/bin/>' to your 'PATH' environment variable, e.g.,
(replace '' with the absolute path of your clone):

! export PATH=$PATH:/bin

# Optionally, enable bash completion by adding the following line to your
'~/.bashrc' file:

! source /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]