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