2111 Commits

Author SHA1 Message Date
Christian Prochaska
c0f82a0048 qt6: set CMAKE_PLATFORM_NO_VERSIONED_SONAME variable
Fixes #5462
2025-02-24 16:39:56 +01:00
Johannes Schlatow
adcad2118f api/zlib: add pkg-config file
genodelabs/goa#81
2025-02-24 16:39:56 +01:00
Johannes Schlatow
889fe955aa depot/openssl: mirror opensslconf.h at include/
Since Goa expects include files to reside at include/ or
include/spec/{x86,x86_64,arm_64,64bit}, the src/lib/.../opensslconf.h is
missed by Goa. This commit adds Goa compatibility for the openssl api
archive.

genodelabs/goa#81
2025-02-24 16:39:56 +01:00
Christian Prochaska
b0f0e63b9f qt6: add qtwebchannel and qtwebengine APIs
Fixes #5459
2025-02-24 16:39:55 +01:00
Christian Prochaska
dbf23a7a0c qt6: add qt5compat module
Fixes #5458
2025-02-24 16:39:55 +01:00
Christian Prochaska
c9406c246e qt6: fix "file name too long" error in gn tool
Fixes #5456
2025-02-24 16:39:55 +01:00
Roman Iten
a207a5491c libports: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
Christian Prochaska
db0d76ba2f qt: support extra CMake flags
Fixes #5454
2025-02-24 16:39:20 +01:00
Christian Prochaska
9c786fcfa9 qt5: set CMAKE_SHARED_LIBRARY_SONAME_C_FLAG variable
Fixes #5453
2025-02-24 16:39:20 +01:00
Christian Prochaska
58f4a84f60 qt5: move WebEngine-related API recipes to genode-world
Fixes #5452
2025-02-24 16:39:20 +01:00
Norman Feske
2c8beb462f file-system session: root dir via session label
This patch changes the way of how the client-selected sub directory is
communicated to the server. The former opaque session argument is now
passed as last label element, which allows for the flexible tweaking
of this argument by init's session-routing and label-rewriting
mechansims. In particular, it alleviates the need for creating chroot
component instances.

This change requires the following four adaptations at the
configuration level:

- Each file-system session request must now carry a path starting
  with / as last session arguments. Hence, <vfs> <fs> nodes that
  feature a 'label' attributes must extend the attribute value
  with " -> /". For <fs> nodes with no label attribute, "/" is
  used as last label argument by default.

- For matching session-routing rules at init's configuration,
  the matching of full labels should be replaced by 'label_prefix'
  matches, excluding the last (path) argument.

- Wherever a label of a file-system session is rewritten by using
  init's 'label' attribute of a <parent> or <child> target node,
  the new attribute 'identity' should be used instead. This replaces
  the identity part of the label while preserving the client's
  directory argument.

- Analogously to the matching of session-routing rules, server-side
  policy-selection rules that formerly matched a concrete 'label'
  must be changed to match a 'label_prefix' instead.

As a good practice, 'label_prefix' values should end with " ->" if
possible, which clearly delimits the identity part of the label
used by the matching.

Issue #5445
2025-02-24 16:39:20 +01:00
Norman Feske
2719b37107 run: use ram attribute in start nodes
Issue #5448
2025-02-24 16:39:20 +01:00
Christian Prochaska
cec3a82401 libc: use more tool chain types for arm_64 and riscv
Use the unsigned long tool chain types for types previously
derived from unsigned long '__uint64_t', which is now
unsigned long long.

Issue #5431
2025-02-24 16:39:20 +01:00
Norman Feske
d2adfa150b libc: avoid nesting of atexit handler calls
In some situations, atexit handlers perform I/O (e.g., closing a file),
which entails the handling of signals. Should SIGTERM be pending, the
handling of this signal will in turn trigger the execution of atexit
handlers. To break this cycle, this patch removes atexit handlers from
the list before executing them. So no atexit handler is entered more
than once.

Fixes #5444
2025-02-24 16:39:19 +01:00
Norman Feske
7fc060438a window_layouter: handle drag/drop as actions
This patch moves the formerly hard-wired drag-and-drop handling
to the configuration level by introducing the actions "drag" and "drop".

To aid the robust handling of release events matching their
corresponding press events, the patch refines the policy-matching of the
current combination of keys against the hierarchy of <press> and
<release> nodes. If no policy for a concrete combination exists, a
release event also considers the policy of its matching <press> node.
This way, the regular drag-and-drop rules can be expressed as

  <press key="BTN_LEFT" action="drag">
     <release key="BTN_LEFT" action="drop"/>
  </press>

This also works when releasing BTN_LEFT while pressing additional keys,
for which no policy exists.

With this change, the layouter supports the matching of multiple key
sequences instead of only one, thereby supporting multiple actions at
once and allowing for decoupling different user interactions in the
configuration.

Issue #5403
2025-02-24 16:39:19 +01:00
Norman Feske
a5ae1e12bd Capture::Connection::Screen: use Blit::back2front
Issue #5428
2025-02-24 16:39:19 +01:00
Christian Helmuth
5076554f20 depot: update recipe hashes 2025-01-30 16:32:35 +01:00
Christian Helmuth
e90a4a905a libdrm: explicitly convert values to __u64
Prevent errors like follows.

  error: invalid cast from type ‘size_t’ {aka ‘long unsigned int’} to type ‘__u64’ {aka ‘long long unsigned int’}

Issue #5431
2025-01-30 16:30:15 +01:00
Alexander Boettcher
b5a074dba1 libc: add missing header for qemu port 2025-01-30 16:30:15 +01:00
Stefan Kalkowski
e113d37958 libusb: don't freeze when device vanishs
Instead of freezing, return corresponding libusb error code if the
USB device got disconnected. Therefore, components using the library
can continue to work otherwise.

Fix genodelabs/genode#5434
2025-01-30 16:30:15 +01:00
Norman Feske
ddeebbe513 libc: unify base types for arm_64 and riscv
Fixes #5431
2025-01-30 16:30:14 +01:00
Norman Feske
63b49fcdb3 Enable -ffreestanding by default
Fixes #5429
2025-01-30 16:30:14 +01:00
Christian Prochaska
9dee2fbaf3 qt6: install the SVG image format plugin
Fixes #5427
2025-01-30 16:30:14 +01:00
Christian Prochaska
b8cab63a15 qt6: fix dangling pointer in QGenodeWindowSurface
Fixes #5426
2025-01-30 16:30:14 +01:00
Christian Prochaska
bf7509312f qt6: use window title as label for GUI session
Fixes #5424
2025-01-30 16:30:14 +01:00
Christian Prochaska
6c1af53909 qt6: add 'i18n' example
Fixes #5421
2025-01-30 16:30:13 +01:00
Christian Prochaska
fe18db4d34 qt6: add 'SvgWidgets' files
Fixes #5419
2025-01-30 16:30:13 +01:00
Norman Feske
580456ef7b test-libc_fifo_pipe: adjust cap_quota
The proper accounting of caps consumed for allocation of UTCBs on
base-hw slightly increases the costs per thread.

Issue #5408
2025-01-30 16:30:13 +01:00
Norman Feske
ec9caa3490 libc: remove use of unmanaged_singleton
Issue #5418
2025-01-30 16:30:13 +01:00
Norman Feske
3900199d2f libc: host fd alloc as part of Libc::Kernel
This avoids the need to construct the fd_alloc out of thin air using
unmanaged_singleton.

Issue #5418
2025-01-30 16:30:13 +01:00
Josef Söntgen
4a2c52d8f4 symbols/libc: add open_memstream function 2025-01-30 16:30:13 +01:00
Norman Feske
42ff0d078f base: split Pd_account from Pd_session
Core uses an instance of 'Pd_session_component' as a representative
for RAM/cap quota accounts used whenever session resources are
donated to core's services. All other facets of 'Pd_sesson_component'
remain unused. Core's instance of 'Pd_session_component' is hosted
at 'Core_env'. Upon its construction, all unused facets of
'Pd_session_component' are initialized by dummy arguments in 'Core_env'.

To overcome the need for dummy arguments, this patch splits the
accounting part of the PD-session interface into a separate
'Pd_account' interface. This gives us the prospect of narrowing
core's current use of 'Pd_session_component' by 'Pd_account',
alleviating dead code and the need for any dummy arguments.

Issue #5408
2025-01-30 16:24:36 +01:00
Norman Feske
43d7c3bd11 core: don't rely on Core_env in platform.cc
Replace the use of the global 'core_env()' accessor by the explicit
delegation of interfaces.

- For allocating UTCBs in base-hw, 'Platform_thread' requires
  a way to allocate dataspaces ('Ram_allocator') accounted to the
  corresponding CPU session, a way to locally map the allocated
  dataspaces (core's 'Region_map'), and a way to determine the
  physical address (via 'Rpc_entrypoint') used for the initial
  UTCB mapping of main threads. Hence those interfaces must be
  passed to 'Platform_thread'.

- NOVA's pager code needs to look up 'Cpu_thread_component'
  objects using a map item as key. The lookup requires the
  'Rpc_entrypoint' that hold the 'Cpu_thread_component' objects.
  To make this 'Rpc_entrypoint' available, this patch adds
  the 'init_page_fault_handing' function.

- The 'Region_map_mmap' for Linux requires a way to look up
  'Linux_dataspace' objects for given dataspace capabilities.
  This lookup requires the 'Rpc_entrypoint' holding the dataspaces,
  which is now passed to 'platform.cc' via the new Linux-specific
  'Core_region_map::init' function.

Issue #5408
2025-01-30 16:24:35 +01:00
Christian Prochaska
dd64164ed6 qt6: split port into modules
Fixes #5402
2024-12-11 12:22:00 +01:00
Stefan Kalkowski
d3002b26ac libusb: warn once and freeze when device vanishs
Instead of repeatedly printing error messages when a device is not
available anymore, print an error once and then sleep forever.
There is no dynamic behaviour with respect to device availability
implemented in the libusb yet. Instead, you can manage libusb
components externally.

Ref genodelabs/genode#5401
2024-12-11 12:20:37 +01:00
Stefan Kalkowski
ebb159d32d usb webcam: turn run-scripts into sculpt tests
Ref genodelabs/genode#5401
2024-12-11 12:20:31 +01:00
Christian Helmuth
cd6701c483 depot: update recipe hashes 2024-12-11 08:35:22 +01:00
Josef Söntgen
96d9f5d317 usb: consider alternate setting in endpoint select
When constructing an Usb::Interface and implicitly corresponding
Usb::Endpoint instances only select endpoints relevant for the
given alternate setting.

The libusb has to be changed to delegate the correct alternate
setting to the constructor too.

Fix genodelabs/genode#5394
2024-12-10 14:12:24 +01:00
Christian Helmuth
f2c25383af acpi_event: prevent misleading warning about PRESS_RELEASE 2024-12-10 14:11:57 +01:00
Stefan Kalkowski
b529b1eac6 qemu-usb: prevent assertion by eager URB processing
Instead of directly process URBs whenever a USBPacket arrives from
the Qemu ported XHCI layer, send a local signal to the I/O handler,
which will process the requests after leaving certain sensible
code pathes like usb_packet_complete. Otherwise, it might happen
that a packet, which was still marked as being queued gets already
completed, which leads to an assertion and hang of the library.

Fix genodelabs/genode#5389
2024-12-10 14:11:57 +01:00
Christian Prochaska
35a679d861 libc: pthread cond/rwlock improvements
- add a check to detect if a different thread has
  initialized the internal object in the meantime
- remove ENOMEM error since the 'Libc::Allocator'
  is not supposed to throw exceptions
- remove init mutex from 'pthread_condattr_init()'
  since there is no implicit initialization which
  could happen in parallel like with mutex/cond/rwlock

Issue #5386
2024-11-26 01:08:19 +01:00
Christian Prochaska
37842757ac libc: synchronize implicit pthread mutex initialization
Fixes #5386
2024-11-26 01:08:15 +01:00
Christian Helmuth
011b44c282 depot: update recipe hashes 2024-11-20 08:58:39 +01:00
Stefan Kalkowski
f886acdcc6 qemu-usb: limit control transfer to 1 sec timeout
Fix genodelabs/genode#5376
2024-11-05 14:39:10 +01:00
Christian Helmuth
0794d99eff depot: update recipe hashes 2024-11-05 13:41:07 +01:00
Christian Helmuth
30f3ef25ad depot: update recipe hashes 2024-10-30 14:02:44 +01:00
Christian Prochaska
e1909da501 qt: apply a label to the QGenodeScreen Gui session
Fixes #5372
2024-10-30 08:14:56 +01:00
Sebastian Sumpf
db02e04d0c libdrm: move Gpu::Vram into separate namespace
Because the implemantations for Lima and Vivante are linked into a
single library we cannot have two Gpu::Vram classes in the same
namespace. In case this happens any methods using the same signature are
weak symbols and the first one found by ld will be used = undefined
behavior.

issue #5356
issue #5369
2024-10-30 08:14:55 +01:00
Christian Prochaska
8985d8200e mesa: add 'u_format_unpack_neon.c'
Issue #5356
2024-10-30 08:14:54 +01:00
Christian Helmuth
679d68d470 nitpicker: rename 'displays' report to 'panorama'
... and enable report in Sculpt's report_fs.

Issue #5352
2024-10-30 08:14:54 +01:00