Hello, I want to learn Genode and SculptOS so I am trying to learn how to port applications to Genode/SculptOS as a learning experience and to help contribute to the project.
I have never packaged an application or ported one before, so this is a first time experience. I know that Genode is quite an advanced project and probably not for novices like myself, however I am very interested in the project and would like to contribute. I would guess the best way to learn how to port applications and make packages is by actually trying to just do it.
I've been looking around the internet trying to find various guides from github and genodians.org to learn how to do this. So far I have come to the conclusion that I need to use Goa on a Linux system to build these ports. So I am using a virtual machine with Ubuntu to do so. However none of the Goa guides show how to actually install Goa, so that is what I have been struggling to find information on.
I am now reading the Genode Foundations Book as it seems to have more information on compiling the genode applications and tools from source.
I am using a virtual machine running Ubuntu 24.04 LTS and I have installed the necessary packages as stated in the book:
"Recommended development environment Genode is regularly used and devel- oped on GNU/Linux. It is recommended to use the latest long-term support (LTS) version of Ubuntu. Make sure that your installation satisfies the following require- ments: • GNU Make version 3.81 (or newer) needed by the build system, • libsdl2-dev, libdrm-dev, and _libgbm-dev needed to run interactive system scenarios directly on Linux, • tclsh and expect needed by test-automation and work-flow tools, • xmllint for validating configurations, • qemu, xorriso, sgdisk, and e2tools needed for running system scenarios on non- Linux platforms via the Qemu emulator."
Reading the Goa github readme, it says I need the genode tool_chain. To get the genode tool chain, I have cloned the genode github repository and I have the source tree with the genode/tool/tool_chain file
I have run the following commands: "git clone https://github.com/genodelabs/genode.git"
"cd <genode-dir> git checkout -b 24.05 24.05"
"cd <genode-dir> ./tool/create_builddir x86_64"
Reading the Genode Tool_Chain section on the genode website it says: "Compile from source
For those of you who prefer compiling the tool chain from source, we provide a tool for downloading, building, and installing the Genode tool chain. You find the tool in Genode's source tree at tool/tool_chain. For usage instructions, just start the tool without arguments."
I have run this command: "./genode/tool/tool_chain"
Is this what is meant by start the tool without arguments?
The following message comes up:
"~$ ./genode/tool/tool_chain bash: line 1: gcc: command not found Need to have 'flex' installed. Need to have 'bison' installed. Need to have 'g++' installed. Need to have 'libncurses' installed. Need to have 'libncurses' installed. Need to have 'texinfo' installed. Need to have 'libexpat' installed. bash: line 1: gnatmake: command not found Need to have GNAT installed and the GNAT version must match the GCC version (found GCC ). Need to have 'libgmp' installed. genode/tool/tool_chain:170: *** Please install missing tools.. Stop."
Do I have to also manually install each of these packages using
sudo apt install gcc flex bison g++ .... etc
I would have thought that a make file or something similar would manually install all the dependencies for me? I am just not sure if I am doing this correctly and want to know if I am doing something wrong.
I previously installed each dependency/packages needed as stated in the error message until I had no errors left. Then it seemed to start compiling the genode tool_chain via GCC, however it continued compiling for several hours, so I thought maybe I was doing it the incorrect way, so I cancelled the compilation. I want to first ask if I am even doing this the correct way before I spend more time trying to compile something incorrectly.
Thank you.
Hi Jack,
I'm amazed that you pushed through the many obstacles you experienced as a first-time user. It's a valuable feedback on what we can improve w.r.t. documentation. The Goa installation guide is actually found in the README file but maybe we need to make this more prominent.
Building the tool chain from source indeed takes quite some time and computation. This is why we provide a pre-compiled tool chain. Please download the archive from [1] and follow the install instructions [2]. This saves you the time and hassle to compile the tool chain from source.
[1] https://sourceforge.net/projects/genode/files/genode-toolchain/23.05/ [2] https://genode.org/download/tool-chain
Cheers Johannes
On 02/07/2024 03:58, Jack Curran wrote:
Hello, I want to learn Genode and SculptOS so I am trying to learn how to port applications to Genode/SculptOS as a learning experience and to help contribute to the project.
I have never packaged an application or ported one before, so this is a first time experience. I know that Genode is quite an advanced project and probably not for novices like myself, however I am very interested in the project and would like to contribute. I would guess the best way to learn how to port applications and make packages is by actually trying to just do it.
I've been looking around the internet trying to find various guides from github and genodians.org to learn how to do this. So far I have come to the conclusion that I need to use Goa on a Linux system to build these ports. So I am using a virtual machine with Ubuntu to do so. However none of the Goa guides show how to actually install Goa, so that is what I have been struggling to find information on.
I am now reading the Genode Foundations Book as it seems to have more information on compiling the genode applications and tools from source.
I am using a virtual machine running Ubuntu 24.04 LTS and I have installed the necessary packages as stated in the book:
"Recommended development environment Genode is regularly used and devel- oped on GNU/Linux. It is recommended to use the latest long-term support (LTS) version of Ubuntu. Make sure that your installation satisfies the following require- ments: • GNU Make version 3.81 (or newer) needed by the build system, • libsdl2-dev, libdrm-dev, and _libgbm-dev needed to run interactive system scenarios directly on Linux, • tclsh and expect needed by test-automation and work-flow tools, • xmllint for validating configurations, • qemu, xorriso, sgdisk, and e2tools needed for running system scenarios on non- Linux platforms via the Qemu emulator."
Reading the Goa github readme, it says I need the genode tool_chain. To get the genode tool chain, I have cloned the genode github repository and I have the source tree with the genode/tool/tool_chain file
I have run the following commands: "git clone https://github.com/genodelabs/genode.git"
"cd <genode-dir> git checkout -b 24.05 24.05"
"cd <genode-dir> ./tool/create_builddir x86_64"
Reading the Genode Tool_Chain section on the genode website it says: "Compile from source
For those of you who prefer compiling the tool chain from source, we provide a tool for downloading, building, and installing the Genode tool chain. You find the tool in Genode's source tree at tool/tool_chain. For usage instructions, just start the tool without arguments."
I have run this command: "./genode/tool/tool_chain"
Is this what is meant by start the tool without arguments?
The following message comes up:
"~$ ./genode/tool/tool_chain bash: line 1: gcc: command not found Need to have 'flex' installed. Need to have 'bison' installed. Need to have 'g++' installed. Need to have 'libncurses' installed. Need to have 'libncurses' installed. Need to have 'texinfo' installed. Need to have 'libexpat' installed. bash: line 1: gnatmake: command not found Need to have GNAT installed and the GNAT version must match the GCC version (found GCC ). Need to have 'libgmp' installed. genode/tool/tool_chain:170: *** Please install missing tools.. Stop."
Do I have to also manually install each of these packages using
sudo apt install gcc flex bison g++ .... etc
I would have thought that a make file or something similar would manually install all the dependencies for me? I am just not sure if I am doing this correctly and want to know if I am doing something wrong.
I previously installed each dependency/packages needed as stated in the error message until I had no errors left. Then it seemed to start compiling the genode tool_chain via GCC, however it continued compiling for several hours, so I thought maybe I was doing it the incorrect way, so I cancelled the compilation. I want to first ask if I am even doing this the correct way before I spend more time trying to compile something incorrectly.
Thank you. _______________________________________________ users mailing list -- users@lists.genode.org To unsubscribe send an email to users-leave@lists.genode.org Archived at https://lists.genode.org/mailman3/hyperkitty/list/users@lists.genode.org/mes...
Hello Johannes, thank you for the quick reply!
I have been watching your Fosdem lectures on youtube and the Fosdem website to try learn how to use Goa.
Yes I had visited the link on source forge however it said:
"*** Genode migrated to https://github.com/genodelabs/genode *** *** From version 24.08 on, release are exclusively available from *** *** https://github.com/genodelabs/genode/releases *** *** The files here are kept as an archive only."
So I thought since you have migrated to github now, the latest tool chain is on the github repository releases, but I couldn't find the pre-compiled genode-toolchain for 24.08, so I thought I must have to compile it myself.
"From version 24.08 on, release are exclusively available from https://github.com/genodelabs/genode/releases"
Is 23.05 on source forge the most recent pre-compiled tool_chain available currently?
Thank you, I will use that now instead of compiling myself.
On Tue, 2 Jul 2024, at 09:17, Johannes Schlatow wrote:
Hi Jack,
I'm amazed that you pushed through the many obstacles you experienced as a first-time user. It's a valuable feedback on what we can improve w.r.t. documentation. The Goa installation guide is actually found in the README file but maybe we need to make this more prominent.
Building the tool chain from source indeed takes quite some time and computation. This is why we provide a pre-compiled tool chain. Please download the archive from [1] and follow the install instructions [2]. This saves you the time and hassle to compile the tool chain from source.
[1] https://sourceforge.net/projects/genode/files/genode-toolchain/23.05/ [2] https://genode.org/download/tool-chain
Cheers Johannes
On 02/07/2024 03:58, Jack Curran wrote:
Hello, I want to learn Genode and SculptOS so I am trying to learn how to port applications to Genode/SculptOS as a learning experience and to help contribute to the project.
I have never packaged an application or ported one before, so this is a first time experience. I know that Genode is quite an advanced project and probably not for novices like myself, however I am very interested in the project and would like to contribute. I would guess the best way to learn how to port applications and make packages is by actually trying to just do it.
I've been looking around the internet trying to find various guides from github and genodians.org to learn how to do this. So far I have come to the conclusion that I need to use Goa on a Linux system to build these ports. So I am using a virtual machine with Ubuntu to do so. However none of the Goa guides show how to actually install Goa, so that is what I have been struggling to find information on.
I am now reading the Genode Foundations Book as it seems to have more information on compiling the genode applications and tools from source.
I am using a virtual machine running Ubuntu 24.04 LTS and I have installed the necessary packages as stated in the book:
"Recommended development environment Genode is regularly used and devel- oped on GNU/Linux. It is recommended to use the latest long-term support (LTS) version of Ubuntu. Make sure that your installation satisfies the following require- ments: • GNU Make version 3.81 (or newer) needed by the build system, • libsdl2-dev, libdrm-dev, and _libgbm-dev needed to run interactive system scenarios directly on Linux, • tclsh and expect needed by test-automation and work-flow tools, • xmllint for validating configurations, • qemu, xorriso, sgdisk, and e2tools needed for running system scenarios on non- Linux platforms via the Qemu emulator."
Reading the Goa github readme, it says I need the genode tool_chain. To get the genode tool chain, I have cloned the genode github repository and I have the source tree with the genode/tool/tool_chain file
I have run the following commands: "git clone https://github.com/genodelabs/genode.git"
"cd <genode-dir> git checkout -b 24.05 24.05"
"cd <genode-dir> ./tool/create_builddir x86_64"
Reading the Genode Tool_Chain section on the genode website it says: "Compile from source
For those of you who prefer compiling the tool chain from source, we provide a tool for downloading, building, and installing the Genode tool chain. You find the tool in Genode's source tree at tool/tool_chain. For usage instructions, just start the tool without arguments."
I have run this command: "./genode/tool/tool_chain"
Is this what is meant by start the tool without arguments?
The following message comes up:
"~$ ./genode/tool/tool_chain bash: line 1: gcc: command not found Need to have 'flex' installed. Need to have 'bison' installed. Need to have 'g++' installed. Need to have 'libncurses' installed. Need to have 'libncurses' installed. Need to have 'texinfo' installed. Need to have 'libexpat' installed. bash: line 1: gnatmake: command not found Need to have GNAT installed and the GNAT version must match the GCC version (found GCC ). Need to have 'libgmp' installed. genode/tool/tool_chain:170: *** Please install missing tools.. Stop."
Do I have to also manually install each of these packages using
sudo apt install gcc flex bison g++ .... etc
I would have thought that a make file or something similar would manually install all the dependencies for me? I am just not sure if I am doing this correctly and want to know if I am doing something wrong.
I previously installed each dependency/packages needed as stated in the error message until I had no errors left. Then it seemed to start compiling the genode tool_chain via GCC, however it continued compiling for several hours, so I thought maybe I was doing it the incorrect way, so I cancelled the compilation. I want to first ask if I am even doing this the correct way before I spend more time trying to compile something incorrectly.
Thank you. _______________________________________________ users mailing list -- users@lists.genode.org To unsubscribe send an email to users-leave@lists.genode.org Archived at https://lists.genode.org/mailman3/hyperkitty/list/users@lists.genode.org/mes...
users mailing list -- users@lists.genode.org To unsubscribe send an email to users-leave@lists.genode.org Archived at https://lists.genode.org/mailman3/hyperkitty/list/users@lists.genode.org/mes...
Hi Johannes,
On 2024-07-02 10:17, Johannes Schlatow wrote:
Building the tool chain from source indeed takes quite some time and computation. This is why we provide a pre-compiled tool chain. Please download the archive from [1] and follow the install instructions [2]. This saves you the time and hassle to compile the tool chain from source.
Jack's question made me think of how Goa could possibly assist with the installation of the tool chain for first-time users. Goa already detects if the tool chain is missing and backs out. A more user-friendly way with dealing with this situation would be offering a Goa sub command for the installation of the current tool chain. This sub command could implicitly take care of the integrity check of the download against the known-good SHA256 sum.
Following this line of thinking a little bit more: Ideally, all one would need to kick off development for Genode would be Goa. Once Goa is installed, it could assert the role of an assistant for the user even more than today. E.g., In principle, Goa could detect the used Linux distro and could offer installation commands for missing packages. This would not only nicely streamline the experience of new users, but would also make the setup of a Genode development environment on a fresh Linux installation (thinking of a dev VM) a breeze.
BTW, I've updated the tool-chain download page today to let it point to a GitHub release instead of Sourceforge. The known-good SHA256 value is now also presented.
Cheers Norman
Hi Norman,
On 02/07/2024 11:13, Norman Feske wrote:
Hi Johannes,
On 2024-07-02 10:17, Johannes Schlatow wrote:
Building the tool chain from source indeed takes quite some time and computation. This is why we provide a pre-compiled tool chain. Please download the archive from [1] and follow the install instructions [2]. This saves you the time and hassle to compile the tool chain from source.
Jack's question made me think of how Goa could possibly assist with the installation of the tool chain for first-time users. Goa already detects if the tool chain is missing and backs out. A more user-friendly way with dealing with this situation would be offering a Goa sub command for the installation of the current tool chain. This sub command could implicitly take care of the integrity check of the download against the known-good SHA256 sum.
Following this line of thinking a little bit more: Ideally, all one would need to kick off development for Genode would be Goa. Once Goa is installed, it could assert the role of an assistant for the user even more than today. E.g., In principle, Goa could detect the used Linux distro and could offer installation commands for missing packages. This would not only nicely streamline the experience of new users, but would also make the setup of a Genode development environment on a fresh Linux installation (thinking of a dev VM) a breeze.
BTW, I've updated the tool-chain download page today to let it point to a GitHub release instead of Sourceforge. The known-good SHA256 value is now also presented.
What a nice idea!
Cheers Johannes
I was planning on porting Emacs to Sculpt OS as a first project. I understand that Vim is already in Sculpt OS, however I use Emacs. I don't think anyone has ported it yet?
Would this be a realistic goal to port Emacs to Sculpt OS as a first time Goa user?
Thanks
On 02/07/2024 11:49, Jack Curran wrote:
I was planning on porting Emacs to Sculpt OS as a first project. I understand that Vim is already in Sculpt OS, however I use Emacs. I don't think anyone has ported it yet?
I'm not aware of any Emacs port.
Would this be a realistic goal to port Emacs to Sculpt OS as a first time Goa user?
From a brief look, this looks quite feasible. Note that we don't have GTK support, so you need to stick to the terminal version of emacs. Also, Emacs can have quite a long list of dependencies. So, you should probably start with something like `./configure --without-all --without-x` as a baseline and then add features one by one.
Johannes
Okay thank you for the advice! I will attempt to port emacs soon.
Thank you for letting me know about GTK. I was going to make a question about the graphical front end of Sculpt OS. What is the GUI in Sculpt OS running on? Is the Window Manager Preset and Leitzentrale using the same graphics engine? Is it QT? or Opengl or something else?
Are there plans to eventually support GTK? Many applications I use in NixOS are GTK, so not having GTK would mean we would lose many applications that could be ported to Sculpt.
Hi Jack,
On 03/07/2024 11:22, Jack Curran wrote:
Okay thank you for the advice! I will attempt to port emacs soon.
Thank you for letting me know about GTK. I was going to make a question about the graphical front end of Sculpt OS. What is the GUI in Sculpt OS running on? Is the Window Manager Preset and Leitzentrale using the same graphics engine? Is it QT? or Opengl or something else?
Sculpt uses our own UI widget renderer: https://genode.org/documentation/release-notes/23.11#Dialog_API_for_low-comp...
Are there plans to eventually support GTK? Many applications I use in NixOS are GTK, so not having GTK would mean we would lose many applications that could be ported to Sculpt.
Yesterday, Norman updated the challenges page and actually added GTK to our wishlist:
Johannes Schlatow wrote:
Yesterday, Norman updated the challenges page and actually added GTK to
our wishlist: http://genodians.org/nfeske/2024-07-02-challenges
Ah very interesting! Sorry I must have missed the genodians post yesterday, I've just read it now. Very exciting goals, I like them. It's great to see Ladybird, I've been following that project for roughly the last year. I'm hopeful we will get browser diversity with Ladybird and Servo.
I'm also excited to see the goal of getting Goa SDK to work on Sculpt OS natively without reliance on Linux VM's. I'll definitely be using it on Sculpt once it becomes reality.
On 7/3/24 5:36 AM, Johannes Schlatow wrote:
Hi Jack,
On 03/07/2024 11:22, Jack Curran wrote:
Okay thank you for the advice! I will attempt to port emacs soon.
Thank you for letting me know about GTK. I was going to make a question about the graphical front end of Sculpt OS. What is the GUI in Sculpt OS running on? Is the Window Manager Preset and Leitzentrale using the same graphics engine? Is it QT? or Opengl or something else?
Sculpt uses our own UI widget renderer: https://genode.org/documentation/release-notes/23.11#Dialog_API_for_low- complexity_interactive_applications
Just to provide a little more context, as this is another very interesting feature of Genode! There is the low-level GUI framework (called "Nitpicker" until recently), with the new higher-level "Dialog" API referenced above recently added on top of that. I continue to be amazed at how they keep the TCB low while exposing an impressively flexible and powerful feature set. (For example, the smooth animations and graphical linkages of the Component Graph in Leitzentrale.)
On this topic, I am eagerly awaiting a couple of things on the Roadmap: first, "Application-level compositing using Genode's dialog API", i.e. reusable widgets, and then the "Genode Applications" book, which is scheduled for November. The latter should be a game-changer (for me, at least), because the Genode documentation is always so good, and this book should make it much easier for new component developers (like me) to get started.
Are there plans to eventually support GTK? Many applications I use in NixOS are GTK, so not having GTK would mean we would lose many applications that could be ported to Sculpt.
Yesterday, Norman updated the challenges page and actually added GTK to our wishlist:
Very interesting update!
Happy Sculpting!
John J. Karcher devuser@alternateapproach.com