Hello Zach,
Welcome to the mailing list ;)
I can answer only one of your questions partially. But I hope this still helps, and that others chime in to fill the gaps :)
On 14.09.23 22:59, Zachary Zollers wrote:
[4] What is the best way to determine the dependencies of a component? How does the Sculpt visual composition system determine which sessions are required? When trying to run a complex component (e.g., a VMM) I often find myself doing a lot of trial and error with including libraries and starting necessary dependencies in the run script. Is there a better, or more consistent, way to determine dependencies?
Sculpt determines the required services of a subsystem by looking at the <requires> tag in its runtime config. For instance, have a look at [1] - it defines a lot of required services as well as restricting labels for some. The same sub-system but with the ability to capture frame-buffer data in the VM can be found in [2]. Consequently, it lists the same services as [1] in <requires> but adds the Capture service. The first listed service is the one who's route will be printed as connecting line to your subsystem in the tree view. Some basic services (LOG, binary/lib ROMs, PD, CPU) must not be listed in <requires> as they are routed automatically. The list contains only those services that are routed by the user in the deployment menu.
Furthermore, the required binary/lib files must be listed in the <content> tag in the runtime file.
As far as I know, creating these two lists is still manual work of the integrator. Now, I don't know if this is what you described but I'll append my own procedure anyway:
When I try to create a package and its runtime file, I usually start by creating a run script that runs my sub-system without package management and, important, without default service-routes. Actually, at the beginning, the script contains no service routes at all, so, that the components have to tell me what they need. This way, I can iterate over the requirements much faster than with a package-based system. Additionally, I add routes only with the specific labels in this process, so, I get to find also the name of each ROM file that should be listed in <content>.
I would also appreciate a more comfortable solution for this. But, admittedly, my frustration was not big enough until now in order to prioritize it over my other work.
Does that answer your question?
Cheers, Martin7
[1] repos/ports/recipes/pkg/vbox6/runtime [2] repos/ports/recipes/pkg/vbox6-capture/runtime *ü a>