Commit Graph

624 Commits

Author SHA1 Message Date
Norman Feske
c513a63a04 ports: vim-minimal noux package/recipe 2018-01-17 12:14:37 +01:00
Norman Feske
cb24b1064d ports: coreutils-minimal noux package/recipe
This variant of coreutils contains only the tools that are essential
for the sculpt scenario's initial state.
2018-01-17 12:14:36 +01:00
Norman Feske
366bba0227 Exclude higher-level repos from strict warnings
This is a follow-up commit to "Increase default warning level", which
overrides Genode's new default warning level for targets contained in
higher-level repositories. By explicitly whitelisting all those targets,
we can selectively adjust them to the new strictness over time - by
looking out for 'CC_CXX_WARN_STRICT' in the target description files.

Issue #465
2018-01-17 12:14:36 +01:00
Norman Feske
eba9c15746 Follow practices suggested by "Effective C++"
The patch adjust the code of the base, base-<kernel>, and os repository.
To adapt existing components to fix violations of the best practices
suggested by "Effective C++" as reported by the -Weffc++ compiler
argument. The changes follow the patterns outlined below:

* A class with virtual functions can no longer publicly inherit base
  classed without a vtable. The inherited object may either be moved
  to a member variable, or inherited privately. The latter would be
  used for classes that inherit 'List::Element' or 'Avl_node'. In order
  to enable the 'List' and 'Avl_tree' to access the meta data, the
  'List' must become a friend.

* Instead of adding a virtual destructor to abstract base classes,
  we inherit the new 'Interface' class, which contains a virtual
  destructor. This way, single-line abstract base classes can stay
  as compact as they are now. The 'Interface' utility resides in
  base/include/util/interface.h.

* With the new warnings enabled, all member variables must be explicitly
  initialized. Basic types may be initialized with '='. All other types
  are initialized with braces '{ ... }' or as class initializers. If
  basic types and non-basic types appear in a row, it is nice to only
  use the brace syntax (also for basic types) and align the braces.

* If a class contains pointers as members, it must now also provide a
  copy constructor and assignment operator. In the most cases, one
  would make them private, effectively disallowing the objects to be
  copied. Unfortunately, this warning cannot be fixed be inheriting
  our existing 'Noncopyable' class (the compiler fails to detect that
  the inheriting class cannot be copied and still gives the error).
  For now, we have to manually add declarations for both the copy
  constructor and assignment operator as private class members. Those
  declarations should be prepended with a comment like this:

        /*
         * Noncopyable
         */
        Thread(Thread const &);
        Thread &operator = (Thread const &);

  In the future, we should revisit these places and try to replace
  the pointers with references. In the presence of at least one
  reference member, the compiler would no longer implicitly generate
  a copy constructor. So we could remove the manual declaration.

Issue #465
2018-01-17 12:14:35 +01:00
Norman Feske
2a33d9aa76 pthread: prevent copy of Genode::Thread object
This patch also adjusts virtualbox because it relies on pthread-internal
interfaces.

Fixes #2630
2018-01-17 12:14:34 +01:00
Stefan Kalkowski
bac3d620c6 vfs/rump_fs: test for ext2 file deletion
Ref #2621
2018-01-17 12:14:34 +01:00
Norman Feske
1be4a0aeaf libc: prevent timer session if rtc not configured
This patch makes the creation of the libc's timer session depend on
whether or not the 'rtc' attribute of the <libc> configuration is
defined. If not configured, 'clock_gettime' returns 0.

Fixes #2625
2018-01-17 12:14:33 +01:00
Christian Helmuth
553cf556af depot: update recipe hashes 2017-12-21 15:01:56 +01:00
Stefan Kalkowski
b4e437000a virtualbox5: prevent null-pointer dereference
Fix #2612
2017-12-21 15:01:50 +01:00
Norman Feske
f148388227 ports: hook to filter content of noux install
The new variable 'INSTALL_TAR_CONTENT' allows one to customize the
content of the generated tar archive instead of including the entire
install directory.
2017-12-21 15:01:49 +01:00
Sebastian Sumpf
9e93ea3e1c noux_tool_chain_auto: compile zlib instead of core
fixes issue #2601
2017-12-21 15:01:44 +01:00
Martin Stein
88be272113 noux_tool_chain.inc: don't use '&' in XML values
Was used in bash commands in the <inline> tag of the RAM FS.
Now we use an extra file and a <rom> tag instead.

Fixes #2605
2017-12-21 15:01:41 +01:00
Sebastian Sumpf
568865bde0 noux: remove contexts from Vfs_io_channel
Channels, and therefore contexts, may be shared between children
causing corruption when a child is destroyed while another child still
uses the old context within the channel.

related to #2601
2017-12-21 15:01:35 +01:00
Martin Stein
3cdcb528ff nic_router: advanced timeout configuration
Replace former rtt_sec attribute of the <config> tag by more specific
(and still optional) attributes for timeouts used in the NIC router
(these are also the default values):

<config dhcp_discover_timeout_sec="10"
        dhcp_request_timeout_sec="10"
        dhcp_offer_timeout_sec="10"
        udp_idle_timeout_sec="30"
        tcp_idle_timeout_sec="600"
        tcp_max_segm_lifetime_sec="30">

Details about the new attributes can be found in the README of the router.

Issue #2590
2017-12-21 15:01:32 +01:00
Christian Helmuth
25ca29002e depot: update recipe hashes 2017-11-30 11:24:49 +01:00
Christian Prochaska
a0a54df74c qt5: pointer shape support
Fixes #2586
2017-11-30 11:23:22 +01:00
Christian Prochaska
425d18e866 pointer: strip the last label element when matching labels
Issue #2585
2017-11-30 11:23:22 +01:00
Christian Prochaska
dd98bd67a0 pointer: custom pointer shape support
Make the revised 'vbox_pointer' component the new 'pointer' component.

Fixes #2585
2017-11-30 11:23:22 +01:00
Christian Prochaska
18993b5ede vbox_pointer: make shape support configurable
Have the 'Report' session announcement and "hover" and "xray" ROM requests
only when needed when 'vbox_pointer' becomes the new 'pointer'.

Issue #2585
2017-11-30 11:23:21 +01:00
Christian Prochaska
78b38cd65b vbox_pointer: provide a 'Report' service for shape reports
Issue #2585
2017-11-30 11:23:21 +01:00
Christian Prochaska
5099d00eb3 vbox_pointer: use RGBA encoding in shape report
RGBA is more likely to be supported by new clients than VirtualBox's BGRA encoding.

Issue #2585
2017-11-30 11:23:21 +01:00
Alexander Boettcher
154c16753c vbox*.run: apply win81 test heuristic to win10 2017-11-30 11:23:20 +01:00
Alexander Boettcher
dbf7588a76 netperf: increase caps for sel4 x86_64 2017-11-30 11:23:20 +01:00
Christian Prochaska
e6a638e78c gdb_monitor: increase RAM quota in run scripts 2017-11-30 11:23:19 +01:00
Alexander Boettcher
c63fe241f4 run: disable wifi netperf on non-ACPI 32bit kernel 2017-11-30 11:23:17 +01:00
Josef Söntgen
6ca8f4c174 sdl: remove deprecated API usage
In addition framebuffer resizing is now also supported.

Fixes #2583.
2017-11-30 11:23:16 +01:00
Christian Prochaska
c6718677b2 vbox_pointer: fix visibility flag handling
Fixes #2580
2017-11-30 11:23:10 +01:00
Sebastian Sumpf
9c852c750a vfs: handle root directory explicitly
This makes '/' and the actual root of VFS distinguishable. A VFS root
may contain one ore more '/' entries for each file system. 'opendir' for
the VFS root opens all file systems via 'open_composite_dir', while
'opendir' for '/' only returns a VFS handle.

Fixes #2569
2017-11-30 11:23:10 +01:00
Christian Prochaska
365bec38a0 gdb_monitor: handle session requests for child services
Fixes #2574
2017-11-30 11:23:05 +01:00
Alexander Boettcher
e54ad5c73a vbox: support capslock state provided by ROM
Fixes #2568
2017-11-24 09:07:31 +01:00
Christian Helmuth
491be000ca depot: update recipe hashes 2017-11-09 12:19:59 +01:00
Stefan Kalkowski
c365918b82 noux: attach linker area as executable area
Thanks to cproc for the investigation.

Ref #1938
Ref #1723
2017-11-09 12:18:44 +01:00
Norman Feske
0126523b83 bash: remove dependency from ld
The dependency was added as a supposed work-around of a dysfunctional
fork when building bash as depot archive. However, it turned out that
the actual problem was related to the timestamps of 3rd-party source
file, which were discarded by the recipes/src/bash/content.mk.
2017-11-09 12:18:43 +01:00
Norman Feske
bd18152d32 depot: preserve timestamps in src/bash 2017-11-09 12:18:43 +01:00
Alexander Boettcher
804fb4e10d update recipe drivers_interactive-pc for hardware
fails on native hardware because of missing caps and missing configuration
of the drivers subinit
2017-11-09 12:18:41 +01:00
Christian Helmuth
30948a4b0d depot: update recipe hashes 2017-11-06 13:57:25 +01:00
Christian Prochaska
e6b7e1f6e1 vbox5: fix substring calculation for VM files in root directory
Fixes #2561
2017-11-06 13:57:25 +01:00
Stefan Kalkowski
b6b775cd60 depot: recipe for grep
Issue #2446
2017-11-06 13:57:23 +01:00
Stefan Kalkowski
2116bcf733 depot: recipe for findutils
Issue #2446
2017-11-06 13:57:23 +01:00
Martin Stein
42b1eefe73 virtualbox_nic_router: two routers, all dynamic
Two nested NIC routers between virtualbox and the NIC driver.
Both routers are DHCP clients at the uplink and DHCP servers at the
downlink.

Ref #2534
2017-11-06 13:57:22 +01:00
Christian Prochaska
f18e8a4553 vbox5: build 'RTPathAppend()' implementation
Fixes #2556
2017-11-06 13:57:20 +01:00
Alexander Boettcher
e532fc83b6 vbox5: use sched_yield instead of pthread_yield
Fixes #2551
2017-11-06 13:57:19 +01:00
Alexander Boettcher
676d05b751 vbox: stop input processing if vm is powered down
avoids tons of red messages about the fact that vm is already down
2017-11-06 13:57:18 +01:00
Alexander Boettcher
dfa8b787be noux: attach executable memory as such
Issue #1723
2017-10-20 11:45:20 +02:00
Alexander Boettcher
c4c9e1fe7f vbox: attach executable memory as such
Issue #1723
2017-10-19 13:46:41 +02:00
Alexander Boettcher
db0589727a seoul: attach executable memory as such
Issue #1723
2017-10-19 13:46:25 +02:00
Christian Helmuth
ee4ee6a8ac depot: update recipe hashes 2017-10-19 13:31:18 +02:00
Alexander Boettcher
ddb2805f3a run: disable non-working tests for x86_32 machine
to due limited capabilities of the native hardware
2017-10-19 13:31:18 +02:00
Martin Stein
30a96706cb nic_router: dhcp server functionality
One can configure the NIC router to act as DHCP server at interfaces of a
domain by adding the <dhcp> tag to the configuration of the domain like
this:

<domain name="vbox" interface="10.0.1.1/24">
    <dhcp-server ip_first="10.0.1.80"
                 ip_last="10.0.1.100"
                 ip_lease_time_sec="3600"
                 dns_server="10.0.0.2"/>
    ...
</domain>

The attributes ip_first and ip_last define the available IPv4 address
range while ip_lease_time_sec defines the lifetime of an IPv4 address
assignment in seconds. The IPv4 address range must be in the subnet
defined by the interface attribute of the domain tag and must not cover
the IPv4 address in this attribute. The dns_server attribute gives the
IPv4 address of the DNS server that might also be in another subnet.
The lifetime of an offered assignment is the configured round trip time of
the router while the ip_lease_time_sec is applied only if the offer is
requested by the client in time.

The ports/run/virtualbox_nic_router.run script is an example of how to
use the new DHCP server functionality.

Ref #2490
2017-10-19 13:31:15 +02:00
Emery Hemingway
8ca63d4a6e libc: reintegrate libc_resolv library
Remove getaddrinfo and freeaddrinfo from the Libc::Plugin and get rid of
the extra libc_resolv library. Remove getaddrinfo/freeaddrinfo symbol
hiding patch for FreeBSD sources. Remove libc_resolv from Makefiles and
run scenarios.

Fix #2273
2017-10-05 17:40:04 +02:00