2134 Commits

Author SHA1 Message Date
Christian Helmuth
5619ccd940 Set USB bios_handoff="no" in run scripts
This is the default setting in Sculpt currently, so use it also
for testing.
2025-04-10 14:24:11 +02:00
Norman Feske
eb572914b1 libports: don't copy Xml_node
Issue #5411
2025-04-10 14:19:03 +02:00
Norman Feske
368509ff9b libc: don't copy Xml_node
This patch reworks the libc's internal config handling by replacing
scattered Xml_node accesses by the new 'Config' type that is parsed
at once. The config ROM has been moved from 'Env_implementation' to
the libc kernel.

Issue #5411
2025-04-10 14:18:41 +02:00
Norman Feske
636eb7b53f os: don't copy Xml_node
As this patch changes 'Vfs::File_system_factory::create', the
VFS plugins must be adapted, now taking 'Xml_node const &' as
argument.

Issue #5411
2025-04-10 14:18:41 +02:00
Norman Feske
05d69a0bb3 os: increase mtime resolution to milliseconds
This patch changes the 'Timestamp' type of the VFS and file-system
session to an unsigned 64-bit value holding the number of milliseconds
since the UNIX epoch (beginning of 1970).

The special case of an invalid timestamp has been removed as it was
never consistently handled anyway.

In contrast to the POSIX timespec, which represents tv_sec and tv_nsec
both as signed values, this patch uses an unsigned value because the
interpretation of negative tv_sec and tv_nsec values is muddy.
Hypothetical modification times older that 1970 are capped at 1970.

Fixes #3511
2025-04-10 14:14:07 +02:00
Alexander Boettcher
56dca5eea5 ports: fix assert in libc_integration
Issue #5432
2025-04-10 14:13:26 +02:00
Sebastian Sumpf
e985e1c7b1 nic_bridge.run: use lxip and lwip
* use both IP-stacks with and without labels
* adjust matching rules

issue #5471
2025-04-10 14:13:26 +02:00
Sebastian Sumpf
92086cce68 genode_c_api/socket: add label to socket init
Add label argument to genode_socket_init that can be/is used to label
possible connecions.

issue #5471
2025-04-10 14:13:26 +02:00
Christian Prochaska
a7bd01bd4a stdcxx: define _GTHREAD_USE_MUTEX_INIT_FUNC
Fixes #5473
2025-04-10 14:13:25 +02:00
Sebastian Sumpf
ed77207963 os: move vfs/lxip to vfs/ip from dde_linux
Because the sources are now used by lwip/lxip, make them accessible in a
public place.

issue #5471
2025-04-10 14:13:25 +02:00
Sebastian Sumpf
9881ba1364 libports: lwip with socket C-API
Implement socket C-API and move lwip specific parts present in vfs_lwip
to the library.

issue #5471
2025-04-10 14:12:38 +02:00
Sebastian Sumpf
e46bc6159d test/ip_raw: add support for lwip
Add lwIP requiremnts to the ip_raw test.

issue #5471
2025-04-10 14:12:38 +02:00
Sebastian Sumpf
503f9fae7a libports: move vfs_lwip to vfs_legacy_lwip
* src/lib/lwip -> legacy_lwip
* src/lib/vfs/lwip -> legacy_lwip
* recipes/src/vfs_lwip -> vfs_legacy_lwip
* recipes/api/lwip -> legacy_lwip

issue #5471
2025-04-10 14:12:37 +02:00
Christian Helmuth
720488c49b test-pthread: add pseudo rtc to prevent warning 2025-04-10 14:12:37 +02:00
Sebastian Sumpf
5240de481f libc: use monitor for blocking in read_sockaddr_in
The suspend mechanism is obsolete, use monitor call to wait for data for
blocking sockets. The old implementation using 'suspend' will not block for
pthreads because the 'suspend' functor issues a 'monitor' call itself.

issue #5471
2025-04-10 14:12:37 +02:00
Stefan Kalkowski
c053c46fae libusb: avoid active polling of control URBs
Some control URBs have to be handled synchronously within the
libusb, to meet the semantics of get_device_descriptor, set_interface,
etc., but this was using the VFS libusb plugin in a way that it
polled actively during the control URB being active. This commit
removes the not desired polling behaviour.

Fix genodelabs/genode#5469
2025-04-10 14:12:21 +02:00
Christian Helmuth
2d89b53b0c depot: update recipe hashes 2025-02-27 12:53:40 +01:00
Christian Helmuth
cd40a5be96 tool: have_cmd_arg -> have_cmd_switch (run, autopilot, dts)
Issue #5432
2025-02-27 12:53:40 +01:00
Christian Prochaska
472112fe0d qt6_declarative: install libqtqmlcoreplugin.lib.so
Fixes #5466
2025-02-27 12:53:40 +01:00
Josef Söntgen
48f37b4a46 libc: use original 'gai_strerror()' implementation
This commit removes the dummy 'gai_strerror()' implementation in
favor of the one provided in the contrib sources to allow for better
diagnosing of DNS related problems.

As long as NLS is not set the implementation looks up the error string
via the error-code directly.

Fixes #5464.
2025-02-24 16:39:56 +01:00
Christian Prochaska
9cebdeb1a9 qt6_base: no mmap for sqlite3 files, reduce warnings
Fixes #5463
2025-02-24 16:39:56 +01:00
Josef Söntgen
89c63604ba api/openssl: add pkg-config files
Issue genodelabs/goa#81
2025-02-24 16:39:56 +01:00
Josef Söntgen
581ee3eda6 api/curl: add pkg-config file
Issue genodelabs/goa#81
2025-02-24 16:39:56 +01:00
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