Installing software in genode

Norman Feske norman.feske at genode-labs.com
Mon Apr 3 18:41:14 CEST 2023


Hello Divya,

On 2023-04-02 15:27, Divya Sharma wrote:
> ...
> "Now that our little Unix scenario has become publicly available in the 
> form of downloadable depot content, it is ready to be deployed by users 
> of Sculpt OS."
> 
> can you elaborate more about how to client-side works? or how users can 
> find/download the custom apps in genode os?
> do we need to change the script in the "depot" directory?

the Sculpt system needs two ingredients to install a custom software 
package as published via Goa: A download location and a public GPG key. 
Once you make Sculpt aware of those two pieces of information, the 
package manager takes care about the installation.

For example, if you have followed the steps of the Goa tutorial using 
the depot-user name "divya", and uploaded the content of the 
'var/public/' directory - containing the signed results of the 
publishing step - to a web server, let's say to the hypothetical place 
"https://divyasharma.org/genode/divya/", you should add a directory 
named "divya" to your depot/ directory on the Sculpt partition and add 
the following two files to this directory:

depot/divya/download

   This one contains the download URL without the last path element.
   So in the example, that would be "https://divyasharma.org/genode"
   (without the quotes).

depot/divya/pubkey

   Your public PGP key matching the private key that you used for
   Goa's publish step. The key should be in ASCII-armored form.

With these precaution taken, Sculpt knows where to download software 
provided by "divya" and how to validate the integrity of downloads.

Now, in order to deploy an actual component, there are multiple options.

- You may add a launcher that refers to a package from you as 'pkg'
   attribute. You may take the examples at /config/laucher/ as blueprint.
   With a new launcher file created, you will see a new menu entry appear
   at the '+' menu. The package will be downloaded and started as soon
   as you click on the new menu entry.

- You may manually add a <start> node referring to your package as
   'pkg' attribute in your /config/deploy file. Once you save the file,
   the package will be downloaded automatically.

For both approaches, you need to specify the session routing, which may 
be difficult. Alternatively, you may prompt Sculpt to serve you the nice 
session-routing dialog as follows:

- Add a depot index that refers to your pkg. I recommend placing a file
   named depot/local/index/22.04 (the actual file name has to match your
   Sculpt version number) with content like this:

   <index>
     <supports arch="x86_64"/>
     <pkg path="divya/pkg/unix_example/2023-04-03" info="Divya's Unix"/>
   </index>

   With the file added, you will find a new depot user "local" in the
   Depot section of the '+' menu. This local user will offer you
   the menu entry "Divya's Unix". Once selected, you can install and
   configure the package similar to how you already did for the various
   genodelabs packages.

Should you want to create a custom Sculpt Image with your download 
location and public key added by default, you can add this information 
at 'repos/*/sculpt/depot/divya/' (see [1] for reference) and add your 
name to 'repos/gems/sculpt/default-pc.sculpt' under the 'depot' tag (see 
the last line of [2]).

[1] https://github.com/genodelabs/genode/tree/master/repos/gems/sculpt/depot
[2] 
https://github.com/genodelabs/genode/blob/master/repos/gems/sculpt/default-pc.sculpt

This avoids the need for manually adding the 'download' and 'pubkey' files.

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list