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-p...
This avoids the need for manually adding the 'download' and 'pubkey' files.
Cheers Norman