mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 13:47:56 +00:00
5a1cef6381
This patch unconditionally applies the labeling of sessions and thereby removes the most common use case of 'Child_policy::filter_session_args'. Furthermore, the patch removes an ambiguity of the session labels of sessions created by the parent of behalf of its child, e.g., the PD session created as part of 'Child' now has the label "<child-name>" whereas an unlabeled PD-session request originating from the child has the label "<child-name> -> ". This way, the routing-policy of 'Child_policy::resolve_session_request' can differentiate both cases. As a consequence, the stricter labeling must now be considered wherever a precise label was specified as a key for a session route or a server- side policy selection. The simplest way to adapt those cases is to use a 'label_prefix' instead of the 'label' attribute. Alternatively, the 'label' attribute may used by appending " -> " (note the whitespace). Fixes #2171
169 lines
4.1 KiB
Plaintext
169 lines
4.1 KiB
Plaintext
source ${genode_dir}/repos/libports/run/qt5_common.inc
|
|
|
|
#
|
|
# Build
|
|
#
|
|
|
|
if {[have_spec hw_odroid_xu]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
append build_components [qt5_build_components feature]
|
|
|
|
append build_components {
|
|
app/qt5/examples/textedit
|
|
}
|
|
|
|
set use_sd_card_driver [expr [have_spec omap4] || [have_spec arndale]]
|
|
set use_ahci_driver [expr [have_spec x86] && ![have_spec linux]]
|
|
|
|
lappend_if $use_sd_card_driver build_components drivers/sd_card
|
|
lappend_if $use_ahci_driver build_components drivers/ahci
|
|
lappend_if [have_spec acpi] build_components drivers/acpi
|
|
lappend_if [have_spec linux] build_components server/ram_fs
|
|
lappend_if [expr ![have_spec linux]] build_components server/ffat_fs
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
#
|
|
# Create Qt tar archive
|
|
|
|
create_qt5_fs_tar_archive "textedit" "gui"
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
|
|
append config {
|
|
<config>
|
|
<parent-provides>}
|
|
append config [qt5_parent_provides feature]
|
|
append config {
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <child name="wm"/> <any-child/> </any-service>
|
|
</default-route>}
|
|
|
|
append config [qt5_start_nodes feature]
|
|
|
|
append_if $use_ahci_driver config {
|
|
<start name="ahci_drv">
|
|
<resource name="RAM" quantum="5M"/>
|
|
<provides> <service name="Block"/> </provides>
|
|
<config>
|
|
<policy label_prefix="ffat_fs" device="0" />
|
|
</config>
|
|
</start>}
|
|
|
|
append_if $use_sd_card_driver config {
|
|
<start name="sd_card_drv">
|
|
<resource name="RAM" quantum="1M" />
|
|
<provides><service name="Block"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec linux] config {
|
|
<start name="ram_fs">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<!-- constrain sessions according to their labels -->
|
|
<policy label_prefix="textedit" root="/" writeable="yes" />
|
|
<policy label_prefix="textedit2" root="/" writeable="yes" />
|
|
</config>
|
|
</start>}
|
|
|
|
append_if [expr ![have_spec linux]] config {
|
|
<start name="ffat_fs">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<!-- constrain sessions according to their labels -->
|
|
<policy label_prefix="textedit" root="/" writeable="yes" />
|
|
</config>
|
|
</start>}
|
|
|
|
append config {
|
|
<start name="textedit">
|
|
<resource name="RAM" quantum="70M"/>
|
|
<config xpos="3" ypos="0" width="500" height="710">
|
|
<libc stdout="/dev/log" stderr="/dev/log">
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<tar name="qt5_fs_textedit.tar"/>
|
|
<dir name="fs"> <fs/> </dir>
|
|
</vfs>
|
|
</libc>
|
|
</config>
|
|
</start>
|
|
<start name="textedit2">
|
|
<binary name="textedit" />
|
|
<resource name="RAM" quantum="70M"/>
|
|
<config xpos="512" ypos="0" width="500" height="710">
|
|
<libc stdout="/dev/log" stderr="/dev/log">
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<tar name="qt5_fs_textedit.tar"/>
|
|
<dir name="fs"> <fs/> </dir>
|
|
</vfs>
|
|
</libc>
|
|
</config>
|
|
</start>
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
append boot_modules [qt5_boot_modules feature]
|
|
|
|
append boot_modules {
|
|
textedit
|
|
freetype.lib.so
|
|
gallium.lib.so
|
|
icu.lib.so
|
|
ld.lib.so
|
|
libc.lib.so
|
|
libc_pipe.lib.so
|
|
libm.lib.so
|
|
libpng.lib.so
|
|
jpeg.lib.so
|
|
pthread.lib.so
|
|
qt5_core.lib.so
|
|
qt5_gui.lib.so
|
|
qt5_widgets.lib.so
|
|
qt5_xml.lib.so
|
|
zlib.lib.so
|
|
stdcxx.lib.so
|
|
qt5_fs_textedit.tar
|
|
}
|
|
|
|
# platform-specific modules
|
|
lappend_if [have_spec linux] boot_modules ram_fs
|
|
lappend_if [expr ![have_spec linux]] boot_modules ffat_fs
|
|
lappend_if $use_sd_card_driver boot_modules sd_card_drv
|
|
lappend_if $use_ahci_driver boot_modules ahci_drv
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
set disk_image "bin/test.hda"
|
|
set cmd "dd if=/dev/zero of=$disk_image bs=1024 count=65536"
|
|
puts "creating disk image: $cmd"
|
|
catch { exec sh -c $cmd }
|
|
|
|
set cmd "mkfs.vfat -F32 $disk_image"
|
|
puts "formating disk image with vfat file system: $cmd"
|
|
catch { exec sh -c $cmd }
|
|
|
|
append_if $use_ahci_driver qemu_args " -drive id=disk,file=$disk_image,format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d"
|
|
|
|
append qemu_args " -m 256 -usbdevice tablet "
|
|
|
|
run_genode_until forever
|
|
|