Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Render Macro

@startuml
start
:Parse STB config file and operator config for syntax errors;
:Determine Read arch of selected target device;
if (Image contains suitable manifest for platform arch?) then (Yes)
:Determine image type
(""imageLayout"" / ""image"" / ""imageZip"");
:Unpack OCI image based on manifest for required platform/arch;
:Read application requirements and STB platform config;
if (Target STB can support app?) then (Yes)
:Begin lib matching algorithm;
:Run ""ldd"" on application to find dependencies;
note left
How would we manually loaded libs
with ""dlopen"" - ldd won't show these?
end note
repeat
if (Platform already contains same (major) version of library?) then (Yes)
:Add bind mount for library to ""config.json"";
:Delete library from ""rootfs"" directory in bundle;
else (No)
:Do nothing - use version in rootfs;
endif
repeat while (More dependencies?) is (Yes)
:Add bind mounts for platform specific GPU libraries
PreferplatformspecifiedGPUlibsoverlibsinimage;
:Add additional bind mounts specified in platform config;
:Add bind mounts for any devices in platform config;
:Add devices to ""devices"" array in config;
:Add environment variables specified in platform/operator config;
:Process application capabilites;
:Add ""rdkPlugins"" section to the config accordingly;
:Add ""DobbyInit"" to args array
:Write any remaining config sections;
:Validate ""config.json"" with OCI tooling;
:Create tarball of ""rootfs"" directory and ""config.json"" file;
stop
else (No)
#PaleVioletRed:ReturnError
====
Platformcannotsupportapplication
Apprequiressomethingplatformcannotprovide;
stop
endif
else (No)
#PaleVioletRed:ReturnError
====
Appdoesnotsupporttargetarchitecture;
stop
endif
@enduml

...